Compare commits
	
		
			1 Commits
		
	
	
		
			main
			...
			ec03efcc45
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | ec03efcc45 | 
| @@ -1,38 +0,0 @@ | |||||||
| name: Nix Build |  | ||||||
|  |  | ||||||
| on:  |  | ||||||
|   pull_request: |  | ||||||
|   push: |  | ||||||
|   workflow_run: |  | ||||||
|     workflows: [] |  | ||||||
|     types: [completed] |  | ||||||
|   workflow_dispatch: |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   build-nixos: |  | ||||||
|     runs-on: ubuntu-latest |  | ||||||
|     steps:  |  | ||||||
|       - uses: actions/checkout@v5 |  | ||||||
|        |  | ||||||
|       - name: "Install Nix ❄️" |  | ||||||
|         uses: cachix/install-nix-action@v31 |  | ||||||
|  |  | ||||||
|     #  - uses: DeterminateSystems/nix-installer-action@v4 |  | ||||||
|       - uses: DeterminateSystems/magic-nix-cache-action@v13 |  | ||||||
|       - uses: DeterminateSystems/flake-checker-action@v12 |  | ||||||
|  |  | ||||||
|       - name: "Install Cachix ❄️" |  | ||||||
|         uses: cachix/cachix-action@v16 |  | ||||||
|         with: |  | ||||||
|           name: helcel |  | ||||||
|           authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" |  | ||||||
|            |  | ||||||
|  |  | ||||||
|       - name: "Build NixOS CI config ❄️" |  | ||||||
|         run: | |  | ||||||
|           nix build .#nixosConfigurations.ci.config.system.build.toplevel |  | ||||||
|  |  | ||||||
|       - name: "Build NixOS Sandbox config ❄️" |  | ||||||
|         run: | |  | ||||||
|           nix build .#nixosConfigurations.sandbox.config.system.build.toplevel |  | ||||||
|            |  | ||||||
| @@ -1,30 +0,0 @@ | |||||||
| name: update-flake-lock |  | ||||||
| on: |  | ||||||
|   workflow_dispatch: |  | ||||||
|   schedule: |  | ||||||
|     - cron: '0 2 * * 6,7' |  | ||||||
|  |  | ||||||
|  |  | ||||||
| env: |  | ||||||
|   USER: "runner" |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   lockfile: |  | ||||||
|     runs-on: ubuntu-latest |  | ||||||
|     steps: |  | ||||||
|       - name: Checkout repository |  | ||||||
|         uses: actions/checkout@v5 |  | ||||||
|       - name: Install nix |  | ||||||
|         uses: DeterminateSystems/nix-installer-action@v20 |  | ||||||
|         with: |  | ||||||
|           github-token: ${{ secrets.GH_TOKEN_FOR_UPDATES }} |  | ||||||
|           extra_nix_config: | |  | ||||||
|             experimental-features = nix-command flakes             |  | ||||||
|       - name: Update flake.lock |  | ||||||
|         uses: DeterminateSystems/update-flake-lock@v27 |  | ||||||
|         with: |  | ||||||
|           token: ${{ secrets.GT_TOKEN_FOR_UPDATES }} |  | ||||||
|           pr-title: "[chore] Update flake.lock" |  | ||||||
|           pr-labels: | |  | ||||||
|             dependencies |  | ||||||
|             automated     |  | ||||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +1,3 @@ | |||||||
| result | result | ||||||
| age-key.txt | age-key.txt | ||||||
| .decrypted~common.yaml | .decrypted~common.yaml | ||||||
| .decrypted* |  | ||||||
|   | |||||||
							
								
								
									
										27
									
								
								.sops.yaml
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								.sops.yaml
									
									
									
									
									
								
							| @@ -4,55 +4,38 @@ keys: | |||||||
