dev #19
					 80 changed files with 12733 additions and 902 deletions
				
			
		
							
								
								
									
										2
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							|  | @ -1 +1,3 @@ | ||||||
| result | result | ||||||
|  | 
 | ||||||
|  | .idea | ||||||
|  |  | ||||||
							
								
								
									
										
											BIN
										
									
								
								assets/bluescreen.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/bluescreen.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 112 KiB | 
							
								
								
									
										225
									
								
								colors.sh
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										225
									
								
								colors.sh
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,225 @@ | ||||||
|  | # tdpeuter color schemes | ||||||
|  | # The goal is to offer light and dark theme that is easy on the eyes, | ||||||
|  | # whilst also being unique and defining. | ||||||
|  | 
 | ||||||
|  | ############################### | ||||||
|  | # tdpeuter-light color scheme # | ||||||
|  | ############################### | ||||||
|  | 
 | ||||||
|  | # 171717 # Foreground | ||||||
|  | # FAFAFA # Daisy (Background) | ||||||
|  | 
 | ||||||
|  | # Regular colors (0-7) | ||||||
|  | 
 | ||||||
|  | # 000000 # Black (0) | ||||||
|  | # 1 | ||||||
|  | # 2 | ||||||
|  | # 3 | ||||||
|  | # 4 | ||||||
|  | # 5 | ||||||
|  | # 6 | ||||||
|  | # 7 | ||||||
|  | 
 | ||||||
|  | # Bright colors (8-15) | ||||||
|  | 
 | ||||||
|  | # 000000 # Black (8) | ||||||
|  | # 9 | ||||||
|  | # 10 | ||||||
|  | # 11 | ||||||
|  | # 12 | ||||||
|  | # 13 | ||||||
|  | # 14 | ||||||
|  | # 15 | ||||||
|  | 
 | ||||||
|  | ############################## | ||||||
|  | # tdpeuter-dark color scheme # | ||||||
|  | ############################## | ||||||
|  | 
 | ||||||
|  | # FAFAFA # Daisy      (Foreground) | ||||||
|  | printf "\033]10;#FAFAFA\007" | ||||||
|  | # 171717 # Background | ||||||
|  | printf "\033]11;#171717\007" | ||||||
|  | 
 | ||||||
|  | # Regular colors (0-7) | ||||||
|  | 
 | ||||||
|  | # 242124 # Black                   0 | ||||||
|  | printf "\033]4;0;#242124\007" | ||||||
|  | # B90E0A # Crimson    (Red)        1 | ||||||
|  | printf "\033]4;1;#B90E0A\007" | ||||||
|  | # B2BC68 # Leafy      (Green)      2 | ||||||
|  | printf "\033]4;2;#B2BC68\007" | ||||||
|  | # FFE135 # Banana     (Yellow)     3 | ||||||
|  | printf "\033]4;3;#FFE135\007" | ||||||
|  | # 80A2BE # Icicle     (Blue)       4 | ||||||
|  | printf "\033]4;4;#80A2BE\007" | ||||||
|  | # A45EE5 # Amethyst   (Magenta)    5 | ||||||
|  | printf "\033]4;5;#A45EE5\007" | ||||||
|  | #        #            (Cyan)       6 | ||||||
|  | printf "\033]4;6;#80A2BE\007" | ||||||
|  | # FBFCF8 # Pearl      (White)      7 | ||||||
|  | printf "\033]4;7;#FBFCF8\007" | ||||||
|  | 
 | ||||||
|  | # Bright colors (8-15) | ||||||
|  | 
 | ||||||
|  | # 363636 # Grey-isch  (Black)      8 | ||||||
|  | printf "\033]4;8;#363636\007" | ||||||
|  | # BC544B # Blush      (Red)        9 | ||||||
|  | printf "\033]4;9;#BC544B\007" | ||||||
|  | # A6E3A1 # Lime       (Green)     10 | ||||||
|  | printf "\033]4;10;#A6E3A1\007" | ||||||
|  | # FCF4A3 # Banana     (Yellow)    11 | ||||||
|  | printf "\033]4;11;#FCF4A3\007" | ||||||
|  | # 74C7EC # Sapphire   (Blue)      12 | ||||||
|  | printf "\033]4;12;#74C7EC\007" | ||||||
|  | # B4BEFE # Lavender   (Magenta)   13 | ||||||
|  | # #CBA6F7 | ||||||
|  | printf "\033]4;13;#B4BEFE\007" | ||||||
|  | #        #            (Cyan)      14 | ||||||
|  | printf "\033]4;14;#74C7EC\007" | ||||||
|  | # FFFFFF # White                  15 | ||||||
|  | printf "\033]4;15;#FFFFFF\007" | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # NEW COLORS 20241101 | ||||||
|  | # | ||||||
|  | # Nr #   R   G   B   H   S   B # Name | ||||||
|  | # FG # 250 250 250   0   0  98 # Daisy (White) | ||||||
|  | printf "\033]10;#FAFAFA\007" | ||||||
|  | # BG #  19  19  19   0   0   7 # - | ||||||
|  | printf "\033]11;#131313\007" | ||||||
|  | 
 | ||||||
|  | # Regular colors (0-7) | ||||||
|  | 
 | ||||||
|  | # Nr #   R   G   B   H   S   B # Name | ||||||
|  | #  0 #  61  61  61   0   0  24 # - (Black) | ||||||
|  | printf "\033]4;0;#3D3D3D\007" | ||||||
|  | #  1 # 186  19  61 345  90  73 # - (Red) | ||||||
|  | printf "\033]4;1;#BA133D\007" | ||||||
|  | #  2 #  61 186  19 105  90  73 # - (Green) | ||||||
|  | printf "\033]4;2;#3DBA13\007" | ||||||
|  | #  3 # 186 144  19  45  90  73 # - (Yellow) | ||||||
|  | printf "\033]4;3;#BA9013\007" | ||||||
|  | #  4 #  19  61 186 225  90  73 # - (Blue) | ||||||
|  | printf "\033]4;4;#133DBA\007" | ||||||
|  | #  5 # 144  19 186 285  90  73 # - (Magenta) | ||||||
|  | printf "\033]4;5;#9013BA\007" | ||||||
|  | #  6 #  19 186 144 165  90  73 # - (Cyan) | ||||||
|  | printf "\033]4;6;#13BA90\007" | ||||||
|  | #  7 # 186 186 186   0   0  73 # - (White) | ||||||
|  | printf "\033]4;7;#BABABA\007" | ||||||
|  | 
 | ||||||
|  | # Bright colors (8-15) | ||||||
|  | 
 | ||||||
|  | # Nr #   R   G   B   H   S   B # Name | ||||||
|  | #  8 # 122 122 122   0   0  48 # - (Black) | ||||||
|  | printf "\033]4;8;#363636\007" | ||||||
|  | #  9 # 250  25  81 345  90  98 # - (Red) | ||||||
|  | printf "\033]4;9;#FA1951\007" | ||||||
|  | # 10 #  81 250  25 105  90  98 # - (Green) | ||||||
|  | printf "\033]4;10;#51FA19\007" | ||||||
|  | # 11 # 250 194  25  45  90  98 # - (Yellow) | ||||||
|  | printf "\033]4;11;#FAC219\007" | ||||||
|  | # 12 #  25  81 250 225  90  98 # - (Blue) | ||||||
|  | printf "\033]4;12;#1951FA\007" | ||||||
|  | # 13 # 194  25 250 285  90  98 # - (Magenta) | ||||||
|  | printf "\033]4;13;#C219FA\007" | ||||||
|  | # 14 #  25 259 194 165  90  98 # - (Cyan) | ||||||
|  | printf "\033]4;14;#19FAC2\007" | ||||||
|  | # 15 # 250 250 250   0   0  98 # - (White) | ||||||
|  | printf "\033]4;15;#FAFAFA\007" | ||||||
|  | 
 | ||||||
|  | # BRIGHTER | ||||||
|  | # | ||||||
|  | # Nr #   R   G   B   H   S   B # Name | ||||||
|  | # FG # 250 250 250   0   0  98 # Daisy (White) | ||||||
|  | printf "\033]11;#FAFAFA\007" | ||||||
|  | # BG #  19  19  19   0   0   7 # - | ||||||
|  | printf "\033]10;#131313\007" | ||||||
|  | 
 | ||||||
|  | # Regular colors (0-7) | ||||||
|  | 
 | ||||||
|  | # Nr #   R   G   B   H   S   B # Name | ||||||
|  | #  0 #  61  61  61   0   0  24 # - (Black) | ||||||
|  | printf "\033]4;0;#3D3D3D\007" | ||||||
|  | #  1 # 186  19  61 345  90  73 # - (Red) | ||||||
|  | printf "\033]4;1;#E62E4D\007" | ||||||
|  | #  2 #  61 186  19 105  90  73 # - (Green) | ||||||
|  | printf "\033]4;2;#4DE62E\007" | ||||||
|  | #  3 # 186 144  19  45  90  73 # - (Yellow) | ||||||
|  | printf "\033]4;3;#E6C72E\007" | ||||||
|  | #  4 #  19  61 186 225  90  73 # - (Blue) | ||||||
|  | printf "\033]4;4;#2E4CE6\007" | ||||||
|  | #  5 # 144  19 186 285  90  73 # - (Magenta) | ||||||
|  | printf "\033]4;5;#C52DE3\007" | ||||||
|  | #  6 #  19 186 144 165  90  73 # - (Cyan) | ||||||
|  | printf "\033]4;6;#2EE6C7\007" | ||||||
|  | #  7 # 186 186 186   0   0  73 # - (White) | ||||||
|  | printf "\033]4;7;#BABABA\007" | ||||||
|  | 
 | ||||||
|  | # Bright colors (8-15) | ||||||
|  | 
 | ||||||
|  | # Nr #   R   G   B   H   S   B # Name | ||||||
|  | #  8 # 122 122 122   0   0  48 # - (Black) | ||||||
|  | printf "\033]4;8;#7A7A7A\007" | ||||||
|  | #  9 # 250  25  81 345  90  98 # - (Red) | ||||||
|  | printf "\033]4;9;#FF002B\007" | ||||||
|  | # 10 #  81 250  25 105  90  98 # - (Green) | ||||||
|  | printf "\033]4;10;#2BFF00\007" | ||||||
|  | # 11 # 250 194  25  45  90  98 # - (Yellow) | ||||||
|  | printf "\033]4;11;#FFd500\007" | ||||||
|  | # 12 #  25  81 250 225  90  98 # - (Blue) | ||||||
|  | printf "\033]4;12;#002AFF\007" | ||||||
|  | # 13 # 194  25 250 285  90  98 # - (Magenta) | ||||||
|  | printf "\033]4;13;#D400FF\007" | ||||||
|  | # 14 #  25 259 194 165  90  98 # - (Cyan) | ||||||
|  | printf "\033]4;14;#00FFC0\007" | ||||||
|  | # 15 # 250 250 250   0   0  98 # - (White) | ||||||
|  | printf "\033]4;15;#FAFAFA\007" | ||||||
|  | 
 | ||||||
|  | # TEsting again | ||||||
|  | 
 | ||||||
|  | # Nr #   R   G   B   H   S   B # Name | ||||||
|  | # FG # 250 250 250   0   0  98 # Daisy (White) | ||||||
|  | # FAFAFA # Daisy      (Foreground) | ||||||
|  | printf "\033]10;#FAFAFA\007" | ||||||
|  | # 171717 # Background | ||||||
|  | printf "\033]11;#171717\007" | ||||||
|  | 
 | ||||||
|  | # Nr #   R   G   B   H   S   B # Name | ||||||
|  | #  0 #  61  61  61   0   0  24 # - (Black) | ||||||
|  | printf "\033]4;0;#202124\007" | ||||||
|  | #  1 # 186  19  61 345  90  73 # - (Red) | ||||||
|  | printf "\033]4;1;#EA4335\007" | ||||||
|  | #  2 #  61 186  19 105  90  73 # - (Green) | ||||||
|  | printf "\033]4;2;#34A853\007" | ||||||
|  | #  3 # 186 144  19  45  90  73 # - (Yellow) | ||||||
|  | printf "\033]4;3;#FBBC04\007" | ||||||
|  | #  4 #  19  61 186 225  90  73 # - (Blue) | ||||||
|  | printf "\033]4;4;#4285F4\007" | ||||||
|  | #  5 # 144  19 186 285  90  73 # - (Magenta) | ||||||
|  | printf "\033]4;5;#A142F4\007" | ||||||
|  | #  6 #  19 186 144 165  90  73 # - (Cyan) | ||||||
|  | printf "\033]4;6;#24C1E0\007" | ||||||
|  | #  7 # 186 186 186   0   0  73 # - (White) | ||||||
|  | printf "\033]4;7;#FBFCF8\007" | ||||||
|  | 
 | ||||||
|  | # Bright colors (8-15) | ||||||
|  | 
 | ||||||
|  | # Nr #   R   G   B   H   S   B # Name | ||||||
|  | #  8 # 122 122 122   0   0  48 # - (Black) | ||||||
|  | printf "\033]4;8;#5F6368\007" | ||||||
|  | #  9 # 250  25  81 345  90  98 # - (Red) | ||||||
|  | printf "\033]4;9;#EA4335\007" | ||||||
|  | # 10 #  81 250  25 105  90  98 # - (Green) | ||||||
|  | printf "\033]4;10;#34A853\007" | ||||||
|  | # 11 # 250 194  25  45  90  98 # - (Yellow) | ||||||
|  | printf "\033]4;11;#FBBC05\007" | ||||||
|  | # 12 #  25  81 250 225  90  98 # - (Blue) | ||||||
|  | printf "\033]4;12;#4285F4\007" | ||||||
|  | # 13 # 194  25 250 285  90  98 # - (Magenta) | ||||||
|  | printf "\033]4;13;#A142F4\007" | ||||||
|  | # 14 #  25 259 194 165  90  98 # - (Cyan) | ||||||
|  | printf "\033]4;14;#24C1E0\007" | ||||||
|  | # 15 # 250 250 250   0   0  98 # - (White) | ||||||
|  | printf "\033]4;15;#FFFFFF\007" | ||||||
|  | 
 | ||||||
|  | @ -1,13 +1,10 @@ | ||||||
| keys: | keys: | ||||||
|   - &tdpeuter age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y |   - &Tibo-NixFatDesk age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y | ||||||
| 
 |   - &Tibo-NixTop age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37 | ||||||
|   - &server_H4G0 age1d4gvqz3anf082ja6xt03hnkzazfum80um9t45m4rerl4n3va2yuqgnsg03 |  | ||||||
| 
 | 
 | ||||||
| creation_rules: | creation_rules: | ||||||
|   - path_regex: secrets/[^/]+\.(yaml|json|env|ini)$ |   - path_regex: secrets/[^/]+\.(yaml|json|env|ini)$ | ||||||
|     key_groups: |     key_groups: | ||||||
|     - age: |     - age: | ||||||
|       - *tdpeuter |       - *Tibo-NixFatDesk | ||||||
| 
 |       - *Tibo-NixTop | ||||||
|       - *server_H4G0 |  | ||||||
| 
 |  | ||||||
|  |  | ||||||
							
								
								
									
										165
									
								
								nixos/flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										165
									
								
								nixos/flake.lock
									
										
									
										generated
									
									
									
								
							|  | @ -1,54 +1,15 @@ | ||||||
