From c6b942bd55143e8bbb63a4eecd70e41edcb30c1f Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 16 Apr 2024 17:56:02 +0200 Subject: [PATCH 1/9] extra networking --- system-modules/networking.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 system-modules/networking.nix diff --git a/system-modules/networking.nix b/system-modules/networking.nix new file mode 100644 index 0000000..7a8e558 --- /dev/null +++ b/system-modules/networking.nix @@ -0,0 +1,14 @@ + +{ config, pkgs, host, ... }: +let +in +{ + + networking.hostName = host; + + networking.networkmanager = { + enable = true; + }; + + networking.enableIPv6 = true; +} From b93a75fa9754a5dd084efb3d2cdb05e33856dc18 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 16 Apr 2024 18:20:09 +0200 Subject: [PATCH 2/9] email broken --- configuration.nix | 7 +-- home-modules/email.nix | 73 +++++++++++++++++++++++-- home-modules/git.nix | 1 + home-modules/vscode.nix | 1 + home.nix | 1 + secrets/passwords-and-certificates.nix | Bin 1895 -> 1978 bytes system-modules/grub.nix | 13 ++++- system-modules/hsmw.nix | 4 +- 8 files changed, 86 insertions(+), 14 deletions(-) diff --git a/configuration.nix b/configuration.nix index dab72b2..1532cab 100644 --- a/configuration.nix +++ b/configuration.nix @@ -10,6 +10,7 @@ in ./system-modules/sound.nix ./system-modules/grub.nix ./system-modules/dm.nix + ./system-modules/networking.nix ./system-modules/hsmw.nix ./system-modules/docker.nix @@ -18,11 +19,6 @@ in ./system-modules/ollama.nix ]; - networking.hostName = "NxXPS"; - - networking.networkmanager = { - enable = true; - }; @@ -84,6 +80,7 @@ in dmidecode ]; + fonts.packages = with pkgs; [ noto-fonts noto-fonts-cjk diff --git a/home-modules/email.nix b/home-modules/email.nix index 9318cc2..a4a6880 100644 --- a/home-modules/email.nix +++ b/home-modules/email.nix @@ -1,17 +1,78 @@ -{ config, pkgs, lib, system, user, allowed, secrets, ... }: - +{ config, pkgs, secrets, ... }: { home.packages = with pkgs; [ thunderbird ]; - + accounts.email.accounts = { + "gamil-online" = { + address = secrets.email.gmail-online.mail; + realName = "Lennart J. Kurzweg"; + flavor = "gmail.com"; + primary = true; + signature = { + text = '' + -- + About Me: https://nx2.site/about-me + Contact: https://nx2.site/contact + GPG: https://nx2.site/gpg + ''; + showSignature = "append"; + }; + thunderbird = { + enable = true; + profiles = [ "default" ]; + }; + }; + "gamil-business" = { + address = secrets.email.gmail-business.mail; + realName = "Lennart J. Kurzweg"; + flavor = "gmail.com"; + signature = { + text = '' + -- + About Me: https://nx2.site/about-me + Contact: https://nx2.site/contact + GPG: https://nx2.site/gpg + ''; + showSignature = "append"; + }; + thunderbird = { + enable = true; + profiles = [ "default" ]; + }; + }; - # home.file.".config/meli.config" = { - - # }; + "hsmw" = { + address = secrets.email.hsmw.mail; + realName = "Lennart J. Kurzweg"; + imap = { + port = 993; + host = "mail.hs-mittweida.de"; + }; + smtp = { + port = 465; + host = "mail.hs-mittweida.de"; + }; + signature = { + text = '' + -- + MatNr: ${secrets.email.hsmw.mnr} + SemGr: ${secrets.email.hsmw.semgr} + About Me: https://nx2.site/about-me + Contact: https://nx2.site/contact + GPG: https://nx2.site/gpg + ''; + showSignature = "append"; + }; + thunderbird = { + enable = true; + profiles = [ "default" ]; + }; + }; + }; } diff --git a/home-modules/git.nix b/home-modules/git.nix index 491e9d5..424e727 100644 --- a/home-modules/git.nix +++ b/home-modules/git.nix @@ -36,5 +36,6 @@ whitespace-error-style = "22 reverse"; }; }; + iniContent."sendemail.hsmw".smtpUser = secrets.email.hsmw.mail; }; } \ No newline at end of file diff --git a/home-modules/vscode.nix b/home-modules/vscode.nix index 36eb0ae..2fdee63 100644 --- a/home-modules/vscode.nix +++ b/home-modules/vscode.nix @@ -41,6 +41,7 @@ donjayamanne.githistory mads-hartmann.bash-ide-vscode bungcip.better-toml + arrterian.nix-env-selector # ms-vscode-remote.remote-ssh ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ diff --git a/home.nix b/home.nix index e5e682e..2274a1a 100644 --- a/home.nix +++ b/home.nix @@ -59,6 +59,7 @@ lynx bat du-dust eza neofetch tldr fzf figlet ripgrep lolcat jq glow brightnessctl wev element sssnake pipes + dig nodejs gnumake diff --git a/secrets/passwords-and-certificates.nix b/secrets/passwords-and-certificates.nix index fc045103e8ffdc4e9e20a3e8630cbbff5e30274f..b8a809170a5dfd45c361821a08b663f3d109cdac 100644 GIT binary patch literal 1978 zcmZQ@_Y83kiVO&0n7!Zo{??bpA&)G#NUQj9FwM5myrXk|(uKVjru47*E4+Sx$#0gK z*(ZW_weG3x+ z*Gt$)6bMa!@L_}N#tJSux!CN#5hraKr@pEdntY;tyT7Tybp?}~K{NUe{lCQ^^VVg; zw$G2`W_+&`ieLHBCv}x#-qzMqo;6A8?Pvarq~GND=G&4A&f-ThUM#V8DtW&T>oiZ&SStJCkbb{bzq7G>OL0NB5zd=>k5Md8toe-ZEN<({P<_nk5El>grge^(c*Kj*)dyW;c? z8==o7YnIJEeW0uCd8M;n)9kp z%r|csZ<(E&amr=VdoA&@#iu`Ly?MIZUz$tv-mBM3SFMZ@HI~r6GiTkpALk#GKdJq$ z_2E~RTas>P-pa!DQ3sZ0PWxNs{b&2!74tq7PU-J)>2NBP;f#BZ8q$+2%A+}s?vtHFHI!RF4= zw>m#gEAz#lzI!sR=}W>>r_AlEyZ%1fBIj1&si+$G-|xgev0}mYzONqhJ!|$ZIhv;N z_|eL=)2CN2JRRjf_3rtagPRT?+24`C_AOJ_dhfPJrmr^yshxU1$x~tXaz!6K7qggG z8c~@uzZG=-)T?XR#-2BKMa!KK$LKkCG=K3}N1ZS#-J)KWVfET(y~Fhe%L>I`A2iNr z{@M56w=t{Xz?;)&A{2EmKRJDP?V3Hzc{&qM`Y*?$eSmv#xqw`TWbWvl6V1)xI|{5>Qusw76Vq@&lnoIy+Oh-Cyf@ z_DX-(vg>b4*2l2;t?pmHuv}_Och=Jv5nq~kl@fjkLQCvNv=wQ0{RsKm!Hhi`9zwzp2w$zM-RVPcIP1q*ub(32r3U+$ve&adowCaUqLR`H`zJuiJ zIW`|vCF}J=cfMMgxi%;)J9^pf`H5d#cj`Rknk1s~#4Rr8iLFhGa;WKgj>gwBd(OHf zF09t>+r^)u8Mf?oWnXXqa`hKym|Jf!SR7ir3^nN=`3ZT zm4R2b?NU45o3}sB>W=o0)?W*@pPo74uT7uOuYLdCnz)$jn&(f_R`fPAn7`BV>3tW@ zUlUTgR?o3JyleOT8M`g^r)*K(y+-`hLgDFt zt3PZjn{sz!sRiSQB^lj@bN_xTZ@;5c!&sEd$su3&*w%aTPj3AU%D$@IVza$+j(z-Q zy-Unyg5Lz6_;|6CZ&x#|61KY?*4MfDgG#{Z0@XvcZ!R6W^*ZBm+A>SG^_72$9KT#Y z#drVT{3g+TtebX*EPWhQ^?xP8w>n8MzwZ#Ud8M~;>(QpO z;zkQgudmL2aMbFHoz|fZ{<^2iq{4{Nz>HtGP5Tiw3=XfY}yB|_XYY>r}=>g3v)6K84e=brdmty_1t@oZ5IHMy$^-y9z% zcP*4V=yl@s(Pi5&?ptfUGtuO-)5!&qYNaQh$e(!4YVl}eMRxLb$#uKuEBCQv#Tpx` zXrIWe%6ipVI>TdDnO}mUs7jyee;}px9Xh<_ujzGJy+zD|Ls!PcII3Aiv>4C(#uS5O!nUY zM4a#E$&fB?pKrplPjuM2dCQKsKYcj&c1p5tQuX1A6t(Xb$HO9Dy=0f$yhKJNG~Jgk zfI0r??UnDi|FD?fa59@;p19d3W{=i_@% literal 1895 zcmZQ@_Y83kiVO&0sMpyb##6%ZJ>;*-)V)d@o=vyCb#dL=JrV-9_HI4twu$XfzwUxr z|8LvmwFE2wittJ?xWuue^+e{!XQ%E?_-PbZ@^028LBrdRc&9whZj66^Ogff->-Y60 zG6u0T+czI}pCI@9dV=1U24~aOLlVUtOt-sb{`j9QSpOqyV|=1PRJA?(iuyf9Pq)qg z>h*rcq4YObS|8a4+>}lZ`gNtmVxHTsdvoRQ&Uk8TXB^!2{m;~Z(-YK}xu*x@Je?o= z+-!+lSBuINwaD)?0*Y2A&B*wCGIaXIi+BH?Z&~8yP-k+s@BTjJ=dV}2;S-N{zP;)3 zb%w3hCSNQ3r%pJ|H>YA(`kvYI-d}!w_g%=<{I)f{KPIV$oH4g*K6mZl)!e^(FMd;F z>}x5RHf54v2)~}Ppk`m|J6`7>r{;#VU77T7Zid<;^(k7Mm#)8QJ!HhZvLc5eL~OzS znssN6NpwE_clpDL(lv)ZG3#xfv*zwW2MN))8nwyW%Qmu$2ISZo;7* zsJ1KCVfBn7Old8$W?_52Kl!5k(KspjuHj{|8*g7--B`|GCVjJh;g^{WDxU+7Dt`Dj7;l_X(G+kHU2HNV`^2i&2N4N{i{~x#dVJo)HL=XEDSBpy z;mxCu`Ix#l{gTk^n*K%T*{AbwEN6Lsl~^%pu3s?kTLy;+C2h`|vv@AF$DX~TP-Q-2 zQ?BEFP1$GahU{%$l_cis>J)F?GF#gsSNrxmE63$tN|zS~sWUwKvgAOIfo!pV`k7M6 ziH9#ccr9ys@%&)$kDJf7pWLZ=wB~d!ui8?P>e-w5%T8$Ye4F_(=Lqu*g||UWLP-Vh z7JS%UP_Rh-hRlPBHg2p8@ekW$lXUiJ|Ju4W_1H1n0>2tJ-Fxl*0yi&P?=)oc77G8L zAu-{iY)o_7mG@WY6#X%O9=FGEN3F+O_IGv*Z$!ytJl*$rH^UT*L$aIfuIzg<>DJNR z9B0=pHtx4tcgnysY%*VOlsSk0`|}nIPfj!KV9W?AW{>x9jhu8%?rvm7we5#%_ZwnX zwp=r8ojoag(>du@{sHEZ?mPFmQk>`TT}?r&^R{tnb=g~vEN0GMp_t%u=GLTK?HvW>rd=mr=3c$Ic3V)$ z>L0iAw^wn*n!WhFa$;Jr+MKn_Yjz)rId z_{;9)dRkni`QCK#dDoguuNS%7=B;lqf0XAF&3!n){OM+Ar&Ajwd_!B~X021#OA6m$ zw)19<%bJp7>#TLsFWHO#TXu(kANOa?9?$JpCVQQX&z%0&(X7O=d4kcd7u$IXI@3hB zKP~?%P*-jol=jf^)h+++N|`-AvCkG4F7te#;uF@sZiN;{akqWh{&(W`q2Kj`Jj)(G zQ@CFBeeb!I)s}N7mVD6gT$(Z8Ux|4^>us|vmzS1XcAs&)HnGjbrEcDwxA((79Wd4r z`*qIl+NzkfwQpl^Lb-!P$;TZH>k4hUwyW-`U9= zct3qpau)Nxn|8cWqFUQ_{OH+LWBocvVCkRV6=JG~Z6__5zBVVUa6@mXx*MAh-@`NR z**2fV{vEp!aX)(AW|Q6}N9H@8RXH~sQlZr`MuQt?a>=vua1A``&Fy#cDIU&=!bB%E&Ed}7kNt9y!KNxGkv-F zcbA4=4CB$X3d!VkY;)BDIctwhOZaTv(x$iQWYrnx9O1w3&Lr(@_{lz>>&lS>z44yU zr!q16tM{yMYg@mvd!k?Cu5)?9Cx2I&o=iS`GU%Xr@r&>Y84jD-RFXb02T67xIQ@%Z z$)AW^Blgd(J`X=!TGRB#KIFo)dH=4@yg6IH=QqQKies_w|8gzeI^9q|G3{}OK--6d zp;DSvUXH83N-?|6SM_`P{ Date: Wed, 17 Apr 2024 19:49:43 +0200 Subject: [PATCH 3/9] bw email hypl --- flake.lock | 76 ++++++++++++------------- home-modules/bitwarden.nix | 32 +++++++++++ home-modules/email.nix | 71 ++++++++++++++--------- home-modules/git.nix | 1 - home-modules/hyprland/hyprland.nix | 1 - home.nix | 3 +- secrets/passwords-and-certificates.nix | Bin 1978 -> 2129 bytes 7 files changed, 114 insertions(+), 70 deletions(-) create mode 100644 home-modules/bitwarden.nix diff --git a/flake.lock b/flake.lock index 90fa6c7..65d54a9 100644 --- a/flake.lock +++ b/flake.lock @@ -13,11 +13,11 @@ ] }, "locked": { - "lastModified": 1712850504, - "narHash": "sha256-s1cUVFgoukNsAfU7bpLP3G0qL0Q2un/AimUxnQ+u6ig=", + "lastModified": 1713240951, + "narHash": "sha256-Nvbn1baUNN7AQOA1hHunUHuFziF0dErqaTlfxr9NNwo=", "owner": "KZDKM", "repo": "Hyprspace", - "rev": "18e4b1d6a35acbcea2cef05a4a8eece83f1da5ae", + "rev": "954eda50aca5ef986c557f3b515c4321fd3c7fd8", "type": "github" }, "original": { @@ -63,11 +63,11 @@ ] }, "locked": { - "lastModified": 1712434681, - "narHash": "sha256-qwmR2p1oc48Bj7gUDvb1oGL19Rjs2PmEmk4ChV01A5o=", + "lastModified": 1713214463, + "narHash": "sha256-zAOOjqHAbccCRgJSuvTCA0FNLqKswN63LgVo43R7pxw=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "818d8c4b69e0997483d60b75f701fe14b561a7a3", + "rev": "0a53b9957f0b17f1a0036b25198f569969ad43a0", "type": "github" }, "original": { @@ -87,11 +87,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1712797985, - "narHash": "sha256-2WS5zErQC7DuGUoVIiWUqQPXsIpdYBqFJip5XSpCVrU=", + "lastModified": 1713283263, + "narHash": "sha256-Urb/njWiHYUudXpmK8EKl9Z58esTIG0PxXw5LuM2r5g=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "ac0f3411c18497a39498b756b711e092512de9e0", + "rev": "fe7b748eb668136dd0558b7c8279bfcd7ab4d759", "type": "github" }, "original": { @@ -112,11 +112,11 @@ ] }, "locked": { - "lastModified": 1712420644, - "narHash": "sha256-h2X8qhN5RKYQXzT1kxKgUz1u1QthqOrP9xk800mTM6E=", + "lastModified": 1713283897, + "narHash": "sha256-/0OPK/bDr8/Lf7r8kzDD/yP1kySbJ8gPmV3CdUbVTFM=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "5ec0140d4aeca42b8a33e7f335f979e376d1b549", + "rev": "00d147d7f6ad2ecfbf75efe4a8402723c72edd98", "type": "github" }, "original": { @@ -189,11 +189,11 @@ ] }, "locked": { - "lastModified": 1711671891, - "narHash": "sha256-C/Wwsy/RLxHP1axFFl+AnwJRWfd8gxDKKoa8nt8Qk3c=", + "lastModified": 1713121246, + "narHash": "sha256-502X0Q0fhN6tJK7iEUA8CghONKSatW/Mqj4Wappd++0=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "c1402612146ba06606ebf64963a02bc1efe11e74", + "rev": "78fcaa27ae9e1d782faa3ff06c8ea55ddce63706", "type": "github" }, "original": { @@ -204,11 +204,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1712439257, - "narHash": "sha256-aSpiNepFOMk9932HOax0XwNxbA38GOUVOiXfUVPOrck=", + "lastModified": 1712963716, + "narHash": "sha256-WKm9CvgCldeIVvRz87iOMi8CFVB1apJlkUT4GGvA0iM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ff0dbd94265ac470dda06a657d5fe49de93b4599", + "rev": "cfd6b5fc90b15709b780a5a1619695a88505a176", "type": "github" }, "original": { @@ -220,11 +220,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1712608508, - "narHash": "sha256-vMZ5603yU0wxgyQeHJryOI+O61yrX2AHwY6LOFyV1gM=", + "lastModified": 1712963716, + "narHash": "sha256-WKm9CvgCldeIVvRz87iOMi8CFVB1apJlkUT4GGvA0iM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4cba8b53da471aea2ab2b0c1f30a81e7c451f4b6", + "rev": "cfd6b5fc90b15709b780a5a1619695a88505a176", "type": "github" }, "original": { @@ -235,11 +235,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1712588820, - "narHash": "sha256-y31s5idk3jMJMAVE4Ud9AdI7HT3CgTAeMTJ0StqKN7Y=", + "lastModified": 1713145326, + "narHash": "sha256-m7+IWM6mkWOg22EC5kRUFCycXsXLSU7hWmHdmBfmC3s=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d272ca50d1f7424fbfcd1e6f1c9e01d92f6da167", + "rev": "53a2c32bc66f5ae41a28d7a9a49d321172af621e", "type": "github" }, "original": { @@ -276,20 +276,18 @@ "wlroots": { "flake": false, "locked": { - "host": "gitlab.freedesktop.org", - "lastModified": 1709983277, - "narHash": "sha256-wXWIJLd4F2JZeMaihWVDW/yYXCLEC8OpeNJZg9a9ly8=", - "owner": "wlroots", - "repo": "wlroots", - "rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b", - "type": "gitlab" + "lastModified": 1713124002, + "narHash": "sha256-vPeZCY+sdiGsz4fl3AVVujfyZyQBz6+vZdkUE4hQ+HI=", + "owner": "hyprwm", + "repo": "wlroots-hyprland", + "rev": "611a4f24cd2384378f6e500253983107c6656c64", + "type": "github" }, "original": { - "host": "gitlab.freedesktop.org", - "owner": "wlroots", - "repo": "wlroots", - "rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b", - "type": "gitlab" + "owner": "hyprwm", + "repo": "wlroots-hyprland", + "rev": "611a4f24cd2384378f6e500253983107c6656c64", + "type": "github" } }, "xdph": { @@ -312,11 +310,11 @@ ] }, "locked": { - "lastModified": 1709299639, - "narHash": "sha256-jYqJM5khksLIbqSxCLUUcqEgI+O2LdlSlcMEBs39CAU=", + "lastModified": 1713214484, + "narHash": "sha256-h1bSIsDuPk1FGgvTuSHJyiU2Glu7oAyoPMJutKZmLQ8=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "2d2fb547178ec025da643db57d40a971507b82fe", + "rev": "bb44921534a9cee9635304fdb876c1b3ec3a8f61", "type": "github" }, "original": { diff --git a/home-modules/bitwarden.nix b/home-modules/bitwarden.nix new file mode 100644 index 0000000..51a64df --- /dev/null +++ b/home-modules/bitwarden.nix @@ -0,0 +1,32 @@ +{ config, pkgs, secrets, ... }: +{ + home.packages = with pkgs; [ + bitwarden + bitwarden-cli + ]; + + home.file.".config/Bitwarden CLI/data.json".text = '' + { + "stateVersion": 9, + "global": { + "theme": "system", + "window": {}, + "environmentUrls": { + "base": "https://pw.nx2.site", + "api": null, + "identity": null, + "webVault": null, + "icons": null, + "notifications": null, + "events": null, + "keyConnector": null + }, + "region": "Self-hosted", + "installedVersion": "2023.12.0" + } + } + ''; + + home.sessionVariables.BW_SESSION = secrets.bitwarden.env.bw-session; + +} \ No newline at end of file diff --git a/home-modules/email.nix b/home-modules/email.nix index a4a6880..bc61f25 100644 --- a/home-modules/email.nix +++ b/home-modules/email.nix @@ -4,7 +4,22 @@ thunderbird ]; - + + programs.thunderbird = { + enable = true; + profiles = { + default = { + isDefault = true; + settings = { + "calendar.alarms.showmissed" = false; + "calendar.alarms.playsound" = false; + "calendar.alarms.show" = false; + }; + }; + }; + }; + + accounts.email.accounts = { "gamil-online" = { address = secrets.email.gmail-online.mail; @@ -45,33 +60,33 @@ }; }; - "hsmw" = { - address = secrets.email.hsmw.mail; - realName = "Lennart J. Kurzweg"; - imap = { - port = 993; - host = "mail.hs-mittweida.de"; - }; - smtp = { - port = 465; - host = "mail.hs-mittweida.de"; - }; - signature = { - text = '' - -- - MatNr: ${secrets.email.hsmw.mnr} - SemGr: ${secrets.email.hsmw.semgr} - About Me: https://nx2.site/about-me - Contact: https://nx2.site/contact - GPG: https://nx2.site/gpg - ''; - showSignature = "append"; - }; - thunderbird = { - enable = true; - profiles = [ "default" ]; - }; - }; + # "hsmw" = { + # address = secrets.email.hsmw.mail; + # realName = "Lennart J. Kurzweg"; + # imap = { + # port = 993; + # host = "mail.hs-mittweida.de"; + # }; + # smtp = { + # port = 465; + # host = "mail.hs-mittweida.de"; + # }; + # signature = { + # text = '' + # -- + # MatNr: ${secrets.email.hsmw.mnr} + # SemGr: ${secrets.email.hsmw.semgr} + # About Me: https://nx2.site/about-me + # Contact: https://nx2.site/contact + # GPG: https://nx2.site/gpg + # ''; + # showSignature = "append"; + # }; + # thunderbird = { + # enable = true; + # profiles = [ "default" ]; + # }; + # }; }; } diff --git a/home-modules/git.nix b/home-modules/git.nix index 424e727..491e9d5 100644 --- a/home-modules/git.nix +++ b/home-modules/git.nix @@ -36,6 +36,5 @@ whitespace-error-style = "22 reverse"; }; }; - iniContent."sendemail.hsmw".smtpUser = secrets.email.hsmw.mail; }; } \ No newline at end of file diff --git a/home-modules/hyprland/hyprland.nix b/home-modules/hyprland/hyprland.nix index 9449c28..dd7463e 100644 --- a/home-modules/hyprland/hyprland.nix +++ b/home-modules/hyprland/hyprland.nix @@ -239,7 +239,6 @@ in workspace_swipe_direction_lock = false; workspace_swipe_direction_lock_threshold = "10"; workspace_swipe_forever = true; - workspace_swipe_numbered = false; workspace_swipe_use_r = false; }; diff --git a/home.nix b/home.nix index 2274a1a..af1e6ff 100644 --- a/home.nix +++ b/home.nix @@ -6,6 +6,7 @@ ./home-modules/chatterino.nix # ./home-modules/meli/meli.nix ./home-modules/email.nix + ./home-modules/bitwarden.nix # ./home-modules/mutt/neomutt.nix ./home-modules/gestures.nix @@ -50,7 +51,7 @@ obsidian spotify spicetify-cli - obs-studio bitwarden + obs-studio waybar swww rofi diff --git a/secrets/passwords-and-certificates.nix b/secrets/passwords-and-certificates.nix index b8a809170a5dfd45c361821a08b663f3d109cdac..80b568a0ec568984047ac36567c7783d1a143277 100644 GIT binary patch literal 2129 zcmZQ@_Y83kiVO&0u+M%c(A7Wb%_r5~d-8QBMAmOP%Q*So_5WQu2ZWb5TW;T;XL`>_ zSoz*#*1T3{yY>Ioe;tXO9Q*8iiT-+7{mXND>XbL%wzxTQ`Zr^)Y1aii66Uv^KASEb zTxV%JgY}}X@HWqB_OflBK53sr3es6GPEJ;DEarL5y6?LGZLz+0YSZ&Bx2&$Xy&>bm zioUM;Ge5HzUpv%3|IY1u&RlQOw+C{s&pSO;rFKcw<~_R)NP09&cbK>q&vt#gb-_KI z!%UkG&b|F`!+$mjna;GF zDQ1cLE_Lz9nJwFOzA~Wv{@DXbnObM%v|P*&8rT|a(sQh=Gi7ZkyWXy#evBdAl&__7 z0^_{}98TX|8+NrG`SEtbmI*yti!U#jGFvbsM#@|wYH7yv#C-w2&;OS4-CA|-m(LWt zUuL9?|D7R`r&n$8v-7Zt(set-P?*}bsr5-`xT8f&tFt7- z!H^5vFE03Czplq*M%~+I@o&8kK2JP7&(Y`0uCy>~O;Nin^}LUZZ-DHCSJ6|LfQ>{j?)eF^{q$1P{m9m)xI~z5e5}P21UCzvvdadEqRdZ7=)o*^K*y zj~u_$v?61@g5vMC{9^}Kp4LshaCm39@6p#l9p=PJt$(S=93&NJ06$jZj7@mjgg$uia~HYRw1Uh`T5_v>^DlF*|NPs9YU~q_T3Ic5 z_x4VS_}xv?6PHa|-D6;)cxC3spsX)3hqv_|TzfzKevQ|vjb(fRIWKLk+2?S3+28E- zo|5u4^y~MlFMY$G7+l|DW5XhOVaJ5>Cxt_y0)KSFD!ndG#0ndK;c7pXpPs%kaEM&D`q+~2h-CqH_Dj8{7SR)qPJ+>bfyY(501+!{i|EiB~x?y=t?}p1aNoIHK=w!~e{^Fv~`> zFX#SN&Lf*n@L9X6oZM_ER^}olE2NXro}K>3Z)N&-Gvg0mD^4ih*0X&&F}Q($&u2+2i4bYHi!56^qYZ z+0OTLWoP-$i7W+EQSnmeFwM#r3_sk3$-8nvo_<= zI$!l?a=!gKyRP2OHV9To)?BOExS%;}BGb3yvnD3G^=JO$7v>PE``_p4v;S`R&WmZz zzZS(*>#NT7X59QM@3eUE{JaQ_)#bgPpIeLfnYR^sovu03dp+mar%U@^7xZ6S!}wWs zu9l6~q%EAs=X+JOp8VaWPXU#5Na zVCRHoLaxO=vCEym%Ida#syNnHQlQth^Z2~E`SmY*e01u0AGc2|I3}v}nJZj6UEzGh z^T*vkl*%3z`zSqKw${ySb-2{=@;9%azd7dUH*R8hh4uNV@%RQcqaU{2s>PHr2NLl_R?+E zi_~ssD*3)zpzvGlxRm%=A=wq7Z!Z6PnYN&*eSV%A^KXWu%QDO+m*`p@oSb*uVqf;7 z{i|Qu@e0nD-IU756P)>dzrl6G853Ljx}GT)=&^=-U2`z)J-I%!)HSVAnD^wTm47VH zFx`*nSy5CfXLvO9>m#{Y8*Ob*bxKBi9siQFS3cU(#B@XKl-qY-)qlSyF~REmKR>x6 zD)FCVPW{{@wqgCekayd6GcC;j78tHvTA;dxnd9scx1!CGFV+g&JpZoWkmi`mvF7aHwe%hYich)i&PlR2)yySP2+|4(EVN(pVKRkNuT=>!1^OEx0 PtEaTf-~W#+_}2pfj#nxy literal 1978 zcmZQ@_Y83kiVO&0n7!Zo{??bpA&)G#NUQj9FwM5myrXk|(uKVjru47*E4+Sx$#0gK z*(ZW_weG3x+ z*Gt$)6bMa!@L_}N#tJSux!CN#5hraKr@pEdntY;tyT7Tybp?}~K{NUe{lCQ^^VVg; zw$G2`W_+&`ieLHBCv}x#-qzMqo;6A8?Pvarq~GND=G&4A&f-ThUM#V8DtW&T>oiZ&SStJCkbb{bzq7G>OL0NB5zd=>k5Md8toe-ZEN<({P<_nk5El>grge^(c*Kj*)dyW;c? z8==o7YnIJEeW0uCd8M;n)9kp z%r|csZ<(E&amr=VdoA&@#iu`Ly?MIZUz$tv-mBM3SFMZ@HI~r6GiTkpALk#GKdJq$ z_2E~RTas>P-pa!DQ3sZ0PWxNs{b&2!74tq7PU-J)>2NBP;f#BZ8q$+2%A+}s?vtHFHI!RF4= zw>m#gEAz#lzI!sR=}W>>r_AlEyZ%1fBIj1&si+$G-|xgev0}mYzONqhJ!|$ZIhv;N z_|eL=)2CN2JRRjf_3rtagPRT?+24`C_AOJ_dhfPJrmr^yshxU1$x~tXaz!6K7qggG z8c~@uzZG=-)T?XR#-2BKMa!KK$LKkCG=K3}N1ZS#-J)KWVfET(y~Fhe%L>I`A2iNr z{@M56w=t{Xz?;)&A{2EmKRJDP?V3Hzc{&qM`Y*?$eSmv#xqw`TWbWvl6V1)xI|{5>Qusw76Vq@&lnoIy+Oh-Cyf@ z_DX-(vg>b4*2l2;t?pmHuv}_Och=Jv5nq~kl@fjkLQCvNv=wQ0{RsKm!Hhi`9zwzp2w$zM-RVPcIP1q*ub(32r3U+$ve&adowCaUqLR`H`zJuiJ zIW`|vCF}J=cfMMgxi%;)J9^pf`H5d#cj`Rknk1s~#4Rr8iLFhGa;WKgj>gwBd(OHf zF09t>+r^)u8Mf?oWnXXqa`hKym|Jf!SR7ir3^nN=`3ZT zm4R2b?NU45o3}sB>W=o0)?W*@pPo74uT7uOuYLdCnz)$jn&(f_R`fPAn7`BV>3tW@ zUlUTgR?o3JyleOT8M`g^r)*K(y+-`hLgDFt zt3PZjn{sz!sRiSQB^lj@bN_xTZ@;5c!&sEd$su3&*w%aTPj3AU%D$@IVza$+j(z-Q zy-Unyg5Lz6_;|6CZ&x#|61KY?*4MfDgG#{Z0@XvcZ!R6W^*ZBm+A>SG^_72$9KT#Y z#drVT{3g+TtebX*EPWhQ^?xP8w>n8MzwZ#Ud8M~;>(QpO z;zkQgudmL2aMbFHoz|fZ{<^2iq{4{Nz>HtGP5Tiw3=XfY}yB|_XYY>r}=>g3v)6K84e=brdmty_1t@oZ5IHMy$^-y9z% zcP*4V=yl@s(Pi5&?ptfUGtuO-)5!&qYNaQh$e(!4YVl}eMRxLb$#uKuEBCQv#Tpx` zXrIWe%6ipVI>TdDnO}mUs7jyee;}px9Xh<_ujzGJy+zD|Ls!PcII3Aiv>4C(#uS5O!nUY zM4a#E$&fB?pKrplPjuM2dCQKsKYcj&c1p5tQuX1A6t(Xb$HO9Dy=0f$yhKJNG~Jgk zfI0r??UnDi|FD?fa59@;p19d3W{=i_@% From 8b2d527c2315d26a0e473407d4c041eb3d805870 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Thu, 18 Apr 2024 18:41:53 +0200 Subject: [PATCH 4/9] no hypr folder + waybar cclock, nx_gcal_event --- .vscode/launch.json | 22 ++ .../hyprland-autoname-workspaces.nix | 0 home-modules/{hyprland => }/hyprland.nix | 36 --- home-modules/nx-gcal-event.nix | 222 ++++++++++++++++++ home-modules/python.nix | 18 ++ home-modules/{hyprland => }/waybar.nix | 52 +++- home.nix | 20 +- secrets/passwords-and-certificates.nix | Bin 2129 -> 2312 bytes 8 files changed, 317 insertions(+), 53 deletions(-) create mode 100644 .vscode/launch.json rename home-modules/{hyprland => }/hyprland-autoname-workspaces.nix (100%) rename home-modules/{hyprland => }/hyprland.nix (97%) create mode 100644 home-modules/nx-gcal-event.nix create mode 100644 home-modules/python.nix rename home-modules/{hyprland => }/waybar.nix (71%) diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..30a66d0 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,22 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + + + + + + { + "name": "Python Debugger: Current File with Arguments", + "type": "debugpy", + "request": "launch", + "program": "${file}", + "console": "integratedTerminal", + "args": "${command:pickArgs}" + } + ] +} \ No newline at end of file diff --git a/home-modules/hyprland/hyprland-autoname-workspaces.nix b/home-modules/hyprland-autoname-workspaces.nix similarity index 100% rename from home-modules/hyprland/hyprland-autoname-workspaces.nix rename to home-modules/hyprland-autoname-workspaces.nix diff --git a/home-modules/hyprland/hyprland.nix b/home-modules/hyprland.nix similarity index 97% rename from home-modules/hyprland/hyprland.nix rename to home-modules/hyprland.nix index dd7463e..4844a49 100644 --- a/home-modules/hyprland/hyprland.nix +++ b/home-modules/hyprland.nix @@ -50,42 +50,6 @@ in pkgs-unstable.hyprlock pkgs-unstable.hypridle - (pkgs.writeShellScriptBin "waybar_mode" '' - #!/bin/bash - - # Function to print help message - print_help() { - echo "Usage: waybar_mode {set |unset}" - } - if [ $# -lt 1 ]; then - print_help; exit 1; - fi - - case "$1" in - set) - # Check if there is a second argument for the 'set' operation - if [ $# -eq 2 ]; then - echo "$2" > /tmp/waybar-mode - pkill -RTMIN+8 waybar - else - echo "Error: 'set' operation requires exactly one string argument." - print_help - exit 1 - fi - ;; - unset) - echo "" > /tmp/waybar-mode - pkill -RTMIN+8 waybar - ;; - *) - echo "Error: Unknown command '$1'" - print_help - exit 1 - ;; - esac - - exit 0 - '') ]; wayland.windowManager.hyprland = { diff --git a/home-modules/nx-gcal-event.nix b/home-modules/nx-gcal-event.nix new file mode 100644 index 0000000..6a7effe --- /dev/null +++ b/home-modules/nx-gcal-event.nix @@ -0,0 +1,222 @@ +{ config, pkgs, secrets, ... }: +let in +{ + home = { + file."${config.xdg.dataHome}/nx-gcal-event-credentials.json".text = '' + { + "installed": { + "client_id": "${secrets.nx-gcal-event.client-client-id}", + "project_id": "my-own-cal", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_secret": "${secrets.nx-gcal-event.client-secret}", + "redirect_uris": [ + "http://localhost" + ] + } + } + ''; + + packages = with pkgs; [ + # TODO: make into real package, currently dependencies are in home.nix + # (pkgs.python311.withPackages (python-pkgs: [ + # python-pkgs.google + # ])) + (writeScriptBin "nx_gcal_event" '' + #!${pkgs.python3}/bin/python3 + import datetime + import os + import pickle + import sys + + from google.auth.transport.requests import Request + from google.oauth2.credentials import Credentials + from google_auth_oauthlib.flow import InstalledAppFlow + from googleapiclient.discovery import build + from googleapiclient.errors import HttpError + from html import escape + + + + CREDENTIALS_PATH = f"{os.environ['XDG_DATA_HOME']}/nx-gcal-event-credentials.json" + TOKEN_PATH = f"{os.environ['XDG_CACHE_HOME']}/nx-gcal-event-token.json" + PICKLE_PATH = "/tmp/nx-gcal-event.pickle" + + + def sec_to_nice_string(seconds: int): + (hours, rsec) = divmod(seconds, 3600) + minutes = rsec // 60 + sep = " " + if hours == 0: + s_hours = f"" + sep = "" + elif hours == 1: s_hours = f"{hours} hour" + else: s_hours = f"{hours} hours" + if minutes == 0: + s_minutes = f"" + sep = "" + elif minutes == 1: s_minutes = f"{minutes} minute" + else: s_minutes = f"{minutes} minutes" + if hours + minutes == 0: + s_minutes = "~ No time" + os.remove(PICKLE_PATH) + + return f"{s_hours}{sep}{s_minutes}" + + def get_event_from_api(): + creds = None + SCOPES = ["https://www.googleapis.com/auth/calendar.readonly"] + + if os.path.exists(TOKEN_PATH): + creds = Credentials.from_authorized_user_file(TOKEN_PATH, SCOPES) + + if not creds or not creds.valid: + if creds and creds.expired and creds.refresh_token: + creds.refresh(Request()) + else: + flow = InstalledAppFlow.from_client_secrets_file(CREDENTIALS_PATH, SCOPES) + creds = flow.run_local_server(port=0) + # Save the credentials for the next run + with open(TOKEN_PATH, "w") as token: + token.write(creds.to_json()) + + try: + service = build("calendar", "v3", credentials=creds) + now = datetime.datetime.utcnow().isoformat() + "Z" # 'Z' indicates UTC time + in_24_h = (datetime.datetime.utcnow() + datetime.timedelta(days=1)).isoformat() + "Z" + calendar_list = service.calendarList().list().execute() + calendars = calendar_list.get("items", []) + + # List events from all calendars + all_events = [] + for calendar in calendars: + calendar_id = calendar["id"] + events_result = service.events().list( + calendarId=calendar_id, + timeMin=now, + timeMax=in_24_h, + singleEvents=True, + orderBy="startTime", + ).execute() + events = events_result.get("items", []) + + all_events.extend(events) + + # Filter out all-day events + all_events = [event for event in all_events if "dateTime" in event["start"]] + + # Find the earliest event + earliest_event = None + for event in all_events: + event_start = event["start"]["dateTime"] + if not earliest_event or event_start < earliest_event["start"]["dateTime"]: + earliest_event = event + + # Now earliest_event contains the event that starts earliest + return earliest_event + + except HttpError as error: + print("An error occurred: %s" % error) + exit(1) + + def dump_dict_to_file(event, now): + if not event: + event = {} + event['nxWriteTime'] = now + with open(PICKLE_PATH, 'wb') as f: + pickle.dump(event, f) + + def load_dict_from_file(now): + with open(PICKLE_PATH, 'rb') as f: + event = pickle.load(f) + # recheck all 15 minutes + if (now - event['nxWriteTime']).seconds > 900: + event = get_event_from_api() + os.remove(PICKLE_PATH) + return event + + def lookup(): + # set now (timezone CEST) + now = datetime.datetime.now(datetime.timezone(datetime.timedelta(hours=2))) + + no_event_string = "~ Zen ~" + + if os.path.exists(PICKLE_PATH): + event = load_dict_from_file(now) + else: + event = get_event_from_api() + if not event: + print(no_event_string) + dump_dict_to_file(event, now) + exit(0) + dump_dict_to_file(event, now) + + try: # when the saved even was empty (there was no event) + end = datetime.datetime.strptime(event["end"]["dateTime"], "%Y-%m-%dT%H:%M:%S%z") + start = datetime.datetime.strptime(event["start"]["dateTime"], "%Y-%m-%dT%H:%M:%S%z") + except: + if (now - event['nxWriteTime']).seconds > 900: + event = get_event_from_api() + os.remove(PICKLE_PATH) + else: + print(no_event_string) + exit(0) + + # set mode, remaining + if start.day != now.day: # event start tomorrow + print(no_event_string) + exit(0) + elif (start - now).days < 0: # today, started alredy + remaining = end - now + mode = " remaining in " + else: # today, not started yet + remaining = start - now + mode = " until the start of " + + name = escape(event['summary']) + + print(f"󱙬 {sec_to_nice_string(remaining.seconds)}{mode}\'{name}\'") + exit(0) + + def print_help(): + print("Usage: nx_gcal_event [lookup|force-lookup|reauthenicate|help]") + + def forece_lookup(): + try: + os.remove(PICKLE_PATH) + os.system('notify-send --app-name="nx_gcal_event" "Saved event deleted!"') + except: + os.system('notify-send --app-name="nx_gcal_event" "No saved event found!"') + finally: + lookup() + + def reauthenicate(): + os.remove(PICKLE_PATH) + os.remove(TOKEN_PATH) + os.system('notify-send --app-name="nx_gcal_event" "Deleted Token"') + lookup() + + def print_help(): + print("Usage: nx_gcal_event [lookup|force-lookup|reauthenicate|help]") + + if __name__ == "__main__": + if len(sys.argv) != 2: + print("Incorrect number of arguments.") + print_help() + else: + arg = sys.argv[1] + if arg == "lookup": + lookup() + elif arg == "force-lookup": + forece_lookup() + elif arg == "reauthenticate": + reauthenicate() + elif arg == "help": + print_help() + else: + print_help() + '') + ]; + }; +} diff --git a/home-modules/python.nix b/home-modules/python.nix new file mode 100644 index 0000000..4d53a84 --- /dev/null +++ b/home-modules/python.nix @@ -0,0 +1,18 @@ +{ config, pkgs, ... }: +let + python-with-packages = pkgs.python3.withPackages (pp: with pp; [ + ipython + pipdeptree + requests + google google-api-python-client google-auth-httplib2 google-auth-oauthlib + ]); +in +{ + home.packages = [ + python-with-packages + ]; + + home.sessionVariables = { + PYTHONPATH = "${python-with-packages}/${python-with-packages.sitePackages}"; + }; +} \ No newline at end of file diff --git a/home-modules/hyprland/waybar.nix b/home-modules/waybar.nix similarity index 71% rename from home-modules/hyprland/waybar.nix rename to home-modules/waybar.nix index fab7142..292d2bf 100644 --- a/home-modules/hyprland/waybar.nix +++ b/home-modules/waybar.nix @@ -2,8 +2,56 @@ let in { + imports = [ + ./nx-gcal-event.nix + ]; + home.packages = with pkgs; [ waybar + + (pkgs.writeShellScriptBin "waybar_mode" '' + #!/usr/bin/env bash + print_help() { + echo "Usage: waybar_mode {set |unset}" + } + if [ $# -lt 1 ]; then + print_help; exit 1; + fi + case "$1" in + set) + # Check if there is a second argument for the 'set' operation + if [ $# -eq 2 ]; then + echo "$2" > /tmp/waybar-mode + pkill -RTMIN+8 waybar + else + echo "Error: 'set' operation requires exactly one string argument." + print_help + exit 1 + fi + ;; + unset) + echo "" > /tmp/waybar-mode + pkill -RTMIN+8 waybar + ;; + *) + echo "Error: Unknown command '$1'" + print_help + exit 1 + ;; + esac + exit 0 + '') + (pkgs.writeShellScriptBin "cclock" '' + #!/bin/bash + #ord=$(date +"%e" | awk '{printf("%d%s\n", $1, substr("thstndrd", ($1%100-20)%10*2+1, 2))}') + ord=$(date +"%e" | awk '{printf("%d%s\n", $1, ($1==11||$1==12||$1==13)?"th":((($1%10)==1)?"st":((($1%10)==2)?"nd":((($1%10)==3)?"rd":"th"))))}') + if [ $# -eq 0 ]; then + echo "󰃮 $(date +'%A the')" "$ord" "of" "$(date +'%B')" "  " "$(date +'%R')" + elif [ "$1" = "--no-icons" ]; then + echo "$(date +'%A the')" "$ord" "of" "$(date +'%B')" "$(date +'%R')" + fi + '') + ]; programs.waybar = { @@ -48,11 +96,11 @@ in separate-outputs = true; }; "custom/cclock" = { - exec = "/home/nx2/scripts/cclock.sh"; + exec = "cclock"; restart-interval = 60; }; "custom/ctimeremaining" = { - exec = "python /home/nx2/scripts/NxGCalEvent/get-remaining-time.py"; + exec = "nx_gcal_event lookup"; restart-interval = 60; }; "custom/mode" = { diff --git a/home.nix b/home.nix index af1e6ff..7e0d3dc 100644 --- a/home.nix +++ b/home.nix @@ -14,9 +14,9 @@ ./home-modules/pnx/pnx.nix # ./home-modules/hsmw.nix - ./home-modules/hyprland/hyprland.nix - ./home-modules/hyprland/hyprland-autoname-workspaces.nix - ./home-modules/hyprland/waybar.nix + ./home-modules/hyprland.nix + ./home-modules/hyprland-autoname-workspaces.nix + ./home-modules/waybar.nix ./home-modules/wlogout.nix ./home-modules/kitty.nix @@ -31,6 +31,8 @@ ./home-modules/theme/gtk.nix ./home-modules/theme/qt.nix + + ./home-modules/python.nix ]; home.username = "nx2"; home.homeDirectory = "/home/nx2"; @@ -66,18 +68,6 @@ gnumake speedtest-go - - (pkgs.python3.withPackages (python-pkgs: [ - python-pkgs.ipython - python-pkgs.pipdeptree - python-pkgs.requests - ])) - # (writeShellScriptBin "nxrbs-nix" '' - # set -e - # pushd ~/.nix-dots/ - # git diff - # '') - ]; xdg = { diff --git a/secrets/passwords-and-certificates.nix b/secrets/passwords-and-certificates.nix index 80b568a0ec568984047ac36567c7783d1a143277..40e0a49d2690b016992a5ba249a5039d9f3a0dcf 100644 GIT binary patch literal 2312 zcmZQ@_Y83kiVO&0XcJ8GZQE;;varejzuWCQg{m*xtCU`cWvI8A&XH2Mz9TWKe6@B! z*u&i-kHiY>&L7^ESpTDaEyvl<{Svmk*O=XodRTtZT%DK}uQW|*$JLiMrg{oj8#b0% zyuvsuZca;&?x7v ze2>CL*=4nTc8)A=Z6W~FUOHyYpAszx|qXXxTZJ(ELMO<~J`e zHEYiO=PtOUuZC@->7L;HY8DNjOT}9mb8l|$miW@NY4WyNqE6pmYdo4-vhnyiX2-LR zMl(AkcW63pwk_?DSXQoZ=!o3^2`!#plb7!LD$65fTF35qWBtyUX|FbK%3brDt#szi z2H#yNNiW5Y{OED5mI#XJ7F`z>JHPU7Rl}jnc^~4Lr4+KCb9$QR1=L=Caklu@Gl}zI zN}JstaF?%BJf_;KDx&bLqV%$!{@y!g1$OmCr}|o2wkvM2C^4MGWjXy|mfMyf-@9A+ z6Mh(WIxf(6WuA3 z-7N0kbz~Ga&f7F$n}Q8XD?8^hiTJ8RMo*8Pi@T)x*4yyFhGe~6ejUF9`4-IH<5=8~ zl(6Oeqb=eY0@CxAwR(EgzFN~NQIsjQWsa;W;~dT{PioEcUwe!HjVW5QpWQrl%fGC$ z!qB<{Qwle)@=e!ZTv(jE^+n#Ko7>kNF70f;{OYVg#vQ3ER^Q(4Q7>xh{dc77^>wW| zr+u0>rbVQ+rteqUeD$3o!-|8wo_ppnWJF0QUp{!oX`SMRM_b=%>)&H9aNxSJ^GktY zT$DBUg}43LvSKNQj!Nyf7nS`x!dd0^LbGv?L_>Vhwz@j^H0v_mIhDpbf9C$4`Fz(r zMu`K*w?C*bRf@~_^_c0!P3Nz@4vXjVrpZY?a}t?saQxc^7G>)|t6DG4h`0xCSt_CW zFD4(e{u;YBle=sBKg;Pq8~ww5_|snfRbRrt!Dx|W>ZTo^ezO(jvd$I@@6b%+3OH~f zs6FXx)`6$X@CB~spYTFt%CvULi!y&7G?3%dCFj*nUItffbHt6tAlS4$$oKsd`a?wTMUVLF!#@*RvU1LvrRS^tH~M`hr2lmg`@$Bbj>nDHuZS7_`z6Eh zagzFLmDPtj3MVf+_Nm(Myjav!#T5$jI(A&|HwMj)$uyfFBO(9nl3dVZb$_0teR|7T z-leU+Z}sG;OyTZzlkUh*z0$lhaj&idkLLRMCHwcu$8CHy#U(IhvN@bob{onU4OHS8Bdz z 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 PtEaTf-~W#+_}2pfj#nxy From eee10802bba09df6cd3fb9c9626452f43264b773 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Thu, 18 Apr 2024 18:46:01 +0200 Subject: [PATCH 5/9] nx_gcal_event hotkeys --- home-modules/hyprland.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/home-modules/hyprland.nix b/home-modules/hyprland.nix index 4844a49..96ef6ea 100644 --- a/home-modules/hyprland.nix +++ b/home-modules/hyprland.nix @@ -305,8 +305,8 @@ in # "SUPER, F2," "SUPER, F3, toggleopaque" # "SUPER, F4," - "SUPER, F5, exec, /home/nx2/scripts/NxGCalEvent/force-new-lookup.sh" - "SUPER SHIFT, F5, exec, /home/nx2/scripts/NxGCalEvent/force-reauthentication.sh" + "SUPER, F5, exec, nx_gcal_event force-lookup" + "SUPER SHIFT, F5, exec, nx_gcal_event reauthenticate" # "SUPER, F6," "SUPER, F8, exec, /home/nx2/scripts/swww-randomize.sh" # "SUPER, F9, hyprload,reload" From 72e98a62859075a5328c64612883e4f7c19f4ac2 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Thu, 18 Apr 2024 19:18:54 +0200 Subject: [PATCH 6/9] mako time fix --- home-modules/mako.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/home-modules/mako.nix b/home-modules/mako.nix index e5d5f3f..01ee408 100644 --- a/home-modules/mako.nix +++ b/home-modules/mako.nix @@ -7,10 +7,10 @@ ]; services.mako = { enable = true; - defaultTimeout = 5; + defaultTimeout = 10000; # in ms backgroundColor = "#${rice.color.background}"; textColor = "#${rice.color.foreground}"; borderColor = "#${rice.color.border}"; - font = "#${rice.font.code.name}"; + font = rice.font.code.name; }; } \ No newline at end of file From 1683946235230a987d7e3ec932274ccd52ca5ff0 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Thu, 18 Apr 2024 20:53:28 +0200 Subject: [PATCH 7/9] nh --- flake.nix | 4 ++-- home-modules/shell/nh.nix | 13 +++++++++++++ home.nix | 1 + 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 home-modules/shell/nh.nix diff --git a/flake.nix b/flake.nix index 0ef5ed8..bba8501 100644 --- a/flake.nix +++ b/flake.nix @@ -125,12 +125,12 @@ }; homeConfigurations = { - NxXPS = let host = "NxXPS"; in home-manager.lib.homeManagerConfiguration { + "${user}@NxXPS" = let host = "NxXPS"; in home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = [ ./home.nix ]; extraSpecialArgs = { inherit inputs system user host allowed secrets pkgs-unstable rice nvidia; }; }; - NxNORTH = let host = "NxNORTH"; in home-manager.lib.homeManagerConfiguration { + "${user}@NxNORTH" = let host = "NxNORTH"; in home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = [ ./home.nix ]; extraSpecialArgs = { inherit inputs system user host allowed secrets pkgs-unstable rice nvidia; }; diff --git a/home-modules/shell/nh.nix b/home-modules/shell/nh.nix new file mode 100644 index 0000000..3aea2ac --- /dev/null +++ b/home-modules/shell/nh.nix @@ -0,0 +1,13 @@ +{ config, pkgs-unstable, ... }: +{ + home = { + packages = with pkgs-unstable; [ + nh + nix-output-monitor + nvd + ]; + sessionVariables = { + FLAKE = "${config.home.homeDirectory}/nix-dots"; + }; + }; +} \ No newline at end of file diff --git a/home.nix b/home.nix index 7e0d3dc..a988788 100644 --- a/home.nix +++ b/home.nix @@ -24,6 +24,7 @@ ./home-modules/shell/starship.nix ./home-modules/shell/yazi.nix ./home-modules/shell/zoxide.nix + ./home-modules/shell/nh.nix ./home-modules/ssh.nix ./home-modules/git.nix From bf7848df01b1ce682a29301d8a3c776a2008a5b7 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Fri, 19 Apr 2024 17:28:08 +0200 Subject: [PATCH 8/9] nxricelib --- flake.nix | 65 +++++++++---------- home-modules/hyprland-autoname-workspaces.nix | 14 +--- home-modules/hyprland.nix | 24 +++---- home-modules/kitty.nix | 45 +++++++------ home-modules/mako.nix | 2 +- home-modules/vscode.nix | 4 +- home-modules/waybar.nix | 48 ++++++-------- home-modules/wlogout.nix | 2 +- nxlib/ricelib.nix | 64 ++++++++++++++++++ 9 files changed, 157 insertions(+), 111 deletions(-) create mode 100644 nxlib/ricelib.nix diff --git a/flake.nix b/flake.nix index bba8501..458f3ca 100644 --- a/flake.nix +++ b/flake.nix @@ -17,30 +17,22 @@ url = "github:hyprwm/hyprland-plugins"; inputs.hyprland.follows = "hyprland"; }; - - # hyprfocus = { - # url = "github:VortexCoyote/hyprfocus"; - # inputs.hyprland.follows = "hyprland"; - # }; - Hyprspace = { url = "github:KZDKM/Hyprspace"; inputs.hyprland.follows = "hyprland"; }; - # hycov = { - # url = "github:DreamMaoMao/hycov"; - # inputs.hyprland.follows = "hyprland"; - # }; }; outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, ... }@inputs: - # outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, hyprland, ... }@inputs: let system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; pkgs-unstable = nixpkgs-unstable.legacyPackages.${system}; + + overlays = [ inputs.nix-rice.overlays.default ]; + user = "nx2"; nvidia = rec { @@ -74,34 +66,39 @@ }; secrets = import ./secrets/passwords-and-certificates.nix; - - rice = { - transparency = "0.9"; + + rice = rec { + lib = import ./nxlib/ricelib.nix { lib = nixpkgs.lib; }; + transparency = 0.9; + rounding = 5; color = rec { - background = "000000"; # #000000 - foreground = "dddddd"; # #dddddd - black = "282B35"; # #282B35 - bright-black = "686A71"; # #686A71 - blue = "9d00ff"; # #9d00ff - bright-blue = "c76eff"; # #c76eff - cyan = "00ddff"; # #00ddff - bright-cyan = "33f9ff"; # #33f9ff - green = "0048ff"; # #0048ff - bright-green = "1166ff"; # #1166ff - magenta = "B21889"; # #B21889 - bright-magenta = "ff75f6"; # #ff75f6 - red = "ff0044"; # #ff0044 - bright-red = "ff4576"; # #ff4576 - white = "939599"; # #939599 - bright-white = "ffffff"; # #ffffff - yellow = "ff4000"; # #ff4000 - bright-yellow = "ff8454"; # #ff8454 + background = "#000000"; + foreground = "#dddddd"; + black = "#282B35"; + bright-black = "#686A71"; + blue = "#9d00ff"; + bright-blue = "#c76eff"; + cyan = "#00ddff"; + bright-cyan = "#33f9ff"; + green = "#0048ff"; + bright-green = "#1166ff"; + magenta = "#B21889"; + bright-magenta = "#ff75f6"; + red = "#ff0044"; + bright-red = "#ff4576"; + white = "#939599"; + bright-white = "#ffffff"; + yellow = "#ff4000"; + bright-yellow = "#ff8454"; border = red; }; font = { code = { - name = "CascadiaCove-NF"; - package = (pkgs.nerdfonts.override { fonts = [ "CascadiaCode" ]; }); + name = "JetBrainsMono-NF"; + name2 = "JetBrainsMono Nerd Font"; + package = (pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; }); + # name = "CascadiaCove-NF"; + # package = (pkgs.nerdfonts.override { fonts = [ "CascadiaCode" ]; }); }; base = { name = "Atkinson Hyperlegible"; diff --git a/home-modules/hyprland-autoname-workspaces.nix b/home-modules/hyprland-autoname-workspaces.nix index a597821..395b98b 100644 --- a/home-modules/hyprland-autoname-workspaces.nix +++ b/home-modules/hyprland-autoname-workspaces.nix @@ -63,17 +63,6 @@ [initial_class_active] [workspaces_name] - 10 = "ten" - 4 = "four" - 8 = "eight" - 9 = "nine" - 6 = "six" - 1 = "one" - 3 = "three" - 2 = "two" - 0 = "zero" - 7 = "seven" - 5 = "five" [title_in_class] [title_in_class_active] @@ -87,7 +76,6 @@ [exclude] "(?i)fcitx" = ".*" aProgram = "^$" - "ueberzug.*" = "" "" = "^$" "[Ss]team" = "^(Friends List.*)?$" "explorer.exe" = ".*" @@ -97,7 +85,7 @@ dedup = false dedup_inactive_fullscreen = false delim = " " - workspace = "{id}: {clients}" + workspace = "{id}:{clients}" workspace_empty = "{id}" client = "{icon}" client_fullscreen = "{icon}" diff --git a/home-modules/hyprland.nix b/home-modules/hyprland.nix index 96ef6ea..ce9b6c8 100644 --- a/home-modules/hyprland.nix +++ b/home-modules/hyprland.nix @@ -1,9 +1,9 @@ { config, pkgs, pkgs-unstable, inputs, host, nvidia, rice, lib, ... }: let animation-speed = "2"; - transparency = rice.transparency; + transparency = builtins.toString rice.transparency; gap-size = 10; - rounding = 3; + rounding = rice.rounding; border-width = 3; monitors = { xps = { @@ -143,8 +143,8 @@ in gaps_in = builtins.div gap-size 2; gaps_out = gap-size; border_size = border-width; - "col.active_border" = "rgba(${rice.color.red}ff) rgba(${rice.color.bright-cyan}ff) 45deg"; - "col.inactive_border" = "rgba(${rice.color.black}ff)"; + "col.active_border" = "rgba(${rice.lib.nohash rice.color.red}ff) rgba(${rice.lib.nohash rice.color.cyan}ff) 90deg"; + "col.inactive_border" = "rgba(${rice.lib.nohash rice.color.black}ff)"; cursor_inactive_timeout = 10; @@ -159,8 +159,8 @@ in shadow_range = "20"; shadow_offset = "0 0"; shadow_render_power = "4"; - "col.shadow" = "rgba(${rice.color.red}ff)"; - "col.shadow_inactive" = "rgba(${rice.color.black}ff)"; + "col.shadow" = "rgba(${rice.lib.nohash rice.color.red}ff)"; + "col.shadow_inactive" = "rgba(${rice.lib.nohash rice.color.black}ff)"; active_opacity = "1.0"; inactive_opacity = "1.0"; @@ -239,7 +239,7 @@ in windowrulev2 = [ "opacity ${transparency},class:^(com.chatterino.*)$" "opacity ${transparency},class:^(chatterino)$" - "bordercolor rgba(${rice.color.bright-magenta}ff), pinned:1" + "bordercolor rgba(${rice.lib.nohash rice.color.bright-magenta}ff), pinned:1" ]; windowrule = [ @@ -250,8 +250,8 @@ in "opacity ${transparency}, neovide" "opacity ${transparency}, obsidian" "opacity ${transparency}, zathura" - "bordercolor rgba(${rice.color.foreground}ff) rgba(${rice.color.background}b2), Alacritty" - "bordercolor rgba(${rice.color.foreground}ff) rgba(${rice.color.background}b2), Kitty" + "bordercolor rgba(${rice.lib.nohash rice.color.foreground}ff) rgba(${rice.lib.nohash rice.color.background}${rice.lib.float-to-drune rice.transparency}), Alacritty" + "bordercolor rgba(${rice.lib.nohash rice.color.foreground}ff) rgba(${rice.lib.nohash rice.color.background}${rice.lib.float-to-drune rice.transparency}), Kitty" "opacity ${transparency}, discord" "opacity ${transparency}, vesktop" "opacity ${transparency}, Element" @@ -313,8 +313,8 @@ in # "SUPER, F10, hyprload,update" "SUPER, F11, exec, waybar" "SUPER SHIFT, F11, exec, pkill waybar " - "SUPER, F12, exec, hyprland-autoname-workspaces --migrate-config &" - "SUPER SHIFT, F12, exec, pkill hyprland-autoname-workspaces " + "SUPER, F12, exec, hyprland-autoname-workspaces" + "SUPER SHIFT, F12, exec, pkill -9 hyprland-autoname-workspaces " ########################################################################### ## ROW 1: @@ -778,7 +778,7 @@ in hyprexpo { columns = 5 gap_size = ${builtins.toString gap-size} - bg_col = rgb(${rice.color.background}) + bg_col = rgb(${rice.lib.nohash rice.color.background}) workspace_method = first 10 # [center/first] [workspace] e.g. first 1 or center m+1 enable_gesture = false # laptop touchpad, 4 fingers diff --git a/home-modules/kitty.nix b/home-modules/kitty.nix index 41c544c..d95eefe 100644 --- a/home-modules/kitty.nix +++ b/home-modules/kitty.nix @@ -9,28 +9,31 @@ in programs.kitty = { enable = true; - font = rice.font.code; + font = { + name = rice.font.code.name2; + package = rice.font.code.package; + }; settings = { - background = "#${rice.color.background}"; - foreground = "#${rice.color.foreground}"; - cursor = "#${rice.color.foreground}"; - color0 = "#${rice.color.black}"; - color8 = "#${rice.color.bright-black}"; - color1 = "#${rice.color.red}"; - color9 = "#${rice.color.bright-red}"; - color2 = "#${rice.color.green}"; - color10 = "#${rice.color.bright-green}"; - color3 = "#${rice.color.yellow}"; - color11 = "#${rice.color.bright-yellow}"; - color4 = "#${rice.color.blue}"; - color12 = "#${rice.color.bright-blue}"; - color5 = "#${rice.color.magenta}"; - color13 = "#${rice.color.bright-magenta}"; - color6 = "#${rice.color.cyan}"; - color14 = "#${rice.color.bright-cyan}"; - color7 = "#${rice.color.white}"; - color15 = "#${rice.color.bright-white}"; - background_opacity = rice.transparency; + background = rice.color.background; + foreground = rice.color.foreground; + cursor = rice.color.foreground; + color0 = rice.color.black; + color8 = rice.color.bright-black; + color1 = rice.color.red; + color9 = rice.color.bright-red; + color2 = rice.color.green; + color10 = rice.color.bright-green; + color3 = rice.color.yellow; + color11 = rice.color.bright-yellow; + color4 = rice.color.blue; + color12 = rice.color.bright-blue; + color5 = rice.color.magenta; + color13 = rice.color.bright-magenta; + color6 = rice.color.cyan; + color14 = rice.color.bright-cyan; + color7 = rice.color.white; + color15 = rice.color.bright-white; + background_opacity = builtins.toString rice.transparency; transparency = true; scroll_multiplier = 9; window_padding_width = 5; diff --git a/home-modules/mako.nix b/home-modules/mako.nix index 01ee408..af16d73 100644 --- a/home-modules/mako.nix +++ b/home-modules/mako.nix @@ -11,6 +11,6 @@ backgroundColor = "#${rice.color.background}"; textColor = "#${rice.color.foreground}"; borderColor = "#${rice.color.border}"; - font = rice.font.code.name; + font = rice.font.code.name2; }; } \ No newline at end of file diff --git a/home-modules/vscode.nix b/home-modules/vscode.nix index 2fdee63..deb7c1c 100644 --- a/home-modules/vscode.nix +++ b/home-modules/vscode.nix @@ -1,4 +1,4 @@ -{ config, pkgs, lib, system, user, allowed, secrets, ... }: +{ config, pkgs, lib, user, rice, allowed, ... }: { home.packages = [ @@ -78,7 +78,7 @@ ]; userSettings = { workbench.colorTheme = "Just Black"; - editor.fontFamily = "'CaskaydiaCove Nerd Font', 'monospace', monospace"; + editor.fontFamily = "'${rice.font.code.name2}', 'monospace', monospace"; emote.SSH.useLocalServer = false; }; enableUpdateCheck = false; diff --git a/home-modules/waybar.nix b/home-modules/waybar.nix index 292d2bf..dba86d9 100644 --- a/home-modules/waybar.nix +++ b/home-modules/waybar.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: +{ config, lib, pkgs, rice, ... }: let in { @@ -60,6 +60,7 @@ in bar = { height = 20; layer = "top"; + # position = "top"; position = "bottom"; margin-top = 0; margin-left = 0; @@ -153,30 +154,29 @@ in ]; }; network = { - format-wifi = "直 {essid}"; - format-ethernet = " Wired"; - format-disconnected = "睊 Disconnected"; + format-wifi = " {essid}"; + format-ethernet = "󰈀 Wired"; + format-disconnected = "󰌙 Disconnected"; }; wireplumber = { format = "󰕾 {volume}%"; - format-muted = "婢 Muted"; + format-muted = " Muted"; }; }; }; style = '' * { - font-family: Atkinson Hyperlegible, Caskaydia Cove NF, Noto Sans; - font-weight: bold; - font-size: 1.01em; + font-family: ${rice.font.code.name2}; + font-size: 1em; min-height: 0; } window#waybar { - background-color: rgba(0, 0, 0, 0.85); + background-color: rgba(${rice.lib.hex-to-rgb-comma-string rice.color.background},${builtins.toString rice.transparency}); transition-duration: 0.5s; padding: 0.1em 1em; padding-top: 0.1em; - border: 0px solid transparent; + border: None; } #clock, @@ -195,40 +195,34 @@ in #workspaces { padding: 0px 3px; margin-top: 0.3em; - border-radius: 0.8em; - color: white; - } - - #window { - font-weight: normal; + border-radius: ${builtins.toString rice.rounding}px; + color: rgb(${rice.lib.hex-to-rgb-comma-string rice.color.foreground}); } #workspaces button { - color: grey; + color: rgb(${rice.lib.hex-to-rgb-comma-string rice.color.bright-black}); padding: 0px 10px; margin: 1px; - border-radius: 0.2em; - border: 0px solid transparent; - } - - #workspaces button.focused { - background-color: darkred; + border-radius: ${builtins.toString rice.rounding}px; + border: None; } #workspaces button:hover { - background-color: green; + color: rgb(${rice.lib.hex-to-rgb-comma-string rice.color.background}); + background-color: rgba(${rice.lib.hex-to-rgb-comma-string rice.color.foreground},${builtins.toString rice.transparency}); } #workspaces button.active { - color: white; + color: rgb(${rice.lib.hex-to-rgb-comma-string rice.color.foreground}); + background-color: rgba(${rice.lib.hex-to-rgb-comma-string rice.color.background},${builtins.toString rice.transparency}); } #workspaces button.urgent { - background-color: darkorchid; + background-color: rgba(${rice.lib.hex-to-rgb-comma-string rice.color.magenta},${builtins.toString rice.transparency}); } #custom-mode { - color: crimson; + color: rgb(${rice.lib.hex-to-rgb-comma-string rice.color.red}); } #cpu { diff --git a/home-modules/wlogout.nix b/home-modules/wlogout.nix index 9ea6402..e0473be 100644 --- a/home-modules/wlogout.nix +++ b/home-modules/wlogout.nix @@ -12,7 +12,7 @@ font-family: ${rice.font.code.name}, monospace; font-size: 12pt; color: ${rice.color.foreground}; - background-color: rgba(0, 0, 0, ${rice.transparency}); + background-color: rgba(0, 0, 0, ${builtins.toString rice.transparency}); } button { diff --git a/nxlib/ricelib.nix b/nxlib/ricelib.nix new file mode 100644 index 0000000..65d5753 --- /dev/null +++ b/nxlib/ricelib.nix @@ -0,0 +1,64 @@ +{ lib, ... }: +rec +{ + nohash = s: builtins.substring 1 7 s; + + slice-hex = hex: { r = builtins.substring 0 2 hex; g = builtins.substring 2 2 hex; b = builtins.substring 4 5 hex; }; + + # https://github.com/bertof/nix-rice + rune-to-num = c: + let + k = lib.strings.toUpper c; + dict = { + "0" = 0; + "1" = 1; + "2" = 2; + "3" = 3; + "4" = 4; + "5" = 5; + "6" = 6; + "7" = 7; + "8" = 8; + "9" = 9; + "A" = 10; + "B" = 11; + "C" = 12; + "D" = 13; + "E" = 14; + "F" = 15; + }; + in + assert(builtins.hasAttr k dict); + builtins.getAttr k dict; + + drune-to-255 = hex: (rune-to-num (builtins.substring 0 1 hex)) * 15 + (rune-to-num (builtins.substring 1 2 hex)); + + hex-to-rgb-comma-string = hex: let color = (slice-hex (nohash hex)); in "${builtins.toString (drune-to-255 color.r)},${builtins.toString (drune-to-255 color.g)},${builtins.toString (drune-to-255 color.b)}"; + + num-to-rune = n: + let + ns = builtins.toString n; + dict = { + "0" = "0"; + "1" = "1"; + "2" = "2"; + "3" = "3"; + "4" = "4"; + "5" = "5"; + "6" = "6"; + "7" = "7"; + "8" = "8"; + "9" = "9"; + "10" = "A"; + "11" = "B"; + "12" = "C"; + "13" = "D"; + "14" = "E"; + "15" = "F"; + }; + in + assert(builtins.hasAttr ns dict); + builtins.getAttr ns dict; + + float-to-drune = f: "${num-to-rune (builtins.floor((255*f) / 16))}${num-to-rune (builtins.floor(255*f) - (builtins.floor((255 * f) / 16) * 16))}"; +} \ No newline at end of file From 119d841e981e011d016232e04e5ac9e7ec93189d Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Fri, 19 Apr 2024 17:29:53 +0200 Subject: [PATCH 9/9] cyan -> blue --- home-modules/hyprland.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home-modules/hyprland.nix b/home-modules/hyprland.nix index ce9b6c8..675a386 100644 --- a/home-modules/hyprland.nix +++ b/home-modules/hyprland.nix @@ -143,7 +143,7 @@ in gaps_in = builtins.div gap-size 2; gaps_out = gap-size; border_size = border-width; - "col.active_border" = "rgba(${rice.lib.nohash rice.color.red}ff) rgba(${rice.lib.nohash rice.color.cyan}ff) 90deg"; + "col.active_border" = "rgba(${rice.lib.nohash rice.color.red}ff) rgba(${rice.lib.nohash rice.color.blue}ff) 90deg"; "col.inactive_border" = "rgba(${rice.lib.nohash rice.color.black}ff)"; cursor_inactive_timeout = 10;