|     - &sora 4E241635F8EDD2919D2FB44CA362EA0491E2EEA0 |     - &sora 4E241635F8EDD2919D2FB44CA362EA0491E2EEA0 | ||||||
|   # Hosts |   # Hosts | ||||||
|   - &hosts: |   - &hosts: | ||||||
|     - &ci age13qv9dn9806paqgpjwmmkwtdzvv4qpv0ulksq0epnn8ufaxeug5zskyas3z |  | ||||||
|     - &iriy age1ms8f0ysv6vakxepvt69fejczs6tddexepesdv4rkgtheehj3nu4sc6290s |     - &iriy age1ms8f0ysv6vakxepvt69fejczs6tddexepesdv4rkgtheehj3nu4sc6290s | ||||||
|     - &avalon age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg |     - &avalon age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg | ||||||
|     - &valinor age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg |     - &valinor age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg | ||||||
|     - &asgard age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg |     - &asgard age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg | ||||||
|  |  | ||||||
| creation_rules: | creation_rules: | ||||||
|   - path_regex: modules/shared/sops/private/iriy.[a-z]+ |   - path_regex: modules/nixos/system/security/sops/iriy.ya?ml$ | ||||||
|     key_groups: |     key_groups: | ||||||
|     - age: |     - age: | ||||||
|       - *iriy |       - *iriy | ||||||
|       pgp: |       pgp: | ||||||
|       - *sora |       - *sora | ||||||
|   - path_regex: modules/shared/sops/private/avalon.[a-z]+ |   - path_regex: modules/nixos/system/security/sops/avalon.ya?ml$ | ||||||
|     key_groups: |     key_groups: | ||||||
|     - age: |     - age: | ||||||
|       - *avalon |       - *avalon | ||||||
|       pgp: |       pgp: | ||||||
|       - *sora |       - *sora | ||||||
|   - path_regex: modules/shared/sops/private/valinor.[a-z]+ |   - path_regex: modules/nixos/system/security/sops/valinor.ya?ml$ | ||||||
|     key_groups: |     key_groups: | ||||||
|     - age: |     - age: | ||||||
|       - *valinor |       - *valinor | ||||||
|       pgp: |       pgp: | ||||||
|       - *sora |       - *sora | ||||||
|   - path_regex: modules/shared/sops/private/asgard.[a-z]+ |   - path_regex: modules/nixos/system/security/sops/asgard.ya?ml$ | ||||||
|     key_groups: |     key_groups: | ||||||
|     - age: |     - age: | ||||||
|       - *asgard |       - *asgard | ||||||
|       pgp: |       pgp: | ||||||
|       - *sora |       - *sora | ||||||
|  |  | ||||||
|   - path_regex: modules/shared/sops/common.[a-z]+ |   - path_regex: modules/nixos/system/security/sops/common.yaml$ | ||||||
|     key_groups: |  | ||||||
|     - age: |  | ||||||
|       - *valinor |  | ||||||
|       - *iriy |  | ||||||
|       - *avalon |  | ||||||
|       - *asgard |  | ||||||
|       pgp: |  | ||||||
|       - *sora |  | ||||||
|    |  | ||||||
|   - path_regex: modules/shared/sops/mock.[a-z]+ |  | ||||||
|     key_groups: |  | ||||||
|     - age: |  | ||||||
|       - *ci |  | ||||||
|  |  | ||||||
|  |  | ||||||
|   - path_regex: modules/server/sops/server.[a-z]+ |  | ||||||
|     key_groups: |     key_groups: | ||||||
|     - age: |     - age: | ||||||
|       - *valinor |       - *valinor | ||||||
|   | |||||||
							
								
								
									
										315
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										315
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							| @@ -1,35 +1,13 @@ | |||||||
| { | { | ||||||
|   "nodes": { |   "nodes": { | ||||||
|     "arion": { |  | ||||||
|       "inputs": { |  | ||||||
|         "flake-parts": "flake-parts", |  | ||||||
|         "haskell-flake": "haskell-flake", |  | ||||||
|         "nixpkgs": [ |  | ||||||
|           "nixpkgs" |  | ||||||
|         ] |  | ||||||
|       }, |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1759632323, |  | ||||||
|         "narHash": "sha256-TzLTfXxhOkR/8oOoVEAYQWb81ADGHdKsQXGicC7kR+M=", |  | ||||||
|         "owner": "hercules-ci", |  | ||||||
|         "repo": "arion", |  | ||||||
|         "rev": "24658a03be2d1a6e1e02c01524775d960a82309c", |  | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "hercules-ci", |  | ||||||
|         "repo": "arion", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "base16-schemes": { |     "base16-schemes": { | ||||||
|       "flake": false, |       "flake": false, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1696158499, |         "lastModified": 1689473676, | ||||||
|         "narHash": "sha256-5yIHgDTPjoX/3oDEfLSQ0eJZdFL1SaCfb9d6M0RmOTM=", |         "narHash": "sha256-L0RhUr9+W5EPWBpLcmkKpUeCEWRs/kLzVMF3Vao2ZU0=", | ||||||
|         "owner": "tinted-theming", |         "owner": "tinted-theming", | ||||||
|         "repo": "base16-schemes", |         "repo": "base16-schemes", | ||||||
|         "rev": "a9112eaae86d9dd8ee6bb9445b664fba2f94037a", |         "rev": "d95123ca6377cd849cfdce92c0a24406b0c6a789", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @@ -45,11 +23,11 @@ | |||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1761339987, |         "lastModified": 1703415240, | ||||||
|         "narHash": "sha256-IUaawVwItZKi64IA6kF6wQCLCzpXbk2R46dHn8sHkig=", |         "narHash": "sha256-SgsAYwDo2wWHUdZeNKKRRT402sRzQ/rLmzxH/wqMUPw=", | ||||||
|         "owner": "lnl7", |         "owner": "lnl7", | ||||||
|         "repo": "nix-darwin", |         "repo": "nix-darwin", | ||||||
|         "rev": "7cd9aac79ee2924a85c211d21fafd394b06a38de", |         "rev": "f454cff5fe84adca9e8aa8d546d2c9879b789950", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @@ -59,55 +37,13 @@ | |||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "flake-parts": { |  | ||||||
|       "inputs": { |  | ||||||
|         "nixpkgs-lib": [ |  | ||||||
|           "arion", |  | ||||||
|           "nixpkgs" |  | ||||||
|         ] |  | ||||||
|       }, |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1759362264, |  | ||||||
|         "narHash": "sha256-wfG0S7pltlYyZTM+qqlhJ7GMw2fTF4mLKCIVhLii/4M=", |  | ||||||
|         "owner": "hercules-ci", |  | ||||||
|         "repo": "flake-parts", |  | ||||||
|         "rev": "758cf7296bee11f1706a574c77d072b8a7baa881", |  | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "hercules-ci", |  | ||||||
|         "repo": "flake-parts", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "flake-parts_2": { |  | ||||||
|       "inputs": { |  | ||||||
|         "nixpkgs-lib": [ |  | ||||||
|           "nur", |  | ||||||
|           "nixpkgs" |  | ||||||
|         ] |  | ||||||
|       }, |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1733312601, |  | ||||||
|         "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", |  | ||||||
|         "owner": "hercules-ci", |  | ||||||
|         "repo": "flake-parts", |  | ||||||
|         "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", |  | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "hercules-ci", |  | ||||||
|         "repo": "flake-parts", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "hardware": { |     "hardware": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1760958188, |         "lastModified": 1702453208, | ||||||
|         "narHash": "sha256-2m1S4jl+GEDtlt2QqeHil8Ny456dcGSKJAM7q3j/BFU=", |         "narHash": "sha256-0wRi9SposfE2wHqjuKt8WO2izKB/ASDOV91URunIqgo=", | ||||||
|         "owner": "nixos", |         "owner": "nixos", | ||||||
|         "repo": "nixos-hardware", |         "repo": "nixos-hardware", | ||||||
|         "rev": "d6645c340ef7d821602fd2cd199e8d1eed10afbc", |         "rev": "7763c6fd1f299cb9361ff2abf755ed9619ef01d6", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @@ -116,22 +52,6 @@ | |||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "haskell-flake": { |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1675296942, |  | ||||||
|         "narHash": "sha256-u1X1sblozi5qYEcLp1hxcyo8FfDHnRUVX3dJ/tW19jY=", |  | ||||||
|         "owner": "srid", |  | ||||||
|         "repo": "haskell-flake", |  | ||||||
|         "rev": "c2cafce9d57bfca41794dc3b99c593155006c71e", |  | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "srid", |  | ||||||
|         "ref": "0.1.0", |  | ||||||
|         "repo": "haskell-flake", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "home-manager": { |     "home-manager": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "nixpkgs": [ |         "nixpkgs": [ | ||||||
| @@ -139,31 +59,79 @@ | |||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1758463745, |         "lastModified": 1703368619, | ||||||
|         "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=", |         "narHash": "sha256-ZGPMYL7FMA6enhuwby961bBANmoFX14EA86m2/Jw5Jo=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "home-manager", |         "repo": "home-manager", | ||||||
|         "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3", |         "rev": "a2523ea0343b056ba240abbac90ab5f116a7aa7b", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "ref": "release-25.05", |  | ||||||
|         "repo": "home-manager", |         "repo": "home-manager", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "hyprland": { | ||||||
|  |       "inputs": { | ||||||
|  |         "hyprland-protocols": "hyprland-protocols", | ||||||
|  |         "nixpkgs": [ | ||||||
|  |           "nixpkgs" | ||||||
|  |         ], | ||||||
|  |         "systems": "systems", | ||||||
|  |         "wlroots": "wlroots", | ||||||
|  |         "xdph": "xdph" | ||||||
|  |       }, | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1703442544, | ||||||
|  |         "narHash": "sha256-swV6fiGjZuvuEBY/f9/XBtHW/Fbm7HPI1la7NXeE3Lg=", | ||||||
|  |         "owner": "hyprwm", | ||||||
|  |         "repo": "Hyprland", | ||||||
|  |         "rev": "b25b06430ba82ebd1977ad75b6cb1b86dd07cb8b", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "hyprwm", | ||||||
|  |         "repo": "Hyprland", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "hyprland-protocols": { | ||||||
|  |       "inputs": { | ||||||
|  |         "nixpkgs": [ | ||||||
|  |           "hyprland", | ||||||
|  |           "nixpkgs" | ||||||
|  |         ], | ||||||
|  |         "systems": [ | ||||||
|  |           "hyprland", | ||||||
|  |           "systems" | ||||||
|  |         ] | ||||||
|  |       }, | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1691753796, | ||||||
|  |         "narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=", | ||||||
|  |         "owner": "hyprwm", | ||||||
|  |         "repo": "hyprland-protocols", | ||||||
|  |         "rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "hyprwm", | ||||||
|  |         "repo": "hyprland-protocols", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "nix-colors": { |     "nix-colors": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "base16-schemes": "base16-schemes", |         "base16-schemes": "base16-schemes", | ||||||
|         "nixpkgs-lib": "nixpkgs-lib" |         "nixpkgs-lib": "nixpkgs-lib" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1707825078, |         "lastModified": 1695388192, | ||||||
|         "narHash": "sha256-hTfge2J2W+42SZ7VHXkf4kjU+qzFqPeC9k66jAUBMHk=", |         "narHash": "sha256-2jelpE7xK+4M7jZNyWL7QYOYegQLYBDQS5bvdo8XRUQ=", | ||||||
|         "owner": "misterio77", |         "owner": "misterio77", | ||||||
|         "repo": "nix-colors", |         "repo": "nix-colors", | ||||||
|         "rev": "b01f024090d2c4fc3152cd0cf12027a7b8453ba1", |         "rev": "37227f274b34a3b51649166deb94ce7fec2c6a4c", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @@ -172,60 +140,13 @@ | |||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "nixUnstable": { |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1761349956, |  | ||||||
|         "narHash": "sha256-tH3wHnOJms+U4k/rK2Nn1RfBrhffX92jLP/2VndSn0w=", |  | ||||||
|         "owner": "nixos", |  | ||||||
|         "repo": "nixpkgs", |  | ||||||
|         "rev": "02f2cb8e0feb4596d20cc52fda73ccee960e3538", |  | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "nixos", |  | ||||||
|         "ref": "nixpkgs-unstable", |  | ||||||
|         "repo": "nixpkgs", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "nixpkgs": { |     "nixpkgs": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1761173472, |         "lastModified": 1703255338, | ||||||
|         "narHash": "sha256-m9W0dYXflzeGgKNravKJvTMR4Qqa2MVD11AwlGMufeE=", |         "narHash": "sha256-Z6wfYJQKmDN9xciTwU3cOiOk+NElxdZwy/FiHctCzjU=", | ||||||
|         "owner": "nixos", |         "owner": "nixos", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "c8aa8cc00a5cb57fada0851a038d35c08a36a2bb", |         "rev": "6df37dc6a77654682fe9f071c62b4242b5342e04", | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "nixos", |  | ||||||
|         "ref": "nixos-25.05", |  | ||||||
|         "repo": "nixpkgs", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "nixpkgs-lib": { |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1697935651, |  | ||||||
|         "narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=", |  | ||||||
|         "owner": "nix-community", |  | ||||||
|         "repo": "nixpkgs.lib", |  | ||||||
|         "rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902", |  | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "nix-community", |  | ||||||
|         "repo": "nixpkgs.lib", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "nixpkgs_2": { |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1761114652, |  | ||||||
|         "narHash": "sha256-f/QCJM/YhrV/lavyCVz8iU3rlZun6d+dAiC3H+CDle4=", |  | ||||||
|         "owner": "nixos", |  | ||||||
|         "repo": "nixpkgs", |  | ||||||
|         "rev": "01f116e4df6a15f4ccdffb1bcd41096869fb385c", |  | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @@ -235,17 +156,28 @@ | |||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "nur": { |     "nixpkgs-lib": { | ||||||
|       "inputs": { |  | ||||||
|         "flake-parts": "flake-parts_2", |  | ||||||
|         "nixpkgs": "nixpkgs_2" |  | ||||||
|       }, |  | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1761442004, |         "lastModified": 1694911725, | ||||||
|         "narHash": "sha256-hMDW7EqOaKl9yY3mIIgjRr0QAfWi5DqhKgDw0tMLGHU=", |         "narHash": "sha256-8YqI+YU1DGclEjHsnrrGfqsQg3Wyga1DfTbJrN3Ud0c=", | ||||||
|  |         "owner": "nix-community", | ||||||
|  |         "repo": "nixpkgs.lib", | ||||||
|  |         "rev": "819180647f428a3826bfc917a54449da1e532ce0", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "nix-community", | ||||||
|  |         "repo": "nixpkgs.lib", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "nur": { | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1703461311, | ||||||
|  |         "narHash": "sha256-RK/WWQzTf68Dkjtja4YkFEbpFRJnhcVeSG1VQN78HlU=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "nur", |         "repo": "nur", | ||||||
|         "rev": "a60bf0b4447f158744df813945ff772285ac2fe8", |         "rev": "434f338861c39a701740df89d78ef9c8e8211d2a", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @@ -256,12 +188,11 @@ | |||||||
|     }, |     }, | ||||||
|     "root": { |     "root": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "arion": "arion", |  | ||||||
|         "darwin": "darwin", |         "darwin": "darwin", | ||||||
|         "hardware": "hardware", |         "hardware": "hardware", | ||||||
|         "home-manager": "home-manager", |         "home-manager": "home-manager", | ||||||
|  |         "hyprland": "hyprland", | ||||||
|         "nix-colors": "nix-colors", |         "nix-colors": "nix-colors", | ||||||
|         "nixUnstable": "nixUnstable", |  | ||||||
|         "nixpkgs": "nixpkgs", |         "nixpkgs": "nixpkgs", | ||||||
|         "nur": "nur", |         "nur": "nur", | ||||||
|         "sops-nix": "sops-nix" |         "sops-nix": "sops-nix" | ||||||
| @@ -271,14 +202,17 @@ | |||||||
|       "inputs": { |       "inputs": { | ||||||
|         "nixpkgs": [ |         "nixpkgs": [ | ||||||
|           "nixpkgs" |           "nixpkgs" | ||||||
|  |         ], | ||||||
|  |         "nixpkgs-stable": [ | ||||||
|  |           "nixpkgs" | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1760998189, |         "lastModified": 1703387502, | ||||||
|         "narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=", |         "narHash": "sha256-JnWuQmyanPtF8c5yAEFXVWzaIlMxA3EAZCh8XNvnVqE=", | ||||||
|         "owner": "Mic92", |         "owner": "Mic92", | ||||||
|         "repo": "sops-nix", |         "repo": "sops-nix", | ||||||
|         "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3", |         "rev": "e523e89763ff45f0a6cf15bcb1092636b1da9ed3", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @@ -286,6 +220,69 @@ | |||||||
|         "repo": "sops-nix", |         "repo": "sops-nix", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|  |     }, | ||||||
|  |     "systems": { | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1689347949, | ||||||
|  |         "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", | ||||||
|  |         "owner": "nix-systems", | ||||||
|  |         "repo": "default-linux", | ||||||
|  |         "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "nix-systems", | ||||||
|  |         "repo": "default-linux", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "wlroots": { | ||||||
|  |       "flake": false, | ||||||
|  |       "locked": { | ||||||
|  |         "host": "gitlab.freedesktop.org", | ||||||
|  |         "lastModified": 1701368958, | ||||||
|  |         "narHash": "sha256-7kvyoA91etzVEl9mkA/EJfB6z/PltxX7Xc4gcr7/xlo=", | ||||||
|  |         "owner": "wlroots", | ||||||
|  |         "repo": "wlroots", | ||||||
|  |         "rev": "5d639394f3e83b01596dcd166a44a9a1a2583350", | ||||||
|  |         "type": "gitlab" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "host": "gitlab.freedesktop.org", | ||||||
|  |         "owner": "wlroots", | ||||||
|  |         "repo": "wlroots", | ||||||
|  |         "rev": "5d639394f3e83b01596dcd166a44a9a1a2583350", | ||||||
|  |         "type": "gitlab" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "xdph": { | ||||||
|  |       "inputs": { | ||||||
|  |         "hyprland-protocols": [ | ||||||
|  |           "hyprland", | ||||||
|  |           "hyprland-protocols" | ||||||
|  |         ], | ||||||
|  |         "nixpkgs": [ | ||||||
|  |           "hyprland", | ||||||
|  |           "nixpkgs" | ||||||
|  |         ], | ||||||
|  |         "systems": [ | ||||||
|  |           "hyprland", | ||||||
|  |           "systems" | ||||||
|  |         ] | ||||||
|  |       }, | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1702334919, | ||||||
|  |         "narHash": "sha256-ibOZ3TLjqndGMcj2f+07NFwDWoum4IbzF58byZuJJNg=", | ||||||
|  |         "owner": "hyprwm", | ||||||
|  |         "repo": "xdg-desktop-portal-hyprland", | ||||||
|  |         "rev": "f5c3576c3b6cb1c31a8dfa3e4113f59bfe40cd71", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "hyprwm", | ||||||
|  |         "repo": "xdg-desktop-portal-hyprland", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   "root": "root", |   "root": "root", | ||||||
|   | |||||||
							
								
								
									
										67
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										67
									
								
								flake.nix
									
									
									
									
									
								
							| @@ -1,14 +1,13 @@ | |||||||
| { | { | ||||||
|   description = "SoraFlake"; |   description = "SoraFlake"; | ||||||
|  |  | ||||||
|   inputs = { |   inputs = { | ||||||
|     # Trick renovate into working: "github:NixOS/nixpkgs/nixpkgs-unstable" |     nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; | ||||||
|     nixUnstable.url = "github:nixos/nixpkgs/nixpkgs-unstable"; |  | ||||||
|     nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; |  | ||||||
|     hardware.url = "github:nixos/nixos-hardware"; |     hardware.url = "github:nixos/nixos-hardware"; | ||||||
|     nur.url = "github:nix-community/nur"; |     nur.url = "github:nix-community/nur"; | ||||||
|  |  | ||||||
|     home-manager = { |     home-manager = { | ||||||
|       url = "github:nix-community/home-manager/release-25.05"; |       url = "github:nix-community/home-manager"; | ||||||
|       inputs.nixpkgs.follows = "nixpkgs"; |       inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
| @@ -17,38 +16,66 @@ | |||||||
|       inputs.nixpkgs.follows = "nixpkgs"; |       inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     # hyprland = { |     hyprland = { | ||||||
|     #   url = "github:hyprwm/Hyprland"; |       url = "github:hyprwm/Hyprland"; | ||||||
|     #   inputs.nixpkgs.follows = "nixpkgs"; |       inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|     # }; |     }; | ||||||
|     sops-nix = { |     sops-nix = { | ||||||
|       url = "github:Mic92/sops-nix"; |       url = "github:Mic92/sops-nix"; | ||||||
|       inputs.nixpkgs.follows = "nixpkgs"; |       inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|  |       inputs.nixpkgs-stable.follows = "nixpkgs"; | ||||||
|     }; |     }; | ||||||
|     nix-colors.url = "github:misterio77/nix-colors"; |     nix-colors.url = "github:misterio77/nix-colors"; | ||||||
|  |  | ||||||
|     arion.url = "github:hercules-ci/arion"; |  | ||||||
|     arion.inputs.nixpkgs.follows = "nixpkgs"; |  | ||||||
|  |  | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   outputs = inputs: |   outputs = inputs: | ||||||
|  |  | ||||||
|     let gen = import ./generator.nix { inherit inputs; }; |     let gen = import ./generator.nix { inherit inputs; }; | ||||||
|     in { |     in { | ||||||
|       devShells = import ./shells { inherit inputs; }; |       devShells = import ./shells { inherit inputs; }; | ||||||
|  |  | ||||||
|       nixosConfigurations = { |       nixosConfigurations = { | ||||||
|         valinor = gen.generate { host = "valinor"; }; |         valinor = gen.generate { | ||||||
|         iriy = gen.generate { host = "iriy"; }; |           type = "nixos"; | ||||||
|         efir = gen.generate { host = "efir"; }; |           system = "x86_64-linux"; | ||||||
|         avalon = gen.generate { host = "avalon"; }; |           host = "valinor"; | ||||||
|         ci = gen.generate { host = "ci"; }; |         }; | ||||||
|         sandbox = gen.generate { host = "sandbox"; }; |         iriy = gen.generate { | ||||||
|  |           type = "nixos"; | ||||||
|  |           system = "x86_64-linux"; | ||||||
|  |           host = "iriy"; | ||||||
|  |         }; | ||||||
|  |         efir = gen.generate { | ||||||
|  |           type = "nixos"; | ||||||
|  |           system = "x86_64-linux"; | ||||||
|  |           host = "efir"; | ||||||
|  |         }; | ||||||
|  |         avalon = gen.generate { | ||||||
|  |           type = "nixos"; | ||||||
|  |           system = "x86_64-linux"; | ||||||
|  |           host = "avalon"; | ||||||
|  |         }; | ||||||
|  |  | ||||||
|  |       }; | ||||||
|  |       darwinConfigurations = { | ||||||
|  |         asgard = gen.generate { | ||||||
|  |           type = "macos"; | ||||||
|  |           system = "x86_64-darwin"; | ||||||
|  |           host = "asgard"; | ||||||
|  |         }; | ||||||
|       }; |       }; | ||||||
|       darwinConfigurations = { asgard = gen.generate { host = "asgard"; }; }; |  | ||||||
|       homeConfigurations = { |       homeConfigurations = { | ||||||
|         yomi = gen.generate { host = "example"; }; |         yomi = gen.generate { | ||||||
|         example = gen.generate { host = "example"; }; |           type = "home"; | ||||||
|  |           system = "arm-64"; | ||||||
|  |           host = "example"; | ||||||
|  |         }; | ||||||
|  |         example = gen.generate { | ||||||
|  |           type = "home"; | ||||||
|  |           system = "-"; # supports any | ||||||
|  |           host = "example"; | ||||||
|  |         }; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,68 +1,51 @@ | |||||||
| { inputs, ... }: { | { inputs, ... }: { | ||||||
|   generate = { host }: |   generate = { type, system, host }: | ||||||
|     let |     ({ | ||||||
|       syscfg = import ./systems/${host}/cfg.nix; |  | ||||||
|       nameValuePair = name: value: { inherit name value; }; |  | ||||||
|     in ({ |  | ||||||
|       "nixos" = inputs.nixpkgs.lib.nixosSystem { |       "nixos" = inputs.nixpkgs.lib.nixosSystem { | ||||||
|         system = syscfg.syscfg.system; |         system = system; | ||||||
|         specialArgs = { inherit inputs; }; |  | ||||||
|         modules = [ |         modules = [ | ||||||
|           ./modules/shared/syscfg |  | ||||||
|           ./modules/shared/sops |  | ||||||
|           ./modules/nixos |  | ||||||
|           syscfg |  | ||||||
|           ./systems/${host} |  | ||||||
|           inputs.arion.nixosModules.arion |  | ||||||
|           inputs.sops-nix.nixosModules.sops |           inputs.sops-nix.nixosModules.sops | ||||||
|  |           ./modules/nixos | ||||||
|  |           ./systems/${host} | ||||||
|           inputs.home-manager.nixosModules.home-manager |           inputs.home-manager.nixosModules.home-manager | ||||||
|           { |           { | ||||||
|             home-manager.useGlobalPkgs = true; |             home-manager.useGlobalPkgs = true; | ||||||
|             home-manager.useUserPackages = true; |             home-manager.useUserPackages = true; | ||||||
|             home-manager.extraSpecialArgs = { inherit inputs; }; |             home-manager.extraSpecialArgs = { inherit inputs; }; | ||||||
|             home-manager.users = builtins.listToAttrs (map (userConfig: |             home-manager.users.sora = { | ||||||
|               nameValuePair userConfig.username { |               imports = [ | ||||||
|                 imports = [ |                 ./modules/home | ||||||
|                   ./modules/shared/syscfg |                 inputs.nix-colors.homeManagerModule | ||||||
|                   ./modules/shared/colors |                 inputs.hyprland.homeManagerModules.default | ||||||
|                   ./modules/home |                 ./systems/${host}/home.nix | ||||||
|                   syscfg |               ]; | ||||||
|                   { usercfg = userConfig; } |             }; | ||||||
|                   inputs.nix-colors.homeManagerModule |  | ||||||
|                   # inputs.hyprland.homeManagerModules.default |  | ||||||
|                   inputs.sops-nix.homeManagerModules.sops |  | ||||||
|                 ]; |  | ||||||
|               }) syscfg.syscfg.users); |  | ||||||
|           } |           } | ||||||
|         ]; |         ]; | ||||||
|       }; |       }; | ||||||
|  |  | ||||||
|       "macos" = inputs.darwin.lib.darwinSystem { |       "macos" = inputs.darwin.lib.darwinSystem { | ||||||
|         system = syscfg.system; |         system = system; | ||||||
|         modules = [ |         modules = [ | ||||||
|           ./modules/shared/syscfg |  | ||||||
|           ./modules/shared/sops |  | ||||||
|           syscfg |  | ||||||
|           ./systems/${host} |  | ||||||
|           inputs.sops-nix.nixosModules.sops |           inputs.sops-nix.nixosModules.sops | ||||||
|  |           ./systems/${host} | ||||||
|           inputs.home-manager.darwinModules.home-manager |           inputs.home-manager.darwinModules.home-manager | ||||||
|           { |           { | ||||||
|             home-manager.useGlobalPkgs = true; |             home-manager.useGlobalPkgs = true; | ||||||
|             home-manager.useUserPackages = true; |             home-manager.useUserPackages = true; | ||||||
|             home-manager.extraSpecialArgs = { inherit inputs; }; |             home-manager.extraSpecialArgs = { inherit inputs; }; | ||||||
|             home-manager.users = builtins.listToAttrs (map (userConfig: |             home-manager.users.sora = { | ||||||
|               nameValuePair userConfig.username { |               imports = [ | ||||||
|                 imports = [ |                 inputs.nix-colors.homeManagerModule | ||||||
|                   inputs.nix-colors.homeManagerModule |                 inputs.hyprland.homeManagerModules.default | ||||||
|                   inputs.sops-nix.homeManagerModules.sops |                 ./systems/${host}/home.nix | ||||||
|                 ]; |               ]; | ||||||
|               }) syscfg.syscfg.users); |             }; | ||||||
|           } |           } | ||||||
|         ]; |         ]; | ||||||
|       }; |       }; | ||||||
|       "home" = inputs.home-manager.lib.homeManagerConfiguration { |       "home" = inputs.home-manager.lib.homeManagerConfiguration { | ||||||
|         modules = [ ./modules/home ]; |         modules = [ ./modules/home ./systems/${host}/home.nix ]; | ||||||
|       }; |       }; | ||||||
|       _ = throw "Unsupported system"; |       _ = throw "Unsupported system"; | ||||||
|     }.${syscfg.syscfg.type}); |     }.${type}); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,21 +1,12 @@ | |||||||
| { lib, config, ... }: { | { lib, config, ... }: { | ||||||
|  |  | ||||||
|   #environment.sessionVariables.SOPS_AGE_KEY_FILE = keyFilePath; |  | ||||||
|   systemd.user.startServices = "sd-switch"; |   systemd.user.startServices = "sd-switch"; | ||||||
|   programs.home-manager.enable = true; |   programs.home-manager.enable = true; | ||||||
|  |  | ||||||
|   home = { |   home = { | ||||||
|     username = "${config.usercfg.username}"; |     username = "${config.homecfg.username}"; | ||||||
|     homeDirectory = "/home/${config.usercfg.username}"; |     homeDirectory = "/home/${config.homecfg.username}"; | ||||||
|  |  | ||||||
|     stateVersion = "24.11"; |     stateVersion = "23.11"; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|  |  | ||||||
|   #SOPS |  | ||||||
|   # sops.defaultSopsFile = ./sops/${config.usercfg.username}.yaml; |  | ||||||
|   # sops.age.keyFile = "/var/lib/sops-nix/age-key.txt"; |  | ||||||
|   # sops.age.generateKey = true; |  | ||||||
|   # sops.secrets."github_user_key" = { }; |  | ||||||
|   # sops.secrets."curse_forge_key" = { }; |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,69 +0,0 @@ | |||||||
| curse_forge_key: ENC[AES256_GCM,data:PhhwPhUys/WDzXb40iFlrUcwFEJVzi49vDlm5Hpc7IUwbBiQI1Zvi6115THMvarnGESDyouPfoZP0wha,iv:x//EzR4QwdD0UxqV97yUepc39DopoqiDT21unpF9R2E=,tag:5jM1EibWo0wI+PS70+kb/Q==,type:str] |  | ||||||
| github_user_key: ENC[AES256_GCM,data:RvBsQjWGd2qRCvBzcpMv8FIXGY/GiPd9o0x2Oq+NlbXxR2NMqNBNLw==,iv:99AcmOWFft7XQAn7YrGjZuCvz0M5wUkYeInsWwyeUFM=,tag:wkw2YQGi9j/8XtOFd8KhdQ==,type:str] |  | ||||||
| sops: |  | ||||||
|     kms: [] |  | ||||||
|     gcp_kms: [] |  | ||||||
|     azure_kv: [] |  | ||||||
|     hc_vault: [] |  | ||||||
|     age: |  | ||||||
|         - recipient: age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg |  | ||||||
|           enc: | |  | ||||||
|             -----BEGIN AGE ENCRYPTED FILE----- |  | ||||||
|             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBraWFDRFUxQ2l5OWV1OXNK |  | ||||||
|             UExEbWZkM0kzVk1rZG4yY3pBLzdMVWVJS0UwCnhlWFJ5T2lZUXJyNkg1ejQxaU1t |  | ||||||
|             L3F2RUhldTY3N2xXL0hwczNKRzNjcncKLS0tIEkycHoxcDBGNyt2V3RDY29wNGVp |  | ||||||
|             TGg5Rk05VkRsaXM1Q0NxMmtMajRORDAKqjFldiAYJKjmnkeDkwanjYvhL6645DZ5 |  | ||||||
|             dVXExjqO/DG733ge8HFyKzpfpkzRymV1giUwxBdII1dd0mJ2ncINeA== |  | ||||||
|             -----END AGE ENCRYPTED FILE----- |  | ||||||
|         - recipient: age1ms8f0ysv6vakxepvt69fejczs6tddexepesdv4rkgtheehj3nu4sc6290s |  | ||||||
|           enc: | |  | ||||||
|             -----BEGIN AGE ENCRYPTED FILE----- |  | ||||||
|             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3UkRjblIvYStZUzQyRHA1 |  | ||||||
|             ZGVXeHhrN0kyVkxZdms5U3gwVFlPMW12MVJjCjRkVURpZXBzb0tYenB4dGxKamh6 |  | ||||||
|             VXVBMmo1Ujkvd2VTRExyWE5MbVJaclUKLS0tIDVhRkYzZmEzUG00Q2IwOWZUMVVt |  | ||||||
|             ODVIbytpcjN1cVMyaG1qVVdkRmtaMzQKNsvD9DpK/raDBob+IcuNk72tQDts36kJ |  | ||||||
|             QhtoLy8MvUymi49PdEWrgyf68w5XwRO/U4iINhR0qzm0glg/XcyHjA== |  | ||||||
|             -----END AGE ENCRYPTED FILE----- |  | ||||||
|         - recipient: age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg |  | ||||||
|           enc: | |  | ||||||
|             -----BEGIN AGE ENCRYPTED FILE----- |  | ||||||
|             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJc3hKWkk3ckNOY2UyTVhG |  | ||||||
|             MmtLaEd0K04yaGxiOUoxMXkzOEFnYis4VkhnCktDRFM2bS8vb05OWDdwa0RwRlNO |  | ||||||
|             cmlZemtxVGZ6S0tNTDV1cmE1N0pVWnMKLS0tIE9EZllycHJpcEY2R1pwOFhOZEU3 |  | ||||||
|             L01IcytDd3BPb0VOTW9DQ2lUdUVJS0kKiD+C+3mK1b/eIwCEFanFgYGLNk3JNPQ7 |  | ||||||
|             i1UqzbHVxSd0q/YVwdKAcj0jA6EezGm275tgq7IVsy2sHkvRMaEDtQ== |  | ||||||
|             -----END AGE ENCRYPTED FILE----- |  | ||||||
|         - recipient: age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg |  | ||||||
|           enc: | |  | ||||||
|             -----BEGIN AGE ENCRYPTED FILE----- |  | ||||||
|             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAweVU3TkxFZzRnd2I2clN2 |  | ||||||
|             ZTlTWmhwQkhVc1hnOXFvZVVDSWpHMVh1TGtrCkc3M1pUTnZCMHpvYXB5ZVhreGxa |  | ||||||
|             ZVY2cG5Ja2ltL3k2Q1VEalc5TTNFMXcKLS0tIGd5UWl0RGVXT211Zm51dlB6WFZ1 |  | ||||||
|             STRtTVpVTCtVZ1FUNENqWFFVNTNuaVUKN6HRiZjTdENeif8dJ29urBxPXDaosjjY |  | ||||||
|             InN4Ko6YUaGfvB1DTrKIzrxOpsHS+XjisoGfT71tJwwEOoREklEO/A== |  | ||||||
|             -----END AGE ENCRYPTED FILE----- |  | ||||||
|     lastmodified: "2024-12-23T18:05:22Z" |  | ||||||
|     mac: ENC[AES256_GCM,data:YSi2xIwz50VxUDL3QzGVUwRWUgZhvudSLCKgwIbWm8gkuAJ/V2sVRhJNVQJ1YvLO44ob5hmrgR4wSnOdAbS7FrpbLcJuoYBjVUTDjy+j6otnIDxEcYeciHhZ1pV/OiydBmJC+lZ4+SRdWdokL2HaXRKgc9QT9e/MdAbFIzI1x90=,iv:8rj8yEqHTMgoGu31RVskYizmROB/5I0ajZJ/EcmlVfE=,tag:PILFCyXY8sXYGxCEHS7qCg==,type:str] |  | ||||||
|     pgp: |  | ||||||
|         - created_at: "2023-04-20T10:20:17Z" |  | ||||||
|           enc: |- |  | ||||||
|             -----BEGIN PGP MESSAGE----- |  | ||||||
|  |  | ||||||
|             wcFMA6R3Y9nD7qMBAQ/8CVWQaYKfOzvPIllZyyWpUjHRLLXaR8MNJ8U5WI/tdwdN |  | ||||||
|             9UScDYJFuYRW7Q9s4Mt961kBGpaHqe9MUZBxUDlYX59+EN3FbO/eMQ5OqI05ESmL |  | ||||||
|             TvZB4+S9C5o73nuypSDNvYz+Lgq6DO25ZPhXdtPhx2DE4G31/wft/LpxhjalIjI8 |  | ||||||
|             MU0Dv22R4qC+glJbe4GIF2IJ8XoxnnzjiGeSqiyv0QIBM0SzOtA5sKwNohWBnW7g |  | ||||||
|             7vxOTm5+kyzG0dDjt3tFApgPDaA1wjofzhRuuveF52VBsuIA2opFdpqkyICvK6rn |  | ||||||
|             NB5kUaPlY6A0m+n0oHSfY5wm/AnHNE4Oob/ifumAaB0EAJVUTRauI5M8SeJF0ya1 |  | ||||||
|             U0IQ9N2lb7Y6q4pqHywIa6fnylsqCfxInAYKMuslRq8f9t/qakb4/MYcnPrwpzjw |  | ||||||
|             73/naiNoJmG6NVTkM52qTtOqZAmsaQd5cigTuPW2Z2CJq1yLZEVGSSd1DUGUjBDK |  | ||||||
|             nQGucpVVVpD+ifrIPz+Iqwy+5NoZZm/Oa9pKJGFzqXinnDNZaqtgpmTw9QxcSeaP |  | ||||||
|             VvGZG9CDd89MtAm1VQyuqi1bQ2faq3G0xNrLl7xUsfmjx4ofW+JXR87OzvGfLPhu |  | ||||||
|             Sjl3kS9j5/MEBRBg3n9gNkgSu5Sy3ilhckY3yjTgAT9Gw2giDhCiUXi1/7KrGprS |  | ||||||
|             UQHPCSsjyWsyuYVa3lAP/WPdVclc4WOdfYcetUCXBVP7LQr0bq+IG+2J0nnY3mDt |  | ||||||
|             Va5k4sP1qu6Ecrs2JioQ1V2H+VmcrRykBWnMXl1tDSWKMA== |  | ||||||
|             =pS8X |  | ||||||
|             -----END PGP MESSAGE----- |  | ||||||
|           fp: 4E241635F8EDD2919D2FB44CA362EA0491E2EEA0 |  | ||||||
|     unencrypted_suffix: _unencrypted |  | ||||||
|     version: 3.9.2 |  | ||||||
| @@ -6,86 +6,86 @@ | |||||||
|     # Theme generated from: ${config.colorScheme.slug} |     # Theme generated from: ${config.colorScheme.slug} | ||||||
|  |  | ||||||
|     # Main background, empty for terminal default, need to be empty if you want transparent background |     # Main background, empty for terminal default, need to be empty if you want transparent background | ||||||
|     theme[main_bg]="#${config.colorScheme.palette.base00}" |     theme[main_bg]="#${config.colorScheme.colors.base00}" | ||||||
|  |  | ||||||
|     # Main text color |     # Main text color | ||||||
|     theme[main_fg]="#${config.colorScheme.palette.base07}" |     theme[main_fg]="#${config.colorScheme.colors.base07}" | ||||||
|  |  | ||||||
|     # Title color for boxes |     # Title color for boxes | ||||||
|     theme[title]="#${config.colorScheme.palette.base07}" |     theme[title]="#${config.colorScheme.colors.base07}" | ||||||
|  |  | ||||||
|     # Higlight color for keyboard shortcuts |     # Higlight color for keyboard shortcuts | ||||||
|     theme[hi_fg]="#${config.colorScheme.palette.base0E}" |     theme[hi_fg]="#${config.colorScheme.colors.base0E}" | ||||||
|  |  | ||||||
|     # Background color of selected item in processes box |     # Background color of selected item in processes box | ||||||
|     theme[selected_bg]="#${config.colorScheme.palette.base0C}" |     theme[selected_bg]="#${config.colorScheme.colors.base0C}" | ||||||
|  |  | ||||||
|     # Foreground color of selected item in processes box |     # Foreground color of selected item in processes box | ||||||
|     theme[selected_fg]="#${config.colorScheme.palette.base00}" |     theme[selected_fg]="#${config.colorScheme.colors.base00}" | ||||||
|  |  | ||||||
|     # Color of inactive/disabled text |     # Color of inactive/disabled text | ||||||
|     theme[inactive_fg]="#${config.colorScheme.palette.base02}" |     theme[inactive_fg]="#${config.colorScheme.colors.base02}" | ||||||
|  |  | ||||||
|     # Color of text appearing on top of graphs, i.e uptime and current network graph scaling |     # Color of text appearing on top of graphs, i.e uptime and current network graph scaling | ||||||
|     theme[graph_text]="#${config.colorScheme.palette.base05}" |     theme[graph_text]="#${config.colorScheme.colors.base05}" | ||||||
|  |  | ||||||
|     # Misc colors for processes box including mini cpu graphs, details memory graph and details status text |     # Misc colors for processes box including mini cpu graphs, details memory graph and details status text | ||||||
|     theme[proc_misc]="#${config.colorScheme.palette.base0C}" |     theme[proc_misc]="#${config.colorScheme.colors.base0C}" | ||||||
|  |  | ||||||
|     # Cpu box outline color |     # Cpu box outline color | ||||||
|     theme[cpu_box]="#${config.colorScheme.palette.base02}" |     theme[cpu_box]="#${config.colorScheme.colors.base02}" | ||||||
|  |  | ||||||
|     # Memory/disks box outline color |     # Memory/disks box outline color | ||||||
|     theme[mem_box]="#${config.colorScheme.palette.base02}" |     theme[mem_box]="#${config.colorScheme.colors.base02}" | ||||||
|  |  | ||||||
|     # Net up/down box outline color |     # Net up/down box outline color | ||||||
|     theme[net_box]="#${config.colorScheme.palette.base02}" |     theme[net_box]="#${config.colorScheme.colors.base02}" | ||||||
|  |  | ||||||
|     # Processes box outline color |     # Processes box outline color | ||||||
|     theme[proc_box]="#${config.colorScheme.palette.base02}" |     theme[proc_box]="#${config.colorScheme.colors.base02}" | ||||||
|  |  | ||||||
|     # Box divider line and small boxes line color |     # Box divider line and small boxes line color | ||||||
|     theme[div_line]="#${config.colorScheme.palette.base02}" |     theme[div_line]="#${config.colorScheme.colors.base02}" | ||||||
|  |  | ||||||
|     # Temperature graph colors |     # Temperature graph colors | ||||||
|     theme[temp_start]="#${config.colorScheme.palette.base0D}" |     theme[temp_start]="#${config.colorScheme.colors.base0D}" | ||||||
|     theme[temp_mid]="" |     theme[temp_mid]="" | ||||||
|     theme[temp_end]="#${config.colorScheme.palette.base0F}" |     theme[temp_end]="#${config.colorScheme.colors.base0F}" | ||||||
|  |  | ||||||
|     # CPU graph colors |     # CPU graph colors | ||||||
|     theme[cpu_start]="#${config.colorScheme.palette.base0C}" |     theme[cpu_start]="#${config.colorScheme.colors.base0C}" | ||||||
|     theme[cpu_mid]="" |     theme[cpu_mid]="" | ||||||
|     theme[cpu_end]="#${config.colorScheme.palette.base0C}" |     theme[cpu_end]="#${config.colorScheme.colors.base0C}" | ||||||
|  |  | ||||||
|     # Mem/Disk free meter |     # Mem/Disk free meter | ||||||
|     theme[free_start]="#${config.colorScheme.palette.base0A}" |     theme[free_start]="#${config.colorScheme.colors.base0A}" | ||||||
|     theme[free_mid]="" |     theme[free_mid]="" | ||||||
|     theme[free_end]="#${config.colorScheme.palette.base0A}" |     theme[free_end]="#${config.colorScheme.colors.base0A}" | ||||||
|  |  | ||||||
|     # Mem/Disk cached meter |     # Mem/Disk cached meter | ||||||
|     theme[cached_start]="#${config.colorScheme.palette.base09}" |     theme[cached_start]="#${config.colorScheme.colors.base09}" | ||||||
|     theme[cached_mid]="" |     theme[cached_mid]="" | ||||||
|     theme[cached_end]="#${config.colorScheme.palette.base09}" |     theme[cached_end]="#${config.colorScheme.colors.base09}" | ||||||
|  |  | ||||||
|     # Mem/Disk available meter |     # Mem/Disk available meter | ||||||
|     theme[available_start]="#${config.colorScheme.palette.base0B}" |     theme[available_start]="#${config.colorScheme.colors.base0B}" | ||||||
|     theme[available_mid]="" |     theme[available_mid]="" | ||||||
|     theme[available_end]="#${config.colorScheme.palette.base0B}" |     theme[available_end]="#${config.colorScheme.colors.base0B}" | ||||||
|  |  | ||||||
|     # Mem/Disk used meter |     # Mem/Disk used meter | ||||||
|     theme[used_start]="#${config.colorScheme.palette.base08}" |     theme[used_start]="#${config.colorScheme.colors.base08}" | ||||||
|     theme[used_mid]="" |     theme[used_mid]="" | ||||||
|     theme[used_end]="#${config.colorScheme.palette.base08}" |     theme[used_end]="#${config.colorScheme.colors.base08}" | ||||||
|  |  | ||||||
|     # Download graph colors |     # Download graph colors | ||||||
|     theme[download_start]="#${config.colorScheme.palette.base02}" |     theme[download_start]="#${config.colorScheme.colors.base02}" | ||||||
|     theme[download_mid]="" |     theme[download_mid]="" | ||||||
|     theme[download_end]="#${config.colorScheme.palette.base0D}" |     theme[download_end]="#${config.colorScheme.colors.base0D}" | ||||||
|  |  | ||||||
|     # Upload graph colors |     # Upload graph colors | ||||||
|     theme[upload_start]="#${config.colorScheme.palette.base02}" |     theme[upload_start]="#${config.colorScheme.colors.base02}" | ||||||
|     theme[upload_mid]="" |     theme[upload_mid]="" | ||||||
|     theme[upload_end]="#${config.colorScheme.palette.base0E}" |     theme[upload_end]="#${config.colorScheme.colors.base0E}" | ||||||
|       |       | ||||||
|   ''; |   ''; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -2,10 +2,10 @@ | |||||||
|  |  | ||||||
|   programs.git = { |   programs.git = { | ||||||
|     enable = true; |     enable = true; | ||||||
|     userEmail = "${config.usercfg.git.email}"; |     userEmail = "${config.homecfg.git.email}"; | ||||||
|     userName = "${config.usercfg.git.username}"; |     userName = "${config.homecfg.git.username}"; | ||||||
|     signing = { |     signing = { | ||||||
|       key = "${config.usercfg.git.key}"; |       key = "${config.homecfg.git.key}"; | ||||||
|       signByDefault = true; |       signByDefault = true; | ||||||
|     }; |     }; | ||||||
|     ignores = [ "*result*" ".direnv" "node_modules" ]; |     ignores = [ "*result*" ".direnv" "node_modules" ]; | ||||||
|   | |||||||
| @@ -2,53 +2,53 @@ | |||||||
|   programs.kitty = { |   programs.kitty = { | ||||||
|     enable = true; |     enable = true; | ||||||
|     settings = { |     settings = { | ||||||
|       foreground = "#${config.colorScheme.palette.base07}"; |       foreground = "#${config.colorScheme.colors.base07}"; | ||||||
|       background = "#${config.colorScheme.palette.base00}"; |       background = "#${config.colorScheme.colors.base00}"; | ||||||
|       selection_foreground = "#${config.colorScheme.palette.base07}"; |       selection_foreground = "#${config.colorScheme.colors.base07}"; | ||||||
|       selection_background = "#${config.colorScheme.palette.base03}"; |       selection_background = "#${config.colorScheme.colors.base03}"; | ||||||
|       background_opacity = "0.9"; |       background_opacity = "0.9"; | ||||||
|  |  | ||||||
|       cursor = "#${config.colorScheme.palette.base05}"; |       cursor = "#${config.colorScheme.colors.base05}"; | ||||||
|       cursor_text_color = "#${config.colorScheme.palette.base01}"; |       cursor_text_color = "#${config.colorScheme.colors.base01}"; | ||||||
|  |  | ||||||
|       url_color = "#${config.colorScheme.palette.base05}"; |       url_color = "#${config.colorScheme.colors.base05}"; | ||||||
|  |  | ||||||
|       active_border_color = "#${config.colorScheme.palette.base05}"; |       active_border_color = "#${config.colorScheme.colors.base05}"; | ||||||
|       inactive_border_color = "#${config.colorScheme.palette.base03}"; |       inactive_border_color = "#${config.colorScheme.colors.base03}"; | ||||||
|       bell_border_color = "#${config.colorScheme.palette.base09}"; |       bell_border_color = "#${config.colorScheme.colors.base09}"; | ||||||
|  |  | ||||||
|       wayland_titlebar_color = "system"; |       wayland_titlebar_color = "system"; | ||||||
|       macos_titlebar_color = "system"; |       macos_titlebar_color = "system"; | ||||||
|  |  | ||||||
|       active_tab_foreground = "#${config.colorScheme.palette.base0C}"; |       active_tab_foreground = "#${config.colorScheme.colors.base0C}"; | ||||||
|       active_tab_background = "#${config.colorScheme.palette.base01}"; |       active_tab_background = "#${config.colorScheme.colors.base01}"; | ||||||
|       inactive_tab_foreground = "#${config.colorScheme.palette.base06}"; |       inactive_tab_foreground = "#${config.colorScheme.colors.base06}"; | ||||||
|       inactive_tab_background = "#${config.colorScheme.palette.base00}"; |       inactive_tab_background = "#${config.colorScheme.colors.base00}"; | ||||||
|       tab_bar_background = "#${config.colorScheme.palette.base02}"; |       tab_bar_background = "#${config.colorScheme.colors.base02}"; | ||||||
|  |  | ||||||
|       mark1_foreground = "#${config.colorScheme.palette.base00}"; |       mark1_foreground = "#${config.colorScheme.colors.base00}"; | ||||||
|       mark1_background = "#${config.colorScheme.palette.base0C}"; |       mark1_background = "#${config.colorScheme.colors.base0C}"; | ||||||
|       mark2_foreground = "#${config.colorScheme.palette.base00}"; |       mark2_foreground = "#${config.colorScheme.colors.base00}"; | ||||||
|       mark2_background = "#${config.colorScheme.palette.base0E}"; |       mark2_background = "#${config.colorScheme.colors.base0E}"; | ||||||
|       mark3_foreground = "#${config.colorScheme.palette.base00}"; |       mark3_foreground = "#${config.colorScheme.colors.base00}"; | ||||||
|       mark3_background = "#${config.colorScheme.palette.base0A}"; |       mark3_background = "#${config.colorScheme.colors.base0A}"; | ||||||
|  |  | ||||||
|       color0 = "#${config.colorScheme.palette.base01}"; |       color0 = "#${config.colorScheme.colors.base01}"; | ||||||
|       color1 = "#${config.colorScheme.palette.base0F}"; |       color1 = "#${config.colorScheme.colors.base0F}"; | ||||||
|       color2 = "#${config.colorScheme.palette.base0A}"; |       color2 = "#${config.colorScheme.colors.base0A}"; | ||||||
|       color3 = "#${config.colorScheme.palette.base09}"; |       color3 = "#${config.colorScheme.colors.base09}"; | ||||||
|       color4 = "#${config.colorScheme.palette.base0C}"; |       color4 = "#${config.colorScheme.colors.base0C}"; | ||||||
|       color5 = "#${config.colorScheme.palette.base0D}"; |       color5 = "#${config.colorScheme.colors.base0D}"; | ||||||
|       color6 = "#${config.colorScheme.palette.base0B}"; |       color6 = "#${config.colorScheme.colors.base0B}"; | ||||||
|       color7 = "#${config.colorScheme.palette.base07}"; |       color7 = "#${config.colorScheme.colors.base07}"; | ||||||
|       color8 = "#${config.colorScheme.palette.base01}"; |       color8 = "#${config.colorScheme.colors.base01}"; | ||||||
|       color9 = "#${config.colorScheme.palette.base0F}"; |       color9 = "#${config.colorScheme.colors.base0F}"; | ||||||
|       color10 = "#${config.colorScheme.palette.base0A}"; |       color10 = "#${config.colorScheme.colors.base0A}"; | ||||||
|       color11 = "#${config.colorScheme.palette.base09}"; |       color11 = "#${config.colorScheme.colors.base09}"; | ||||||
|       color12 = "#${config.colorScheme.palette.base0C}"; |       color12 = "#${config.colorScheme.colors.base0C}"; | ||||||
|       color13 = "#${config.colorScheme.palette.base0D}"; |       color13 = "#${config.colorScheme.colors.base0D}"; | ||||||
|       color14 = "#${config.colorScheme.palette.base0B}"; |       color14 = "#${config.colorScheme.colors.base0B}"; | ||||||
|       color15 = "#${config.colorScheme.palette.base07}"; |       color15 = "#${config.colorScheme.colors.base07}"; | ||||||
|  |  | ||||||
|       font_size = 12; |       font_size = 12; | ||||||
|       window-padding-width = 15; |       window-padding-width = 15; | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ | |||||||
|     cbonsai |     cbonsai | ||||||
|     pipes-rs |     pipes-rs | ||||||
|     cmatrix |     cmatrix | ||||||
|     #cava |     cava | ||||||
|     sl |     sl | ||||||
|   ]; |   ]; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -10,36 +10,36 @@ | |||||||
|     enableZshIntegration = true; |     enableZshIntegration = true; | ||||||
|     settings = { |     settings = { | ||||||
|       format = lib.concatStrings [ |       format = lib.concatStrings [ | ||||||
|         "[░▒▓](#${config.colorScheme.palette.base06})" |         "[░▒▓](#${config.colorScheme.colors.base06})" | ||||||
|         "$username" |         "$username" | ||||||
|         "$hostname" |         "$hostname" | ||||||
|         "[](bg:#${config.colorScheme.palette.base05} fg:#${config.colorScheme.palette.base06})" |         "[](bg:#${config.colorScheme.colors.base05} fg:#${config.colorScheme.colors.base06})" | ||||||
|         "$directory" |         "$directory" | ||||||
|         "[](bg:#${config.colorScheme.palette.base04} fg:#${config.colorScheme.palette.base05})" |         "[](bg:#${config.colorScheme.colors.base04} fg:#${config.colorScheme.colors.base05})" | ||||||
|         "[ ](bg:#${config.colorScheme.palette.base04})" |         "[ ](bg:#${config.colorScheme.colors.base04})" | ||||||
|         "$env_var" |         "$env_var" | ||||||
|         "[](bg:#${config.colorScheme.palette.base00} fg:#${config.colorScheme.palette.base04})" |         "[](bg:#${config.colorScheme.colors.base00} fg:#${config.colorScheme.colors.base04})" | ||||||
|         " " |         " " | ||||||
|       ]; |       ]; | ||||||
|       username = { |       username = { | ||||||
|         show_always = true; |         show_always = true; | ||||||
|         style_user = |         style_user = | ||||||
|           "bg:#${config.colorScheme.palette.base06} fg:#${config.colorScheme.palette.base00}"; |           "bg:#${config.colorScheme.colors.base06} fg:#${config.colorScheme.colors.base00}"; | ||||||
|         style_root = |         style_root = | ||||||
|           "bg:#${config.colorScheme.palette.base06} fg:#${config.colorScheme.palette.base00}"; |           "bg:#${config.colorScheme.colors.base06} fg:#${config.colorScheme.colors.base00}"; | ||||||
|         format = "[ $user]($style)"; |         format = "[ $user]($style)"; | ||||||
|       }; |       }; | ||||||
|       hostname = { |       hostname = { | ||||||
|         ssh_symbol = ""; |         ssh_symbol = ""; | ||||||
|         style = |         style = | ||||||
|           "bg:#${config.colorScheme.palette.base06} fg:#${config.colorScheme.palette.base00}"; |           "bg:#${config.colorScheme.colors.base06} fg:#${config.colorScheme.colors.base00}"; | ||||||
|         format = "[@$hostname]($style)"; |         format = "[@$hostname]($style)"; | ||||||
|         ssh_only = false; |         ssh_only = false; | ||||||
|         disabled = false; |         disabled = false; | ||||||
|       }; |       }; | ||||||
|       directory = { |       directory = { | ||||||
|         style = |         style = | ||||||
|           "bg:#${config.colorScheme.palette.base05} fg:#${config.colorScheme.palette.base00}"; |           "bg:#${config.colorScheme.colors.base05} fg:#${config.colorScheme.colors.base00}"; | ||||||
|         format = "[ $path ]($style)"; |         format = "[ $path ]($style)"; | ||||||
|         truncation_length = 3; |         truncation_length = 3; | ||||||
|         truncation_symbol = "…/"; |         truncation_symbol = "…/"; | ||||||
| @@ -54,7 +54,7 @@ | |||||||
|         variable = "SHELLENVTYPE"; |         variable = "SHELLENVTYPE"; | ||||||
|         default = ""; |         default = ""; | ||||||
|         style = |         style = | ||||||
|           "bg:#${config.colorScheme.palette.base04} fg:#${config.colorScheme.palette.base00}"; |           "bg:#${config.colorScheme.colors.base04} fg:#${config.colorScheme.colors.base00}"; | ||||||
|         format = "[$env_value]($style)"; |         format = "[$env_value]($style)"; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
|   | |||||||
| @@ -14,9 +14,5 @@ in { | |||||||
|       "ssh" = "TERM=xterm-256color  ${pkgs.openssh}/bin/ssh"; |       "ssh" = "TERM=xterm-256color  ${pkgs.openssh}/bin/ssh"; | ||||||
|       "top" = "btop"; |       "top" = "btop"; | ||||||
|     }; |     }; | ||||||
|     initContent = '' |  | ||||||
|       sopsu() {nix-shell -p sops --run "sops updatekeys $1";} |  | ||||||
|       sopsn() {nix-shell -p sops --run "sops $1";} |  | ||||||
|     ''; |  | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1 +1 @@ | |||||||
| { ... }: { imports = [ ./base ./cli ./gui ./wayland ./xdg ./xorg ]; } | { ... }: { imports = [ ./base ./cli ./gui ./homecfg ./wayland ./xdg ./xorg ]; } | ||||||
|   | |||||||
| @@ -1,3 +1,3 @@ | |||||||
| { ... }: { | { ... }: { | ||||||
|   imports = [ ./develop ./firefox ./images ./mpv ./pipewire ./zathura ]; |   imports = [ ./develop ./firefox ./images ./mpv ./pipewire ./vosk ./zathura ]; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,7 +1,12 @@ | |||||||
| { lib, config, pkgs, ... }: { | { lib, config, pkgs, ... }: { | ||||||
|   imports = [ ./vscodium ]; |  | ||||||
|  |  | ||||||
|   config = lib.mkIf (config.syscfg.make.develop) { |     imports = [ ./vscodium ]; | ||||||
|     home.packages = with pkgs; [ blender godot_4 openscad-unstable bambu-studio pandoc]; |  | ||||||
|  |   config = lib.mkIf (config.homecfg.make.develop) { | ||||||
|  |  | ||||||
|  |     home.packages = with pkgs; [ | ||||||
|  |         blender | ||||||
|  |         godot_4 | ||||||
|  |     ]; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,19 +1,17 @@ | |||||||
| { lib, config, pkgs, ... }: { | { lib, config, pkgs, ... }: { | ||||||
|  |  | ||||||
|   config = lib.mkIf (config.syscfg.make.develop) { |   config = lib.mkIf (config.homecfg.make.develop) { | ||||||
|     programs.vscode = { |     programs.vscode = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       package = pkgs.vscodium; |       package = pkgs.vscodium; | ||||||
|       #profiles.default = { |       extensions = with pkgs.vscode-extensions; [ | ||||||
|         profiles.default.extensions = with pkgs.vscode-extensions; [ |         bbenoist.nix | ||||||
|           bbenoist.nix |         esbenp.prettier-vscode | ||||||
|           esbenp.prettier-vscode |         golang.go | ||||||
|           golang.go |         ms-python.vscode-pylance | ||||||
|           ms-python.vscode-pylance |         ms-vscode.cpptools | ||||||
|           ms-vscode.cpptools |         dbaeumer.vscode-eslint | ||||||
|           dbaeumer.vscode-eslint |       ]; | ||||||
|         ]; |  | ||||||
|       #}; |  | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| { lib, config, ... }: { | { lib, config, ... }: { | ||||||
|   config = lib.mkIf (config.syscfg.make.gui) { |   config = lib.mkIf (config.homecfg.make.gui) { | ||||||
|     programs.firefox = { |     programs.firefox = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       profiles = { |       profiles = { | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { lib, config, pkgs, ... }: { | { lib, config, pkgs, ... }: { | ||||||
|  |  | ||||||
|   config = lib.mkIf (config.syscfg.make.gui) { |   config = lib.mkIf (config.homecfg.make.gui) { | ||||||
|     programs.imv.enable = true; |     programs.imv.enable = true; | ||||||
|  |  | ||||||
|     programs.obs-studio.enable = true; |     programs.obs-studio.enable = true; | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { lib, config, pkgs, ... }: { | { lib, config, pkgs, ... }: { | ||||||
|  |  | ||||||
|   config = lib.mkIf (config.syscfg.make.gui) { |   config = lib.mkIf (config.homecfg.make.gui) { | ||||||
|     programs.mpv = { |     programs.mpv = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       scripts = with pkgs; [ mpvScripts.mpris ]; |       scripts = with pkgs; [ mpvScripts.mpris ]; | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { lib, config, ... }: { | { lib, config, ... }: { | ||||||
|  |  | ||||||
|   config = lib.mkIf (config.syscfg.make.gui) { |   config = lib.mkIf (config.homecfg.make.gui) { | ||||||
|     xdg.configFile."pipewire/pipewire-pulse.conf.d/desktop.conf".text = '' |     xdg.configFile."pipewire/pipewire-pulse.conf.d/desktop.conf".text = '' | ||||||
|       context.modules = [ |       context.modules = [ | ||||||
|         {   name = libpipewire-module-loopback |         {   name = libpipewire-module-loopback | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { lib, config, pkgs, ... }: { | { lib, config, pkgs, ... }: { | ||||||
|  |  | ||||||
|   config = lib.mkIf (config.syscfg.make.gui) { |   config = lib.mkIf (config.homecfg.make.gui) { | ||||||
|     home.packages = with pkgs; [ |     home.packages = with pkgs; [ | ||||||
|       custom.vosk.base |       custom.vosk.base | ||||||
|       jq |       jq | ||||||
|   | |||||||
| @@ -1,46 +1,46 @@ | |||||||
| { lib, config, ... }: { | { lib, config, ... }: { | ||||||
|  |  | ||||||
|   config = lib.mkIf (config.syscfg.make.gui) { |   config = lib.mkIf (config.homecfg.make.gui) { | ||||||
|     programs.zathura = { |     programs.zathura = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       extraConfig = '' |       extraConfig = '' | ||||||
|         set default-fg                "#${config.colorScheme.palette.base06}" |         set default-fg                "#${config.colorScheme.colors.base06}" | ||||||
|         set default-bg 			          "#${config.colorScheme.palette.base00}" |         set default-bg 			          "#${config.colorScheme.colors.base00}" | ||||||
|  |  | ||||||
|         set completion-bg		          "#${config.colorScheme.palette.base02}" |         set completion-bg		          "#${config.colorScheme.colors.base02}" | ||||||
|         set completion-fg		          "#${config.colorScheme.palette.base06}" |         set completion-fg		          "#${config.colorScheme.colors.base06}" | ||||||
|         set completion-highlight-bg	  "#${config.colorScheme.palette.base03}" |         set completion-highlight-bg	  "#${config.colorScheme.colors.base03}" | ||||||
|         set completion-highlight-fg	  "#${config.colorScheme.palette.base06}" |         set completion-highlight-fg	  "#${config.colorScheme.colors.base06}" | ||||||
|         set completion-group-bg		    "#${config.colorScheme.palette.base01}" |         set completion-group-bg		    "#${config.colorScheme.colors.base01}" | ||||||
|         set completion-group-fg		    "#${config.colorScheme.palette.base0C}" |         set completion-group-fg		    "#${config.colorScheme.colors.base0C}" | ||||||
|  |  | ||||||
|         set statusbar-fg		          "#${config.colorScheme.palette.base06}" |         set statusbar-fg		          "#${config.colorScheme.colors.base06}" | ||||||
|         set statusbar-bg		          "#${config.colorScheme.palette.base01}" |         set statusbar-bg		          "#${config.colorScheme.colors.base01}" | ||||||
|  |  | ||||||
|         set notification-bg		        "#${config.colorScheme.palette.base01}" |         set notification-bg		        "#${config.colorScheme.colors.base01}" | ||||||
|         set notification-fg		        "#${config.colorScheme.palette.base06}" |         set notification-fg		        "#${config.colorScheme.colors.base06}" | ||||||
|         set notification-error-bg	    "#${config.colorScheme.palette.base01}" |         set notification-error-bg	    "#${config.colorScheme.colors.base01}" | ||||||
|         set notification-error-fg	    "#${config.colorScheme.palette.base0F}" |         set notification-error-fg	    "#${config.colorScheme.colors.base0F}" | ||||||
|         set notification-warning-bg	  "#${config.colorScheme.palette.base01}" |         set notification-warning-bg	  "#${config.colorScheme.colors.base01}" | ||||||
|         set notification-warning-fg	  "#${config.colorScheme.palette.base09}" |         set notification-warning-fg	  "#${config.colorScheme.colors.base09}" | ||||||
|  |  | ||||||
|         set inputbar-fg			          "#${config.colorScheme.palette.base06}" |         set inputbar-fg			          "#${config.colorScheme.colors.base06}" | ||||||
|         set inputbar-bg 		          "#${config.colorScheme.palette.base01}" |         set inputbar-bg 		          "#${config.colorScheme.colors.base01}" | ||||||
|  |  | ||||||
|         set recolor-lightcolor		    "#${config.colorScheme.palette.base00}" |         set recolor-lightcolor		    "#${config.colorScheme.colors.base00}" | ||||||
|         set recolor-darkcolor		      "#${config.colorScheme.palette.base06}" |         set recolor-darkcolor		      "#${config.colorScheme.colors.base06}" | ||||||
|  |  | ||||||
|         set index-fg			            "#${config.colorScheme.palette.base06}" |         set index-fg			            "#${config.colorScheme.colors.base06}" | ||||||
|         set index-bg			            "#${config.colorScheme.palette.base00}" |         set index-bg			            "#${config.colorScheme.colors.base00}" | ||||||
|         set index-active-fg		        "#${config.colorScheme.palette.base06}" |         set index-active-fg		        "#${config.colorScheme.colors.base06}" | ||||||
|         set index-active-bg		        "#${config.colorScheme.palette.base01}" |         set index-active-bg		        "#${config.colorScheme.colors.base01}" | ||||||
|  |  | ||||||
|         set render-loading-bg		      "#${config.colorScheme.palette.base00}" |         set render-loading-bg		      "#${config.colorScheme.colors.base00}" | ||||||
|         set render-loading-fg		      "#${config.colorScheme.palette.base06}" |         set render-loading-fg		      "#${config.colorScheme.colors.base06}" | ||||||
|  |  | ||||||
|         set highlight-color		        "#${config.colorScheme.palette.base04}" |         set highlight-color		        "#${config.colorScheme.colors.base04}" | ||||||
|         set highlight-fg              "#${config.colorScheme.palette.base0E}" |         set highlight-fg              "#${config.colorScheme.colors.base0E}" | ||||||
|         set highlight-active-color	  "#${config.colorScheme.palette.base0E}" |         set highlight-active-color	  "#${config.colorScheme.colors.base0E}" | ||||||
|  |  | ||||||
|       ''; |       ''; | ||||||
|     }; |     }; | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { lib, config, pkgs, ... }: { | { lib, config, pkgs, ... }: { | ||||||
|  |  | ||||||
|   config = lib.mkIf (config.syscfg.make.gui) { |   config = lib.mkIf (config.homecfg.make.gui) { | ||||||
|     services.nextcloud-client.enable = true; |     services.nextcloud-client.enable = true; | ||||||
|  |  | ||||||
|     home.packages = with pkgs; [ |     home.packages = with pkgs; [ | ||||||
| @@ -10,11 +10,8 @@ | |||||||
|       xfce.tumbler |       xfce.tumbler | ||||||
|  |  | ||||||
|       telegram-desktop |       telegram-desktop | ||||||
|       discord-canary |  | ||||||
|       pavucontrol |       pavucontrol | ||||||
|       keepassxc |       keepassxc | ||||||
|       nextcloud-client |  | ||||||
|  |  | ||||||
|       gramps |       gramps | ||||||
|     ]; |     ]; | ||||||
|   }; |   }; | ||||||
|   | |||||||
| @@ -1,22 +1,20 @@ | |||||||
| { inputs, lib, config, pkgs, ... }: { | { lib, config, pkgs, ... }: { | ||||||
|  |  | ||||||
|   imports = [ ./openttd.nix ./wow.nix ]; |   imports = [ ./openttd.nix ]; | ||||||
|  |  | ||||||
|   config = lib.mkIf (config.syscfg.make.game) { |   config = lib.mkIf (config.homecfg.make.game) { | ||||||
|  |  | ||||||
|     home.packages = with pkgs; [ |     home.packages = with pkgs; [ | ||||||
|  |       # custom.simc | ||||||
|  |  | ||||||
|       #games |       #games | ||||||
|       # steam |       steam | ||||||
|       gamemode |       gamemode | ||||||
|       gamescope |       gamescope | ||||||
|       mangohud |       mangohud | ||||||
|       prismlauncher |       prismlauncher | ||||||
|       openttd-jgrpp |       openttd-jgrpp | ||||||
|       bottles |       bottles | ||||||
|       lutris |  | ||||||
|       unstable.umu-launcher |  | ||||||
|       # wine |  | ||||||
|     ]; |     ]; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { lib, config, ... }: { | { lib, config, ... }: { | ||||||
|  |  | ||||||
|   config = lib.mkIf (config.syscfg.make.game) { |   config = lib.mkIf (config.homecfg.make.game) { | ||||||
|     xdg.configFile."openttd/openttd.cfg".text = '' |     xdg.configFile."openttd/openttd.cfg".text = '' | ||||||
|       [misc] |       [misc] | ||||||
|       display_opt = SHOW_TOWN_NAMES|SHOW_STATION_NAMES|SHOW_SIGNS|FULL_ANIMATION|FULL_DETAIL|WAYPOINTS|SHOW_COMPETITOR_SIGNS |       display_opt = SHOW_TOWN_NAMES|SHOW_STATION_NAMES|SHOW_SIGNS|FULL_ANIMATION|FULL_DETAIL|WAYPOINTS|SHOW_COMPETITOR_SIGNS | ||||||
|   | |||||||
| @@ -1,81 +0,0 @@ | |||||||
| { pkgs, lib, config, sops, ... }: { |  | ||||||
|  |  | ||||||
|   config = lib.mkIf (config.syscfg.make.game) { |  | ||||||
|  |  | ||||||
|     home.packages = with pkgs; |  | ||||||
|       [ |  | ||||||
|         # custom.simc |  | ||||||
|       ]; |  | ||||||
|  |  | ||||||
|     # templates buggy currently |  | ||||||
|     #xdg.configFile."instawow/config.json" = ''${config.sops.templates."instawow_config.json".path}''; |  | ||||||
|     sops.templates."instawow_config.json".content = '' |  | ||||||
|        { |  | ||||||
|             "auto_update_check": true, |  | ||||||
|             "access_tokens": { |  | ||||||
|               "cfcore": "${config.sops.placeholder.curse_forge_key}", |  | ||||||
|               "github": "${config.sops.placeholder.github_user_key}", |  | ||||||
|               "wago_addons": null |  | ||||||
|             } |  | ||||||
|         }''; |  | ||||||
|  |  | ||||||
| # curse:master-plan |  | ||||||
| # curse:raretrackercore-rt |  | ||||||
| # curse:raretrackerdragonflight-rtd |  | ||||||
| # curse:raretrackermaw-rtmw |  | ||||||
| # curse:raretrackermechagon-rtm |  | ||||||
| # curse:raretrackerthewarwithin-rtww |  | ||||||
| # curse:raretrackertimelessisle-rtti |  | ||||||
| # curse:raretrackeruldum-rtu |  | ||||||
| # curse:raretrackervale-rtv |  | ||||||
| # curse:raretrackerworldbosses-rtwb |  | ||||||
| # curse:raretrackerzerethmortis-rtz |  | ||||||
| # curse:venture-plan |  | ||||||
| # curse:war-plan |  | ||||||
| # github:nevcairiel/bartender4 |  | ||||||
| # github:cidan/betterbags |  | ||||||
| # github:bigwigsmods/bigwigs |  | ||||||
| # github:bigwigsmods/bigwigs_battleforazeroth |  | ||||||
| # github:bigwigsmods/bigwigs_burningcrusade |  | ||||||
| # github:bigwigsmods/bigwigs_cataclysm |  | ||||||
| # github:bigwigsmods/bigwigs_classic |  | ||||||
| # github:bigwigsmods/bigwigs_dragonflight |  | ||||||
| # github:bigwigsmods/bigwigs_legion |  | ||||||
| # github:bigwigsmods/bigwigs_mistsofpandaria |  | ||||||
| # github:bigwigsmods/bigwigs_shadowlands |  | ||||||
| # github:bigwigsmods/bigwigs_warlordsofdraenor |  | ||||||
| # github:bigwigsmods/bigwigs_wrathofthelichking |  | ||||||
| # github:nezroy/demodal |  | ||||||
| # github:curseforge-mirror/details |  | ||||||
| # github:edusperoni/details_elitism |  | ||||||
| # github:curseforge-mirror/elitismhelper |  | ||||||
| # github:michaelnpsp/grid2 |  | ||||||
| # github:jods-gh/groupfinderrio |  | ||||||
| # github:nevcairiel/handynotes |  | ||||||
| # github:hekili/hekili |  | ||||||
| # github:thekrowi/krowi_achievementfilter |  | ||||||
| # github:bigwigsmods/littlewigs |  | ||||||
| # github:nnoggie/mythicdungeontools |  | ||||||
| # github:tullamods/omnicc |  | ||||||
| # github:tercioo/plater-nameplates |  | ||||||
| # github:curseforge-mirror/quest_completist |  | ||||||
| # github:raiderio/raiderio-addon |  | ||||||
| # github:wowrarity/rarity |  | ||||||
| # github:nevcairiel/shadowedunitframes |  | ||||||
| # github:simulationcraft/simc-addon |  | ||||||
| # github:curseforge-mirror/tomcats |  | ||||||
| # github:weakauras/weakauras2 |  | ||||||
| # github:kemayo/wow-handynotes-battleforazerothtreasures |  | ||||||
| # github:kemayo/wow-handynotes-dragonflight |  | ||||||
| # github:kemayo/wow-handynotes-legiontreasures |  | ||||||
| # github:kemayo/wow-handynotes-longforgottenhippogryph |  | ||||||
| # github:kemayo/wow-handynotes-lostandfound |  | ||||||
| # github:kemayo/wow-handynotes-secretfish |  | ||||||
| # github:kemayo/wow-handynotes-shadowlandstreasures |  | ||||||
| # github:kemayo/wow-handynotes-stygia |  | ||||||
| # github:kemayo/wow-handynotes-treasurehunter |  | ||||||
| # github:kemayo/wow-handynotes-warwithin |  | ||||||
| # wowi:7032-tomtom |  | ||||||
|  |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
| @@ -5,7 +5,7 @@ let | |||||||
|   wallpaperGen = import ./wallpaper-gen.nix { inherit pkgs config; }; |   wallpaperGen = import ./wallpaper-gen.nix { inherit pkgs config; }; | ||||||
| in { | in { | ||||||
|  |  | ||||||
|   config = lib.mkIf (config.syscfg.make.gui) { |   config = lib.mkIf (config.homecfg.make.gui) { | ||||||
|     home.pointerCursor = { |     home.pointerCursor = { | ||||||
|       package = pkgs.bibata-cursors; |       package = pkgs.bibata-cursors; | ||||||
|       name = "Bibata-Modern-Classic"; |       name = "Bibata-Modern-Classic"; | ||||||
| @@ -17,7 +17,7 @@ in { | |||||||
|     gtk = { |     gtk = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       theme = { |       theme = { | ||||||
|         name = "${config.colorscheme.slug}-Dark"; |         name = "${config.colorscheme.slug}"; | ||||||
|         package = gtkThemeFromScheme; |         package = gtkThemeFromScheme; | ||||||
|       }; |       }; | ||||||
|       iconTheme = { |       iconTheme = { | ||||||
| @@ -28,7 +28,7 @@ in { | |||||||
|  |  | ||||||
|     qt = { |     qt = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       platformTheme.name = "gtk"; |       platformTheme = "gtk"; | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     home.packages = [ wallpaperGen pkgs.swww ]; |     home.packages = [ wallpaperGen pkgs.swww ]; | ||||||
|   | |||||||
| @@ -9,89 +9,60 @@ let | |||||||
| in pkgs.stdenv.mkDerivation rec { | in pkgs.stdenv.mkDerivation rec { | ||||||
|   name = "generated-gtk-theme-${scheme.slug}"; |   name = "generated-gtk-theme-${scheme.slug}"; | ||||||
|   src = pkgs.fetchFromGitHub { |   src = pkgs.fetchFromGitHub { | ||||||
|     owner = "vinceliuice"; |     owner = "nana-4"; | ||||||
|     repo = "Orchis-theme"; |     repo = "materia-theme"; | ||||||
|     rev = "5b73376721cf307101e22d7031c1f4b1344d1f63"; |     rev = "6e5850388a25f424b8193fe4523504d1dc364175"; | ||||||
|     sha256 = "sha256-+2/CsgJ+rdDpCp+r5B/zys3PtFgtnu+ohTEUOtJNd1Y="; |     sha256 = "sha256-I6hpH0VTmftU4+/pRbztuTQcBKcOFBFbNZXJL/2bcgU="; | ||||||
|   }; |   }; | ||||||
|  |   buildInputs = with pkgs; [ | ||||||
|   nativeBuildInputs = with pkgs; [ gtk3 sassc ]; |     sassc | ||||||
|   buildInputs = with pkgs; [ gnome-themes-extra ]; |     bc | ||||||
|   propagatedUserEnvPkgs = with pkgs; [ gtk-engine-murrine ]; |     which | ||||||
|  |     rendersvg | ||||||
|   preInstall = '' |     meson | ||||||
|  |     ninja | ||||||
|  |     nodePackages.sass | ||||||
|  |     gtk4.dev | ||||||
|  |     optipng | ||||||
|  |   ]; | ||||||
|  |   phases = [ "unpackPhase" "installPhase" ]; | ||||||
|  |   installPhase = '' | ||||||
|  |     HOME=/build | ||||||
|  |     chmod 777 -R . | ||||||
|  |     patchShebangs . | ||||||
|     mkdir -p $out/share/themes |     mkdir -p $out/share/themes | ||||||
|     cat > src/_sass/_color-palette-${scheme.slug}.scss << 'EOF' |     mkdir bin | ||||||
|       $red-light: #${scheme.palette.low0F}; |     sed -e 's/handle-horz-.*//' -e 's/handle-vert-.*//' -i ./src/gtk-2.0/assets.txt | ||||||
|       $red-dark: #${scheme.palette.high0F}; |  | ||||||
|  |  | ||||||
|       $pink-light: #${scheme.palette.low0E}; |     cat > /build/gtk-colors << EOF | ||||||
|       $pink-dark: #${scheme.palette.high0E}; |       BG=${scheme.colors.base00} | ||||||
|  |       FG=${scheme.colors.base07} | ||||||
|       $purple-light: #${scheme.palette.low0D}; |       HDR_BG=${scheme.colors.base00} | ||||||
|       $purple-dark: #${scheme.palette.high0D}; |       HDR_FG=${scheme.colors.base07} | ||||||
|  |       SEL_BG=${scheme.colors.base03} | ||||||
|       $blue-light: #${scheme.palette.low0C}; |       SEL_FG=${scheme.colors.base07} | ||||||
|       $blue-dark: #${scheme.palette.high0C}; |       TXT_BG=${scheme.colors.base01} | ||||||
|  |       TXT_FG=${scheme.colors.base07} | ||||||
|       $teal-light: #${scheme.palette.low0B}; |       BTN_BG=${scheme.colors.base01} | ||||||
|       $teal-dark: #${scheme.palette.high0B}; |       BTN_FG=${scheme.colors.base07} | ||||||
|  |       HDR_BTN_BG=${scheme.colors.base01} | ||||||
|       $green-light: #${scheme.palette.low0A}; |       HDR_BTN_FG=${scheme.colors.base07} | ||||||
|       $green-dark: #${scheme.palette.high0A}; |       MENU_BG=${scheme.colors.base00} | ||||||
|       $sea-light: #${scheme.palette.alt_low0B}; |       MENU_FG=${scheme.colors.base07} | ||||||
|       $sea-dark: #${scheme.palette.alt_high0B}; |       ACCENT_BG=${scheme.colors.base0C} | ||||||
|  |       ACCENT_FG=${scheme.colors.base00} | ||||||
|       $yellow-light: #${scheme.palette.low09}; |       MATERIA_SURFACE=${scheme.colors.base01} | ||||||
|       $yellow-dark: #${scheme.palette.low09}; |       MATERIA_VIEW=${scheme.colors.base00} | ||||||
|  |       WM_BORDER_FOCUS=${scheme.colors.base02} | ||||||
|       $orange-light: #${scheme.palette.low08}; |       WM_BORDER_UNFOCUS=${scheme.colors.base02} | ||||||
|       $orange-dark: #${scheme.palette.high08}; |       UNITY_DEFAULT_LAUNCHER_STYLE=False | ||||||
|  |       ROUNDNESS=7 | ||||||
|       $grey-050: #${scheme.palette.base07}; |       NAME=${scheme.slug} | ||||||
|       $grey-100: #${scheme.palette.base07}; |       MATERIA_STYLE_COMPACT=True | ||||||
|       $grey-150: #${scheme.palette.base06}; |  | ||||||
|       $grey-200: #${scheme.palette.base06}; |  | ||||||
|       $grey-250: #${scheme.palette.base05}; |  | ||||||
|       $grey-300: #${scheme.palette.base05}; |  | ||||||
|       $grey-350: #${scheme.palette.base04}; |  | ||||||
|       $grey-400: #${scheme.palette.base04}; |  | ||||||
|       $grey-450: #${scheme.palette.base03}; |  | ||||||
|       $grey-500: #${scheme.palette.base03}; |  | ||||||
|       $grey-550: #${scheme.palette.base02}; |  | ||||||
|       $grey-600: #${scheme.palette.base02}; |  | ||||||
|       $grey-650: #${scheme.palette.base02}; |  | ||||||
|       $grey-700: #${scheme.palette.base01}; |  | ||||||
|       $grey-750: #${scheme.palette.base01}; |  | ||||||
|       $grey-800: #${scheme.palette.base01}; |  | ||||||
|       $grey-850: #${scheme.palette.base00}; |  | ||||||
|       $grey-900: #${scheme.palette.base00}; |  | ||||||
|       $grey-950: #${scheme.palette.base00}; |  | ||||||
|  |  | ||||||
|       $white: #${scheme.palette.base07}; |  | ||||||
|       $black: #${scheme.palette.base00}; |  | ||||||
|  |  | ||||||
|       $button-close: #${scheme.palette.base0F}; |  | ||||||
|       $button-max: #${scheme.palette.base0A}; |  | ||||||
|       $button-min: #${scheme.palette.base08}; |  | ||||||
|     EOF |     EOF | ||||||
|  |  | ||||||
|     sed -i "/\@import/s/color-palette-default/color-palette-${scheme.slug}/" src/_sass/_tweaks.scss |     echo "Changing colours:" | ||||||
|     sed -i "/\$colorscheme:/s/default/${scheme.slug}/" src/_sass/_tweaks.scss |     ./change_color.sh -o ${scheme.slug} /build/gtk-colors -i False -t "$out/share/themes" | ||||||
|  |     chmod 555 -R . | ||||||
|   ''; |   ''; | ||||||
|  |  | ||||||
|   installPhase = '' |  | ||||||
|     runHook preInstall |  | ||||||
|     bash install.sh -d $out/share/themes \ |  | ||||||
|       -t default \ |  | ||||||
|       -n ${scheme.slug} \ |  | ||||||
|       -c ${scheme.variant} \ |  | ||||||
|       -s standard \ |  | ||||||
|       --tweaks primary \ |  | ||||||
|       --round ${scheme.palette.border-radius}px |  | ||||||
|  |  | ||||||
|     runHook postInstall |  | ||||||
|   ''; |  | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
|  |  | ||||||
| let | let | ||||||
|   scheme = config.colorScheme; |   scheme = config.colorScheme; | ||||||
|   colors = scheme.palette; |   colors = scheme.colors; | ||||||
|   dither = |   dither = | ||||||
|     "atkinson"; # none | floyd-steinberg | atkinson | jjn | burkes | sierra | sierra-lite |     "atkinson"; # none | floyd-steinberg | atkinson | jjn | burkes | sierra | sierra-lite | ||||||
| in pkgs.stdenv.mkDerivation rec { | in pkgs.stdenv.mkDerivation rec { | ||||||
|   | |||||||
							
								
								
									
										43
									
								
								modules/home/homecfg/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								modules/home/homecfg/default.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | |||||||
|  | { inputs, lib, config, ... }: | ||||||
|  | with lib; { | ||||||
|  |   options.homecfg = { | ||||||
|  |     username = mkOption { type = types.str; }; | ||||||
|  |     wm = mkOption { | ||||||
|  |       type = types.enum [ "Wayland" "X11" ]; | ||||||
|  |       default = "Wayland"; | ||||||
|  |     }; | ||||||
|  |     make = { | ||||||
|  |       cli = mkOption { | ||||||
|  |         type = types.bool; | ||||||
|  |         default = true; | ||||||
|  |       }; | ||||||
|  |       gui = mkOption { | ||||||
|  |         type = types.bool; | ||||||
|  |         default = false; | ||||||
|  |       }; | ||||||
|  |       develop = mkOption { | ||||||
|  |         type = types.bool; | ||||||
|  |         default = false; | ||||||
|  |       }; | ||||||
|  |       game = mkOption { | ||||||
|  |         type = types.bool; | ||||||
|  |         default = false; | ||||||
|  |       }; | ||||||
|  |       power = mkOption { | ||||||
|  |         type = types.bool; | ||||||
|  |         default = false; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |     git = { | ||||||
|  |       username = mkOption { type = types.str; }; | ||||||
|  |       email = mkOption { type = types.str; }; | ||||||
|  |       key = mkOption { type = types.str; }; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   imports = with inputs; [ | ||||||
|  |     nix-colors.homeManagerModules.default | ||||||
|  |     ../../shared/colors | ||||||
|  |   ]; | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -1,6 +1,6 @@ | |||||||
| { lib, config, pkgs, ... }: { | { lib, config, pkgs, ... }: { | ||||||
|  |  | ||||||
|   config = lib.mkIf (config.usercfg.wm == "Wayland") { |   config = lib.mkIf (config.homecfg.wm == "Wayland") { | ||||||
|     home.packages = with pkgs; [ libnotify ]; |     home.packages = with pkgs; [ libnotify ]; | ||||||
|     services.dunst = { |     services.dunst = { | ||||||
|       enable = true; |       enable = true; | ||||||
| @@ -12,10 +12,8 @@ | |||||||
|           width = "350"; |           width = "350"; | ||||||
|           scale = "0"; |           scale = "0"; | ||||||
|           origin = "top-right"; |           origin = "top-right"; | ||||||
|           offset = "${ |           offset = | ||||||
|               toString ((lib.strings.toInt config.colorScheme.palette.gaps-bar) |             "${config.colorScheme.colors.gaps-bar}x${config.colorScheme.colors.gaps-screen}"; | ||||||
|                 + (lib.strings.toInt config.colorScheme.palette.gaps-screen)) |  | ||||||
|             }x${config.colorScheme.palette.gaps-screen}"; |  | ||||||
|           notification_limit = "0"; |           notification_limit = "0"; | ||||||
|           progress_bar = "true"; |           progress_bar = "true"; | ||||||
|           progress_bar_height = "10"; |           progress_bar_height = "10"; | ||||||
| @@ -28,8 +26,8 @@ | |||||||
|           padding = "12"; |           padding = "12"; | ||||||
|           horizontal_padding = "15"; |           horizontal_padding = "15"; | ||||||
|           text_icon_padding = "0"; |           text_icon_padding = "0"; | ||||||
|           frame_width = "${config.colorScheme.palette.border-width}"; |           frame_width = "${config.colorScheme.colors.border-width}"; | ||||||
|           frame_color = "#${config.colorScheme.palette.base04}"; |           frame_color = "#${config.colorScheme.colors.base04}"; | ||||||
|           separator_color = "auto"; |           separator_color = "auto"; | ||||||
|           sort = "yes"; |           sort = "yes"; | ||||||
|           font = "IBM Plex Mono 14"; |           font = "IBM Plex Mono 14"; | ||||||
| @@ -59,7 +57,7 @@ | |||||||
|           always_run_script = "true"; |           always_run_script = "true"; | ||||||
|           title = "Dunst"; |           title = "Dunst"; | ||||||
|           class = "Dunst"; |           class = "Dunst"; | ||||||
|           corner_radius = "${config.colorScheme.palette.border-radius}"; |           corner_radius = "${config.colorScheme.colors.border-radius}"; | ||||||
|           ignore_dbusclose = "false"; |           ignore_dbusclose = "false"; | ||||||
|           layer = "top"; |           layer = "top"; | ||||||
|           force_xwayland = "true"; |           force_xwayland = "true"; | ||||||
| @@ -71,25 +69,25 @@ | |||||||
|  |  | ||||||
|         }; |         }; | ||||||
|         urgency_low = { |         urgency_low = { | ||||||
|           background = "#${config.colorScheme.palette.base01}"; |           background = "#${config.colorScheme.colors.base01}"; | ||||||
|           foreground = "#${config.colorScheme.palette.base07}"; |           foreground = "#${config.colorScheme.colors.base07}"; | ||||||
|           frame_color = "#${config.colorScheme.palette.base03}"; |           frame_color = "#${config.colorScheme.colors.base03}"; | ||||||
|           timeout = "3"; |           timeout = "3"; | ||||||
|           highlight = "#${config.colorScheme.palette.base0B}"; |           highlight = "#${config.colorScheme.colors.base0B}"; | ||||||
|         }; |         }; | ||||||
|         urgency_normal = { |         urgency_normal = { | ||||||
|           background = "#${config.colorScheme.palette.base01}"; |           background = "#${config.colorScheme.colors.base01}"; | ||||||
|           foreground = "#${config.colorScheme.palette.base07}"; |           foreground = "#${config.colorScheme.colors.base07}"; | ||||||
|           frame_color = "#${config.colorScheme.palette.base04}"; |           frame_color = "#${config.colorScheme.colors.base04}"; | ||||||
|           timeout = "5"; |           timeout = "5"; | ||||||
|           highlight = "#${config.colorScheme.palette.base0C}"; |           highlight = "#${config.colorScheme.colors.base0C}"; | ||||||
|         }; |         }; | ||||||
|         urgency_critical = { |         urgency_critical = { | ||||||
|           background = "#${config.colorScheme.palette.base01}"; |           background = "#${config.colorScheme.colors.base01}"; | ||||||
|           foreground = "#${config.colorScheme.palette.base0F}"; |           foreground = "#${config.colorScheme.colors.base0F}"; | ||||||
|           frame_color = "#${config.colorScheme.palette.base0F}"; |           frame_color = "#${config.colorScheme.colors.base0F}"; | ||||||
|           timeout = "10"; |           timeout = "10"; | ||||||
|           highlight = "#${config.colorScheme.palette.base0E}"; |           highlight = "#${config.colorScheme.colors.base0E}"; | ||||||
|         }; |         }; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
|   | |||||||
| @@ -17,8 +17,7 @@ calendar { | |||||||
|     font-weight: bold; |     font-weight: bold; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   label { |   .button { | ||||||
|     font-size: 20pt; |  | ||||||
|     color: $base0C; |     color: $base0C; | ||||||
|   } |   } | ||||||
|  |  | ||||||
| @@ -36,6 +35,9 @@ calendar { | |||||||
|   margin-top: -4pt; |   margin-top: -4pt; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | .minute, .hour, .day, .month { | ||||||
|  |   font-size: 20pt; | ||||||
|  | } | ||||||
|  |  | ||||||
| .date { | .date { | ||||||
|   color: $base0C; |   color: $base0C; | ||||||
| @@ -45,4 +47,5 @@ calendar { | |||||||
|  |  | ||||||
| .datetime { | .datetime { | ||||||
|   padding: $gaps-window; |   padding: $gaps-window; | ||||||
|  |    | ||||||
| } | } | ||||||
| @@ -59,11 +59,11 @@ color: $base0B; | |||||||
|     // @include window; |     // @include window; | ||||||
|     // background-color: $bg1; |     // background-color: $bg1; | ||||||
|     // color: $fg; |     // color: $fg; | ||||||
|     // margin: $gaps-win; |     // margin: $gaps-screen; | ||||||
|     padding: 5pt; |     // padding: .5em; | ||||||
| } |   } | ||||||
|  |  | ||||||
| .sys-label { |   .sys-label { | ||||||
|     font-weight: bolder; |     font-weight: bolder; | ||||||
|     color: $base04; |     color: $base04; | ||||||
| } |   } | ||||||
| @@ -1,35 +0,0 @@ | |||||||
| .tray * { |  | ||||||
|     padding: $border-width 0px; |  | ||||||
| } |  | ||||||
| .tray menu { |  | ||||||
|     background-color: $base01; |  | ||||||
|     color: $base07; |  | ||||||
|     @include border-radius; |  | ||||||
|     @include border-active; |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 	padding: 10px 0px; |  | ||||||
|  |  | ||||||
| 	>menuitem { |  | ||||||
|         margin: 2px $border-width; |  | ||||||
| 		padding: 0px 10px; |  | ||||||
|  |  | ||||||
| 		&:disabled label { |  | ||||||
| 			color: $base04; |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		&:hover { |  | ||||||
| 			background-color: $base0C; |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	separator { |  | ||||||
| 		background-color: $base03; |  | ||||||
| 		padding-top: 1px; |  | ||||||
|         margin:10px 0px; |  | ||||||
|  |  | ||||||
| 		&:last-child { |  | ||||||
| 			padding: unset; |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -13,8 +13,6 @@ | |||||||
| } | } | ||||||
|  |  | ||||||
| @mixin border-active { | @mixin border-active { | ||||||
|   border-width: $border-width; |  | ||||||
|   border-style: solid; |  | ||||||
|   border-color: $base04; |   border-color: $base04; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -101,9 +99,6 @@ tooltip { | |||||||
| } | } | ||||||
| .modevent:hover { | .modevent:hover { | ||||||
|   @include border-active; |   @include border-active; | ||||||
|   border-right-style: none; |  | ||||||
|   border-bottom-right-radius: 0; |  | ||||||
|   border-top-right-radius: 0; |  | ||||||
| } | } | ||||||
|  |  | ||||||
| .modinner { | .modinner { | ||||||
| @@ -120,7 +115,6 @@ tooltip { | |||||||
| @import 'css/clock'; | @import 'css/clock'; | ||||||
| @import 'css/radio'; | @import 'css/radio'; | ||||||
| @import 'css/powermenu'; | @import 'css/powermenu'; | ||||||
| @import 'css/systray'; |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* BAR */ | /* BAR */ | ||||||
|   | |||||||
| @@ -2,7 +2,6 @@ | |||||||
|  |  | ||||||
| (include "modules/sys.yuck") | (include "modules/sys.yuck") | ||||||
| (include "modules/net.yuck") | (include "modules/net.yuck") | ||||||
| (include "modules/systray.yuck") |  | ||||||
| (include "modules/clock.yuck") | (include "modules/clock.yuck") | ||||||
|  |  | ||||||
| (include "windows/calendar.yuck") | (include "windows/calendar.yuck") | ||||||
| @@ -27,7 +26,6 @@ | |||||||
|     :valign "end" |     :valign "end" | ||||||
|     (sys-mod) |     (sys-mod) | ||||||
|     (net-mod) |     (net-mod) | ||||||
|     (systray-mod) |  | ||||||
|     (clock-mod))) |     (clock-mod))) | ||||||
|  |  | ||||||
| (defwidget center [] | (defwidget center [] | ||||||
| @@ -48,7 +46,7 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
| (defwindow bar | (defwindow bar | ||||||
|     :monitor 1 |     :monitor 0 | ||||||
|     :geometry (geometry |     :geometry (geometry | ||||||
|       :x "0%" |       :x "0%" | ||||||
|       :y "0%" |       :y "0%" | ||||||
|   | |||||||
| @@ -5,30 +5,28 @@ | |||||||
|     (eventbox |     (eventbox | ||||||
|       :onhover "${EWW_CMD} update date_rev=true" |       :onhover "${EWW_CMD} update date_rev=true" | ||||||
|       :onhoverlost "${EWW_CMD} update date_rev=false" |       :onhoverlost "${EWW_CMD} update date_rev=false" | ||||||
|       :onclick "(sleep 0.1 && ${EWW_CMD} open --toggle calendar)" |  | ||||||
|       :onrightclick "(sleep 0.1 && ${EWW_CMD} open --toggle powermenu)" |  | ||||||
|       (box |       (box | ||||||
|         :class "datetime" |         :class "datetime" | ||||||
|         (overlay |         (overlay | ||||||
|           (box |           (box | ||||||
|             :orientation "v" |             :orientation "v" | ||||||
|             (label :show-truncated false  |             (button | ||||||
|               :class "hour"  |               :class "hour" hour) | ||||||
|               :text {hour}) |             (button | ||||||
|             (label :show-truncated false |               :class "minute" minute)) | ||||||
|             :class "minute" |  | ||||||
|               :text {minute})) |  | ||||||
|           (revealer |           (revealer | ||||||
|             :reveal date_rev |             :reveal date_rev | ||||||
|             (box |             (box | ||||||
|               :class "date" |               :class "date" | ||||||
|               :orientation "v" |               :orientation "v" | ||||||
|               (label :show-truncated "false"  |               (button | ||||||
|                 :class "day" |                 :onclick "${EWW_CMD} open --toggle calendar" | ||||||
|                 :text {day}) |                 :onrightclick "${EWW_CMD} open --toggle powermenu" | ||||||
|               (label :show-truncated "false" |                 :class "day" day) | ||||||
|                 :class "month"  |               (button | ||||||
|                 :text {month})) |                 :onclick "${EWW_CMD} open --toggle calendar" | ||||||
|  |                 :onrightclick "${EWW_CMD} open --toggle powermenu" | ||||||
|  |                 :class "month" month)) | ||||||
|           ) |           ) | ||||||
|         ) |         ) | ||||||
|       ) |       ) | ||||||
|   | |||||||
| @@ -6,21 +6,23 @@ | |||||||
|  |  | ||||||
| (defwidget sys-mod [] | (defwidget sys-mod [] | ||||||
|   (module |   (module | ||||||
|     (eventbox |     (button | ||||||
|       :onclick "(sleep 0.1 && ${EWW_CMD} open --toggle sys)" |       :class "module" | ||||||
|  |       :onclick "${EWW_CMD} open --toggle sys" | ||||||
|       (box |       (box | ||||||
|         :orientation "v" |       :orientation "v" | ||||||
|           (circular-progress |         (circular-progress | ||||||
|             :value {EWW_CPU.avg} |           :value {EWW_CPU.avg} | ||||||
|             :class "cpubar" |           :class "cpubar" | ||||||
|             :thickness 6 |           :thickness 6 | ||||||
|             (label :class "icon-text" :text "C")) |           (label :class "icon-text" :text "C")) | ||||||
|  |  | ||||||
|  |         (circular-progress | ||||||
|  |           :value {gpu.devices[0].GRBM2?.CommandProcessor-Graphics?.value?:0} | ||||||
|  |           :class "gpubar" | ||||||
|  |           :thickness 6 | ||||||
|  |           (label :class "icon-text" :text "G")) | ||||||
|  |  | ||||||
|           (circular-progress |  | ||||||
|             :value {gpu.devices[0].GRBM2?.CommandProcessor-Graphics?.value?:0} |  | ||||||
|             :class "gpubar" |  | ||||||
|             :thickness 6 |  | ||||||
|             (label :class "icon-text" :text "G")) |  | ||||||
|         (circular-progress |         (circular-progress | ||||||
|           :value {100*memory.used/memory.total} |           :value {100*memory.used/memory.total} | ||||||
|           :class "membar" |           :class "membar" | ||||||
| @@ -34,7 +36,6 @@ | |||||||
|           :visible {battery.visible} |           :visible {battery.visible} | ||||||
|           :style "color: ${battery.color};" |           :style "color: ${battery.color};" | ||||||
|           :thickness 6 |           :thickness 6 | ||||||
|           :tooltip "${battery.status} @ ${battery.wattage}" |  | ||||||
|           (label :class "icon-text" :text "B")) |           (label :class "icon-text" :text "B")) | ||||||
|       ) |       ) | ||||||
|     ) |     ) | ||||||
|   | |||||||
| @@ -1,15 +0,0 @@ | |||||||
|  |  | ||||||
| (defwidget systray-mod [] |  | ||||||
|   (module |  | ||||||
|     (box |  | ||||||
|       :orientation "v" |  | ||||||
|       (systray |  | ||||||
|         :class "tray" |  | ||||||
|         :space-evenly "true" |  | ||||||
|         :orientation "v" |  | ||||||
|         :icon-size 20 |  | ||||||
|         :prepend-new "false" |  | ||||||
|         ) |  | ||||||
|     ) |  | ||||||
|   ) |  | ||||||
| ) |  | ||||||
| @@ -11,7 +11,6 @@ | |||||||
| 					(button | 					(button | ||||||
| 						:onclick "hyprctl dispatch workspace ${ws.number}" | 						:onclick "hyprctl dispatch workspace ${ws.number}" | ||||||
| 						(label  | 						(label  | ||||||
| 							:show-truncated false |  | ||||||
| 							:class "icon-text  ${ws.color}" | 							:class "icon-text  ${ws.color}" | ||||||
| 							:text `${ws.focused ? "" : ""}` | 							:text `${ws.focused ? "" : ""}` | ||||||
| 						) | 						) | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| #!/usr/bin/env zsh | #!/usr/bin/env bash | ||||||
|  |  | ||||||
| function get_time_ms { | function get_time_ms { | ||||||
|   date -u +%s%3N |   date -u +%s%3N | ||||||
| @@ -26,8 +26,7 @@ function gen_wifi() { | |||||||
|   icon=${icons[$level]} |   icon=${icons[$level]} | ||||||
|   ip="-" |   ip="-" | ||||||
|   class="net-connected" |   class="net-connected" | ||||||
|   name_raw=$(wpa_cli status | grep \^ssid= | sed 's/ssid=//g') |   name=$(wpa_cli status | grep \^ssid= | sed 's/ssid=//g') | ||||||
|   name=$(printf "%s" $name_raw) |  | ||||||
| } | } | ||||||
|  |  | ||||||
| function gen_ethernet() { | function gen_ethernet() { | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
|  |  | ||||||
| get_time_ms() { | function get_time_ms { | ||||||
|   date -u +%s%3N |   date -u +%s%3N | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| #!/usr/bin/env zsh | #!/usr/bin/env bash | ||||||
|  |  | ||||||
| icons=("" "" "" "" "" "" "" "" "" "" "") | icons=("" "" "" "" "" "" "" "" "" "" "") | ||||||
| num_icons=$(awk -v n="${#icons[@]}" 'BEGIN{print 100 / n}') | num_icons=$(awk -v n="${#icons[@]}" 'BEGIN{print 100 / n}') | ||||||
| @@ -11,7 +11,7 @@ geticon() { | |||||||
|  |  | ||||||
| status() { | status() { | ||||||
|   if [ "$STATE" = "Charging" ]; then |   if [ "$STATE" = "Charging" ]; then | ||||||
|     echo -n "Charging" |     echo -n "charging" | ||||||
|  |  | ||||||
|     if [ "$RATE" -gt 0 ]; then |     if [ "$RATE" -gt 0 ]; then | ||||||
|       echo ", $(gettime) left" |       echo ", $(gettime) left" | ||||||
| @@ -21,7 +21,7 @@ status() { | |||||||
|   elif [ "$STATE" = "Discharging" ]; then |   elif [ "$STATE" = "Discharging" ]; then | ||||||
|     echo "$(gettime)h left" |     echo "$(gettime)h left" | ||||||
|   else |   else | ||||||
|     echo "Fully Charged" |     echo "fully charged" | ||||||
|   fi |   fi | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -39,9 +39,9 @@ gettime() { | |||||||
|  |  | ||||||
|   if [ "$RATE" -gt 0 ]; then |   if [ "$RATE" -gt 0 ]; then | ||||||
|     if [ "$STATE" = "Discharging" ]; then |     if [ "$STATE" = "Discharging" ]; then | ||||||
|       EX=$(( ($NOW*1.0) / $RATE)) |       EX="$NOW / $RATE" | ||||||
|     else |     else | ||||||
|       EX=$(( (($FULL - $NOW)*1.0) / $RATE)) |       EX="($FULL - $NOW) / $RATE" | ||||||
|     fi |     fi | ||||||
|     date -u -d@"$(awk -v ex="$EX" 'BEGIN{print ex * 3600}')" +%H:%M |     date -u -d@"$(awk -v ex="$EX" 'BEGIN{print ex * 3600}')" +%H:%M | ||||||
|   fi |   fi | ||||||
|   | |||||||
| @@ -1 +1 @@ | |||||||
| #!/usr/bin/env zsh | #!/usr/bin/env bash | ||||||
|   | |||||||
| @@ -1,3 +1,3 @@ | |||||||
| #!/usr/bin/env zsh | #!/usr/bin/env bash | ||||||
|  |  | ||||||
| amdgpu_top -J -s 5000 | sed 's/ //g'  | amdgpu_top -J -s 5000 | sed 's/ //g'  | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| #!/usr/bin/env zsh | #!/usr/bin/env bash | ||||||
|  |  | ||||||
| total="$(free --si | rg Mem | awk '{print $2}')" | total="$(free --si | rg Mem | awk '{print $2}')" | ||||||
|  |  | ||||||
|   | |||||||
| @@ -64,7 +64,7 @@ done | |||||||
| generate | generate | ||||||
|  |  | ||||||
| # main loop | # main loop | ||||||
| socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/"$HYPRLAND_INSTANCE_SIGNATURE"/.socket2.sock - | rg --line-buffered "workspace|mon(itor)?" | while read -r line; do | socat -u UNIX-CONNECT:/tmp/hypr/"$HYPRLAND_INSTANCE_SIGNATURE"/.socket2.sock - | rg --line-buffered "workspace|mon(itor)?" | while read -r line; do | ||||||
|   case ${line%>>*} in |   case ${line%>>*} in | ||||||
|   "workspace") |   "workspace") | ||||||
|     focusedws=${line#*>>} |     focusedws=${line#*>>} | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| (defwindow calendar | (defwindow calendar | ||||||
|   :monitor 1 |   :monitor 0 | ||||||
|   :geometry (geometry |   :geometry (geometry | ||||||
|     :x "0%" |     :x "0%" | ||||||
|     :y "0%" |     :y "0%" | ||||||
|   | |||||||
| @@ -34,7 +34,7 @@ | |||||||
| ) | ) | ||||||
|  |  | ||||||
| (defwindow powermenu | (defwindow powermenu | ||||||
|     :monitor 1 |     :monitor 0 | ||||||
|     :stacking "overlay" |     :stacking "overlay" | ||||||
|     :geometry (geometry  |     :geometry (geometry  | ||||||
|                     :anchor "center" |                     :anchor "center" | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
| (defvar radio_rev false) | (defvar radio_rev false) | ||||||
|  |  | ||||||
| (defwindow radio | (defwindow radio | ||||||
|   :monitor 1 |   :monitor 0 | ||||||
|   :geometry (geometry |   :geometry (geometry | ||||||
|     :x "0%" |     :x "0%" | ||||||
|     :y "0%" |     :y "0%" | ||||||
| @@ -100,11 +100,8 @@ | |||||||
|     (box |     (box | ||||||
|       :orientation "v" |       :orientation "v" | ||||||
|       (button |       (button | ||||||
|         :onclick "(sleep 0.1 && ${EWW_CMD} open --toggle --no-daemonize radio)" |         :onclick "${EWW_CMD} open --toggle --no-daemonize radio" | ||||||
|         (label  |         (label :class "icon-text" :text "") | ||||||
|           :show-truncated false |  | ||||||
|           :class "icon-text"  |  | ||||||
|           :text "") |  | ||||||
|       ) |       ) | ||||||
|     ) |     ) | ||||||
|   ) |   ) | ||||||
|   | |||||||
| @@ -101,35 +101,19 @@ | |||||||
|   (box |   (box | ||||||
|     :class "sys-win" |     :class "sys-win" | ||||||
|     :space-evenly false |     :space-evenly false | ||||||
|     :orientation "h" |     :orientation "v" | ||||||
|     (box |     (cpu-sys-win) | ||||||
|       :space-evenly false |     (box :class "spacer") | ||||||
|       :orientation "v" |     (box :class "spacer") | ||||||
|       (cpu-sys-win) |     (gpu-sys-win) | ||||||
|       (box :class "spacer") |     (box :class "spacer") | ||||||
|       (box :class "spacer") |     (box :class "spacer") | ||||||
|       (gpu-sys-win) |     (ram-sys-win) | ||||||
|       (box :class "spacer") |  | ||||||
|       (box :class "spacer") |  | ||||||
|       (ram-sys-win) |  | ||||||
|     ) |  | ||||||
|     (box |  | ||||||
|       :visible {battery.visible} |  | ||||||
|       :height 200 |  | ||||||
|       (graph |  | ||||||
|         :height 200 |  | ||||||
|         :value {battery.percentage} |  | ||||||
|         :time-range "30min" |  | ||||||
|         :min "0.0" |  | ||||||
|         :max "100.0" |  | ||||||
|         :dynamic true |  | ||||||
|       ) |  | ||||||
|     ) |  | ||||||
|   ) |   ) | ||||||
| ) | ) | ||||||
|  |  | ||||||
| (defwindow sys | (defwindow sys | ||||||
|   :monitor 1 |   :monitor 0 | ||||||
|   :stacking "overlay" |   :stacking "overlay" | ||||||
|   :geometry (geometry |   :geometry (geometry | ||||||
|     :x "0%" |     :x "0%" | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| { lib, config, pkgs, ... }: { | { lib, config, pkgs, ... }: { | ||||||
|  |  | ||||||
|   config = lib.mkIf (config.usercfg.wm == "Wayland") { |   config = lib.mkIf (config.homecfg.wm == "Wayland") { | ||||||
|     home.packages = with pkgs; [ eww jq jaq custom.amdgpu_top ]; |     home.packages = with pkgs; [ eww-wayland jaq custom.amdgpu_top ]; | ||||||
|  |  | ||||||
|     xdg.configFile."eww" = { |     xdg.configFile."eww" = { | ||||||
|       source = lib.cleanSourceWith { |       source = lib.cleanSourceWith { | ||||||
| @@ -16,22 +16,22 @@ | |||||||
|  |  | ||||||
|     # colors file |     # colors file | ||||||
|     xdg.configFile."eww/css/_colors.scss".text = '' |     xdg.configFile."eww/css/_colors.scss".text = '' | ||||||
|       $base00: #${config.colorScheme.palette.base00}; |       $base00: #${config.colorScheme.colors.base00}; | ||||||
|       $base01: #${config.colorScheme.palette.base01}; |       $base01: #${config.colorScheme.colors.base01}; | ||||||
|       $base02: #${config.colorScheme.palette.base02}; |       $base02: #${config.colorScheme.colors.base02}; | ||||||
|       $base03: #${config.colorScheme.palette.base03}; |       $base03: #${config.colorScheme.colors.base03}; | ||||||
|       $base04: #${config.colorScheme.palette.base04}; |       $base04: #${config.colorScheme.colors.base04}; | ||||||
|       $base05: #${config.colorScheme.palette.base05}; |       $base05: #${config.colorScheme.colors.base05}; | ||||||
|       $base06: #${config.colorScheme.palette.base06}; |       $base06: #${config.colorScheme.colors.base06}; | ||||||
|       $base07: #${config.colorScheme.palette.base07}; |       $base07: #${config.colorScheme.colors.base07}; | ||||||
|       $base08: #${config.colorScheme.palette.base08}; |       $base08: #${config.colorScheme.colors.base08}; | ||||||
|       $base09: #${config.colorScheme.palette.base09}; |       $base09: #${config.colorScheme.colors.base09}; | ||||||
|       $base0A: #${config.colorScheme.palette.base0A}; |       $base0A: #${config.colorScheme.colors.base0A}; | ||||||
|       $base0B: #${config.colorScheme.palette.base0B}; |       $base0B: #${config.colorScheme.colors.base0B}; | ||||||
|       $base0C: #${config.colorScheme.palette.base0C}; |       $base0C: #${config.colorScheme.colors.base0C}; | ||||||
|       $base0D: #${config.colorScheme.palette.base0D}; |       $base0D: #${config.colorScheme.colors.base0D}; | ||||||
|       $base0E: #${config.colorScheme.palette.base0E}; |       $base0E: #${config.colorScheme.colors.base0E}; | ||||||
|       $base0F: #${config.colorScheme.palette.base0F}; |       $base0F: #${config.colorScheme.colors.base0F}; | ||||||
|  |  | ||||||
|  |  | ||||||
|       $fg: $base07; |       $fg: $base07; | ||||||
| @@ -40,11 +40,11 @@ | |||||||
|  |  | ||||||
|       $border-color: $base03; |       $border-color: $base03; | ||||||
|       $border-color-focus: $base04; |       $border-color-focus: $base04; | ||||||
|       $border-radius: ${config.colorScheme.palette.border-radius}px; |       $border-radius: ${config.colorScheme.colors.border-radius}px; | ||||||
|       $border-width: ${config.colorScheme.palette.border-width}px; |       $border-width: ${config.colorScheme.colors.border-width}px; | ||||||
|  |  | ||||||
|       $gaps-screen: ${config.colorScheme.palette.gaps-screen}px; |       $gaps-screen: ${config.colorScheme.colors.gaps-screen}px; | ||||||
|       $gaps-window: ${config.colorScheme.palette.gaps-window}px; |       $gaps-window: ${config.colorScheme.colors.gaps-window}px; | ||||||
|     ''; |     ''; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,110 +1,93 @@ | |||||||
| { config, lib, ... }: { | { ... }: { | ||||||
|  |  | ||||||
|   config = lib.mkIf (config.usercfg.wm == "Wayland") { |   services.kanshi = { | ||||||
|     services.kanshi = { |     enable = true; | ||||||
|       enable = true; |     systemdTarget = "graphical-session.target"; | ||||||
|       systemdTarget = "graphical-session.target"; |     profiles = { | ||||||
|       settings = [ |       tower_0 = { | ||||||
|         { |         outputs = [{ | ||||||
|           profile.name = "tower_0"; |           criteria = "CEX CX133 0x00000001"; | ||||||
|           profile.outputs = [ |           mode = "1920x1200@59.972"; | ||||||
|             { |           position = "0,0"; | ||||||
|               criteria = "AOC 24E1W1 GNSKCHA086899"; |           scale = 1.0; | ||||||
|               mode = "1920x1080@60.000"; |           status = "enable"; | ||||||
|               position = "0,0"; |         }]; | ||||||
|               status = "enable"; |       }; | ||||||
|               scale = 1.0; |       tower_1 = { | ||||||
|               adaptiveSync = true; |         outputs = [{ | ||||||
|             } |           criteria = "AOC 16G3 1DDP7HA000348"; | ||||||
|             { |           mode = "1920x1080@144.000"; | ||||||
|               criteria = "AOC 24E1W1 GNSKBHA080346"; |           position = "0,0"; | ||||||
|               mode = "1920x1080@60.000"; |           status = "enable"; | ||||||
|               position = "1920,0"; |           scale = 1.0; | ||||||
|               status = "enable"; |           adaptiveSync = true; | ||||||
|               scale = 1.0; |         }]; | ||||||
|               adaptiveSync = true; |       }; | ||||||
|             } |       tower_2 = { | ||||||
|           ]; |         outputs = [ | ||||||
|         } |           { | ||||||
|         { |             criteria = "AOC 16G3 1DDP7HA000348"; | ||||||
|           profile.name = "tower_1"; |             mode = "1920x1080@144.000"; | ||||||
|           profile.outputs = [ |             position = "0,0"; | ||||||
|             { |             status = "enable"; | ||||||
|               criteria = "AOC 24E1W1 GNSKCHA086899"; |             scale = 1.0; | ||||||
|               mode = "1920x1080@60.000"; |             adaptiveSync = true; | ||||||
|               position = "0,0"; |           } | ||||||
|               status = "enable"; |           { | ||||||
|               scale = 1.0; |             criteria = "CEX CX133 0x00000001"; | ||||||
|               adaptiveSync = true; |             mode = "1920x1200@59.972"; | ||||||
|             } |             position = "0,1080"; | ||||||
|             { |             scale = 1.0; | ||||||
|               criteria = "AOC 24E1W1 GNSKBHA080346"; |             status = "enable"; | ||||||
|               mode = "1920x1080@60.000"; |           } | ||||||
|               position = "0,0"; |         ]; | ||||||
|               status = "enable"; |       }; | ||||||
|               scale = 1.0; |       laptop_0 = { | ||||||
|               adaptiveSync = true; |         outputs = [{ | ||||||
|             } |           criteria = "LG Display 0x060A Unknown"; | ||||||
|             { |           mode = "1920x1080@60.020"; | ||||||
|               criteria = "LG UNKNOWN_TBD"; |           position = "0,0"; | ||||||
|               mode = "1920x1080@144.000"; |           scale = 1.0; | ||||||
|               position = "0,0"; |           status = "enable"; | ||||||
|               status = "enable"; |         }]; | ||||||
|               scale = 1.0; |       }; | ||||||
|               adaptiveSync = true; |       laptop_1 = { | ||||||
|             } |         outputs = [ | ||||||
|           ]; |           { | ||||||
|         } |             criteria = "CEX CX133 0x00000001"; | ||||||
|         { |             mode = "2560x1600@59.972"; | ||||||
|           profile.name = "laptop_0"; |  | ||||||
|           profile.outputs = [{ |  | ||||||
|             criteria = "LG Display 0x060A Unknown"; |  | ||||||
|             mode = "1920x1080@60.020"; |  | ||||||
|             position = "0,0"; |             position = "0,0"; | ||||||
|             scale = 1.0; |             scale = 1.0; | ||||||
|             status = "enable"; |             status = "enable"; | ||||||
|           }]; |           } | ||||||
|         } |           { | ||||||
|         { |             criteria = "LG Display 0x060A Unknown"; | ||||||
|           profile.name = "laptop_1"; |             mode = "1920x1080@60.020"; | ||||||
|           profile.outputs = [ |             position = "2560,0"; | ||||||
|             { |             scale = 1.0; | ||||||
|               criteria = "CEX CX133 0x00000001"; |             status = "enable"; | ||||||
|               mode = "2560x1600@59.972"; |           } | ||||||
|               position = "0,0"; |         ]; | ||||||
|               scale = 1.0; |       }; | ||||||
|               status = "enable"; |       laptop_2 = { | ||||||
|             } |         outputs = [ | ||||||
|             { |           { | ||||||
|               criteria = "LG Display 0x060A Unknown"; |             criteria = "AOC 16G3 1DDP7HA000348"; | ||||||
|               mode = "1920x1080@60.020"; |             mode = "1920x1080@144.000"; | ||||||
|               position = "2560,0"; |             position = "0,0"; | ||||||
|               scale = 1.0; |             status = "enable"; | ||||||
|               status = "enable"; |             scale = 1.0; | ||||||
|             } |             adaptiveSync = true; | ||||||
|           ]; |           } | ||||||
|         } |           { | ||||||
|         { |             criteria = "LG Display 0x060A Unknown"; | ||||||
|           profile.name = "laptop_2"; |             mode = "1920x1080@60.020"; | ||||||
|           profile.outputs = [ |             position = "1920,0"; | ||||||
|             { |             scale = 1.0; | ||||||
|               criteria = "AOC 16G3 1DDP7HA000348"; |             status = "enable"; | ||||||
|               mode = "1920x1080@144.000"; |           } | ||||||
|               position = "0,0"; |         ]; | ||||||
|               status = "enable"; |       }; | ||||||
|               scale = 1.0; |  | ||||||
|               adaptiveSync = true; |  | ||||||
|             } |  | ||||||
|             { |  | ||||||
|               criteria = "LG Display 0x060A Unknown"; |  | ||||||
|               mode = "1920x1080@60.020"; |  | ||||||
|               position = "1920,0"; |  | ||||||
|               scale = 1.0; |  | ||||||
|               status = "enable"; |  | ||||||
|             } |  | ||||||
|           ]; |  | ||||||
|         } |  | ||||||
|       ]; |  | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ let | |||||||
|       '' |       '' | ||||||
|     }/bin/waybar-${name}"; |     }/bin/waybar-${name}"; | ||||||
| in { | in { | ||||||
|   config = lib.mkIf (config.usercfg.wm == "Wayland") { |   config = lib.mkIf (config.homecfg.wm == "Wayland") { | ||||||
|  |  | ||||||
|     home.packages = [ pkgs.custom.amdgpu_top pkgs.jq ]; |     home.packages = [ pkgs.custom.amdgpu_top pkgs.jq ]; | ||||||
|  |  | ||||||
| @@ -28,23 +28,23 @@ in { | |||||||
|       style = '' |       style = '' | ||||||
|          * { |          * { | ||||||
|           border: none; |           border: none; | ||||||
|           border-radius: ${config.colorScheme.palette.border-radius}pt; |           border-radius: ${config.colorScheme.colors.border-radius}pt; | ||||||
|           font-family:'Monospace','Material Design Icons','Openmoji'; |           font-family:'Monospace','Material Design Icons','Openmoji'; | ||||||
|           font-size: 13pt; |           font-size: 13pt; | ||||||
|           color: #${config.colorScheme.palette.base07}; |           color: #${config.colorScheme.colors.base07}; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         window#waybar { |         window#waybar { | ||||||
|           background: transparent; |           background: transparent; | ||||||
|           padding-top: ${config.colorScheme.palette.gaps-screen}pt; |           padding-top: ${config.colorScheme.colors.gaps-screen}pt; | ||||||
|           padding-bottom: ${config.colorScheme.palette.gaps-screen}pt; |           padding-bottom: ${config.colorScheme.colors.gaps-screen}pt; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         tooltip { |         tooltip { | ||||||
|           background: #${config.colorScheme.palette.base01}; |           background: #${config.colorScheme.colors.base01}; | ||||||
|           border-radius: ${config.colorScheme.palette.border-radius}pt; |           border-radius: ${config.colorScheme.colors.border-radius}pt; | ||||||
|           border-color: #${config.colorScheme.palette.base03}; |           border-color: #${config.colorScheme.colors.base03}; | ||||||
|           border-width: ${config.colorScheme.palette.border-width}pt; |           border-width: ${config.colorScheme.colors.border-width}pt; | ||||||
|           border-style: solid; |           border-style: solid; | ||||||
|           font-size: 13pt; |           font-size: 13pt; | ||||||
|         } |         } | ||||||
| @@ -64,19 +64,19 @@ in { | |||||||
|         } |         } | ||||||
|  |  | ||||||
|         #workspaces button.focused { |         #workspaces button.focused { | ||||||
|           color: #${config.colorScheme.palette.base0C}; |           color: #${config.colorScheme.colors.base0C}; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         #workspaces button.active { |         #workspaces button.active { | ||||||
|           color: #${config.colorScheme.palette.base0C}; |           color: #${config.colorScheme.colors.base0C}; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         #workspaces button.urgent { |         #workspaces button.urgent { | ||||||
|           color: #${config.colorScheme.palette.base08}; |           color: #${config.colorScheme.colors.base08}; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         #workspaces button:hover icon { |         #workspaces button:hover icon { | ||||||
|           color: #${config.colorScheme.palette.base04}; |           color: #${config.colorScheme.colors.base04}; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         #workspaces, |         #workspaces, | ||||||
| @@ -88,16 +88,16 @@ in { | |||||||
|         #custom-powermenu, |         #custom-powermenu, | ||||||
|         #clock, #clock.date, #clock.time |         #clock, #clock.date, #clock.time | ||||||
|         {  |         {  | ||||||
|           background: #${config.colorScheme.palette.base01}; |           background: #${config.colorScheme.colors.base01}; | ||||||
|           margin-bottom: ${config.colorScheme.palette.gaps-window}pt; |           margin-bottom: ${config.colorScheme.colors.gaps-window}pt; | ||||||
|           padding-top: 2px; |           padding-top: 2px; | ||||||
|           padding-left: 2px; |           padding-left: 2px; | ||||||
|           padding-bottom: 2px; |           padding-bottom: 2px; | ||||||
|           border-top-right-radius: 0px; |           border-top-right-radius: 0px; | ||||||
|           border-bottom-right-radius: 0px; |           border-bottom-right-radius: 0px; | ||||||
|           border-top: ${config.colorScheme.palette.border-width}px solid #${config.colorScheme.palette.base03}; |           border-top: ${config.colorScheme.colors.border-width}px solid #${config.colorScheme.colors.base03}; | ||||||
|           border-left: ${config.colorScheme.palette.border-width}px solid #${config.colorScheme.palette.base03}; |           border-left: ${config.colorScheme.colors.border-width}px solid #${config.colorScheme.colors.base03}; | ||||||
|           border-bottom: ${config.colorScheme.palette.border-width}px solid #${config.colorScheme.palette.base03}; |           border-bottom: ${config.colorScheme.colors.border-width}px solid #${config.colorScheme.colors.base03}; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         #custom-powermenu {           |         #custom-powermenu {           | ||||||
|   | |||||||
| @@ -1,12 +1,10 @@ | |||||||
| { lib, pkgs, config, ... }: { | { lib, pkgs, config, ... }: { | ||||||
|   config = lib.mkIf (config.usercfg.wm == "Wayland") { |   config = lib.mkIf (config.homecfg.wm == "Wayland") { | ||||||
|  |  | ||||||
|     home.packages = with pkgs; [ swayidle swaylock-effects ]; |     home.packages = with pkgs; [ swayidle swaylock-effects ]; | ||||||
|  |  | ||||||
|     xdg.configFile."swaylock/config".text = '' |     xdg.configFile."swaylock/config".text = '' | ||||||
|       screenshots |       screenshots | ||||||
|       grace-no-mouse |  | ||||||
|       grace-no-touch |  | ||||||
|       grace=5 |       grace=5 | ||||||
|       effect-pixelate=5 |       effect-pixelate=5 | ||||||
|       fade-in=0.2 |       fade-in=0.2 | ||||||
| @@ -14,43 +12,43 @@ | |||||||
|       ignore-empty-password |       ignore-empty-password | ||||||
|       font=IBM Plex Mono |       font=IBM Plex Mono | ||||||
|  |  | ||||||
|       color=${config.colorScheme.palette.base00}00 |       color=${config.colorscheme.colors.base00}00 | ||||||
|  |  | ||||||
|       indicator-radius=100 |       indicator-radius=100 | ||||||
|       indicator-thickness=30 |       indicator-thickness=30 | ||||||
|  |  | ||||||
|       separator-color=${config.colorScheme.palette.base00}00 |       separator-color=${config.colorscheme.colors.base00}00 | ||||||
|  |  | ||||||
|       inside-color=${config.colorScheme.palette.base0C}00 |       inside-color=${config.colorscheme.colors.base0C}00 | ||||||
|       inside-clear-color=${config.colorScheme.palette.base08}FF |       inside-clear-color=${config.colorscheme.colors.base08}FF | ||||||
|       inside-caps-lock-color=${config.colorScheme.palette.base09}00 |       inside-caps-lock-color=${config.colorscheme.colors.base09}00 | ||||||
|       inside-ver-color=${config.colorScheme.palette.base0C}FF |       inside-ver-color=${config.colorscheme.colors.base0C}FF | ||||||
|       inside-wrong-color=${config.colorScheme.palette.base0F}FF |       inside-wrong-color=${config.colorscheme.colors.base0F}FF | ||||||
|  |  | ||||||
|  |  | ||||||
|       ring-color=${config.colorScheme.palette.base00}00 |       ring-color=${config.colorscheme.colors.base00}00 | ||||||
|       ring-clear-color=${config.colorScheme.palette.base00}00 |       ring-clear-color=${config.colorscheme.colors.base00}00 | ||||||
|       ring-caps-lock-color=${config.colorScheme.palette.base00}00 |       ring-caps-lock-color=${config.colorscheme.colors.base00}00 | ||||||
|       ring-ver-color=${config.colorScheme.palette.base00}00 |       ring-ver-color=${config.colorscheme.colors.base00}00 | ||||||
|       ring-wrong-color=${config.colorScheme.palette.base00}00 |       ring-wrong-color=${config.colorscheme.colors.base00}00 | ||||||
|  |  | ||||||
|       line-color=${config.colorScheme.palette.base00}00 |       line-color=${config.colorscheme.colors.base00}00 | ||||||
|       line-clear-color=${config.colorScheme.palette.base00}00 |       line-clear-color=${config.colorscheme.colors.base00}00 | ||||||
|       line-caps-lock-color=${config.colorScheme.palette.base00}00 |       line-caps-lock-color=${config.colorscheme.colors.base00}00 | ||||||
|       line-ver-color=${config.colorScheme.palette.base00}00 |       line-ver-color=${config.colorscheme.colors.base00}00 | ||||||
|       line-wrong-color=${config.colorScheme.palette.base00}00 |       line-wrong-color=${config.colorscheme.colors.base00}00 | ||||||
|  |  | ||||||
|       text-color=${config.colorScheme.palette.base00}00 |       text-color=${config.colorscheme.colors.base00}00 | ||||||
|       text-clear-color=${config.colorScheme.palette.base00}00 |       text-clear-color=${config.colorscheme.colors.base00}00 | ||||||
|       text-caps-lock-color=${config.colorScheme.palette.base00}00 |       text-caps-lock-color=${config.colorscheme.colors.base00}00 | ||||||
|       text-ver-color=${config.colorScheme.palette.base00}00 |       text-ver-color=${config.colorscheme.colors.base00}00 | ||||||
|       text-wrong-color=${config.colorScheme.palette.base00}00 |       text-wrong-color=${config.colorscheme.colors.base00}00 | ||||||
|  |  | ||||||
|  |  | ||||||
|       key-hl-color=${config.colorScheme.palette.base0C}FF |       key-hl-color=${config.colorscheme.colors.base0C}FF | ||||||
|       bs-hl-color=${config.colorScheme.palette.base08}FF |       bs-hl-color=${config.colorscheme.colors.base08}FF | ||||||
|       caps-lock-key-hl-color=${config.colorScheme.palette.base09}FF |       caps-lock-key-hl-color=${config.colorscheme.colors.base09}FF | ||||||
|       caps-lock-bs-hl-color=${config.colorScheme.palette.base09}FF |       caps-lock-bs-hl-color=${config.colorscheme.colors.base09}FF | ||||||
|     ''; |     ''; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { lib, config, pkgs, ... }: { | { lib, config, pkgs, ... }: { | ||||||
|  |  | ||||||
|   config = lib.mkIf (config.usercfg.wm == "Wayland") { |   config = lib.mkIf (config.homecfg.wm == "Wayland") { | ||||||
|     home.packages = with pkgs; [ wofi ]; |     home.packages = with pkgs; [ wofi ]; | ||||||
|     xdg.configFile."wofi/config".text = '' |     xdg.configFile."wofi/config".text = '' | ||||||
|       width=280 |       width=280 | ||||||
| @@ -23,8 +23,8 @@ | |||||||
|     xdg.configFile."wofi/style.css".text = '' |     xdg.configFile."wofi/style.css".text = '' | ||||||
|       window { |       window { | ||||||
|         margin: 0px; |         margin: 0px; | ||||||
|         border-radius: ${config.colorScheme.palette.border-radius}px; |         border-radius: ${config.colorscheme.colors.border-radius}px; | ||||||
|         background-color: #${config.colorScheme.palette.base00}; |         background-color: #${config.colorscheme.colors.base00}; | ||||||
|       } |       } | ||||||
|  |  | ||||||
|       #input { |       #input { | ||||||
| @@ -33,14 +33,14 @@ | |||||||
|         padding: 4px 10px; |         padding: 4px 10px; | ||||||
|         margin: 4px; |         margin: 4px; | ||||||
|         border: none; |         border: none; | ||||||
|         color: #${config.colorScheme.palette.base07}; |         color: #${config.colorscheme.colors.base07}; | ||||||
|         font-weight: bold; |         font-weight: bold; | ||||||
|         background-color: #${config.colorScheme.palette.base01}; |         background-color: #${config.colorscheme.colors.base01}; | ||||||
|         outline: #${config.colorScheme.palette.base04}; |         outline: #${config.colorscheme.colors.base04}; | ||||||
|       } |       } | ||||||
|  |  | ||||||
|       #input:selected { |       #input:selected { | ||||||
|         color: #${config.colorScheme.palette.base0C}; |         color: #${config.colorscheme.colors.base0C}; | ||||||
|       } |       } | ||||||
|  |  | ||||||
|       #inner-box { |       #inner-box { | ||||||
| @@ -51,19 +51,19 @@ | |||||||
|       #outer-box { |       #outer-box { | ||||||
|         margin: 0px; |         margin: 0px; | ||||||
|         padding: 3px; |         padding: 3px; | ||||||
|         border-radius: ${config.colorScheme.palette.border-radius}px; |         border-radius: ${config.colorscheme.colors.border-radius}px; | ||||||
|         border-width: ${config.colorScheme.palette.border-width}px; |         border-width: ${config.colorscheme.colors.border-width}px; | ||||||
|         border-color: #${config.colorScheme.palette.base04}; |         border-color: #${config.colorscheme.colors.base04}; | ||||||
|         border-style: solid; |         border-style: solid; | ||||||
|       } |       } | ||||||
|  |  | ||||||
|       #text:selected { |       #text:selected { | ||||||
|         color: #${config.colorScheme.palette.base00}; |         color: #${config.colorscheme.colors.base00}; | ||||||
|         background-color: transparent; |         background-color: transparent; | ||||||
|       } |       } | ||||||
|  |  | ||||||
|       #entry:selected { |       #entry:selected { | ||||||
|         background-color: #${config.colorScheme.palette.base07}; |         background-color: #${config.colorscheme.colors.base07}; | ||||||
|       } |       } | ||||||
|     ''; |     ''; | ||||||
|   }; |   }; | ||||||
|   | |||||||
| @@ -11,18 +11,14 @@ let | |||||||
|     ''; |     ''; | ||||||
|   }; |   }; | ||||||
| in { | in { | ||||||
|   config = lib.mkIf (config.usercfg.wm == "Wayland") { |   config = lib.mkIf (config.homecfg.wm == "Wayland") { | ||||||
|  |  | ||||||
|     home.packages = with pkgs; [ |     home.packages = with pkgs; [ | ||||||
|       dbus-hyprland-environment |       dbus-hyprland-environment | ||||||
|       wayland |       wayland | ||||||
|  |  | ||||||
|       hyprpicker |       grim | ||||||
|        |  | ||||||
|       hyprshot |  | ||||||
|       slurp |       slurp | ||||||
|       satty |  | ||||||
|  |  | ||||||
|       swappy |       swappy | ||||||
|       cliphist |       cliphist | ||||||
|       wl-clipboard |       wl-clipboard | ||||||
| @@ -33,7 +29,7 @@ in { | |||||||
|  |  | ||||||
|       glib |       glib | ||||||
|  |  | ||||||
|       brightnessctl |       brillo | ||||||
|       swww |       swww | ||||||
|     ]; |     ]; | ||||||
|  |  | ||||||
| @@ -46,8 +42,6 @@ in { | |||||||
|           [ "discord-402572971681644545.desktop" ]; |           [ "discord-402572971681644545.desktop" ]; | ||||||
|         "x-scheme-handler/discord-696343075731144724" = |         "x-scheme-handler/discord-696343075731144724" = | ||||||
|           [ "discord-696343075731144724.desktop" ]; |           [ "discord-696343075731144724.desktop" ]; | ||||||
|         "x-scheme-handler/tg" = [ "org.telegram.desktop.desktop" ]; |  | ||||||
|         "x-scheme-handler/tonsite" = [ "org.telegram.desktop.desktop" ]; |  | ||||||
|         "x-scheme-handler/http" = [ "firefox.desktop" ]; |         "x-scheme-handler/http" = [ "firefox.desktop" ]; | ||||||
|         "x-scheme-handler/https" = [ "firefox.desktop" ]; |         "x-scheme-handler/https" = [ "firefox.desktop" ]; | ||||||
|         "x-scheme-handler/chrome" = [ "firefox.desktop" ]; |         "x-scheme-handler/chrome" = [ "firefox.desktop" ]; | ||||||
|   | |||||||
| @@ -1,12 +1,11 @@ | |||||||
| { lib, config, pkgs, ... }: { | { lib, config, pkgs, ... }: { | ||||||
|   config = lib.mkIf (config.usercfg.wm == "Wayland") { |   config = lib.mkIf (config.homecfg.wm == "Wayland") { | ||||||
|  |  | ||||||
|     wayland.windowManager.hyprland = { |     wayland.windowManager.hyprland = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       xwayland.enable = true; |       xwayland.enable = true; | ||||||
|       extraConfig = '' |       extraConfig = '' | ||||||
|         monitor=,preferred,auto,auto |         monitor=,preferred,auto,auto | ||||||
|         env=bitdepth,10 |  | ||||||
|         input { |         input { | ||||||
|             kb_layout = us, ru |             kb_layout = us, ru | ||||||
|             kb_variant = intl, phonetic |             kb_variant = intl, phonetic | ||||||
| @@ -14,7 +13,7 @@ | |||||||
|  |  | ||||||
|             follow_mouse = 1 |             follow_mouse = 1 | ||||||
|  |  | ||||||
|             sensitivity = 0 |             sensitivity = 0 # -0.5 # -1.0 - 1.0, 0 means no modification. | ||||||
|                          |                          | ||||||
|             touchpad { |             touchpad { | ||||||
|                 natural_scroll=no |                 natural_scroll=no | ||||||
| @@ -34,18 +33,18 @@ | |||||||
|         } |         } | ||||||
|                          |                          | ||||||
|         general { |         general { | ||||||
|             gaps_in = ${config.colorScheme.palette.gaps-window} |             gaps_in = ${config.colorScheme.colors.gaps-window} | ||||||
|             gaps_out = ${config.colorScheme.palette.gaps-screen} |             gaps_out = ${config.colorScheme.colors.gaps-screen} | ||||||
|             border_size = ${config.colorScheme.palette.border-width} |             border_size = ${config.colorScheme.colors.border-width} | ||||||
|                                        |                                        | ||||||
|             col.active_border = rgb(${config.colorScheme.palette.base04}) |             col.active_border = rgb(${config.colorScheme.colors.base04}) | ||||||
|             col.inactive_border = rgb(${config.colorScheme.palette.base03}) |             col.inactive_border = rgb(${config.colorScheme.colors.base03}) | ||||||
|                            |                            | ||||||
|             layout = dwindle |             layout = dwindle | ||||||
|         } |         } | ||||||
|                          |                          | ||||||
|         decoration { |         decoration { | ||||||
|             rounding = ${config.colorScheme.palette.border-radius} |             rounding = ${config.colorScheme.colors.border-radius} | ||||||
|                            |                            | ||||||
|             blur { |             blur { | ||||||
|                 enabled = true |                 enabled = true | ||||||
| @@ -61,10 +60,10 @@ | |||||||
|             fullscreen_opacity = 1.0 |             fullscreen_opacity = 1.0 | ||||||
|                                        |                                        | ||||||
|             # shadow |             # shadow | ||||||
|             # drop_shadow = no |             drop_shadow = no | ||||||
|             # shadow_range = 60 |             shadow_range = 60 | ||||||
|             # shadow_offset = 0 5 |             shadow_offset = 0 5 | ||||||
|             # shadow_render_power = 4 |             shadow_render_power = 4 | ||||||
|             #col.shadow = rgba(00000099) |             #col.shadow = rgba(00000099) | ||||||
|         } |         } | ||||||
|                          |                          | ||||||
| @@ -86,7 +85,7 @@ | |||||||
|         } |         } | ||||||
|  |  | ||||||
|         master { |         master { | ||||||
|             new_status = master |             new_is_master = true | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         gestures { |         gestures { | ||||||
| @@ -138,19 +137,14 @@ | |||||||
|         windowrulev2 = float,title:^(File Operation Progress)$ |         windowrulev2 = float,title:^(File Operation Progress)$ | ||||||
|         windowrulev2 = float,class:^(firefox)$,title:^(Picture-in-Picture)$ |         windowrulev2 = float,class:^(firefox)$,title:^(Picture-in-Picture)$ | ||||||
|         windowrulev2 = pin,class:^(firefox)$,title:^(Picture-in-Picture)$ |         windowrulev2 = pin,class:^(firefox)$,title:^(Picture-in-Picture)$ | ||||||
|         windowrulev2 = suppressevent fullscreen,class:^(firefox)$,title:^(Picture-in-Picture)$ |         windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Picture-in-Picture)$ | ||||||
|         windowrulev2 = float,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$ |         windowrulev2 = float,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$ | ||||||
|         windowrulev2 = suppressevent fullscreen,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$ |         windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$ | ||||||
|         windowrulev2 = float,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$ |         windowrulev2 = float,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$ | ||||||
|         windowrulev2 = suppressevent fullscreen,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$ |         windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$ | ||||||
|         windowrulev2 = float,class:^(org.telegram.desktop)$,title:^(Media viewer)$ |         windowrulev2 = float,class:^(org.telegram.desktop)$,title:^(Media viewer)$ | ||||||
|         windowrulev2 = center,class:^(org.telegram.desktop)$,title:^(Media viewer)$ |         windowrulev2 = center,class:^(org.telegram.desktop)$,title:^(Media viewer)$ | ||||||
|  |  | ||||||
|         #SPECIAL NO SLEEP |  | ||||||
|         windowrulev2 = idleinhibit fullscreen, class:^(.*) |  | ||||||
|         windowrulev2 = idleinhibit focus, class:^(steam_app_.*)$ |  | ||||||
|         windowrulev2 = idleinhibit focus, class:^(mpv)$ |  | ||||||
|  |  | ||||||
|         layerrule = blur,^(eww-blur) |         layerrule = blur,^(eww-blur) | ||||||
|  |  | ||||||
|         #binds |         #binds | ||||||
| @@ -166,7 +160,7 @@ | |||||||
|         bind = SUPER SHIFT,D,exec, ~/.config/hypr/themes/apatheia/eww/launch_bar  |         bind = SUPER SHIFT,D,exec, ~/.config/hypr/themes/apatheia/eww/launch_bar  | ||||||
|  |  | ||||||
|         bind = SUPER, V, exec, cliphist list | wofi -dmenu | cliphist decode | wl-copy |         bind = SUPER, V, exec, cliphist list | wofi -dmenu | cliphist decode | wl-copy | ||||||
|         bind = , PRINT, exec, hyprshot -m region --raw | satty --filename - --early-exit --action-on-enter save-to-clipboard --copy-command 'wl-copy' |         bind =  , Print, exec, grim -g "$(slurp -d)" - | swappy -f - | ||||||
|  |  | ||||||
|         bind = SUPER, L, exec, swaylock  |         bind = SUPER, L, exec, swaylock  | ||||||
|  |  | ||||||
| @@ -208,8 +202,8 @@ | |||||||
|         bind = , XF86AudioRaiseVolume, exec, amixer -q sset 'Master' 5%+ |         bind = , XF86AudioRaiseVolume, exec, amixer -q sset 'Master' 5%+ | ||||||
|         bind = , XF86AudioLowerVolume, exec, amixer -q sset 'Master' 5%- |         bind = , XF86AudioLowerVolume, exec, amixer -q sset 'Master' 5%- | ||||||
|         bind = , XF86AudioMute, exec, amixer -q sset 'Master' toggle |         bind = , XF86AudioMute, exec, amixer -q sset 'Master' toggle | ||||||
|         bind = , XF86MonBrightnessUp, exec, brightnessctl s 5%+ |         bind = , XF86MonBrightnessUp, exec, brillo -A 5 | ||||||
|         bind = , XF86MonBrightnessDown, exec, brightnessctl s 5%- |         bind = , XF86MonBrightnessDown, exec, brillo -U 5 | ||||||
|  |  | ||||||
|         exec-once = [workspace special silent] kitty --title flying_kitty |         exec-once = [workspace special silent] kitty --title flying_kitty | ||||||
|         exec-once = sh ~/.config/startup.sh |         exec-once = sh ~/.config/startup.sh | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { lib, config, pkgs, ... }: { | { lib, config, pkgs, ... }: { | ||||||
|   imports = [ ./config.nix ]; |   imports = [ ./config.nix ]; | ||||||
|   config = lib.mkIf (config.usercfg.wm == "Wayland") { |   config = lib.mkIf (config.homecfg.wm == "Wayland") { | ||||||
|     wayland.windowManager.hyprland = { enable = true; }; |     wayland.windowManager.hyprland = { enable = true; }; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| { lib, config, ... }: { | { lib, config, ... }: { | ||||||
|   config = lib.mkIf (config.usercfg.wm == "X11") { |   config = lib.mkIf (config.homecfg.wm == "X11") { | ||||||
|     xsession.windowManager.bspwm.extraConfig = '' |     xsession.windowManager.bspwm.extraConfig = '' | ||||||
|           #! /bin/bash |           #! /bin/bash | ||||||
|  |  | ||||||
| @@ -110,7 +110,7 @@ | |||||||
|       telegram-desktop & |       telegram-desktop & | ||||||
|       nextcloud & |       nextcloud & | ||||||
|       jellyfin-mpv-shim & |       jellyfin-mpv-shim & | ||||||
|       #flameshot & |       flameshot & | ||||||
|  |  | ||||||
|       sleep 2 |       sleep 2 | ||||||
|  |  | ||||||
| @@ -265,7 +265,7 @@ | |||||||
|  |  | ||||||
|       # Screenshots |       # Screenshots | ||||||
|       Print |       Print | ||||||
|       	hyprshot -m region |       	flameshot gui | ||||||
|  |  | ||||||
|       # Lock Desktop |       # Lock Desktop | ||||||
|       super + l |       super + l | ||||||
|   | |||||||
| @@ -2,10 +2,10 @@ | |||||||
|  |  | ||||||
|   imports = [ ./config.nix ./script.nix ./xressources.nix ]; |   imports = [ ./config.nix ./script.nix ./xressources.nix ]; | ||||||
|  |  | ||||||
|   config = lib.mkIf (config.usercfg.wm == "X11") { |   config = lib.mkIf (config.homecfg.wm == "X11") { | ||||||
|     xsession.windowManager.bspwm = { enable = true; }; |     xsession.windowManager.bspwm = { enable = true; }; | ||||||
|     services.sxhkd = { enable = true; }; |     services.sxhkd = { enable = true; }; | ||||||
|     home.packages = with pkgs; [ xrandr arandr hyprshot xtrlock i3lock ]; |     home.packages = with pkgs; [ xrandr arandr flameshot xtrlock i3lock ]; | ||||||
|  |  | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| { lib, config, ... }: { | { lib, config, ... }: { | ||||||
|   config = lib.mkIf (config.usercfg.wm == "X11") { |   config = lib.mkIf (config.homecfg.wm == "X11") { | ||||||
|     xdg.configFile."script/lock.sh".text = '' |     xdg.configFile."script/lock.sh".text = '' | ||||||
|       #!/bin/bash |       #!/bin/bash | ||||||
|       TMPBG=/tmp/screen.png |       TMPBG=/tmp/screen.png | ||||||
|   | |||||||
| @@ -1,29 +1,29 @@ | |||||||
| { lib, config, ... }: { | { lib, config, ... }: { | ||||||
|   config = lib.mkIf (config.usercfg.wm == "X11") { |   config = lib.mkIf (config.homecfg.wm == "X11") { | ||||||
|     xresources.extraConfig = '' |     xresources.extraConfig = '' | ||||||
|  |  | ||||||
|       #define white #ffffff |       #define white #ffffff | ||||||
|       #define black #000000 |       #define black #000000 | ||||||
|       #define cFG #${config.colorScheme.palette.base07} |       #define cFG #${config.colorScheme.colors.base07} | ||||||
|       #define cBG #${config.colorScheme.palette.base00} |       #define cBG #${config.colorScheme.colors.base00} | ||||||
|       #define cP #${config.colorScheme.palette.base07} |       #define cP #${config.colorScheme.colors.base07} | ||||||
|       #define cH #${config.colorScheme.palette.base0C} |       #define cH #${config.colorScheme.colors.base0C} | ||||||
|       #define c0 #${config.colorScheme.palette.base00} |       #define c0 #${config.colorScheme.colors.base00} | ||||||
|       #define c1 #${config.colorScheme.palette.base01} |       #define c1 #${config.colorScheme.colors.base01} | ||||||
|       #define c2 #${config.colorScheme.palette.base02} |       #define c2 #${config.colorScheme.colors.base02} | ||||||
|       #define c3 #${config.colorScheme.palette.base03} |       #define c3 #${config.colorScheme.colors.base03} | ||||||
|       #define c4 #${config.colorScheme.palette.base04} |       #define c4 #${config.colorScheme.colors.base04} | ||||||
|       #define c5 #${config.colorScheme.palette.base05} |       #define c5 #${config.colorScheme.colors.base05} | ||||||
|       #define c6 #${config.colorScheme.palette.base06} |       #define c6 #${config.colorScheme.colors.base06} | ||||||
|       #define c7 #${config.colorScheme.palette.base07} |       #define c7 #${config.colorScheme.colors.base07} | ||||||
|       #define c8 #${config.colorScheme.palette.base08} |       #define c8 #${config.colorScheme.colors.base08} | ||||||
|       #define c9 #${config.colorScheme.palette.base09} |       #define c9 #${config.colorScheme.colors.base09} | ||||||
|       #define cA #${config.colorScheme.palette.base0A} |       #define cA #${config.colorScheme.colors.base0A} | ||||||
|       #define cB #${config.colorScheme.palette.base0B} |       #define cB #${config.colorScheme.colors.base0B} | ||||||
|       #define cC #${config.colorScheme.palette.base0C} |       #define cC #${config.colorScheme.colors.base0C} | ||||||
|       #define cD #${config.colorScheme.palette.base0D} |       #define cD #${config.colorScheme.colors.base0D} | ||||||
|       #define cE #${config.colorScheme.palette.base0E} |       #define cE #${config.colorScheme.colors.base0E} | ||||||
|       #define cF #${config.colorScheme.palette.base0F} |       #define cF #${config.colorScheme.colors.base0F} | ||||||
|  |  | ||||||
|       Xft.dpi: 96 |       Xft.dpi: 96 | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1 +1 @@ | |||||||
| { ... }: { imports = [ ./cli ./gui ./system ./tools ./users ]; } | { ... }: { imports = [ ./cli ./gui ./hostcfg ./system ./tools ./users ]; } | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| { lib, config, pkgs, ... }: | { lib, config, pkgs, ... }: | ||||||
| let cfg = config.syscfg.make.gui; | let cfg = config.hostcfg.make.gui; | ||||||
| in { | in { | ||||||
|   config = lib.mkIf cfg { |   config = lib.mkIf cfg { | ||||||
|     # sound.enable = true; |     sound.enable = true; | ||||||
|  |     hardware.pulseaudio.enable = false; | ||||||
|     security.rtkit.enable = true; |     security.rtkit.enable = true; | ||||||
|     services.pulseaudio.enable = false; #25.05 change to services |  | ||||||
|     services.pipewire = { |     services.pipewire = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       alsa.enable = true; |       alsa.enable = true; | ||||||
| @@ -13,6 +13,6 @@ in { | |||||||
|       # wireplumber.enable = true; |       # wireplumber.enable = true; | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     environment.systemPackages = with pkgs; [ easyeffects alsa-utils ]; |     environment.systemPackages = with pkgs; [ easyeffects ]; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,13 +1,10 @@ | |||||||
| { lib, config, pkgs, ... }: | { lib, config, pkgs, ... }: | ||||||
| let cfg = config.syscfg.make.game; | let cfg = config.hostcfg.make.game; | ||||||
| in { | in { | ||||||
|   config = lib.mkIf cfg { |   config = lib.mkIf cfg { | ||||||
|     programs.steam = { |     programs.steam = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       remotePlay.openFirewall = true; |       remotePlay.openFirewall = true; | ||||||
|       extraCompatPackages = with pkgs;  [proton-ge-bin]; |  | ||||||
|     }; |     }; | ||||||
|     programs.gamemode.enable = true; |  | ||||||
|  |  | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,12 +1,14 @@ | |||||||
| { lib, config, pkgs, ... }: { | { lib, config, pkgs, ... }: | ||||||
|   config = lib.mkIf (config.syscfg.make.gui) { | let cfg = config.hostcfg.make.gui; | ||||||
|  | in { | ||||||
|  |   config = lib.mkIf cfg { | ||||||
|  |  | ||||||
|     services.greetd = { |     services.greetd = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       settings = rec { |       settings = rec { | ||||||
|         initial_session = { |         initial_session = { | ||||||
|           command = "zsh"; |           command = "zsh"; | ||||||
|           user = "${config.syscfg.defaultUser}"; |           user = "${config.hostcfg.username}"; | ||||||
|         }; |         }; | ||||||
|         default_session = initial_session; |         default_session = initial_session; | ||||||
|       }; |       }; | ||||||
|   | |||||||
| @@ -1,13 +1,12 @@ | |||||||
| { lib, config, pkgs, ... }: { | { lib, config, pkgs, ... }: | ||||||
|   config = lib.mkIf (config.syscfg.make.gui) { | let cfg = config.hostcfg.make.gui; | ||||||
|     programs.xwayland.enable = true; | in { | ||||||
|  |   config = lib.mkIf cfg { | ||||||
|     services.xserver = { |     services.xserver = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       videoDrivers = [ "amd" ]; |       videoDrivers = [ "amd" ]; | ||||||
|       xkb = { |       layout = "us"; | ||||||
|         layout = "us"; |       xkbVariant = "intl"; | ||||||
|         variant = "intl"; |  | ||||||
|       }; |  | ||||||
|       excludePackages = [ pkgs.xterm ]; |       excludePackages = [ pkgs.xterm ]; | ||||||
|       exportConfiguration = true; |       exportConfiguration = true; | ||||||
|       #  libinput.touchpad.tapping = false; |       #  libinput.touchpad.tapping = false; | ||||||
|   | |||||||
							
								
								
									
										44
									
								
								modules/nixos/hostcfg/default.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										44
									
								
								modules/nixos/hostcfg/default.nix
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,44 @@ | |||||||
|  | { lib, config, ... }: | ||||||
|  | with lib; { | ||||||
|  |   options.hostcfg = { | ||||||
|  |     hostname = mkOption { type = types.str; }; | ||||||
|  |     username = mkOption { type = types.str; }; | ||||||
|  |     make = { | ||||||
|  |       cli = mkOption { | ||||||
|  |         type = types.bool; | ||||||
|  |         default = true; | ||||||
|  |       }; | ||||||
|  |       gui = mkOption { | ||||||
|  |         type = types.bool; | ||||||
|  |         default = false; | ||||||
|  |       }; | ||||||
|  |       virt = mkOption { | ||||||
|  |         type = types.bool; | ||||||
|  |         default = true; | ||||||
|  |       }; | ||||||
|  |       power = mkOption { | ||||||
|  |         type = types.bool; | ||||||
|  |         default = false; | ||||||
|  |       }; | ||||||
|  |       game = mkOption { | ||||||
|  |         type = types.bool; | ||||||
|  |         default = false; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |     net = { | ||||||
|  |       wlp = { | ||||||
|  |         enable = mkOption { type = types.bool; }; | ||||||
|  |         nif = mkOption { type = types.str; }; | ||||||
|  |       }; | ||||||
|  |       wg = { | ||||||
|  |         enable = mkOption { | ||||||
|  |           type = types.bool; | ||||||
|  |           default = true; | ||||||
|  |         }; | ||||||
|  |         ip4 = mkOption { type = types.str; }; | ||||||
|  |         ip6 = mkOption { type = types.str; }; | ||||||
|  |         pk = mkOption { type = types.str; }; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| { ... }: { | { ... }: { | ||||||
|   services.fwupd.enable = true; |   services.fwupd.enable = false; # Note: run inside a nix-shell | ||||||
|   hardware.enableAllFirmware = true; |   hardware.enableAllFirmware = true; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,16 +1,12 @@ | |||||||
| { lib, config, ... }: | { ... }: { | ||||||
| let isSANDBOX = builtins.elem config.syscfg.hostname [ "sandbox" ]; |   boot.loader = { | ||||||
| in { |     systemd-boot = { | ||||||
|   config = lib.mkIf (!isSANDBOX) { |       enable = true; | ||||||
|     boot.loader = { |       configurationLimit = 8; | ||||||
|       systemd-boot = { |     }; | ||||||
|         enable = true; |     efi = { | ||||||
|         configurationLimit = 8; |       canTouchEfiVariables = true; | ||||||
|       }; |       efiSysMountPoint = "/boot/efi"; | ||||||
|       efi = { |  | ||||||
|         canTouchEfiVariables = true; |  | ||||||
|         efiSysMountPoint = "/boot/efi"; |  | ||||||
|       }; |  | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1 +1 @@ | |||||||
| { ... }: { imports = [ ./base ./boot ./fs ./graphics ./power ./udev ./virt ]; } | { ... }: { imports = [ ./base ./boot ./fs ./opengl ./power ./udev ./virt ]; } | ||||||
|   | |||||||
| @@ -1,4 +0,0 @@ | |||||||
| { ... }: { |  | ||||||
|   hardware.graphics.enable = true; |  | ||||||
|   hardware.graphics.enable32Bit = true; |  | ||||||
| } |  | ||||||
							
								
								
									
										5
									
								
								modules/nixos/system/hw/opengl/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								modules/nixos/system/hw/opengl/default.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | { ... }: { | ||||||
|  |   hardware.opengl.enable = true; | ||||||
|  |   hardware.opengl.driSupport = true; | ||||||
|  |   hardware.opengl.driSupport32Bit = true; | ||||||
|  | } | ||||||
| @@ -1,5 +1,7 @@ | |||||||
| { lib, config, pkgs, ... }: { | { lib, config, pkgs, ... }: | ||||||
|   config = lib.mkIf (config.syscfg.make.power) { | let cfg = config.hostcfg.make.power; | ||||||
|  | in { | ||||||
|  |   config = lib.mkIf cfg { | ||||||
|     services.tlp = { |     services.tlp = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       settings = { |       settings = { | ||||||
| @@ -7,25 +9,9 @@ | |||||||
|         STOP_CHARGE_THRESH_BAT0 = 90; |         STOP_CHARGE_THRESH_BAT0 = 90; | ||||||
|         CPU_SCALING_GOVERNOR_ON_AC = "performance"; |         CPU_SCALING_GOVERNOR_ON_AC = "performance"; | ||||||
|         CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; |         CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; | ||||||
|         MEM_SLEEP_ON_BAT = "deep"; |  | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     powerManagement.enable = true; |  | ||||||
|     # suspend to RAM (deep) rather than `s2idle` |  | ||||||
|     boot.kernelParams = [ "mem_sleep_default=deep" ]; |  | ||||||
|     # suspend-then-hibernate |  | ||||||
|     systemd.sleep.extraConfig = '' |  | ||||||
|       HibernateDelaySec=30m |  | ||||||
|       SuspendState=mem |  | ||||||
|     ''; |  | ||||||
|  |  | ||||||
|     services.logind.lidSwitch = "suspend-then-hibernate"; |  | ||||||
|     # Hibernate on power button pressed |  | ||||||
|     services.logind.powerKey = "hibernate"; |  | ||||||
|     services.logind.powerKeyLongPress = "poweroff"; |  | ||||||
|  |  | ||||||
|  |  | ||||||
|     systemd.user.services.battery_monitor = { |     systemd.user.services.battery_monitor = { | ||||||
|       wants = [ "display-manager.service" ]; |       wants = [ "display-manager.service" ]; | ||||||
|       wantedBy = [ "graphical-session.target" ]; |       wantedBy = [ "graphical-session.target" ]; | ||||||
|   | |||||||
| @@ -1,16 +1,13 @@ | |||||||
| { ... }: { | { ... }: { | ||||||
|   systemd.services.systemd-udevd.restartIfChanged = false; |   systemd.services.systemd-udevd.restartIfChanged = false; | ||||||
|  |  | ||||||
|   services.udev = { |   services.udev.extraRules = '' | ||||||
|     packages = [ ]; |     SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0127", GROUP="plugdev", TAG+="uaccess" | ||||||
|     extraRules = '' |     SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0118", GROUP="plugdev", TAG+="uaccess" | ||||||
|       SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0127", GROUP="plugdev", TAG+="uaccess" |     SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0106", GROUP="plugdev", TAG+="uaccess" | ||||||
|       SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0118", GROUP="plugdev", TAG+="uaccess" |     SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0128", GROUP="plugdev", TAG+="uaccess" | ||||||
|       SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0106", GROUP="plugdev", TAG+="uaccess" |     SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="010a", GROUP="plugdev", TAG+="uaccess" | ||||||
|       SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0128", GROUP="plugdev", TAG+="uaccess" |     SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0102", GROUP="plugdev", TAG+="uaccess" | ||||||
|       SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="010a", GROUP="plugdev", TAG+="uaccess" |     SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0313", GROUP="plugdev", TAG+="uaccess" | ||||||
|       SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0102", GROUP="plugdev", TAG+="uaccess" |   ''; | ||||||
|       SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0313", GROUP="plugdev", TAG+="uaccess" |  | ||||||
|     ''; |  | ||||||
|   }; |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,19 +1,16 @@ | |||||||
| { lib, config, pkgs, ... }: { | { lib, config, ... }: | ||||||
|   config = lib.mkIf (config.syscfg.make.virt) { | let cfg = config.hostcfg.make.virt; | ||||||
|     #environment.systemPackages = [ pkgs.qemu ]; | in { | ||||||
|  |   config = lib.mkIf cfg { | ||||||
|     virtualisation = { |     virtualisation = { | ||||||
|       #libvirtd.enable = true; |       # libvirtd.enable = true; | ||||||
|       # waydroid.enable = true; |       # waydroid.enable = true; | ||||||
|       # lxd.enable = true; |       # lxd.enable = true; | ||||||
|       docker.enable = false; |       docker = { | ||||||
|       podman = { |  | ||||||
|         enable = true; |         enable = true; | ||||||
|         dockerSocket.enable = true; |         rootless = { | ||||||
|         dockerCompat = true; |           enable = true; | ||||||
|         defaultNetwork.settings = { |           setSocketVariable = true; | ||||||
|           dnsname.enable = true; |  | ||||||
|           internal = true; |  | ||||||
|           name = "internal"; |  | ||||||
|         }; |         }; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { config, ... }: { | { config, ... }: { | ||||||
|   networking = { |   networking = { | ||||||
|     hostName = config.syscfg.hostname; |     hostName = config.hostcfg.hostname; | ||||||
|     useDHCP = true; |     useDHCP = true; | ||||||
|     nameservers = [ "1.1.1.1" "9.9.9.9" ]; |     nameservers = [ "1.1.1.1" "9.9.9.9" ]; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,7 +1,5 @@ | |||||||
| { config, lib, pkgs, ... }: { | { pkgs, ... }: { | ||||||
|   config = lib.mkIf (config.syscfg.net.ble.enable) { |   hardware.bluetooth.enable = true; | ||||||
|     hardware.bluetooth.enable = true; |   services.blueman.enable = true; | ||||||
|     services.blueman.enable = true; |   environment.systemPackages = with pkgs; [ bluez bluez-tools ]; | ||||||
|     environment.systemPackages = with pkgs; [ bluez bluez-tools ]; |  | ||||||
|   }; |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,7 +1,9 @@ | |||||||
| { lib, config, ... }: { | { lib, config, ... }: | ||||||
|   config = lib.mkIf (config.syscfg.net.wlp.enable) { | let cfg = config.hostcfg.net.wlp; | ||||||
|  | in { | ||||||
|  |   config = lib.mkIf cfg.enable { | ||||||
|     networking.supplicant = { |     networking.supplicant = { | ||||||
|       "${config.syscfg.net.wlp.nif}" = { |       "${cfg.nif}" = { | ||||||
|         configFile.path = config.sops.secrets.wifi.path; |         configFile.path = config.sops.secrets.wifi.path; | ||||||
|         extraConf = '' |         extraConf = '' | ||||||
|           network={ |           network={ | ||||||
|   | |||||||
| @@ -1,21 +1,18 @@ | |||||||
| { config, lib, ... }: { | { config, ... }: { | ||||||
|   config = lib.mkIf (config.syscfg.net.wg.enable) { |   networking.wireguard = { | ||||||
|     networking.wireguard = { |     enable = true; | ||||||
|       enable = true; |     interfaces = { | ||||||
|       interfaces = { |       wg0 = { | ||||||
|         wg0 = { |         ips = [ config.hostcfg.net.wg.ip4 config.hostcfg.net.wg.ip6 ]; | ||||||
|           ips = [ config.syscfg.net.wg.ip4 config.syscfg.net.wg.ip6 ]; |         privateKeyFile = config.hostcfg.net.wg.pk; | ||||||
|           privateKeyFile = |         listenPort = 1515; | ||||||
|             config.sops.secrets."${config.syscfg.hostname}_wg_priv".path; |         mtu = 1340; | ||||||
|           listenPort = 1515; |         peers = [{ | ||||||
|           mtu = 1340; |           allowedIPs = [ "10.10.1.0/24" "fd10:10:10::0/64" ]; | ||||||
|           peers = [{ |           endpoint = "vpn.helcel.net:1515"; | ||||||
|             allowedIPs = [ "10.10.1.0/24" "fd10:10:10::0/64" ]; |           publicKey = "NFBJvYXZC+bd62jhrKnM7/pugidWhgR6+C5qIiUiq3Q="; | ||||||
|             endpoint = "vpn.helcel.net:1515"; |           persistentKeepalive = 30; | ||||||
|             publicKey = "NFBJvYXZC+bd62jhrKnM7/pugidWhgR6+C5qIiUiq3Q="; |         }]; | ||||||
|             persistentKeepalive = 30; |  | ||||||
|           }]; |  | ||||||
|         }; |  | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
|   | |||||||
| @@ -1,16 +1,15 @@ | |||||||
| { inputs, pkgs, ... }: { | { pkgs, ... }: { | ||||||
|   nixpkgs.config = { |   nixpkgs.config = { | ||||||
|     permittedInsecurePackages = [ ]; |     permittedInsecurePackages = [ ]; | ||||||
|     allowUnfree = true; |     allowUnfree = true; | ||||||
|     android_sdk.accept_license = true; |  | ||||||
|     packageOverrides = pkgs: rec { |     packageOverrides = pkgs: rec { | ||||||
|       custom = import ../../../../packages { inherit pkgs; }; |       custom = import ../../../../packages { inherit pkgs; }; | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|   }; |   }; | ||||||
|   nixpkgs.overlays = import ../../../../overlays { inherit inputs pkgs; }; |   nixpkgs.overlays = import ../../../../overlays { inherit pkgs; }; | ||||||
|   nix = { |   nix = { | ||||||
|     package = pkgs.nixVersions.stable; |     package = pkgs.nixFlakes; | ||||||
|     extraOptions = '' |     extraOptions = '' | ||||||
|       experimental-features = nix-command flakes |       experimental-features = nix-command flakes | ||||||
|       warn-dirty = false |       warn-dirty = false | ||||||
| @@ -25,17 +24,13 @@ | |||||||
|     settings = { |     settings = { | ||||||
|       auto-optimise-store = true; |       auto-optimise-store = true; | ||||||
|       builders-use-substitutes = true; |       builders-use-substitutes = true; | ||||||
|       substituters = [ |       substituters = | ||||||
|         "https://hyprland.cachix.org" |         [ "https://hyprland.cachix.org" "https://cache.nixos.org" ]; | ||||||
|         "https://cache.nixos.org" |  | ||||||
|         "https://helcel.cachix.org" |  | ||||||
|       ]; |  | ||||||
|       trusted-public-keys = [ |       trusted-public-keys = [ | ||||||
|         "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" |         "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" | ||||||
|         "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" |         "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" | ||||||
|         "helcel.cachix.org-1:95s8D+N2xIHwzmkuu7jMUp9t3rtN4EimafR73jO7GLg=" |  | ||||||
|       ]; |       ]; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
|   system.stateVersion = "24.11"; |   system.stateVersion = "23.11"; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1 +1 @@ | |||||||
| { ... }: { imports = [ ./gpg ./polkit ./ssh ]; } | { ... }: { imports = [ ./gpg ./polkit ./sops ./ssh ]; } | ||||||
|   | |||||||
							
								
								
									
										93
									
								
								modules/nixos/system/security/sops/common.yaml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										93
									
								
								modules/nixos/system/security/sops/common.yaml
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,93 @@ | |||||||
|  | valinor_ssh_priv: ENC[AES256_GCM,data:+eeVw/05eU5VW29KhT9+eGXcf+Ola2n0ISbj5Lzyj/bB/8OWDGXkqxWjgZv3cbL9v265AbyqcHfYX94BynTtMITfM6Cwz3D0EcUmIyP3rgjrJZdnksLu41a30dUjLnfVqiPwZaxxccZb6/JNAgXrg4hjkTsrCiZeSGpPl2VqECVt0tfJ3nmJwX+7C95QMvzxCw5S6CbN53AZBPmqBqzmxperc0LegMR+2lXviuqTEL2ZH3mzo0YeJQS/yCVVQL6TWx/wyM4fKD4kavg07sCAoj7E4V9RL4DY75uIbEz2+hvw9yE4nCtg2UgLu2hmragbH5ZseD/BWu+d2JGQeAnSLJBr6lZj/LGsiCe5vdnNqh2igZ9EI8Bhjv2ed2ajAxPYxJ1cAT9noxx6E+KU6sjWaSeKhLsnO/X3Ht1ADiUP4i/j39aE/4U7Gmk8Gs+3LBF0FXS88M06HV1cCKkd8RLkD0v6uKpOd6deOkKZRRGT8XzrF6JGY6fMXksF7GCqYqKhHEvU3nd3MQ/XjZuSycIr6NKdo31iezwjFCELUf2XQCIEtLe77vxfZQQ9lhddLhM7FJVDwlIuVLjN0lzrUoCywOZOG/ipenkCLDD5JmPqbkgyqFEIKpLW3weqlIFPTQblwaW724kKB80E+0lvW+0mG8oiyeqBuFufhtaUEwmg93aCzPW7wJuP7rzBm2i0FPl4Mg0f1d7iJtrHaIcnncw7vzeo+LOq1zvlcCVO3lt/JTRhTbxMEDzzQvvuRnFVExQbNCd9BKErpZAIia/l+5/PYClqapQYuBsx+Y4jUC/ct6PicSz/YtdXgTQc3jqmsLJ46R7Y3qkeaYJvsFDbTtjG1GlQdisNPZEhtkWgvyIcxl62/SSqLJr+ZxWh2ldToVpnX4g9JKcHbHyvsD/JJRsSD8fHlGBlnpXpL4onkQNbtZQ9HUBpaz6rQvp7klM5iI1trpdnv8nf3H0G54mz5c4FY81VIXcy+2nEgadhWNdKlI0rjruvXyJKUvCPmh3ZyPZPL+7rkLI+ywj+0Gz7QGKcDsOy2L1UsHSpCJGRe0ZJO8vuq1relbMF2pz5eQHa+9S3NNG/v5WNWVw4BcCaX8tfuac467mZ+sr2CKAKn+ojhBAkSVWHWg95bURX1NUpjw6d2dPSJbLjen7FDZ1NiZsvW+eNIPnuaOAIoNKW9H2XXmXagJASOnwd+BwNWWB7APlQz/YfQycDG4TjAWCg22aoTagmXoPtiqNqo0gq7NljSbq5EY2hn1RUV7umMR/cqY4XmdBsVqSwnjBtuHGQArn2QRbAYJcHkrxpAzMfJSWNx176ARBFhQDITpI8Y2ROyF+tZaOcNOYuXfAjktV7Elgt5dNypxdo4a/qFt0IkjxRF8WGGTKU3eRnC0EvaVc3xifLIcjrihqiVnB3jb58pT7lSeTH8pnuTS2+jOVphvok+8ddKd+Q5Po2yw8e0PswzPK7dYdMjNNKhbg/W41Bxf5ZKWxGZjxMbwNndzPext/+QWZqTJDw+Cf3rCMpaAU3nRSW7b5TD9fYrmajSbkzHBy9ggt1y+IofLEWlsMkiisxqnggsbVyDlxMb2q5iOFYMWtG/VPE6e5yDUVlwsd1l+Mv+vASCJW0J2i5BJzpYVTnazcQabbVeK/t3t8oA7/aO7omZxbPYDcfBAfc8+ibx3iBW4tIrwe0EvsqkdhTt4C5jpxynfBnvUL4+O5IYFSyz29EKNPZ+2RQti6tMCZYi4/IDBg93WQHGMrUd0pyANwP0vYVH8QGtD3X94nwOjoJO3GXqD3qcGsCrmBmmJtHTYBZ39KZpxxujsYDeccUuRbV9Ivq9vydkjO4fkIKCtlSFWRtkgU6cl4IxoO7alRDvJzadWrBdW5k3ubZG3qV05+iV9KSdh520YrRzxGb0yd8Ii0pgJU38oEywWyLUL9+/Ov5UZALtflS90cLANodWfzNtAxcZP6C+XR3aRyI8dZp5ZcOwwbj9aieSImLDwnC0l1cdtxSu8Iwm29/yeh4v4JXl6t1bBsTkyCoirQnkyBC3lHLCbwE3vfB34BTcChR+qWhiM92rnr6be8M89AtnEfNsdpZAWD96craURM8wfmMh9tM66gjjHyYuJbi1186x4LAtST4VZMHnw6NoG3XK5sMoVZq8jFWfUqrpS6ZMRu1UV0qL1jNbcZifwOlDgmoFXhFMZ6CGax0Up+cFPI2BJ7wGQwsTszifSXah/XgFhrOWgu9Hs5YJYbTxs26yEhG2K9j1J/4dtNdowmPI05iMynybTzrQkB8T/lVE5w9o1wumNhftyXie10+Nc8U1Ok3JugGG1CoM35eLAPTA8vHZzj6819apBCtw2vGeHio9k27164gHhsZUdAhyfC8hxmR/V857ipCchBNGg6aQOh2hVs9+4mNaap1UXGlAOJZMp/O7BNknYi6LVuGOtiS01W86pgPtCrbb8/24RHcybSLXhS4spTDf/LfBHaEWiklQHyq7YU6hsTOcmTkMNLCFuNVbPXPFze30KWtPhyZyQNYPqEwo8dZ8InN3RNBaYCMgYel7kNcmCO/0HlL1Kqjc4i2mguFiw23Tz0YRmUpwDjEe9gfOjlm9EZQs0GQQyB2gNfaoH1oyiM5yvQ9MrY9OADGpos0334ZqW9mykUpjkhrCWKLmVLAzWejbqMw1ZDq7FRa+l6Uyt+2XFPar7dta/TsWYKv6kTqoz1JHMwf5EoGEgCszcwnqkcqd5T9NHoVNwwpkEN/7axF0OqT25NSpXkAcacSHo70998jL3zbdKFVamUmpF/hN6ioniJyKAelESPym7KpjZKBEsHGTzU30t1GgsGlYUwtR07O5FnRVViDiMyQHYAq1PXa1EbCS0b7bbdMYGcExJzHvlT8VmeKnJ1RoOvKWyil2habXd+TbxEWtfAOuWtJzLYwXWKPppsq/EwKxUGNla01hVrfAbm3QNP45gDGFZ0+piA8PLNq6PNFoSlINc/6/Z3WaENpGhxL0mKS2IS/d76AzHjUV+Hw6ylFUdYEjAPp2lR5woslQnxpO5n3oKpFl3jevzJmcNJKuZZEYzGU1leyddx30hzmVMfTliybA5I1GVTIigbdKwuRWL8uYQA1mHUeO5pEPGMv1X4GcoT5BDrdcFAaU6vjhXbjVhCNcPBbjxKHisfOBUr6nx1M/n3AHndhilimrPP5adOGpG2CFqKQtINb0UmpqPQJRB488tuVE3fTPgqNi+PEES1tIumBVdt5m95p+BNHPyVwLloMeGkCVqsTid2251NSpFd/n0BVAOR0zZP1hGRRzgU2tNPK4VAVuvuPQdPw7ZUbVSe/VvphOLXAG72M27W9IbLrsnnmaNeh5ur/9fl5yI52py53z0Zrp6WNociqyeC03xzPAwmYF9BFMG+j9Kto2OfbxOCUdWxhlCGDuUqODcAsvfKNQddq4Fha0HSLjvGOtfEuWmJNTzmfIeO3vg==,iv:pTQbb6nLHJ8BXTIYdiSe4vc5+1hpNuHhQhDkIAsZ9HI=,tag:jyO99VXSsCQlQD+Hh+gtvg==,type:str] | ||||||
|  | valinor_ssh_pub: ENC[AES256_GCM,data:c9s+tEjn+aZAjsxU7+dWmKLVc3dFdtna3ilDJrEb4k9TToyYY5VYEW6exxpbBl6MMAe98/KXgLPI5kTmq3gCqQe2dBnOB3C4f212DOmVyoYGj4AiqzU+Oo0pfg6DRw5BCjYGY7B+zJopqQgDvlIRTdJzAhQe3ZRuJFXKupVpJ+pEx56bo/memAf+BBZgIXChFrYadqze90rMmlw0D5V3L3lmTnqjoniXTXj5QoHh2f873qFAQ72+fSNlJCkasNavSiXKWVPcS3xMmgfiaffkqdO6pte1m/IgevKkKfciIOBbKskgsTZdy9iPGdELLH1wMzO45+vX3h2ATy/v5Hqq/yWlrDbvFFUKoaCb6n7/5O3MhaLwa78Uk09Dvbno2Wb8C5BBZlXBZ/BSooosDFUG/2IG8nKM+FrHJvtwgugCGa3ZQYKQr6iJ9g6tN83YRTEgKTCsZPnSNg+vXSBAib5ABHl8z7oHVB2hJFBnEn7Im99b/GRsCRD+/y9Y+4wF8nzznJgSrqInM59//EJHmwOWrHzSIpyV+cY67cCUXlkYB/ufx510XtEjijr2SOJXKmdAmme0EICkP/LY80Yrsoz2ee/A6w6ZP3HDHuxUVNeGNJvdoFhIyt9pEiRBwl7K2XKYCh/lRiE6E19EM6SmwplEM0+uAWTY+NUKZba2JSqFZLMlBFfWSLHgOHFLPatkZRUTkoNa4BOhtUlAYfuN/uHHimnL7H4O814OnjU5exqHca63VkDDhA==,iv:YT0ZN/Rt6CbMSFU1wZDbrenlwXCh7e4C06YbVL5J/VU=,tag:BqVtzOC1ViEkHHTXbgDJHw==,type:str] | ||||||
|  | valinor_wg_priv: ENC[AES256_GCM,data:1izZF+6G2Uc2MRBH56A07lexZEkyOiiFI4zltyoZco0+Y9EPhH1nJ4sWzs0=,iv:OIBIQvMsrq93/o0r8V6eSzfU63xtCzgQFf8NKXsjRk0=,tag:wdcQOfdaoxe7Vw0QWmngwA==,type:str] | ||||||
|  | valinor_wg_pub: ENC[AES256_GCM,data:noAhVF91HUwpU3lHl4knlmGkV0Zjbuc4TQhFhF7HjCbv1hdSycO17TDfgcw=,iv:82v169pOoCOwnOaqPTOMvtvOUJJEcXjPI9BzogC+UaI=,tag:NHIcOYD5mSnZ6kwZBAnXGg==,type:str] | ||||||
|  | iriy_ssh_priv: ENC[AES256_GCM,data:tLViFTWE62aJ7sCHVs2OxqewFI4QQVEoMdWV6l26FBFlbP9sQC0IWhtwkYVeQ7yFRlEjiB2RWcxG9KkLZm55JqAG6dX6AocG341u68PPWgcWYxYxI2056e/NYN2dlNE9SX0ImkT41/zQIG4b/7xRsFlBKJ0LUpbzWg6Bmo1Giu66NZhLLIkVRPqH7KzvUlyBiCAiIuMlVIBomxKwmeNn3SnaVDrfCbqhXwiJvGHZE09mtZnZMVd9vIo89+4PReykVUjEI04QhnSzv+ET62yw1AOk4k7yBWykhMi+KirlNL8qoHY/HSOaqndQpHc/GzCjClcWHeBjsouTnqx7YjZ77WpiVKuFIVNK18fZIwxIqW0cwftJpfMTlOfGIhfAjIebxOc1G7tAON7BWSZQNBtM9aQ5qmF5wwYKj1m2NxtqzD6Vwhd2XubgzFPCssYs/WZcF4NeJwYE9077NrMeLjE+kP8d7IJKwDuXTA0zldFaRURzKCy+NFnHIle/Bw5V08w/FeJsWAT7SeJM2V9yGYaysBTly2eh0YtW0vHdoijhZQ95jAD9ixfHiZ2Uz60F5L2s8DJ58i46OShT6ItJ98NeSxFT/cOIZQ7jd7mxmgZdQc4uXBk2ly9zlF86gti9MLdvbugkfLKnrCoHLec/g5wWyowRfriDgqzFgzcj0tGshhLr/Y7GsIj6ZzMCbHPhEz9oEqUR7tVmBXfyEisCBdujYaUByl9EgTnLx505LpuaqYJuiPq7YULCndye3EHdQWSiVQA6ncPpcqnKgAyqsBlRXa/2dsr4XJmdIOHTRQ11m+8jJ9R6gmiGIdjj7hq/kr9tCZWPSF/Idz2ml04nw9zjlroeq2CmiPAVskKmJohpWvrD+J5tz6pQSITbiQWnq+W2/7BT5LvkIewwegyckP2hvCpnsHvT1llD6gzf5kNkoNvHnrFOjPa83WLPUO20rykyuD1+5s04vw4j2+tcKEll54kB757yWUdn7af+vs7uvthc2Wen1vXXPHoZnDVDddO2vDsNMRCl1w6NE9Ey+bsLhgZ5hwvwi+i/cGg6XHoFtRMS8PKk7kpRqS5oTMxbhI6uVy2BLz2Mtot6VxA29NV9fngxoD6VU8bcen8P6Tt+QJs9FqN5Pik3mLuaZEp8xiarSe8vDoLHv+UZVLFgDc+6LegYUttM0vHf3oKBHSX8qduJOZrZ2UlgcU4b2AKfGkpRVg4tKb73kCZi8D9R9aMA3grMK2mEPGKjqoT0DbOa+CCpC3DGUg2LkZl4jvFMfX82lU86cQscnHNh0ajFgmxmmmrDiLVpZLRroslEntuvXmj3lQgZmsyrGdQ3Wy7W2TvcbqcEt095hU9jJu1dlj73ofP+ltxxF706//OU1ToTqKOoPXhwQNmGhHLdBOflyXy/SMF5Ymvelc6FI6ct9h7y8P955ZyX/IFurX0/XUvuxtDqb8xq5Jm378W8Wuh9Zq0FRwfcagEUMo8auqzVOSHx9yB60qsLoi3WEH54/CClwOelvDhD1nCQ9Dxr4oYmfIiRUcvYDlCvgwc8ZKWb+8eTTA7+aVEZ9HhIhV2yovykYcWE8hPFUITA6lUhdEtUotq4T9UofJ8S79U6DFCUX1BdMYGKSMxOPuQ0liviVh2pnXIN+4DH0OOz828dGmb21ClkwT+kvA/80XeSxrU59XT1IGRoNjPCRxZzuLnsfCA5rrIarz8y3gbL+CFY4rsoPTWfqWR8HUg7pUapdG/FiW4HCfK+BwtLowaxyF0Kj+eTf+1EPx7ReYiHo6Yzes3XVPJid0e/DRkKqpEHSv/xQssQlq3Zqxfjg6DsTQ/dpA05VSZowe4VxouVpV2kib0HZQt77AtR1y9bznED7BDM4X2f95PiRMeYKvSqCHkhakrMCmPlboFJn5vpsvlf/k3v3zpADfwvx5DZWhRYg9WfmG2XSEXrdIHKcDqQME4Ka/yHNBvYuI3SYvrUusZcxjqPXctSRCGGEd9zfGbkA01BQ2anA/xLvWQMzgnKDHRLpQ2cQcEUi3nrrODHaYu/myo5XJDMncPVUidfC/XrnqlalnI3MD1o58fBV7UA4AO2aLEZf/59Qp6NtdUQBppdNiFqXBP3841hAg6W991Lau24S8Z5e7zAjfu/16JYA/M1NeqSkLQOFVibs6SJRIkPm4JPw+sBAwPLmZyjvlbYdk6686vRa4Ibnl3WkaozIqpioyLyujwNfv2OAK6dN26PT+xM7L/3s5xhP0K5TFDKyzqvjjI0uFP07h+xiXZuEl7nP3EfzWT8/il4aSr284vZ9Aqd0FsgfuNPuo+A12aUBmSUjuy/ComwB+/vxbkNlWtMPvkCfdS1eXImigxm5IVQ30Ba3gNTmPQhUUw0AkQPd68g5PZDN0iIx4APhXOowBUEAy/YNTGC2MHUDGo3lWNXEBbE457x/Kq/CleDlHHG2lBAPBHBC+HxdsnyvaF15cmg69IIM5YU08cILY1sxQVDXhIWBlKg9pjZU9BJVR6cdRAXccL6XXRD3P5rJUkyBS6SmTmkXnQetrrQVt07lzfApSErslPqaIGEAuPTT7brQFylvi0eWo2mXDF9oBr1BGTUEGaswz8q8DUuBXA0U3apJoFoDQbJk0uRwv0CrdK9kjGHzf4wntf3qNc6fH0foEvpMaLxsBUyvL2+2WZYNz2+rDjgOtNO5yAd4ILL4JqZKcNr1zymEtFU4WGTOHUeT7no345NZjoTn88Y+12ApWd1NtPkLfpAkuogAJOUK6LCgLPRDQIkzagGCWjDmfbc18LM2MV/4Us1TdfBzENmTHCsLDhIy7Y6fIwteJ5oUuWhTeB+MdFSO/WBhS/v1rjHfE75GXvQBZrlkknKaDwS1sJaet/0OBSWK61Sk2821V9E6qSS6U0qSNQbwlVjG4JMCXsNITICTR+uTa2cUk+PiDe6uZohu3M2B8FiiH9/XNKpyywxhCWjz9K+rt59tiHO7MbPCG7Lzi86BtEIZ2B6fFfhCdooZTE4oelhitnH3R4LXUc8kiJ6KPFINbf6yEGnskYP+aEy/3XfR1Miw3LG6+FVTvldDy5EmInPv7Dw8K074imghLYkvcuWtj6qMo+EI4rGoH39OPhqyd3tDgKVDEWOHKE3Ictt2Ci4cxedS/NieqxZf5tUHiO3YZoYyylJcJ5mU0HoVFhtfmg/GsK5mywmt6B20x8XyMBMLolcWYNMzdWgPQ1ieKb87tCgNRIOnPuwZcUGq+L+cLpRR4yhfSYPPao4dG0dxsEQJiSHnRDea71bR7URhJeo6aanwnulYwsuhji+3+XFoY+2e8wrEoJG38se1tafnd1dQHpvfiEYKTSCYuHG3uZWHvlHW06YrAwnrQrMOs+dquuQhMLK4wlsjg0MzsEZRkZ/JopxVRkjS0N1UVDQuzIZMqf6gKoiUVaC5BsjhTwcYQrMx/DFhAnhL2iGwJfuEQrrIjNVz7FLPQ==,iv:cM6fDDPdHQ0Xamv41gKvCQ3Oh70hCRaijXLA8n2rEEA=,tag:7CsbqkiNGv7W5lCrPK3CmQ==,type:str] | ||||||
|  | iriy_ssh_pub: ENC[AES256_GCM,data:zjET00BIFhSI3/3bHO9d99VZLNqpGwWYuqhFvZAk6hYejOFRReCn3WKxXwEJh/IS8PYw1ARnj8DOpfYoRwhdofg+ap2/XMLE858B2cmgGQE5XZNftUryjmBV/WpWVECmAa/Dd6w71MACqZ9TDnt8Kkg5c0jtiGT7zg62/gMcjm/k531y1NDi4e8Jf7MFN9A/5nMpVDCpspZe42N2Lv+w0M2lhDrP4bjYTE9p7Klo27C7lt3vGahlNAjQBvx3o+309+4bSnE2hwTUkgwjN8YPx9qpV8v5XAfPEA3Syz4Qmhi6YpDnEsNPIVrmuGdNhrnprDQHJ8G04bHv51DXURf7Wtf8HSQUNVWXJoGb1jw5xzyiYEBB1Cu6VrRRHytQGtMMbQsIldoW7ISSo1jzRIPWJRMCYrY/4fneoALAXPN6u6VsYM+wtO6/1+A02KIz4uhHvt9c+iv2BNiJrwgHSdH2aY3JaOLEAI+wVQaf47WBfPIjfTzYsDx+kDNiflmBhENNWSqRnrXXLiAG0oVbbz0iuzA+C6w/gNc/t4L4foiMbeF3m9jVfFm3LrCmR1FJrGeA7ZSUAEQ6v55an+IbDMv7P9lUxgd7rsCj2M0elG2iDizV9vziFPOSJkplqzygxXZdo+In0pmRHUfWj06epacZjNdDxJHrakfhmWpGBvrwYRRp4/5p7/k2CToqj6UqedYen0S8M09JseHjNndr9/Oe2yJZYlzRhfq0ZDB1pzdVIiePcQ==,iv:nWWm3vecA7c5pv8bYrjjZk3VLHjKJI7c7ZPkK+pUqU4=,tag:Gfa5Izk6I3s/spA3GkXufQ==,type:str] | ||||||
|  | iriy_wg_priv: ENC[AES256_GCM,data:inng2niJrTXF3ld2T5Xs9t/64oDC8haJhpK1Iajpc60hMHWbenpqGRis7NM=,iv:E/cW6iwjbC3iKulvgBD5vXsjxh9A6nGO7Acr2DXAQps=,tag:CfHqE8u87xGDkzArZg3BnA==,type:str] | ||||||
|  | iriy_wg_pub: ENC[AES256_GCM,data:/4yPr9+NKyU/84L1heVhVa5Mzu6/9bTRciL4V8v31J99Fh5ratZDufNt8AY=,iv:1PzTUsgt1YQPQAywSQqBUVm08++EA9rTdQF/puRJMs8=,tag:ew+bmkZmlj74/mzdBPiSDA==,type:str] | ||||||
|  | avalon_ssh_priv: ENC[AES256_GCM,data:wTAQKXU=,iv:7x+5AnmbNde6lsr+y5MlkR7KoaOUSCGTCVwLECYxPHI=,tag:DkrosVUFtURFBuqQI0LxaQ==,type:bool] | ||||||
|  | avalon_ssh_pub: ENC[AES256_GCM,data:22S09ak=,iv:Q5SU6BQw9j4HMyohQorIeNwGL0xLx8erm10gvPpHmCc=,tag:o02ZcLBSz35sqY9INyOMRw==,type:bool] | ||||||
|  | avalon_wg_priv: ENC[AES256_GCM,data:Urf0hCzMoyo3IiV+0zhiHGhh3vfinrMAFbX9JwFgkXiW+3+AXN2b1b785JE=,iv:TV0zwPssXOEVSxiVo0jZwFCmZJiTSXXXctFXFX0H97s=,tag:YDNaw6dRBcbyMSjXTRIJmw==,type:str] | ||||||
|  | avalon_wg_pub: ENC[AES256_GCM,data:Lc8LIn3UX6mpN8WWum18OVI5LWjBLoW2Qles4Bv/cKP6yOfKTLXPkAYzmFU=,iv:P3UJr5aHkW07HVH0oy500HdsumZpcwwuRdRKx/Efgjo=,tag:U9G9Ja+7mS1x6no+MVptiQ==,type:str] | ||||||
|  | asgard_ssh_priv: ENC[AES256_GCM,data:PflBgd0=,iv:OvKG6iGAtvcx7Nw/CT3mJos69ECG0k5CasZMzg/xWo8=,tag:X9iQY/nDBb5Dz9a+rnN9Rg==,type:bool] | ||||||
|  | asgard_ssh_pub: ENC[AES256_GCM,data:+M50sSY=,iv:fWVBRPlz/ACENHhOJ5zabu0eqOAAH/AH9+HBqUZZQU8=,tag:UPdE0aLWnhj/zlXpKbdoGw==,type:bool] | ||||||
|  | asgard_wg_priv: ENC[AES256_GCM,data:YxlKrwQ=,iv:1xnNKjzkJ0KPglLQy35i3FZ6kaJIgf7u0vT4aciDQI8=,tag:Jg5a/215Ifxj/XXMkSHwMg==,type:bool] | ||||||
|  | asgard_wg_pub: ENC[AES256_GCM,data:7ojknU8=,iv:Rk2otESlMbnVItBS0Xo2JeoSjOiDusUnsMVMw9/4oU4=,tag:FD0S6AfDfvVgvgy0coF/Uw==,type:bool] | ||||||
|  | efir_ssh_priv: ENC[AES256_GCM,data:lfC0LrU=,iv:QCNZWYj1bokbZwVbPanuWzljwTv8k1yRvJJYzXiffRw=,tag:1r0myqf+wk0paT3ODStB6A==,type:bool] | ||||||
|  | efir_ssh_pub: ENC[AES256_GCM,data:s2CtFco=,iv:5ckMLWh/OrANzuN7dChi87jJqp8ulbTuhefteVijVeU=,tag:0Ojvf/u6Vs0tKiPzLnaHuQ==,type:bool] | ||||||
|  | efir_wg_priv: ENC[AES256_GCM,data:jxmtVME=,iv:4SJC/lexF/oxgZp4QDAA+MhLU50K6G7g4IgQmbXl81s=,tag:wC7h+uCgBfGFynIZlyaOng==,type:bool] | ||||||
|  | efir_wg_pub: ENC[AES256_GCM,data:lYCUem4=,iv:FmIo/U0Zo9O2pbiehLLbTe9bWKzRRjEJHP53zXPvhAU=,tag:nQKx887kvTKaoKIXTR+/EA==,type:bool] | ||||||
|  | vpn_ssh_priv: ENC[AES256_GCM,data:RQhNAZg=,iv:PHdobW9HIEITGaIq86YbOFhyf7OTeTzhgjWVKo0YgNs=,tag:EhSAJz8N2OAuHC7sbvBj+w==,type:bool] | ||||||
|  | vpn_ssh_pub: ENC[AES256_GCM,data:K7+ZMxQ=,iv:xp1ghLqP5sk91feAIxC1JpHOkCzBfYBO9rHW9ghfqAM=,tag:eX8s7hGITevnerFo1VpfRg==,type:bool] | ||||||
|  | vpn_wg_priv: ENC[AES256_GCM,data:YS2NMqSZdH6gTQq89sWNLna6sLFIzR+uDFurFP1s+3Pe1+QP/SAiX81PZfc=,iv:Ovm3ir8ia5793yYPsKrscpqc4A6B6r270hpx9pWmR1o=,tag:asWYQrENr5ip8kHdb2mkYw==,type:str] | ||||||
|  | vpn_wg_pub: ENC[AES256_GCM,data:orLTPlTD5Y6bimDcc+BFJytQFER2POfgcOFEk6zcKkvuq/GyU8bKgKLxuyM=,iv:TVHw+yVhlDJFz/8HYqI3qT85hGzgx+3Bj7mT0mr3dFE=,tag:EKDs8gE8RJMGQVfcYLj9Jw==,type:str] | ||||||
|  | pgp_key: ENC[AES256_GCM,data:nEMur/Uq,iv:2KXW/AAAWDX09Ich2S6LQ7618ZBAY61KZcGkIabqCLs=,tag:Q7o8fz3dFFuqeMpzu9U/Fg==,type:str] | ||||||
|  | wifi: ENC[AES256_GCM,data:LBDjdh4/Kny4cz7WZ5EGeFH7k0PGdERBq0/2wAWHdZtAhC2avlVNRfV8n/DsRodaUVm/6/tCXmXGOfqkzRgC9drQmDxeJWe5IhjJpOOOAXvLA/BCgzwu/Poi4b2KiXdZ1BgznMBV9+EBNFR55+KAb+GjjEIR96G15wGTfk3D0hPs9sE238OcfKFLv5L7ptUN7qnmAH6M4AIEKk0gv+J9dyu3UAw7qfdr6uiuPsYOoQ95A2q1OpERh7VnfsI6zjJ8vKSKbG/yb0VOhcCOlM1oijqSw+fUIMBlOQ9wWyWN2brqkhACqqIiBWxrqfPHQT2mobMTgE4vw1BruzTnhBrqtCeGG8yHEZnL/8NU4z3NQDG3FfYScVNDAvMrW+06HHKRi43vJ1Zz7HMb6ik8ZOKFI4CvsYingNSD1cAXt3FMet5PvVFfWErsrpO3dST7A0ZSb56N+fXrfBcB8jdxsOZBopfksFpx81J/VLLdAoO0aXtYhZlMM11nuCjkgTFPvwkxy2e/+gZVqPbWEaDeJ5j2bEB7lJ1DpMX88FN9g0zhA6cufVbSanaLCvCDCdxTslZVauO0mlmOBh0GMPD7Oi/l8hdCX74PqjSx0kmH4RWRL6Jei2PPnAEW4scWrhUOKxMaagFsLFyKvy3HYAnTqevlEi8FXmS2hglQzsN3H7343kaV+OSTy50uOG9wr7T3rbztcKDOf9dp1CM4JVk933wOmMdg7nXBrU16ELVYlWuBHgswHiBtZQXVvQBPhxp7giFjduhXlg92wvmV2ZEcVOSiDJp4nJsiIaGmwbq6PsO/1Xy5sIJ0/jh1aJwAnp507xEXl0tvcBXSdaXpHdUnKnBPw9q8Gt9Td+UoLgEb13Dy1op9Fs9iA9LMX1EMQe6d,iv:rxAs2PD9EWNONqU0Hh9DJfECJ93nnRMrbUCwormAwxw=,tag:+n0iICniidi4H0Zv9pCDfA==,type:str] | ||||||
|  | sops: | ||||||
|  |     kms: [] | ||||||
|  |     gcp_kms: [] | ||||||
|  |     azure_kv: [] | ||||||
|  |     hc_vault: [] | ||||||
|  |     age: | ||||||
|  |         - recipient: age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg | ||||||
|  |           enc: | | ||||||
|  |             -----BEGIN AGE ENCRYPTED FILE----- | ||||||
|  |             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBraWFDRFUxQ2l5OWV1OXNK | ||||||
|  |             UExEbWZkM0kzVk1rZG4yY3pBLzdMVWVJS0UwCnhlWFJ5T2lZUXJyNkg1ejQxaU1t | ||||||
|  |             L3F2RUhldTY3N2xXL0hwczNKRzNjcncKLS0tIEkycHoxcDBGNyt2V3RDY29wNGVp | ||||||
|  |             TGg5Rk05VkRsaXM1Q0NxMmtMajRORDAKqjFldiAYJKjmnkeDkwanjYvhL6645DZ5 | ||||||
|  |             dVXExjqO/DG733ge8HFyKzpfpkzRymV1giUwxBdII1dd0mJ2ncINeA== | ||||||
|  |             -----END AGE ENCRYPTED FILE----- | ||||||
|  |         - recipient: age1ms8f0ysv6vakxepvt69fejczs6tddexepesdv4rkgtheehj3nu4sc6290s | ||||||
|  |           enc: | | ||||||
|  |             -----BEGIN AGE ENCRYPTED FILE----- | ||||||
|  |             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3UkRjblIvYStZUzQyRHA1 | ||||||
|  |             ZGVXeHhrN0kyVkxZdms5U3gwVFlPMW12MVJjCjRkVURpZXBzb0tYenB4dGxKamh6 | ||||||
|  |             VXVBMmo1Ujkvd2VTRExyWE5MbVJaclUKLS0tIDVhRkYzZmEzUG00Q2IwOWZUMVVt | ||||||
|  |             ODVIbytpcjN1cVMyaG1qVVdkRmtaMzQKNsvD9DpK/raDBob+IcuNk72tQDts36kJ | ||||||
|  |             QhtoLy8MvUymi49PdEWrgyf68w5XwRO/U4iINhR0qzm0glg/XcyHjA== | ||||||
|  |             -----END AGE ENCRYPTED FILE----- | ||||||
|  |         - recipient: age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg | ||||||
|  |           enc: | | ||||||
|  |             -----BEGIN AGE ENCRYPTED FILE----- | ||||||
|  |             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJc3hKWkk3ckNOY2UyTVhG | ||||||
|  |             MmtLaEd0K04yaGxiOUoxMXkzOEFnYis4VkhnCktDRFM2bS8vb05OWDdwa0RwRlNO | ||||||
|  |             cmlZemtxVGZ6S0tNTDV1cmE1N0pVWnMKLS0tIE9EZllycHJpcEY2R1pwOFhOZEU3 | ||||||
|  |             L01IcytDd3BPb0VOTW9DQ2lUdUVJS0kKiD+C+3mK1b/eIwCEFanFgYGLNk3JNPQ7 | ||||||
|  |             i1UqzbHVxSd0q/YVwdKAcj0jA6EezGm275tgq7IVsy2sHkvRMaEDtQ== | ||||||
|  |             -----END AGE ENCRYPTED FILE----- | ||||||
|  |         - recipient: age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg | ||||||
|  |           enc: | | ||||||
|  |             -----BEGIN AGE ENCRYPTED FILE----- | ||||||
|  |             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAweVU3TkxFZzRnd2I2clN2 | ||||||
|  |             ZTlTWmhwQkhVc1hnOXFvZVVDSWpHMVh1TGtrCkc3M1pUTnZCMHpvYXB5ZVhreGxa | ||||||
|  |             ZVY2cG5Ja2ltL3k2Q1VEalc5TTNFMXcKLS0tIGd5UWl0RGVXT211Zm51dlB6WFZ1 | ||||||
|  |             STRtTVpVTCtVZ1FUNENqWFFVNTNuaVUKN6HRiZjTdENeif8dJ29urBxPXDaosjjY | ||||||
|  |             InN4Ko6YUaGfvB1DTrKIzrxOpsHS+XjisoGfT71tJwwEOoREklEO/A== | ||||||
|  |             -----END AGE ENCRYPTED FILE----- | ||||||
|  |     lastmodified: "2023-08-05T09:52:06Z" | ||||||
|  |     mac: ENC[AES256_GCM,data:lIY0q/K772KOiRZ24QgPtWqN67FqOdKScfJ/G8tY/VOe+KquGSIIIIyXZoIjvjEnVZpKleQfqGpcbssZR491r09xDazhadCOtEfY3YGtNUYSDcWfgHjYOYm22Pa/8YK90aAwc/2BAY6X0mXR/zPPTpdALvzIGYaS5EYVLdcdcxI=,iv:kMAgc7e8ATA2ZGRXKt1XdVWlc17OIccnCndBzKVw4T4=,tag:pR+xVV5bnE2nP/7fGWSm3Q==,type:str] | ||||||
|  |     pgp: | ||||||
|  |         - created_at: "2023-04-20T10:20:17Z" | ||||||
|  |           enc: |- | ||||||
|  |             -----BEGIN PGP MESSAGE----- | ||||||
|  |  | ||||||
|  |             wcFMA6R3Y9nD7qMBAQ/8CVWQaYKfOzvPIllZyyWpUjHRLLXaR8MNJ8U5WI/tdwdN | ||||||
|  |             9UScDYJFuYRW7Q9s4Mt961kBGpaHqe9MUZBxUDlYX59+EN3FbO/eMQ5OqI05ESmL | ||||||
|  |             TvZB4+S9C5o73nuypSDNvYz+Lgq6DO25ZPhXdtPhx2DE4G31/wft/LpxhjalIjI8 | ||||||
|  |             MU0Dv22R4qC+glJbe4GIF2IJ8XoxnnzjiGeSqiyv0QIBM0SzOtA5sKwNohWBnW7g | ||||||
|  |             7vxOTm5+kyzG0dDjt3tFApgPDaA1wjofzhRuuveF52VBsuIA2opFdpqkyICvK6rn | ||||||
|  |             NB5kUaPlY6A0m+n0oHSfY5wm/AnHNE4Oob/ifumAaB0EAJVUTRauI5M8SeJF0ya1 | ||||||
|  |             U0IQ9N2lb7Y6q4pqHywIa6fnylsqCfxInAYKMuslRq8f9t/qakb4/MYcnPrwpzjw | ||||||
|  |             73/naiNoJmG6NVTkM52qTtOqZAmsaQd5cigTuPW2Z2CJq1yLZEVGSSd1DUGUjBDK | ||||||
|  |             nQGucpVVVpD+ifrIPz+Iqwy+5NoZZm/Oa9pKJGFzqXinnDNZaqtgpmTw9QxcSeaP | ||||||
|  |             VvGZG9CDd89MtAm1VQyuqi1bQ2faq3G0xNrLl7xUsfmjx4ofW+JXR87OzvGfLPhu | ||||||
|  |             Sjl3kS9j5/MEBRBg3n9gNkgSu5Sy3ilhckY3yjTgAT9Gw2giDhCiUXi1/7KrGprS | ||||||
|  |             UQHPCSsjyWsyuYVa3lAP/WPdVclc4WOdfYcetUCXBVP7LQr0bq+IG+2J0nnY3mDt | ||||||
|  |             Va5k4sP1qu6Ecrs2JioQ1V2H+VmcrRykBWnMXl1tDSWKMA== | ||||||
|  |             =pS8X | ||||||
|  |             -----END PGP MESSAGE----- | ||||||
|  |           fp: 4E241635F8EDD2919D2FB44CA362EA0491E2EEA0 | ||||||
|  |     unencrypted_suffix: _unencrypted | ||||||
|  |     version: 3.7.3 | ||||||
							
								
								
									
										26
									
								
								modules/nixos/system/security/sops/default.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										26
									
								
								modules/nixos/system/security/sops/default.nix
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,26 @@ | |||||||
|  | { config, pkgs, ... }: | ||||||
|  | let keyFilePath = "/var/lib/sops-nix/age-key.txt"; | ||||||
|  | in { | ||||||
|  |   sops.defaultSopsFile = ./common.yaml; | ||||||
|  |   sops.age.keyFile = keyFilePath; | ||||||
|  |   sops.age.generateKey = true; | ||||||
|  |  | ||||||
|  |   sops.secrets.wifi = { }; | ||||||
|  |  | ||||||
|  |   sops.secrets."${config.hostcfg.hostname}_ssh_priv" = { | ||||||
|  |     mode = "0400"; | ||||||
|  |     owner = config.users.users.sora.name; | ||||||
|  |     group = config.users.users.sora.group; | ||||||
|  |   }; | ||||||
|  |   sops.secrets."${config.hostcfg.hostname}_ssh_pub" = { | ||||||
|  |     mode = "0400"; | ||||||
|  |     owner = config.users.users.sora.name; | ||||||
|  |     group = config.users.users.sora.group; | ||||||
|  |   }; | ||||||
|  |   sops.secrets."${config.hostcfg.hostname}_wg_priv" = { }; | ||||||
|  |   sops.secrets."${config.hostcfg.hostname}_wg_pub" = { }; | ||||||
|  |  | ||||||
|  |   environment.systemPackages = with pkgs; [ sops ]; | ||||||
|  |   environment.sessionVariables.OPS_AGE_KEY_FILE = keyFilePath; | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -2,7 +2,7 @@ | |||||||
|   programs.ssh = { |   programs.ssh = { | ||||||
|     extraConfig = '' |     extraConfig = '' | ||||||
|       IdentityFile ${ |       IdentityFile ${ | ||||||
|         config.sops.secrets."${config.syscfg.hostname}_ssh_priv".path |         config.sops.secrets."${config.hostcfg.hostname}_ssh_priv".path | ||||||
|       } |       } | ||||||
|     ''; |     ''; | ||||||
|   }; |   }; | ||||||
|   | |||||||
| @@ -1,68 +1,60 @@ | |||||||
| { config, lib, pkgs, ... }: { | { pkgs, ... }: { | ||||||
|   config = lib.mkMerge [ |  | ||||||
|     (lib.mkIf (config.syscfg.make.gui) { |  | ||||||
|       xdg.portal = { |  | ||||||
|         enable = true; |  | ||||||
|         # wlr.enable = true; |  | ||||||
|         extraPortals = with pkgs; [ |  | ||||||
|           xdg-desktop-portal-hyprland |  | ||||||
|           xdg-desktop-portal-gtk |  | ||||||
|         ]; |  | ||||||
|         config.common.default = [ "hyprland" "gtk" ]; |  | ||||||
|       }; |  | ||||||
|  |  | ||||||
|       environment.sessionVariables = rec { |   xdg.portal = { | ||||||
|         GBM_BACKEND = "amd-drm"; |     enable = true; | ||||||
|         __GL_GSYNC_ALLOWED = "0"; |     # wlr.enable = true; | ||||||
|         __GL_VRR_ALLOWED = "1"; |     extraPortals = with pkgs; [ | ||||||
|         __GLX_VENDOR_LIBRARY_NAME = "amd"; |       xdg-desktop-portal-hyprland | ||||||
|         WLR_DRM_NO_ATOMIC = "1"; |       xdg-desktop-portal-gtk | ||||||
|         _JAVA_AWT_WM_NONREPARENTING = "1"; |     ]; | ||||||
|         QT_QPA_PLATFORM = "wayland"; |     config.common.default = [ "hyprland" "gtk" ]; | ||||||
|         QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; |   }; | ||||||
|         # GDK_BACKEND = "wayland"; |  | ||||||
|         WLR_NO_HARDWARE_CURSORS = "1"; |  | ||||||
|         MOZ_ENABLE_WAYLAND = "1"; |  | ||||||
|         # WLR_BACKEND = "vulkan"; |  | ||||||
|         # WLR_RENDERER = "vulkan"; |  | ||||||
|         XCURSOR_SIZE = "24"; |  | ||||||
|         NIXOS_OZONE_WL = "1"; |  | ||||||
|       }; |  | ||||||
|     }) |  | ||||||
|     ({ |  | ||||||
|  |  | ||||||
|       environment.sessionVariables = rec { |   environment.sessionVariables = rec { | ||||||
|         PATH = [ "$HOME/.local/bin/:$PATH" ]; |     GBM_BACKEND = "amd-drm"; | ||||||
|         XDG_CACHE_HOME = "$HOME/.cache"; |     __GL_GSYNC_ALLOWED = "0"; | ||||||
|         XDG_CONFIG_HOME = "$HOME/.config"; |     __GL_VRR_ALLOWED = "1"; | ||||||
|         XDG_DATA_HOME = "$HOME/.local/share"; |     WLR_DRM_NO_ATOMIC = "1"; | ||||||
|         XDG_STATE_HOME = "$HOME/.local/state"; |     __GLX_VENDOR_LIBRARY_NAME = "amd"; | ||||||
|         XDG_BIN_HOME = "$HOME/.local/bin"; |     _JAVA_AWT_WM_NONREPARENTING = "1"; | ||||||
|         XDG_DESKTOP_DIR = "$HOME/desktop"; |     QT_QPA_PLATFORM = "wayland"; | ||||||
|         XDG_DOCUMENTS_DIR = "$HOME/files"; |     QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; | ||||||
|         XDG_DOWNLOAD_DIR = "$HOME/download"; |     GDK_BACKEND = "wayland"; | ||||||
|         XDG_MUSIC_DIR = "$HOME/media/music"; |     WLR_NO_HARDWARE_CURSORS = "1"; | ||||||
|         XDG_PICTURES_DIR = "$HOME/media/photo"; |     MOZ_ENABLE_WAYLAND = "1"; | ||||||
|         XDG_PUBLICSHARE_DIR = "$HOME/pub"; |     WLR_BACKEND = "vulkan"; | ||||||
|         XDG_TEMPLATES_DIR = "$HOME/media/templates"; |     WLR_RENDERER = "vulkan"; | ||||||
|         XDG_VIDEOS_DIR = "$HOME/media/video"; |     XCURSOR_SIZE = "24"; | ||||||
|       }; |     NIXOS_OZONE_WL = "1"; | ||||||
|  |     PATH = [ "$HOME/.local/bin/:$PATH" ]; | ||||||
|  |     XDG_CACHE_HOME = "$HOME/.cache"; | ||||||
|  |     XDG_CONFIG_HOME = "$HOME/.config"; | ||||||
|  |     XDG_DATA_HOME = "$HOME/.local/share"; | ||||||
|  |     XDG_STATE_HOME = "$HOME/.local/state"; | ||||||
|  |     XDG_BIN_HOME = "$HOME/.local/bin"; | ||||||
|  |     XDG_DESKTOP_DIR = "$HOME/desktop"; | ||||||
|  |     XDG_DOCUMENTS_DIR = "$HOME/files"; | ||||||
|  |     XDG_DOWNLOAD_DIR = "$HOME/download"; | ||||||
|  |     XDG_MUSIC_DIR = "$HOME/media/music"; | ||||||
|  |     XDG_PICTURES_DIR = "$HOME/media/photo"; | ||||||
|  |     XDG_PUBLICSHARE_DIR = "$HOME/pub"; | ||||||
|  |     XDG_TEMPLATES_DIR = "$HOME/media/templates"; | ||||||
|  |     XDG_VIDEOS_DIR = "$HOME/media/video"; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|       environment.etc."xdg/user-dirs.defaults".text = '' |   environment.etc."xdg/user-dirs.defaults".text = '' | ||||||
|         XDG_CACHE_HOME="$HOME/.cache" |     XDG_CACHE_HOME="$HOME/.cache" | ||||||
|         XDG_CONFIG_HOME="$HOME/.config" |     XDG_CONFIG_HOME="$HOME/.config" | ||||||
|         XDG_DATA_HOME="$HOME/.local/share" |     XDG_DATA_HOME="$HOME/.local/share" | ||||||
|         XDG_STATE_HOME="$HOME/.local/state" |     XDG_STATE_HOME="$HOME/.local/state" | ||||||
|         XDG_BIN_HOME="$HOME/.local/bin" |     XDG_BIN_HOME="$HOME/.local/bin" | ||||||
|         XDG_DESKTOP_DIR="$HOME/desktop" |     XDG_DESKTOP_DIR="$HOME/desktop" | ||||||
|         XDG_DOCUMENTS_DIR="$HOME/files" |     XDG_DOCUMENTS_DIR="$HOME/files" | ||||||
|         XDG_DOWNLOAD_DIR="$HOME/download" |     XDG_DOWNLOAD_DIR="$HOME/download" | ||||||
|         XDG_MUSIC_DIR="$HOME/media/music" |     XDG_MUSIC_DIR="$HOME/media/music" | ||||||
|         XDG_PICTURES_DIR="$HOME/media/photo" |     XDG_PICTURES_DIR="$HOME/media/photo" | ||||||
|         XDG_PUBLICSHARE_DIR="$HOME/pub" |     XDG_PUBLICSHARE_DIR="$HOME/pub" | ||||||
|         XDG_TEMPLATES_DIR="$HOME/media/templates" |     XDG_TEMPLATES_DIR="$HOME/media/templates" | ||||||
|         XDG_VIDEOS_DIR="$HOME/media/video" |     XDG_VIDEOS_DIR="$HOME/media/video" | ||||||
|       ''; |   ''; | ||||||
|     }) |  | ||||||
|   ]; |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,12 +1,6 @@ | |||||||
| { pkgs, config, lib, ... }: { | { pkgs, ... }: { | ||||||
|  |   programs.adb.enable = true; | ||||||
|  |   programs.wireshark.enable = true; | ||||||
|  |  | ||||||
|   config = lib.mkIf (config.syscfg.make.develop) { |   environment.systemPackages = with pkgs; [ wget dconf ]; | ||||||
|     programs.adb.enable = true; |  | ||||||
|     services.udev.packages = [ |  | ||||||
|       pkgs.android-udev-rules |  | ||||||
|     ]; |  | ||||||
|     programs.wireshark.enable = true; |  | ||||||
|  |  | ||||||
|     environment.systemPackages = with pkgs; [ wget dconf wireshark ]; |  | ||||||
|   }; |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,64 +1 @@ | |||||||
| { pkgs, ... }: { | { ... }: { imports = [ ./debug ./devel ]; } | ||||||
|   imports = [ ./debug ./develop ]; |  | ||||||
|  |  | ||||||
|   # services.telegraf = { |  | ||||||
|   #     enable = true; |  | ||||||
|   #     extraConfig = { |  | ||||||
|   #         agent = { |  | ||||||
|   #             interval = "10s"; |  | ||||||
|   #             round_interval = true; |  | ||||||
|   #             metric_batch_size = 1000; |  | ||||||
|   #             metric_buffer_limit = 10000; |  | ||||||
|   #             collection_jitter = "0s"; |  | ||||||
|   #             flush_interval = "10s"; |  | ||||||
|   #             flush_jitter = "0s"; |  | ||||||
|   #             precision = ""; |  | ||||||
|   #             hostname = "valinor"; |  | ||||||
|   #             omit_hostname = false; |  | ||||||
|   #         }; |  | ||||||
|  |  | ||||||
|   #         inputs.cpu = { |  | ||||||
|   #             percpu = true; |  | ||||||
|   #             totalcpu = true; |  | ||||||
|   #             collect_cpu_time = false; |  | ||||||
|   #             report_active = false; |  | ||||||
|   #         }; |  | ||||||
|  |  | ||||||
|   #         inputs.mem = {}; |  | ||||||
|   #         inputs.swap = {}; |  | ||||||
|   #         inputs.system = {}; |  | ||||||
|   #         inputs.disk = { |  | ||||||
|   #             ignore_fs = ["tmpfs" "devtmpfs" "devfs"]; |  | ||||||
|   #         }; |  | ||||||
|  |  | ||||||
|   #         inputs.net = {}; |  | ||||||
|   #         inputs.netstat = {}; |  | ||||||
|  |  | ||||||
|   #         inputs.ping = { |  | ||||||
|   #             urls = ["8.8.8.8" "8.8.4.4"]; |  | ||||||
|   #             count = 4; |  | ||||||
|   #             interval = "60s"; |  | ||||||
|   #             binary = "${pkgs.iputils.out}/bin/ping"; |  | ||||||
|   #         }; |  | ||||||
|  |  | ||||||
|   #         inputs.internet_speed = { |  | ||||||
|   #             interval = "2m"; |  | ||||||
|   #         }; |  | ||||||
|  |  | ||||||
|   #         inputs.net_response = { |  | ||||||
|   #             protocol = "tcp"; |  | ||||||
|   #             address = "google.com:80"; |  | ||||||
|   #             timeout = "5s"; |  | ||||||
|   #             read_timeout = "5s"; |  | ||||||
|   #             interval = "30s"; |  | ||||||
|   #         }; |  | ||||||
|  |  | ||||||
|   #         outputs.influxdb_v2 = { |  | ||||||
|   #             urls = [""]; |  | ||||||
|   #             token = ""; |  | ||||||
|   #             organization = ""; |  | ||||||
|   #             bucket = ""; |  | ||||||
|   #         }; |  | ||||||
|   #     }; |  | ||||||
|   # }; |  | ||||||
| } |  | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								modules/nixos/tools/devel/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								modules/nixos/tools/devel/default.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | { ... }: | ||||||
|  | { | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -1,16 +0,0 @@ | |||||||
| { lib, config, pkgs, ... }: |  | ||||||
| let |  | ||||||
|   android_env = pkgs.androidenv.composeAndroidPackages { |  | ||||||
|     platformVersions = [ "34" ]; |  | ||||||
|     abiVersions = [ "x86" "x86_64" ]; |  | ||||||
|     includeEmulator = false; |  | ||||||
|   }; |  | ||||||
| in { |  | ||||||
|   config = lib.mkIf (config.syscfg.make.develop) { |  | ||||||
|     environment.systemPackages = with pkgs; |  | ||||||
|       [ |  | ||||||
|         # android-tools |  | ||||||
|         unstable.androidStudioPackages.canary |  | ||||||
|       ]; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
| @@ -1,29 +1,21 @@ | |||||||
| { config, pkgs, lib, ... }: | { config, pkgs, ... }: { | ||||||
| let nameValuePair = name: value: { inherit name value; }; |  | ||||||
| in { |  | ||||||
|   programs.zsh.enable = true; |   programs.zsh.enable = true; | ||||||
|   users = { |   users = { | ||||||
|     defaultUserShell = pkgs.zsh; |     defaultUserShell = pkgs.zsh; | ||||||
|     users = builtins.listToAttrs (map (userConfig: |     users.${config.hostcfg.username} = { | ||||||
|       nameValuePair userConfig.username { |       isNormalUser = true; | ||||||
|         isNormalUser = true; |       description = "${config.hostcfg.username}"; | ||||||
|         description = "${userConfig.username}"; |       extraGroups = [ | ||||||
|         extraGroups = [ |         "networkmanager" | ||||||
|           "networkmanager" |         "wheel" | ||||||
|           "wheel" |         "vboxsf" | ||||||
|           "dialout" |         "adbusers" | ||||||
|           "vboxsf" |         "lp" | ||||||
|           "adbusers" |         "audio" | ||||||
|           "libvirtd" |         "video" | ||||||
|           "kvm" |         "docker" | ||||||
|           "lp" |         "wireshark" | ||||||
|           "audio" |       ]; | ||||||
|           "video" |     }; | ||||||
|           "docker" |  | ||||||
|           "podman" |  | ||||||
|           "wireshark" |  | ||||||
|           "gamemode" |  | ||||||
|         ]; |  | ||||||
|       }) config.syscfg.users); |  | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,15 +0,0 @@ | |||||||
| { config, pkgs, lib, ... }: |  | ||||||
| let |  | ||||||
| in { |  | ||||||
|   imports = [ ./sops ]; |  | ||||||
|   environment.systemPackages = with pkgs; [ arion ]; |  | ||||||
|   virtualisation.arion = { |  | ||||||
|     backend = "podman-socket"; |  | ||||||
|     projects = { |  | ||||||
|       cloud.settings = import ./docker/cloud.nix { inherit config pkgs lib; }; |  | ||||||
|       authentik.settings = |  | ||||||
|         import ./docker/authentik.nix { inherit config pkgs lib; }; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
|  |  | ||||||
| } |  | ||||||
| @@ -1,81 +0,0 @@ | |||||||
| { config, pkgs, ... }: { |  | ||||||
|   project.name = "traefik"; |  | ||||||
|  |  | ||||||
|   networks = { |  | ||||||
|     internal = { |  | ||||||
|       name = lib.mkForce "internal"; |  | ||||||
|       internal = true; |  | ||||||
|     }; |  | ||||||
|     external = { |  | ||||||
|       name = lib.mkForce "external"; |  | ||||||
|       internal = false; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
|  |  | ||||||
|   services = { |  | ||||||
|  |  | ||||||
|     traefik.service = { |  | ||||||
|       image = "traefik:latest"; |  | ||||||
|       container_name = "traefik"; |  | ||||||
|       restart = "unless-stopped"; |  | ||||||
|       networks = [ "internal" "external" ]; |  | ||||||
|       command = [ |  | ||||||
|         "--api" |  | ||||||
|         "--providers.docker=true" |  | ||||||
|         "--entrypoints.web.address=:80" |  | ||||||
|         "--entrypoints.web-secure.address=:443" |  | ||||||
|       ]; |  | ||||||
|       port = [ "443" "80" ]; |  | ||||||
|       volumes = [ |  | ||||||
|         "/var/run/docker.sock:/var/run/docker.sock:ro" |  | ||||||
|         "${serverCfg.configPath}/traefik/traefik.yaml:/etc/traefik/traefik.yaml" |  | ||||||
|         "${serverCfg.configPath}/traefik/access.log:/etc/traefik/access.log" |  | ||||||
|         "${serverCfg.configPath}/traefik/acme.json:/acme.json" |  | ||||||
|       ]; |  | ||||||
|       environment = { |  | ||||||
|         "INFOMANIAK_ACCESS_TOKEN" = config.sops.secrets.INFOMANIAK_API_KEY.path; |  | ||||||
|       }; |  | ||||||
|       labels = { "traefik.enable" = "false"; }; |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|     matomo.service = { |  | ||||||
|       image = "matomo:latest"; |  | ||||||
|       container_name = "matomo"; |  | ||||||
|       restart = "unless-stopped"; |  | ||||||
|       networks = [ "external" ]; |  | ||||||
|       volumes = [ |  | ||||||
|         "/etc/localtime:/etc/localtime:ro" |  | ||||||
|         "${serverCfg.configPath}/matomo:/var/www/html/config:rw" |  | ||||||
|         "${serverCfg.configPath}/traefik/access.log:/var/log/taccess.log:ro" |  | ||||||
|       ]; |  | ||||||
|       environment = { }; |  | ||||||
|       labels = { |  | ||||||
|         "traefik.http.routers.matomo.rule" = |  | ||||||
|           "Host(`matomo.${serverCfg.hostDomain}`)"; |  | ||||||
|         "traefik.http.routers.matomo.entrypoints" = "web-secure"; |  | ||||||
|         "traefik.http.routers.matomo.tls" = "true"; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|     searx.service = { |  | ||||||
|       image = "searxng/searxng:latest"; |  | ||||||
|       container_name = "searx"; |  | ||||||
|       restart = "unless-stopped"; |  | ||||||
|       networks = [ "external" ]; |  | ||||||
|       volumes = [ "/etc/localtime:/etc/localtime:ro" ]; |  | ||||||
|       environment = { |  | ||||||
|         "BASE_URL" = "https://searx.${serverCfg.hostDomain}"; |  | ||||||
|         "AUTOCOMPLETE" = "true"; |  | ||||||
|         "INSTANCE_NAME" = "searx${serverCfg.shortName}"; |  | ||||||
|       }; |  | ||||||
|       labels = { |  | ||||||
|         "traefik.http.routers.matomo.rule" = |  | ||||||
|           "Host(`searx.${serverCfg.hostDomain}`)"; |  | ||||||
|         "traefik.http.routers.matomo.entrypoints" = "web-secure"; |  | ||||||
|         "traefik.http.routers.matomo.tls" = "true"; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| @@ -1,20 +0,0 @@ | |||||||
| { config, pkgs, ... }: { |  | ||||||
|   sops.secrets.INFOMANIAK_API_KEY = { sopsFile = ./server.yaml; }; |  | ||||||
|   sops.secrets."${config.syscfg.hostname}_ssh_pub" = { |  | ||||||
|     mode = "0400"; |  | ||||||
|     owner = config.users.users.${config.syscfg.defaultUser}.name; |  | ||||||
|     group = config.users.users.${config.syscfg.defaultUser}.group; |  | ||||||
|   }; |  | ||||||
|   sops.secrets."iriy_ssh_pub" = { |  | ||||||
|     mode = "0444"; |  | ||||||
|     owner = config.users.users.${config.syscfg.defaultUser}.name; |  | ||||||
|     group = config.users.users.${config.syscfg.defaultUser}.group; |  | ||||||
|   }; |  | ||||||
|   sops.secrets."valinor_ssh_pub" = { |  | ||||||
|     mode = "0444"; |  | ||||||
|     owner = config.users.users.${config.syscfg.defaultUser}.name; |  | ||||||
|     group = config.users.users.${config.syscfg.defaultUser}.group; |  | ||||||
|   }; |  | ||||||
|   sops.secrets."${config.syscfg.hostname}_wg_priv" = { }; |  | ||||||
|   sops.secrets."${config.syscfg.hostname}_wg_pub" = { }; |  | ||||||
| } |  | ||||||
| @@ -1,68 +0,0 @@ | |||||||
| INFOMANIAK_API_KEY: ENC[AES256_GCM,data:QhjQoCMxogXAPtvUbf/EWkqsFAndn73LBuTqj5essjruekynH287D/CYN/cwfcnDqZoh6Z4A9p08uUmXzqmTiralAhsCoc+Ljb/monmsruc=,iv:8rMGNc9398jnFXZm34fOht6fMNDAcDZ68B1jwoQPn2Q=,tag:ZlQnPaxkCktpwiC6HzmFVg==,type:str] |  | ||||||
| sops: |  | ||||||
|     kms: [] |  | ||||||
|     gcp_kms: [] |  | ||||||
|     azure_kv: [] |  | ||||||
|     hc_vault: [] |  | ||||||
|     age: |  | ||||||
|         - recipient: age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg |  | ||||||
|           enc: | |  | ||||||
|             -----BEGIN AGE ENCRYPTED FILE----- |  | ||||||
|             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpZk1VY3NEZmRkS0J6dU03 |  | ||||||
|             OUtETWpHL2hLN09kRytNUEhmVnA5WW9yVXlNCmZaZnQ2YUlMMmlrZ2dEZDVFMHA5 |  | ||||||
|             OUpqOTJJbHVVREtpSFUyaDJDbXltaTgKLS0tIFY0ZkF3Ym5oeHViN3J4eW4vSVYz |  | ||||||
|             QkhuU0NLWElyVXpZd2ZpOHhwam04R28KFuaI35e8pB25M2dlP19gApso12ZYJ3ld |  | ||||||
|             BpMnp97ShX0I8bZRIYxSHpSrB/J+tt1V4pfGdJq7uWZM7XacPy666A== |  | ||||||
|             -----END AGE ENCRYPTED FILE----- |  | ||||||
|         - recipient: age1ms8f0ysv6vakxepvt69fejczs6tddexepesdv4rkgtheehj3nu4sc6290s |  | ||||||
|           enc: | |  | ||||||
|             -----BEGIN AGE ENCRYPTED FILE----- |  | ||||||
|             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuZXNjRzJsdFpTdDZhSkRB |  | ||||||
|             eW1qSStnZHN5Tzh3bFA1azZIRk42V1RzSTJJCi9MV0k5ZXNQOWJFYnlXdnB3azBL |  | ||||||
|             NzNldkFLWlEyT01MeWlFU3RKODU4dWcKLS0tIFJXL1ZsNDgydTgxVGRMYWxyQTNT |  | ||||||
|             K1M0TDd1eGd1V3pOcjl1M1VrdDUvbG8KpsWlrr14MOh/8mG+rXpswPPFE3VnpKGt |  | ||||||
|             03DWUII3+MMEWLJPLxkNJ9BzCm4Kl1QNHSbJ7Ex6df0b7nB6Ed6Hvw== |  | ||||||
|             -----END AGE ENCRYPTED FILE----- |  | ||||||
|         - recipient: age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg |  | ||||||
|           enc: | |  | ||||||
|             -----BEGIN AGE ENCRYPTED FILE----- |  | ||||||
|             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5U1VjTjlIMTdLRFQ5R1Av |  | ||||||
|             SVBLMFZtV3ppK2VXWjdYelNGTGFOZUJaMndBCjYyZ0IveXFiVDlSUEtNOXk2L3g3 |  | ||||||
|             UmFIRE1GMEs2QVhUcFJkTHpCWmhhbG8KLS0tIG94NStMUnFZRTRsK2w4cDd4Rms5 |  | ||||||
|             M1MwTEtJNEFDdjRLVFRseThxNGJUQ0kKKN7QX9qUojNQBknbInaXslaKsAAhEj5y |  | ||||||
|             QMXAU6TxlHMv+wZy2RQwMe/zE7RP24TypnX894iV0usTHujyxvfk3w== |  | ||||||
|             -----END AGE ENCRYPTED FILE----- |  | ||||||
|         - recipient: age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg |  | ||||||
|           enc: | |  | ||||||
|             -----BEGIN AGE ENCRYPTED FILE----- |  | ||||||
|             YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrUHFYMWdVczRPdEFSbFR5 |  | ||||||
|             VmcxeEU4YWxwRTlDUkRkNVY0dFh5cjVUNjNnCkRSblNaS214dkdrd3JnNE5rZnR3 |  | ||||||
|             S0JVeXova1h2VnB2ODY0SUYxZm45TjAKLS0tIFN1QXFyTkt3SmV0UVhGMlMxTmpN |  | ||||||
|             VW83cnd2TnQwWlVCUnpzZ29NRE1SekUKBGVCaijugxR6eSxvk19nncR9X6bmSSUq |  | ||||||
|             VoxtHBkJbz/4mcQ/SUb4Wv1Rt5875tLWygS7qKmh8jzoP7JI4E9qWQ== |  | ||||||
|             -----END AGE ENCRYPTED FILE----- |  | ||||||
|     lastmodified: "2024-05-08T16:05:46Z" |  | ||||||
|     mac: ENC[AES256_GCM,data:X6AUVWJRcwH45W9NoQxI8Lp6l+5RFpgCNB6cdUZZODHDdTUMt9a6wr9YfU56C7QkdlxXdj6xCOCscJtw/WY2Y+XchWXaUVZZsoZ9xUo28aksUtHSyE9WJBHCeSqss79IW6k/GeDPiDOfz4om+udDvtdpyKbtvbw2a+K5st+62d4=,iv:REGTavU8DkalUbfO1J2+VccYnRRrOqstSFq/RU7Co5Q=,tag:2t8mwqa76kVQyeWS85zXsA==,type:str] |  | ||||||
|     pgp: |  | ||||||
|         - created_at: "2024-05-08T15:46:52Z" |  | ||||||
|           enc: |- |  | ||||||
|             -----BEGIN PGP MESSAGE----- |  | ||||||
|  |  | ||||||
|             hQIMA6R3Y9nD7qMBAQ//bYK5gdxv8fNvG6P4GrD27gQRQXhLGF2+hS54sqEqjeN8 |  | ||||||
|             NZpHVbNNRR3AggOkT7QY1JO8bOhWscefH1vvBmBuODzh5Fw42t4zNPEDjWZEetxa |  | ||||||
|             rClbLEvo7Kz8UKCNb9JIeYx7cr8sPWCmg4GvV1wGjhjr+u5ovuheORnHl+qoLsqv |  | ||||||
|             P12PV7VzwC52v92GWiu9LRJqfqZra5GjUXGVXzBcZ9i6CnUDejzssWjhO/fmzKum |  | ||||||
|             GbGIi9sf3RmVYsUASDgRBmVAZC3KF7RLi0L6WY0etRocAaWSAgnU1lZ04E8ZtLjk |  | ||||||
|             DlCtIpreJ1H0Ym+5EXB94PG0KZjayxKc20YDQ+yYwwSmiCVaUCLlYX2BOoncUYFF |  | ||||||
|             MxVgWYwn14R5jyGbh4NyiBxPGHvIUx5RCIo70pMgS6W5ALZYTcNDLF82mj1xTOTy |  | ||||||
|             bcuaa7FCuXJif457LCe5TcAa5WYDgKX8pUKzFRhWIckcGwgFCUB0Z7+L9L7F0yt/ |  | ||||||
|             YZd71cY0Lxlwi61CnWgZZMx2FFpHyBCEmF1A180KUtB1jSkS/AVmlM2z9I0QsR62 |  | ||||||
|             fTFIaqimPMjUzbuTs0QjUXf8OJZo0/cwo9XeGyCBtJTg7cLdsOFouqfvXhvkdCrR |  | ||||||
|             xCLE2Ke5jwmoPKs1t+YpwMMzB57j/rluZCgiz45w7YDXKf4gEp2ra9siFiC/y9PS |  | ||||||
|             XgEPymUiDZY0w9S5oGr94cNc6LQId16Zgt1vWHLzgg8QZqkxLTBjUXXc7aoCISQp |  | ||||||
|             AwUE62KJucVvWjB3kcgDbNvaDWWC5O48zUavmzkmmP1sqKf0gO/XG52PDG/DF3Y= |  | ||||||
|             =cs0r |  | ||||||
|             -----END PGP MESSAGE----- |  | ||||||
|           fp: 4E241635F8EDD2919D2FB44CA362EA0491E2EEA0 |  | ||||||
|     unencrypted_suffix: _unencrypted |  | ||||||
|     version: 3.8.1 |  | ||||||
| @@ -1,9 +1,9 @@ | |||||||
| { config, ... }: { | { config, ... }: { | ||||||
|   imports = [ ./sorahiro.nix ]; |   imports = [ ./sorahiro_soft.nix ]; | ||||||
|  |  | ||||||
|   colorScheme.palette.border-radius = "#8"; |   colorScheme.colors.border-radius = "#8"; | ||||||
|   colorScheme.palette.border-width = "#2"; |   colorScheme.colors.border-width = "#2"; | ||||||
|   colorScheme.palette.gaps-screen = "#8"; |   colorScheme.colors.gaps-screen = "#8"; | ||||||
|   colorScheme.palette.gaps-window = "#4"; |   colorScheme.colors.gaps-window = "#4"; | ||||||
|   colorScheme.palette.gaps-bar = "#32"; |   colorScheme.colors.gaps-bar = "#32"; | ||||||
| } | } | ||||||
|   | |||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user