| { | { | ||||||
|   "nodes": { |   "nodes": { | ||||||
|     "devshell": { |  | ||||||
|       "inputs": { |  | ||||||
|         "flake-utils": "flake-utils", |  | ||||||
|         "nixpkgs": [ |  | ||||||
|           "nixpkgs" |  | ||||||
|         ] |  | ||||||
|       }, |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1713532798, |  | ||||||
|         "narHash": "sha256-wtBhsdMJA3Wa32Wtm1eeo84GejtI43pMrFrmwLXrsEc=", |  | ||||||
|         "owner": "numtide", |  | ||||||
|         "repo": "devshell", |  | ||||||
|         "rev": "12e914740a25ea1891ec619bb53cf5e6ca922e40", |  | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "numtide", |  | ||||||
|         "repo": "devshell", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "flake-utils": { |     "flake-utils": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "systems": "systems" |         "systems": "systems" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1701680307, |         "lastModified": 1731533236, | ||||||
|         "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", |         "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", | ||||||
|         "owner": "numtide", |         "owner": "numtide", | ||||||
|         "repo": "flake-utils", |         "repo": "flake-utils", | ||||||
|         "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", |         "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "numtide", |  | ||||||
|         "repo": "flake-utils", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "flake-utils_2": { |  | ||||||
|       "inputs": { |  | ||||||
|         "systems": "systems_2" |  | ||||||
|       }, |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1710146030, |  | ||||||
|         "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", |  | ||||||
|         "owner": "numtide", |  | ||||||
|         "repo": "flake-utils", |  | ||||||
|         "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", |  | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -64,16 +25,16 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1716736833, |         "lastModified": 1758463745, | ||||||
|         "narHash": "sha256-rNObca6dm7Qs524O4st8VJH6pZ/Xe1gxl+Rx6mcWYo0=", |         "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "home-manager", |         "repo": "home-manager", | ||||||
|         "rev": "a631666f5ec18271e86a5cde998cba68c33d9ac6", |         "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "ref": "release-24.05", |         "ref": "release-25.05", | ||||||
|         "repo": "home-manager", |         "repo": "home-manager", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|  | @ -86,11 +47,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1701208414, |         "lastModified": 1720066371, | ||||||
|         "narHash": "sha256-xrQ0FyhwTZK6BwKhahIkUVZhMNk21IEI1nUcWSONtpo=", |         "narHash": "sha256-uPlLYH2S0ACj0IcgaK9Lsf4spmJoGejR9DotXiXSBZQ=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "nix-github-actions", |         "repo": "nix-github-actions", | ||||||
|         "rev": "93e39cc1a087d65bcf7a132e75a650c44dd2b734", |         "rev": "622f829f5fe69310a866c8a6cd07e747c44ef820", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -101,42 +62,26 @@ | ||||||
|     }, |     }, | ||||||
|     "nixpkgs": { |     "nixpkgs": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1717144377, |         "lastModified": 1760862643, | ||||||
|         "narHash": "sha256-F/TKWETwB5RaR8owkPPi+SPJh83AQsm6KrQAlJ8v/uA=", |         "narHash": "sha256-PXwG0TM7Ek87DNx4LbGWuD93PbFeKAJs4FfALtp7Wo0=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "805a384895c696f802a9bf5bf4720f37385df547", |         "rev": "33c6dca0c0cb31d6addcd34e90a63ad61826b28c", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|         "id": "nixpkgs", |         "id": "nixpkgs", | ||||||
|         "ref": "nixos-24.05", |         "ref": "nixos-25.05", | ||||||
|         "type": "indirect" |         "type": "indirect" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "nixpkgs-stable": { |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1717265169, |  | ||||||
|         "narHash": "sha256-IITcGd6xpNoyq9SZBigCkv4+qMHSqot0RDPR4xsZ2CA=", |  | ||||||
|         "owner": "NixOS", |  | ||||||
|         "repo": "nixpkgs", |  | ||||||
|         "rev": "3b1b4895b2c5f9f5544d02132896aeb9ceea77bc", |  | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "NixOS", |  | ||||||
|         "ref": "release-23.11", |  | ||||||
|         "repo": "nixpkgs", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "nixpkgs-unstable": { |     "nixpkgs-unstable": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1716948383, |         "lastModified": 1760878510, | ||||||
|         "narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=", |         "narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "ad57eef4ef0659193044870c731987a6df5cf56b", |         "rev": "5e2a59a5b1a82f89f2c7e598302a9cacebb72a67", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -155,15 +100,15 @@ | ||||||
|           "nixpkgs" |           "nixpkgs" | ||||||
|         ], |         ], | ||||||
|         "poetry2nix": "poetry2nix", |         "poetry2nix": "poetry2nix", | ||||||
|         "systems": "systems_3", |         "systems": "systems_2", | ||||||
|         "treefmt-nix": "treefmt-nix" |         "treefmt-nix": "treefmt-nix" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1701455376, |         "lastModified": 1758594056, | ||||||
|         "narHash": "sha256-FMLrMdi6JY7ZfqV5XnNj64jnDcGKznKZLn7O6OMO3u0=", |         "narHash": "sha256-6XyKDRWqBngw1g73e789iyIaw/0VF04ELk/ATtlkTVU=", | ||||||
|         "owner": "ThinkChaos", |         "owner": "ThinkChaos", | ||||||
|         "repo": "openconnect-sso", |         "repo": "openconnect-sso", | ||||||
|         "rev": "20c0015c4264c72cc19ac272de0dc534309bd21b", |         "rev": "2041471efd331d0591d34e122aefb02690fb233a", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -197,11 +142,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1701105783, |         "lastModified": 1721039874, | ||||||
|         "narHash": "sha256-5IOI0xXGbhAkUZNNcPId48V78Q+/JlW0hzlif0zxRmM=", |         "narHash": "sha256-XANsG9GYHip8pxZpbqKf/YGv8tIa0xTh289Y+WNBNfw=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "poetry2nix", |         "repo": "poetry2nix", | ||||||
|         "rev": "0b2bff39e9bd4e6db3208e09c276ca83a063b370", |         "rev": "d11c01e58587e5f21037ed6477465a7f26a32e27", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -212,29 +157,28 @@ | ||||||
|     }, |     }, | ||||||
|     "root": { |     "root": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "devshell": "devshell", |         "flake-utils": "flake-utils", | ||||||
|         "flake-utils": "flake-utils_2", |  | ||||||
|         "home-manager": "home-manager", |         "home-manager": "home-manager", | ||||||
|         "nixpkgs": "nixpkgs", |         "nixpkgs": "nixpkgs", | ||||||
|         "nixpkgs-unstable": "nixpkgs-unstable", |         "nixpkgs-unstable": "nixpkgs-unstable", | ||||||
|         "openconnect-sso": "openconnect-sso", |         "openconnect-sso": "openconnect-sso", | ||||||
|         "sops-nix": "sops-nix", |         "sops-nix": "sops-nix", | ||||||
|         "utils": "utils" |         "utils": "utils", | ||||||
|  |         "zen-browser": "zen-browser" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "sops-nix": { |     "sops-nix": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "nixpkgs": [ |         "nixpkgs": [ | ||||||
|           "nixpkgs" |           "nixpkgs" | ||||||
|         ], |         ] | ||||||
|         "nixpkgs-stable": "nixpkgs-stable" |  | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1717297459, |         "lastModified": 1760998189, | ||||||
|         "narHash": "sha256-cZC2f68w5UrJ1f+2NWGV9Gx0dEYmxwomWN2B0lx0QRA=", |         "narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=", | ||||||
|         "owner": "Mic92", |         "owner": "Mic92", | ||||||
|         "repo": "sops-nix", |         "repo": "sops-nix", | ||||||
|         "rev": "ab2a43b0d21d1d37d4d5726a892f714eaeb4b075", |         "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -273,21 +217,6 @@ | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "systems_3": { |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1681028828, |  | ||||||
|         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", |  | ||||||
|         "owner": "nix-systems", |  | ||||||
|         "repo": "default", |  | ||||||
|         "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", |  | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "nix-systems", |  | ||||||
|         "repo": "default", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "treefmt-nix": { |     "treefmt-nix": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "nixpkgs": [ |         "nixpkgs": [ | ||||||
|  | @ -296,11 +225,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1699786194, |         "lastModified": 1721769617, | ||||||
|         "narHash": "sha256-3h3EH1FXQkIeAuzaWB+nK0XK54uSD46pp+dMD3gAcB4=", |         "narHash": "sha256-6Pqa0bi5nV74IZcENKYRToRNM5obo1EQ+3ihtunJ014=", | ||||||
|         "owner": "numtide", |         "owner": "numtide", | ||||||
|         "repo": "treefmt-nix", |         "repo": "treefmt-nix", | ||||||
|         "rev": "e82f32aa7f06bbbd56d7b12186d555223dc399d1", |         "rev": "8db8970be1fb8be9c845af7ebec53b699fe7e009", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -316,11 +245,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1715533576, |         "lastModified": 1738591040, | ||||||
|         "narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=", |         "narHash": "sha256-4WNeriUToshQ/L5J+dTSWC5OJIwT39SEP7V7oylndi8=", | ||||||
|         "owner": "gytis-ivaskevicius", |         "owner": "gytis-ivaskevicius", | ||||||
|         "repo": "flake-utils-plus", |         "repo": "flake-utils-plus", | ||||||
|         "rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f", |         "rev": "afcb15b845e74ac5e998358709b2b5fe42a948d1", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -328,6 +257,26 @@ | ||||||
|         "repo": "flake-utils-plus", |         "repo": "flake-utils-plus", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|  |     }, | ||||||
|  |     "zen-browser": { | ||||||
|  |       "inputs": { | ||||||
|  |         "nixpkgs": [ | ||||||
|  |           "nixpkgs" | ||||||
|  |         ] | ||||||
|  |       }, | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1761105987, | ||||||
|  |         "narHash": "sha256-d01CGcdNlsqIn4ncGCWHM0Velnii/Ggef1iybQvEOfc=", | ||||||
|  |         "owner": "youwen5", | ||||||
|  |         "repo": "zen-browser-flake", | ||||||
|  |         "rev": "e7d9fefd8665be5d4c77466140f21a15f6d29e93", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "youwen5", | ||||||
|  |         "repo": "zen-browser-flake", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   "root": "root", |   "root": "root", | ||||||
|  |  | ||||||
|  | @ -2,20 +2,16 @@ | ||||||
|   description = "System configuration of my machines using flakes"; |   description = "System configuration of my machines using flakes"; | ||||||
| 
 | 
 | ||||||
|   inputs = { |   inputs = { | ||||||
|     nixpkgs.url = "nixpkgs/nixos-24.05"; |     nixpkgs.url = "nixpkgs/nixos-25.05"; | ||||||
|     nixpkgs-unstable.url = "nixpkgs/nixos-unstable"; |     nixpkgs-unstable.url = "nixpkgs/nixos-unstable"; | ||||||
| 
 | 
 | ||||||
|     devshell = { |  | ||||||
|       url = "github:numtide/devshell"; |  | ||||||
|       inputs.nixpkgs.follows = "nixpkgs"; |  | ||||||
|     }; |  | ||||||
|     flake-utils.url = "github:numtide/flake-utils"; |     flake-utils.url = "github:numtide/flake-utils"; | ||||||
|     home-manager = { |     home-manager = { | ||||||
|       url = "github:nix-community/home-manager/release-24.05"; |       url = "github:nix-community/home-manager/release-25.05"; | ||||||
|       inputs.nixpkgs.follows = "nixpkgs"; |       inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|     }; |     }; | ||||||
|     openconnect-sso = { |     openconnect-sso = { | ||||||
|       url = github:ThinkChaos/openconnect-sso/fix/nix-flake; |       url = "github:ThinkChaos/openconnect-sso/fix/nix-flake"; | ||||||
|       inputs = { |       inputs = { | ||||||
|         flake-utils.follows = "utils"; |         flake-utils.follows = "utils"; | ||||||
|         nixpkgs.follows = "nixpkgs"; |         nixpkgs.follows = "nixpkgs"; | ||||||
|  | @ -29,23 +25,28 @@ | ||||||
|       url = "github:gytis-ivaskevicius/flake-utils-plus"; |       url = "github:gytis-ivaskevicius/flake-utils-plus"; | ||||||
|       inputs.flake-utils.follows = "flake-utils"; |       inputs.flake-utils.follows = "flake-utils"; | ||||||
|     }; |     }; | ||||||
|  |     zen-browser = { | ||||||
|  |       url = "github:youwen5/zen-browser-flake"; | ||||||
|  |       inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|  |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   outputs = inputs@{ |   outputs = inputs@{ | ||||||
|     self, nixpkgs, nixpkgs-unstable, |     self, nixpkgs, nixpkgs-unstable, | ||||||
|     devshell, flake-utils, home-manager, openconnect-sso, sops-nix, utils, |     flake-utils, home-manager, openconnect-sso, sops-nix, utils, zen-browser, | ||||||
|     ... }: |     ... }: | ||||||
|     let |     let | ||||||
|       system = "x86_64-linux"; |       system = utils.lib.system.x86_64-linux; | ||||||
| 
 | 
 | ||||||
|       unfreePackages = pkg: builtins.elem (nixpkgs.lib.getName pkg) [ |       unfreePackages = pkg: builtins.elem (nixpkgs.lib.getName pkg) [ | ||||||
|         "corefonts" |         "corefonts" | ||||||
|         "nvidia-settings" "nvidia-x11" "nvidia-persistenced" |         "nvidia-settings" "nvidia-x11" "nvidia-persistenced" | ||||||
|         "Oracle_VM_VirtualBox_Extension_Pack" |         "Oracle_VirtualBox_Extension_Pack" | ||||||
|         "spotify" |         "spotify" | ||||||
|         "steam" "steam-original" "steam-run" |         "steam" "steam-unwrapped" "steam-run" | ||||||
|         "vista-fonts" |         "vista-fonts" | ||||||
|         "nvidia-persistenced" # Docker |         "intel-ocl" | ||||||
|  |         "libfprint-2-tod1-broadcom" | ||||||
|       ]; |       ]; | ||||||
|     in |     in | ||||||
|     utils.lib.mkFlake { |     utils.lib.mkFlake { | ||||||
|  | @ -71,10 +72,11 @@ | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         modules = [ |         modules = [ | ||||||
|           home-manager.nixosModule |  | ||||||
|           sops-nix.nixosModules.sops |  | ||||||
|           ./modules |           ./modules | ||||||
|           ./users |           ./users | ||||||
|  | 
 | ||||||
|  |           home-manager.nixosModules.home-manager | ||||||
|  |           sops-nix.nixosModules.sops | ||||||
|         ]; |         ]; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|  | @ -82,6 +84,7 @@ | ||||||
|         Tibo-NixDesk.modules = [ ./hosts/Tibo-NixDesk ]; |         Tibo-NixDesk.modules = [ ./hosts/Tibo-NixDesk ]; | ||||||
|         Tibo-NixFat.modules  = [ ./hosts/Tibo-NixFat  ]; |         Tibo-NixFat.modules  = [ ./hosts/Tibo-NixFat  ]; | ||||||
|         Tibo-NixTest.modules = [ ./hosts/Tibo-NixTest ]; |         Tibo-NixTest.modules = [ ./hosts/Tibo-NixTest ]; | ||||||
|  |         Tibo-NixTop.modules  = [ ./hosts/Tibo-NixTop  ]; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|   sisyphus = { |   sisyphus = { | ||||||
|     desktop.sway.enable = true; |     desktop.hyprland.enable = true; | ||||||
| 
 | 
 | ||||||
|     hardware = { |     hardware = { | ||||||
|       nvidia = { |       nvidia = { | ||||||
|  | @ -35,6 +35,7 @@ | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     services = { |     services = { | ||||||
|  |       tailscale.enable = true; | ||||||
|       pipewire.enable = true; |       pipewire.enable = true; | ||||||
|       printing.enable = true; |       printing.enable = true; | ||||||
|       openrgb.enable = true; |       openrgb.enable = true; | ||||||
|  | @ -56,6 +57,8 @@ | ||||||
|         efiSysMountPoint = "/boot/efi"; |         efiSysMountPoint = "/boot/efi"; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
|  | 
 | ||||||
|  |     plymouth.enable = true; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   environment.systemPackages = with pkgs; [ |   environment.systemPackages = with pkgs; [ | ||||||
|  | @ -75,9 +78,9 @@ | ||||||
| 
 | 
 | ||||||
|   networking.hostName = "Tibo-NixDesk"; |   networking.hostName = "Tibo-NixDesk"; | ||||||
| 
 | 
 | ||||||
|   services.xserver = { |   services.xserver.xkb = { | ||||||
|     layout = "us"; |     layout = "us"; | ||||||
|     xkbVariant = "altgr-intl"; |     variant = "altgr-intl"; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   system.stateVersion = "24.05"; |   system.stateVersion = "24.05"; | ||||||
|  |  | ||||||
|  | @ -6,7 +6,10 @@ | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|   sisyphus = { |   sisyphus = { | ||||||
|     desktop.sway.enable = true; |     desktop = { | ||||||
|  |       sway.enable = true; | ||||||
|  |       hyprland.enable = true; | ||||||
|  |     }; | ||||||
| 
 | 
 | ||||||
|     hardware = { |     hardware = { | ||||||
|       eid.enable = true; |       eid.enable = true; | ||||||
|  | @ -19,7 +22,7 @@ | ||||||
| 
 | 
 | ||||||
|     networking = { |     networking = { | ||||||
|       networkmanager.enable = true; |       networkmanager.enable = true; | ||||||
|       # openconnect-sso.enable = true; |       openconnect-sso.enable = true; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     nix = { |     nix = { | ||||||
|  | @ -87,14 +90,20 @@ | ||||||
|     powerOnBoot = false; |     powerOnBoot = false; | ||||||
|   }; |   }; | ||||||
|    |    | ||||||
|   networking.hostName = "Tibo-NixFat"; |   networking = { | ||||||
|  |     hostName = "Tibo-NixFat"; | ||||||
|  |     networkmanager.wifi.powersave = true; | ||||||
|  |   }; | ||||||
| 
 | 
 | ||||||
|   services = { |   services = { | ||||||
|     # Handle the laptop lid switch as follows: |  | ||||||
|     logind = { |     logind = { | ||||||
|  |       # Handle the laptop lid switch as follows: | ||||||
|       lidSwitch = "hybrid-sleep"; |       lidSwitch = "hybrid-sleep"; | ||||||
|       lidSwitchExternalPower = "lock"; |       lidSwitchExternalPower = "lock"; | ||||||
|       lidSwitchDocked = "ignore"; |       lidSwitchDocked = "ignore"; | ||||||
|  | 
 | ||||||
|  |       # Handle the power key | ||||||
|  |       powerKey = "suspend"; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     xserver.xkb = { |     xserver.xkb = { | ||||||
|  | @ -105,10 +114,14 @@ | ||||||
| 
 | 
 | ||||||
|     # Touchpad |     # Touchpad | ||||||
|     libinput.enable = true; |     libinput.enable = true; | ||||||
|  | 
 | ||||||
|  |     thermald.enable = true; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   system.stateVersion = "24.05"; |   system.stateVersion = "24.05"; | ||||||
| 
 | 
 | ||||||
|  |   systemd.coredump.enable = false; | ||||||
|  | 
 | ||||||
|   time.timeZone = "Europe/Brussels"; |   time.timeZone = "Europe/Brussels"; | ||||||
| 
 | 
 | ||||||
|   # --- Barrier --- |   # --- Barrier --- | ||||||
|  |  | ||||||
|  | @ -8,22 +8,33 @@ | ||||||
|     (modulesPath + "/installer/scan/not-detected.nix") |     (modulesPath + "/installer/scan/not-detected.nix") | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|   boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; |   boot = { | ||||||
|   boot.initrd.kernelModules = [ ]; |     initrd = { | ||||||
|   boot.kernelModules = [ "kvm-intel" ]; |       availableKernelModules = [ | ||||||
|   boot.extraModulePackages = [ ]; |         "xhci_pci" | ||||||
|  |         "nvme" | ||||||
|  |         "usb_storage" | ||||||
|  |         "sd_mod" | ||||||
|  |         "rtsx_pci_sdmmc" | ||||||
|  |       ]; | ||||||
|  |       kernelModules = [ ]; | ||||||
|  |       luks.devices."luks-c21cb4a4-f618-43af-bc0c-e8be74fe3b81".device = "/dev/disk/by-uuid/c21cb4a4-f618-43af-bc0c-e8be74fe3b81"; | ||||||
|  |     }; | ||||||
|  |     kernelModules = [ "kvm-intel" ]; | ||||||
|  |     extraModulePackages = [ ]; | ||||||
|  |   }; | ||||||
| 
 | 
 | ||||||
|   fileSystems."/" = { |   fileSystems = { | ||||||
|  |     "/" = { | ||||||
|       device = "/dev/disk/by-label/NIX-ROOT"; |       device = "/dev/disk/by-label/NIX-ROOT"; | ||||||
|       fsType = "ext4"; |       fsType = "ext4"; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|   boot.initrd.luks.devices."luks-c21cb4a4-f618-43af-bc0c-e8be74fe3b81".device = "/dev/disk/by-uuid/c21cb4a4-f618-43af-bc0c-e8be74fe3b81"; |     "/boot/efi" = { | ||||||
| 
 |  | ||||||
|   fileSystems."/boot/efi" = { |  | ||||||
|       device = "/dev/disk/by-label/NIX-BOOT"; |       device = "/dev/disk/by-label/NIX-BOOT"; | ||||||
|       fsType = "vfat"; |       fsType = "vfat"; | ||||||
|     }; |     }; | ||||||
|  |   }; | ||||||
| 
 | 
 | ||||||
|   swapDevices = [ |   swapDevices = [ | ||||||
|     { device = "/dev/disk/by-label/SWAP"; } |     { device = "/dev/disk/by-label/SWAP"; } | ||||||
|  | @ -38,5 +49,9 @@ | ||||||
|   # networking.interfaces.wlp111s0.useDHCP = lib.mkDefault true; |   # networking.interfaces.wlp111s0.useDHCP = lib.mkDefault true; | ||||||
| 
 | 
 | ||||||
|   powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; |   powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; | ||||||
|   hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; |   nixpkgs.config.allowUnfree = true; | ||||||
|  |   hardware = { | ||||||
|  |     enableAllFirmware = true; | ||||||
|  |     cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; | ||||||
|  |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										205
									
								
								nixos/hosts/Tibo-NixTop/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										205
									
								
								nixos/hosts/Tibo-NixTop/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,205 @@ | ||||||
|  | # Edit this configuration file to define what should be installed on | ||||||
|  | # your system. Help is available in the configuration.nix(5) man page, on | ||||||
|  | # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). | ||||||
|  | 
 | ||||||
|  | { config, lib, pkgs, ... }: | ||||||
|  | 
 | ||||||
|  | { | ||||||
|  |   imports = [ | ||||||
|  |     # Include the results of the hardware scan. | ||||||
|  |     ./hardware-configuration.nix | ||||||
|  |   ]; | ||||||
|  | 
 | ||||||
|  |   sisyphus = { | ||||||
|  |     desktop.hyprland.enable = true; | ||||||
|  | 
 | ||||||
|  |     hardware = { | ||||||
|  |       eid.enable = true; | ||||||
|  |       fingerprint-scanner.enable = true; | ||||||
|  |       nvidia = { | ||||||
|  |         enable = true; | ||||||
|  |         model = "Quadro T2000"; | ||||||
|  |       }; | ||||||
|  |       yubikey.enable = true; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     networking = { | ||||||
|  |       networkmanager.enable = true; | ||||||
|  |       openconnect-sso.enable = true; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     nix = { | ||||||
|  |       flakes.enable = true; | ||||||
|  |       gc.onFull.enable = true; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     programs = { | ||||||
|  |       direnv.enable = true; | ||||||
|  |       home-manager.enable = true; | ||||||
|  |       sops.enable = true; | ||||||
|  |       ssh.enable = true; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     services = { | ||||||
|  |       pipewire.enable = true; | ||||||
|  |       tailscale.enable = true; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     users.tdpeuter.enable = true; | ||||||
|  | 
 | ||||||
|  |     virtualisation = { | ||||||
|  |       docker.enable = true; | ||||||
|  |       virtualbox.enable = true; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   boot = { | ||||||
|  |     initrd = { | ||||||
|  |       # Use EFI and YubiKey | ||||||
|  |       kernelModules = [ "vfat" "nls_cp437" "nls_iso8859-1" "usbhid" ]; | ||||||
|  | 
 | ||||||
|  |       luks = { | ||||||
|  |         # Enable YubiKey PBA | ||||||
|  |         yubikeySupport = true; | ||||||
|  |         devices."encrypted".yubikey = { | ||||||
|  |           slot = 2; | ||||||
|  |           twoFactor = false; | ||||||
|  |           gracePeriod = 10; | ||||||
|  |           keyLength = 64; | ||||||
|  |           saltLength = 16; | ||||||
|  |           storage.device = "/dev/nvme0n1p1"; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     loader = { | ||||||
|  |       # Use the systemd-boot EFI boot loader. | ||||||
|  |       systemd-boot = { | ||||||
|  |         enable = true; | ||||||
|  | 
 | ||||||
|  |         editor = false; | ||||||
|  |         memtest86.enable = true; | ||||||
|  |       }; | ||||||
|  |       efi.canTouchEfiVariables = true; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     # Use latest kernel. | ||||||
|  |     kernelPackages = pkgs.linuxPackages_latest; | ||||||
|  | 
 | ||||||
|  |     plymouth.enable = true; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   hardware.bluetooth = { | ||||||
|  |     enable = true; | ||||||
|  |     powerOnBoot = false; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   nix.settings.download-buffer-size = 500 * 1024 * 1024; # 500 MiB | ||||||
|  | 
 | ||||||
|  |   programs.zsh.enable = true; | ||||||
|  | 
 | ||||||
|  |   services = { | ||||||
|  |     auto-cpufreq = { | ||||||
|  |       enable = true; | ||||||
|  |       settings = { | ||||||
|  |         battery = { | ||||||
|  |           governor = "powersave"; | ||||||
|  |           turbo = "never"; | ||||||
|  |         }; | ||||||
|  |         charger = { | ||||||
|  |           governor = "performance"; | ||||||
|  |           turbo = "auto"; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     logind = { | ||||||
|  |       # Handle the laptop lid switch as follows: | ||||||
|  |       lidSwitch = "hybrid-sleep"; | ||||||
|  |       lidSwitchExternalPower = "lock"; | ||||||
|  |       lidSwitchDocked = "ignore"; | ||||||
|  | 
 | ||||||
|  |       # Handle the power key | ||||||
|  |       powerKey = "suspend"; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     power-profiles-daemon.enable = false; | ||||||
|  | 
 | ||||||
|  |     smartd.enable = true; | ||||||
|  | 
 | ||||||
|  |     thermald.enable = true; | ||||||
|  | 
 | ||||||
|  |     xserver = { | ||||||
|  |       # Keyboard layout | ||||||
|  |       xkb = { | ||||||
|  |         layout = "us"; | ||||||
|  |         variant = "altgr-intl"; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     # Touchpad | ||||||
|  |     libinput.enable = true; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   networking = { | ||||||
|  |     hostName = "Tibo-NixTop"; # Define your hostname. | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   # Set your time zone. | ||||||
|  |   time.timeZone = "Europe/Brussels"; | ||||||
|  | 
 | ||||||
|  |   # Select internationalisation properties. | ||||||
|  |   i18n = { | ||||||
|  |     defaultLocale = "en_GB.UTF-8"; # LANG | ||||||
|  |     extraLocaleSettings.LC_TIME = "nl_BE.UTF-8"; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   console = { | ||||||
|  |   #   font = "Lat2-Terminus16"; | ||||||
|  |   #   keyMap = "us"; | ||||||
|  |     useXkbConfig = true; # use xkb.options in tty. | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   # Enable CUPS to print documents. | ||||||
|  |   # services.printing.enable = true; | ||||||
|  | 
 | ||||||
|  |   # Enable touchpad support (enabled default in most desktopManager). | ||||||
|  |   # services.libinput.enable = true; | ||||||
|  | 
 | ||||||
|  |   # List packages installed in system profile. | ||||||
|  |   # You can use https://search.nixos.org/ to find more packages (and options). | ||||||
|  |   environment = { | ||||||
|  |     # Enabled to allow installed binaries in ~/.local/bin | ||||||
|  |     localBinInPath = true; | ||||||
|  | 
 | ||||||
|  |     systemPackages = with pkgs; [ | ||||||
|  |       git | ||||||
|  |       vim-full # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. | ||||||
|  |       w3m | ||||||
|  |       wget | ||||||
|  |       zenith-nvidia | ||||||
|  |     ]; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   # This option defines the first version of NixOS you have installed on this particular machine, | ||||||
|  |   # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. | ||||||
|  |   # | ||||||
|  |   # Most users should NEVER change this value after the initial install, for any reason, | ||||||
|  |   # even if you've upgraded your system to a new NixOS release. | ||||||
|  |   # | ||||||
|  |   # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, | ||||||
|  |   # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how | ||||||
|  |   # to actually do that. | ||||||
|  |   # | ||||||
|  |   # This value being lower than the current NixOS release does NOT mean your system is | ||||||
|  |   # out of date, out of support, or vulnerable. | ||||||
|  |   # | ||||||
|  |   # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, | ||||||
|  |   # and migrated your data accordingly. | ||||||
|  |   # | ||||||
|  |   # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . | ||||||
|  |   system.stateVersion = "25.05"; # Did you read the comment? | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
							
								
								
									
										41
									
								
								nixos/hosts/Tibo-NixTop/hardware-configuration.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								nixos/hosts/Tibo-NixTop/hardware-configuration.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,41 @@ | ||||||
|  | # Do not modify this file!  It was generated by ‘nixos-generate-config’ | ||||||
|  | # and may be overwritten by future invocations.  Please make changes | ||||||
|  | # to /etc/nixos/configuration.nix instead. | ||||||
|  | { config, lib, pkgs, modulesPath, ... }: | ||||||
|  | 
 | ||||||
|  | { | ||||||
|  |   imports = | ||||||
|  |     [ (modulesPath + "/installer/scan/not-detected.nix") | ||||||
|  |     ]; | ||||||
|  | 
 | ||||||
|  |   boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; | ||||||
|  |   boot.initrd.kernelModules = [ ]; | ||||||
|  |   boot.kernelModules = [ ]; | ||||||
|  |   boot.extraModulePackages = [ ]; | ||||||
|  | 
 | ||||||
|  |   fileSystems."/" = | ||||||
|  |     { device = "/dev/disk/by-uuid/e759b10f-7949-4094-9272-d91340dcc5b6"; | ||||||
|  |       fsType = "ext4"; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |   boot.initrd.luks.devices."encrypted".device = "/dev/disk/by-uuid/2b6586fa-8823-4add-94f3-132aab17b7b8"; | ||||||
|  | 
 | ||||||
|  |   fileSystems."/boot" = | ||||||
|  |     { device = "/dev/disk/by-uuid/12CE-A600"; | ||||||
|  |       fsType = "vfat"; | ||||||
|  |       options = [ "fmask=0022" "dmask=0022" ]; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |   swapDevices = [ ]; | ||||||
|  | 
 | ||||||
|  |   # Enables DHCP on each ethernet and wireless interface. In case of scripted networking | ||||||
|  |   # (the default) this is the recommended approach. When using systemd-networkd it's | ||||||
|  |   # still possible to use this option, but it's recommended to use it in conjunction | ||||||
|  |   # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. | ||||||
|  |   networking.useDHCP = lib.mkDefault true; | ||||||
|  |   # networking.interfaces.eno2.useDHCP = lib.mkDefault true; | ||||||
|  |   # networking.interfaces.wlo1.useDHCP = lib.mkDefault true; | ||||||
|  | 
 | ||||||
|  |   nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; | ||||||
|  |   hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; | ||||||
|  | } | ||||||
|  | @ -4,5 +4,7 @@ | ||||||
|     ./hyprland |     ./hyprland | ||||||
|     ./plasma |     ./plasma | ||||||
|     ./sway |     ./sway | ||||||
|  | 
 | ||||||
|  |     ./waybar | ||||||
|   ]; |   ]; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -6,7 +6,14 @@ in { | ||||||
|   options.sisyphus.desktop.gnome.enable = lib.mkEnableOption "GNOME"; |   options.sisyphus.desktop.gnome.enable = lib.mkEnableOption "GNOME"; | ||||||
| 
 | 
 | ||||||
|   config = lib.mkIf cfg.enable { |   config = lib.mkIf cfg.enable { | ||||||
|     services.xserver = { |     services = { | ||||||
|  |       gnome = { | ||||||
|  |         core-apps.enable = false; | ||||||
|  |         core-developer-tools.enable = false; | ||||||
|  |         core-shell.enable = true; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       xserver = { | ||||||
|         enable = true; |         enable = true; | ||||||
| 
 | 
 | ||||||
|         excludePackages = with pkgs; [ |         excludePackages = with pkgs; [ | ||||||
|  | @ -15,45 +22,14 @@ in { | ||||||
| 
 | 
 | ||||||
|         displayManager.gdm.enable = true; |         displayManager.gdm.enable = true; | ||||||
|         desktopManager.gnome.enable = true; |         desktopManager.gnome.enable = true; | ||||||
|  | 
 | ||||||
|  |         videoDrivers = [ "nvidia" ]; | ||||||
|  |       }; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     # Start a new instance of application instead of going to that window. |     # Start a new instance of application instead of going to that window. | ||||||
|     environment.systemPackages = with pkgs.gnomeExtensions; [ |     environment.systemPackages = with pkgs.gnomeExtensions; [ | ||||||
|       launch-new-instance |       launch-new-instance | ||||||
|     ]; |     ]; | ||||||
| 
 |  | ||||||
|     # Do not use these packages |  | ||||||
|     environment.gnome.excludePackages = (with pkgs; [ |  | ||||||
|       baobab |  | ||||||
|       epiphany          # Web browser |  | ||||||
|       evince            # Document viewer |  | ||||||
|       gnome-connections # Remote desktop client |  | ||||||
|       gnome-console |  | ||||||
|       gnome-photos |  | ||||||
|       gnome-text-editor |  | ||||||
|       gnome-tour |  | ||||||
|       loupe             # Image viewer |  | ||||||
|       snapshot          # Camera |  | ||||||
|     ]) ++ (with pkgs.gnome; [ |  | ||||||
|       eog               # Image viewer |  | ||||||
|       file-roller       # Archive manager |  | ||||||
|       geary             # Mail client |  | ||||||
|       gedit |  | ||||||
|       gnome-calculator |  | ||||||
|       gnome-calendar |  | ||||||
|       gnome-characters |  | ||||||
|       gnome-clocks |  | ||||||
|       gnome-contacts |  | ||||||
|       gnome-disk-utility |  | ||||||
|       gnome-font-viewer |  | ||||||
|       gnome-logs |  | ||||||
|       gnome-maps |  | ||||||
|       gnome-music |  | ||||||
|       gnome-system-monitor |  | ||||||
|       gnome-weather |  | ||||||
|       simple-scan |  | ||||||
|       totem             # Movie player |  | ||||||
|       yelp              # Help viewer |  | ||||||
|     ]); |  | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| { config, lib, ... }: | { config, lib, pkgs, ... }: | ||||||
| 
 | 
 | ||||||
| let | let | ||||||
|   cfg = config.sisyphus.desktop.hyprland; |   cfg = config.sisyphus.desktop.hyprland; | ||||||
|  | @ -6,10 +6,57 @@ in { | ||||||
|   options.sisyphus.desktop.hyprland.enable = lib.mkEnableOption "Hyprland"; |   options.sisyphus.desktop.hyprland.enable = lib.mkEnableOption "Hyprland"; | ||||||
| 
 | 
 | ||||||
|   config = lib.mkIf cfg.enable { |   config = lib.mkIf cfg.enable { | ||||||
|  |     environment = { | ||||||
|  |       sessionVariables = { | ||||||
|  |         # Hint Electron apps to use wayland | ||||||
|  |         NIXOS_OZONE_WL = "1"; | ||||||
|  | 
 | ||||||
|  |         ASSETS_DIR = ../../../../assets; | ||||||
|  |         SCRIPT_DIR = ../../../../scripts; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       systemPackages = with pkgs; [ | ||||||
|  |         brightnessctl | ||||||
|  |         dunst | ||||||
|  |         libnotify | ||||||
|  |         swaybg | ||||||
|  |         waycorner | ||||||
|  |         playerctl | ||||||
|  |         wlsunset | ||||||
|  |         wl-clipboard # Copying to system clipboard in vim | ||||||
|  |         wl-mirror # Mirror an output | ||||||
|  |         wdisplays # Tool to configure displays | ||||||
|  | 
 | ||||||
|  |         hyprlandPlugins.hy3 # i3/sway layout plugin | ||||||
|  | 
 | ||||||
|  |         swaylock | ||||||
|  | 
 | ||||||
|  |         glib | ||||||
|  | 
 | ||||||
|  |         libva | ||||||
|  | 
 | ||||||
|  |         dmenu | ||||||
|  |         jq | ||||||
|  |         j4-dmenu-desktop | ||||||
|  |         rofi | ||||||
|  |       ]; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|     programs.hyprland = { |     programs.hyprland = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       xwayland.enable = true; |       xwayland.enable = true; | ||||||
|     }; |     }; | ||||||
|  | 
 | ||||||
|  |     security.polkit.enable = true; | ||||||
|  | 
 | ||||||
|  |     services = { | ||||||
|  |       dbus.enable = true; | ||||||
|  |       displayManager.ly.enable = true; | ||||||
|  |       gnome.gnome-keyring.enable = true; | ||||||
|  |       xserver.videoDrivers = [ "nvidia" ]; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     sisyphus.desktop.waybar.enable = true; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -8,36 +8,41 @@ in { | ||||||
|   options.sisyphus.desktop.plasma.enable = lib.mkEnableOption "KDE Plasma"; |   options.sisyphus.desktop.plasma.enable = lib.mkEnableOption "KDE Plasma"; | ||||||
| 
 | 
 | ||||||
|   config = lib.mkIf cfg.enable { |   config = lib.mkIf cfg.enable { | ||||||
|     services.xserver = { |     services = { | ||||||
|       enable = true; |  | ||||||
| 
 |  | ||||||
|       displayManager = { |       displayManager = { | ||||||
|         defaultSession = "plasmawayland"; |         defaultSession = "plasma"; | ||||||
|         sddm = { |         sddm = { | ||||||
|           enable = true; |           enable = true; | ||||||
|  |           wayland.enable = true; | ||||||
|           # https://discourse.nixos.org/t/plasma-wayland-session-not-available-from-sddm/13447/2 |           # https://discourse.nixos.org/t/plasma-wayland-session-not-available-from-sddm/13447/2 | ||||||
|           settings.Wayland.SessionDir = "${pkgs.plasma5Packages.plasma-workspace}/share/wayland-sessions"; |           # settings.Wayland.SessionDir = "${pkgs.plasma5Packages.plasma-workspace}/share/wayland-sessions"; | ||||||
|         }; |         }; | ||||||
|       }; |       }; | ||||||
|        |        | ||||||
|       desktopManager.plasma5 = { |       desktopManager.plasma6.enable = true; | ||||||
|  | 
 | ||||||
|  |       # Use gnome keyring instead of KDE Wallet. | ||||||
|  |       gnome.gnome-keyring.enable = true; | ||||||
|  | 
 | ||||||
|  |       xserver = { | ||||||
|         enable = true; |         enable = true; | ||||||
|         useQtScaling = true; |  | ||||||
|       }; |  | ||||||
|        |  | ||||||
|         excludePackages = with pkgs; [ |         excludePackages = with pkgs; [ | ||||||
|           xterm |           xterm | ||||||
|         ]; |         ]; | ||||||
|  |         videoDrivers = [ "nvidia" ]; | ||||||
|  |       }; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     environment.plasma5.excludePackages = with pkgs.libsForQt5; [ |     environment.plasma6.excludePackages = with pkgs.kdePackages; [ | ||||||
|       elisa |       elisa | ||||||
|       okular |       gwenview | ||||||
|  |       kate | ||||||
|       khelpcenter |       khelpcenter | ||||||
|       konsole |       konsole | ||||||
|       print-manager |       kwalletmanager | ||||||
|  |       okular | ||||||
|       plasma-systemmonitor |       plasma-systemmonitor | ||||||
|       gwenview |       print-manager | ||||||
|     ]; |     ]; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -65,24 +65,28 @@ in { | ||||||
| 
 | 
 | ||||||
|   config = lib.mkIf cfg.enable { |   config = lib.mkIf cfg.enable { | ||||||
|     environment.systemPackages = (with pkgs; [ |     environment.systemPackages = (with pkgs; [ | ||||||
|  |       # Window manager related | ||||||
|       dbus-sway-environment |       dbus-sway-environment | ||||||
|       configure-gtk |       configure-gtk | ||||||
|       wayland |       wayland | ||||||
|       xdg-utils # Open with default program |       xdg-utils # Open with default program | ||||||
|       glib      # gsettings |       glib      # gsettings | ||||||
|       wl-clipboard |       wl-clipboard # Copying to system clipboard in vim | ||||||
|  |       wl-mirror # Mirror an output | ||||||
|       wdisplays # Tool to configure displays |       wdisplays # Tool to configure displays | ||||||
| 
 | 
 | ||||||
|  |       # Desktop Environment related | ||||||
|       brightnessctl |       brightnessctl | ||||||
|       dunst |       dunst | ||||||
|       libnotify |       libnotify | ||||||
|       playerctl |       playerctl | ||||||
|       swaybg |       swaybg | ||||||
|       swaylock-effects |       swaylock-effects | ||||||
|       waybar |  | ||||||
|       wlsunset |       wlsunset | ||||||
|  |       waycorner | ||||||
| 
 | 
 | ||||||
|       # TODO Turn into own module/package? |       # TODO Turn into own module/package? | ||||||
|  |       dmenu | ||||||
|       jq |       jq | ||||||
|       j4-dmenu-desktop |       j4-dmenu-desktop | ||||||
|       rofi |       rofi | ||||||
|  | @ -91,6 +95,7 @@ in { | ||||||
|     ]); |     ]); | ||||||
| 
 | 
 | ||||||
|     environment.sessionVariables = { |     environment.sessionVariables = { | ||||||
|  |       ASSETS_DIR = ../../../../assets; | ||||||
|       SCRIPT_DIR = ../../../../scripts; |       SCRIPT_DIR = ../../../../scripts; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  | @ -98,54 +103,45 @@ in { | ||||||
|       dejavu_fonts |       dejavu_fonts | ||||||
|       font-awesome |       font-awesome | ||||||
|       noto-fonts |       noto-fonts | ||||||
|       noto-fonts-cjk |       noto-fonts-cjk-sans | ||||||
|  |       noto-fonts-cjk-serif | ||||||
|       noto-fonts-emoji |       noto-fonts-emoji | ||||||
|       source-han-sans |  | ||||||
|       source-han-sans-japanese |  | ||||||
|       source-han-serif-japanese |  | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|     security.polkit.enable = true; |     hardware.graphics.enable = true; | ||||||
| 
 | 
 | ||||||
|     services = { |     services = { | ||||||
|       atd.enable = true; # Required by sunset.sh |       atd.enable = true; # Required by sunset.sh | ||||||
|       dbus.enable = true; |       dbus.enable = true; | ||||||
|  |       displayManager.ly.enable = true; | ||||||
|       gnome.gnome-keyring.enable = true; |       gnome.gnome-keyring.enable = true; | ||||||
| 
 |  | ||||||
|       pipewire = { |  | ||||||
|         enable = true; |  | ||||||
|         alsa.enable = true; |  | ||||||
|         pulse.enable = true; |  | ||||||
|       }; |  | ||||||
| 
 |  | ||||||
|       power-profiles-daemon.enable = true; |       power-profiles-daemon.enable = true; | ||||||
| 
 |       xserver.videoDrivers = [ "nouveau" ]; | ||||||
|       xserver = { |       # xserver.videoDrivers = [ "nvidia" ]; | ||||||
|         displayManager.session = [{ |  | ||||||
|           manage = "window"; |  | ||||||
|           name = "Sway"; |  | ||||||
|           start = '' |  | ||||||
|             ${pkgs.sway}/bin/sway --unsupported-gpu & |  | ||||||
|             waitPID=$! |  | ||||||
|           ''; |  | ||||||
|         }]; |  | ||||||
|         videoDrivers = [ "nouveau" ]; |  | ||||||
|       }; |  | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     xdg.portal = { |     xdg.portal = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       wlr.enable = true; |       wlr.enable = true; | ||||||
|       extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; |       extraPortals = with pkgs; [ | ||||||
|  |         xdg-desktop-portal-gtk | ||||||
|  |         gtk-session-lock | ||||||
|  |       ]; | ||||||
|  |       xdgOpenUsePortal = true; | ||||||
|     }; |     }; | ||||||
|    |    | ||||||
|     programs.sway = { |     programs.sway = { | ||||||
|       enable = true; |       enable = true; | ||||||
|  |       package = pkgs.swayfx; | ||||||
|       wrapperFeatures.gtk = true; |       wrapperFeatures.gtk = true; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     sisyphus.users.wantedGroups = [ |     sisyphus = { | ||||||
|  |       desktop.waybar.enable = true; | ||||||
|  | 
 | ||||||
|  |       users.wantedGroups = [ | ||||||
|         config.users.groups.video.name # Brightnessctl |         config.users.groups.video.name # Brightnessctl | ||||||
|       ]; |       ]; | ||||||
|     }; |     }; | ||||||
|  |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								nixos/modules/desktop/waybar/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								nixos/modules/desktop/waybar/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | ||||||
|  | { config, lib, pkgs, ... }: | ||||||
|  | 
 | ||||||
|  | let | ||||||
|  |   cfg = config.sisyphus.desktop.waybar; | ||||||
|  | in { | ||||||
|  |   options.sisyphus.desktop.waybar.enable = lib.mkEnableOption "Waybar"; | ||||||
|  | 
 | ||||||
|  |   config = lib.mkIf cfg.enable { | ||||||
|  |     environment.systemPackages = with pkgs; [ | ||||||
|  |       libnotify | ||||||
|  |       playerctl | ||||||
|  |       jq | ||||||
|  |       j4-dmenu-desktop | ||||||
|  |     ]; | ||||||
|  | 
 | ||||||
|  |     programs.waybar.enable = true; | ||||||
|  |   }; | ||||||
|  | } | ||||||
|  | @ -1,6 +1,7 @@ | ||||||
| { | { | ||||||
|   imports = [ |   imports = [ | ||||||
|     ./eid |     ./eid | ||||||
|  |     ./fingerprint-scanner | ||||||
|     ./nvidia |     ./nvidia | ||||||
|     ./yubikey |     ./yubikey | ||||||
|   ]; |   ]; | ||||||
|  |  | ||||||
							
								
								
									
										30
									
								
								nixos/modules/hardware/fingerprint-scanner/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								nixos/modules/hardware/fingerprint-scanner/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,30 @@ | ||||||
|  | { config, lib, pkgs, ... }: | ||||||
|  | 
 | ||||||
|  | let | ||||||
|  |   cfg = config.sisyphus.hardware.fingerprint-scanner; | ||||||
|  | in { | ||||||
|  |   options.sisyphus.hardware.fingerprint-scanner.enable = lib.mkEnableOption "Fingerprint scanner support"; | ||||||
|  | 
 | ||||||
|  |   config = lib.mkIf cfg.enable { | ||||||
|  |     # Enable driver | ||||||
|  |     services.fprintd = { | ||||||
|  |       enable = true; | ||||||
|  | 
 | ||||||
|  |       # Enable Touch OEM Drivers library support | ||||||
|  |       tod = { | ||||||
|  |         enable = true; | ||||||
|  |         # Dell drivers | ||||||
|  |         driver = pkgs.libfprint-2-tod1-broadcom; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     # Start driver at boot | ||||||
|  |     systemd.services.fprintd = { | ||||||
|  |       wantedBy = [ | ||||||
|  |         "multi-user.target" | ||||||
|  |       ]; | ||||||
|  |       serviceConfig.Type = "simple"; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @ -25,26 +25,34 @@ in { | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   config = lib.mkIf cfg.enable { |   config = lib.mkIf cfg.enable { | ||||||
| #    boot = { |     boot = { | ||||||
| #      extraModprobeConfig = "options nvidia-drm modeset=1"; |       extraModprobeConfig = '' | ||||||
| # |         options nvidia-drm modeset=1 | ||||||
| #      initrd.kernelModules = [ |       ''; | ||||||
| #        "nvidia" |       kernelParams = [ | ||||||
| #        "nvidia_modeset" |         "nvidia_drm.modeset=1" | ||||||
| #        "nvidia_uvm" |       ]; | ||||||
| #        "nvidia_drm" |     }; | ||||||
| #      ]; |  | ||||||
| #    }; |  | ||||||
| 
 | 
 | ||||||
|     hardware = { |     hardware = { | ||||||
|       opengl = { |       graphics = { | ||||||
|         enable = true; |         enable = true; | ||||||
|         driSupport = true; |         enable32Bit = true; | ||||||
|         driSupport32Bit = true; |         extraPackages = with pkgs; [ | ||||||
|  |           intel-ocl | ||||||
|  |           intel-compute-runtime | ||||||
|  |           opencl-clhpp | ||||||
|  |           opencl-clang | ||||||
|  |           opencl-headers | ||||||
|  |           ocl-icd | ||||||
|  |         ]; | ||||||
|       }; |       }; | ||||||
|  | 
 | ||||||
|       nvidia = { |       nvidia = { | ||||||
|  |         # Use the NVidia open source kernel module (or not) | ||||||
|         open = false; |         open = false; | ||||||
|         package = config.boot.kernelPackages.nvidiaPackages.stable; |         package = config.boot.kernelPackages.nvidiaPackages.stable; | ||||||
|  |         # Modesetting is required. | ||||||
|         modesetting.enable = true; |         modesetting.enable = true; | ||||||
|         nvidiaSettings = cfg.gui-settings; |         nvidiaSettings = cfg.gui-settings; | ||||||
|         powerManagement = { |         powerManagement = { | ||||||
|  |  | ||||||
|  | @ -25,11 +25,17 @@ in { | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|     # Send a notification if the YubiKey is waiting for touch. |     # Send a notification if the YubiKey is waiting for touch. | ||||||
|     systemd.user.services.yubikey-touch-detector = { |     systemd.services.yubikey-touch-detector = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       description = "Detects when your YubiKey is waiting for a touch"; |       description = "Detects when your YubiKey is waiting for a touch"; | ||||||
|       path = with pkgs; [ yubikey-touch-detector ]; |       path = with pkgs; [ | ||||||
|       script = ''exec yubikey-touch-detector --notify''; |         gnupg | ||||||
|  |         yubikey-touch-detector | ||||||
|  |       ]; | ||||||
|  |       wantedBy = [ | ||||||
|  |         "graphical-session.target" | ||||||
|  |       ]; | ||||||
|  |       script = ''exec yubikey-touch-detector --libnotify''; | ||||||
|       environment.YUBIKEY_TOUCH_DETECTOR_LIBNOTIFY = "true"; |       environment.YUBIKEY_TOUCH_DETECTOR_LIBNOTIFY = "true"; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|  | @ -9,6 +9,6 @@ in { | ||||||
|     extraOptions = '' |     extraOptions = '' | ||||||
|       experimental-features = nix-command flakes |       experimental-features = nix-command flakes | ||||||
|     ''; |     ''; | ||||||
|     package = pkgs.nixFlakes; |     package = pkgs.nixVersions.stable; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -8,7 +8,7 @@ in { | ||||||
|   config = lib.mkIf cfg.enable { |   config = lib.mkIf cfg.enable { | ||||||
|     programs.direnv = { |     programs.direnv = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       nix-direnv.enable = true;  # Use nix-specific direnv. |       nix-direnv.enable = true;  # Use nix-specific direnv, https://github.com/nix-community/nix-direnv | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     # This is also done by setting programs.direnv.persistDerivations. |     # This is also done by setting programs.direnv.persistDerivations. | ||||||
|  |  | ||||||
|  | @ -14,8 +14,8 @@ in { | ||||||
|       # Add secrets.yml to the Nix Store. |       # Add secrets.yml to the Nix Store. | ||||||
|       defaultSopsFile = ../../../secrets/secrets.yaml; |       defaultSopsFile = ../../../secrets/secrets.yaml; | ||||||
|       age = { |       age = { | ||||||
|         # Automatically import SSH keys as age keys. |         # Don't derive age keys from SSH keys. | ||||||
|         sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; |         sshKeyPaths = [ ]; | ||||||
|         # Use an age key that is expected to already be in the filesystem. |         # Use an age key that is expected to already be in the filesystem. | ||||||
|         # You will need to place this file manually. |         # You will need to place this file manually. | ||||||
|         keyFile = "/var/lib/sops-nix/key.txt"; |         keyFile = "/var/lib/sops-nix/key.txt"; | ||||||
|  |  | ||||||
|  | @ -5,6 +5,7 @@ | ||||||
|     ./openssh |     ./openssh | ||||||
|     ./pipewire |     ./pipewire | ||||||
|     ./printing |     ./printing | ||||||
|  |     ./remEYEnder | ||||||
|     ./tailscale |     ./tailscale | ||||||
|   ]; |   ]; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -6,8 +6,6 @@ in { | ||||||
|   options.sisyphus.services.pipewire.enable = lib.mkEnableOption "Pipewire"; |   options.sisyphus.services.pipewire.enable = lib.mkEnableOption "Pipewire"; | ||||||
| 
 | 
 | ||||||
|   config = lib.mkIf cfg.enable { |   config = lib.mkIf cfg.enable { | ||||||
|     sound.enable = true; |  | ||||||
|     hardware.pulseaudio.enable = false; |  | ||||||
|     security.rtkit.enable = true; |     security.rtkit.enable = true; | ||||||
|     services.pipewire = { |     services.pipewire = { | ||||||
|       enable = true; |       enable = true; | ||||||
|  | @ -20,6 +18,24 @@ in { | ||||||
|       # use the example session manager (no others are packaged yet so this is enabled by default, |       # use the example session manager (no others are packaged yet so this is enabled by default, | ||||||
|       # no need to redefine it in your config for now) |       # no need to redefine it in your config for now) | ||||||
|       #media-session.enable = true; |       #media-session.enable = true; | ||||||
|  | 
 | ||||||
|  |       wireplumber = { | ||||||
|  |         enable = true; | ||||||
|  |         # Fix pops after silence | ||||||
|  |         extraConfig."99-disable-suspend" = { | ||||||
|  |           "monitor.alsa.rules" = [ | ||||||
|  |             { | ||||||
|  |               matches = [ | ||||||
|  |                 # Headphone jack on laptop | ||||||
|  |                 { "node.name" = "alsa_output.pci-0000_00_1f.3.analog-stereo"; } | ||||||
|  |               ]; | ||||||
|  |               actions.update-props = { | ||||||
|  |                 "session.suspend-timeout-seconds" = 0; | ||||||
|  |               }; | ||||||
|  |             } | ||||||
|  |           ]; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ in { | ||||||
|       printing.enable = true; |       printing.enable = true; | ||||||
|       avahi = { |       avahi = { | ||||||
|         enable = true; |         enable = true; | ||||||
|         nssmdns = true; |         nssmdns4 = true; | ||||||
|         openFirewall = true; |         openFirewall = true; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										35
									
								
								nixos/modules/services/remEYEnder/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								nixos/modules/services/remEYEnder/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,35 @@ | ||||||
|  | { config, lib, pkgs, ... }: | ||||||
|  | 
 | ||||||
|  | let | ||||||
|  |   cfg = config.sisyphus.services.remEYEnder; | ||||||
|  | 
 | ||||||
|  |   icon = ./vecteezy_eyes-line-icon-vector-isolated_13932670.jpg; | ||||||
|  | in { | ||||||
|  |   options.sisyphus.services.remEYEnder.enable = lib.mkEnableOption "Eye reminder"; | ||||||
|  | 
 | ||||||
|  |   config = lib.mkIf cfg.enable { | ||||||
|  |     systemd.user = { | ||||||
|  |       services.remEYEnder = { | ||||||
|  |         enable = true; | ||||||
|  |         description = "Send an eye reminder"; | ||||||
|  |         serviceConfig.Type = "oneshot"; | ||||||
|  |         script = '' | ||||||
|  |           # Display reminder for 20 seconds. | ||||||
|  |           ${pkgs.libnotify}/bin/notify-send -t 20000 --icon=${icon} "RemEYEnder" "Look away from your screen :)" | ||||||
|  |         ''; | ||||||
|  |       }; | ||||||
|  |       timers.remEYEnder = { | ||||||
|  |         enable = true; | ||||||
|  |         description = "Timer for remEYEnders, runs every 20 minutes."; | ||||||
|  |         wantedBy = [ | ||||||
|  |           "timers.target" | ||||||
|  |         ]; | ||||||
|  |         timerConfig = { | ||||||
|  |           OnActiveSec = "20min"; | ||||||
|  |           OnUnitActiveSec = "20min"; | ||||||
|  |           Unit = "remEYEnder.service"; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 97 KiB | 
|  | @ -10,8 +10,15 @@ in { | ||||||
|       enable = true; |       enable = true; | ||||||
|       # Because these are made for development purposes and not for servers |       # Because these are made for development purposes and not for servers | ||||||
|       enableOnBoot = false; |       enableOnBoot = false; | ||||||
|  | 
 | ||||||
|  |       daemon.settings.features.cdi = true; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  |     # Updated version of deprecated enableNvidia. | ||||||
|     hardware.nvidia-container-toolkit.enable = true; |     hardware.nvidia-container-toolkit.enable = true; | ||||||
|  | 
 | ||||||
|  |     sisyphus.users.wantedGroups = [ | ||||||
|  |       "docker" | ||||||
|  |     ]; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,35 +1,24 @@ | ||||||
| { config, lib, pkgs, ... }: | { config, lib, pkgs-unstable, ... }: | ||||||
| 
 | 
 | ||||||
| let | let | ||||||
|   cfg = config.sisyphus.virtualisation.virtualbox; |   cfg = config.sisyphus.virtualisation.virtualbox; | ||||||
| 
 |  | ||||||
|   # I like to override the virtualbox package because it is frequently |  | ||||||
|   # and rebuilds take quite long. |  | ||||||
|   inherit (pkgs) fetchurl; |  | ||||||
|   version = "7.0.10"; |  | ||||||
|   virtualbox-override = pkgs.virtualbox.overrideAttrs (oldAttrs: { |  | ||||||
|     src = fetchurl { |  | ||||||
|       url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2"; |  | ||||||
|       sha256 = "0b1e6d8b7f87d017c7fae37f80586acff04f799ffc1d51e995954d6415dee371"; |  | ||||||
|     }; |  | ||||||
|   }); |  | ||||||
| in { | in { | ||||||
|   options.sisyphus.virtualisation.virtualbox.enable = lib.mkEnableOption "VirtualBox"; |   options.sisyphus.virtualisation.virtualbox.enable = lib.mkEnableOption "VirtualBox"; | ||||||
| 
 | 
 | ||||||
|   config = lib.mkIf cfg.enable { |   config = lib.mkIf cfg.enable { | ||||||
|     virtualisation.virtualbox = { |     virtualisation.virtualbox.host = { | ||||||
|       host = { |  | ||||||
|       enable = true; |       enable = true; | ||||||
|       enableExtensionPack = true; |       enableExtensionPack = true; | ||||||
|         package = virtualbox-override; |       enableHardening = true; | ||||||
|       }; |       package = pkgs-unstable.virtualbox; | ||||||
|       guest = { |  | ||||||
|         enable = true; |  | ||||||
|         clipboard = true; |  | ||||||
|         seamless = true; |  | ||||||
|       }; |  | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  |     # https://www.virtualbox.org/ticket/22248#comment:1 | ||||||
|  |     # and | ||||||
|  |     # https://github.com/NixOS/nixpkgs/pull/444438 | ||||||
|  |     boot.kernelParams = [ "kvm.enable_virt_at_load=0" ]; | ||||||
|  | 
 | ||||||
|     # Define the group |     # Define the group | ||||||
|     users.groups.vboxusers = {}; |     users.groups.vboxusers = {}; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -9,7 +9,7 @@ final: prev: { | ||||||
|       sha256 = "sha256-UzpHAHpQx2MlmBNKm2turjeVmgp5zXKWm3nZbEo0mYE="; |       sha256 = "sha256-UzpHAHpQx2MlmBNKm2turjeVmgp5zXKWm3nZbEo0mYE="; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     cargoHash = "sha256-oHfk68mAIcmOenW7jn71Xpt8hWVDtxyInWhVN2rH+kk="; |     cargoHash = "sha256-oGpe+kBf6kBboyx/YfbQBt1vvjtXd1n2pOH6FNcbF8M="; | ||||||
| 
 | 
 | ||||||
|     buildInputs = with final; [ |     buildInputs = with final; [ | ||||||
|       cargo |       cargo | ||||||
|  |  | ||||||
|  | @ -1,22 +0,0 @@ | ||||||
| GitHub: |  | ||||||
|     ssh: ENC[AES256_GCM,data:jzRpTgefhZg7Vhm8QvWNsPBko1yw56sM/XehY72lAc7aRz+dx6BGgyYbZiifd7GrGJGUbH6gWfUg8YjgVla6VRsiHCEvSK3bY0ADDwTeSUs+wuybYXQZqhivSCInVtVSNAcp99uI1QwKor289zmxcFtSZEXgU1OCSel/8br+qipAbOkzAKX1v15eigjY4OSQxXL59EuuuHEQ+vjVVv95tDv03jaNAoU9UKr0Atrny/Fn2sQn4Tmec5Q1XdvDErKhSxrAFiACkxXUwPZMHez+BUZrmkksqpzNJjYNIlmsITuOVr7Fyen9wotAwsDf96Fmz5JYLtRX9CAboUgQLdUOKprwX/xgBnFtDTSH1Qr785T1QSAZL6xdE6hNibxZO3vGeeaPC3oGB5g9x5CwTQelMdOUPKdKorCDj226o56cTc/IQxUpsULbeOyi2pMGHiTHbiQBzHpxWyQ/gBktPkF25GOFeaCu3gW+xsspX91jSKudcYdBqWUNmJcdsfHfPxPM4cZtA/sVMyoA+YcehgU7GTu9DAlxDTug/JWo,iv:5shfzmrFFVEuaYmyTkBMAw9BIFFkKz0yl1dyJWxq6Y4=,tag:CX7TBJJXCKuIPSmg9/RpGg==,type:str] |  | ||||||
| sops: |  | ||||||
|     kms: [] |  | ||||||
|     gcp_kms: [] |  | ||||||
|     azure_kv: [] |  | ||||||
|     hc_vault: [] |  | ||||||
|     age: |  | ||||||
|         - recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y |  | ||||||
|           enc: | |  | ||||||
|             -----BEGIN AGE ENCRYPTED FILE----- |  | ||||||
|             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYWWFUdnpERVlkK29TQ09k |  | ||||||
|             SnJMVm5rUEV6S0huSzJ2YjFFQ3pNR0pmZWprClZEVDloeDE2ODNkMVVJTUtqaENz |  | ||||||
|             ZzhwTTA4V2xOeW55WGtPZU5FWElQNDAKLS0tIFh5ZWtmZHRBWTAvM3ZwY3pKQ0R6 |  | ||||||
|             aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A |  | ||||||
|             dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w== |  | ||||||
|             -----END AGE ENCRYPTED FILE----- |  | ||||||
|     lastmodified: "2023-09-11T10:23:48Z" |  | ||||||
|     mac: ENC[AES256_GCM,data:3XEbhFY1TlXo6bTctV2u4i6QPzXnJC6iU3F/MUARSQl1z4peOB5x8hZfdiV/hVMR8I+83TxDcEAmKDrcaMf89Tqa+OiD//wBekMUfS7AmBRhpv7X5qfarflfnygacFsAMhf/bdiqowYbGSNvlPjueqHJaFZ+3x/wPrt/jAYNlr8=,iv:ciQmY7bE+Je6kMlmxxtQvp+r3e/ZK942tT4TtXhDX2M=,tag:4+7uZlEm5bcRfZC7pp5Y7Q==,type:str] |  | ||||||
|     pgp: [] |  | ||||||
|     unencrypted_suffix: _unencrypted |  | ||||||
|     version: 3.7.3 |  | ||||||
							
								
								
									
										41
									
								
								nixos/secrets/HomeLab.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								nixos/secrets/HomeLab.yaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,41 @@ | ||||||
|  | HomeLab: | ||||||
|  |     Gitea: | ||||||
|  |         ssh: ENC[AES256_GCM,data:+H9qhfOg5WlTB7pihvbJ9omY/zLTAADe8KzI4fbdZ7NuaM0auC95AIQqhwNNCZNglg9UGOVL662pY7dNhbQ/2iCLPHSPgFFXf3fx1moRRcYYQzoJxsgxp19FZQeGNJ0qfRf72xYbZQZKslyHQmcqDieoVTyhaLqTfgC8MQ/UZofw/ortmgME7z51rGV5sXXMjxpJpHz9JxiPwQEL0ABWDAeCqBVBzlqqwdmfKEdkcR4l3USHfH1iNF5XQ5V26I+UGDOyoixt1c/BXzD9xzKI7MUDoRz+qfC6C62LIlEgqZY5tWg+tVZnqobakxwH6d8pXtQ7vaIREEP0LqQMkrNcK8X+cDRteToQ1fcxtN1V+JfZSa9pVC+iGgvmSZ00q4bnOgTmgO9IZ80TvOR4bHpRhjM5l4JMbLBv2jqY1zeUx/5L3WNuYIm9sL5mWXkV/RAD8WCemNSWdKbGsvByEUeiFcxczL/vQ6y3fi+ntmXUgeXVy5zVNkNlYbqd+DemBmwZQb9D1T5T97i2ChciYb3/ON1NObja/bt0PTQa,iv:hIbwsPcDSfgDItlvFFy0vCjuQWvgoQHBH60v8nTVTNg=,tag:1T/TdTEy98TfgMzYAxfHKA==,type:str] | ||||||
|  |     HTPC: | ||||||
|  |         ssh: ENC[AES256_GCM,data:svt6jhMXVCydmlcoa052TtFoIwQiAzNJRn9GPZDBuOGSnB83kUpuy/oqPOIa2ipco0L/5F/mQWn7OHUFtyhWWMerzY8niPldUDKH4jgsvRhRIatGOFiDyL8oA+f1O9lmhyFx35uxGa+Q6tn6rtXVKRVWQFe8kYBvGYjugKixsOMugoqLIxY8wUlMTzm6uDd7a72s/0hgQZGKp0eHWBHEdSJGPdv8svVDZ1PBMrlZa5ZpuiUmmvZvyCEnRtImUZALG4nKMvJjunxKr/4MJhWuffQ60jLYzInoGggiJlwBm+E+m43FwIFndY+LJ+ykO5RAbHhSwgXsCS5WXBrvDGuOTNAlIp6yTgSK1DCzSjzOJOc93rVSPhPdkaOoKgxhz1k95qCEhYUf9vyBgyIaOntWEArV+OZmHje6awbk4fpyIzRe7ggHlhKILYoGYzeejxbMGB9nH15RlUiTF7QnAWxWNSwcET6dSn2MtpC3yegnYl4u3eJ7YkHHYYQtwCQ9vCnt0i/sfuJmbrSFBXnVKMWB2w1Att145gDdlDok,iv:4bkSYvgmG6j/AwVnfGsLjdqtyP/gpWRvOKZCQxP0sMs=,tag:LyjE7dTt0+IDuSlbVLgCMg==,type:str] | ||||||
|  |     Hugo: | ||||||
|  |         ssh: ENC[AES256_GCM,data:y233CFIH7/n4EGEd2D7MuoprcMV9A8DaiV9JYZ6sr5j+hZnGr8sIAm9/55Bi2cD74sBZcE+tjOz+V2aJ2llKgcdS84ZmXMPh6KQ2QYRYuGdBLeztl8foKdimToblBapebTVO7Rc2mdhg7sZtC/TKSIJnG3R3lRfRdKaxNjaRS51epl7VZKGhLBjZoZqMXOezY7lvNBvF3hFfMh5el5I5Te/yQbbp0a7DkAvA+c1nG9bo9FN0h3VJJTzcuHqvGHI736VosLe8UGirMkX9mBwB8ZV4+2Vp7ZsSHnX5or/MzuYexT0zeLbTNHfj64d2W2/LKDkxNc35Sw7NvxwsVj3k2UHC2jEgus2z0AdMFszEFXh+Eu9wK8yX4ebzUut+OHNPuxvIk+ORxYr3OdVkOhhWHLinu/skNg0u5OdUXo/0p1876+gpcnOVC5UrUflwrtKGQgNk+ovWWjSfcQMh+gI6GYXzksX3YdMEriYZt4Z8lev2od/i7q48cV4W3Lo6TDDttipynxQus6K+J3oBKRirLHylRA5gusqUOVzC,iv:thw9OUnA02qe6aMuLTwy+q/a6isB375/k7JixPEy960=,tag:s95FtFRmPG0Up2oVuQyXsg==,type:str] | ||||||
|  |     Nextcloud: | ||||||
|  |         ssh: ENC[AES256_GCM,data:aVqa57u9hIOquP367EDj2rlyQWRe3EZv8l5cC+yQQKCri2bN5IFSq8qNemOIcU9ycBnxIyK6gLerJYQQcgzIIARmnfDpbJ9w+EeUL5yvPVJN6FM7oBeaL9mzYRl8aDKr22LhL9YiKAT1nKHESmTb3TZRvuvWJTGzCMRV85ROGxZYVUgG6BjuHEzuTsc4fy3NVPIl7/4ZjPgNNYx+UNsV5xwTejveB/sGblVrHOO74LZXzUWRlQNun5nM3MY3GALzfrPrVIAyGNu37CGachtwxaPOj7vUKZmD/e+XajYVKRJ3v33jrUeI0dDmhuwJj3taoFik6suAyiK3RlDdeWoERR8vqduiyxJnVMs6mNkigzkVtifpwZyQ8vNyG7w1JNPygMYgQzjN43lGVml8cx1lZvcoBzQabjWxcNzhV8gXxoGKvAwUV7ELB6l00rUH+EeI0uU8/IFm9kwmZq42ciM/bRGSGXzo2PYG2OHOiDe5b0nrIlajaRKd+vuuzTtFFU9EwH0GPzERRaoxVK+h9tzcco/REITCE+CVlHSx,iv:bb1X95HK5tT7EJpqqgMOUxw5VO5MuzoYxkPIzR5sEqU=,tag:y2LKHm7czwyuHp7Ea8KiYw==,type:str] | ||||||
|  |     NixOS: | ||||||
|  |         admin: | ||||||
|  |             ssh: ENC[AES256_GCM,data:rAn/H2CtK2dkES2UIJrZbEP/3rqLgJsy5rortmdqoCthQ41IxztiaH1VtdaVDtw5j0qu49RJ59KkmYpOQXC2okAgLeqcb+J9iwrwspfKd+/I186a4gHZ2l+hGpmr3Vbs6K/UoCY67uygZhznBuwKeW4EjYJgGS7zInJFmMvcMV1rP/t4VoW+5oxptQNCrzoRukIG6NiAOcqU1GtvBfL5PxLaTWUEcZMYuo6sY/9VuEWgkZP1bmhBPUIv9D5yJo94KQr0YOaX4lz2pwd+K0cdD8d0Lh8B5YplA1NDCUnBbuDXfH0aSUAm7DCm6Y/E2UECEMRLuwfyEoe/yaHh8iCGveI//FkmiIKNY1SmTkjM2Fdfk6QaVDF8sG2CWdX21H3senfeM6jSow7JLY1LDvC2WxO4YIJEi14Y7zEpIZinWimyAhihPvMLnwd3taOhE59NrTOQKQS3tyFX+5tO3LtBrpn+Tm/B7WO49EkRn1LXN8CWkFnEEGXgxfNRg91C967nHaNpDMssGjfVG20WwYAtMKXzrNyzSEJbZglQ,iv:vY/8yyO0eLzpdho9aPUH9WGQ8Cp5LA+5RckjzDgYMMY=,tag:Jar1qVS/c1rQ8f3qpYqJdA==,type:str] | ||||||
|  |     Roxanne: | ||||||
|  |         ghost: | ||||||
|  |             ssh: ENC[AES256_GCM,data:hkgVUVyCLANeYB4bcCTLB/F6eAbg7J4eN8y+VVzBfkcgnpDmXmghBihreQVT7OIwRrHIH1ok2vuH8vgXb38tuplUD5I8e0Gqy3EqpOGagsO8lss4aIg2lRwZ9WazJknvo4OaGc34jrwcZicesnaxK6g+GX2r2N4caGKMuOZ2i1mLKBwOcEtL6l3REKrGkExd3mYJX1Yqs7sMbGLNpfemDghv646zvxDRwPby49qIPA8OtGR+DBMZTTEviNqamJaFbs7YX+K77J1NHK59u6UfzU6hEjTBEYIjkFDzGATAZAopCsjOHcAA0alejHK4QZZt3e8unVsLICNK08ZCyEzwSXQ/wpUh3ccGcLit2t1LYZT4PqqG8+6ooaQYso67Wral0pdsTsrF0mGNfsZm76MDV9puP5B+IInanHz+2mCHbdmTi6rg9t8Q6mpFqrUbrwxMn2Ns1proBXBCqK/sFjC/bVIyMHUVOh6GYcKaVTv8ecB9ZEjp5dZ4VeStqTMT+xqS7dXBAJzGytLwXT/JaQelIE0w47aBaGy63Pqy,iv:WuAGU+ru8xLp2LXK12x/ueCH0XDxA0zGUt7+HWUdVMo=,tag:UqUMD/jSdTXOkf0kyMqwHA==,type:str] | ||||||
|  |     Vaultwarden: | ||||||
|  |         ssh: ENC[AES256_GCM,data:LJ7nbIdl1GqcsBtOwqsDtjKMfks13X5hsGkEFxDj0eX1EegEBkoWnzstu34RTgt1O1O+3Y/Amg7cDce2ZyZrTwDmLqinpuJD3CI7pRtQygAH8X9wPQYE6U3D1t4dXuMcDftjS+uY0CJFmq01dLv0GytSZSiNBcqNepTY+fO20yylyUbDGjI3Foyi86ipEtLVeFJqESiHDMHn/Cr+ggpLNMXijpnyoCRstPlm3GY3n6EhPwKhwovLB3AXolUeScnInIpwiikVTkYLNLCbrG8KAAr+DmWK3GTZYToH0wV8HpacPQI+4cHf96+EvAVlYMwGyQztPmXO7/9xUgWCNYow+z8BD6ijMuyZHT9aNkoAPt/y72N/PSf5HqW0QVWr3LmyIG+i9Bxbhqc7mRUIy4wZsODbtoO8/RtAly6mXIg0DZLlbo8kDe3TE3m+P5E/KQJOAvM2QdL+NXPcf2J2JYHW4kzITx447Bc3+F/DRs616MhekIoDybLhY3MT0XvYX1d1wAv/Ip98EGzfptXjnJvKPcJgTBlqNyeKuPOe,iv:oEGJUpoj+N30TgLpSWQqGdqYBdWLUWnSuQ+7TdSgmFc=,tag:AUZ2QnPUxLHaxsHbrmSYZQ==,type:str] | ||||||
|  | sops: | ||||||
|  |     age: | ||||||
|  |         - recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y | ||||||
|  |           enc: | | ||||||
|  |             -----BEGIN AGE ENCRYPTED FILE----- | ||||||
|  |             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlL05vZHk2T1B6OHArUXlj | ||||||
|  |             bEZWV0dUeVN0M3ZpeHdKcGlKV1RWYmRLM0FjCm9PLzBZTFo3RjhZTEhYMDBSN2Nj | ||||||
|  |             aithQ2hpZXVCSngxcVBvQ2hKRzFXUEEKLS0tIE5rL0NHb1llRmlSQXVUeU8rVmNY | ||||||
|  |             aEZHdDFEWUdxMzRVVjFhQWZmS04wRkkKrD2CiwdNcbK9s64omQ7xSA29J48HwIHa | ||||||
|  |             ickyL/uorYhXmBKhqdvNq/j1Nb88LR9ti55Z7eecJNbyJb4OTtgzXQ== | ||||||
|  |             -----END AGE ENCRYPTED FILE----- | ||||||
|  |         - recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37 | ||||||
|  |           enc: | | ||||||
|  |             -----BEGIN AGE ENCRYPTED FILE----- | ||||||
|  |             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBOWNXQ1BsekdoS3BCdHA4 | ||||||
|  |             YTJJRHJBTEJ1bmhkWktSamYyRk1TUmovZ2trCnBXbUZQZFBndmU3VzJHVjczZGtY | ||||||
|  |             ZkJDY3RzSEhXQVlLL0g1QTYxSC9CZGMKLS0tIGFBZnNlWmZjZFdkdGZvaHA5ZjMw | ||||||
|  |             NFRtOFIybnFPWm1idFY0WEVqVGxOK1UKiJDByqKv/i/l9dvOplDyzDORU3ulhSwi | ||||||
|  |             6xyEqmyNQpIkiS6TLZZYrBlQMDYqZ2gj1HhdIUssWJCf5Ho8KVDjJQ== | ||||||
|  |             -----END AGE ENCRYPTED FILE----- | ||||||
|  |     lastmodified: "2025-10-18T15:55:58Z" | ||||||
|  |     mac: ENC[AES256_GCM,data:vdVOTFlDD9jlGJksI5TDxk3stPkLY8lB6LMhV6QGqh9R2vaGuGGh6RZuR6AInq1Rm89innA6M1S2UUM6Jef1EKiPgq41neWMx/i3n7Ixx8FcraO/lgUYKG5yszYdjAlLQvKWqIbvX0bMYNwpF10FO5OyiXWiJrP9Om0Pjvk7dO8=,iv:W9I1nv0fKckNlNjJF0U4HlkyI5VDpvOGiSo0GeOODaY=,tag:RjkSTQYejyf1WO0LilbXYg==,type:str] | ||||||
|  |     unencrypted_suffix: _unencrypted | ||||||
|  |     version: 3.10.2 | ||||||
|  | @ -1,24 +0,0 @@ | ||||||
| Hugo: |  | ||||||
|     ssh: ENC[AES256_GCM,data:Qi4YEvG64lJqhISMNtuC0mM02TU5KPpzdgs8x2UJwxAxus4+Aa3nIttkbcbKxtobL7ohKcMFGq7bBdj+s4zbctctknHdjiwj1caDoD7+Fm5H0RWLe7yjt5e4IxRywN8cNF59FfINl2tMutuENOzSucjHIXTKSV/ARZzwhcyZkQy//YvlReUSrUNaNkVM1VtjVILOToAXGzQx5w74eX+9JYV9FtZRTbr/spule+UDDtPZaaiFZmFfE5YjULFPaZJo2iUiirKalPodxfIar9eXzoN+bOQbz2Xys1QHNEt2cwWjERruCsojiyA+XeYFreWEWGggSEXizxv7cS5ab1e9XqtWR+u3Gdy/t1/cjoMBVXuLxQ+BwTlAO8NDgRbW0aq8q5yOsPCjShI/N4EVN5qtMUT1+mYZLCiZPPXbLBIiyqIWea/Ru8iIo7+WoF2iDBgshwnw8+uGDFfwlNh3SAwMSQOcGg06+U17PeU56Q/wqID2lEMDgGfHdqObvMlae1q+Qa9cwrp4xDw5S42NlgVaNcovUav5US5kO43r,iv:xvuRv4sqLRGv9npIVjnGV7zDPzIyS58ZKN2T23BmMZs=,tag:iGnBzgRhREEfKjE/ea5Drw==,type:str] |  | ||||||
|     Gitea: |  | ||||||
|         ssh: ENC[AES256_GCM,data:digqDmnEPg/Zn9Xt7+Z/R9lTBs6CeOgHgIhstWxHnvucwshUO7Zu+l80YPyzAck0pO5YIKML8hjAqj30lYqSPRzG1uRpT7likCy15MqyyQ64U+5PGQRNhybo1eYoqVFYd2sYc5xzkve1b8zCDfxj2mbmRYETYSidHZLaDilq6iKtWWSX+mnTXqJ2gIj+J7pfFBOHskWglnrVdj93AOdpG6cmnvzE7ey8SrMt9t0GzmRFAvjP3slio8NTsI97fu3isF0phGoh8q9tGGRnRMDq3E33zzntT3jawtWiib9ZCxuJ8Zhwc1fIF07YfBJ+sZJ7Kau1205NFJtISGbVhVmpD9kQdoFwYQxYJuvPcDYyIYH/K86bYnBmJWRCwbTh7Es7DCCC90VY/yMjRNoYvjupjhuHKGXE8O/Y8weERZ+GuZ8BSxFwU81YK9mcQyw+Z+MdAFsZEhR7cpxRkty2INKxOdX8wJGVw3A1cInwuiBjLiED0ndh39RqJbE8DUQAJgngSbYK52rCadjhs2xf+tPiDatsDMAHU2DpyDcz,iv:Dh9hhr1mp+gXA1eUvsJVb5opbaEtdRMKAd4HQSQlOpc=,tag:k4M96tstNATvyFe6xF2IzQ==,type:str] |  | ||||||
| sops: |  | ||||||
|     kms: [] |  | ||||||
|     gcp_kms: [] |  | ||||||
|     azure_kv: [] |  | ||||||
|     hc_vault: [] |  | ||||||
|     age: |  | ||||||
|         - recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y |  | ||||||
|           enc: | |  | ||||||
|             -----BEGIN AGE ENCRYPTED FILE----- |  | ||||||
|             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYWWFUdnpERVlkK29TQ09k |  | ||||||
|             SnJMVm5rUEV6S0huSzJ2YjFFQ3pNR0pmZWprClZEVDloeDE2ODNkMVVJTUtqaENz |  | ||||||
|             ZzhwTTA4V2xOeW55WGtPZU5FWElQNDAKLS0tIFh5ZWtmZHRBWTAvM3ZwY3pKQ0R6 |  | ||||||
|             aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A |  | ||||||
|             dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w== |  | ||||||
|             -----END AGE ENCRYPTED FILE----- |  | ||||||
|     lastmodified: "2023-10-05T19:05:15Z" |  | ||||||
|     mac: ENC[AES256_GCM,data:8xMV6RkmXpt2uY07E+59ZXwTwTL6oqo9j5sFOxejwnFU06MGW9t1h/5HFg+GKpp3Jj1LT6a7uuyip6bDGCMEhI054sTv2uDlOIFd4nbHwOh+keEH/FLa8csTq4yyisROsaXUUCtWxraGXz0MQXT8xlQMT7Pn0x43JssmPhOwrRo=,iv:JKNsroIAxvV5V23at/DsDdud5idVn5IEQHrgeFHR3fQ=,tag:XY0hikk4yvqfynPI8q+GBg==,type:str] |  | ||||||
|     pgp: [] |  | ||||||
|     unencrypted_suffix: _unencrypted |  | ||||||
|     version: 3.7.3 |  | ||||||
|  | @ -6,22 +6,26 @@ UGent: | ||||||
|     SubGit: |     SubGit: | ||||||
|         ssh: ENC[AES256_GCM,data:hJAle4DHJNvX569reclBG5rEdWsjAyV2TtHYMiPfky/dMKJkYgT4+T0doLfUn1O6at77kJGPmwUEvmK819DUuvHtNY7c6angV7iLygJ/ThI1FIFOKH+NxEsI3scoT0VDDybHpgice/fcJL1tMcvE74+dWOnZ2r4pxcMJEFHUPVVWcl9/stJLn78OonsyWpj8PglcnYFOfZ6THIe3lyNBxRp7XEweuwjacthGzOzNu3Z95zcCAnAokFVZ570glJNhjJVNEmPHZkHOcGiGNNM4JNbR11v+dOYtac942t/mmmWwAzbznuu8ZLupYWjdg/f07ftkPAwFwCoXblZ3708Lvf6uOt/CPeWvEII2Haf1Cr5w+U6TAt14zzL73xCSQqwz1TfkcmD+bJplmtcpSP/KX8/BRK7qr6Ec5T9ecbraRB7zDBg0X2x51DSHLrA7UIhpI9JNaOArU5UOVYTWwuzFiGG61elJMcPZ5vWEVrTCocfa4INPo4B2MkFbbsYf6xnY1L3Wc9LQjkff6aCqYnQaXZ/WfPWepf9YvYG1,iv:0Bm1r0FuJJKKmcbTiPL36rb5FaMZfOO7Mx8pXU2FSfg=,tag:0ShoJPJUx37mEAus+mhPmw==,type:str] |         ssh: ENC[AES256_GCM,data:hJAle4DHJNvX569reclBG5rEdWsjAyV2TtHYMiPfky/dMKJkYgT4+T0doLfUn1O6at77kJGPmwUEvmK819DUuvHtNY7c6angV7iLygJ/ThI1FIFOKH+NxEsI3scoT0VDDybHpgice/fcJL1tMcvE74+dWOnZ2r4pxcMJEFHUPVVWcl9/stJLn78OonsyWpj8PglcnYFOfZ6THIe3lyNBxRp7XEweuwjacthGzOzNu3Z95zcCAnAokFVZ570glJNhjJVNEmPHZkHOcGiGNNM4JNbR11v+dOYtac942t/mmmWwAzbznuu8ZLupYWjdg/f07ftkPAwFwCoXblZ3708Lvf6uOt/CPeWvEII2Haf1Cr5w+U6TAt14zzL73xCSQqwz1TfkcmD+bJplmtcpSP/KX8/BRK7qr6Ec5T9ecbraRB7zDBg0X2x51DSHLrA7UIhpI9JNaOArU5UOVYTWwuzFiGG61elJMcPZ5vWEVrTCocfa4INPo4B2MkFbbsYf6xnY1L3Wc9LQjkff6aCqYnQaXZ/WfPWepf9YvYG1,iv:0Bm1r0FuJJKKmcbTiPL36rb5FaMZfOO7Mx8pXU2FSfg=,tag:0ShoJPJUx37mEAus+mhPmw==,type:str] | ||||||
| sops: | sops: | ||||||
|     kms: [] |  | ||||||
|     gcp_kms: [] |  | ||||||
|     azure_kv: [] |  | ||||||
|     hc_vault: [] |  | ||||||
|     age: |     age: | ||||||
|         - recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y |         - recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y | ||||||
|           enc: | |           enc: | | ||||||
|             -----BEGIN AGE ENCRYPTED FILE----- |             -----BEGIN AGE ENCRYPTED FILE----- | ||||||
|             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYWWFUdnpERVlkK29TQ09k |             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpb0dlWE5PNllnME1jQWE4 | ||||||
|             SnJMVm5rUEV6S0huSzJ2YjFFQ3pNR0pmZWprClZEVDloeDE2ODNkMVVJTUtqaENz |             cHFzWkR4ZzNaWlR0WDJ4c1hEdlJGN0FISWlZCmNNdVRtL080QzgwQTZtTGpVRkxW | ||||||
|             ZzhwTTA4V2xOeW55WGtPZU5FWElQNDAKLS0tIFh5ZWtmZHRBWTAvM3ZwY3pKQ0R6 |             dkdvYXdQNUlhYWQrYlNDR2JISXdpdkkKLS0tIEpIU20rK3F3WGpBS1g3NmJqYWRX | ||||||
|             aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A |             SWlNbFZ0NTJJZ09Wd3JzK1hscjJoS2MK4GU8ndim80CaOjgvMwVlgIq/1VQIylSZ | ||||||
|             dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w== |             EJl15zUFaDiDZUCcZE8TkJQ/rbGDSiq7KlWyFe48Q3UC86jfF88qCg== | ||||||
|             -----END AGE ENCRYPTED FILE----- |             -----END AGE ENCRYPTED FILE----- | ||||||
|     lastmodified: "2023-10-10T06:57:11Z" |         - recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37 | ||||||
|     mac: ENC[AES256_GCM,data:Tvwv2mqceAxi7ic3+95Y6hBMHjqVoCkYnTkEsXOrhumgXpuuB/QQ0ASEf6gbgkCLXGwnUAXsK41bIIJfFgYSk89fHw6AaXfs6a+zL2Mh5zkhMIE2bm68mFK8+/TX/e8SibbEwNZCKOcPqvaO6nK816KCmh3KKCbT9ObaB6CA/KI=,iv:YPKgYAnQ135JXou7q9jVN7b3SKIDwceKcbqiIjkqnTU=,tag:udPrEVu2F+hWkhNoEyjTYg==,type:str] |           enc: | | ||||||
|     pgp: [] |             -----BEGIN AGE ENCRYPTED FILE----- | ||||||
|  |             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYNjkzeHloK3hKUTJaMTdr | ||||||
|  |             NUdiZ2JGZitqN1k0WCtEODU4R2MrTmUzR1hrCmNJL0Y4ZEpLN0l6ZmhGWEM5UktG | ||||||
|  |             ck1PUnFSSVNCRUd5Sm9kSXNmVW5jZDQKLS0tIHpHWVBVNFNBSlUvZldJVGowUEtZ | ||||||
|  |             S05HZ0FiSVlkUjRRV01TbjlpVFlkQWcK7jAqOYd9EDT93xpVgtpKl03EO6oHmGRR | ||||||
|  |             iK9j2y7j1YSghPKDBrC5eKy9+IP/EFEBGygcokqT7C6Nscu80YhVbg== | ||||||
|  |             -----END AGE ENCRYPTED FILE----- | ||||||
|  |     lastmodified: "2025-10-06T14:01:15Z" | ||||||
|  |     mac: ENC[AES256_GCM,data:bWo5DGCt5cK02Lf61yKFDZLLaMmcWyba+03CZ35EnGz7Hoc1sl3qTmgJfNz8EKDeXTIkk33DdnI/kZ2nX7vsZ/QgOhFQWzWRYe1cxqiWyd0wnUlwdoeeFrBP3uOTHXAOVe6q77S3qChzBP3J+5OijztvdOVEOKFmFPSCgyA029Q=,iv:6DSp63IrtYyaFxkaify/JZDXpB76AaGGW/OcPTKBbvk=,tag:sPKddpcx60JFZ4VEGD1tnQ==,type:str] | ||||||
|     unencrypted_suffix: _unencrypted |     unencrypted_suffix: _unencrypted | ||||||
|     version: 3.7.3 |     version: 3.10.2 | ||||||
|  |  | ||||||
							
								
								
									
										28
									
								
								nixos/secrets/personal.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								nixos/secrets/personal.yaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,28 @@ | ||||||
|  | GitHub: | ||||||
|  |     ssh: ENC[AES256_GCM,data:jzRpTgefhZg7Vhm8QvWNsPBko1yw56sM/XehY72lAc7aRz+dx6BGgyYbZiifd7GrGJGUbH6gWfUg8YjgVla6VRsiHCEvSK3bY0ADDwTeSUs+wuybYXQZqhivSCInVtVSNAcp99uI1QwKor289zmxcFtSZEXgU1OCSel/8br+qipAbOkzAKX1v15eigjY4OSQxXL59EuuuHEQ+vjVVv95tDv03jaNAoU9UKr0Atrny/Fn2sQn4Tmec5Q1XdvDErKhSxrAFiACkxXUwPZMHez+BUZrmkksqpzNJjYNIlmsITuOVr7Fyen9wotAwsDf96Fmz5JYLtRX9CAboUgQLdUOKprwX/xgBnFtDTSH1Qr785T1QSAZL6xdE6hNibxZO3vGeeaPC3oGB5g9x5CwTQelMdOUPKdKorCDj226o56cTc/IQxUpsULbeOyi2pMGHiTHbiQBzHpxWyQ/gBktPkF25GOFeaCu3gW+xsspX91jSKudcYdBqWUNmJcdsfHfPxPM4cZtA/sVMyoA+YcehgU7GTu9DAlxDTug/JWo,iv:5shfzmrFFVEuaYmyTkBMAw9BIFFkKz0yl1dyJWxq6Y4=,tag:CX7TBJJXCKuIPSmg9/RpGg==,type:str] | ||||||
|  | Gitea: | ||||||
|  |     ssh: ENC[AES256_GCM,data:8eyuycMkBVMHfzaGeGs+0RA4vCpaAUTjCwiplUamypEk9BDYqxe+69O6OjJAGaPnmH4kpsb/WVd5sU6HNUogBuzDQhCrv2B6NadcmnV+fH3MHfAWvDy7R68PUkwcywWVOo65SONckjKVa0Y+8IeeJh9zpr36qCbbs+zPC4XTk+Y5R4vK/ocmSJSmwqVK1SfGGwOjFoJvHVI6jdXh//vgKaITqmyZV7N3OU9EiQp1FmNKwFf/x70w2LGATrNBcexwNy20ZYd6ewiAfJxFHR6Svfc2P5X2nlv99W5t1eU5QEGUcalcslsW/VkmFC3agN3Yry2EMIlfTlm0hm4+ryDGWEvgyUC0dLA8Ao0TLaaqig9HzBRP1h6aORe0lDwzTUg6WltrIu0s7hFwD4YLi1qP5lY99hvrDIRbTEg6AY6X4b32YFlyOXy0YDetv90+QyEcwANWO9MXz2S9hxuQmjOXMCVYMaiMLVUkG+mShbQuxTiFQt/7D83yOBSRLugx/aU318NKvUDlCt7wpZbMI3gBia4nUYLoLcXRKcAZ,iv:uc1ZtGdcolLrpQgS5n5LEAwBt0vMmkj2OuTXcn8sQ7A=,tag:F2ofcj0zEBgxwukMUd7+uw==,type:str] | ||||||
|  | sops: | ||||||
|  |     age: | ||||||
|  |         - recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y | ||||||
|  |           enc: | | ||||||
|  |             -----BEGIN AGE ENCRYPTED FILE----- | ||||||
|  |             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwSDRZQ0pVNWhmdFo1UDVv | ||||||
|  |             MFlrZEFtNjlpZ3pBU0VrdkFpR2x4WGxUZ0RRClJad1JPYWhFTWd1N2ZKQWsrSjFj | ||||||
|  |             YXREaGRrbE15MEdpblJtcTk2cFk1eGsKLS0tIHE2ZTd3R1gwQ3E1VzkvZTZoZjBW | ||||||
|  |             aTRLcFJ6NkpJRjkyenVxeFRLVmgwMjQK47HRKyg1SxWABZHCdVdIaPEKoSiWIOO/ | ||||||
|  |             OYu/1owbUwTh1KouUb4tgNmVBOkERJ9i3lEjWLHUWrlCAUImc9dG4g== | ||||||
|  |             -----END AGE ENCRYPTED FILE----- | ||||||
|  |         - recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37 | ||||||
|  |           enc: | | ||||||
|  |             -----BEGIN AGE ENCRYPTED FILE----- | ||||||
|  |             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBVDZtU2g4dmFXTlNIMFBs | ||||||
|  |             OFBpS2RXRzFwTVdJazQrSldwWUFtdCs0U1ZFCmxRdy9yY3VIWU4zenc4eVNEVUZv | ||||||
|  |             VUlyT29JekNTS3RIMktmS2RGNU5GMTgKLS0tIEhvM2RkcUs0SE5uSXFxc3dvSXhP | ||||||
|  |             WmViM05IMHFPckNic1hHY2ZlTEMrYkkK+66rYqbGQucqQch4Tx9jONR9OIXdjMUd | ||||||
|  |             q/fGLCoSluHuCOkUWr/wUgvF5dWAHftYj9JjDB/9vpp4Q0WClLDszw== | ||||||
|  |             -----END AGE ENCRYPTED FILE----- | ||||||
|  |     lastmodified: "2024-10-19T12:24:38Z" | ||||||
|  |     mac: ENC[AES256_GCM,data:g15gV0H0rlzoeN5Z/Zkgh/8ya9GSrWDVP9oqdVz3m4obmquCLDIygsPaYpRXmfOtPSgvX2KzZ08sNLfcBZSh7eH2Ws7xcezWOntOcmAQNz5LvemqP7YuwtivMK/P4qrkME+LQPkSrSUR+rT99Zj+RQXisy91Cq9NbVBj6uQH7+I=,iv:W+oDp5Dun0g35BFprOmgfI0LoPME3HpPuuniCKA32Kc=,tag:CUU74HZuRNedyI3txn9D+g==,type:str] | ||||||
|  |     unencrypted_suffix: _unencrypted | ||||||
|  |     version: 3.8.1 | ||||||
|  | @ -9,22 +9,26 @@ example_booleans: | ||||||
|     - ENC[AES256_GCM,data:Ul7fKA==,iv:U51FhTsWwkbhUWGsO8D+bl2mLdTIfapIB+OGJEOAiRA=,tag:9NJLKp8s2TSKLyXwM8OncA==,type:bool] |     - ENC[AES256_GCM,data:Ul7fKA==,iv:U51FhTsWwkbhUWGsO8D+bl2mLdTIfapIB+OGJEOAiRA=,tag:9NJLKp8s2TSKLyXwM8OncA==,type:bool] | ||||||
|     - ENC[AES256_GCM,data:LVU1a90=,iv:1X1qV+8iIe1i5hIrqyB3tJew9hsHjJHlATmkEmwRA0Y=,tag:ko/5OwmJH/6HKPsvbkoRpw==,type:bool] |     - ENC[AES256_GCM,data:LVU1a90=,iv:1X1qV+8iIe1i5hIrqyB3tJew9hsHjJHlATmkEmwRA0Y=,tag:ko/5OwmJH/6HKPsvbkoRpw==,type:bool] | ||||||
| sops: | sops: | ||||||
|     kms: [] |  | ||||||
|     gcp_kms: [] |  | ||||||
|     azure_kv: [] |  | ||||||
|     hc_vault: [] |  | ||||||
|     age: |     age: | ||||||
|         - recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y |         - recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y | ||||||
|           enc: | |           enc: | | ||||||
|             -----BEGIN AGE ENCRYPTED FILE----- |             -----BEGIN AGE ENCRYPTED FILE----- | ||||||
|             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3ekx1bzluY0ZhYmhnRmhW |             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4KzMrV2dpWFQyQUQyV050 | ||||||
|             b3pzM2RlKzFrREpMK3RNU1MweldNRXJ5NjE4CmNRbnFvbk1EN0V0ZWJiVzFmL3Jt |             elVhN0dUeTRodG1kNHZ0VEVmTUI1QjhidFJnClhJU0tVY0tmMkFaMDZkMDJOKzV1 | ||||||
|             N1Vpb3NEdXFzdzU4MjN1elp1RWZ5THcKLS0tIDR4cTFJNVFveEdxaEYvZndKbURa |             NVJiSERtR0VZR3VBOGVJbGk3cUxTMzAKLS0tIGhvMmIyOWQwVlhXRzYwampTeG5V | ||||||
|             UHpaNENhL3c1K3RXc05hUmdNZVBpT2MKwBj4+Gb7giVJIoPWiwY3tvugEAexXy6Q |             UDVWQnE4NDY5cFF3RnpxcjhMY2N0VUUK+B24C0CT5b82DJSdKotX4iPhzWxnYsn6 | ||||||
|             YTWgZQZk96r5aF2mBjRCFCc7prj85PsUN/UXOPjPLVAFG3lwS0Eaog== |             kS7Ut9uy5OwcB+p6erlbLMEUVmmSNw89KBrowT0Ui1d3AfyGAN4rqQ== | ||||||
|  |             -----END AGE ENCRYPTED FILE----- | ||||||
|  |         - recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37 | ||||||
|  |           enc: | | ||||||
|  |             -----BEGIN AGE ENCRYPTED FILE----- | ||||||
|  |             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwTjh4NDRYZGM1VHRZWGor | ||||||
|  |             MmhFWDNvMjI4UUVPbnorNnpabGNZY1BuMVdrCisvZ0U5SXRPM3IzNlZvZEpWZktz | ||||||
|  |             b2FJemtNVHU0WUI4M0U1L2tWR3g1MEUKLS0tIGczTmVubzcwVjg5NDdQdEllWEFw | ||||||
|  |             TWRIRE5WSGRCbncvWlpEMmdWOW5kb00Kq79O2C4aYmZmrq+rbyMtwmEqkqL9epn/ | ||||||
|  |             pw2dxXmYt95qu3x/BxjoN8RFZhabFp9xHkZ1kqJe9FGmBtAmoWXjWA== | ||||||
|             -----END AGE ENCRYPTED FILE----- |             -----END AGE ENCRYPTED FILE----- | ||||||
|     lastmodified: "2023-09-10T20:20:18Z" |     lastmodified: "2023-09-10T20:20:18Z" | ||||||
|     mac: ENC[AES256_GCM,data:yfmYEo8pdlG3tu4Fabwde57igIvpt4UuhQqStVlV36rvPnv9dc42+6iduu+heuQ2OAVw0jk6/o6SWJpcms2DReOAMGDOgt+zV3TgJym52YdMcjTNJTo+4loULhvaWyN9ZdPJjSYKEoSgOZi+oMx4BpwreQEaPaYUxcbTqrWCUa8=,iv:Mb81sBxibRxSaC2kgakhy2pyEmW0MDobF+lHF7cny5E=,tag:DCqTWSnf5Gv5YfAGSEC2yw==,type:str] |     mac: ENC[AES256_GCM,data:yfmYEo8pdlG3tu4Fabwde57igIvpt4UuhQqStVlV36rvPnv9dc42+6iduu+heuQ2OAVw0jk6/o6SWJpcms2DReOAMGDOgt+zV3TgJym52YdMcjTNJTo+4loULhvaWyN9ZdPJjSYKEoSgOZi+oMx4BpwreQEaPaYUxcbTqrWCUa8=,iv:Mb81sBxibRxSaC2kgakhy2pyEmW0MDobF+lHF7cny5E=,tag:DCqTWSnf5Gv5YfAGSEC2yw==,type:str] | ||||||
|     pgp: [] |  | ||||||
|     unencrypted_suffix: _unencrypted |     unencrypted_suffix: _unencrypted | ||||||
|     version: 3.7.3 |     version: 3.7.3 | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| { config, lib, pkgs, pkgs-unstable, ... }: | { config, inputs, lib, pkgs, pkgs-unstable, ... }: | ||||||
| 
 | 
 | ||||||
| let | let | ||||||
|   cfg = config.sisyphus.users.tdpeuter; |   cfg = config.sisyphus.users.tdpeuter; | ||||||
|  | @ -8,7 +8,7 @@ let | ||||||
| 
 | 
 | ||||||
|   cursor = { |   cursor = { | ||||||
|     package = pkgs.phinger-cursors; |     package = pkgs.phinger-cursors; | ||||||
|     name = "phinger-cursors"; |     name = "phinger-cursors-light"; | ||||||
|     size = 24; |     size = 24; | ||||||
|   }; |   }; | ||||||
| in { | in { | ||||||
|  | @ -33,19 +33,68 @@ in { | ||||||
|       ]; |       ]; | ||||||
|       initialPassword = "ChangeMe"; |       initialPassword = "ChangeMe"; | ||||||
|       shell = pkgs.zsh; |       shell = pkgs.zsh; | ||||||
|  | 
 | ||||||
|  |       packages = (with pkgs; [ | ||||||
|  |         bitwarden-desktop | ||||||
|  |         brave                 # Internet browser | ||||||
|  |         chafa                 # Terminal image viewer | ||||||
|  |         cmdtime               # Zsh plugin | ||||||
|  |         duf                   # Df alternative | ||||||
|  |         feishin               # Jellyfin music client | ||||||
|  |         foot | ||||||
|  |         fzf | ||||||
|  |         gh                    # GitHub CLI tool | ||||||
|  |         glow                  # Terminal Markdown renderer | ||||||
|  |         icosystem             # Personal icon theme | ||||||
|  |         jellyfin-media-player | ||||||
|  |         libreoffice-fresh     # Office tools | ||||||
|  |         librewolf             # Internet browser | ||||||
|  |         mpv                   # Media player | ||||||
|  |         nextcloud-client | ||||||
|  |         nsxiv                 # Lightweight image viewer | ||||||
|  |         qalculate-gtk         # Calculator | ||||||
|  |         spotify | ||||||
|  |         spotify-adblock | ||||||
|  |         unzip | ||||||
|  |         vifm                  # File manager | ||||||
|  |         zathura               # PDF viewer | ||||||
|  |         zellij                # Tmux + screen alternative | ||||||
|  |         zotero | ||||||
|  |         zsh | ||||||
|  |         zsh-autosuggestions | ||||||
|  |         zsh-syntax-highlighting | ||||||
|  | 
 | ||||||
|  |         # SMB | ||||||
|  |         cifs-utils | ||||||
|  |         psmisc | ||||||
|  | 
 | ||||||
|  |         # Linters and LSPs | ||||||
|  |         statix      # Nix | ||||||
|  |         # TODO Move to devshells | ||||||
|  |         # ruff pylint # Python | ||||||
|  |       ]) ++ (with pkgs-unstable; [ | ||||||
|  |         logseq                # Note taking | ||||||
|  |       ]) ++ [ | ||||||
|  |         inputs.zen-browser.packages.${pkgs.system}.default | ||||||
|  |       ]; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     fonts.packages = with pkgs; [ |     fonts.packages = with pkgs; [ | ||||||
|       corefonts              # Calibri for Uni |       corefonts              # Calibri for Uni | ||||||
|  |       dejavu_fonts | ||||||
|       font-awesome           # Dependency of Vifm & zsh config |       font-awesome           # Dependency of Vifm & zsh config | ||||||
|       letter                 # Personal font |       letter                 # Personal font | ||||||
|       noto-fonts-cjk        # Dependency of Zellij config |  | ||||||
|       noto-fonts             # Dependency of Zellij config |       noto-fonts             # Dependency of Zellij config | ||||||
|  |       noto-fonts-cjk-sans    # Dependency of Zellij config | ||||||
|  |       noto-fonts-cjk-serif   # Dependency of Zellij config | ||||||
|  |       noto-fonts-emoji | ||||||
|  |       noto-fonts-color-emoji # Emoji's! | ||||||
|       vistafonts             # Microsoft fonts |       vistafonts             # Microsoft fonts | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|     sisyphus = { |     sisyphus = { | ||||||
|       programs.spotify-adblock.enable = true; |       programs.spotify-adblock.enable = true; | ||||||
|  |       services.remEYEnder.enable = true; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable { |     home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable { | ||||||
|  | @ -56,46 +105,13 @@ in { | ||||||
|         homeDirectory = "/home/${user}"; |         homeDirectory = "/home/${user}"; | ||||||
|         inherit (config.system) stateVersion; |         inherit (config.system) stateVersion; | ||||||
| 
 | 
 | ||||||
|         packages = (with pkgs; [ |         # packages = (with pkgs; [ | ||||||
|           cmdtime               # Zsh plugin |         # ]) ++ (with pkgs-unstable; [ | ||||||
|           icosystem             # Personal icon theme |         # ]); | ||||||
|           spotify-adblock |  | ||||||
|         ]) ++ (with pkgs-unstable; [ |  | ||||||
|           brave |  | ||||||
|           chafa                 # Terminal image viewer |  | ||||||
|           duf                   # Df alternative |  | ||||||
|           foot |  | ||||||
|           fzf |  | ||||||
|           glow                  # Terminal Markdown renderer |  | ||||||
|           jellyfin-media-player |  | ||||||
|           kitty |  | ||||||
|           libreoffice-fresh |  | ||||||
|           logseq |  | ||||||
|           mpv |  | ||||||
|           nextcloud-client |  | ||||||
|           nsxiv                 # Lightweight image viewer |  | ||||||
|           qalculate-gtk         # Calculator |  | ||||||
|           spotify |  | ||||||
|           unzip |  | ||||||
|           vifm                  # File manager |  | ||||||
|           zathura               # PDF viewer |  | ||||||
|           zellij                # Tmux + screen alternative |  | ||||||
|           zsh |  | ||||||
|           zsh-autosuggestions |  | ||||||
|           zsh-syntax-highlighting |  | ||||||
| 
 |  | ||||||
|           # SMB |  | ||||||
|           cifs-utils psmisc |  | ||||||
| 
 |  | ||||||
|           # Linters and LSPs |  | ||||||
|           statix      # Nix |  | ||||||
|           ruff pylint # Python |  | ||||||
|         ]); |  | ||||||
| 
 | 
 | ||||||
|         pointerCursor = { |         pointerCursor = { | ||||||
|           inherit (cursor) package name size; |           inherit (cursor) package name size; | ||||||
|           gtk.enable = true; |           gtk.enable = true; | ||||||
|           x11.enable = true; |  | ||||||
|         }; |         }; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|  | @ -126,9 +142,12 @@ in { | ||||||
|         }; |         }; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|       gtk = { |       services.syncthing = { | ||||||
|         enable = true; |         enable = true; | ||||||
|         cursorTheme = cursor; |         extraOptions = [ | ||||||
|  |           "--no-default-folder" | ||||||
|  |         ]; | ||||||
|  |         tray.enable = true; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|       xdg = { |       xdg = { | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ in { | ||||||
|               source = ../../../stow/alacritty/.config/alacritty; |               source = ../../../stow/alacritty/.config/alacritty; | ||||||
|             }; |             }; | ||||||
|             ".config/dunst" = { |             ".config/dunst" = { | ||||||
|               inherit (config.sisyphus.desktop.sway) enable; |               enable = config.sisyphus.desktop.hyprland.enable || config.sisyphus.desktop.sway.enable; | ||||||
|               source = ../../../stow/dunst/.config/dunst; |               source = ../../../stow/dunst/.config/dunst; | ||||||
|             }; |             }; | ||||||
|             ".config/foot" = { |             ".config/foot" = { | ||||||
|  | @ -32,6 +32,11 @@ in { | ||||||
|               recursive = true; |               recursive = true; | ||||||
|               source = ../../../stow/git/.config/git; |               source = ../../../stow/git/.config/git; | ||||||
|             }; |             }; | ||||||
|  |             ".config/hypr" = { | ||||||
|  |               inherit (config.sisyphus.desktop.hyprland) enable; | ||||||
|  |               recursive = true; | ||||||
|  |               source = ../../../stow/hyprland/.config/hypr; | ||||||
|  |             }; | ||||||
|             ".config/kitty" = { |             ".config/kitty" = { | ||||||
|               enable = false; |               enable = false; | ||||||
|               recursive = true; |               recursive = true; | ||||||
|  | @ -58,7 +63,7 @@ in { | ||||||
|               source = ../../../stow/swayidle/.config/swayidle; |               source = ../../../stow/swayidle/.config/swayidle; | ||||||
|             }; |             }; | ||||||
|             ".config/swaylock" = { |             ".config/swaylock" = { | ||||||
|               inherit (config.sisyphus.desktop.sway) enable; |               enable = config.sisyphus.desktop.sway.enable || config.sisyphus.desktop.hyprland.enable; | ||||||
|               source = ../../../stow/swaylock/.config/swaylock; |               source = ../../../stow/swaylock/.config/swaylock; | ||||||
|             }; |             }; | ||||||
|             ".config/vifm" = { |             ".config/vifm" = { | ||||||
|  | @ -66,20 +71,20 @@ in { | ||||||
|               source = ../../../stow/vifm/.config/vifm; |               source = ../../../stow/vifm/.config/vifm; | ||||||
|             }; |             }; | ||||||
|             ".config/waybar" = { |             ".config/waybar" = { | ||||||
|               inherit (config.sisyphus.desktop.sway) enable; |               enable = config.sisyphus.desktop.sway.enable || config.sisyphus.desktop.hyprland.enable; | ||||||
|               source = ../../../stow/waybar/.config/waybar; |               source = ../../../stow/waybar/.config/waybar; | ||||||
|             }; |             }; | ||||||
|             ".config/zellij" = { |             ".config/zellij" = { | ||||||
|               source = ../../../stow/zellij/.config/zellij; |               source = ../../../stow/zellij/.config/zellij; | ||||||
|             }; |             }; | ||||||
|             ".oh-my-zsh" = { |             ".gnupg" = { | ||||||
|               enable = config.users.users.tdpeuter.shell == pkgs.zsh; |               inherit (config.programs.gnupg.agent) enable; | ||||||
|               source = "${pkgs.oh-my-zsh}/share/oh-my-zsh"; |               source = ../../../stow/gnupg/.gnupg; | ||||||
|               recursive = true; |               recursive = true; | ||||||
|             }; |               onChange = '' | ||||||
|             ".oh-my-zsh/themes/tdpeuter.zsh-theme" = { |                 chmod 700 /home/tdpeuter/.gnupg | ||||||
|               enable = config.users.users.tdpeuter.shell == pkgs.zsh; |                 # chmod 600 /home/tdpeuter/.gnupg/* # Already read-only? | ||||||
|               source = ../../../stow/zsh/.oh-my-zsh/themes/tdpeuter.zsh-theme; |               ''; | ||||||
|             }; |             }; | ||||||
|             ".ssh/config" = lib.mkIf config.sisyphus.programs.ssh.enable { |             ".ssh/config" = lib.mkIf config.sisyphus.programs.ssh.enable { | ||||||
|               inherit (config.sisyphus.programs.ssh) enable; |               inherit (config.sisyphus.programs.ssh) enable; | ||||||
|  | @ -97,6 +102,13 @@ in { | ||||||
|             }; |             }; | ||||||
|           } |           } | ||||||
|           (lib.mkIf (config.users.users.tdpeuter.shell == pkgs.zsh) { |           (lib.mkIf (config.users.users.tdpeuter.shell == pkgs.zsh) { | ||||||
|  |             ".oh-my-zsh" = { | ||||||
|  |               source = "${pkgs.oh-my-zsh}/share/oh-my-zsh"; | ||||||
|  |               recursive = true; | ||||||
|  |             }; | ||||||
|  |             ".oh-my-zsh/themes/tdpeuter.zsh-theme" = { | ||||||
|  |               source = ../../../stow/zsh/.oh-my-zsh/themes/tdpeuter.zsh-theme; | ||||||
|  |             }; | ||||||
|             ".zshrc" = { |             ".zshrc" = { | ||||||
|               source = ../../../stow/zsh/.zshrc; |               source = ../../../stow/zsh/.zshrc; | ||||||
|             }; |             }; | ||||||
|  |  | ||||||
|  | @ -14,11 +14,38 @@ in { | ||||||
|         nativeMessagingHosts = with pkgs; [ |         nativeMessagingHosts = with pkgs; [ | ||||||
|           tridactyl-native |           tridactyl-native | ||||||
|         ]; |         ]; | ||||||
|  |         # https://mozilla.github.io/policy-templates/ | ||||||
|         extraPolicies = { |         extraPolicies = { | ||||||
|           DisableFirefoxStudies = true; |           DisableFirefoxStudies = true; | ||||||
|           DisablePocket = true; |           DisablePocket = true; | ||||||
|           DisableTelemetry = true; |           DisableTelemetry = true; | ||||||
|  |           FirefoxHome = { | ||||||
|  |             SponsoredTopSites = false; | ||||||
|  |             SponsoredPocket = false; | ||||||
|  |           }; | ||||||
|           OfferToSaveLogins = false; |           OfferToSaveLogins = false; | ||||||
|  | 
 | ||||||
|  |           # https://discourse.nixos.org/t/declare-firefox-extensions-and-settings/36265 | ||||||
|  |           ExtensionSettings = { | ||||||
|  |             "amazon@search.mozilla.org".installation_mode = "blocked"; | ||||||
|  |             "google@search.mozilla.org".installation_mode = "blocked"; | ||||||
|  |           }; | ||||||
|  | 
 | ||||||
|  |           # Anything in about:config | ||||||
|  |           Preferences = let | ||||||
|  |             falseLocked = { | ||||||
|  |               Value = false; | ||||||
|  |               Status = "falseLocked"; | ||||||
|  |             }; | ||||||
|  |           in { | ||||||
|  |             "browser.newtabpage.activity-stream.showSponsoredCheckboxes" = falseLocked; | ||||||
|  |             "browser.newtabpage.activity-stream.showSponsoredTopSites" = falseLocked; | ||||||
|  |             "browser.newtabpage.pinned" = { | ||||||
|  |               Value = "[]"; | ||||||
|  |               Status = "default"; | ||||||
|  |             }; | ||||||
|  |             "services.sync.prefs.sync-seen.browser.newtabpage.activity-stream.showSponsoredTopSites" = falseLocked; | ||||||
|  |           }; | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         # Support smart cards |         # Support smart cards | ||||||
|  | @ -27,26 +54,18 @@ in { | ||||||
|         ]; |         ]; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|  |       languagePacks = [ | ||||||
|  |         "en-GB" | ||||||
|  |         "nl" | ||||||
|  |       ]; | ||||||
|  | 
 | ||||||
|       profiles.tdpeuter.search= { |       profiles.tdpeuter.search= { | ||||||
|         default = "DuckDuckGo"; |         default = "ddg"; # Reference by id instead of by name | ||||||
|         force = true; |         force = true; | ||||||
|         engines = { |         engines = { | ||||||
|           "Bing".metaData.hidden = true; |           "bing".metaData.hidden = true; | ||||||
|           "eBay".metaData.hidden = true; |           "ebay".metaData.hidden = true; | ||||||
|           "Qwant".metaData.hidden = true; |  | ||||||
| 
 | 
 | ||||||
|           "Nix Packages" = { |  | ||||||
|             urls = [{ |  | ||||||
|               template = "https://search.nixos.org/packages"; |  | ||||||
|               params = [ |  | ||||||
|                 { name = "type"; value = "packages"; } |  | ||||||
|                 { name = "query"; value = "{searchTerms}"; } |  | ||||||
|               ]; |  | ||||||
|             }]; |  | ||||||
| 
 |  | ||||||
|             icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; |  | ||||||
|             definedAliases = [ "@np" ]; |  | ||||||
|           }; |  | ||||||
|           "GitHub" = { |           "GitHub" = { | ||||||
|             urls = [{ |             urls = [{ | ||||||
|               template = "https://github.com/search"; |               template = "https://github.com/search"; | ||||||
|  | @ -59,6 +78,39 @@ in { | ||||||
|             icon = "${pkgs.icosystem}/share/icons/icosystem/scalable/apps/github-mark.svg"; |             icon = "${pkgs.icosystem}/share/icons/icosystem/scalable/apps/github-mark.svg"; | ||||||
|             definedAliases = [ "@gh" ]; |             definedAliases = [ "@gh" ]; | ||||||
|           }; |           }; | ||||||
|  |           "Nix Packages" = { | ||||||
|  |             urls = [{ | ||||||
|  |               template = "https://search.nixos.org/packages"; | ||||||
|  |               params = [ | ||||||
|  |                 { name = "type"; value = "packages"; } | ||||||
|  |                 { name = "query"; value = "{searchTerms}"; } | ||||||
|  |               ]; | ||||||
|  |             }]; | ||||||
|  | 
 | ||||||
|  |             icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; | ||||||
|  |             definedAliases = [ "@np" ]; | ||||||
|  |           }; | ||||||
|  |           "NixOS Options" = { | ||||||
|  |             urls = [{ | ||||||
|  |               template = "https://search.nixos.org/options"; | ||||||
|  |               params = [ | ||||||
|  |                 { name = "query"; value = "{searchTerms}"; } | ||||||
|  |               ]; | ||||||
|  |             }]; | ||||||
|  | 
 | ||||||
|  |             icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; | ||||||
|  |             definedAliases = [ "@no" ]; | ||||||
|  |           }; | ||||||
|  |           "Google Scholar" = { | ||||||
|  |             urls = [{ | ||||||
|  |               template = "https://scholar.google.ch/scholar"; | ||||||
|  |               params = [ | ||||||
|  |                 { name = "q"; value = "{searchTerms}"; } | ||||||
|  |               ]; | ||||||
|  |             }]; | ||||||
|  | 
 | ||||||
|  |             definedAliases = [ "@gs" ]; | ||||||
|  |           }; | ||||||
|         }; |         }; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|  | @ -8,13 +8,17 @@ let | ||||||
|       Met vriendelijke groeten |       Met vriendelijke groeten | ||||||
|       Tibo De Peuter |       Tibo De Peuter | ||||||
|     ''; |     ''; | ||||||
|     UGent = '' |     english = '' | ||||||
|  |       Kind regards | ||||||
|  |       Tibo De Peuter | ||||||
|  |     ''; | ||||||
|  |     academic = '' | ||||||
|       Met vriendelijke groeten |       Met vriendelijke groeten | ||||||
|       Tibo De Peuter |       Tibo De Peuter | ||||||
|        |        | ||||||
|       Student 2Ba/3Ba Informatica |       Student Ma Informatica | ||||||
|     ''; |     ''; | ||||||
|     MrFortem = '' |     alias = '' | ||||||
|       Kind regards |       Kind regards | ||||||
|       MrFortem Fiducia |       MrFortem Fiducia | ||||||
|     ''; |     ''; | ||||||
|  | @ -61,7 +65,7 @@ in { | ||||||
|           realName = config.users.users.tdpeuter.description; |           realName = config.users.users.tdpeuter.description; | ||||||
|           signature = { |           signature = { | ||||||
|             showSignature = "append"; |             showSignature = "append"; | ||||||
|             text = signatures.UGent; |             text = signatures.academic; | ||||||
|           }; |           }; | ||||||
| 
 | 
 | ||||||
|           thunderbird = { |           thunderbird = { | ||||||
|  | @ -69,7 +73,7 @@ in { | ||||||
|             settings = id: { |             settings = id: { | ||||||
|               "mail.server.server_${id}.authMethod"   = 10; |               "mail.server.server_${id}.authMethod"   = 10; | ||||||
|               "mail.smtpserver.smtp_${id}.authMethod" = 10; |               "mail.smtpserver.smtp_${id}.authMethod" = 10; | ||||||
|               "mail.identity.id_${id}.htmlSigText"    = signatures.UGent; |               "mail.identity.id_${id}.htmlSigText"    = signatures.academic; | ||||||
| 
 | 
 | ||||||
|               # Allow PGP |               # Allow PGP | ||||||
|               "mail.identity.id_${id}.openpgp_key_id" = "9B11F5243089DB5B"; # Your 'master' key |               "mail.identity.id_${id}.openpgp_key_id" = "9B11F5243089DB5B"; # Your 'master' key | ||||||
|  | @ -109,7 +113,7 @@ in { | ||||||
|             settings = id: { |             settings = id: { | ||||||
|               "mail.server.server_${id}.directory" = ".thunderbird/tdpeuter/ImapMail/imap.gmail.com-mrfortem"; |               "mail.server.server_${id}.directory" = ".thunderbird/tdpeuter/ImapMail/imap.gmail.com-mrfortem"; | ||||||
|               "mail.server.server_${id}.directory-rel" = "[ProfD]ImapMail/imap.gmail.com-mrfortem"; |               "mail.server.server_${id}.directory-rel" = "[ProfD]ImapMail/imap.gmail.com-mrfortem"; | ||||||
|               "mail.identity.id_${id}.htmlSigText" = signatures.MrFortem; |               "mail.identity.id_${id}.htmlSigText" = signatures.alias; | ||||||
|             }; |             }; | ||||||
|           }; |           }; | ||||||
|         }; |         }; | ||||||
|  |  | ||||||
|  | @ -7,9 +7,14 @@ in { | ||||||
|   config = lib.mkIf cfg.enable { |   config = lib.mkIf cfg.enable { | ||||||
|     sops.secrets = lib.mkIf config.sisyphus.programs.sops.enable ( |     sops.secrets = lib.mkIf config.sisyphus.programs.sops.enable ( | ||||||
|       let |       let | ||||||
|         Hugo = { |         HomeLab = { | ||||||
|           format = "yaml"; |           format = "yaml"; | ||||||
|           sopsFile = ../../secrets/Hugo.yaml; |           sopsFile = ../../secrets/HomeLab.yaml; | ||||||
|  |           owner = user; | ||||||
|  |         }; | ||||||
|  |         personal = { | ||||||
|  |           format = "yaml"; | ||||||
|  |           sopsFile = ../../secrets/personal.yaml; | ||||||
|           owner = user; |           owner = user; | ||||||
|         }; |         }; | ||||||
|         UGent = { |         UGent = { | ||||||
|  | @ -18,17 +23,26 @@ in { | ||||||
|           owner = user; |           owner = user; | ||||||
|         }; |         }; | ||||||
|       in { |       in { | ||||||
|         "Hugo/ssh" = Hugo; |  | ||||||
|         "UGent/HPC/ssh" = UGent; |         "UGent/HPC/ssh" = UGent; | ||||||
| 
 | 
 | ||||||
|         "GitHub/ssh" = { |         # Git authentication | ||||||
|           format = "yaml"; |         "Gitea/ssh" = personal; | ||||||
|           sopsFile = ../../secrets/GitHub.yaml; |         "GitHub/ssh" = personal; | ||||||
|           owner = user; |  | ||||||
|         }; |  | ||||||
|         "Hugo/Gitea/ssh" = Hugo; |  | ||||||
|         "UGent/GitHub/ssh" = UGent; |         "UGent/GitHub/ssh" = UGent; | ||||||
|         "UGent/SubGit/ssh" = UGent; |         "UGent/SubGit/ssh" = UGent; | ||||||
|  | 
 | ||||||
|  |         # HomeLab | ||||||
|  | 
 | ||||||
|  |         # Physical hosts | ||||||
|  |         "HomeLab/Hugo/ssh" = HomeLab; | ||||||
|  |         "HomeLab/Roxanne/ghost/ssh" = HomeLab; | ||||||
|  |         "HomeLab/HTPC/ssh" = HomeLab; | ||||||
|  | 
 | ||||||
|  |         # Virtual hosts | ||||||
|  |         "HomeLab/Gitea/ssh" = HomeLab; | ||||||
|  |         "HomeLab/Nextcloud/ssh" = HomeLab; | ||||||
|  |         "HomeLab/Vaultwarden/ssh" = HomeLab; | ||||||
|  |         "HomeLab/NixOS/admin/ssh" = HomeLab; | ||||||
|       }); |       }); | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,19 +0,0 @@ | ||||||
| #!/usr/bin/env bash |  | ||||||
| # Script to toggle Do not disturb mode for dunst |  | ||||||
| 
 |  | ||||||
| # Get current state |  | ||||||
| if [ "$( command -v dunstctl )" ]; then |  | ||||||
|     current_state="$( dunstctl is-paused )" |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| # Toggle |  | ||||||
| if [ "${current_state}" == "false" ] ; then |  | ||||||
|     notify-send 'Hiding notifications' |  | ||||||
|     sleep 5 |  | ||||||
|     # makoctl set-mode do-not-disturb |  | ||||||
|     dunstctl set-paused true |  | ||||||
| else |  | ||||||
|     # makoctl set-mode default |  | ||||||
|     dunstctl set-paused false |  | ||||||
|     notify-send 'Showing notifications' |  | ||||||
| fi |  | ||||||
|  | @ -22,15 +22,15 @@ while getopts ":bvt:p:" options; do | ||||||
| 			;; | 			;; | ||||||
| 		v) | 		v) | ||||||
|             # Get volume (don't use pamixer because that is way slower) |             # Get volume (don't use pamixer because that is way slower) | ||||||
|             value=$( amixer sget 'Master' \ |             value=$( pactl get-sink-volume @DEFAULT_SINK@ \ | ||||||
|                 | grep -o '\[[0-9]*%\]' \ |                 | grep -o '[0-9]*%' \ | ||||||
|                 | tr -d '][%' \ |                 | tr -d '%' \ | ||||||
|                 | head -n1 ) |                 | head -n1 ) | ||||||
|             title="Volume: ${value}%" |             title="Volume: ${value}%" | ||||||
|             category='sysinfo' |             category='sysinfo' | ||||||
| 
 | 
 | ||||||
|             # If audio disabled, set value to zero. |             # If audio disabled, set value to zero. | ||||||
| 	    if [ "$( amixer sget 'Master' | grep -o '\[\(on\|off\)\]' | head -n1 )" == "[off]" ] ; then  |             if [ "$( pactl get-sink-mute @DEFAULT_SINK@ | grep -o '\(yes\|no\)' | head -n1 )" == 'yes' ] ; then  | ||||||
|                 title="Volume: ${value}% (Disabled)" |                 title="Volume: ${value}% (Disabled)" | ||||||
|                 value=0 |                 value=0 | ||||||
|             fi |             fi | ||||||
|  |  | ||||||
|  | @ -48,14 +48,14 @@ while getopts ":m:g" option; do | ||||||
|             fi |             fi | ||||||
|             ;; |             ;; | ||||||
|         g) |         g) | ||||||
|             previous_theme="$(cat ${STATE_FILE})" |             current_state="$(cat "${STATE_FILE}")" | ||||||
|             if [ "${previous_theme}" == "${THEME_LIGHT}" ]; then |             next_state="${theme_next[${current_state}]}" | ||||||
|                 class="activated" |             if [ "${current_state}" == "${THEME_DARK}" ]; then | ||||||
|                 percentage=1 |                 class='activated' | ||||||
|             else |                 percentage=100 | ||||||
|                 percentage=0 |  | ||||||
|             fi |             fi | ||||||
|             printf '{ "class": "%s", "percentage": %d }' "${class}" "${percentage}" |             printf '{"alt": "%s", "tooltip": "Set theme to %s", "percentage": %d, "class": "%s"}' \ | ||||||
|  |                 "${gsettings_alt[${current_state}]}" "${next_state}" "${percentage:=0}" "${class:="none"}" | ||||||
|             exit 0 |             exit 0 | ||||||
|             ;; |             ;; | ||||||
|         *) |         *) | ||||||
|  | @ -119,7 +119,12 @@ fi | ||||||
| # Sway | # Sway | ||||||
| if [ "$(command -v swaybg)" ]; then | if [ "$(command -v swaybg)" ]; then | ||||||
|     bg_path="${BG_DIR}/${wallpaper[${theme}]}" |     bg_path="${BG_DIR}/${wallpaper[${theme}]}" | ||||||
|     /run/current-system/sw/bin/cp "${bg_path}" "${STATE_DIR}/bg" && swaymsg reload & |     /run/current-system/sw/bin/cp "${bg_path}" "${STATE_DIR}/bg" | ||||||
|  |     if [ "$(command -v swaymsg)" ]; then | ||||||
|  |         pkill swaybg && swaymsg exec "swaybg -m fill -i ${STATE_DIR}/bg" & | ||||||
|  |     elif [ "$(command -v hyprctl)" ]; then | ||||||
|  |         pkill swaybg && hyprctl keyword exec "swaybg -m fill -i ${STATE_DIR}/bg" & | ||||||
|  |     fi | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| # Vifm | # Vifm | ||||||
|  |  | ||||||
							
								
								
									
										48
									
								
								scripts/toggle-notifications.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										48
									
								
								scripts/toggle-notifications.sh
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,48 @@ | ||||||
|  | #!/usr/bin/env bash | ||||||
|  | # Script to toggle Do not disturb mode for dunst | ||||||
|  | 
 | ||||||
|  | # Get current state | ||||||
|  | if [ "$( command -v dunstctl )" ]; then | ||||||
|  |     current_state="$( dunstctl is-paused )" | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | while getopts ":g" option; do | ||||||
|  |     case "${option}" in | ||||||
|  |         g) | ||||||
|  |             if [ "${current_state}" == "false" ]; then | ||||||
|  |                 state='normal' | ||||||
|  |                 tooltip='Hide notifications' | ||||||
|  |                 class='none' | ||||||
|  |             else | ||||||
|  |                 state='paused' | ||||||
|  |                 tooltip='Show notifications' | ||||||
|  |                 class='activated' | ||||||
|  |             fi | ||||||
|  |             printf '{"alt": "%s", "tooltip": "%s", "class": "%s" }' \ | ||||||
|  |                 "${state}" "${tooltip}" "${class}" | ||||||
|  |             exit 0 | ||||||
|  |             ;; | ||||||
|  |     esac | ||||||
|  | done | ||||||
|  | 
 | ||||||
|  | # Toggle | ||||||
|  | if [ "${current_state}" == "false" ] ; then | ||||||
|  |     notify-send 'Hiding notifications' | ||||||
|  |     sleep 5 | ||||||
|  | 
 | ||||||
|  |     if [ "$(command -v makoctl)" ]; then | ||||||
|  |         makoctl set-mode do-not-disturb | ||||||
|  |     fi | ||||||
|  |     if [ "$(command -v dunstctl)" ]; then | ||||||
|  |         dunstctl set-paused true | ||||||
|  |     fi | ||||||
|  | else | ||||||
|  |     if [ "$(command -v makoctl)" ]; then | ||||||
|  |         makoctl set-mode default | ||||||
|  |     fi | ||||||
|  |     if [ "$(command -v dunstctl)" ]; then | ||||||
|  |         dunstctl set-paused false | ||||||
|  |     fi | ||||||
|  | 
 | ||||||
|  |     notify-send 'Showing notifications' | ||||||
|  | fi | ||||||
							
								
								
									
										50
									
								
								scripts/toggle-tailscale.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										50
									
								
								scripts/toggle-tailscale.sh
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,50 @@ | ||||||
|  | #!/usr/bin/env bash | ||||||
|  | # Script to toggle Do not disturb mode for dunst | ||||||
|  | 
 | ||||||
|  | STOPPED_MSG='Tailscale is stopped' | ||||||
|  | 
 | ||||||
|  | # Check if tailscale is installed | ||||||
|  | if [ ! "$( command -v tailscale )" ]; then | ||||||
|  |     echo 'Tailscale is not installed!' | ||||||
|  |     exit 1 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | # Get current state | ||||||
|  | status="$( tailscale status )" | ||||||
|  | current_state="$( grep -o "${STOPPED_MSG}" <<< "${status}" )" | ||||||
|  | 
 | ||||||
|  | while getopts ":g" option; do | ||||||
|  |     case "${option}" in | ||||||
|  |         g) | ||||||
|  |             if [ "${current_state}" == "${STOPPED_MSG}" ]; then | ||||||
|  |                 state='disconnected' | ||||||
|  |                 tooltip='Connect tailnet' | ||||||
|  | 
 | ||||||
|  |                 printf '{"alt": "%s", "tooltip": "%s", "class": "%s" }' \ | ||||||
|  |                     "${state}" "${tooltip}" "${state}" | ||||||
|  |             else | ||||||
|  |                 state='connected' | ||||||
|  |                 tooltip="${status:='Disconnect tailnet'}" | ||||||
|  | 
 | ||||||
|  |                 printf '{"alt": "%s", "tooltip": "<tt>%q</tt>", "class": "%s" }' \ | ||||||
|  |                     "${state}" "${tooltip}" "${state}" | ||||||
|  |             fi | ||||||
|  | 
 | ||||||
|  |             exit 0 | ||||||
|  |             ;; | ||||||
|  | 
 | ||||||
|  |         *) | ||||||
|  |             echo 'Invalid option' | ||||||
|  |             exit 1 | ||||||
|  |             ;; | ||||||
|  |     esac | ||||||
|  | done | ||||||
|  | 
 | ||||||
|  | # Toggle | ||||||
|  | if [ "${current_state}" == "${STOPPED_MSG}" ] ; then | ||||||
|  |     notify-send 'Connecting tailnet' | ||||||
|  |     notify-send 'Connected tailnet' "$( tailscale up )" | ||||||
|  | else | ||||||
|  |     notify-send 'Disconnecting tailnet' | ||||||
|  |     notify-send 'Disconnected tailnet' "$( tailscale down )" | ||||||
|  | fi | ||||||
|  | @ -29,7 +29,7 @@ dpi-aware=yes | ||||||
| # initial-window-size-pixels=700x500  # Or, | # initial-window-size-pixels=700x500  # Or, | ||||||
| # initial-window-size-chars=<COLSxROWS> | # initial-window-size-chars=<COLSxROWS> | ||||||
| # initial-window-mode=windowed | # initial-window-mode=windowed | ||||||
| pad=10x10                             # optionally append 'center' | #pad=10x10                             # optionally append 'center' | ||||||
| # resize-delay-ms=100 | # resize-delay-ms=100 | ||||||
| 
 | 
 | ||||||
| # notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body} | # notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body} | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								stow/gnupg/.gnupg/gpg-agent.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								stow/gnupg/.gnupg/gpg-agent.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | ||||||
|  | enable-ssh-support | ||||||
|  | default-cache-ttl      60 | ||||||
|  | default-cache-ttl-ssh  60 | ||||||
|  | max-cache-ttl         120 | ||||||
|  | max-cache-ttl-ssh     120 | ||||||
							
								
								
									
										37
									
								
								stow/gnupg/.gnupg/gpg.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								stow/gnupg/.gnupg/gpg.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,37 @@ | ||||||
|  | # Use UTF-8 character encoding everywhere. | ||||||
|  | display-charset utf-8 | ||||||
|  | utf8-strings | ||||||
|  | 
 | ||||||
|  | # When verifying a signature made from a subkey, require that the | ||||||
|  | # cross-certification "back signature" on the subkey is present and valid. | ||||||
|  | require-cross-certification | ||||||
|  | 
 | ||||||
|  | # Method references | ||||||
|  | personal-cipher-preferences AES256 AES192 AES | ||||||
|  | personal-digest-preferences SHA512 SHA384 SHA256 | ||||||
|  | personal-compress-preferences ZLIB BZIP2 ZIP Uncompressed | ||||||
|  | 
 | ||||||
|  | # New keys config | ||||||
|  | default-preference-list SHA512 SHA384 SHA256 AES256 AES192 AES ZLIB BZIP2 ZIP Uncompressed | ||||||
|  | cert-digest-algo SHA512 | ||||||
|  | 
 | ||||||
|  | # Symmatric ops | ||||||
|  | s2k-digest-algo SHA512 | ||||||
|  | s2k-cipher-algo AES256 | ||||||
|  | # Disable cahcing of passphrase for symmatrical ops | ||||||
|  | no-symkey-cache | ||||||
|  | 
 | ||||||
|  | # Don't leak comments or software version information | ||||||
|  | no-comments | ||||||
|  | no-emit-version | ||||||
|  | 
 | ||||||
|  | # Display full fingerprints | ||||||
|  | keyid-format 0xlong | ||||||
|  | with-fingerprint | ||||||
|  | 
 | ||||||
|  | # Other display preferences | ||||||
|  | list-options show-uid-validity | ||||||
|  | verify-options show-uid-validity | ||||||
|  | 
 | ||||||
|  | # Enable smart card | ||||||
|  | use-agent | ||||||
							
								
								
									
										7
									
								
								stow/gnupg/.gnupg/scdaemon.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								stow/gnupg/.gnupg/scdaemon.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,7 @@ | ||||||
|  | # Power down and ask PIN again after timout. | ||||||
|  | card-timeout 180  # 3 minutes | ||||||
|  | 
 | ||||||
|  | # Fix repeatedly prompting for an already-inserted YubiKey. | ||||||
|  | # It works by disabling CCID-support, so it does not clash with pcsc. | ||||||
|  | disable-ccid | ||||||
|  | 
 | ||||||
							
								
								
									
										6
									
								
								stow/hyprland/.config/hypr/docked.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								stow/hyprland/.config/hypr/docked.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | ||||||
|  | monitor=desc:BOE 0x08CF,1920x1080@60.0,640x3240,1.0 | ||||||
|  | monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,2560x1440@59.95,0x1800,1.0 | ||||||
|  | monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,1920x1080@60.0,2560x1800,1.0 | ||||||
|  | monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,transform,1 | ||||||
|  | monitor=desc:Samsung Electric Company SAMSUNG,1920x1080@60.0,640x0,0.6000000000000001 | ||||||
|  | monitor=desc:Samsung Electric Company SAMSUNG,disable | ||||||
							
								
								
									
										164
									
								
								stow/hyprland/.config/hypr/hy3.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										164
									
								
								stow/hyprland/.config/hypr/hy3.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,164 @@ | ||||||
|  | 
 | ||||||
|  | # TODO Do not hardcode this path | ||||||
|  | plugin = /nix/store/afivj8v5kfdsadxs4pa45vh0y65s3ajm-hy3-hl0.49.0/lib/libhy3.so | ||||||
|  | 
 | ||||||
|  | general:layout = hy3 | ||||||
|  | 
 | ||||||
|  | plugin { | ||||||
|  |   hy3 { | ||||||
|  |     # disable gaps when only one window is onscreen | ||||||
|  |     # 0 - always show gaps | ||||||
|  |     # 1 - hide gaps with a single window onscreen | ||||||
|  |     # 2 - 1 but also show the window border | ||||||
|  |     no_gaps_when_only = 1 # default: 0 | ||||||
|  | 
 | ||||||
|  |     # policy controlling what happens when a node is removed from a group, | ||||||
|  |     # leaving only a group | ||||||
|  |     # 0 = remove the nested group | ||||||
|  |     # 1 = keep the nested group | ||||||
|  |     # 2 = keep the nested group only if its parent is a tab group | ||||||
|  |     node_collapse_policy = 2 # default: 2 | ||||||
|  | 
 | ||||||
|  |     # offset from group split direction when only one window is in a group | ||||||
|  |     group_inset = 10 # default: 10 | ||||||
|  | 
 | ||||||
|  |     # if a tab group will automatically be created for the first window spawned in a workspace | ||||||
|  |     tab_first_window = false | ||||||
|  | 
 | ||||||
|  |     # tab group settings | ||||||
|  |     tabs { | ||||||
|  |       # height of the tab bar | ||||||
|  |       height = 10 # default: 22 | ||||||
|  | 
 | ||||||
|  |       # padding between the tab bar and its focused node | ||||||
|  |       padding = 0 # default: 6 | ||||||
|  | 
 | ||||||
|  |       # the tab bar should animate in/out from the top instead of below the window | ||||||
|  |       from_top = false # default: false | ||||||
|  | 
 | ||||||
|  |       # radius of tab bar corners | ||||||
|  |       radius = 0 # default: 6 | ||||||
|  | 
 | ||||||
|  |       # tab bar border width | ||||||
|  |       border_width = 2 # default: 2 | ||||||
|  | 
 | ||||||
|  |       # render the window title on the bar | ||||||
|  |       render_text = false # default: true | ||||||
|  | 
 | ||||||
|  |       # center the window title | ||||||
|  |       text_center = true # default: true | ||||||
|  | 
 | ||||||
|  |       # font to render the window title with | ||||||
|  |       text_font = Sans # default: Sans | ||||||
|  | 
 | ||||||
|  |       # height of the window title | ||||||
|  |       text_height = 8 # default: 8 | ||||||
|  | 
 | ||||||
|  |       # left padding of the window title | ||||||
|  |       text_padding = 3 # default: 3 | ||||||
|  | 
 | ||||||
|  |       # active tab bar segment colors | ||||||
|  |       #col.active = <color> # default: rgba(33ccff40) | ||||||
|  |       #col.active.border = <color> # default: rgba(33ccffee) | ||||||
|  |       #col.active.text = <color> # default: rgba(ffffffff) | ||||||
|  | 
 | ||||||
|  |       # active tab bar segment colors for bars on an unfocused monitor | ||||||
|  |       #col.active_alt_monitor = <color> # default: rgba(60606040) | ||||||
|  |       #col.active_alt_monitor.border = <color> # default: rgba(808080ee) | ||||||
|  |       #col.active_alt_monitor.text = <color> # default: rgba(ffffffff) | ||||||
|  | 
 | ||||||
|  |       # focused tab bar segment colors (focused node in unfocused container) | ||||||
|  |       #col.focused = <color> # default: rgba(60606040) | ||||||
|  |       #col.focused.border = <color> # default: rgba(808080ee) | ||||||
|  |       #col.focused.text = <color> # default: rgba(ffffffff) | ||||||
|  | 
 | ||||||
|  |       # inactive tab bar segment colors | ||||||
|  |       col.inactive        = rgba(a6a6a620) # default: rgba(30303020) | ||||||
|  |       col.inactive.border = rgba(a6a6a6aa) # default: rgba(606060aa) | ||||||
|  |       #col.inactive.text   = <color>        # default: rgba(ffffffff) | ||||||
|  | 
 | ||||||
|  |       # urgent tab bar segment colors | ||||||
|  |       #col.urgent = <color> # default: rgba(ff223340) | ||||||
|  |       #col.urgent.border = <color> # default: rgba(ff2233ee) | ||||||
|  |       #col.urgent.text = <color> # default: rgba(ffffffff) | ||||||
|  | 
 | ||||||
|  |       # urgent tab bar segment colors | ||||||
|  |       #col.locked = <color> # default: rgba(90903340) | ||||||
|  |       #col.locked.border = <color> # default: rgba(909033ee) | ||||||
|  |       #col.locked.text = <color> # default: rgba(ffffffff) | ||||||
|  | 
 | ||||||
|  |       # if tab backgrounds should be blurred | ||||||
|  |       # Blur is only visible when the above colors are not opaque. | ||||||
|  |       blur = true # default: true | ||||||
|  | 
 | ||||||
|  |       # opacity multiplier for tabs | ||||||
|  |       # Applies to blur as well as the given colors. | ||||||
|  |       opacity = 1.0 # default: 1.0 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     # autotiling settings | ||||||
|  |     autotile { | ||||||
|  |       # enable autotile | ||||||
|  |       enable = true # default: false | ||||||
|  | 
 | ||||||
|  |       # make autotile-created groups ephemeral | ||||||
|  |       ephemeral_groups = true # default: true | ||||||
|  | 
 | ||||||
|  |       # if a window would be squished smaller than this width, a vertical split will be created | ||||||
|  |       # -1 = never automatically split vertically | ||||||
|  |       # 0 = always automatically split vertically | ||||||
|  |       # <number> = pixel width to split at | ||||||
|  |       trigger_width = -1 # default: 0 | ||||||
|  | 
 | ||||||
|  |       # if a window would be squished smaller than this height, a horizontal split will be created | ||||||
|  |       # -1 = never automatically split horizontally | ||||||
|  |       # 0 = always automatically split horizontally | ||||||
|  |       # <number> = pixel height to split at | ||||||
|  |       trigger_height = 0 # default: 0 | ||||||
|  | 
 | ||||||
|  |       # a space or comma separated list of workspace ids where autotile should be enabled | ||||||
|  |       # it's possible to create an exception rule by prefixing the definition with "not:" | ||||||
|  |       # workspaces = 1,2 # autotiling will only be enabled on workspaces 1 and 2 | ||||||
|  |       # workspaces = not:1,2 # autotiling will be enabled on all workspaces except 1 and 2 | ||||||
|  |       workspaces = all # default: all | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # Keybinds | ||||||
|  | 
 | ||||||
|  | # Navigation | ||||||
|  | 
 | ||||||
|  | # Focus | ||||||
|  | 
 | ||||||
|  | # First, unbind default | ||||||
|  | unbind = $flag,     $up | ||||||
|  | unbind = $flag,     $right | ||||||
|  | unbind = $flag,     $down | ||||||
|  | unbind = $flag,     $left | ||||||
|  | 
 | ||||||
|  | unbind = $flag,     up | ||||||
|  | unbind = $flag,     right | ||||||
|  | unbind = $flag,     down | ||||||
|  | unbind = $flag,     left | ||||||
|  | 
 | ||||||
|  | bind = $flag,       $up,    hy3:movefocus, u | ||||||
|  | bind = $flag,       $right, hy3:movefocus, r | ||||||
|  | bind = $flag,       $down,  hy3:movefocus, d | ||||||
|  | bind = $flag,       $left,  hy3:movefocus, l | ||||||
|  | 
 | ||||||
|  | bind = $flag,       up,     hy3:movefocus, u | ||||||
|  | bind = $flag,       right,  hy3:movefocus, r | ||||||
|  | bind = $flag,       down,   hy3:movefocus, d | ||||||
|  | bind = $flag,       left,   hy3:movefocus, l | ||||||
|  | 
 | ||||||
|  | # Layout | ||||||
|  | bind = $flag,       z,      hy3:changegroup, opposite | ||||||
|  | bind = $flag,       x,      hy3:changegroup, toggletab | ||||||
|  | bind = $flag,       c,      hy3:changegroup, h | ||||||
|  | bind = $flag,       v,      hy3:changegroup, v | ||||||
|  | 
 | ||||||
|  | bind = $flag,       p,      hy3:changefocus, raise | ||||||
|  | bind = $flag+Shift, p,      hy3:changefocus, lower | ||||||
|  | bind = $flag,       space,  hy3:togglefocuslayer | ||||||
|  | 
 | ||||||
							
								
								
									
										279
									
								
								stow/hyprland/.config/hypr/hyprland.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										279
									
								
								stow/hyprland/.config/hypr/hyprland.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,279 @@ | ||||||
|  | # ~/.config/hypr/hyperland.conf | ||||||
|  | 
 | ||||||
|  | general { | ||||||
|  |     border_size = 1 | ||||||
|  |     no_border_on_floating = false | ||||||
|  | 
 | ||||||
|  |     gaps_in = 3 | ||||||
|  |     gaps_out = 5 | ||||||
|  |     gaps_workspaces = 0 | ||||||
|  | 
 | ||||||
|  |     col.inactive_border = 0xff444444 | ||||||
|  |     col.active_border = 0xffffffff | ||||||
|  |     col.nogroup_border = 0xffff00ff | ||||||
|  |      | ||||||
|  |     layout = dwindle | ||||||
|  | 
 | ||||||
|  |     no_focus_fallback = true | ||||||
|  |      | ||||||
|  |     resize_on_border = true | ||||||
|  |     extend_border_grab_area = 5 | ||||||
|  |     hover_icon_on_border = true | ||||||
|  | 
 | ||||||
|  |     allow_tearing = false | ||||||
|  | 
 | ||||||
|  |     resize_corner = 0 | ||||||
|  | 
 | ||||||
|  |     snap { | ||||||
|  |         enabled = false | ||||||
|  |         window_gap = 10 | ||||||
|  |         monitor_gap = 10 | ||||||
|  |         border_overlap = false | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | decoration { | ||||||
|  |     rounding = 0 | ||||||
|  |     # rounding_power = 4.0 | ||||||
|  | 
 | ||||||
|  |     active_opacity = 1.0 | ||||||
|  |     inactive_opacity = 1.0 | ||||||
|  |     fullscreen_opacity = 1.0 | ||||||
|  |     dim_inactive = false | ||||||
|  |     dim_strength = 0.5 | ||||||
|  |     dim_special = 0.2 | ||||||
|  |     dim_around = 0.4 | ||||||
|  | 
 | ||||||
|  |     blur { | ||||||
|  |         enabled = true | ||||||
|  | 
 | ||||||
|  |         size = 8 | ||||||
|  |         passes = 1 | ||||||
|  |         noise = 0.01 | ||||||
|  |         contrast = 0.8 | ||||||
|  |         brightness = 0.8 | ||||||
|  |         vibrancy = 0.0 | ||||||
|  |         vibrancy_darkness = 0.0 | ||||||
|  | 
 | ||||||
|  |         ignore_opacity = true | ||||||
|  |         new_optimizations = true | ||||||
|  |         xray = true | ||||||
|  |         special = false | ||||||
|  |         popups = false | ||||||
|  |         # input_methods = false | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     shadow { | ||||||
|  |         enabled = false | ||||||
|  | 
 | ||||||
|  |         range = 4 | ||||||
|  |         render_power = 3 | ||||||
|  |         sharp = false | ||||||
|  |          | ||||||
|  |         ignore_window = true | ||||||
|  | 
 | ||||||
|  |         color = 0xee1a1a1a | ||||||
|  |         color_inactive = 0xee1a1a1a | ||||||
|  |         # offset = [0,0] | ||||||
|  |         scale = 1.0 | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | animations { | ||||||
|  |     enabled = false | ||||||
|  |     first_launch_animation = true | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | gestures { | ||||||
|  |     workspace_swipe = true | ||||||
|  |     workspace_swipe_fingers = 3 | ||||||
|  |     workspace_swipe_min_fingers = false | ||||||
|  |     workspace_swipe_distance = 300 | ||||||
|  |     workspace_swipe_invert = true | ||||||
|  |     workspace_swipe_min_speed_to_force = 30 | ||||||
|  |     workspace_swipe_cancel_ratio = 0.2 | ||||||
|  |     workspace_swipe_direction_lock = true | ||||||
|  |     workspace_swipe_direction_lock_threshold = 10 | ||||||
|  | 
 | ||||||
|  |     workspace_swipe_touch = false | ||||||
|  |     workspace_swipe_touch_invert = false | ||||||
|  | 
 | ||||||
|  |     workspace_swipe_create_new = false | ||||||
|  | 
 | ||||||
|  |     workspace_swipe_forever = true | ||||||
|  | 
 | ||||||
|  |     workspace_swipe_use_r = false | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | group { | ||||||
|  |     auto_group = true | ||||||
|  |     insert_after_current = true | ||||||
|  |     focus_removed_window = true | ||||||
|  |     drag_into_group = 1 | ||||||
|  |     merge_groups_on_drag = true | ||||||
|  |     merge_groups_on_groupbar = true | ||||||
|  |     merge_floated_into_tiled_on_groupbar = false | ||||||
|  |     group_on_movetoworkspace = false | ||||||
|  | 
 | ||||||
|  |     col.border_active = 0x66ffff00 | ||||||
|  |     col.border_inactive = 0x66777700 | ||||||
|  |     col.border_locked_active = 0x66ff5500 | ||||||
|  |     col.border_locked_inactive = 0x66775500 | ||||||
|  | 
 | ||||||
|  |     groupbar { | ||||||
|  |         enabled = true | ||||||
|  |         font_family = misc:font_family | ||||||
|  |         font_size = 8 | ||||||
|  |         gradients = true | ||||||
|  |         height = 14 | ||||||
|  |         stacked = false | ||||||
|  |         priority = 3 | ||||||
|  |         render_titles = false | ||||||
|  |         scrolling = true | ||||||
|  | 
 | ||||||
|  |         text_color = 0xffffffff | ||||||
|  |          | ||||||
|  |         col.active = 0x66ffff00 | ||||||
|  |         col.inactive = 0x66777700 | ||||||
|  |         col.locked_active = 0x66ff5500 | ||||||
|  |         col.locked_inactive = 0x66775500 | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | misc { | ||||||
|  |     disable_hyprland_logo = true | ||||||
|  |     disable_splash_rendering = true | ||||||
|  |      | ||||||
|  |     col.splash = 0xffffffff | ||||||
|  |      | ||||||
|  |     font_family = Letter | ||||||
|  |     # splash_font_family =  | ||||||
|  |     force_default_wallpaper = -1 | ||||||
|  |     vfr = true | ||||||
|  |     vrr = 1 | ||||||
|  |     mouse_move_enables_dpms = false | ||||||
|  |     key_press_enables_dpms = true | ||||||
|  |     always_follow_on_dnd = true | ||||||
|  |     layers_hog_keyboard_focus = true | ||||||
|  |     animate_manual_resizes = false | ||||||
|  |     animate_mouse_windowdragging = false | ||||||
|  |     disable_autoreload = true | ||||||
|  |     enable_swallow = false | ||||||
|  |     # swallow_regex =  | ||||||
|  |     # swallow_exception_regex =  | ||||||
|  |     focus_on_activate = true | ||||||
|  |     mouse_move_focuses_monitor = true | ||||||
|  |     render_ahead_of_time = false | ||||||
|  |     render_ahead_safezone = 1 | ||||||
|  |     allow_session_lock_restore = false | ||||||
|  |     background_color = 0x018281 | ||||||
|  |     close_special_on_empty = true | ||||||
|  |     new_window_takes_over_fullscreen = 2 | ||||||
|  |     exit_window_retains_fullscreen = false | ||||||
|  |     initial_workspace_tracking = 1 | ||||||
|  |     middle_click_paste = false | ||||||
|  |     render_unfocused_fps = 12 | ||||||
|  |     disable_xdg_env_checks = false | ||||||
|  |     # disable_hyprland_qtutils_check = false | ||||||
|  |     # lockdead_screen_delay = 1000 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | binds { | ||||||
|  |     pass_mouse_when_bound = false | ||||||
|  |     scroll_event_delay = 300 | ||||||
|  |     workspace_back_and_forth = false | ||||||
|  |     allow_workspace_cycles = false | ||||||
|  |     workspace_center_on = 1 | ||||||
|  |     focus_preferred_method = 0 | ||||||
|  |     ignore_group_lock = false | ||||||
|  |     # movefocus_cycles_fullscreen = true | ||||||
|  |     # movefocus_cycles_groupfirst = false | ||||||
|  |     disable_keybind_grabbing = false | ||||||
|  |     window_direction_monitor_fallback = true | ||||||
|  |     # allow_pin_fullscreen = true | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | xwayland { | ||||||
|  |     enabled = true | ||||||
|  |     use_nearest_neighbor = true | ||||||
|  |     force_zero_scaling = false | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | opengl { | ||||||
|  |     nvidia_anti_flicker = false | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | render { | ||||||
|  |     explicit_sync = 2 | ||||||
|  |     explicit_sync_kms = 2 | ||||||
|  |     direct_scanout = false | ||||||
|  |     expand_undersized_textures = true | ||||||
|  |     # xp_mode = false | ||||||
|  |     # ctm_animation = 2 | ||||||
|  |     # allow_early_buffer_release = true | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | cursor { | ||||||
|  |     sync_gsettings_theme = true | ||||||
|  |     no_hardware_cursors = false | ||||||
|  |     no_break_fs_vrr = false | ||||||
|  |     min_refresh_rate = 24 | ||||||
|  |     hotspot_padding = 1 | ||||||
|  |     inactive_timeout = 10 | ||||||
|  |     no_warps = false | ||||||
|  |     persistent_warps = false | ||||||
|  |     warp_on_change_workspace = 0 | ||||||
|  |     # default_monitor =  | ||||||
|  |     zoom_factor = 1.0 | ||||||
|  |     zoom_rigid = false | ||||||
|  |     # enable_hypercursor = false | ||||||
|  |     hide_on_key_press = true | ||||||
|  |     hide_on_touch = true | ||||||
|  |     # use_cpu_buffer = 2 | ||||||
|  |     # warp_back_after_non_mouse_input = false | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | ecosystem { | ||||||
|  |     # no_update_news = false | ||||||
|  |     # no_donation_nag = true | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | exec-once = gnome-keyring-daemon --start --components=secrets | ||||||
|  | exec-once = dunst --verbosity crit | ||||||
|  | exec-once = waycorner | ||||||
|  | exec-once = waybar | ||||||
|  | 
 | ||||||
|  | # TODO Replace with something else? | ||||||
|  | exec-once = wlsunset -t 2500 -l 50.51 -L 4.21 | ||||||
|  | 
 | ||||||
|  | exec-once = nextcloud --background | ||||||
|  | 
 | ||||||
|  | # Turn volume off at boot | ||||||
|  | exec-once = bash -c 'for i in $(seq 1 10); do pactl set-sink-mute @DEFAULT_SINK@ 1 && break; sleep 1; done' | ||||||
|  | 
 | ||||||
|  | # STYLING | ||||||
|  | exec-once = swaybg -i "${HOME}/.local/state/sisyphus/bg" --mode=fill | ||||||
|  | env = XCURSOR_SIZE,24 | ||||||
|  | 
 | ||||||
|  | # SHIFT CAPS CTRL/CONTROL ALT MOD2 MOD3 SUPER/WIN/LOGO/MOD4 MOD5 | ||||||
|  | $flag = MOD4 | ||||||
|  | 
 | ||||||
|  | $left  = h | ||||||
|  | $down  = j | ||||||
|  | $up    = k | ||||||
|  | $right = l | ||||||
|  | 
 | ||||||
|  | $term = foot | ||||||
|  | $menu = j4-dmenu-desktop --dmenu="rofi -dmenu -i" --no-generic --usage-log="/home/tdpeuter/.local/state/dmenu.log" --term=$term | ||||||
|  | $lock = swaylock --daemonize | ||||||
|  | 
 | ||||||
|  | # https://wiki.hyprland.org/Nvidia/#environment-variables | ||||||
|  | env = __GLX_VENDOR_LIBRARY_NAME,nvidia | ||||||
|  | env = LIBVA_DRIVER_NAME,nvidia | ||||||
|  | env = NVD_BACKEND,direct | ||||||
|  | 
 | ||||||
|  | source = /home/tdpeuter/.config/hypr/input-output.conf | ||||||
|  | source = /home/tdpeuter/.config/hypr/keybinds.conf | ||||||
|  | source = /home/tdpeuter/.config/hypr/modes.conf | ||||||
|  | source = /home/tdpeuter/.config/hypr/hy3.conf # Sway tiling plugin | ||||||
|  | 
 | ||||||
							
								
								
									
										62
									
								
								stow/hyprland/.config/hypr/input-output.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								stow/hyprland/.config/hypr/input-output.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,62 @@ | ||||||
|  | # ~/.config/hypr/input-output.conf | ||||||
|  | 
 | ||||||
|  | input { | ||||||
|  |     kb_layout = us,be,us | ||||||
|  |     kb_variant = altgr-intl,iso-alternate,dvorak | ||||||
|  | 
 | ||||||
|  |     numlock_by_default = true | ||||||
|  |     resolve_binds_by_sym = false | ||||||
|  | 
 | ||||||
|  |     repeat_rate = 25 | ||||||
|  |     repeat_delay = 600 | ||||||
|  | 
 | ||||||
|  |     sensitivity = 0.0 | ||||||
|  |     accel_profile = flat | ||||||
|  |     force_no_accel = false | ||||||
|  | 
 | ||||||
|  |     left_handed = false | ||||||
|  |     scroll_method = 2fg | ||||||
|  |     scroll_button_lock = true | ||||||
|  |     scroll_factor = 1.0 | ||||||
|  |     natural_scroll = false | ||||||
|  | 
 | ||||||
|  |     follow_mouse = 2 | ||||||
|  |     focus_on_close = 0 | ||||||
|  |     mouse_refocus = true | ||||||
|  |     float_switch_override_focus = 1 | ||||||
|  |     special_fallthrough = false | ||||||
|  |     off_window_axis_events = 1 | ||||||
|  |     emulate_discrete_scroll = 1 | ||||||
|  | 
 | ||||||
|  |     touchpad { | ||||||
|  |         disable_while_typing = true | ||||||
|  |         natural_scroll = true | ||||||
|  |         scroll_factor = 0.8 | ||||||
|  |         middle_button_emulation = false | ||||||
|  |         tap_button_map = lrm | ||||||
|  |         clickfinger_behavior = false | ||||||
|  |         tap-to-click = true | ||||||
|  |         drag_lock = false | ||||||
|  |         tap-and-drag = true | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | device { | ||||||
|  |     name = at-translated-set-2-keyboard | ||||||
|  |     numlock_by_default = false | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | monitor = , preferred, auto, 1 | ||||||
|  | 
 | ||||||
|  | monitor = desc:BOE 0x08CF, preferred, 640x1440, 1 | ||||||
|  | monitor = desc:Hewlett Packard HP ZR2740w CNT319Y008, preferred, auto-up, 1 | ||||||
|  | # Vertical monitors | ||||||
|  | monitor = desc:Dell Inc. DELL P2214H 29C2937M4YTL, preferred, auto-right, 1, transform, 1 | ||||||
|  | monitor = desc:Samsung Electric Company S22C650, preferred, auto-right, 1, transform, 1 | ||||||
|  | 
 | ||||||
|  | # TV | ||||||
|  | monitor = desc:Samsung Electric Company SAMSUNG, disable | ||||||
|  | 
 | ||||||
|  | bindl = , switch:on:Lid Switch, exec, hyprctl keyword monitor "eDP-1, disable" | ||||||
|  | bindl = , switch:off:Lid Switch, exec, hyprctl keyword monitor "eDP-1, enable" | ||||||
|  | 
 | ||||||
							
								
								
									
										180
									
								
								stow/hyprland/.config/hypr/keybinds.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										180
									
								
								stow/hyprland/.config/hypr/keybinds.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,180 @@ | ||||||
|  | $notify = "${SCRIPT_DIR}/notify.sh" | ||||||
|  | 
 | ||||||
|  | # Navigation | ||||||
|  | 
 | ||||||
|  | # Focus | ||||||
|  | bind = $flag, $up,    movefocus, u | ||||||
|  | bind = $flag, $right, movefocus, r | ||||||
|  | bind = $flag, $down,  movefocus, d | ||||||
|  | bind = $flag, $left,  movefocus, l | ||||||
|  | 
 | ||||||
|  | bind = $flag, up,     movefocus, u | ||||||
|  | bind = $flag, right,  movefocus, r | ||||||
|  | bind = $flag, down,   movefocus, d | ||||||
|  | bind = $flag, left,   movefocus, l | ||||||
|  | 
 | ||||||
|  | # Move windows | ||||||
|  | bind = $flag+Shift, $up,    movewindow, u | ||||||
|  | bind = $flag+Shift, $right, movewindow, r | ||||||
|  | bind = $flag+Shift, $down,  movewindow, d | ||||||
|  | bind = $flag+Shift, $left,  movewindow, l | ||||||
|  | 
 | ||||||
|  | bind = $flag+Shift, up,     movewindow, u | ||||||
|  | bind = $flag+Shift, right,  movewindow, r | ||||||
|  | bind = $flag+Shift, down,   movewindow, d | ||||||
|  | bind = $flag+Shift, left,   movewindow, l | ||||||
|  | 
 | ||||||
|  | # $flag+Next          move scratchpad | ||||||
|  | # $flag+KP_Next       move scratchpad | ||||||
|  | # $flag+Prior         scratchpad show | ||||||
|  | # $flag+KP_Prior      scratchpad show | ||||||
|  | bind = $flag, Next,    movetoworkspace, special:scratchpad | ||||||
|  | bind = $flag, KP_Next, movetoworkspace, special:scratchpad | ||||||
|  | 
 | ||||||
|  | bind = $flag, Prior,   togglespecialworkspace, special:scratchpad | ||||||
|  | bind = $flag, Prior, movetoworkspace, special:scratchpad | ||||||
|  | bind = $flag, Prior,   togglespecialworkspace, special:scratchpad | ||||||
|  | 
 | ||||||
|  | # bind = $flag, Next, movetoworkspace, special:magic | ||||||
|  | # bind = $flag, Next, togglespecialworkspace, magic | ||||||
|  | 
 | ||||||
|  | # bind = $flag, KP_Next, togglespecialworkspace, magic | ||||||
|  | # bind = $flag, KP_Next, movetoworkspace, +0 | ||||||
|  | # bind = $flag, KP_Next, togglespecialworkspace, magic | ||||||
|  | # bind = $flag, KP_Next, movetoworkspace, special:magic | ||||||
|  | # bind = $flag, KP_Next, togglespecialworkspace, magic | ||||||
|  | 
 | ||||||
|  | # Layouts | ||||||
|  | bind = $flag,       f, togglefloating | ||||||
|  | bind = $flag+Shift, f, settiled | ||||||
|  | 
 | ||||||
|  | bind = $flag,       s, pin | ||||||
|  | bind = $flag,       s, setfloating | ||||||
|  | bind = $flag+Shift, s, pin | ||||||
|  | bind = $flag+Shift, s, settiled | ||||||
|  | 
 | ||||||
|  | bind = $flag,       F11,      fullscreen, 1 | ||||||
|  | bind = $flag+Shift, F11,      fullscreen, 0 | ||||||
|  | 
 | ||||||
|  | # Workspaces | ||||||
|  | 
 | ||||||
|  | $ws1 = 1 | ||||||
|  | $ws2 = 2 | ||||||
|  | $ws3 = 3 | ||||||
|  | $ws4 = 4 | ||||||
|  | $ws5 = 5 | ||||||
|  | $ws6 = 6 | ||||||
|  | $ws7 = 7 | ||||||
|  | $ws8 = 8 | ||||||
|  | $ws9 = 9 | ||||||
|  | $ws10 = 10 | ||||||
|  | $ws11 = 11 | ||||||
|  | $ws12 = 12 | ||||||
|  | 
 | ||||||
|  | # Focus a specific workspace | ||||||
|  | bind = $flag, 1, workspace, $ws1 | ||||||
|  | bind = $flag, 2, workspace, $ws2 | ||||||
|  | bind = $flag, 3, workspace, $ws3 | ||||||
|  | bind = $flag, 4, workspace, $ws4 | ||||||
|  | bind = $flag, 5, workspace, $ws5 | ||||||
|  | bind = $flag, 6, workspace, $ws6 | ||||||
|  | bind = $flag, 7, workspace, $ws7 | ||||||
|  | bind = $flag, 8, workspace, $ws8 | ||||||
|  | bind = $flag, 9, workspace, $ws9 | ||||||
|  | bind = $flag, 0, workspace, $ws10 | ||||||
|  | bind = $flag, minus, workspace, $ws11 | ||||||
|  | bind = $flag, equal, workspace, $ws12 | ||||||
|  | 
 | ||||||
|  | # Move window to a specific workspace | ||||||
|  | bind = $flag+Shift, 1, movetoworkspace, $ws1 | ||||||
|  | bind = $flag+Shift, 2, movetoworkspace, $ws2 | ||||||
|  | bind = $flag+Shift, 3, movetoworkspace, $ws3 | ||||||
|  | bind = $flag+Shift, 4, movetoworkspace, $ws4 | ||||||
|  | bind = $flag+Shift, 5, movetoworkspace, $ws5 | ||||||
|  | bind = $flag+Shift, 6, movetoworkspace, $ws6 | ||||||
|  | bind = $flag+Shift, 7, movetoworkspace, $ws7 | ||||||
|  | bind = $flag+Shift, 8, movetoworkspace, $ws8 | ||||||
|  | bind = $flag+Shift, 9, movetoworkspace, $ws9 | ||||||
|  | bind = $flag+Shift, 0, movetoworkspace, $ws10 | ||||||
|  | bind = $flag+Shift, Minus, movetoworkspace, $ws11 | ||||||
|  | bind = $flag+Shift, Equal, movetoworkspace, $ws12 | ||||||
|  | 
 | ||||||
|  | # Go through workspaces in order | ||||||
|  | bind = $flag+Ctrl, $left,  workspace, e-1 | ||||||
|  | bind = $flag+Ctrl, $right, workspace, e+1 | ||||||
|  | 
 | ||||||
|  | bind = $flag+Ctrl, left,   workspace, e-1 | ||||||
|  | bind = $flag+Ctrl, right,  workspace, e+1 | ||||||
|  | 
 | ||||||
|  | bind = $flag+Ctrl+Shift, $left, movetoworkspace, e-1 | ||||||
|  | bind = $flag+Ctrl+Shift, $right, movetoworkspace, e+1 | ||||||
|  | 
 | ||||||
|  | bind = $flag+Ctrl+Shift, left,  movetoworkspace, e-1 | ||||||
|  | bind = $flag+Ctrl+Shift, right,  movetoworkspace, e+1 | ||||||
|  | 
 | ||||||
|  | # GNOME-like keybinds | ||||||
|  | bind = $flag+Alt, $left,  workspace, e-1 | ||||||
|  | bind = $flag+Alt, $right, workspace, e+1 | ||||||
|  | 
 | ||||||
|  | bind = $flag+Alt, left,   workspace, e-1 | ||||||
|  | bind = $flag+Alt, right,  workspace, e+1 | ||||||
|  | 
 | ||||||
|  | bind = $flag+Alt+Shift, $left, movetoworkspace, e-1 | ||||||
|  | bind = $flag+Alt+Shift, $right, movetoworkspace, e+1 | ||||||
|  | 
 | ||||||
|  | bind = $flag+Alt+Shift, left,  movetoworkspace, e-1 | ||||||
|  | bind = $flag+Alt+Shift, right,  movetoworkspace, e+1 | ||||||
|  | 
 | ||||||
|  | # System | ||||||
|  | 
 | ||||||
|  | # Brightness | ||||||
|  | bind = , XF86MonBrightnessDown,     exec, brightnessctl -e s 5%- && $notify -b | ||||||
|  | bind = , XF86MonBrightnessUp,       exec, brightnessctl -e s +5% && $notify -b | ||||||
|  | 
 | ||||||
|  | # Audio | ||||||
|  | bind = , XF86AudioRaiseVolume,      exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 2%+ && $notify -v | ||||||
|  | bind = , XF86AudioLowerVolume,      exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%- && $notify -v | ||||||
|  | bind = , XF86AudioMute,             exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && $notify -v | ||||||
|  | bind = , XF86AudioMicMute,          exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle | ||||||
|  | 
 | ||||||
|  | # Media | ||||||
|  | bind = , XF86AudioPlay,             exec, playerctl play-pause | ||||||
|  | bind = , XF86AudioPrev,             exec, playerctl previous | ||||||
|  | bind = , XF86AudioNext,             exec, playerctl next | ||||||
|  | 
 | ||||||
|  | bind = Shift, XF86AudioMute,        exec, playerctl play-pause | ||||||
|  | bind = Shift, XF86AudioLowerVolume, exec, playerctl previous | ||||||
|  | bind = Shift, XF86AudioRaiseVolume, exec, playerctl next | ||||||
|  | 
 | ||||||
|  | # Other special keys | ||||||
|  | bind = , XF86Calculator,            exec, qalculate-gtk | ||||||
|  | 
 | ||||||
|  | # Shortcuts | ||||||
|  | 
 | ||||||
|  | # Reload | ||||||
|  | bind = Alt+Shift,      r, exec, "hyperctl reload" | ||||||
|  | bind = Ctrl+Alt+Shift, r, forcerendererreload | ||||||
|  | bind = Alt+Shift,      e, exit | ||||||
|  | 
 | ||||||
|  | # Kill a window | ||||||
|  | bind = $flag,    q,      closewindow, activewindow | ||||||
|  | 
 | ||||||
|  | # Start a terminal | ||||||
|  | bind = $flag,    Return, exec, $term | ||||||
|  | bind = CTRL&ALT, T,      exec, $term | ||||||
|  | # Application menu | ||||||
|  | bind = Alt, Space, exec, $menu | ||||||
|  | bind = Alt, Tab,   focuscurrentorlast | ||||||
|  | 
 | ||||||
|  | bind = $flag,      e,      exec, $term -e vifm | ||||||
|  | bind = Ctrl+Shift, Escape, exec, $term -e zenith | ||||||
|  | 
 | ||||||
|  | bind = Ctrl+Shift, a, exec, notify-send "hole!" && hyprctl setcursor _ 87 && sleep 5 && hyprctl setcursor _ 24 | ||||||
|  | 
 | ||||||
|  | # bind = $flag, mouse_up,   movefocus, l | ||||||
|  | bind = SUPER, mouse_down, workspace, e-1 | ||||||
|  | bind = SUPER, mouse_up, workspace, e+1 | ||||||
|  | # bind = $flag, mouse_down, movefocus, r | ||||||
|  | 
 | ||||||
|  | bind = $flag, Delete, exec, $lock | ||||||
|  | 
 | ||||||
							
								
								
									
										38
									
								
								stow/hyprland/.config/hypr/modes.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								stow/hyprland/.config/hypr/modes.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,38 @@ | ||||||
|  | # System actions | ||||||
|  | $mode_system = System (l)ock, (s)leep, (h)ibernate, (r)eboot, (Shift+s)hutdown | ||||||
|  | bind = Ctrl+Alt, Delete, submap, $mode_system | ||||||
|  | submap = $mode_system | ||||||
|  | 
 | ||||||
|  | bind =      , l, exec, $lock | ||||||
|  | bind =      , l, submap, reset | ||||||
|  | bind =      , s, exec, $lock, exec, systemctl suspend | ||||||
|  | bind =      , s, submap, reset | ||||||
|  | bind =      , h, exec, $lock, exec, systemctl hibernate | ||||||
|  | bind =      , h, submap, reset | ||||||
|  | bind =      , r, exec, systemctl reboot | ||||||
|  | bind = Shift, s, exec, systemctl poweroff -i | ||||||
|  | 
 | ||||||
|  | bind = Ctrl+Alt, Delete, submap, reset | ||||||
|  | bind =         , Escape, submap, reset | ||||||
|  | bind =         , Return, submap, reset | ||||||
|  | 
 | ||||||
|  | submap = reset | ||||||
|  | 
 | ||||||
|  | # Launcher | ||||||
|  | $mode_launcher = Launch (f)irefox, (t)hunderbird, (l)ogseq. | ||||||
|  | bind = $flag, O, submap, $mode_launcher | ||||||
|  | submap = $mode_launcher | ||||||
|  | 
 | ||||||
|  | bind = , F, exec,   firefox | ||||||
|  | bind = , F, submap, reset | ||||||
|  | bind = , L, exec,   logseq | ||||||
|  | bind = , L, submap, reset | ||||||
|  | bind = , T, exec,   thunderbird | ||||||
|  | bind = , T, submap, reset | ||||||
|  | 
 | ||||||
|  | bind = $flag, O, submap, reset | ||||||
|  | bind = , Escape, submap, reset | ||||||
|  | bind = , Return, submap, reset | ||||||
|  | 
 | ||||||
|  | submap = reset | ||||||
|  | 
 | ||||||
							
								
								
									
										10
									
								
								stow/hyprland/.config/hypr/monitors.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								stow/hyprland/.config/hypr/monitors.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | ||||||
|  | # Generated by nwg-displays on 2025-01-27 at 13:58:39. Do not edit manually. | ||||||
|  | 
 | ||||||
|  | monitor=desc:BOE 0x08CF,1920x1080@60.0,0x0,1.0 | ||||||
|  | monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,2560x1440@59.95,0x1800,1.0 | ||||||
|  | monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,disable | ||||||
|  | monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,1920x1080@60.0,2560x1800,1.0 | ||||||
|  | monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,transform,1 | ||||||
|  | monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,disable | ||||||
|  | monitor=desc:Samsung Electric Company SAMSUNG,0x0@60.0,-1x-1,1.0 | ||||||
|  | monitor=desc:Samsung Electric Company SAMSUNG,disable | ||||||
							
								
								
									
										9
									
								
								stow/hyprland/.config/hypr/undocked.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								stow/hyprland/.config/hypr/undocked.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,9 @@ | ||||||
|  | monitor=desc:BOE 0x08CF,1920x1080@60.0,0x0,1.0 | ||||||
|  | monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,2560x1440@59.95,0x1800,1.0 | ||||||
|  | monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,disable | ||||||
|  | monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,1920x1080@60.0,2560x1800,1.0 | ||||||
|  | monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,transform,1 | ||||||
|  | monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,disable | ||||||
|  | monitor=desc:Samsung Electric Company SAMSUNG,0x0@60.0,-1x-1,1.0 | ||||||
|  | monitor=desc:Samsung Electric Company SAMSUNG,disable | ||||||
|  | 
 | ||||||
							
								
								
									
										0
									
								
								stow/hyprland/.config/hypr/workspaces.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								stow/hyprland/.config/hypr/workspaces.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -1,9 +1,3 @@ | ||||||
| Host Hugo |  | ||||||
|     User admin |  | ||||||
|     HostName 192.168.0.11 |  | ||||||
|     IdentitiesOnly yes |  | ||||||
|     IdentityFile /run/secrets/Hugo/ssh |  | ||||||
| 
 |  | ||||||
| Host HPC | Host HPC | ||||||
|     User vsc44995 |     User vsc44995 | ||||||
|     HostName login.hpc.ugent.be |     HostName login.hpc.ugent.be | ||||||
|  | @ -15,7 +9,7 @@ Host git.depeuter.dev | ||||||
|     User git |     User git | ||||||
|     HostName git.depeuter.dev |     HostName git.depeuter.dev | ||||||
|     IdentitiesOnly yes |     IdentitiesOnly yes | ||||||
|     IdentityFile /run/secrets/Hugo/Gitea/ssh |     IdentityFile /run/secrets/Gitea/ssh | ||||||
| 
 | 
 | ||||||
| Host github.com | Host github.com | ||||||
|     User git |     User git | ||||||
|  | @ -36,3 +30,60 @@ Host subgit.ugent.be | ||||||
|     IdentityFile /run/secrets/UGent/SubGit/ssh |     IdentityFile /run/secrets/UGent/SubGit/ssh | ||||||
|     CanonicalizeHostname yes # Ignore capitalization |     CanonicalizeHostname yes # Ignore capitalization | ||||||
| 
 | 
 | ||||||
|  | # HomeLab | ||||||
|  | 
 | ||||||
|  | # Physical hosts | ||||||
|  | Host Hugo | ||||||
|  |     User admin | ||||||
|  |     HostName 192.168.0.11 | ||||||
|  |     IdentitiesOnly yes | ||||||
|  |     IdentityFile /run/secrets/HomeLab/Hugo/ssh | ||||||
|  | 
 | ||||||
|  | Host Roxanne | ||||||
|  |     User ghost | ||||||
|  |     Hostname 192.168.0.13 | ||||||
|  |     IdentitiesOnly yes | ||||||
|  |     IdentityFile /run/secrets/HomeLab/Roxanne/ghost/ssh | ||||||
|  | 
 | ||||||
|  | Host HTPC | ||||||
|  |     User root | ||||||
|  |     Hostname 192.168.0.88 | ||||||
|  |     IdentitiesOnly yes | ||||||
|  |     IdentityFile /run/secrets/HomeLab/HTPC/ssh | ||||||
|  | 
 | ||||||
|  | # Virtual hosts | ||||||
|  | Host Gitea | ||||||
|  |     User gh0st | ||||||
|  |     HostName 192.168.0.24 | ||||||
|  |     IdentitiesOnly yes | ||||||
|  |     IdentityFile /run/secrets/HomeLab/Gitea/ssh | ||||||
|  | 
 | ||||||
|  | Host Nextcloud | ||||||
|  |     User administrator | ||||||
|  |     Hostname 192.168.0.14 | ||||||
|  |     IdentitiesOnly yes | ||||||
|  |     IdentityFile /run/secrets/HomeLab/Nextcloud/ssh | ||||||
|  | 
 | ||||||
|  | Host Vaultwarden | ||||||
|  |     User gh0st | ||||||
|  |     Hostname 192.168.0.22 | ||||||
|  |     IdentitiesOnly yes | ||||||
|  |     IdentityFile /run/secrets/HomeLab/Vaultwarden/ssh | ||||||
|  | 
 | ||||||
|  | Host Binnenpost | ||||||
|  |     User admin | ||||||
|  |     Hostname 192.168.0.89 | ||||||
|  |     IdentitiesOnly yes | ||||||
|  |     IdentityFile /run/secrets/HomeLab/NixOS/admin/ssh | ||||||
|  | 
 | ||||||
|  | Host Development | ||||||
|  |     User admin | ||||||
|  |     Hostname 192.168.0.91 | ||||||
|  |     IdentitiesOnly yes | ||||||
|  |     IdentityFile /run/secrets/HomeLab/NixOS/admin/ssh | ||||||
|  | 
 | ||||||
|  | Host Testing | ||||||
|  |     User admin | ||||||
|  |     Hostname 192.168.0.92 | ||||||
|  |     IdentitiesOnly yes | ||||||
|  |     IdentityFile /run/secrets/HomeLab/Nixos/admin/ssh | ||||||
|  |  | ||||||
|  | @ -61,5 +61,9 @@ exec wlsunset -l 50.50 -L 4.00 -t 3000 -T 6500 | ||||||
| exec gnome-keyring-daemon --start --components=secrets # Secrets | exec gnome-keyring-daemon --start --components=secrets # Secrets | ||||||
| exec dunst --verbosity crit                            # Notification manager | exec dunst --verbosity crit                            # Notification manager | ||||||
| exec swayidle -w | exec swayidle -w | ||||||
|  | exec waycorner | ||||||
| 
 | 
 | ||||||
| exec nextcloud --background | exec nextcloud --background | ||||||
|  | 
 | ||||||
|  | # SwayFX | ||||||
|  | blur enable | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| input type:keyboard { | input type:keyboard { | ||||||
|     xkb_layout  "us" |     xkb_layout  "us","be" | ||||||
|     xkb_variant "altgr-intl" |     xkb_variant "altgr-intl","iso-alternate" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| input type:touchpad { | input type:touchpad { | ||||||
|  |  | ||||||
|  | @ -1,7 +1,8 @@ | ||||||
| set $notify ~/projects/sisyphus/scripts/notify.sh | set $notify ~/projects/sisyphus/scripts/notify.sh | ||||||
| 
 | 
 | ||||||
| # Focus |  | ||||||
| bindsym { | bindsym { | ||||||
|  | 
 | ||||||
|  |     # Focus | ||||||
|     $flag+$up    focus up |     $flag+$up    focus up | ||||||
|     $flag+$right focus right |     $flag+$right focus right | ||||||
|     $flag+$down  focus down |     $flag+$down  focus down | ||||||
|  | @ -14,10 +15,8 @@ bindsym { | ||||||
| 
 | 
 | ||||||
|     $flag+p      focus parent |     $flag+p      focus parent | ||||||
|     $flag+space  focus mode_toggle |     $flag+space  focus mode_toggle | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| # Move windows |     # Move windows | ||||||
| bindsym { |  | ||||||
|     $flag+Shift+$up     move up |     $flag+Shift+$up     move up | ||||||
|     $flag+Shift+$right  move right |     $flag+Shift+$right  move right | ||||||
|     $flag+Shift+$down   move down |     $flag+Shift+$down   move down | ||||||
|  | @ -32,10 +31,8 @@ bindsym { | ||||||
|     $flag+KP_Next       move scratchpad |     $flag+KP_Next       move scratchpad | ||||||
|     $flag+Prior         scratchpad show |     $flag+Prior         scratchpad show | ||||||
|     $flag+KP_Prior      scratchpad show |     $flag+KP_Prior      scratchpad show | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| # Layouts |     # Layouts | ||||||
| bindsym { |  | ||||||
|     $flag+z       layout toggle split |     $flag+z       layout toggle split | ||||||
|     $flag+x       layout tabbed |     $flag+x       layout tabbed | ||||||
|     $flag+c       split h |     $flag+c       split h | ||||||
|  | @ -212,6 +209,8 @@ bindsym { | ||||||
|     $flag+q        kill |     $flag+q        kill | ||||||
|     # Start a terminal |     # Start a terminal | ||||||
|     $flag+Return   exec $term |     $flag+Return   exec $term | ||||||
|  |     Control+$alt+t exec $term | ||||||
|  | 
 | ||||||
|     $alt+space     exec $menu |     $alt+space     exec $menu | ||||||
|     $alt+Tab       focus prev |     $alt+Tab       focus prev | ||||||
|     $flag+Tab      exec $window_switcher |     $flag+Tab      exec $window_switcher | ||||||
|  | @ -224,8 +223,6 @@ bindsym { | ||||||
|      |      | ||||||
|     # File explorer |     # File explorer | ||||||
|     $flag+e        exec $term -e vifm |     $flag+e        exec $term -e vifm | ||||||
|     # Internet browser |  | ||||||
|     $flag+i      exec firefox |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bindgesture { | bindgesture { | ||||||
|  |  | ||||||
|  | @ -5,9 +5,10 @@ | ||||||
| set $default "default" | set $default "default" | ||||||
| 
 | 
 | ||||||
| # Resizing | # Resizing | ||||||
| set $resize "Resize" | set $mode_resize "Resize" | ||||||
| bindsym $flag+r mode $resize | bindsym $flag+r mode $mode_resize | ||||||
| mode $resize bindsym { | mode $mode_resize { | ||||||
|  |     bindsym { | ||||||
|         $right       resize grow   width  10 px or 10 ppt |         $right       resize grow   width  10 px or 10 ppt | ||||||
|         $up          resize grow   height 10 px or 10 ppt |         $up          resize grow   height 10 px or 10 ppt | ||||||
|         $left        resize shrink width  10 px or 10 ppt |         $left        resize shrink width  10 px or 10 ppt | ||||||
|  | @ -38,9 +39,17 @@ mode $resize bindsym { | ||||||
|         $flag+Left   move left |         $flag+Left   move left | ||||||
|         $flag+Down   move down |         $flag+Down   move down | ||||||
| 
 | 
 | ||||||
|     Return       mode $default |  | ||||||
|     Escape       mode $default |  | ||||||
|         $flag+r      mode $default |         $flag+r      mode $default | ||||||
|  |         Escape       mode $default | ||||||
|  |         Return       mode $default | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     bindgesture { | ||||||
|  |         swipe:2:right resize grow   width  10 px or 10 ppt | ||||||
|  |         swipe:2:down  resize grow   height 10 px or 10 ppt | ||||||
|  |         swipe:2:left  resize shrink width  10 px or 10 ppt | ||||||
|  |         swipe:2:up    resize shrink height 10 px or 10 ppt | ||||||
|  |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| # System actions | # System actions | ||||||
|  | @ -53,9 +62,23 @@ mode $mode_system bindsym { | ||||||
|     r                   mode $default, exec systemctl reboot |     r                   mode $default, exec systemctl reboot | ||||||
|     Shift+s             mode $default, exec systemctl poweroff -i |     Shift+s             mode $default, exec systemctl poweroff -i | ||||||
| 
 | 
 | ||||||
|     Return              mode $default |  | ||||||
|     Escape              mode $default |  | ||||||
|     Control+$alt+Delete mode $default |     Control+$alt+Delete mode $default | ||||||
|  |     Escape              mode $default | ||||||
|  |     Return              mode $default | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | set $mode_preferences "Toggle (d)ark mode, (s)unset, (n)otification" | ||||||
|  | bindsym $alt+end    mode $mode_preferences | ||||||
|  | bindsym $alt+KP_End mode $mode_preferences | ||||||
|  | mode $mode_preferences bindsym { | ||||||
|  |     d           exec "${SCRIPT_DIR}/toggle-light-dark.sh", mode $default | ||||||
|  |     s           exec "${SCRIPT_DIR}/sunset.sh",            mode $default | ||||||
|  |     n           exec "${SCRIPT_DIR}/do-not-disturb.sh",    mode $default | ||||||
|  | 
 | ||||||
|  |     $alt+end    mode $default | ||||||
|  |     $alt+KP_End mode $default | ||||||
|  |     Escape      mode $default | ||||||
|  |     Return      mode $default | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| # Screenshots | # Screenshots | ||||||
|  | @ -72,20 +95,23 @@ mode $mode_screenshot bindsym { | ||||||
|     Shift+s exec grimshot --notify save screen $save_format, mode $default |     Shift+s exec grimshot --notify save screen $save_format, mode $default | ||||||
|     Print   exec grimshot --notify save screen $save_format, mode $default |     Print   exec grimshot --notify save screen $save_format, mode $default | ||||||
| 
 | 
 | ||||||
|     Return mode $default |  | ||||||
|     Escape mode $default |     Escape mode $default | ||||||
|  |     Return mode $default | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| set $mode_preferences "Toggle (d)ark mode, (s)unset, (n)otification" | # Launcher | ||||||
| bindsym $alt+end    mode $mode_preferences | set $mode_launcher "Launch (f)irefox, (s)potify or (t)hunderbird." | ||||||
| bindsym $alt+KP_End mode $mode_preferences | bindsym $flag+o mode $mode_launcher | ||||||
| mode $mode_preferences bindsym { | mode $mode_launcher bindsym { | ||||||
|     d           exec "${SCRIPT_DIR}/toggle-light-dark.sh", mode $default |     f   exec firefox,     mode $default | ||||||
|     s           exec "${SCRIPT_DIR}/sunset.sh",            mode $default |     t   exec thunderbird, mode $default | ||||||
|     n           exec "${SCRIPT_DIR}/do-not-disturb.sh",    mode $default |  | ||||||
| 
 | 
 | ||||||
|     Return      mode $default |     $flag+o mode $default | ||||||
|     Escape  mode $default |     Escape  mode $default | ||||||
|     $alt+end    mode $default |     Return  mode $default | ||||||
|     $alt+KP_End mode $default |  | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | # Ignore (all) keybinds. Useful when working with Virtual Machines. | ||||||
|  | set $mode_ignore "Ignore keybinds - Press Control+Alt+Insert to escape." | ||||||
|  | bindsym Control+$alt+Insert mode $mode_ignore | ||||||
|  | mode $mode_ignore bindsym Control+$alt+Insert mode $default | ||||||
|  |  | ||||||
|  | @ -15,6 +15,10 @@ default_border pixel 1 | ||||||
| default_floating_border normal 1 | default_floating_border normal 1 | ||||||
| hide_edge_borders smart | hide_edge_borders smart | ||||||
| smart_borders on | smart_borders on | ||||||
|  | gaps { | ||||||
|  |     inner 5 | ||||||
|  |     outer 3 | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| # Mimic no titles by setting the text color to background color | # Mimic no titles by setting the text color to background color | ||||||
| #                       border  backgr. text    indic.  child_border | #                       border  backgr. text    indic.  child_border | ||||||
|  |  | ||||||
|  | @ -2,41 +2,55 @@ | ||||||
| # .config/swaylock/config | # .config/swaylock/config | ||||||
| #  | #  | ||||||
| 
 | 
 | ||||||
| indicator | #indicator | ||||||
| indicator-radius=200 | #indicator-radius=200 | ||||||
|  | # | ||||||
|  | #clock | ||||||
|  | #datestr=%A, %B %d %Y | ||||||
|  | # | ||||||
|  | #show-failed-attempts | ||||||
|  | # | ||||||
|  | #screenshots | ||||||
|  | #effect-pixelate=10 | ||||||
|  | #effect-vignette=0.75:0 # Darken the whole screen. | ||||||
|  | #fade-in=0.25 | ||||||
|  | # | ||||||
|  | #grace=7 # Allow to unlock without password for duration | ||||||
|  | #grace-no-mouse | ||||||
| 
 | 
 | ||||||
| clock | image=${ASSETS_DIR}/bluescreen.png | ||||||
| datestr=%A, %B %d %Y |  | ||||||
| 
 |  | ||||||
| screenshots |  | ||||||
| effect-blur=5x5 |  | ||||||
| effect-vignette=0.75:0 # Darken the whole screen. |  | ||||||
| fade-in=0.25 |  | ||||||
| 
 |  | ||||||
| grace=7 # Allow to unlock without password for duration |  | ||||||
| grace-no-mouse |  | ||||||
| 
 | 
 | ||||||
| # Styling | # Styling | ||||||
| 
 | 
 | ||||||
|  | color=000000 # The default background color when no image could be loaded | ||||||
|  | 
 | ||||||
| font=letter extended | font=letter extended | ||||||
| text-color=ffffff | text-color=ffffff | ||||||
| text-clear-color=ffffff | text-clear-color=ffffff | ||||||
| text-wrong-color=eb4d4b | text-caps-lock-color=ffffff | ||||||
|  | text-wrong-color=bd2024 | ||||||
|  | 
 | ||||||
|  | layout-text-color=ffffff | ||||||
| 
 | 
 | ||||||
| # Make all the other stuff invisible | # Make all the other stuff invisible | ||||||
| key-hl-color=00000000 |  | ||||||
| separator-color=00000000 |  | ||||||
| ring-color=00000000 |  | ||||||
| ring-clear-color=00000000 |  | ||||||
| ring-ver-color=00000000 |  | ||||||
| ring-wrong-color=00000000 |  | ||||||
| line-color=00000000 |  | ||||||
| line-clear-color=00000000 |  | ||||||
| line-ver-color=00000000 |  | ||||||
| line-wrong-color=00000000 |  | ||||||
| inside-color=00000000 | inside-color=00000000 | ||||||
| inside-clear-color=00000000 | inside-clear-color=00000000 | ||||||
|  | inside-caps-lock-color=00000000 | ||||||
| inside-ver-color=00000000 | inside-ver-color=00000000 | ||||||
| inside-wrong-color=00000000 | inside-wrong-color=00000000 | ||||||
|  | key-hl-color=00000000 | ||||||
|  | layout-bg-color=00000000 | ||||||
|  | layout-border-color=00000000 | ||||||
|  | line-color=00000000 | ||||||
|  | line-clear-color=00000000 | ||||||
|  | line-caps-lock-color=00000000 | ||||||
|  | line-ver-color=00000000 | ||||||
|  | line-wrong-color=00000000 | ||||||
|  | ring-color=00000000 | ||||||
|  | ring-clear-color=00000000 | ||||||
|  | ring-caps-lock-color=00000000 | ||||||
|  | ring-ver-color=00000000 | ||||||
|  | ring-wrong-color=00000000 | ||||||
|  | separator-color=00000000 | ||||||
| text-ver-color=00000000 | text-ver-color=00000000 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -25,8 +25,7 @@ set smarttab | ||||||
| set tabstop=4 | set tabstop=4 | ||||||
| set title | set title | ||||||
| set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx | set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx | ||||||
| "" Show suggestions on another line instead of inplace | set wildmenu "" Show suggestions on another line instead of inplace | ||||||
| set wildmenu |  | ||||||
| 
 | 
 | ||||||
| syntax enable | syntax enable | ||||||
| 
 | 
 | ||||||
|  | @ -82,6 +81,9 @@ Plug 'prabirshrestha/vim-lsp' | ||||||
| Plug 'sheerun/vim-polyglot' | Plug 'sheerun/vim-polyglot' | ||||||
| Plug 'vifm/vifm.vim' | Plug 'vifm/vifm.vim' | ||||||
| 
 | 
 | ||||||
|  | " Coq | ||||||
|  | Plug 'whonore/Coqtail' | ||||||
|  | 
 | ||||||
| call plug#end()  | call plug#end()  | ||||||
| 
 | 
 | ||||||
| " }}} | " }}} | ||||||
|  |  | ||||||
|  | @ -1,42 +0,0 @@ | ||||||
| // |  | ||||||
| // ~/.config/waybar/config |  | ||||||
| // |  | ||||||
| 
 |  | ||||||
| [{ |  | ||||||
|     "name": "toggle", |  | ||||||
| 
 |  | ||||||
|     "mode": "hide", |  | ||||||
|     "ipc": true, |  | ||||||
| 
 |  | ||||||
|     "position": "top", |  | ||||||
|     "height": 25, |  | ||||||
|     "spacing": 4,  |  | ||||||
|     "margin": "-25px 0 0 0", // Show this bar on top of the other one, seemingly the "same" one. |  | ||||||
| 
 |  | ||||||
|     "custom/sep": { |  | ||||||
|         "format": "\uf142" |  | ||||||
|     }, |  | ||||||
| 
 |  | ||||||
|     "include": [ |  | ||||||
|         // Import modules (!) |  | ||||||
|         "~/.config/waybar/modules.json",  |  | ||||||
| //      "~/.config/waybar/default.json" |  | ||||||
|         "~/.config/waybar/left.json" |  | ||||||
|     ], |  | ||||||
| 
 |  | ||||||
| },  |  | ||||||
| 
 |  | ||||||
| { |  | ||||||
|     "name": "keep", |  | ||||||
|     "position": "top", |  | ||||||
|     "height": 25, |  | ||||||
|     "modules-left": ["sway/mode", "keyboard-state"], |  | ||||||
|     "modules-center": ["clock"], |  | ||||||
|     "modules-right": ["privacy"], |  | ||||||
| 
 |  | ||||||
|     "include": [ |  | ||||||
|         // Import modules (!) |  | ||||||
|         "~/.config/waybar/modules.json" |  | ||||||
|     ], |  | ||||||
| }] |  | ||||||
| 
 |  | ||||||
							
								
								
									
										63
									
								
								stow/waybar/.config/waybar/config.jsonc
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								stow/waybar/.config/waybar/config.jsonc
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,63 @@ | ||||||
|  | /* * * * * * * * * * * * * * * * * | ||||||
|  |  *                               * | ||||||
|  |  * ~/.config/waybar/config.jsonc * | ||||||
|  |  *                               * | ||||||
|  |  * * * * * * * * * * * * * * * * */ | ||||||
|  | 
 | ||||||
|  | [ | ||||||
|  |     /* Always visible, contains less information */ | ||||||
|  |     { | ||||||
|  |         "name": "keep", | ||||||
|  |         "position": "top", | ||||||
|  |         "height": 26, | ||||||
|  |         "modules-left": [ | ||||||
|  |             "group/mode" | ||||||
|  |         ], | ||||||
|  |         "modules-center": [ | ||||||
|  |             "clock#center" | ||||||
|  |         ], | ||||||
|  |         "modules-right": [ | ||||||
|  |             "keyboard-state#numlock", | ||||||
|  |             "keyboard-state#capslock", | ||||||
|  |             "privacy" | ||||||
|  |         ], | ||||||
|  |         "include": [ | ||||||
|  |             "~/.config/waybar/modules.json" | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     /* Toggle this bar, contains all information */ | ||||||
|  |     { | ||||||
|  |         "name": "toggle", | ||||||
|  |         "mode": "hide", | ||||||
|  |         "ipc": true, | ||||||
|  |         "position": "top", | ||||||
|  |         "height": 26, | ||||||
|  |         /* Show this bar on top of the other one, seemingly replacing it. */ | ||||||
|  |         "margin": "-26px 0 0 0", | ||||||
|  |         "modules-left": [ | ||||||
|  |             "custom/meta", | ||||||
|  |             "sway/window", | ||||||
|  |             "group/workspaces", | ||||||
|  |             "custom/scratchpad-indicator", | ||||||
|  |             "group/mode" | ||||||
|  |         ], | ||||||
|  |         "modules-center": [ | ||||||
|  |             "mpris" | ||||||
|  |         ], | ||||||
|  |         "modules-right": [ | ||||||
|  |             "keyboard-state#numlock", | ||||||
|  |             "keyboard-state#capslock", | ||||||
|  |             "privacy", | ||||||
|  |             "tray", | ||||||
|  |             "group/control-center", | ||||||
|  |             "group/network", | ||||||
|  |             "pulseaudio", | ||||||
|  |             "group/power", | ||||||
|  |             "clock#bar" | ||||||
|  |         ], | ||||||
|  |         "include": [ | ||||||
|  |             "~/.config/waybar/modules.json" | ||||||
|  |         ] | ||||||
|  |     } | ||||||
|  | ] | ||||||
|  | @ -2,17 +2,15 @@ | ||||||
|     "modules-left": [ |     "modules-left": [ | ||||||
|         "sway/workspaces", |         "sway/workspaces", | ||||||
|         "custom/scratchpad-indicator", |         "custom/scratchpad-indicator", | ||||||
|         "mpris", |         "group/system" | ||||||
|         "group/system", |  | ||||||
|     ], |     ], | ||||||
|     "modules-right": [ |     "modules-right": [ | ||||||
|         "group/hardware", |         "tray", | ||||||
|         "custom/sep", |         "sway/language", | ||||||
|         "bluetooth", |         "bluetooth", | ||||||
|         "network", |         "network", | ||||||
|         "pulseaudio", |         "pulseaudio", | ||||||
|         "battery", |         "group/battery", | ||||||
|         "custom/sep", |         "mpris" | ||||||
|         "tray" |  | ||||||
|     ] |     ] | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										80
									
								
								stow/waybar/.config/waybar/modern.css
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								stow/waybar/.config/waybar/modern.css
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,80 @@ | ||||||
|  | @define-color foreground rgb(202, 202, 202); | ||||||
|  | @define-color background rgb(  3,   3,   3); | ||||||
|  | 
 | ||||||
|  | @define-color highlight-background alpha(@foreground, 0.4); | ||||||
|  | 
 | ||||||
|  | @define-color accent #00897b; | ||||||
|  | @define-color white #ecf0f1; | ||||||
|  | @define-color warning-red #eb4d4b; | ||||||
|  | 
 | ||||||
|  | * { | ||||||
|  |     font-family: letter, "Font Awesome 6 Free", font-awesome, monospace; | ||||||
|  |     font-size: 13px; | ||||||
|  |     font-weight: 600; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | window#waybar { | ||||||
|  |     border: none; | ||||||
|  |     color: @white; | ||||||
|  | 
 | ||||||
|  |     transition-property: background-color; | ||||||
|  |     transition-duration: .5s; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | window#waybar.keep { | ||||||
|  |     background-color: @transparent; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | window#waybar.toggle { | ||||||
|  |     background-color: alpha(@foreground, 0.4); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | tooltip { | ||||||
|  |   background: alpha(@background, 0.8); | ||||||
|  | } | ||||||
|  | tooltip label { | ||||||
|  |   color: @white; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #workspaces button { | ||||||
|  |     border: none; | ||||||
|  |     padding: 0 8px; | ||||||
|  |     border-radius: 5px; | ||||||
|  |     animation: ws_normal 20s ease-in-out 1; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #mode, | ||||||
|  | #workspaces button.focused { | ||||||
|  |     background-color: alpha(@background, 0.2); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #workspaces button:hover { | ||||||
|  |     background-color: alpha(@background, 0.2); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #battery, | ||||||
|  | #disk, | ||||||
|  | #bluetooth, | ||||||
|  | #clock, | ||||||
|  | #custom-browser, | ||||||
|  | #custom-scratchpad-indicator, | ||||||
|  | #custom-system-hibernate, #custom-system-lock, #custom-system-reboot, #custom-system-shutdown, #custom-system-sleep, | ||||||
|  | #custom-toggle-light-dark, | ||||||
|  | #custom-toggle-night-light, | ||||||
|  | #custom-toggle-notifications, | ||||||
|  | #cpu, | ||||||
|  | #idle_inhibitor, | ||||||
|  | #keyboard-state, | ||||||
|  | #memory, | ||||||
|  | #mpris, | ||||||
|  | #network, | ||||||
|  | #sway-language, | ||||||
|  | #sway-window, | ||||||
|  | #power-profiles-daemon, | ||||||
|  | #privacy, | ||||||
|  | #pulseaudio, | ||||||
|  | #temperature, | ||||||
|  | #tray { | ||||||
|  |     color: @white; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @ -2,31 +2,28 @@ | ||||||
|     "battery": { |     "battery": { | ||||||
|         "format": "{capacity}% {icon}", |         "format": "{capacity}% {icon}", | ||||||
|         "format-alt": "{time} {icon}", |         "format-alt": "{time} {icon}", | ||||||
|         "format-charging": "{capacity}% \uf0e7 {icon}", |         "format-charging": "{capacity}% \ue55b", /*   */ | ||||||
|         "format-icons": ["\uf244", "\uf243", "\uf242", "\uf241", "\uf240"], |  | ||||||
|         "format-plugged": "{capacity}% \ue55c", |         "format-plugged": "{capacity}% \ue55c", | ||||||
|  |         "format-icons": [ | ||||||
|  |             "\uf244", /*   */ | ||||||
|  |             "\uf243", /*   */ | ||||||
|  |             "\uf242", /*   */ | ||||||
|  |             "\uf241", /*   */ | ||||||
|  |             "\uf240"  /*   */ | ||||||
|  |         ], | ||||||
|         "states": { |         "states": { | ||||||
|             "warning": 30, |             "warning": 25, | ||||||
|             "critical": 15 |             "critical": 12 | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "disk": { |  | ||||||
|         "interval": 30,  |  | ||||||
|         "format": "{percentage_used}% \uf0a0",  |  | ||||||
|         "on-click": "kitty -e duf /", |  | ||||||
|         "path": "/", |  | ||||||
|         "tooltip-format": "{used} used out of {total} on {path} ({percentage_free}% or {free} free)" |  | ||||||
|     }, |  | ||||||
| 
 |  | ||||||
|     "bluetooth": { |     "bluetooth": { | ||||||
|         "format-disabled": "<big>\uf294</big>", |         "format-disabled": "\uf294", /*  */ | ||||||
|         "format-off": "\uf294", |         "format-off": "\uf294", /*  */ | ||||||
|         "format-on": "<big>\uf294</big>", |         "format-on": "<big>\uf294</big>", /*  */ | ||||||
|         "format-connected": "<big>\uf294</big>c", |         "format-connected": "<big>\uf294</big>c", /* c */ | ||||||
|         "max-length": 10.3, |         "max-length": 10.3, | ||||||
|         "on-click": "bluetoothctl power $( bluetoothctl show | sed -n 's/\\s*Powered: \\(yes\\|no\\)/\\1/p' | sed 's/yes/off/;s/no/on/' )", |         "on-click": "bluetoothctl power $( bluetoothctl show | sed -n 's/\\s*Powered: \\(yes\\|no\\)/\\1/p' | sed 's/yes/off/;s/no/on/' )", | ||||||
|         "on-click-right": "kitty -e bluetoothctl", |  | ||||||
|         "tooltip-format": "{status}", |         "tooltip-format": "{status}", | ||||||
|         "tooltip-format-on": "{status}, no devices connected", |         "tooltip-format-on": "{status}, no devices connected", | ||||||
|         "tooltip-format-connected": "{status} ({num_connections}):\n{device_enumerate}",  |         "tooltip-format-connected": "{status} ({num_connections}):\n{device_enumerate}",  | ||||||
|  | @ -34,186 +31,357 @@ | ||||||
|         "tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}" |         "tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}" | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "clock": { |     "clock#center": { | ||||||
|         "format": "{:%H:%M}", |         "format": "{:%H:%M}", | ||||||
|         "format-alt": "{:%d/%m/%Y %H:%M}", |         "format-alt": "{:%a %b %d, %Y, %R}", | ||||||
|         "timezone": "Europe/Brussels", |         "timezone": "Europe/Brussels", | ||||||
|         "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>" |         "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>", | ||||||
|  |         "calendar": { | ||||||
|  |             "mode": "month", | ||||||
|  |             "week-pos": "left", | ||||||
|  |             "format": { | ||||||
|  |                 /* Highlight todays date. */ | ||||||
|  |                 "today": "<span background='#ffffff' color='#000000'><b>{}</b></span>" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "actions": { | ||||||
|  |             "on-click": "mode" | ||||||
|  |         } | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "custom/browser": { |     "clock#bar": { | ||||||
|         "format": "\uf120", |         "format": "{:%a %b %d, %R}", | ||||||
|         "on-click": "dmenu_run", |         "timezone": "Europe/Brussels", | ||||||
|         "tooltip-format": "Launch an application" |         "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>", | ||||||
|  |         "calendar": { | ||||||
|  |             "mode-mon-col": 3, | ||||||
|  |             "on-scroll": 1, | ||||||
|  |             "format": { | ||||||
|  |                 /* Highlight today's date. */ | ||||||
|  |                 "today": "<span background='#FFFFFF' color='#000000'><b>{}</b></span>" | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "actions": { | ||||||
|  |             "on-click": "mode" | ||||||
|  |         } | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "custom/light-dark-toggle": { |     "custom/control-center": { | ||||||
|         "on-click": "bash ${SCRIPT_DIR}/toggle-light-dark.sh", |         "format": "\uf085", /*   */ | ||||||
|         "tooltip-format": "Toggle between light and dark mode", |         "tooltip": false | ||||||
|         "format": "\uf042 ", |  | ||||||
|         "tooltip": true |  | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "custom/night-light-toggle": { |     "custom/meta": { | ||||||
|         "on-click": "bash ${SCRIPT_DIR}/sunset.sh", |         "format": "\uf17c", /*  */ | ||||||
|         "tooltip-format": "Toggle night-light on or off", |         "tooltip": false, | ||||||
|         "format": "\uf0eb ", |         "on-click": "dmenu_run" | ||||||
|         "tooltip": true, |  | ||||||
|         "tooltip-format": "Toggle night-light on or off", |  | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "custom/scratchpad-indicator": { |     "custom/scratchpad-indicator": { | ||||||
|         "interval": 3, |         "interval": 3, | ||||||
|         "return-type": "json", |         "return-type": "json", | ||||||
|         "exec": "swaymsg -t get_tree | jq --unbuffered --compact-output '(recurse(.nodes[]) | select(.name == \"__i3_scratch\") | .focus) as $scratch_ids | [..  | (.nodes? + .floating_nodes?) // empty | .[] | select(.id |IN($scratch_ids[]))] as $scratch_nodes | if ($scratch_nodes|length) > 0 then { text: \"\\($scratch_nodes | length)\", tooltip: $scratch_nodes | map(\"\\(.app_id // .window_properties.class) (\\(.id)): \\(.name)\") | join(\"\\n\") } else empty end'", |         "exec": "swaymsg -t get_tree | jq --unbuffered --compact-output '(recurse(.nodes[]) | select(.name == \"__i3_scratch\") | .focus) as $scratch_ids | [..  | (.nodes? + .floating_nodes?) // empty | .[] | select(.id |IN($scratch_ids[]))] as $scratch_nodes | if ($scratch_nodes|length) > 0 then { text: \"\\($scratch_nodes | length)\", tooltip: $scratch_nodes | map(\"\\(.app_id // .window_properties.class) (\\(.id)): \\(.name)\") | join(\"\\n\") } else empty end'", | ||||||
|         "format": "{} \uf2d2", |         "format": "\uf2d2 {}", | ||||||
|         "on-click": "exec swaymsg 'scratchpad show'", |         "on-click": "exec swaymsg 'scratchpad show'", | ||||||
|         "on-click-right": "exec swaymsg 'move scratchpad'" |         "on-click-right": "exec swaymsg 'move scratchpad'" | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "custom/system-lock": { |     "custom/system-lock": { | ||||||
|         "format": "\uf09c", |         "format": "\uf09c", /*  */ | ||||||
|         "tooltip": true, |         "tooltip": true, | ||||||
|         "tooltip-format": "Lock device", |         "tooltip-format": "Lock device", | ||||||
|         "on-click": "swaylock -f" |         "on-click": "swaylock --daemonize" | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "custom/system-sleep": { |     "custom/system-sleep": { | ||||||
|         "format": "\uf186", |         "format": "\uf186", /*  */ | ||||||
|         "tooltip": true, |         "tooltip": true, | ||||||
|         "tooltip-format": "Put device to sleep", |         "tooltip-format": "Put device to sleep", | ||||||
|         "on-click": "swaylock -f; systemctl suspend" |         "on-click": "swaylock --daemonize; systemctl suspend" | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "custom/system-hibernate": { |     "custom/system-hibernate": { | ||||||
|         "format": "\uf2dc", |         "format": "\uf2dc", /*  */ | ||||||
|         "tooltip": true, |         "tooltip": true, | ||||||
|         "tooltip-format": "Hibernate device", |         "tooltip-format": "Hibernate device", | ||||||
|         "on-click": "swaylock -f; systemctl hibernate" |         "on-click": "swaylock --daemonize; systemctl hibernate" | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "custom/system-reboot": { |     "custom/system-reboot": { | ||||||
|         "format": "\uf0e2", |         "format": "\uf0e2", /*  */ | ||||||
|         "tooltip": true, |         "tooltip": true, | ||||||
|         "tooltip-format": "Reboot device", |         "tooltip-format": "Reboot device", | ||||||
|         "on-click": "systemctl reboot" |         "on-click": "systemctl reboot" | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "custom/system-shutdown": { |     "custom/system-shutdown": { | ||||||
|         "format": "\uf011", |         "format": "\uf011", /*  */ | ||||||
|         "tooltip": true, |         "tooltip": true, | ||||||
|         "tooltip-format": "Shutdown device", |         "tooltip-format": "Shutdown device", | ||||||
|         "on-click": "systemctl poweroff -i" |         "on-click": "systemctl poweroff -i" | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|  |     "custom/toggle-light-dark": { | ||||||
|  |         "exec": "bash ${SCRIPT_DIR}/toggle-light-dark.sh -g", | ||||||
|  |         "interval": 60, | ||||||
|  |         "return-type": "json", | ||||||
|  |         "on-click": "bash ${SCRIPT_DIR}/toggle-light-dark.sh", | ||||||
|  |         "format": "{icon}", | ||||||
|  |         "format-icons": { | ||||||
|  |             "default": "\uf185", | ||||||
|  |             "prefer-dark": "\uf005" | ||||||
|  |         }, | ||||||
|  |         "tooltip": true | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|     "custom/toggle-notifications": { |     "custom/toggle-notifications": { | ||||||
|         "on-click": "bash ${SCRIPT_DIR}/do-not-disturb.sh", |         "exec": "bash ${SCRIPT_DIR}/toggle-notifications.sh -g", | ||||||
|         "tooltip-format": "Toggle notifications", |         "interval": 60, | ||||||
|         "format": "\uf1f6 ", |         "return-type": "json", | ||||||
|  |         "on-click": "bash ${SCRIPT_DIR}/toggle-notifications.sh", | ||||||
|  |         "format": "{icon}", | ||||||
|  |         "format-icons": { | ||||||
|  |             "normal": "\uf0f3", /*  */ | ||||||
|  |             "paused": "\uf1f6"  /*  */ | ||||||
|  |         }, | ||||||
|         "tooltip": true |         "tooltip": true | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "cpu": { |     "custom/toggle-tailscale": { | ||||||
|         "format": "{usage}% \uf2db", |         "exec": "bash ${SCRIPT_DIR}/toggle-tailscale.sh -g", | ||||||
|         "on-click": "foot -e htop", |         "interval": 60, | ||||||
|  |         "return-type": "json", | ||||||
|  |         "on-click": "bash ${SCRIPT_DIR}/toggle-tailscale.sh", | ||||||
|  |         "format": "{icon}", | ||||||
|  |         "format-icons": { | ||||||
|  |             "disconnected": "\ue50b", | ||||||
|  |             "connected": "\ue509", | ||||||
|  |         }, | ||||||
|         "tooltip": true |         "tooltip": true | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "group/hardware": { |     "group/control-center": { | ||||||
|         "orientation": "inherit", |         "orientation": "inherit", | ||||||
|         "modules": [ |         "modules": [ | ||||||
|             "power-profiles-daemon", |             "custom/control-center", | ||||||
|             "memory", |             "group/language", | ||||||
|             "cpu", |             /* "hyprland/language", "sway/language", */ | ||||||
|             "temperature", |             "custom/toggle-notifications", | ||||||
|  |             "custom/toggle-light-dark", | ||||||
|  |             "bluetooth" | ||||||
|  |         ], | ||||||
|  |         "drawer": { | ||||||
|  |             "transition-duration": 500, | ||||||
|  |             "transition-left-to-right": false, | ||||||
|  |             "children-class": "drawer-child" | ||||||
|  |         } | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     "group/language": { | ||||||
|  |         "orientation": "inherit", | ||||||
|  |         "modules": [ | ||||||
|  |             "hyprland/language", | ||||||
|  |             "sway/language" | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     "group/mode": { | ||||||
|  |         "orientation": "inherit", | ||||||
|  |         "modules": [ | ||||||
|  |             "hyprland/submap", | ||||||
|  |             "sway/mode" | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     "group/network": { | ||||||
|  |         "orientation": "inherit", | ||||||
|  |         "modules": [ | ||||||
|  |             /* Preview */ | ||||||
|  |             "network", | ||||||
|  |             /* Most-left */ | ||||||
|  |             "custom/toggle-tailscale" | ||||||
|  |             /* Most-right */ | ||||||
|  |         ], | ||||||
|  |         "drawer": { | ||||||
|  |             "transition-duration": 500, | ||||||
|  |             "transition-left-to-right": false, | ||||||
|  |             "children-class": "drawer-child" | ||||||
|  |         } | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     "group/power": { | ||||||
|  |         "orientation": "inherit", | ||||||
|  |         "modules": [ | ||||||
|  |             /* Preview */ | ||||||
|  |             "battery", | ||||||
|  |             /* Most-left */ | ||||||
|             "custom/system-shutdown", |             "custom/system-shutdown", | ||||||
|             "custom/system-reboot", |             "custom/system-reboot", | ||||||
|             "custom/system-hibernate", |             "custom/system-hibernate", | ||||||
|             "custom/system-sleep", |             "custom/system-sleep", | ||||||
|             "custom/system-lock", |             "custom/system-lock", | ||||||
|  |             "power-profiles-daemon", | ||||||
|  |             "idle_inhibitor" | ||||||
|  |             /* Most-right */ | ||||||
|         ], |         ], | ||||||
|         "drawer": { |         "drawer": { | ||||||
|             "transition-duration": 500, |             "transition-duration": 500, | ||||||
|             "transition-left-to-right": false, |             "transition-left-to-right": false, | ||||||
|             "children-class": "drawer-child", |             "children-class": "drawer-child" | ||||||
|         }, |         } | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "group/system": { |     "group/workspaces": { | ||||||
|         "orientation": "inherit", |         "orientation": "inherit", | ||||||
|         "modules": [ |         "modules": [ | ||||||
|             "idle_inhibitor", |             "hyprland/workspaces", | ||||||
|             "custom/light-dark-toggle", |             "sway/workspaces" | ||||||
|             "custom/night-light-toggle", |         ] | ||||||
|             "custom/toggle-notifications", |  | ||||||
|         ], |  | ||||||
|         "drawer": { |  | ||||||
|             "transition-duration": 500, |  | ||||||
|             "tansition-left-to-right": true, |  | ||||||
|             "children-class": "drawer-child", |  | ||||||
|     }, |     }, | ||||||
|  | 
 | ||||||
|  |     "hyprland/language": { | ||||||
|  |         "format": "\uf11c", | ||||||
|  |         "on-click": "hyprctl switchxkblayout at-translated-set-2-keyboard next && notify-send \"$(hyprctl devices -j | jq -r '.keyboards[] | select(.name == \"at-translated-set-2-keyboard\") | .active_keymap')\" --app-name 'waybar'", | ||||||
|  |         "tooltip": true, | ||||||
|  |         "tooltip-format": "Switch keyboard layouts", | ||||||
|  |         "keyboard-name": "at-translated-set-2-keyboard" | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     "hyprland/workspaces": { | ||||||
|  |         "all-outputs": false, | ||||||
|  |         "disable-scroll": true, | ||||||
|  |         "format": "{icon}{name}", | ||||||
|  |         "format-icons": { | ||||||
|  |             "default": "", | ||||||
|  |             "urgent": "\uf071 " /*   */ | ||||||
|  |         } | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "idle_inhibitor": { |     "idle_inhibitor": { | ||||||
|         "format": "{icon}", |         "format": "{icon}", | ||||||
|         "format-icons": { |         "format-icons": { | ||||||
|             "activated": "\uf06e", |             "activated": "\uf06e",  /*   */ | ||||||
|             "deactivated": "\uf070" |             "deactivated": "\uf070" /*   */ | ||||||
|         }, |         }, | ||||||
|         "tooltip": false |         "tooltip": false | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "keyboard-state": { |     "keyboard-state#capslock": { | ||||||
|  |         "capslock": true, | ||||||
|         "format": { |         "format": { | ||||||
|             "capslock": "{icon}", |             "capslock": "{icon}" | ||||||
|         }, |         }, | ||||||
|         "format-icons": { |         "format-icons": { | ||||||
|             "locked": "\uf023", |             "locked": "\uf11c", /*   */ | ||||||
|             "unlocked": "" |             "unlocked": "" | ||||||
|         }, |         } | ||||||
|         "numlock": false, |  | ||||||
|         "capslock": true, |  | ||||||
|         "scrollock": false, |  | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "memory": { |     "keyboard-state#numlock": { | ||||||
|         "format": "{}% \uf1c0", |         "numlock": true, | ||||||
|         "on-click": "kitty -e zenith" |         "format": { | ||||||
|  |             "numlock": "{icon}" | ||||||
|  |         }, | ||||||
|  |         "format-icons": { | ||||||
|  |             "locked": "\uf1ec", /*  */ | ||||||
|  |             "unlocked": "" | ||||||
|  |         } | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "mpris": { |     "mpris": { | ||||||
|         // "ignored-players": ["firefox"] |  | ||||||
|         "format": "{player_icon} {dynamic}", |         "format": "{player_icon} {dynamic}", | ||||||
|         "format-paused": "{status_icon} <i>{dynamic}</i>", |         "format-paused": "{status_icon} <i>{dynamic}</i>", | ||||||
|         "tooltip-format": "{player} ({status}) {title} - {artist} - {album}", |         "tooltip-format": "{player} ({status}) {title} - {artist} - {album}", | ||||||
|         "player-icons": { |         "player-icons": { | ||||||
|             "default": "\uf51f", |             "default": "\uf8d9", /*   */ | ||||||
|             "spotify": "\uf1bc", |             "mpv": "\uf144", /*   */ | ||||||
|             "mpv": "🎵" |             "spotify": "\uf1bc" /*   */ | ||||||
|         }, |         }, | ||||||
|         "status-icons": { |         "status-icons": { | ||||||
|             "paused": "⏸" |             "paused": "\uf04c" /*  */ | ||||||
|         }, |         }, | ||||||
|         "dynamic-order": [ |         "dynamic-order": [ | ||||||
|             "title", |             "title", | ||||||
|             "artist" |             "artist" | ||||||
|         ], |         ], | ||||||
|         "dynamic-len": 40, |         "dynamic-len": 40 | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "network": { |     "network": { | ||||||
|         "format-disconnected": "\uf127",  |         "format-disconnected": "\uf127", /*   */ | ||||||
|         "format-ethernet": "\uf6ff {ifname}: {ipadds}/{cidr}", |         "format-ethernet": "\uf6ff", /*   */ | ||||||
|         "format-wifi": "\uf1eb", |         "format-linked": "\uf0c1", /*   */ | ||||||
|  |         "format-wifi": "{icon}", | ||||||
|         "interval": 5, |         "interval": 5, | ||||||
|         "on-click-right": "kitty -e nmtui", |         "tooltip": true, | ||||||
|         "tooltip-format": "{ifname}: {ipaddr}", |         "tooltip-format": "{ifname}: {ipaddr}", | ||||||
|         "tooltip-format-disconnected": "Disconnected", |         "tooltip-format-disconnected": "Disconnected", | ||||||
|         "tooltip-format-wifi": "{essid} ({signalStrength}%)\n{ifname}: {ipaddr}" |         "tooltip-format-wifi": "{essid} ({signalStrength}%)\n{ifname}: {ipaddr}", | ||||||
|  |         "format-icons": [ | ||||||
|  |             "\uf05e", /*   */ | ||||||
|  |             "\uf1eb", /*   */ | ||||||
|  |             "\uf1eb" /*   */ | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     "power-profiles-daemon": { | ||||||
|  |         "format": "{icon}", | ||||||
|  |         "format-icons": { | ||||||
|  |             "default": "\uf110", /*   */ | ||||||
|  |             "performance": "\uf135", /*   */ | ||||||
|  |             "balanced": "\uf24e", /*   */ | ||||||
|  |             "power-saver": "\uf06c" /*   */ | ||||||
|  |         }, | ||||||
|  |         "tooltip": true, | ||||||
|  |         "tooltip-format": "Profile: {profile}\nDriver: {driver}" | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     "privacy": { | ||||||
|  |         "transition-duration": 250, | ||||||
|  |         "icon-size": 16, | ||||||
|  |         "modules": [ | ||||||
|  |             { | ||||||
|  |                 "type": "screenshare", | ||||||
|  |                 "tooltip": true | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "type": "audio-in", | ||||||
|  |                 "tooltip": true | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     "pulseaudio": { | ||||||
|  |         "format": "{volume}% {icon}", | ||||||
|  |         "format-headset": "{volume}% \uf58f", /*   */ | ||||||
|  |         "format-muted": "\uf6a9", /*  */ | ||||||
|  |         "format-icons": [ | ||||||
|  |             "\uf026", /*  */ | ||||||
|  |             "\uf027", /*  */ | ||||||
|  |             "\uf028"  /*  */ | ||||||
|  |         ], | ||||||
|  |         "scroll-step": 2.0, | ||||||
|  |         "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     "sway/language": { | ||||||
|  |         "format": "{short}", | ||||||
|  |         "on-click": "swaymsg input type:keyboard xkb_switch_layout next", | ||||||
|  |         "tooltip": true, | ||||||
|  |         "tooltip-format": "Switch keyboard layouts" | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "sway/window": { |     "sway/window": { | ||||||
|         "max-length": 85 |         "format": "{title}", | ||||||
|  |         "max-length": 20, | ||||||
|  |         "tooltip": true, | ||||||
|  |         "all-outputs": true, | ||||||
|  |         "icon": false, | ||||||
|  |         "icon-size": 18, | ||||||
|  |         "rewrite": { | ||||||
|  |             ".* - (.*)": "$1", | ||||||
|  |             ".* — (.*)": "$1" | ||||||
|  |         } | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "sway/workspaces": { |     "sway/workspaces": { | ||||||
|  | @ -221,72 +389,14 @@ | ||||||
|         "disable-scroll": true, |         "disable-scroll": true, | ||||||
|         "format": "{icon}{name}", |         "format": "{icon}{name}", | ||||||
|         "format-icons": { |         "format-icons": { | ||||||
|             "default": "", // Prevent showing workspace name literal. |             "default": "", | ||||||
|             "urgent": "\uf071 " |             "urgent": "\uf071 " /*   */ | ||||||
|         }, |  | ||||||
|         // "persistent_workspaces": { |  | ||||||
|         //     "0:¯\\_(ツ)_/¯": [] |  | ||||||
|         // } |  | ||||||
|     },  |  | ||||||
| 
 |  | ||||||
|     "power-profiles-daemon": { |  | ||||||
|         "format": "{icon}", |  | ||||||
|         "tooltip-format": "Power profile: {profile}\nDriver: {driver}", |  | ||||||
|         "tooltip": true, |  | ||||||
|         "format-icons": { |  | ||||||
|             "default": "", |  | ||||||
|             "performance": "", |  | ||||||
|             "balanced": "", |  | ||||||
|             "power-saver": "" |  | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     "privacy": { |  | ||||||
|         "icon-spacing": 4, |  | ||||||
|         "icon-size": 18, |  | ||||||
|         "transition-duration": 250, |  | ||||||
|         "modules": [ |  | ||||||
|             { |  | ||||||
|                 "type": "screenshare", |  | ||||||
|                 "tooltip": true, |  | ||||||
|                 "tooltip-icon-size": 18, |  | ||||||
|             }, |  | ||||||
|             { |  | ||||||
|                 "type": "audio-in", |  | ||||||
|                 "tooltip": true, |  | ||||||
|                 "tooltip-icon-size": 18, |  | ||||||
|             }, |  | ||||||
|         ], |  | ||||||
|     }, |  | ||||||
| 
 |  | ||||||
|     "pulseaudio": { |  | ||||||
|         "format": "{volume}% {icon}{format_source}", |  | ||||||
|         "format-muted": "\uf6a9{format_source}", |  | ||||||
|         "format-bluetooth": "{volume}% {icon}\uf294{format_source}", |  | ||||||
|         "format-bluetooth-muted": "\uf6a9 {icon}\uf294{format_source}", |  | ||||||
|         "format-source": " {volume}% \uf130", |  | ||||||
|         "format-source-muted": "", |  | ||||||
|         "format-icons": { |  | ||||||
|             "headphone": "\uf58f", |  | ||||||
|             "hands-free": "\uf590", |  | ||||||
|             "headset": "\uf590", |  | ||||||
|             "phone": "\uf3ce", |  | ||||||
|             "portable": "\uf3ce", |  | ||||||
|             "car": "\uf1b9", |  | ||||||
|             "default": ["\uf026", "\uf027", "\uf028 "] |  | ||||||
|         }, |  | ||||||
|         "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle", |  | ||||||
|         "on-click-right": "pavucontrol", |  | ||||||
|         "scroll-step": 2 |  | ||||||
|     }, |  | ||||||
| 
 |  | ||||||
|     "temperature": { |  | ||||||
|         "critical-threshold": 70, |  | ||||||
|         "format": "{temperatureC}°C {icon}", |  | ||||||
|         "format-icons": ["\uf2cb", "\uf2c9", "\uf2c7"] |  | ||||||
|     },  |  | ||||||
| 
 |  | ||||||
|     "tray": { |     "tray": { | ||||||
|  |         "icon-size": 16, | ||||||
|  |         "show-passive-items": true, | ||||||
|         "spacing": 10 |         "spacing": 10 | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										14
									
								
								stow/waybar/.config/waybar/style-dark.css
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								stow/waybar/.config/waybar/style-dark.css
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | ||||||
|  | @import 'style.css'; | ||||||
|  | 
 | ||||||
|  | * { | ||||||
|  |     color: #C2C2C2; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | window#waybar { | ||||||
|  |     background-color: #171717; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | window#waybar button.focused { | ||||||
|  |     background-color: #C2C2C2; | ||||||
|  | } | ||||||
|  | 
 | ||||||
							
								
								
									
										14
									
								
								stow/waybar/.config/waybar/style-light.css
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								stow/waybar/.config/waybar/style-light.css
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | ||||||
|  | @import 'style.css'; | ||||||
|  | 
 | ||||||
|  | * { | ||||||
|  |     color: #171717; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | window#waybar { | ||||||
|  |     background-color: #C2C2C2; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | window#waybar button.focused { | ||||||
|  |     background-color: #171717; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @ -1,165 +1,118 @@ | ||||||
| /* | /* * * * * * * * * * * * * * * * | ||||||
|  * ~/.config/waybar/style.css |  *                             * | ||||||
|  * |  * ~/.config/waybar/style.css  * | ||||||
|  * `otf-font-awesome` is required to be installed for icons. |  *                             * | ||||||
|  * |  * * * * * * * * * * * * * * * */ | ||||||
|  * Pick your stylesheet:  |  | ||||||
|  * - sharp.css |  | ||||||
|  * - transparent.css |  | ||||||
|  * - round.css |  | ||||||
|  */ |  | ||||||
| 
 | 
 | ||||||
| @define-color transparent-black rgba(23, 23, 23, 0.9);  | @define-color background #C2C2C2; | ||||||
| @define-color white #ecf0f1; | @define-color foreground #171717; | ||||||
| @define-color warning-red #eb4d4b; | 
 | ||||||
| @define-color accent #00897b; | /* Pantone / PMS 18-1559 TCX / Red Alert */ | ||||||
|  | @define-color warning rgb(208,  52,  44); | ||||||
|  | /* Safety orange */ | ||||||
|  | @define-color safety  rgb(255, 103,   0); | ||||||
|  | 
 | ||||||
|  | * { | ||||||
|  |     padding: 0 4px; | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| window#waybar { | window#waybar { | ||||||
|  |     /* background: linear-gradient(90deg, #CECECE 0%, #D1D1D1 10%, #C9C9C9 50%, #BBBBBB 90%, #BABABA 100%); */ | ||||||
|  | 
 | ||||||
|     font-family: letter, "Font Awesome 6 Free", font-awesome, monospace; |     font-family: letter, "Font Awesome 6 Free", font-awesome, monospace; | ||||||
|     font-size: 13px; |     font-size: 13px; | ||||||
|     -webkit-font-smoothing: antialiased; |     font-weight: 600; | ||||||
|     transition-property: background-color; |  | ||||||
|     transition-duration: .5s; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #window, #workspaces { | .modules-right, | ||||||
|     margin: 0 5px; | .modules-right > widget:last-child { | ||||||
| } |     padding-right: 0; | ||||||
| 
 |  | ||||||
| #workspaces button { |  | ||||||
|     border: none; |  | ||||||
|     border-radius: 0; |  | ||||||
|     min-width: 30px;  |  | ||||||
|     padding: 0 5px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #workspaces button.focused { |  | ||||||
|     background-color: transparent; |  | ||||||
|     color: @white; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #workspaces button:hover { |  | ||||||
|     background-color: transparent; |  | ||||||
|     color: @transparent-black; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #workspaces button.urgent { |  | ||||||
|     color: @white;  |  | ||||||
|     background-color: @warning-red; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* All modules individually. */ |  | ||||||
| #backlight, |  | ||||||
| #battery, |  | ||||||
| #bluetooth, |  | ||||||
| #clock, |  | ||||||
| #cpu, |  | ||||||
| #custom-browser, |  | ||||||
| #custom-light-dark-toggle, |  | ||||||
| #custom-night-light-toggle, |  | ||||||
| #custom-system-lock, #custom-system-sleep, #custom-system-hibernate, #custom-system-reboot, #custom-system-shutdown, |  | ||||||
| #custom-toggle-notifications, |  | ||||||
| #disk, |  | ||||||
| #group-hardware, |  | ||||||
| #group-system, |  | ||||||
| #idle_inhibitor, |  | ||||||
| #keyboard-state, |  | ||||||
| #memory, |  | ||||||
| #mode, |  | ||||||
| #mpd, |  | ||||||
| #mpris, |  | ||||||
| #network, |  | ||||||
| #power-profiles-daemon, |  | ||||||
| #privacy-item.audio-in, #privacy-item.audio-out, #privacy-item.screenshare, |  | ||||||
| #pulseaudio, |  | ||||||
| #temperature, |  | ||||||
| #tray { |  | ||||||
|     padding: 0 5px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* If workspaces is the leftmost module, omit left margin */ |  | ||||||
| .modules-left > widget:first-child > #workspaces { |  | ||||||
|     margin-left: 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* If workspaces is the rightmost module, omit right margin */ |  | ||||||
| .modules-right > widget:last-child > #workspaces { |  | ||||||
|     margin-right: 0; |     margin-right: 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @keyframes blink { | #battery.charging { | ||||||
|     to { |  | ||||||
|         background-color: #ffffff; |  | ||||||
|         color: #000000; |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| label:focus { |  | ||||||
|     background-color: #000000; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* Module specific colours */ |  | ||||||
| 
 |  | ||||||
| #battery.charging, #battery.plugged { |  | ||||||
|     color: #ffffff; |  | ||||||
|     background-color: #26A65B; |     background-color: #26A65B; | ||||||
|  |     color: #FFFFFF; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #battery.critical:not(.charging) { | #battery.critical:not(.charging) { | ||||||
|     background-color: #f53c3c; |     background-color: @warning; | ||||||
|     color: #ffffff; |     color: #FFFFFF; | ||||||
|     animation-name: blink; |     animation-name: blink; | ||||||
|     animation-duration: 0.5s; |     animation-duration: 0.5s; | ||||||
|     animation-timing-function: linear; |     animation-timing-function: steps(12); | ||||||
|  |     animation-iteration-count: infinite; | ||||||
|  |     animation-direction: alternate; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #battery.plugged { | ||||||
|  |     animation-name: blink; | ||||||
|  |     animation-duration: 1.0s; | ||||||
|  |     animation-timing-function: steps(12); | ||||||
|     animation-iteration-count: infinite; |     animation-iteration-count: infinite; | ||||||
|     animation-direction: alternate; |     animation-direction: alternate; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #bluetooth.disabled, | #bluetooth.disabled, | ||||||
| #bluetooth.off, | #bluetooth.off { | ||||||
| #network.disconnected, |  | ||||||
| #pulseaudio.muted { |  | ||||||
|     opacity: 0.6; |     opacity: 0.6; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #mpris { | #custom-toggle-tailscale.disconnected { | ||||||
|     color: #2a5c45; |     opacity: 0.6; | ||||||
|     min-width: 100px; | } | ||||||
|  | 
 | ||||||
|  | #mpris.Feishin { | ||||||
|  |     background: linear-gradient(45deg, rgba(170,92,195,1) 100%, rgba(0,164,220,1) 0%); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #mpris.spotify { | #mpris.spotify { | ||||||
|     background-color: #66cc99; |     background-color: #66cc99; | ||||||
|  |     color: #2a5c45; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #mpris.vlc { | #mpris.vlc { | ||||||
|     background-color: #ffa000; |     background-color: #ffa000; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #temperature.critical { | #network.disconnected { | ||||||
|     background-color: #eb4d4b; |     opacity: 0.6; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #custom_light-dark-toggle.activated, | #privacy, | ||||||
| #idle_inhibitor.activated { | #privacy-item, | ||||||
|     background-color: #ecf0f1; | #privacy-item.screenshare, | ||||||
|     color: #2d3436; | #privacy-item.audio-in { | ||||||
|  |     background-color: @safety; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #privacy-item.screenshare { | ||||||
|  |     background-color: #000000; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #pulseaudio.muted { | ||||||
|  |     opacity: 0.6; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #systemd-failed-units.degraded { | ||||||
|  |     background-color: @warning; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #temperature.critical { | ||||||
|  |     background-color: @warning; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #tray > .needs-attention { | ||||||
|  |     -gtk-icon-effect: highlight; | ||||||
|  |     background-color: @warning; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #tray > .passive { | #tray > .passive { | ||||||
|     -gtk-icon-effect: dim; |     -gtk-icon-effect: dim; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #tray > .needs-attention { | #workspaces button.urgent { | ||||||
|     -gtk-icon-effect: highlight; |     background-color: @warning; | ||||||
|     background-color: #eb4d4b; |     color: white; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #privacy-item.audio-in, |  | ||||||
| #privacy-item.audio-out, |  | ||||||
| #privacy-item.screenshare { |  | ||||||
|     background-color: #ffaa01; |  | ||||||
|     color: #2d3436; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| @import "sharp.css"; |  | ||||||
| 
 |  | ||||||
|  |  | ||||||
|  | @ -51,11 +51,15 @@ fi | ||||||
| alias cp='cp -i' | alias cp='cp -i' | ||||||
| alias df='df -h' | alias df='df -h' | ||||||
| alias free='free -m' | alias free='free -m' | ||||||
| alias gs='git status' | alias gs='git status --short' | ||||||
| alias hgrep='history | grep' | alias hgrep='history | grep' | ||||||
| alias ll='ls -la' | alias ll='ls -la' | ||||||
|  | alias mkdir='mkdir -pv' | ||||||
| alias more='less' | alias more='less' | ||||||
|  | alias mv='mv -i' | ||||||
| alias np='nano -w PKGBUILD' | alias np='nano -w PKGBUILD' | ||||||
|  | alias rm='rm -I --preserve-root' | ||||||
|  | alias zip='zip -r' | ||||||
| alias update='pushd ~/projects/sisyphus/nixos | alias update='pushd ~/projects/sisyphus/nixos | ||||||
| nix flake update | nix flake update | ||||||
| sudo nixos-rebuild switch --flake .# --show-trace | sudo nixos-rebuild switch --flake .# --show-trace | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue