dev #19
					 80 changed files with 12733 additions and 902 deletions
				
			
		
							
								
								
									
										2
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							|  | @ -1 +1,3 @@ | |||
| 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: | ||||
|   - &tdpeuter age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y | ||||
| 
 | ||||
|   - &server_H4G0 age1d4gvqz3anf082ja6xt03hnkzazfum80um9t45m4rerl4n3va2yuqgnsg03 | ||||
|   - &Tibo-NixFatDesk age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y | ||||
|   - &Tibo-NixTop age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37 | ||||
| 
 | ||||
| creation_rules: | ||||
|   - path_regex: secrets/[^/]+\.(yaml|json|env|ini)$ | ||||
|     key_groups: | ||||
|     - age: | ||||
|       - *tdpeuter | ||||
| 
 | ||||
|       - *server_H4G0 | ||||
| 
 | ||||
|       - *Tibo-NixFatDesk | ||||
|       - *Tibo-NixTop | ||||
|  |  | |||
							
								
								
									
										165
									
								
								nixos/flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										165
									
								
								nixos/flake.lock
									
										
									
										generated
									
									
									
								
							|  | @ -1,54 +1,15 @@ | |||
| { | ||||
|   "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": { | ||||
|       "inputs": { | ||||
|         "systems": "systems" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1701680307, | ||||
|         "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", | ||||
|         "lastModified": 1731533236, | ||||
|         "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", | ||||
|         "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", | ||||
|         "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|  | @ -64,16 +25,16 @@ | |||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1716736833, | ||||
|         "narHash": "sha256-rNObca6dm7Qs524O4st8VJH6pZ/Xe1gxl+Rx6mcWYo0=", | ||||
|         "lastModified": 1758463745, | ||||
|         "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "home-manager", | ||||
|         "rev": "a631666f5ec18271e86a5cde998cba68c33d9ac6", | ||||
|         "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nix-community", | ||||
|         "ref": "release-24.05", | ||||
|         "ref": "release-25.05", | ||||
|         "repo": "home-manager", | ||||
|         "type": "github" | ||||
|       } | ||||
|  | @ -86,11 +47,11 @@ | |||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1701208414, | ||||
|         "narHash": "sha256-xrQ0FyhwTZK6BwKhahIkUVZhMNk21IEI1nUcWSONtpo=", | ||||
|         "lastModified": 1720066371, | ||||
|         "narHash": "sha256-uPlLYH2S0ACj0IcgaK9Lsf4spmJoGejR9DotXiXSBZQ=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "nix-github-actions", | ||||
|         "rev": "93e39cc1a087d65bcf7a132e75a650c44dd2b734", | ||||
|         "rev": "622f829f5fe69310a866c8a6cd07e747c44ef820", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|  | @ -101,42 +62,26 @@ | |||
|     }, | ||||
|     "nixpkgs": { | ||||
|       "locked": { | ||||
|         "lastModified": 1717144377, | ||||
|         "narHash": "sha256-F/TKWETwB5RaR8owkPPi+SPJh83AQsm6KrQAlJ8v/uA=", | ||||
|         "lastModified": 1760862643, | ||||
|         "narHash": "sha256-PXwG0TM7Ek87DNx4LbGWuD93PbFeKAJs4FfALtp7Wo0=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "805a384895c696f802a9bf5bf4720f37385df547", | ||||
|         "rev": "33c6dca0c0cb31d6addcd34e90a63ad61826b28c", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "id": "nixpkgs", | ||||
|         "ref": "nixos-24.05", | ||||
|         "ref": "nixos-25.05", | ||||
|         "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": { | ||||
|       "locked": { | ||||
|         "lastModified": 1716948383, | ||||
|         "narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=", | ||||
|         "lastModified": 1760878510, | ||||
|         "narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "ad57eef4ef0659193044870c731987a6df5cf56b", | ||||
|         "rev": "5e2a59a5b1a82f89f2c7e598302a9cacebb72a67", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|  | @ -155,15 +100,15 @@ | |||
|           "nixpkgs" | ||||
|         ], | ||||
|         "poetry2nix": "poetry2nix", | ||||
|         "systems": "systems_3", | ||||
|         "systems": "systems_2", | ||||
|         "treefmt-nix": "treefmt-nix" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1701455376, | ||||
|         "narHash": "sha256-FMLrMdi6JY7ZfqV5XnNj64jnDcGKznKZLn7O6OMO3u0=", | ||||
|         "lastModified": 1758594056, | ||||
|         "narHash": "sha256-6XyKDRWqBngw1g73e789iyIaw/0VF04ELk/ATtlkTVU=", | ||||
|         "owner": "ThinkChaos", | ||||
|         "repo": "openconnect-sso", | ||||
|         "rev": "20c0015c4264c72cc19ac272de0dc534309bd21b", | ||||
|         "rev": "2041471efd331d0591d34e122aefb02690fb233a", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|  | @ -197,11 +142,11 @@ | |||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1701105783, | ||||
|         "narHash": "sha256-5IOI0xXGbhAkUZNNcPId48V78Q+/JlW0hzlif0zxRmM=", | ||||
|         "lastModified": 1721039874, | ||||
|         "narHash": "sha256-XANsG9GYHip8pxZpbqKf/YGv8tIa0xTh289Y+WNBNfw=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "poetry2nix", | ||||
|         "rev": "0b2bff39e9bd4e6db3208e09c276ca83a063b370", | ||||
|         "rev": "d11c01e58587e5f21037ed6477465a7f26a32e27", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|  | @ -212,29 +157,28 @@ | |||
|     }, | ||||
|     "root": { | ||||
|       "inputs": { | ||||
|         "devshell": "devshell", | ||||
|         "flake-utils": "flake-utils_2", | ||||
|         "flake-utils": "flake-utils", | ||||
|         "home-manager": "home-manager", | ||||
|         "nixpkgs": "nixpkgs", | ||||
|         "nixpkgs-unstable": "nixpkgs-unstable", | ||||
|         "openconnect-sso": "openconnect-sso", | ||||
|         "sops-nix": "sops-nix", | ||||
|         "utils": "utils" | ||||
|         "utils": "utils", | ||||
|         "zen-browser": "zen-browser" | ||||
|       } | ||||
|     }, | ||||
|     "sops-nix": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": [ | ||||
|           "nixpkgs" | ||||
|         ], | ||||
|         "nixpkgs-stable": "nixpkgs-stable" | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1717297459, | ||||
|         "narHash": "sha256-cZC2f68w5UrJ1f+2NWGV9Gx0dEYmxwomWN2B0lx0QRA=", | ||||
|         "lastModified": 1760998189, | ||||
|         "narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=", | ||||
|         "owner": "Mic92", | ||||
|         "repo": "sops-nix", | ||||
|         "rev": "ab2a43b0d21d1d37d4d5726a892f714eaeb4b075", | ||||
|         "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|  | @ -273,21 +217,6 @@ | |||
|         "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": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": [ | ||||
|  | @ -296,11 +225,11 @@ | |||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1699786194, | ||||
|         "narHash": "sha256-3h3EH1FXQkIeAuzaWB+nK0XK54uSD46pp+dMD3gAcB4=", | ||||
|         "lastModified": 1721769617, | ||||
|         "narHash": "sha256-6Pqa0bi5nV74IZcENKYRToRNM5obo1EQ+3ihtunJ014=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "treefmt-nix", | ||||
|         "rev": "e82f32aa7f06bbbd56d7b12186d555223dc399d1", | ||||
|         "rev": "8db8970be1fb8be9c845af7ebec53b699fe7e009", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|  | @ -316,11 +245,11 @@ | |||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1715533576, | ||||
|         "narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=", | ||||
|         "lastModified": 1738591040, | ||||
|         "narHash": "sha256-4WNeriUToshQ/L5J+dTSWC5OJIwT39SEP7V7oylndi8=", | ||||
|         "owner": "gytis-ivaskevicius", | ||||
|         "repo": "flake-utils-plus", | ||||
|         "rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f", | ||||
|         "rev": "afcb15b845e74ac5e998358709b2b5fe42a948d1", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|  | @ -328,6 +257,26 @@ | |||
|         "repo": "flake-utils-plus", | ||||
|         "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", | ||||
|  |  | |||
|  | @ -2,20 +2,16 @@ | |||
|   description = "System configuration of my machines using flakes"; | ||||
| 
 | ||||
|   inputs = { | ||||
|     nixpkgs.url = "nixpkgs/nixos-24.05"; | ||||
|     nixpkgs.url = "nixpkgs/nixos-25.05"; | ||||
|     nixpkgs-unstable.url = "nixpkgs/nixos-unstable"; | ||||
| 
 | ||||
|     devshell = { | ||||
|       url = "github:numtide/devshell"; | ||||
|       inputs.nixpkgs.follows = "nixpkgs"; | ||||
|     }; | ||||
|     flake-utils.url = "github:numtide/flake-utils"; | ||||
|     home-manager = { | ||||
|       url = "github:nix-community/home-manager/release-24.05"; | ||||
|       url = "github:nix-community/home-manager/release-25.05"; | ||||
|       inputs.nixpkgs.follows = "nixpkgs"; | ||||
|     }; | ||||
|     openconnect-sso = { | ||||
|       url = github:ThinkChaos/openconnect-sso/fix/nix-flake; | ||||
|       url = "github:ThinkChaos/openconnect-sso/fix/nix-flake"; | ||||
|       inputs = { | ||||
|         flake-utils.follows = "utils"; | ||||
|         nixpkgs.follows = "nixpkgs"; | ||||
|  | @ -29,23 +25,28 @@ | |||
|       url = "github:gytis-ivaskevicius/flake-utils-plus"; | ||||
|       inputs.flake-utils.follows = "flake-utils"; | ||||
|     }; | ||||
|     zen-browser = { | ||||
|       url = "github:youwen5/zen-browser-flake"; | ||||
|       inputs.nixpkgs.follows = "nixpkgs"; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   outputs = inputs@{ | ||||
|     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 | ||||
|       system = "x86_64-linux"; | ||||
|       system = utils.lib.system.x86_64-linux; | ||||
| 
 | ||||
|       unfreePackages = pkg: builtins.elem (nixpkgs.lib.getName pkg) [ | ||||
|         "corefonts" | ||||
|         "nvidia-settings" "nvidia-x11" "nvidia-persistenced" | ||||
|         "Oracle_VM_VirtualBox_Extension_Pack" | ||||
|         "Oracle_VirtualBox_Extension_Pack" | ||||
|         "spotify" | ||||
|         "steam" "steam-original" "steam-run" | ||||
|         "steam" "steam-unwrapped" "steam-run" | ||||
|         "vista-fonts" | ||||
|         "nvidia-persistenced" # Docker | ||||
|         "intel-ocl" | ||||
|         "libfprint-2-tod1-broadcom" | ||||
|       ]; | ||||
|     in | ||||
|     utils.lib.mkFlake { | ||||
|  | @ -71,10 +72,11 @@ | |||
|         }; | ||||
| 
 | ||||
|         modules = [ | ||||
|           home-manager.nixosModule | ||||
|           sops-nix.nixosModules.sops | ||||
|           ./modules | ||||
|           ./users | ||||
| 
 | ||||
|           home-manager.nixosModules.home-manager | ||||
|           sops-nix.nixosModules.sops | ||||
|         ]; | ||||
|       }; | ||||
| 
 | ||||
|  | @ -82,6 +84,7 @@ | |||
|         Tibo-NixDesk.modules = [ ./hosts/Tibo-NixDesk ]; | ||||
|         Tibo-NixFat.modules  = [ ./hosts/Tibo-NixFat  ]; | ||||
|         Tibo-NixTest.modules = [ ./hosts/Tibo-NixTest ]; | ||||
|         Tibo-NixTop.modules  = [ ./hosts/Tibo-NixTop  ]; | ||||
|       }; | ||||
|     }; | ||||
| } | ||||
|  |  | |||
|  | @ -6,7 +6,7 @@ | |||
|   ]; | ||||
| 
 | ||||
|   sisyphus = { | ||||
|     desktop.sway.enable = true; | ||||
|     desktop.hyprland.enable = true; | ||||
| 
 | ||||
|     hardware = { | ||||
|       nvidia = { | ||||
|  | @ -35,6 +35,7 @@ | |||
|     }; | ||||
| 
 | ||||
|     services = { | ||||
|       tailscale.enable = true; | ||||
|       pipewire.enable = true; | ||||
|       printing.enable = true; | ||||
|       openrgb.enable = true; | ||||
|  | @ -56,6 +57,8 @@ | |||
|         efiSysMountPoint = "/boot/efi"; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     plymouth.enable = true; | ||||
|   }; | ||||
| 
 | ||||
|   environment.systemPackages = with pkgs; [ | ||||
|  | @ -75,9 +78,9 @@ | |||
| 
 | ||||
|   networking.hostName = "Tibo-NixDesk"; | ||||
| 
 | ||||
|   services.xserver = { | ||||
|   services.xserver.xkb = { | ||||
|     layout = "us"; | ||||
|     xkbVariant = "altgr-intl"; | ||||
|     variant = "altgr-intl"; | ||||
|   }; | ||||
| 
 | ||||
|   system.stateVersion = "24.05"; | ||||
|  |  | |||
|  | @ -6,7 +6,10 @@ | |||
|   ]; | ||||
| 
 | ||||
|   sisyphus = { | ||||
|     desktop.sway.enable = true; | ||||
|     desktop = { | ||||
|       sway.enable = true; | ||||
|       hyprland.enable = true; | ||||
|     }; | ||||
| 
 | ||||
|     hardware = { | ||||
|       eid.enable = true; | ||||
|  | @ -19,7 +22,7 @@ | |||
| 
 | ||||
|     networking = { | ||||
|       networkmanager.enable = true; | ||||
|       # openconnect-sso.enable = true; | ||||
|       openconnect-sso.enable = true; | ||||
|     }; | ||||
| 
 | ||||
|     nix = { | ||||
|  | @ -87,14 +90,20 @@ | |||
|     powerOnBoot = false; | ||||
|   }; | ||||
|    | ||||
|   networking.hostName = "Tibo-NixFat"; | ||||
|   networking = { | ||||
|     hostName = "Tibo-NixFat"; | ||||
|     networkmanager.wifi.powersave = true; | ||||
|   }; | ||||
| 
 | ||||
|   services = { | ||||
|     # Handle the laptop lid switch as follows: | ||||
|     logind = { | ||||
|       # Handle the laptop lid switch as follows: | ||||
|       lidSwitch = "hybrid-sleep"; | ||||
|       lidSwitchExternalPower = "lock"; | ||||
|       lidSwitchDocked = "ignore"; | ||||
| 
 | ||||
|       # Handle the power key | ||||
|       powerKey = "suspend"; | ||||
|     }; | ||||
| 
 | ||||
|     xserver.xkb = { | ||||
|  | @ -105,10 +114,14 @@ | |||
| 
 | ||||
|     # Touchpad | ||||
|     libinput.enable = true; | ||||
| 
 | ||||
|     thermald.enable = true; | ||||
|   }; | ||||
| 
 | ||||
|   system.stateVersion = "24.05"; | ||||
| 
 | ||||
|   systemd.coredump.enable = false; | ||||
| 
 | ||||
|   time.timeZone = "Europe/Brussels"; | ||||
| 
 | ||||
|   # --- Barrier --- | ||||
|  |  | |||
|  | @ -8,22 +8,33 @@ | |||
|     (modulesPath + "/installer/scan/not-detected.nix") | ||||
|   ]; | ||||
| 
 | ||||
|   boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; | ||||
|   boot.initrd.kernelModules = [ ]; | ||||
|   boot.kernelModules = [ "kvm-intel" ]; | ||||
|   boot.extraModulePackages = [ ]; | ||||
|   boot = { | ||||
|     initrd = { | ||||
|       availableKernelModules = [ | ||||
|         "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"; | ||||
|       fsType = "ext4"; | ||||
|     }; | ||||
| 
 | ||||
|   boot.initrd.luks.devices."luks-c21cb4a4-f618-43af-bc0c-e8be74fe3b81".device = "/dev/disk/by-uuid/c21cb4a4-f618-43af-bc0c-e8be74fe3b81"; | ||||
| 
 | ||||
|   fileSystems."/boot/efi" = { | ||||
|     "/boot/efi" = { | ||||
|       device = "/dev/disk/by-label/NIX-BOOT"; | ||||
|       fsType = "vfat"; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   swapDevices = [ | ||||
|     { device = "/dev/disk/by-label/SWAP"; } | ||||
|  | @ -38,5 +49,9 @@ | |||
|   # networking.interfaces.wlp111s0.useDHCP = lib.mkDefault true; | ||||
| 
 | ||||
|   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 | ||||
|     ./plasma | ||||
|     ./sway | ||||
| 
 | ||||
|     ./waybar | ||||
|   ]; | ||||
| } | ||||
|  |  | |||
|  | @ -6,7 +6,14 @@ in { | |||
|   options.sisyphus.desktop.gnome.enable = lib.mkEnableOption "GNOME"; | ||||
| 
 | ||||
|   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; | ||||
| 
 | ||||
|         excludePackages = with pkgs; [ | ||||
|  | @ -15,45 +22,14 @@ in { | |||
| 
 | ||||
|         displayManager.gdm.enable = true; | ||||
|         desktopManager.gnome.enable = true; | ||||
| 
 | ||||
|         videoDrivers = [ "nvidia" ]; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     # Start a new instance of application instead of going to that window. | ||||
|     environment.systemPackages = with pkgs.gnomeExtensions; [ | ||||
|       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 | ||||
|   cfg = config.sisyphus.desktop.hyprland; | ||||
|  | @ -6,10 +6,57 @@ in { | |||
|   options.sisyphus.desktop.hyprland.enable = lib.mkEnableOption "Hyprland"; | ||||
| 
 | ||||
|   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 = { | ||||
|       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"; | ||||
| 
 | ||||
|   config = lib.mkIf cfg.enable { | ||||
|     services.xserver = { | ||||
|       enable = true; | ||||
| 
 | ||||
|     services = { | ||||
|       displayManager = { | ||||
|         defaultSession = "plasmawayland"; | ||||
|         defaultSession = "plasma"; | ||||
|         sddm = { | ||||
|           enable = true; | ||||
|           wayland.enable = true; | ||||
|           # 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; | ||||
|         useQtScaling = true; | ||||
|       }; | ||||
|        | ||||
|         excludePackages = with pkgs; [ | ||||
|           xterm | ||||
|         ]; | ||||
|         videoDrivers = [ "nvidia" ]; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     environment.plasma5.excludePackages = with pkgs.libsForQt5; [ | ||||
|     environment.plasma6.excludePackages = with pkgs.kdePackages; [ | ||||
|       elisa | ||||
|       okular | ||||
|       gwenview | ||||
|       kate | ||||
|       khelpcenter | ||||
|       konsole | ||||
|       print-manager | ||||
|       kwalletmanager | ||||
|       okular | ||||
|       plasma-systemmonitor | ||||
|       gwenview | ||||
|       print-manager | ||||
|     ]; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -65,24 +65,28 @@ in { | |||
| 
 | ||||
|   config = lib.mkIf cfg.enable { | ||||
|     environment.systemPackages = (with pkgs; [ | ||||
|       # Window manager related | ||||
|       dbus-sway-environment | ||||
|       configure-gtk | ||||
|       wayland | ||||
|       xdg-utils # Open with default program | ||||
|       glib      # gsettings | ||||
|       wl-clipboard | ||||
|       wl-clipboard # Copying to system clipboard in vim | ||||
|       wl-mirror # Mirror an output | ||||
|       wdisplays # Tool to configure displays | ||||
| 
 | ||||
|       # Desktop Environment related | ||||
|       brightnessctl | ||||
|       dunst | ||||
|       libnotify | ||||
|       playerctl | ||||
|       swaybg | ||||
|       swaylock-effects | ||||
|       waybar | ||||
|       wlsunset | ||||
|       waycorner | ||||
| 
 | ||||
|       # TODO Turn into own module/package? | ||||
|       dmenu | ||||
|       jq | ||||
|       j4-dmenu-desktop | ||||
|       rofi | ||||
|  | @ -91,6 +95,7 @@ in { | |||
|     ]); | ||||
| 
 | ||||
|     environment.sessionVariables = { | ||||
|       ASSETS_DIR = ../../../../assets; | ||||
|       SCRIPT_DIR = ../../../../scripts; | ||||
|     }; | ||||
| 
 | ||||
|  | @ -98,54 +103,45 @@ in { | |||
|       dejavu_fonts | ||||
|       font-awesome | ||||
|       noto-fonts | ||||
|       noto-fonts-cjk | ||||
|       noto-fonts-cjk-sans | ||||
|       noto-fonts-cjk-serif | ||||
|       noto-fonts-emoji | ||||
|       source-han-sans | ||||
|       source-han-sans-japanese | ||||
|       source-han-serif-japanese | ||||
|     ]; | ||||
| 
 | ||||
|     security.polkit.enable = true; | ||||
|     hardware.graphics.enable = true; | ||||
| 
 | ||||
|     services = { | ||||
|       atd.enable = true; # Required by sunset.sh | ||||
|       dbus.enable = true; | ||||
|       displayManager.ly.enable = true; | ||||
|       gnome.gnome-keyring.enable = true; | ||||
| 
 | ||||
|       pipewire = { | ||||
|         enable = true; | ||||
|         alsa.enable = true; | ||||
|         pulse.enable = true; | ||||
|       }; | ||||
| 
 | ||||
|       power-profiles-daemon.enable = true; | ||||
| 
 | ||||
|       xserver = { | ||||
|         displayManager.session = [{ | ||||
|           manage = "window"; | ||||
|           name = "Sway"; | ||||
|           start = '' | ||||
|             ${pkgs.sway}/bin/sway --unsupported-gpu & | ||||
|             waitPID=$! | ||||
|           ''; | ||||
|         }]; | ||||
|         videoDrivers = [ "nouveau" ]; | ||||
|       }; | ||||
|       xserver.videoDrivers = [ "nouveau" ]; | ||||
|       # xserver.videoDrivers = [ "nvidia" ]; | ||||
|     }; | ||||
| 
 | ||||
|     xdg.portal = { | ||||
|       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 = { | ||||
|       enable = true; | ||||
|       package = pkgs.swayfx; | ||||
|       wrapperFeatures.gtk = true; | ||||
|     }; | ||||
| 
 | ||||
|     sisyphus.users.wantedGroups = [ | ||||
|     sisyphus = { | ||||
|       desktop.waybar.enable = true; | ||||
| 
 | ||||
|       users.wantedGroups = [ | ||||
|         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 = [ | ||||
|     ./eid | ||||
|     ./fingerprint-scanner | ||||
|     ./nvidia | ||||
|     ./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 { | ||||
| #    boot = { | ||||
| #      extraModprobeConfig = "options nvidia-drm modeset=1"; | ||||
| # | ||||
| #      initrd.kernelModules = [ | ||||
| #        "nvidia" | ||||
| #        "nvidia_modeset" | ||||
| #        "nvidia_uvm" | ||||
| #        "nvidia_drm" | ||||
| #      ]; | ||||
| #    }; | ||||
|     boot = { | ||||
|       extraModprobeConfig = '' | ||||
|         options nvidia-drm modeset=1 | ||||
|       ''; | ||||
|       kernelParams = [ | ||||
|         "nvidia_drm.modeset=1" | ||||
|       ]; | ||||
|     }; | ||||
| 
 | ||||
|     hardware = { | ||||
|       opengl = { | ||||
|       graphics = { | ||||
|         enable = true; | ||||
|         driSupport = true; | ||||
|         driSupport32Bit = true; | ||||
|         enable32Bit = true; | ||||
|         extraPackages = with pkgs; [ | ||||
|           intel-ocl | ||||
|           intel-compute-runtime | ||||
|           opencl-clhpp | ||||
|           opencl-clang | ||||
|           opencl-headers | ||||
|           ocl-icd | ||||
|         ]; | ||||
|       }; | ||||
| 
 | ||||
|       nvidia = { | ||||
|         # Use the NVidia open source kernel module (or not) | ||||
|         open = false; | ||||
|         package = config.boot.kernelPackages.nvidiaPackages.stable; | ||||
|         # Modesetting is required. | ||||
|         modesetting.enable = true; | ||||
|         nvidiaSettings = cfg.gui-settings; | ||||
|         powerManagement = { | ||||
|  |  | |||
|  | @ -25,11 +25,17 @@ in { | |||
|     ]; | ||||
| 
 | ||||
|     # Send a notification if the YubiKey is waiting for touch. | ||||
|     systemd.user.services.yubikey-touch-detector = { | ||||
|     systemd.services.yubikey-touch-detector = { | ||||
|       enable = true; | ||||
|       description = "Detects when your YubiKey is waiting for a touch"; | ||||
|       path = with pkgs; [ yubikey-touch-detector ]; | ||||
|       script = ''exec yubikey-touch-detector --notify''; | ||||
|       path = with pkgs; [ | ||||
|         gnupg | ||||
|         yubikey-touch-detector | ||||
|       ]; | ||||
|       wantedBy = [ | ||||
|         "graphical-session.target" | ||||
|       ]; | ||||
|       script = ''exec yubikey-touch-detector --libnotify''; | ||||
|       environment.YUBIKEY_TOUCH_DETECTOR_LIBNOTIFY = "true"; | ||||
|     }; | ||||
|   }; | ||||
|  |  | |||
|  | @ -9,6 +9,6 @@ in { | |||
|     extraOptions = '' | ||||
|       experimental-features = nix-command flakes | ||||
|     ''; | ||||
|     package = pkgs.nixFlakes; | ||||
|     package = pkgs.nixVersions.stable; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -8,7 +8,7 @@ in { | |||
|   config = lib.mkIf cfg.enable { | ||||
|     programs.direnv = { | ||||
|       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. | ||||
|  |  | |||
|  | @ -14,8 +14,8 @@ in { | |||
|       # Add secrets.yml to the Nix Store. | ||||
|       defaultSopsFile = ../../../secrets/secrets.yaml; | ||||
|       age = { | ||||
|         # Automatically import SSH keys as age keys. | ||||
|         sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; | ||||
|         # Don't derive age keys from SSH keys. | ||||
|         sshKeyPaths = [ ]; | ||||
|         # Use an age key that is expected to already be in the filesystem. | ||||
|         # You will need to place this file manually. | ||||
|         keyFile = "/var/lib/sops-nix/key.txt"; | ||||
|  |  | |||
|  | @ -5,6 +5,7 @@ | |||
|     ./openssh | ||||
|     ./pipewire | ||||
|     ./printing | ||||
|     ./remEYEnder | ||||
|     ./tailscale | ||||
|   ]; | ||||
| } | ||||
|  |  | |||
|  | @ -6,8 +6,6 @@ in { | |||
|   options.sisyphus.services.pipewire.enable = lib.mkEnableOption "Pipewire"; | ||||
| 
 | ||||
|   config = lib.mkIf cfg.enable { | ||||
|     sound.enable = true; | ||||
|     hardware.pulseaudio.enable = false; | ||||
|     security.rtkit.enable = true; | ||||
|     services.pipewire = { | ||||
|       enable = true; | ||||
|  | @ -20,6 +18,24 @@ in { | |||
|       # 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) | ||||
|       #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; | ||||
|       avahi = { | ||||
|         enable = true; | ||||
|         nssmdns = true; | ||||
|         nssmdns4 = 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; | ||||
|       # Because these are made for development purposes and not for servers | ||||
|       enableOnBoot = false; | ||||
| 
 | ||||
|       daemon.settings.features.cdi = true; | ||||
|     }; | ||||
| 
 | ||||
|     # Updated version of deprecated enableNvidia. | ||||
|     hardware.nvidia-container-toolkit.enable = true; | ||||
| 
 | ||||
|     sisyphus.users.wantedGroups = [ | ||||
|       "docker" | ||||
|     ]; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,35 +1,24 @@ | |||
| { config, lib, pkgs, ... }: | ||||
| { config, lib, pkgs-unstable, ... }: | ||||
| 
 | ||||
| let | ||||
|   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 { | ||||
|   options.sisyphus.virtualisation.virtualbox.enable = lib.mkEnableOption "VirtualBox"; | ||||
| 
 | ||||
|   config = lib.mkIf cfg.enable { | ||||
|     virtualisation.virtualbox = { | ||||
|       host = { | ||||
|     virtualisation.virtualbox.host = { | ||||
|       enable = true; | ||||
|       enableExtensionPack = true; | ||||
|         package = virtualbox-override; | ||||
|       }; | ||||
|       guest = { | ||||
|         enable = true; | ||||
|         clipboard = true; | ||||
|         seamless = true; | ||||
|       }; | ||||
|       enableHardening = true; | ||||
|       package = pkgs-unstable.virtualbox; | ||||
|     }; | ||||
| 
 | ||||
| 
 | ||||
|     # 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 | ||||
|     users.groups.vboxusers = {}; | ||||
| 
 | ||||
|  |  | |||
|  | @ -9,7 +9,7 @@ final: prev: { | |||
|       sha256 = "sha256-UzpHAHpQx2MlmBNKm2turjeVmgp5zXKWm3nZbEo0mYE="; | ||||
|     }; | ||||
| 
 | ||||
|     cargoHash = "sha256-oHfk68mAIcmOenW7jn71Xpt8hWVDtxyInWhVN2rH+kk="; | ||||
|     cargoHash = "sha256-oGpe+kBf6kBboyx/YfbQBt1vvjtXd1n2pOH6FNcbF8M="; | ||||
| 
 | ||||
|     buildInputs = with final; [ | ||||
|       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: | ||||
|         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: | ||||
|     kms: [] | ||||
|     gcp_kms: [] | ||||
|     azure_kv: [] | ||||
|     hc_vault: [] | ||||
|     age: | ||||
|         - recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y | ||||
|           enc: | | ||||
|             -----BEGIN AGE ENCRYPTED FILE----- | ||||
|             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYWWFUdnpERVlkK29TQ09k | ||||
|             SnJMVm5rUEV6S0huSzJ2YjFFQ3pNR0pmZWprClZEVDloeDE2ODNkMVVJTUtqaENz | ||||
|             ZzhwTTA4V2xOeW55WGtPZU5FWElQNDAKLS0tIFh5ZWtmZHRBWTAvM3ZwY3pKQ0R6 | ||||
|             aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A | ||||
|             dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w== | ||||
|             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpb0dlWE5PNllnME1jQWE4 | ||||
|             cHFzWkR4ZzNaWlR0WDJ4c1hEdlJGN0FISWlZCmNNdVRtL080QzgwQTZtTGpVRkxW | ||||
|             dkdvYXdQNUlhYWQrYlNDR2JISXdpdkkKLS0tIEpIU20rK3F3WGpBS1g3NmJqYWRX | ||||
|             SWlNbFZ0NTJJZ09Wd3JzK1hscjJoS2MK4GU8ndim80CaOjgvMwVlgIq/1VQIylSZ | ||||
|             EJl15zUFaDiDZUCcZE8TkJQ/rbGDSiq7KlWyFe48Q3UC86jfF88qCg== | ||||
|             -----END AGE ENCRYPTED FILE----- | ||||
|     lastmodified: "2023-10-10T06:57:11Z" | ||||
|     mac: ENC[AES256_GCM,data:Tvwv2mqceAxi7ic3+95Y6hBMHjqVoCkYnTkEsXOrhumgXpuuB/QQ0ASEf6gbgkCLXGwnUAXsK41bIIJfFgYSk89fHw6AaXfs6a+zL2Mh5zkhMIE2bm68mFK8+/TX/e8SibbEwNZCKOcPqvaO6nK816KCmh3KKCbT9ObaB6CA/KI=,iv:YPKgYAnQ135JXou7q9jVN7b3SKIDwceKcbqiIjkqnTU=,tag:udPrEVu2F+hWkhNoEyjTYg==,type:str] | ||||
|     pgp: [] | ||||
|         - recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37 | ||||
|           enc: | | ||||
|             -----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 | ||||
|     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:LVU1a90=,iv:1X1qV+8iIe1i5hIrqyB3tJew9hsHjJHlATmkEmwRA0Y=,tag:ko/5OwmJH/6HKPsvbkoRpw==,type:bool] | ||||
| sops: | ||||
|     kms: [] | ||||
|     gcp_kms: [] | ||||
|     azure_kv: [] | ||||
|     hc_vault: [] | ||||
|     age: | ||||
|         - recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y | ||||
|           enc: | | ||||
|             -----BEGIN AGE ENCRYPTED FILE----- | ||||
|             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3ekx1bzluY0ZhYmhnRmhW | ||||
|             b3pzM2RlKzFrREpMK3RNU1MweldNRXJ5NjE4CmNRbnFvbk1EN0V0ZWJiVzFmL3Jt | ||||
|             N1Vpb3NEdXFzdzU4MjN1elp1RWZ5THcKLS0tIDR4cTFJNVFveEdxaEYvZndKbURa | ||||
|             UHpaNENhL3c1K3RXc05hUmdNZVBpT2MKwBj4+Gb7giVJIoPWiwY3tvugEAexXy6Q | ||||
|             YTWgZQZk96r5aF2mBjRCFCc7prj85PsUN/UXOPjPLVAFG3lwS0Eaog== | ||||
|             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4KzMrV2dpWFQyQUQyV050 | ||||
|             elVhN0dUeTRodG1kNHZ0VEVmTUI1QjhidFJnClhJU0tVY0tmMkFaMDZkMDJOKzV1 | ||||
|             NVJiSERtR0VZR3VBOGVJbGk3cUxTMzAKLS0tIGhvMmIyOWQwVlhXRzYwampTeG5V | ||||
|             UDVWQnE4NDY5cFF3RnpxcjhMY2N0VUUK+B24C0CT5b82DJSdKotX4iPhzWxnYsn6 | ||||
|             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----- | ||||
|     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] | ||||
|     pgp: [] | ||||
|     unencrypted_suffix: _unencrypted | ||||
|     version: 3.7.3 | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| { config, lib, pkgs, pkgs-unstable, ... }: | ||||
| { config, inputs, lib, pkgs, pkgs-unstable, ... }: | ||||
| 
 | ||||
| let | ||||
|   cfg = config.sisyphus.users.tdpeuter; | ||||
|  | @ -8,7 +8,7 @@ let | |||
| 
 | ||||
|   cursor = { | ||||
|     package = pkgs.phinger-cursors; | ||||
|     name = "phinger-cursors"; | ||||
|     name = "phinger-cursors-light"; | ||||
|     size = 24; | ||||
|   }; | ||||
| in { | ||||
|  | @ -33,19 +33,68 @@ in { | |||
|       ]; | ||||
|       initialPassword = "ChangeMe"; | ||||
|       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; [ | ||||
|       corefonts              # Calibri for Uni | ||||
|       dejavu_fonts | ||||
|       font-awesome           # Dependency of Vifm & zsh config | ||||
|       letter                 # Personal font | ||||
|       noto-fonts-cjk        # 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 | ||||
|     ]; | ||||
| 
 | ||||
|     sisyphus = { | ||||
|       programs.spotify-adblock.enable = true; | ||||
|       services.remEYEnder.enable = true; | ||||
|     }; | ||||
| 
 | ||||
|     home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable { | ||||
|  | @ -56,46 +105,13 @@ in { | |||
|         homeDirectory = "/home/${user}"; | ||||
|         inherit (config.system) stateVersion; | ||||
| 
 | ||||
|         packages = (with pkgs; [ | ||||
|           cmdtime               # Zsh plugin | ||||
|           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 | ||||
|         ]); | ||||
|         # packages = (with pkgs; [ | ||||
|         # ]) ++ (with pkgs-unstable; [ | ||||
|         # ]); | ||||
| 
 | ||||
|         pointerCursor = { | ||||
|           inherit (cursor) package name size; | ||||
|           gtk.enable = true; | ||||
|           x11.enable = true; | ||||
|         }; | ||||
|       }; | ||||
| 
 | ||||
|  | @ -126,9 +142,12 @@ in { | |||
|         }; | ||||
|       }; | ||||
| 
 | ||||
|       gtk = { | ||||
|       services.syncthing = { | ||||
|         enable = true; | ||||
|         cursorTheme = cursor; | ||||
|         extraOptions = [ | ||||
|           "--no-default-folder" | ||||
|         ]; | ||||
|         tray.enable = true; | ||||
|       }; | ||||
| 
 | ||||
|       xdg = { | ||||
|  |  | |||
|  | @ -17,7 +17,7 @@ in { | |||
|               source = ../../../stow/alacritty/.config/alacritty; | ||||
|             }; | ||||
|             ".config/dunst" = { | ||||
|               inherit (config.sisyphus.desktop.sway) enable; | ||||
|               enable = config.sisyphus.desktop.hyprland.enable || config.sisyphus.desktop.sway.enable; | ||||
|               source = ../../../stow/dunst/.config/dunst; | ||||
|             }; | ||||
|             ".config/foot" = { | ||||
|  | @ -32,6 +32,11 @@ in { | |||
|               recursive = true; | ||||
|               source = ../../../stow/git/.config/git; | ||||
|             }; | ||||
|             ".config/hypr" = { | ||||
|               inherit (config.sisyphus.desktop.hyprland) enable; | ||||
|               recursive = true; | ||||
|               source = ../../../stow/hyprland/.config/hypr; | ||||
|             }; | ||||
|             ".config/kitty" = { | ||||
|               enable = false; | ||||
|               recursive = true; | ||||
|  | @ -58,7 +63,7 @@ in { | |||
|               source = ../../../stow/swayidle/.config/swayidle; | ||||
|             }; | ||||
|             ".config/swaylock" = { | ||||
|               inherit (config.sisyphus.desktop.sway) enable; | ||||
|               enable = config.sisyphus.desktop.sway.enable || config.sisyphus.desktop.hyprland.enable; | ||||
|               source = ../../../stow/swaylock/.config/swaylock; | ||||
|             }; | ||||
|             ".config/vifm" = { | ||||
|  | @ -66,20 +71,20 @@ in { | |||
|               source = ../../../stow/vifm/.config/vifm; | ||||
|             }; | ||||
|             ".config/waybar" = { | ||||
|               inherit (config.sisyphus.desktop.sway) enable; | ||||
|               enable = config.sisyphus.desktop.sway.enable || config.sisyphus.desktop.hyprland.enable; | ||||
|               source = ../../../stow/waybar/.config/waybar; | ||||
|             }; | ||||
|             ".config/zellij" = { | ||||
|               source = ../../../stow/zellij/.config/zellij; | ||||
|             }; | ||||
|             ".oh-my-zsh" = { | ||||
|               enable = config.users.users.tdpeuter.shell == pkgs.zsh; | ||||
|               source = "${pkgs.oh-my-zsh}/share/oh-my-zsh"; | ||||
|             ".gnupg" = { | ||||
|               inherit (config.programs.gnupg.agent) enable; | ||||
|               source = ../../../stow/gnupg/.gnupg; | ||||
|               recursive = true; | ||||
|             }; | ||||
|             ".oh-my-zsh/themes/tdpeuter.zsh-theme" = { | ||||
|               enable = config.users.users.tdpeuter.shell == pkgs.zsh; | ||||
|               source = ../../../stow/zsh/.oh-my-zsh/themes/tdpeuter.zsh-theme; | ||||
|               onChange = '' | ||||
|                 chmod 700 /home/tdpeuter/.gnupg | ||||
|                 # chmod 600 /home/tdpeuter/.gnupg/* # Already read-only? | ||||
|               ''; | ||||
|             }; | ||||
|             ".ssh/config" = lib.mkIf 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) { | ||||
|             ".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" = { | ||||
|               source = ../../../stow/zsh/.zshrc; | ||||
|             }; | ||||
|  |  | |||
|  | @ -14,11 +14,38 @@ in { | |||
|         nativeMessagingHosts = with pkgs; [ | ||||
|           tridactyl-native | ||||
|         ]; | ||||
|         # https://mozilla.github.io/policy-templates/ | ||||
|         extraPolicies = { | ||||
|           DisableFirefoxStudies = true; | ||||
|           DisablePocket = true; | ||||
|           DisableTelemetry = true; | ||||
|           FirefoxHome = { | ||||
|             SponsoredTopSites = false; | ||||
|             SponsoredPocket = 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 | ||||
|  | @ -27,26 +54,18 @@ in { | |||
|         ]; | ||||
|       }; | ||||
| 
 | ||||
|       languagePacks = [ | ||||
|         "en-GB" | ||||
|         "nl" | ||||
|       ]; | ||||
| 
 | ||||
|       profiles.tdpeuter.search= { | ||||
|         default = "DuckDuckGo"; | ||||
|         default = "ddg"; # Reference by id instead of by name | ||||
|         force = true; | ||||
|         engines = { | ||||
|           "Bing".metaData.hidden = true; | ||||
|           "eBay".metaData.hidden = true; | ||||
|           "Qwant".metaData.hidden = true; | ||||
|           "bing".metaData.hidden = true; | ||||
|           "ebay".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" = { | ||||
|             urls = [{ | ||||
|               template = "https://github.com/search"; | ||||
|  | @ -59,6 +78,39 @@ in { | |||
|             icon = "${pkgs.icosystem}/share/icons/icosystem/scalable/apps/github-mark.svg"; | ||||
|             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 | ||||
|       Tibo De Peuter | ||||
|     ''; | ||||
|     UGent = '' | ||||
|     english = '' | ||||
|       Kind regards | ||||
|       Tibo De Peuter | ||||
|     ''; | ||||
|     academic = '' | ||||
|       Met vriendelijke groeten | ||||
|       Tibo De Peuter | ||||
|        | ||||
|       Student 2Ba/3Ba Informatica | ||||
|       Student Ma Informatica | ||||
|     ''; | ||||
|     MrFortem = '' | ||||
|     alias = '' | ||||
|       Kind regards | ||||
|       MrFortem Fiducia | ||||
|     ''; | ||||
|  | @ -61,7 +65,7 @@ in { | |||
|           realName = config.users.users.tdpeuter.description; | ||||
|           signature = { | ||||
|             showSignature = "append"; | ||||
|             text = signatures.UGent; | ||||
|             text = signatures.academic; | ||||
|           }; | ||||
| 
 | ||||
|           thunderbird = { | ||||
|  | @ -69,7 +73,7 @@ in { | |||
|             settings = id: { | ||||
|               "mail.server.server_${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 | ||||
|               "mail.identity.id_${id}.openpgp_key_id" = "9B11F5243089DB5B"; # Your 'master' key | ||||
|  | @ -109,7 +113,7 @@ in { | |||
|             settings = id: { | ||||
|               "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.identity.id_${id}.htmlSigText" = signatures.MrFortem; | ||||
|               "mail.identity.id_${id}.htmlSigText" = signatures.alias; | ||||
|             }; | ||||
|           }; | ||||
|         }; | ||||
|  |  | |||
|  | @ -7,9 +7,14 @@ in { | |||
|   config = lib.mkIf cfg.enable { | ||||
|     sops.secrets = lib.mkIf config.sisyphus.programs.sops.enable ( | ||||
|       let | ||||
|         Hugo = { | ||||
|         HomeLab = { | ||||
|           format = "yaml"; | ||||
|           sopsFile = ../../secrets/Hugo.yaml; | ||||
|           sopsFile = ../../secrets/HomeLab.yaml; | ||||
|           owner = user; | ||||
|         }; | ||||
|         personal = { | ||||
|           format = "yaml"; | ||||
|           sopsFile = ../../secrets/personal.yaml; | ||||
|           owner = user; | ||||
|         }; | ||||
|         UGent = { | ||||
|  | @ -18,17 +23,26 @@ in { | |||
|           owner = user; | ||||
|         }; | ||||
|       in { | ||||
|         "Hugo/ssh" = Hugo; | ||||
|         "UGent/HPC/ssh" = UGent; | ||||
| 
 | ||||
|         "GitHub/ssh" = { | ||||
|           format = "yaml"; | ||||
|           sopsFile = ../../secrets/GitHub.yaml; | ||||
|           owner = user; | ||||
|         }; | ||||
|         "Hugo/Gitea/ssh" = Hugo; | ||||
|         # Git authentication | ||||
|         "Gitea/ssh" = personal; | ||||
|         "GitHub/ssh" = personal; | ||||
|         "UGent/GitHub/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) | ||||
|             # Get volume (don't use pamixer because that is way slower) | ||||
|             value=$( amixer sget 'Master' \ | ||||
|                 | grep -o '\[[0-9]*%\]' \ | ||||
|                 | tr -d '][%' \ | ||||
|             value=$( pactl get-sink-volume @DEFAULT_SINK@ \ | ||||
|                 | grep -o '[0-9]*%' \ | ||||
|                 | tr -d '%' \ | ||||
|                 | head -n1 ) | ||||
|             title="Volume: ${value}%" | ||||
|             category='sysinfo' | ||||
| 
 | ||||
|             # 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)" | ||||
|                 value=0 | ||||
|             fi | ||||
|  |  | |||
|  | @ -48,14 +48,14 @@ while getopts ":m:g" option; do | |||
|             fi | ||||
|             ;; | ||||
|         g) | ||||
|             previous_theme="$(cat ${STATE_FILE})" | ||||
|             if [ "${previous_theme}" == "${THEME_LIGHT}" ]; then | ||||
|                 class="activated" | ||||
|                 percentage=1 | ||||
|             else | ||||
|                 percentage=0 | ||||
|             current_state="$(cat "${STATE_FILE}")" | ||||
|             next_state="${theme_next[${current_state}]}" | ||||
|             if [ "${current_state}" == "${THEME_DARK}" ]; then | ||||
|                 class='activated' | ||||
|                 percentage=100 | ||||
|             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 | ||||
|             ;; | ||||
|         *) | ||||
|  | @ -119,7 +119,12 @@ fi | |||
| # Sway | ||||
| if [ "$(command -v swaybg)" ]; then | ||||
|     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 | ||||
| 
 | ||||
| # 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-chars=<COLSxROWS> | ||||
| # initial-window-mode=windowed | ||||
| pad=10x10                             # optionally append 'center' | ||||
| #pad=10x10                             # optionally append 'center' | ||||
| # resize-delay-ms=100 | ||||
| 
 | ||||
| # 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 | ||||
|     User vsc44995 | ||||
|     HostName login.hpc.ugent.be | ||||
|  | @ -15,7 +9,7 @@ Host git.depeuter.dev | |||
|     User git | ||||
|     HostName git.depeuter.dev | ||||
|     IdentitiesOnly yes | ||||
|     IdentityFile /run/secrets/Hugo/Gitea/ssh | ||||
|     IdentityFile /run/secrets/Gitea/ssh | ||||
| 
 | ||||
| Host github.com | ||||
|     User git | ||||
|  | @ -36,3 +30,60 @@ Host subgit.ugent.be | |||
|     IdentityFile /run/secrets/UGent/SubGit/ssh | ||||
|     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 dunst --verbosity crit                            # Notification manager | ||||
| exec swayidle -w | ||||
| exec waycorner | ||||
| 
 | ||||
| exec nextcloud --background | ||||
| 
 | ||||
| # SwayFX | ||||
| blur enable | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| input type:keyboard { | ||||
|     xkb_layout  "us" | ||||
|     xkb_variant "altgr-intl" | ||||
|     xkb_layout  "us","be" | ||||
|     xkb_variant "altgr-intl","iso-alternate" | ||||
| } | ||||
| 
 | ||||
| input type:touchpad { | ||||
|  |  | |||
|  | @ -1,7 +1,8 @@ | |||
| set $notify ~/projects/sisyphus/scripts/notify.sh | ||||
| 
 | ||||
| # Focus | ||||
| bindsym { | ||||
| 
 | ||||
|     # Focus | ||||
|     $flag+$up    focus up | ||||
|     $flag+$right focus right | ||||
|     $flag+$down  focus down | ||||
|  | @ -14,10 +15,8 @@ bindsym { | |||
| 
 | ||||
|     $flag+p      focus parent | ||||
|     $flag+space  focus mode_toggle | ||||
| } | ||||
| 
 | ||||
| # Move windows | ||||
| bindsym { | ||||
|     # Move windows | ||||
|     $flag+Shift+$up     move up | ||||
|     $flag+Shift+$right  move right | ||||
|     $flag+Shift+$down   move down | ||||
|  | @ -32,10 +31,8 @@ bindsym { | |||
|     $flag+KP_Next       move scratchpad | ||||
|     $flag+Prior         scratchpad show | ||||
|     $flag+KP_Prior      scratchpad show | ||||
| } | ||||
| 
 | ||||
| # Layouts | ||||
| bindsym { | ||||
|     # Layouts | ||||
|     $flag+z       layout toggle split | ||||
|     $flag+x       layout tabbed | ||||
|     $flag+c       split h | ||||
|  | @ -212,6 +209,8 @@ bindsym { | |||
|     $flag+q        kill | ||||
|     # Start a terminal | ||||
|     $flag+Return   exec $term | ||||
|     Control+$alt+t exec $term | ||||
| 
 | ||||
|     $alt+space     exec $menu | ||||
|     $alt+Tab       focus prev | ||||
|     $flag+Tab      exec $window_switcher | ||||
|  | @ -224,8 +223,6 @@ bindsym { | |||
|      | ||||
|     # File explorer | ||||
|     $flag+e        exec $term -e vifm | ||||
|     # Internet browser | ||||
|     $flag+i      exec firefox | ||||
| } | ||||
| 
 | ||||
| bindgesture { | ||||
|  |  | |||
|  | @ -5,9 +5,10 @@ | |||
| set $default "default" | ||||
| 
 | ||||
| # Resizing | ||||
| set $resize "Resize" | ||||
| bindsym $flag+r mode $resize | ||||
| mode $resize bindsym { | ||||
| set $mode_resize "Resize" | ||||
| bindsym $flag+r mode $mode_resize | ||||
| mode $mode_resize { | ||||
|     bindsym { | ||||
|         $right       resize grow   width  10 px or 10 ppt | ||||
|         $up          resize grow   height 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+Down   move down | ||||
| 
 | ||||
|     Return       mode $default | ||||
|     Escape       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 | ||||
|  | @ -53,9 +62,23 @@ mode $mode_system bindsym { | |||
|     r                   mode $default, exec systemctl reboot | ||||
|     Shift+s             mode $default, exec systemctl poweroff -i | ||||
| 
 | ||||
|     Return              mode $default | ||||
|     Escape              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 | ||||
|  | @ -72,20 +95,23 @@ mode $mode_screenshot bindsym { | |||
|     Shift+s 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 | ||||
|     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 | ||||
| # Launcher | ||||
| set $mode_launcher "Launch (f)irefox, (s)potify or (t)hunderbird." | ||||
| bindsym $flag+o mode $mode_launcher | ||||
| mode $mode_launcher bindsym { | ||||
|     f   exec firefox,     mode $default | ||||
|     t   exec thunderbird, mode $default | ||||
| 
 | ||||
|     Return      mode $default | ||||
|     $flag+o mode $default | ||||
|     Escape  mode $default | ||||
|     $alt+end    mode $default | ||||
|     $alt+KP_End mode $default | ||||
|     Return  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 | ||||
| hide_edge_borders smart | ||||
| smart_borders on | ||||
| gaps { | ||||
|     inner 5 | ||||
|     outer 3 | ||||
| } | ||||
| 
 | ||||
| # Mimic no titles by setting the text color to background color | ||||
| #                       border  backgr. text    indic.  child_border | ||||
|  |  | |||
|  | @ -2,41 +2,55 @@ | |||
| # .config/swaylock/config | ||||
| #  | ||||
| 
 | ||||
| indicator | ||||
| indicator-radius=200 | ||||
| #indicator | ||||
| #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 | ||||
| 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 | ||||
| image=${ASSETS_DIR}/bluescreen.png | ||||
| 
 | ||||
| # Styling | ||||
| 
 | ||||
| color=000000 # The default background color when no image could be loaded | ||||
| 
 | ||||
| font=letter extended | ||||
| text-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 | ||||
| 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-clear-color=00000000 | ||||
| inside-caps-lock-color=00000000 | ||||
| inside-ver-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 | ||||
| 
 | ||||
|  |  | |||
|  | @ -25,8 +25,7 @@ set smarttab | |||
| set tabstop=4 | ||||
| set title | ||||
| set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx | ||||
| "" Show suggestions on another line instead of inplace | ||||
| set wildmenu | ||||
| set wildmenu "" Show suggestions on another line instead of inplace | ||||
| 
 | ||||
| syntax enable | ||||
| 
 | ||||
|  | @ -82,6 +81,9 @@ Plug 'prabirshrestha/vim-lsp' | |||
| Plug 'sheerun/vim-polyglot' | ||||
| Plug 'vifm/vifm.vim' | ||||
| 
 | ||||
| " Coq | ||||
| Plug 'whonore/Coqtail' | ||||
| 
 | ||||
| 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": [ | ||||
|         "sway/workspaces", | ||||
|         "custom/scratchpad-indicator", | ||||
|         "mpris", | ||||
|         "group/system", | ||||
|         "group/system" | ||||
|     ], | ||||
|     "modules-right": [ | ||||
|         "group/hardware", | ||||
|         "custom/sep", | ||||
|         "tray", | ||||
|         "sway/language", | ||||
|         "bluetooth", | ||||
|         "network", | ||||
|         "pulseaudio", | ||||
|         "battery", | ||||
|         "custom/sep", | ||||
|         "tray" | ||||
|         "group/battery", | ||||
|         "mpris" | ||||
|     ] | ||||
| } | ||||
|  |  | |||
							
								
								
									
										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": { | ||||
|         "format": "{capacity}% {icon}", | ||||
|         "format-alt": "{time} {icon}", | ||||
|         "format-charging": "{capacity}% \uf0e7 {icon}", | ||||
|         "format-icons": ["\uf244", "\uf243", "\uf242", "\uf241", "\uf240"], | ||||
|         "format-charging": "{capacity}% \ue55b", /*   */ | ||||
|         "format-plugged": "{capacity}% \ue55c", | ||||
|         "format-icons": [ | ||||
|             "\uf244", /*   */ | ||||
|             "\uf243", /*   */ | ||||
|             "\uf242", /*   */ | ||||
|             "\uf241", /*   */ | ||||
|             "\uf240"  /*   */ | ||||
|         ], | ||||
|         "states": { | ||||
|             "warning": 30, | ||||
|             "critical": 15 | ||||
|             "warning": 25, | ||||
|             "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": { | ||||
|         "format-disabled": "<big>\uf294</big>", | ||||
|         "format-off": "\uf294", | ||||
|         "format-on": "<big>\uf294</big>", | ||||
|         "format-connected": "<big>\uf294</big>c", | ||||
|         "format-disabled": "\uf294", /*  */ | ||||
|         "format-off": "\uf294", /*  */ | ||||
|         "format-on": "<big>\uf294</big>", /*  */ | ||||
|         "format-connected": "<big>\uf294</big>c", /* c */ | ||||
|         "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-right": "kitty -e bluetoothctl", | ||||
|         "tooltip-format": "{status}", | ||||
|         "tooltip-format-on": "{status}, no devices connected", | ||||
|         "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}" | ||||
|     }, | ||||
| 
 | ||||
|     "clock": { | ||||
|     "clock#center": { | ||||
|         "format": "{:%H:%M}", | ||||
|         "format-alt": "{:%d/%m/%Y %H:%M}", | ||||
|         "format-alt": "{:%a %b %d, %Y, %R}", | ||||
|         "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": { | ||||
|         "format": "\uf120", | ||||
|         "on-click": "dmenu_run", | ||||
|         "tooltip-format": "Launch an application" | ||||
|     "clock#bar": { | ||||
|         "format": "{:%a %b %d, %R}", | ||||
|         "timezone": "Europe/Brussels", | ||||
|         "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": { | ||||
|         "on-click": "bash ${SCRIPT_DIR}/toggle-light-dark.sh", | ||||
|         "tooltip-format": "Toggle between light and dark mode", | ||||
|         "format": "\uf042 ", | ||||
|         "tooltip": true | ||||
|     "custom/control-center": { | ||||
|         "format": "\uf085", /*   */ | ||||
|         "tooltip": false | ||||
|     }, | ||||
| 
 | ||||
|     "custom/night-light-toggle": { | ||||
|         "on-click": "bash ${SCRIPT_DIR}/sunset.sh", | ||||
|         "tooltip-format": "Toggle night-light on or off", | ||||
|         "format": "\uf0eb ", | ||||
|         "tooltip": true, | ||||
|         "tooltip-format": "Toggle night-light on or off", | ||||
|     "custom/meta": { | ||||
|         "format": "\uf17c", /*  */ | ||||
|         "tooltip": false, | ||||
|         "on-click": "dmenu_run" | ||||
|     }, | ||||
| 
 | ||||
|     "custom/scratchpad-indicator": { | ||||
|         "interval": 3, | ||||
|         "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'", | ||||
|         "format": "{} \uf2d2", | ||||
|         "format": "\uf2d2 {}", | ||||
|         "on-click": "exec swaymsg 'scratchpad show'", | ||||
|         "on-click-right": "exec swaymsg 'move scratchpad'" | ||||
|     }, | ||||
| 
 | ||||
|     "custom/system-lock": { | ||||
|         "format": "\uf09c", | ||||
|         "format": "\uf09c", /*  */ | ||||
|         "tooltip": true, | ||||
|         "tooltip-format": "Lock device", | ||||
|         "on-click": "swaylock -f" | ||||
|         "on-click": "swaylock --daemonize" | ||||
|     }, | ||||
| 
 | ||||
|     "custom/system-sleep": { | ||||
|         "format": "\uf186", | ||||
|         "format": "\uf186", /*  */ | ||||
|         "tooltip": true, | ||||
|         "tooltip-format": "Put device to sleep", | ||||
|         "on-click": "swaylock -f; systemctl suspend" | ||||
|         "on-click": "swaylock --daemonize; systemctl suspend" | ||||
|     }, | ||||
| 
 | ||||
|     "custom/system-hibernate": { | ||||
|         "format": "\uf2dc", | ||||
|         "format": "\uf2dc", /*  */ | ||||
|         "tooltip": true, | ||||
|         "tooltip-format": "Hibernate device", | ||||
|         "on-click": "swaylock -f; systemctl hibernate" | ||||
|         "on-click": "swaylock --daemonize; systemctl hibernate" | ||||
|     }, | ||||
| 
 | ||||
|     "custom/system-reboot": { | ||||
|         "format": "\uf0e2", | ||||
|         "format": "\uf0e2", /*  */ | ||||
|         "tooltip": true, | ||||
|         "tooltip-format": "Reboot device", | ||||
|         "on-click": "systemctl reboot" | ||||
|     }, | ||||
| 
 | ||||
|     "custom/system-shutdown": { | ||||
|         "format": "\uf011", | ||||
|         "format": "\uf011", /*  */ | ||||
|         "tooltip": true, | ||||
|         "tooltip-format": "Shutdown device", | ||||
|         "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": { | ||||
|         "on-click": "bash ${SCRIPT_DIR}/do-not-disturb.sh", | ||||
|         "tooltip-format": "Toggle notifications", | ||||
|         "format": "\uf1f6 ", | ||||
|         "exec": "bash ${SCRIPT_DIR}/toggle-notifications.sh -g", | ||||
|         "interval": 60, | ||||
|         "return-type": "json", | ||||
|         "on-click": "bash ${SCRIPT_DIR}/toggle-notifications.sh", | ||||
|         "format": "{icon}", | ||||
|         "format-icons": { | ||||
|             "normal": "\uf0f3", /*  */ | ||||
|             "paused": "\uf1f6"  /*  */ | ||||
|         }, | ||||
|         "tooltip": true | ||||
|     }, | ||||
| 
 | ||||
|     "cpu": { | ||||
|         "format": "{usage}% \uf2db", | ||||
|         "on-click": "foot -e htop", | ||||
|     "custom/toggle-tailscale": { | ||||
|         "exec": "bash ${SCRIPT_DIR}/toggle-tailscale.sh -g", | ||||
|         "interval": 60, | ||||
|         "return-type": "json", | ||||
|         "on-click": "bash ${SCRIPT_DIR}/toggle-tailscale.sh", | ||||
|         "format": "{icon}", | ||||
|         "format-icons": { | ||||
|             "disconnected": "\ue50b", | ||||
|             "connected": "\ue509", | ||||
|         }, | ||||
|         "tooltip": true | ||||
|     }, | ||||
| 
 | ||||
|     "group/hardware": { | ||||
|     "group/control-center": { | ||||
|         "orientation": "inherit", | ||||
|         "modules": [ | ||||
|             "power-profiles-daemon", | ||||
|             "memory", | ||||
|             "cpu", | ||||
|             "temperature", | ||||
|             "custom/control-center", | ||||
|             "group/language", | ||||
|             /* "hyprland/language", "sway/language", */ | ||||
|             "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-reboot", | ||||
|             "custom/system-hibernate", | ||||
|             "custom/system-sleep", | ||||
|             "custom/system-lock", | ||||
|             "power-profiles-daemon", | ||||
|             "idle_inhibitor" | ||||
|             /* Most-right */ | ||||
|         ], | ||||
|         "drawer": { | ||||
|             "transition-duration": 500, | ||||
|             "transition-left-to-right": false, | ||||
|             "children-class": "drawer-child", | ||||
|         }, | ||||
|             "children-class": "drawer-child" | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "group/system": { | ||||
|     "group/workspaces": { | ||||
|         "orientation": "inherit", | ||||
|         "modules": [ | ||||
|             "idle_inhibitor", | ||||
|             "custom/light-dark-toggle", | ||||
|             "custom/night-light-toggle", | ||||
|             "custom/toggle-notifications", | ||||
|         ], | ||||
|         "drawer": { | ||||
|             "transition-duration": 500, | ||||
|             "tansition-left-to-right": true, | ||||
|             "children-class": "drawer-child", | ||||
|             "hyprland/workspaces", | ||||
|             "sway/workspaces" | ||||
|         ] | ||||
|     }, | ||||
| 
 | ||||
|     "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": { | ||||
|         "format": "{icon}", | ||||
|         "format-icons": { | ||||
|             "activated": "\uf06e", | ||||
|             "deactivated": "\uf070" | ||||
|             "activated": "\uf06e",  /*   */ | ||||
|             "deactivated": "\uf070" /*   */ | ||||
|         }, | ||||
|         "tooltip": false | ||||
|     }, | ||||
| 
 | ||||
|     "keyboard-state": { | ||||
|     "keyboard-state#capslock": { | ||||
|         "capslock": true, | ||||
|         "format": { | ||||
|             "capslock": "{icon}", | ||||
|             "capslock": "{icon}" | ||||
|         }, | ||||
|         "format-icons": { | ||||
|             "locked": "\uf023", | ||||
|             "locked": "\uf11c", /*   */ | ||||
|             "unlocked": "" | ||||
|         }, | ||||
|         "numlock": false, | ||||
|         "capslock": true, | ||||
|         "scrollock": false, | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "memory": { | ||||
|         "format": "{}% \uf1c0", | ||||
|         "on-click": "kitty -e zenith" | ||||
|     "keyboard-state#numlock": { | ||||
|         "numlock": true, | ||||
|         "format": { | ||||
|             "numlock": "{icon}" | ||||
|         }, | ||||
|         "format-icons": { | ||||
|             "locked": "\uf1ec", /*  */ | ||||
|             "unlocked": "" | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "mpris": { | ||||
|         // "ignored-players": ["firefox"] | ||||
|         "format": "{player_icon} {dynamic}", | ||||
|         "format-paused": "{status_icon} <i>{dynamic}</i>", | ||||
|         "tooltip-format": "{player} ({status}) {title} - {artist} - {album}", | ||||
|         "player-icons": { | ||||
|             "default": "\uf51f", | ||||
|             "spotify": "\uf1bc", | ||||
|             "mpv": "🎵" | ||||
|             "default": "\uf8d9", /*   */ | ||||
|             "mpv": "\uf144", /*   */ | ||||
|             "spotify": "\uf1bc" /*   */ | ||||
|         }, | ||||
|         "status-icons": { | ||||
|             "paused": "⏸" | ||||
|             "paused": "\uf04c" /*  */ | ||||
|         }, | ||||
|         "dynamic-order": [ | ||||
|             "title", | ||||
|             "artist" | ||||
|         ], | ||||
|         "dynamic-len": 40, | ||||
|         "dynamic-len": 40 | ||||
|     }, | ||||
| 
 | ||||
|     "network": { | ||||
|         "format-disconnected": "\uf127",  | ||||
|         "format-ethernet": "\uf6ff {ifname}: {ipadds}/{cidr}", | ||||
|         "format-wifi": "\uf1eb", | ||||
|         "format-disconnected": "\uf127", /*   */ | ||||
|         "format-ethernet": "\uf6ff", /*   */ | ||||
|         "format-linked": "\uf0c1", /*   */ | ||||
|         "format-wifi": "{icon}", | ||||
|         "interval": 5, | ||||
|         "on-click-right": "kitty -e nmtui", | ||||
|         "tooltip": true, | ||||
|         "tooltip-format": "{ifname}: {ipaddr}", | ||||
|         "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": { | ||||
|         "max-length": 85 | ||||
|         "format": "{title}", | ||||
|         "max-length": 20, | ||||
|         "tooltip": true, | ||||
|         "all-outputs": true, | ||||
|         "icon": false, | ||||
|         "icon-size": 18, | ||||
|         "rewrite": { | ||||
|             ".* - (.*)": "$1", | ||||
|             ".* — (.*)": "$1" | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "sway/workspaces": { | ||||
|  | @ -221,72 +389,14 @@ | |||
|         "disable-scroll": true, | ||||
|         "format": "{icon}{name}", | ||||
|         "format-icons": { | ||||
|             "default": "", // Prevent showing workspace name literal. | ||||
|             "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": "" | ||||
|             "default": "", | ||||
|             "urgent": "\uf071 " /*   */ | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     "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": { | ||||
|         "icon-size": 16, | ||||
|         "show-passive-items": true, | ||||
|         "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 | ||||
|  * | ||||
|  * `otf-font-awesome` is required to be installed for icons. | ||||
|  * | ||||
|  * Pick your stylesheet:  | ||||
|  * - sharp.css | ||||
|  * - transparent.css | ||||
|  * - round.css | ||||
|  */ | ||||
| /* * * * * * * * * * * * * * * * | ||||
|  *                             * | ||||
|  * ~/.config/waybar/style.css  * | ||||
|  *                             * | ||||
|  * * * * * * * * * * * * * * * */ | ||||
| 
 | ||||
| @define-color transparent-black rgba(23, 23, 23, 0.9);  | ||||
| @define-color white #ecf0f1; | ||||
| @define-color warning-red #eb4d4b; | ||||
| @define-color accent #00897b; | ||||
| @define-color background #C2C2C2; | ||||
| @define-color foreground #171717; | ||||
| 
 | ||||
| /* 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 { | ||||
|     /* 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-size: 13px; | ||||
|     -webkit-font-smoothing: antialiased; | ||||
|     transition-property: background-color; | ||||
|     transition-duration: .5s; | ||||
|     font-weight: 600; | ||||
| } | ||||
| 
 | ||||
| #window, #workspaces { | ||||
|     margin: 0 5px; | ||||
| } | ||||
| 
 | ||||
| #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 { | ||||
| .modules-right, | ||||
| .modules-right > widget:last-child { | ||||
|     padding-right: 0; | ||||
|     margin-right: 0; | ||||
| } | ||||
| 
 | ||||
| @keyframes blink { | ||||
|     to { | ||||
|         background-color: #ffffff; | ||||
|         color: #000000; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| label:focus { | ||||
|     background-color: #000000; | ||||
| } | ||||
| 
 | ||||
| /* Module specific colours */ | ||||
| 
 | ||||
| #battery.charging, #battery.plugged { | ||||
|     color: #ffffff; | ||||
| #battery.charging { | ||||
|     background-color: #26A65B; | ||||
|     color: #FFFFFF; | ||||
| } | ||||
| 
 | ||||
| #battery.critical:not(.charging) { | ||||
|     background-color: #f53c3c; | ||||
|     color: #ffffff; | ||||
|     background-color: @warning; | ||||
|     color: #FFFFFF; | ||||
|     animation-name: blink; | ||||
|     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-direction: alternate; | ||||
| } | ||||
| 
 | ||||
| #bluetooth.disabled, | ||||
| #bluetooth.off, | ||||
| #network.disconnected, | ||||
| #pulseaudio.muted { | ||||
| #bluetooth.off { | ||||
|     opacity: 0.6; | ||||
| } | ||||
| 
 | ||||
| #mpris { | ||||
|     color: #2a5c45; | ||||
|     min-width: 100px; | ||||
| #custom-toggle-tailscale.disconnected { | ||||
|     opacity: 0.6; | ||||
| } | ||||
| 
 | ||||
| #mpris.Feishin { | ||||
|     background: linear-gradient(45deg, rgba(170,92,195,1) 100%, rgba(0,164,220,1) 0%); | ||||
| } | ||||
| 
 | ||||
| #mpris.spotify { | ||||
|     background-color: #66cc99; | ||||
|     color: #2a5c45; | ||||
| } | ||||
| 
 | ||||
| #mpris.vlc { | ||||
|     background-color: #ffa000; | ||||
| } | ||||
| 
 | ||||
| #temperature.critical { | ||||
|     background-color: #eb4d4b; | ||||
| #network.disconnected { | ||||
|     opacity: 0.6; | ||||
| } | ||||
| 
 | ||||
| #custom_light-dark-toggle.activated, | ||||
| #idle_inhibitor.activated { | ||||
|     background-color: #ecf0f1; | ||||
|     color: #2d3436; | ||||
| #privacy, | ||||
| #privacy-item, | ||||
| #privacy-item.screenshare, | ||||
| #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 { | ||||
|     -gtk-icon-effect: dim; | ||||
| } | ||||
| 
 | ||||
| #tray > .needs-attention { | ||||
|     -gtk-icon-effect: highlight; | ||||
|     background-color: #eb4d4b; | ||||
| #workspaces button.urgent { | ||||
|     background-color: @warning; | ||||
|     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 df='df -h' | ||||
| alias free='free -m' | ||||
| alias gs='git status' | ||||
| alias gs='git status --short' | ||||
| alias hgrep='history | grep' | ||||
| alias ll='ls -la' | ||||
| alias mkdir='mkdir -pv' | ||||
| alias more='less' | ||||
| alias mv='mv -i' | ||||
| alias np='nano -w PKGBUILD' | ||||
| alias rm='rm -I --preserve-root' | ||||
| alias zip='zip -r' | ||||
| alias update='pushd ~/projects/sisyphus/nixos | ||||
| nix flake update | ||||
| sudo nixos-rebuild switch --flake .# --show-trace | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue