Compare commits
	
		
			1 commit
		
	
	
		
			main
			...
			try-fix-fi
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| a1423d0eda | 
					 66 changed files with 495 additions and 1174 deletions
				
			
		
							
								
								
									
										2
									
								
								.gitattributes
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitattributes
									
										
									
									
										vendored
									
									
								
							| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
flake.lock binary
 | 
					 | 
				
			||||||
*.gpg binary
 | 
					 | 
				
			||||||
							
								
								
									
										15
									
								
								.sops.yaml
									
										
									
									
									
								
							
							
						
						
									
										15
									
								
								.sops.yaml
									
										
									
									
									
								
							| 
						 | 
					@ -2,33 +2,24 @@ keys:
 | 
				
			||||||
  - &lelgenio-gpg 0FECE8316E74BA6F44EFC21A2F8F21CE8721456B
 | 
					  - &lelgenio-gpg 0FECE8316E74BA6F44EFC21A2F8F21CE8721456B
 | 
				
			||||||
  - &lelgenio-ssh age1zrgu7w8059xydagm60phnffghvfe9h2ca58cx8qwagqpyfuvs9fqw79c8h
 | 
					  - &lelgenio-ssh age1zrgu7w8059xydagm60phnffghvfe9h2ca58cx8qwagqpyfuvs9fqw79c8h
 | 
				
			||||||
  - &monolith-ssh age1ecyynwv93lfu7crjjp8l47defv07quzfzaktwurpep7jc9eha5pscg7lrw
 | 
					  - &monolith-ssh age1ecyynwv93lfu7crjjp8l47defv07quzfzaktwurpep7jc9eha5pscg7lrw
 | 
				
			||||||
  - &double-rainbow-ssh age1026d4c8nqyapcsy4jz57szt6zw3ejcgv3ecyvz0s89t7w7z964fqdqv52h
 | 
					 | 
				
			||||||
  - &phantom-ssh age1m4mqcd2kmuhfr8a22rvh02c68jkakhdfmuqgtusuv0czk4jvna7sz79p3y
 | 
					  - &phantom-ssh age1m4mqcd2kmuhfr8a22rvh02c68jkakhdfmuqgtusuv0czk4jvna7sz79p3y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
creation_rules:
 | 
					creation_rules:
 | 
				
			||||||
  - path_regex: secrets/[^/]+\.(yaml|json|env|ini|gpg)$
 | 
					  - path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
 | 
				
			||||||
    key_groups:
 | 
					    key_groups:
 | 
				
			||||||
    - pgp:
 | 
					    - pgp:
 | 
				
			||||||
      - *lelgenio-gpg
 | 
					      - *lelgenio-gpg
 | 
				
			||||||
      age:
 | 
					      age:
 | 
				
			||||||
      - *lelgenio-ssh
 | 
					      - *lelgenio-ssh
 | 
				
			||||||
      - *monolith-ssh
 | 
					      - *monolith-ssh
 | 
				
			||||||
  - path_regex: secrets/monolith/[^/]+\.(yaml|json|env|ini|gpg)$
 | 
					  - path_regex: secrets/monolith/[^/]+\.(yaml|json|env|ini)$
 | 
				
			||||||
    key_groups:
 | 
					    key_groups:
 | 
				
			||||||
    - pgp:
 | 
					    - pgp:
 | 
				
			||||||
      - *lelgenio-gpg
 | 
					      - *lelgenio-gpg
 | 
				
			||||||
      age:
 | 
					      age:
 | 
				
			||||||
      - *lelgenio-ssh
 | 
					      - *lelgenio-ssh
 | 
				
			||||||
      - *monolith-ssh
 | 
					      - *monolith-ssh
 | 
				
			||||||
  - path_regex: secrets/double-rainbow/[^/]+\.(yaml|json|env|ini|gpg)$
 | 
					  - path_regex: secrets/phantom/[^/]+\.(yaml|json|env|ini)$
 | 
				
			||||||
    key_groups:
 | 
					 | 
				
			||||||
    - pgp:
 | 
					 | 
				
			||||||
      - *lelgenio-gpg
 | 
					 | 
				
			||||||
      age:
 | 
					 | 
				
			||||||
      - *lelgenio-ssh
 | 
					 | 
				
			||||||
      - *monolith-ssh
 | 
					 | 
				
			||||||
      - *double-rainbow-ssh
 | 
					 | 
				
			||||||
  - path_regex: secrets/phantom/[^/]+\.(yaml|json|env|ini|gpg)$
 | 
					 | 
				
			||||||
    key_groups:
 | 
					    key_groups:
 | 
				
			||||||
    - pgp:
 | 
					    - pgp:
 | 
				
			||||||
      - *lelgenio-gpg
 | 
					      - *lelgenio-gpg
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										201
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										201
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							| 
						 | 
					@ -28,11 +28,11 @@
 | 
				
			||||||
        "systems": "systems"
 | 
					        "systems": "systems"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1760836749,
 | 
					        "lastModified": 1736955230,
 | 
				
			||||||
        "narHash": "sha256-wyT7Pl6tMFbFrs8Lk/TlEs81N6L+VSybPfiIgzU8lbQ=",
 | 
					        "narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=",
 | 
				
			||||||
        "owner": "ryantm",
 | 
					        "owner": "ryantm",
 | 
				
			||||||
        "repo": "agenix",
 | 
					        "repo": "agenix",
 | 
				
			||||||
        "rev": "2f0f812f69f3eb4140157fe15e12739adf82e32a",
 | 
					        "rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -163,11 +163,11 @@
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1744478979,
 | 
					        "lastModified": 1700795494,
 | 
				
			||||||
        "narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=",
 | 
					        "narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
 | 
				
			||||||
        "owner": "lnl7",
 | 
					        "owner": "lnl7",
 | 
				
			||||||
        "repo": "nix-darwin",
 | 
					        "repo": "nix-darwin",
 | 
				
			||||||
        "rev": "43975d782b418ebf4969e9ccba82466728c2851b",
 | 
					        "rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -225,11 +225,11 @@
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1760701190,
 | 
					        "lastModified": 1741786315,
 | 
				
			||||||
        "narHash": "sha256-y7UhnWlER8r776JsySqsbTUh2Txf7K30smfHlqdaIQw=",
 | 
					        "narHash": "sha256-VT65AE2syHVj6v/DGB496bqBnu1PXrrzwlw07/Zpllc=",
 | 
				
			||||||
        "owner": "nix-community",
 | 
					        "owner": "nix-community",
 | 
				
			||||||
        "repo": "disko",
 | 
					        "repo": "disko",
 | 
				
			||||||
        "rev": "3a9450b26e69dcb6f8de6e2b07b3fc1c288d85f5",
 | 
					        "rev": "0d8c6ad4a43906d14abd5c60e0ffe7b587b213de",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -243,11 +243,11 @@
 | 
				
			||||||
        "nixpkgs": "nixpkgs_3"
 | 
					        "nixpkgs": "nixpkgs_3"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1749410315,
 | 
					        "lastModified": 1742179690,
 | 
				
			||||||
        "narHash": "sha256-5H8MuMMSq1WnQcvb1FiDNkKP+uyeZ8HX5GRTMfEOyLI=",
 | 
					        "narHash": "sha256-s/q3OWRe5m7kwDcAs1BhJEj6aHc5bsBxRnLP7DM77xE=",
 | 
				
			||||||
        "owner": "lelgenio",
 | 
					        "owner": "lelgenio",
 | 
				
			||||||
        "repo": "dzgui-nix",
 | 
					        "repo": "dzgui-nix",
 | 
				
			||||||
        "rev": "49adbb1edfb3c25b0cd8256d35673394386065e7",
 | 
					        "rev": "a6d68720c932ac26d549b24f17c776bd2aeb73b4",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -297,11 +297,11 @@
 | 
				
			||||||
    "flake-compat_2": {
 | 
					    "flake-compat_2": {
 | 
				
			||||||
      "flake": false,
 | 
					      "flake": false,
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1747046372,
 | 
					        "lastModified": 1696426674,
 | 
				
			||||||
        "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
 | 
					        "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
 | 
				
			||||||
        "owner": "edolstra",
 | 
					        "owner": "edolstra",
 | 
				
			||||||
        "repo": "flake-compat",
 | 
					        "repo": "flake-compat",
 | 
				
			||||||
        "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
 | 
					        "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -433,54 +433,6 @@
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "git-hooks": {
 | 
					 | 
				
			||||||
      "inputs": {
 | 
					 | 
				
			||||||
        "flake-compat": [
 | 
					 | 
				
			||||||
          "nixos-mailserver",
 | 
					 | 
				
			||||||
          "flake-compat"
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "gitignore": "gitignore",
 | 
					 | 
				
			||||||
        "nixpkgs": [
 | 
					 | 
				
			||||||
          "nixos-mailserver",
 | 
					 | 
				
			||||||
          "nixpkgs"
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "locked": {
 | 
					 | 
				
			||||||
        "lastModified": 1742649964,
 | 
					 | 
				
			||||||
        "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
 | 
					 | 
				
			||||||
        "owner": "cachix",
 | 
					 | 
				
			||||||
        "repo": "git-hooks.nix",
 | 
					 | 
				
			||||||
        "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
 | 
					 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "original": {
 | 
					 | 
				
			||||||
        "owner": "cachix",
 | 
					 | 
				
			||||||
        "repo": "git-hooks.nix",
 | 
					 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "gitignore": {
 | 
					 | 
				
			||||||
      "inputs": {
 | 
					 | 
				
			||||||
        "nixpkgs": [
 | 
					 | 
				
			||||||
          "nixos-mailserver",
 | 
					 | 
				
			||||||
          "git-hooks",
 | 
					 | 
				
			||||||
          "nixpkgs"
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "locked": {
 | 
					 | 
				
			||||||
        "lastModified": 1709087332,
 | 
					 | 
				
			||||||
        "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
 | 
					 | 
				
			||||||
        "owner": "hercules-ci",
 | 
					 | 
				
			||||||
        "repo": "gitignore.nix",
 | 
					 | 
				
			||||||
        "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
 | 
					 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "original": {
 | 
					 | 
				
			||||||
        "owner": "hercules-ci",
 | 
					 | 
				
			||||||
        "repo": "gitignore.nix",
 | 
					 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "hello-fonts": {
 | 
					    "hello-fonts": {
 | 
				
			||||||
      "flake": false,
 | 
					      "flake": false,
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
| 
						 | 
					@ -504,40 +456,20 @@
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1758463745,
 | 
					        "lastModified": 1742655702,
 | 
				
			||||||
        "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
 | 
					        "narHash": "sha256-jbqlw4sPArFtNtA1s3kLg7/A4fzP4GLk9bGbtUJg0JQ=",
 | 
				
			||||||
        "owner": "nix-community",
 | 
					        "owner": "nix-community",
 | 
				
			||||||
        "repo": "home-manager",
 | 
					        "repo": "home-manager",
 | 
				
			||||||
        "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
 | 
					        "rev": "0948aeedc296f964140d9429223c7e4a0702a1ff",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
        "owner": "nix-community",
 | 
					        "owner": "nix-community",
 | 
				
			||||||
        "ref": "release-25.05",
 | 
					        "ref": "release-24.11",
 | 
				
			||||||
        "repo": "home-manager",
 | 
					        "repo": "home-manager",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "lsfg-vk-flake": {
 | 
					 | 
				
			||||||
      "inputs": {
 | 
					 | 
				
			||||||
        "nixpkgs": [
 | 
					 | 
				
			||||||
          "nixpkgs"
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "locked": {
 | 
					 | 
				
			||||||
        "lastModified": 1756367273,
 | 
					 | 
				
			||||||
        "narHash": "sha256-u7/qG5xQxW+o51R2lBPj0NxU3oFrUwj78UlCKKNHGAc=",
 | 
					 | 
				
			||||||
        "owner": "pabloaul",
 | 
					 | 
				
			||||||
        "repo": "lsfg-vk-flake",
 | 
					 | 
				
			||||||
        "rev": "62aadfc844b2002abe47cbbc9dfd028033376248",
 | 
					 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "original": {
 | 
					 | 
				
			||||||
        "owner": "pabloaul",
 | 
					 | 
				
			||||||
        "repo": "lsfg-vk-flake",
 | 
					 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "made-you-look": {
 | 
					    "made-you-look": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "crane": "crane_2",
 | 
					        "crane": "crane_2",
 | 
				
			||||||
| 
						 | 
					@ -565,11 +497,11 @@
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1760846226,
 | 
					        "lastModified": 1742701275,
 | 
				
			||||||
        "narHash": "sha256-xmU8kAsRprJiTGBTaGrwmjBP3AMA9ltlrxHKFuy5JWc=",
 | 
					        "narHash": "sha256-AulwPVrS9859t+eJ61v24wH/nfBEIDSXYxlRo3fL/SA=",
 | 
				
			||||||
        "owner": "Mic92",
 | 
					        "owner": "Mic92",
 | 
				
			||||||
        "repo": "nix-index-database",
 | 
					        "repo": "nix-index-database",
 | 
				
			||||||
        "rev": "5024e1901239a76b7bf94a4cd27f3507e639d49e",
 | 
					        "rev": "36dc43cb50d5d20f90a28d53abb33a32b0a2aae6",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -582,23 +514,22 @@
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "blobs": "blobs",
 | 
					        "blobs": "blobs",
 | 
				
			||||||
        "flake-compat": "flake-compat_2",
 | 
					        "flake-compat": "flake-compat_2",
 | 
				
			||||||
        "git-hooks": "git-hooks",
 | 
					 | 
				
			||||||
        "nixpkgs": [
 | 
					        "nixpkgs": [
 | 
				
			||||||
          "nixpkgs"
 | 
					          "nixpkgs"
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "nixpkgs-25_05": "nixpkgs-25_05"
 | 
					        "nixpkgs-24_11": "nixpkgs-24_11"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1755110674,
 | 
					        "lastModified": 1742413977,
 | 
				
			||||||
        "narHash": "sha256-PigqTAGkdBYXVFWsJnqcirrLeFqRFN4PFigLA8FzxeI=",
 | 
					        "narHash": "sha256-NkhM9GVu3HL+MiXtGD0TjuPCQ4GFVJPBZ8KyI2cFDGU=",
 | 
				
			||||||
        "owner": "simple-nixos-mailserver",
 | 
					        "owner": "simple-nixos-mailserver",
 | 
				
			||||||
        "repo": "nixos-mailserver",
 | 
					        "repo": "nixos-mailserver",
 | 
				
			||||||
        "rev": "f5936247dbdb8501221978562ab0b302dd75456c",
 | 
					        "rev": "b4fbffe79c00f19be94b86b4144ff67541613659",
 | 
				
			||||||
        "type": "gitlab"
 | 
					        "type": "gitlab"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
        "owner": "simple-nixos-mailserver",
 | 
					        "owner": "simple-nixos-mailserver",
 | 
				
			||||||
        "ref": "nixos-25.05",
 | 
					        "ref": "master",
 | 
				
			||||||
        "repo": "nixos-mailserver",
 | 
					        "repo": "nixos-mailserver",
 | 
				
			||||||
        "type": "gitlab"
 | 
					        "type": "gitlab"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
| 
						 | 
					@ -619,29 +550,28 @@
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixpkgs-25_05": {
 | 
					    "nixpkgs-24_11": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1747610100,
 | 
					        "lastModified": 1734083684,
 | 
				
			||||||
        "narHash": "sha256-rpR5ZPMkWzcnCcYYo3lScqfuzEw5Uyfh+R0EKZfroAc=",
 | 
					        "narHash": "sha256-5fNndbndxSx5d+C/D0p/VF32xDiJCJzyOqorOYW4JEo=",
 | 
				
			||||||
        "owner": "NixOS",
 | 
					        "owner": "NixOS",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
        "rev": "ca49c4304acf0973078db0a9d200fd2bae75676d",
 | 
					        "rev": "314e12ba369ccdb9b352a4db26ff419f7c49fa84",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
        "owner": "NixOS",
 | 
					        "id": "nixpkgs",
 | 
				
			||||||
        "ref": "nixos-25.05",
 | 
					        "ref": "nixos-24.11",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "type": "indirect"
 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixpkgs-unstable": {
 | 
					    "nixpkgs-unstable": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1761114652,
 | 
					        "lastModified": 1743095683,
 | 
				
			||||||
        "narHash": "sha256-f/QCJM/YhrV/lavyCVz8iU3rlZun6d+dAiC3H+CDle4=",
 | 
					        "narHash": "sha256-gWd4urRoLRe8GLVC/3rYRae1h+xfQzt09xOfb0PaHSk=",
 | 
				
			||||||
        "owner": "NixOS",
 | 
					        "owner": "NixOS",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
        "rev": "01f116e4df6a15f4ccdffb1bcd41096869fb385c",
 | 
					        "rev": "5e5402ecbcb27af32284d4a62553c019a3a49ea6",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -698,26 +628,26 @@
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixpkgs_5": {
 | 
					    "nixpkgs_5": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1761173472,
 | 
					        "lastModified": 1742937945,
 | 
				
			||||||
        "narHash": "sha256-m9W0dYXflzeGgKNravKJvTMR4Qqa2MVD11AwlGMufeE=",
 | 
					        "narHash": "sha256-lWc+79eZRyvHp/SqMhHTMzZVhpxkRvthsP1Qx6UCq0E=",
 | 
				
			||||||
        "owner": "NixOS",
 | 
					        "owner": "NixOS",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
        "rev": "c8aa8cc00a5cb57fada0851a038d35c08a36a2bb",
 | 
					        "rev": "d02d88f8de5b882ccdde0465d8fa2db3aa1169f7",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
        "id": "nixpkgs",
 | 
					        "id": "nixpkgs",
 | 
				
			||||||
        "ref": "nixos-25.05",
 | 
					        "ref": "nixos-24.11",
 | 
				
			||||||
        "type": "indirect"
 | 
					        "type": "indirect"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixpkgs_6": {
 | 
					    "nixpkgs_6": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1761236834,
 | 
					        "lastModified": 1735554305,
 | 
				
			||||||
        "narHash": "sha256-+pthv6hrL5VLW2UqPdISGuLiUZ6SnAXdd2DdUE+fV2Q=",
 | 
					        "narHash": "sha256-zExSA1i/b+1NMRhGGLtNfFGXgLtgo+dcuzHzaWA6w3Q=",
 | 
				
			||||||
        "owner": "nixos",
 | 
					        "owner": "nixos",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
        "rev": "d5faa84122bc0a1fd5d378492efce4e289f8eac1",
 | 
					        "rev": "0e82ab234249d8eee3e8c91437802b32c74bb3fd",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -778,11 +708,11 @@
 | 
				
			||||||
    "ranger-icons": {
 | 
					    "ranger-icons": {
 | 
				
			||||||
      "flake": false,
 | 
					      "flake": false,
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1749128401,
 | 
					        "lastModified": 1736375293,
 | 
				
			||||||
        "narHash": "sha256-qvWqKVS4C5OO6bgETBlVDwcv4eamGlCUltjsBU3gAbA=",
 | 
					        "narHash": "sha256-ck53eG+mGIQ706sUnEHbJ6vY1/LYnRcpq94JXzwnGTQ=",
 | 
				
			||||||
        "owner": "alexanderjeurissen",
 | 
					        "owner": "alexanderjeurissen",
 | 
				
			||||||
        "repo": "ranger_devicons",
 | 
					        "repo": "ranger_devicons",
 | 
				
			||||||
        "rev": "1bcaff0366a9d345313dc5af14002cfdcddabb82",
 | 
					        "rev": "f227f212e14996fbb366f945ec3ecaf5dc5f44b0",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -802,7 +732,6 @@
 | 
				
			||||||
        "dzgui-nix": "dzgui-nix",
 | 
					        "dzgui-nix": "dzgui-nix",
 | 
				
			||||||
        "hello-fonts": "hello-fonts",
 | 
					        "hello-fonts": "hello-fonts",
 | 
				
			||||||
        "home-manager": "home-manager",
 | 
					        "home-manager": "home-manager",
 | 
				
			||||||
        "lsfg-vk-flake": "lsfg-vk-flake",
 | 
					 | 
				
			||||||
        "made-you-look": "made-you-look",
 | 
					        "made-you-look": "made-you-look",
 | 
				
			||||||
        "nix-index-database": "nix-index-database",
 | 
					        "nix-index-database": "nix-index-database",
 | 
				
			||||||
        "nixos-mailserver": "nixos-mailserver",
 | 
					        "nixos-mailserver": "nixos-mailserver",
 | 
				
			||||||
| 
						 | 
					@ -871,11 +800,11 @@
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1760998189,
 | 
					        "lastModified": 1742700801,
 | 
				
			||||||
        "narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=",
 | 
					        "narHash": "sha256-ZGlpUDsuBdeZeTNgoMv+aw0ByXT2J3wkYw9kJwkAS4M=",
 | 
				
			||||||
        "owner": "Mic92",
 | 
					        "owner": "Mic92",
 | 
				
			||||||
        "repo": "sops-nix",
 | 
					        "repo": "sops-nix",
 | 
				
			||||||
        "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3",
 | 
					        "rev": "67566fe68a8bed2a7b1175fdfb0697ed22ae8852",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -1003,11 +932,11 @@
 | 
				
			||||||
        "rev": "6a68f2cda0aa2fbb399a4c43b445e8c1a2df0634",
 | 
					        "rev": "6a68f2cda0aa2fbb399a4c43b445e8c1a2df0634",
 | 
				
			||||||
        "revCount": 4,
 | 
					        "revCount": 4,
 | 
				
			||||||
        "type": "git",
 | 
					        "type": "git",
 | 
				
			||||||
        "url": "https://git.lelgenio.com/lelgenio/tlauncher-nix"
 | 
					        "url": "https://git.lelgenio.xyz/lelgenio/tlauncher-nix"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
        "type": "git",
 | 
					        "type": "git",
 | 
				
			||||||
        "url": "https://git.lelgenio.com/lelgenio/tlauncher-nix"
 | 
					        "url": "https://git.lelgenio.xyz/lelgenio/tlauncher-nix"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "tomater": {
 | 
					    "tomater": {
 | 
				
			||||||
| 
						 | 
					@ -1031,11 +960,11 @@
 | 
				
			||||||
        "nixpkgs": "nixpkgs_6"
 | 
					        "nixpkgs": "nixpkgs_6"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1761311587,
 | 
					        "lastModified": 1743081648,
 | 
				
			||||||
        "narHash": "sha256-Msq86cR5SjozQGCnC6H8C+0cD4rnx91BPltZ9KK613Y=",
 | 
					        "narHash": "sha256-WRAylyYptt6OX5eCEBWyTwOEqEtD6zt33rlUkr6u3cE=",
 | 
				
			||||||
        "owner": "numtide",
 | 
					        "owner": "numtide",
 | 
				
			||||||
        "repo": "treefmt-nix",
 | 
					        "repo": "treefmt-nix",
 | 
				
			||||||
        "rev": "2eddae033e4e74bf581c2d1dfa101f9033dbd2dc",
 | 
					        "rev": "29a3d7b768c70addce17af0869f6e2bd8f5be4b7",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -1046,11 +975,11 @@
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "vpsadminos": {
 | 
					    "vpsadminos": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1761032776,
 | 
					        "lastModified": 1743047409,
 | 
				
			||||||
        "narHash": "sha256-u/uujjN1kiUgCVs+ha4m+IMD6OwATRpW/YWJKjs48f0=",
 | 
					        "narHash": "sha256-WTUW2GZqHknVwEbzF/TeX2eg52414gfl6hXloDDwEsQ=",
 | 
				
			||||||
        "owner": "vpsfreecz",
 | 
					        "owner": "vpsfreecz",
 | 
				
			||||||
        "repo": "vpsadminos",
 | 
					        "repo": "vpsadminos",
 | 
				
			||||||
        "rev": "db4e325b1499f184f5e9a0025af2c2fab0043db3",
 | 
					        "rev": "cf9324b9ff855172bd9de8aa3b8215071c4a0c6f",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -1066,11 +995,11 @@
 | 
				
			||||||
        "nixpkgs": "nixpkgs_7"
 | 
					        "nixpkgs": "nixpkgs_7"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1758999384,
 | 
					        "lastModified": 1719076817,
 | 
				
			||||||
        "narHash": "sha256-n1RiAhVtPxhjHmKoOBfEleTAMwz9JSvLmZyCQYpwXSQ=",
 | 
					        "narHash": "sha256-B6NTomYXL50j6fabZrAGvTPp3zv5oFxNUhwvLhDNoMw=",
 | 
				
			||||||
        "ref": "refs/heads/main",
 | 
					        "ref": "refs/heads/main",
 | 
				
			||||||
        "rev": "0949b2fe4f54f74bf880c2034f6fc3a7d15b7cef",
 | 
					        "rev": "406d6646970191c016a375f25a35aa00dfa0d4aa",
 | 
				
			||||||
        "revCount": 6,
 | 
					        "revCount": 4,
 | 
				
			||||||
        "type": "git",
 | 
					        "type": "git",
 | 
				
			||||||
        "url": "https://git.lelgenio.com/lelgenio/warthunder-leak-counter"
 | 
					        "url": "https://git.lelgenio.com/lelgenio/warthunder-leak-counter"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
| 
						 | 
					@ -1085,11 +1014,11 @@
 | 
				
			||||||
        "nixpkgs": "nixpkgs_8"
 | 
					        "nixpkgs": "nixpkgs_8"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1752343846,
 | 
					        "lastModified": 1715216838,
 | 
				
			||||||
        "narHash": "sha256-tm2iycSAzbomHfOqmpQ21ozmS84OXfKIu/ZJant0Vfk=",
 | 
					        "narHash": "sha256-q5key9BWJjJQqECrhflso9ZTzULBeScvromo0S4fjqE=",
 | 
				
			||||||
        "owner": "lelgenio",
 | 
					        "owner": "lelgenio",
 | 
				
			||||||
        "repo": "wl-crosshair",
 | 
					        "repo": "wl-crosshair",
 | 
				
			||||||
        "rev": "940acb43e753cfbe0afd0478370778e1bf2d3d55",
 | 
					        "rev": "39b716cf410a1b45006f50f32f8d63de5c43aedb",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										109
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										109
									
								
								flake.nix
									
										
									
									
									
								
							| 
						 | 
					@ -1,10 +1,10 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  description = "My system config";
 | 
					  description = "My system config";
 | 
				
			||||||
  inputs = {
 | 
					  inputs = {
 | 
				
			||||||
    nixpkgs.url = "nixpkgs/nixos-25.05";
 | 
					    nixpkgs.url = "nixpkgs/nixos-24.11";
 | 
				
			||||||
    nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
 | 
					    nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    home-manager.url = "github:nix-community/home-manager/release-25.05";
 | 
					    home-manager.url = "github:nix-community/home-manager/release-24.11";
 | 
				
			||||||
    home-manager.inputs.nixpkgs.follows = "nixpkgs";
 | 
					    home-manager.inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    vpsadminos.url = "github:vpsfreecz/vpsadminos";
 | 
					    vpsadminos.url = "github:vpsfreecz/vpsadminos";
 | 
				
			||||||
| 
						 | 
					@ -32,19 +32,14 @@
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    nixos-mailserver = {
 | 
					    nixos-mailserver = {
 | 
				
			||||||
      url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-25.05";
 | 
					      url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master";
 | 
				
			||||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
					      inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    dzgui-nix.url = "github:lelgenio/dzgui-nix";
 | 
					    dzgui-nix.url = "github:lelgenio/dzgui-nix";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    tlauncher = {
 | 
					    tlauncher = {
 | 
				
			||||||
      url = "git+https://git.lelgenio.com/lelgenio/tlauncher-nix";
 | 
					      url = "git+https://git.lelgenio.xyz/lelgenio/tlauncher-nix";
 | 
				
			||||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    lsfg-vk-flake = {
 | 
					 | 
				
			||||||
      url = "github:pabloaul/lsfg-vk-flake";
 | 
					 | 
				
			||||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
					      inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -105,41 +100,41 @@
 | 
				
			||||||
      specialArgs = {
 | 
					      specialArgs = {
 | 
				
			||||||
        inherit inputs;
 | 
					        inherit inputs;
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
      common_modules = [
 | 
					      common_modules =
 | 
				
			||||||
        { nixpkgs.pkgs = pkgs; }
 | 
					        [
 | 
				
			||||||
        ./system/configuration.nix
 | 
					          { nixpkgs.pkgs = pkgs; }
 | 
				
			||||||
        ./system/secrets.nix
 | 
					          ./system/configuration.nix
 | 
				
			||||||
        ./system/sops.nix
 | 
					          ./system/secrets.nix
 | 
				
			||||||
        ./system/greetd.nix
 | 
					          ./system/sops.nix
 | 
				
			||||||
        { login-manager.greetd.enable = desktop == "sway"; }
 | 
					          ./system/greetd.nix
 | 
				
			||||||
 | 
					          { login-manager.greetd.enable = desktop == "sway"; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        inputs.agenix.nixosModules.default
 | 
					          inputs.agenix.nixosModules.default
 | 
				
			||||||
        inputs.sops-nix.nixosModules.default
 | 
					          inputs.sops-nix.nixosModules.default
 | 
				
			||||||
        inputs.home-manager.nixosModules.home-manager
 | 
					          inputs.home-manager.nixosModules.home-manager
 | 
				
			||||||
        inputs.disko.nixosModules.disko
 | 
					          inputs.disko.nixosModules.disko
 | 
				
			||||||
        (
 | 
					          (
 | 
				
			||||||
          { config, ... }:
 | 
					            { config, ... }:
 | 
				
			||||||
          {
 | 
					            {
 | 
				
			||||||
            home-manager.useGlobalPkgs = true;
 | 
					              home-manager.useGlobalPkgs = true;
 | 
				
			||||||
            home-manager.useUserPackages = true;
 | 
					              home-manager.useUserPackages = true;
 | 
				
			||||||
            home-manager.users.lelgenio = {
 | 
					              home-manager.users.lelgenio = {
 | 
				
			||||||
              my = config.my;
 | 
					                my = config.my;
 | 
				
			||||||
              imports = [
 | 
					                imports = [
 | 
				
			||||||
                ./user/home.nix
 | 
					                  ./user/home.nix
 | 
				
			||||||
                inputs.sops-nix.homeManagerModules.sops
 | 
					                ];
 | 
				
			||||||
              ];
 | 
					              };
 | 
				
			||||||
            };
 | 
					              home-manager.backupFileExtension = "bkp";
 | 
				
			||||||
            home-manager.backupFileExtension = "bkp";
 | 
					              # Optionally, use home-manager.extraSpecialArgs to pass
 | 
				
			||||||
            # Optionally, use home-manager.extraSpecialArgs to pass
 | 
					              # arguments to home.nix
 | 
				
			||||||
            # arguments to home.nix
 | 
					              home-manager.extraSpecialArgs = {
 | 
				
			||||||
            home-manager.extraSpecialArgs = {
 | 
					                inherit inputs;
 | 
				
			||||||
              inherit inputs;
 | 
					              };
 | 
				
			||||||
            };
 | 
					            }
 | 
				
			||||||
          }
 | 
					          )
 | 
				
			||||||
        )
 | 
					        ]
 | 
				
			||||||
      ]
 | 
					        ++ lib.optional (desktop == "gnome") ./system/gnome.nix
 | 
				
			||||||
      ++ lib.optional (desktop == "gnome") ./system/gnome.nix
 | 
					        ++ lib.optional (desktop == "kde") ./system/kde.nix;
 | 
				
			||||||
      ++ lib.optional (desktop == "kde") ./system/kde.nix;
 | 
					 | 
				
			||||||
    in
 | 
					    in
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      checks."${system}" = {
 | 
					      checks."${system}" = {
 | 
				
			||||||
| 
						 | 
					@ -155,30 +150,28 @@
 | 
				
			||||||
          modules = [
 | 
					          modules = [
 | 
				
			||||||
            ./hosts/monolith
 | 
					            ./hosts/monolith
 | 
				
			||||||
            ./system/monolith-gitlab-runner.nix
 | 
					            ./system/monolith-gitlab-runner.nix
 | 
				
			||||||
 | 
					            ./system/monolith-bitbucket-runner.nix
 | 
				
			||||||
            ./system/monolith-forgejo-runner.nix
 | 
					            ./system/monolith-forgejo-runner.nix
 | 
				
			||||||
            ./system/nix-serve.nix
 | 
					            ./system/nix-serve.nix
 | 
				
			||||||
          ]
 | 
					          ] ++ common_modules;
 | 
				
			||||||
          ++ common_modules;
 | 
					 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        double-rainbow = lib.nixosSystem {
 | 
					        double-rainbow = lib.nixosSystem {
 | 
				
			||||||
          inherit system specialArgs;
 | 
					          inherit system specialArgs;
 | 
				
			||||||
          modules = [
 | 
					          modules = [
 | 
				
			||||||
            ./hosts/double-rainbow
 | 
					            ./hosts/double-rainbow.nix
 | 
				
			||||||
          ]
 | 
					          ] ++ common_modules;
 | 
				
			||||||
          ++ common_modules;
 | 
					 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        pixie = lib.nixosSystem {
 | 
					        pixie = lib.nixosSystem {
 | 
				
			||||||
          inherit system specialArgs;
 | 
					          inherit system specialArgs;
 | 
				
			||||||
          modules = [
 | 
					          modules =
 | 
				
			||||||
            ./hosts/pixie.nix
 | 
					            [ ./hosts/pixie.nix ]
 | 
				
			||||||
          ]
 | 
					            ++ common_modules
 | 
				
			||||||
          ++ common_modules
 | 
					            ++ [
 | 
				
			||||||
          ++ [
 | 
					              {
 | 
				
			||||||
            {
 | 
					                packages.media-packages.enable = lib.mkOverride 0 false;
 | 
				
			||||||
              packages.media-packages.enable = lib.mkOverride 0 false;
 | 
					                services.flatpak.enable = lib.mkOverride 0 false;
 | 
				
			||||||
              services.flatpak.enable = lib.mkOverride 0 false;
 | 
					              }
 | 
				
			||||||
            }
 | 
					            ];
 | 
				
			||||||
          ];
 | 
					 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        phantom = lib.nixosSystem {
 | 
					        phantom = lib.nixosSystem {
 | 
				
			||||||
          inherit system specialArgs;
 | 
					          inherit system specialArgs;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,10 +17,7 @@ let
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  imports = [
 | 
					  imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
 | 
				
			||||||
    (modulesPath + "/installer/scan/not-detected.nix")
 | 
					 | 
				
			||||||
    ./gitlab-runner.nix
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  my.nix-ld.enable = true;
 | 
					  my.nix-ld.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,36 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}:
 | 
					 | 
				
			||||||
let
 | 
					 | 
				
			||||||
  inherit (pkgs.callPackage ../../system/gitlab-runner.nix { }) mkNixRunnerFull;
 | 
					 | 
				
			||||||
in
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  boot.kernel.sysctl."net.ipv4.ip_forward" = true;
 | 
					 | 
				
			||||||
  virtualisation.docker.enable = true;
 | 
					 | 
				
			||||||
  services.gitlab-runner = {
 | 
					 | 
				
			||||||
    enable = true;
 | 
					 | 
				
			||||||
    settings.concurrent = 4;
 | 
					 | 
				
			||||||
    services = {
 | 
					 | 
				
			||||||
      wopus-gitlab-nix = mkNixRunnerFull {
 | 
					 | 
				
			||||||
        authenticationTokenConfigFile = config.sops.secrets."gitlab-runners/wopus-gitlab-nix".path;
 | 
					 | 
				
			||||||
        nixCacheSshPrivateKeyPath = config.sops.secrets."gitlab-runners/wopus-ssh-nix-cache-pk".path;
 | 
					 | 
				
			||||||
        nixCacheSshPublicKeyPath = config.sops.secrets."gitlab-runners/wopus-ssh-nix-cache-pub".path;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
  systemd.services.gitlab-runner.serviceConfig.Nice = 10;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sops.secrets = {
 | 
					 | 
				
			||||||
    "gitlab-runners/wopus-gitlab-nix" = {
 | 
					 | 
				
			||||||
      sopsFile = ../../secrets/double-rainbow/default.yaml;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    "gitlab-runners/wopus-ssh-nix-cache-pk" = {
 | 
					 | 
				
			||||||
      sopsFile = ../../secrets/double-rainbow/default.yaml;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    "gitlab-runners/wopus-ssh-nix-cache-pub" = {
 | 
					 | 
				
			||||||
      sopsFile = ../../secrets/double-rainbow/default.yaml;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -27,13 +27,6 @@ in
 | 
				
			||||||
    wantedBy = [ "multi-user.target" ];
 | 
					    wantedBy = [ "multi-user.target" ];
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  hardware.amdgpu = {
 | 
					 | 
				
			||||||
    overdrive = {
 | 
					 | 
				
			||||||
      enable = true;
 | 
					 | 
				
			||||||
      ppfeaturemask = "0xffffffff";
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  hardware.graphics.enable32Bit = true;
 | 
					  hardware.graphics.enable32Bit = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  hardware.graphics.extraPackages = with pkgs; [
 | 
					  hardware.graphics.extraPackages = with pkgs; [
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -44,8 +44,6 @@ in
 | 
				
			||||||
  my.gaming.enable = true;
 | 
					  my.gaming.enable = true;
 | 
				
			||||||
  my.nix-ld.enable = true;
 | 
					  my.nix-ld.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  boot.kernelPackages = pkgs.linuxPackages_latest;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  boot.extraModulePackages = with config.boot.kernelPackages; [ zenpower ];
 | 
					  boot.extraModulePackages = with config.boot.kernelPackages; [ zenpower ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  boot.initrd.kernelModules = [ "amdgpu" ];
 | 
					  boot.initrd.kernelModules = [ "amdgpu" ];
 | 
				
			||||||
| 
						 | 
					@ -96,8 +94,7 @@ in
 | 
				
			||||||
    options = [
 | 
					    options = [
 | 
				
			||||||
      "subvol=@games"
 | 
					      "subvol=@games"
 | 
				
			||||||
      "nofail"
 | 
					      "nofail"
 | 
				
			||||||
    ]
 | 
					    ] ++ btrfs_options;
 | 
				
			||||||
    ++ btrfs_options;
 | 
					 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  fileSystems."/home/lelgenio/Downloads/Torrents" = {
 | 
					  fileSystems."/home/lelgenio/Downloads/Torrents" = {
 | 
				
			||||||
    device = "/dev/disk/by-label/BTRFS_DATA";
 | 
					    device = "/dev/disk/by-label/BTRFS_DATA";
 | 
				
			||||||
| 
						 | 
					@ -105,8 +102,7 @@ in
 | 
				
			||||||
    options = [
 | 
					    options = [
 | 
				
			||||||
      "subvol=@torrents"
 | 
					      "subvol=@torrents"
 | 
				
			||||||
      "nofail"
 | 
					      "nofail"
 | 
				
			||||||
    ]
 | 
					    ] ++ btrfs_options;
 | 
				
			||||||
    ++ btrfs_options;
 | 
					 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  fileSystems."/home/lelgenio/Música" = {
 | 
					  fileSystems."/home/lelgenio/Música" = {
 | 
				
			||||||
    device = "/dev/disk/by-label/BTRFS_DATA";
 | 
					    device = "/dev/disk/by-label/BTRFS_DATA";
 | 
				
			||||||
| 
						 | 
					@ -114,8 +110,7 @@ in
 | 
				
			||||||
    options = [
 | 
					    options = [
 | 
				
			||||||
      "subvol=@music"
 | 
					      "subvol=@music"
 | 
				
			||||||
      "nofail"
 | 
					      "nofail"
 | 
				
			||||||
    ]
 | 
					    ] ++ btrfs_options;
 | 
				
			||||||
    ++ btrfs_options;
 | 
					 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  fileSystems."/home/lelgenio/.local/mount/data" = {
 | 
					  fileSystems."/home/lelgenio/.local/mount/data" = {
 | 
				
			||||||
    device = "/dev/disk/by-label/BTRFS_DATA";
 | 
					    device = "/dev/disk/by-label/BTRFS_DATA";
 | 
				
			||||||
| 
						 | 
					@ -123,8 +118,7 @@ in
 | 
				
			||||||
    options = [
 | 
					    options = [
 | 
				
			||||||
      "subvol=@data"
 | 
					      "subvol=@data"
 | 
				
			||||||
      "nofail"
 | 
					      "nofail"
 | 
				
			||||||
    ]
 | 
					    ] ++ btrfs_options;
 | 
				
			||||||
    ++ btrfs_options;
 | 
					 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  fileSystems."/home/lelgenio/.local/mount/old" = {
 | 
					  fileSystems."/home/lelgenio/.local/mount/old" = {
 | 
				
			||||||
    device = "/dev/disk/by-label/BTRFS_ROOT";
 | 
					    device = "/dev/disk/by-label/BTRFS_ROOT";
 | 
				
			||||||
| 
						 | 
					@ -150,7 +144,7 @@ in
 | 
				
			||||||
    ACTION=="add" SUBSYSTEM=="usb" ATTR{idVendor}=="046d" ATTR{idProduct}=="c547" ATTR{power/wakeup}="disabled"
 | 
					    ACTION=="add" SUBSYSTEM=="usb" ATTR{idVendor}=="046d" ATTR{idProduct}=="c547" ATTR{power/wakeup}="disabled"
 | 
				
			||||||
    # Force all disks to use mq-deadline scheduler
 | 
					    # Force all disks to use mq-deadline scheduler
 | 
				
			||||||
    # For some reason "noop" is used by default which is kinda bad when io is saturated
 | 
					    # For some reason "noop" is used by default which is kinda bad when io is saturated
 | 
				
			||||||
    ACTION=="add|change", KERNEL=="sd[a-z]*[0-9]*|mmcblk[0-9]*p[0-9]*|nvme[0-9]*n[0-9]*p[0-9]*", ATTR{../queue/scheduler}="kyber"
 | 
					    ACTION=="add|change", KERNEL=="sd[a-z]*[0-9]*|mmcblk[0-9]*p[0-9]*|nvme[0-9]*n[0-9]*p[0-9]*", ATTR{../queue/scheduler}="mq-deadline"
 | 
				
			||||||
  '';
 | 
					  '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  boot.tmp = {
 | 
					  boot.tmp = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,7 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  services.factorio = {
 | 
					  services.factorio = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    package = pkgs.my-factorio-headless;
 | 
					    package = pkgs.factorio-headless; # I override this in ./pkgs
 | 
				
			||||||
    public = true;
 | 
					    public = true;
 | 
				
			||||||
    lan = true;
 | 
					    lan = true;
 | 
				
			||||||
    openFirewall = true;
 | 
					    openFirewall = true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -53,7 +53,7 @@
 | 
				
			||||||
  # Set your time zone.
 | 
					  # Set your time zone.
 | 
				
			||||||
  time.timeZone = "America/Sao_Paulo";
 | 
					  time.timeZone = "America/Sao_Paulo";
 | 
				
			||||||
  # Select internationalisation properties.
 | 
					  # Select internationalisation properties.
 | 
				
			||||||
  i18n.defaultLocale = "pt_BR.UTF-8";
 | 
					  i18n.defaultLocale = "pt_BR.utf8";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  boot.kernel.sysctl."fs.inotify.max_user_watches" = 1048576;
 | 
					  boot.kernel.sysctl."fs.inotify.max_user_watches" = 1048576;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,8 +36,6 @@
 | 
				
			||||||
        hashedPassword = "$2b$05$DcA9xMdvHqqQMZw2.zybI.vfKsQAJtaQ/JB.t9AHu6psstWq97m2C";
 | 
					        hashedPassword = "$2b$05$DcA9xMdvHqqQMZw2.zybI.vfKsQAJtaQ/JB.t9AHu6psstWq97m2C";
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					 | 
				
			||||||
    enableManageSieve = true;
 | 
					 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Prefer ipv4 and use main ipv6 to avoid reverse DNS issues
 | 
					  # Prefer ipv4 and use main ipv6 to avoid reverse DNS issues
 | 
				
			||||||
| 
						 | 
					@ -54,7 +52,7 @@
 | 
				
			||||||
      $config['smtp_host'] = "tls://${config.mailserver.fqdn}:587";
 | 
					      $config['smtp_host'] = "tls://${config.mailserver.fqdn}:587";
 | 
				
			||||||
      $config['smtp_user'] = "%u";
 | 
					      $config['smtp_user'] = "%u";
 | 
				
			||||||
      $config['smtp_pass'] = "%p";
 | 
					      $config['smtp_pass'] = "%p";
 | 
				
			||||||
      $config['plugins'] = [ "carddav", "archive", "managesieve" ];
 | 
					      $config['plugins'] = [ "carddav", "archive" ];
 | 
				
			||||||
    '';
 | 
					    '';
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  inputs,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -10,7 +11,6 @@
 | 
				
			||||||
    hostName = "cloud.lelgenio.com";
 | 
					    hostName = "cloud.lelgenio.com";
 | 
				
			||||||
    https = true;
 | 
					    https = true;
 | 
				
			||||||
    config = {
 | 
					    config = {
 | 
				
			||||||
      dbtype = "sqlite"; # TODO: move to single postgres db
 | 
					 | 
				
			||||||
      adminpassFile = config.age.secrets.phantom-nextcloud.path;
 | 
					      adminpassFile = config.age.secrets.phantom-nextcloud.path;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,6 +28,14 @@ rec {
 | 
				
			||||||
          ];
 | 
					          ];
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
 | 
					      nerdfonts_fira_hack = (
 | 
				
			||||||
 | 
					        final.nerdfonts.override {
 | 
				
			||||||
 | 
					          fonts = [
 | 
				
			||||||
 | 
					            "FiraCode"
 | 
				
			||||||
 | 
					            "Hack"
 | 
				
			||||||
 | 
					          ];
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  );
 | 
					  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -35,8 +43,6 @@ rec {
 | 
				
			||||||
    final: prev:
 | 
					    final: prev:
 | 
				
			||||||
    packages
 | 
					    packages
 | 
				
			||||||
    // {
 | 
					    // {
 | 
				
			||||||
      lsfg-vk = inputs.lsfg-vk-flake.packages.${prev.system}.lsfg-vk;
 | 
					 | 
				
			||||||
      lsfg-vk-ui = inputs.lsfg-vk-flake.packages.${prev.system}.lsfg-vk-ui;
 | 
					 | 
				
			||||||
      dhist = inputs.dhist.packages.${prev.system}.dhist;
 | 
					      dhist = inputs.dhist.packages.${prev.system}.dhist;
 | 
				
			||||||
      demoji = inputs.demoji.packages.${prev.system}.default;
 | 
					      demoji = inputs.demoji.packages.${prev.system}.default;
 | 
				
			||||||
      tlauncher = inputs.tlauncher.packages.${prev.system}.tlauncher;
 | 
					      tlauncher = inputs.tlauncher.packages.${prev.system}.tlauncher;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,51 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  stdenv,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  fetchFromGitHub,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  pkgconf,
 | 
					 | 
				
			||||||
  pkg-config,
 | 
					 | 
				
			||||||
  wayland-scanner,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  systemd,
 | 
					 | 
				
			||||||
  libbsd,
 | 
					 | 
				
			||||||
  wayland,
 | 
					 | 
				
			||||||
  wayland-protocols,
 | 
					 | 
				
			||||||
}:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
stdenv.mkDerivation {
 | 
					 | 
				
			||||||
  pname = "caffeinated";
 | 
					 | 
				
			||||||
  version = "2022-12-08";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  src = fetchFromGitHub {
 | 
					 | 
				
			||||||
    owner = "electrickite";
 | 
					 | 
				
			||||||
    repo = "caffeinated";
 | 
					 | 
				
			||||||
    rev = "5a8eff054bdce225a19cf3ab785dc1bbc9bd3265";
 | 
					 | 
				
			||||||
    hash = "sha256-X1w/YWljcwb5ZH8Nt92CDhPU/yqBLH3lBS7yVJUeyzY=";
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  nativeBuildInputs = [
 | 
					 | 
				
			||||||
    pkgconf
 | 
					 | 
				
			||||||
    pkg-config
 | 
					 | 
				
			||||||
    wayland-scanner
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  buildInputs = [
 | 
					 | 
				
			||||||
    systemd
 | 
					 | 
				
			||||||
    libbsd
 | 
					 | 
				
			||||||
    wayland
 | 
					 | 
				
			||||||
    wayland-protocols
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  makeFlags = [ "WAYLAND=1" ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  installFlags = [ "PREFIX=$(out)" ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  meta = {
 | 
					 | 
				
			||||||
    description = "Utility to prevent the system from entering an idle state";
 | 
					 | 
				
			||||||
    homepage = "https://github.com/electrickite/caffeinated";
 | 
					 | 
				
			||||||
    license = lib.licenses.mit;
 | 
					 | 
				
			||||||
    platforms = lib.platforms.linux;
 | 
					 | 
				
			||||||
    maintainers = with lib.maintainers; [ lelgenio ];
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -3,13 +3,12 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{ pkgs, inputs }:
 | 
					{ pkgs, inputs }:
 | 
				
			||||||
rec {
 | 
					rec {
 | 
				
			||||||
  caffeinated = pkgs.callPackage ./caffeinated { };
 | 
					 | 
				
			||||||
  cargo-checkmate = pkgs.callPackage ./cargo-checkmate.nix { };
 | 
					  cargo-checkmate = pkgs.callPackage ./cargo-checkmate.nix { };
 | 
				
			||||||
  lipsum = pkgs.callPackage ./lipsum.nix { };
 | 
					  lipsum = pkgs.callPackage ./lipsum.nix { };
 | 
				
			||||||
  emmet-cli = pkgs.callPackage ./emmet-cli.nix { };
 | 
					  emmet-cli = pkgs.callPackage ./emmet-cli.nix { };
 | 
				
			||||||
  material-wifi-icons = pkgs.callPackage ./material-wifi-icons.nix { };
 | 
					  material-wifi-icons = pkgs.callPackage ./material-wifi-icons.nix { };
 | 
				
			||||||
  gnome-pass-search-provider = pkgs.callPackage ./gnome-pass-search-provider.nix { };
 | 
					  gnome-pass-search-provider = pkgs.callPackage ./gnome-pass-search-provider.nix { };
 | 
				
			||||||
  my-factorio-headless = pkgs.callPackage ./factorio-headless {
 | 
					  factorio-headless = pkgs.callPackage ./factorio-headless {
 | 
				
			||||||
    inherit (pkgs.unstable) factorio-headless;
 | 
					    inherit (pkgs.unstable) factorio-headless;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,10 +1,10 @@
 | 
				
			||||||
{ factorio-headless, pkgs }:
 | 
					{ factorio-headless, pkgs }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
factorio-headless.overrideAttrs (_: rec {
 | 
					factorio-headless.overrideAttrs (_: rec {
 | 
				
			||||||
  version = "2.0.66";
 | 
					  version = "2.0.39";
 | 
				
			||||||
  src = pkgs.fetchurl {
 | 
					  src = pkgs.fetchurl {
 | 
				
			||||||
    name = "factorio_headless_x64-${version}.tar.xz";
 | 
					    name = "factorio_headless_x64-${version}.tar.xz";
 | 
				
			||||||
    url = "https://www.factorio.com/get-download/${version}/headless/linux64";
 | 
					    url = "https://www.factorio.com/get-download/${version}/headless/linux64";
 | 
				
			||||||
    hash = "sha256-8bOXbqzE4jOADTmdkABsNW+jZvXWQ0HFBMlcDLoyHAY=";
 | 
					    hash = "sha256-D4o9DkN5e1/02LhdfDNLCVo/B9mqf4Cx6H+Uk5qT3zQ=";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										11
									
								
								scripts/_sway_idle_toggle
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										11
									
								
								scripts/_sway_idle_toggle
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,11 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					swayidlectl() {
 | 
				
			||||||
 | 
					  systemctl --user $1 swayidle.service
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if swayidlectl status > /dev/null; then
 | 
				
			||||||
 | 
					    swayidlectl stop
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    swayidlectl start
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
| 
						 | 
					@ -2,144 +2,85 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set -e
 | 
					set -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEVICE="$1" # eg: /sys/class/drm/card1/device
 | 
				
			||||||
 | 
					HWMON=$(echo "$DEVICE"/hwmon/hwmon*)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exit() {
 | 
				
			||||||
 | 
					    echo "Setting controll to auto" >&2
 | 
				
			||||||
 | 
					    echo 2 > "$HWMON/pwm1_enable"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					trap exit EXIT INT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bail() {
 | 
					bail() {
 | 
				
			||||||
    echo "Error: $@" >&2
 | 
					    echo "Error: $@" >&2
 | 
				
			||||||
    echo "Exiting..." >&2
 | 
					    echo "Exiting..." >&2
 | 
				
			||||||
    exit 1
 | 
					    exit 1
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
map_range() {
 | 
					if ! [ -d "$HWMON" ]; then
 | 
				
			||||||
    VALUE="$1"
 | 
					    bail "Invalid HWMON"
 | 
				
			||||||
    MIN_INPUT="$2"
 | 
					fi
 | 
				
			||||||
    MAX_INPUT="$3"
 | 
					 | 
				
			||||||
    INPUT_RANGE=$(( $MAX_INPUT - $MIN_INPUT ))
 | 
					 | 
				
			||||||
    MIN_OUTPUT="$4"
 | 
					 | 
				
			||||||
    MAX_OUTPUT="$5"
 | 
					 | 
				
			||||||
    OUTPUT_RANGE=$(( $MAX_OUTPUT - $MIN_OUTPUT ))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    echo $(( ($VALUE - $MIN_INPUT) * $OUTPUT_RANGE / $INPUT_RANGE  + $MIN_OUTPUT ))
 | 
					TEMP_INPUT="$HWMON/temp2_input"
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
clamp() {
 | 
					if ! [ -f $TEMP_INPUT ]; then
 | 
				
			||||||
    VALUE="$1"
 | 
					    bail "Invalid TEMP_INPUT"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    MIN="$2"
 | 
					TEMP_MIN="$2"
 | 
				
			||||||
    MAX="$3"
 | 
					TEMP_MAX="$3"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    VALUE=$VALUE
 | 
					if [ -z "$TEMP_MIN" ];then
 | 
				
			||||||
    if [ "$VALUE" -gt $MAX ]; then
 | 
					  bail "No minimum temperature provided"
 | 
				
			||||||
        VALUE=$MAX
 | 
					fi
 | 
				
			||||||
    elif [ "$VALUE" -lt $MIN ]; then
 | 
					 | 
				
			||||||
        VALUE=$MIN
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    echo $VALUE
 | 
					if [ -z "$TEMP_MAX" ];then
 | 
				
			||||||
}
 | 
					  bail "No maximum temperature provided"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
cleanup() {
 | 
					PWM_MIN_PCT="$4"
 | 
				
			||||||
    echo "Setting controll to auto" >&2
 | 
					PWM_MAX_PCT="$5"
 | 
				
			||||||
    if test -f "$HWMON/pwm1_enable"; then
 | 
					 | 
				
			||||||
        echo 2 > "$HWMON/pwm1_enable"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
trap cleanup EXIT INT
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
usage() {
 | 
					if [ -z "$PWM_MIN_PCT" ];then
 | 
				
			||||||
    echo "Usage: $0 <device> <min-temp> <max-temp> <min-fan> <max-fan>" >&2
 | 
					  bail "No minimum fan speed % not provided"
 | 
				
			||||||
    echo "Example: $0 /sys/class/drm/card1/device 60 100 10 80" >&2
 | 
					fi
 | 
				
			||||||
    exit 1
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
parse_cli() {
 | 
					if [ -z "$PWM_MAX_PCT" ];then
 | 
				
			||||||
    if test -n "$AMDGPU_FAN_CRONTROL_DEBUG"; then
 | 
					  bail "No maximum fan speed % not provided"
 | 
				
			||||||
        echo parse_cli "$@" >&2
 | 
					fi
 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    DEVICE="$1" # eg: /sys/class/drm/card1/device
 | 
					PWM_MIN="$(( $PWM_MIN_PCT * 255 / 100))"
 | 
				
			||||||
    HWMON=$(echo "$DEVICE"/hwmon/hwmon*)
 | 
					PWM_MAX="$(( $PWM_MAX_PCT * 255 / 100))"
 | 
				
			||||||
    TEMP_INPUT="$HWMON/temp2_input"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    TEMP_MIN="$2"
 | 
					echo "Running..." >&2
 | 
				
			||||||
    TEMP_MAX="$3"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    PWM_MIN_PCT="$4"
 | 
					echo "TEMP_MIN=$TEMP_MIN°C"
 | 
				
			||||||
    PWM_MAX_PCT="$5"
 | 
					echo "TEMP_MAX=$TEMP_MAX°C"
 | 
				
			||||||
}
 | 
					echo "FAN_MIN=$PWM_MIN_PCT%"
 | 
				
			||||||
 | 
					echo "FAN_MAX=$PWM_MAX_PCT%"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
validate_variables() {
 | 
					echo 1 > "$HWMON/pwm1_enable"
 | 
				
			||||||
    if ! [ -d "$HWMON" ]; then
 | 
					 | 
				
			||||||
        bail "Invalid drm-device: '$HWMON' is not a directory"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ! [ -f "$TEMP_INPUT" ]; then
 | 
					PREV=0
 | 
				
			||||||
        bail "Error: Could not find hotspot temperature at '$TEMP_INPUT'"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if [ -z "$TEMP_MIN" -o -z "$TEMP_MAX" -o -z "$PWM_MIN_PCT" -o -z "$PWM_MAX_PCT" ];then
 | 
					while true; do
 | 
				
			||||||
        usage
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
setup() {
 | 
					 | 
				
			||||||
    PWM_MIN=$(map_range $PWM_MIN_PCT 0 100 0 255)
 | 
					 | 
				
			||||||
    PWM_MAX=$(map_range $PWM_MAX_PCT 0 100 0 255)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    echo "Running..." >&2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if test -n "$AMDGPU_FAN_CRONTROL_DEBUG"; then
 | 
					 | 
				
			||||||
        echo "TEMP_MIN=$TEMP_MIN°C" >&2
 | 
					 | 
				
			||||||
        echo "TEMP_MAX=$TEMP_MAX°C" >&2
 | 
					 | 
				
			||||||
        echo "FAN_MIN=$PWM_MIN_PCT% (PWM=$PWM_MIN)" >&2
 | 
					 | 
				
			||||||
        echo "FAN_MAX=$PWM_MAX_PCT% (PWM=$PWM_MAX)" >&2
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Set fan control mode to manual, this will be reverted in the cleanup trap
 | 
					 | 
				
			||||||
    echo 1 > "$HWMON/pwm1_enable"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    PREV_PWM=0
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
main_loop() {
 | 
					 | 
				
			||||||
    TEMPERATURE_RAW=$(cat "$TEMP_INPUT")
 | 
					    TEMPERATURE_RAW=$(cat "$TEMP_INPUT")
 | 
				
			||||||
    TEMPERATURE="$(( $TEMPERATURE_RAW / 1000 ))" # 60_000 = 60°C
 | 
					    TEMPERATURE="$(( $TEMPERATURE_RAW / 1000 ))"
 | 
				
			||||||
 | 
					    # Remap from a number between 60_000..90_000 to 0..255
 | 
				
			||||||
 | 
					    PWM=$(( ($TEMPERATURE - $TEMP_MIN) * $PWM_MAX / ($TEMP_MAX - $TEMP_MIN) ))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Calculate the fan speed we would want to reach given infinite time
 | 
					    if [ "$PWM" -gt $PWM_MAX ]; then
 | 
				
			||||||
    TARGET_PWM=$(map_range $TEMPERATURE $TEMP_MIN $TEMP_MAX $PWM_MIN $PWM_MAX)
 | 
					        PWM=$PWM_MAX
 | 
				
			||||||
 | 
					    elif [ "$PWM" -lt $PWM_MIN ]; then
 | 
				
			||||||
    # Calculate an appropriate amount to "walk" in the direction of target fan speed
 | 
					        PWM=$PWM_MIN
 | 
				
			||||||
    DIFFERENCE=$(( $TARGET_PWM - $PREV_PWM ))
 | 
					 | 
				
			||||||
    ADJUSTMENT=$(( $DIFFERENCE * 20 / 100 ))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    NEXT_PWM=$(( $PREV_PWM + $ADJUSTMENT ))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    NEXT_PWM=$(clamp $NEXT_PWM $PWM_MIN $PWM_MAX)
 | 
					 | 
				
			||||||
    NEXT_PWM_PCT=$(map_range $NEXT_PWM 0 255 0 100 )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if test -n "$AMDGPU_FAN_CRONTROL_DEBUG"; then
 | 
					 | 
				
			||||||
        for var in \
 | 
					 | 
				
			||||||
            "Temperature=$TEMPERATURE°C" \
 | 
					 | 
				
			||||||
            "Fan speed=$NEXT_PWM_PCT%" \
 | 
					 | 
				
			||||||
        ; do
 | 
					 | 
				
			||||||
            echo -en "$var\t"
 | 
					 | 
				
			||||||
        done
 | 
					 | 
				
			||||||
        echo
 | 
					 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Apply the new fan speed
 | 
					    AVG="$(( ($PWM * 20 + $PREV * 80) / 100 ))"
 | 
				
			||||||
    echo "$NEXT_PWM" > "$HWMON/pwm1"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Wait for next iteratino
 | 
					    echo "$AVG"
 | 
				
			||||||
    PREV_PWM="$NEXT_PWM"
 | 
					
 | 
				
			||||||
 | 
					    echo "$AVG" > "$HWMON/pwm1"
 | 
				
			||||||
 | 
					    PREV="$AVG"
 | 
				
			||||||
    sleep .1s
 | 
					    sleep .1s
 | 
				
			||||||
}
 | 
					done
 | 
				
			||||||
 | 
					 | 
				
			||||||
main() {
 | 
					 | 
				
			||||||
    parse_cli "$@"
 | 
					 | 
				
			||||||
    validate_variables
 | 
					 | 
				
			||||||
    setup
 | 
					 | 
				
			||||||
    while true; do
 | 
					 | 
				
			||||||
        main_loop
 | 
					 | 
				
			||||||
    done
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
main "$@"
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,17 +0,0 @@
 | 
				
			||||||
#!/bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set -euo pipefail
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ "$#" = 0 ]; then
 | 
					 | 
				
			||||||
    echo "Usage: $0 [passwords...] | $0 - < passwords.txt" >&2
 | 
					 | 
				
			||||||
    exit 1
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ "$1" = '-' ]; then
 | 
					 | 
				
			||||||
    xargs -x -n1 -d'\n' htpasswd -bnBC 10 "" | tr -d ':' | sed '/^$/d'
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
    for pass in "$@"; do
 | 
					 | 
				
			||||||
        htpasswd -bnBC 10 "" "$pass" | tr -d ':' | sed '/^$/d'
 | 
					 | 
				
			||||||
    done
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -8,10 +8,13 @@
 | 
				
			||||||
if test "$argv[1]" = "run"
 | 
					if test "$argv[1]" = "run"
 | 
				
			||||||
    test -n "$argv[2]" && set t "$argv[2]" || set t "terminal"
 | 
					    test -n "$argv[2]" && set t "$argv[2]" || set t "terminal"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    test -n "$i3SOCK" && set wrapper 'i3-msg exec --'
 | 
				
			||||||
 | 
					    test -n "$SWAYSOCK" && set wrapper 'swaymsg exec --'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    exec j4-dmenu-desktop \
 | 
					    exec j4-dmenu-desktop \
 | 
				
			||||||
        --dmenu="bmenu start -p Iniciar:" \
 | 
					        --dmenu="bmenu start -p Iniciar:" \
 | 
				
			||||||
        --term "$t" \
 | 
					        --term "$t" \
 | 
				
			||||||
        --i3-ipc \
 | 
					        --wrapper="$wrapper" \
 | 
				
			||||||
        --no-generic
 | 
					        --no-generic
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,20 +10,29 @@ if test -z "$CONTROLLER"; then
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CAPACITY=$(cat "$CONTROLLER/capacity")
 | 
					CAPACITY=$(cat "$CONTROLLER/capacity")
 | 
				
			||||||
STATUS=$(cat "$CONTROLLER/status")
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo -n ' '
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if test "$STATUS" = "Charging"; then
 | 
					 | 
				
			||||||
    echo -n ""
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
    print-battery-icon "$CAPACITY"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add terminating newline
 | 
					 | 
				
			||||||
echo
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Tooltip
 | 
					 | 
				
			||||||
echo -n ''
 | 
					echo -n ''
 | 
				
			||||||
print-battery-icon "$CAPACITY"
 | 
					
 | 
				
			||||||
echo " $CAPACITY%"
 | 
					if test "$CAPACITY" -ge 90; then
 | 
				
			||||||
 | 
					    echo ''
 | 
				
			||||||
 | 
					elif test "$CAPACITY" -ge 90; then
 | 
				
			||||||
 | 
					    echo ''
 | 
				
			||||||
 | 
					elif test "$CAPACITY" -ge 80; then
 | 
				
			||||||
 | 
					    echo ''
 | 
				
			||||||
 | 
					elif test "$CAPACITY" -ge 70; then
 | 
				
			||||||
 | 
					    echo ''
 | 
				
			||||||
 | 
					elif test "$CAPACITY" -ge 60; then
 | 
				
			||||||
 | 
					    echo ''
 | 
				
			||||||
 | 
					elif test "$CAPACITY" -ge 50; then
 | 
				
			||||||
 | 
					    echo ''
 | 
				
			||||||
 | 
					elif test "$CAPACITY" -ge 40; then
 | 
				
			||||||
 | 
					    echo ''
 | 
				
			||||||
 | 
					elif test "$CAPACITY" -ge 30; then
 | 
				
			||||||
 | 
					    echo ''
 | 
				
			||||||
 | 
					elif test "$CAPACITY" -ge 20; then
 | 
				
			||||||
 | 
					    echo ''
 | 
				
			||||||
 | 
					elif test "$CAPACITY" -ge 10; then
 | 
				
			||||||
 | 
					    echo ''
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    echo ''
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -44,6 +44,7 @@
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
    _diffr = [ diffr ];
 | 
					    _diffr = [ diffr ];
 | 
				
			||||||
    _thunar-terminal = [ terminal ];
 | 
					    _thunar-terminal = [ terminal ];
 | 
				
			||||||
 | 
					    _sway_idle_toggle = [ swayidle ];
 | 
				
			||||||
    kak-pager = [
 | 
					    kak-pager = [
 | 
				
			||||||
      fish
 | 
					      fish
 | 
				
			||||||
      _diffr
 | 
					      _diffr
 | 
				
			||||||
| 
						 | 
					@ -54,7 +55,6 @@
 | 
				
			||||||
      _diffr
 | 
					      _diffr
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
    helix-man-pager = [ helix-pager ];
 | 
					    helix-man-pager = [ helix-pager ];
 | 
				
			||||||
    bcrypt = [ apacheHttpd ];
 | 
					 | 
				
			||||||
    musmenu = [
 | 
					    musmenu = [
 | 
				
			||||||
      mpc-cli
 | 
					      mpc-cli
 | 
				
			||||||
      wdmenu
 | 
					      wdmenu
 | 
				
			||||||
| 
						 | 
					@ -74,7 +74,6 @@
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
    wpass = [
 | 
					    wpass = [
 | 
				
			||||||
      wdmenu
 | 
					      wdmenu
 | 
				
			||||||
      ripgrep
 | 
					 | 
				
			||||||
      fd
 | 
					      fd
 | 
				
			||||||
      myPass
 | 
					      myPass
 | 
				
			||||||
      sd
 | 
					      sd
 | 
				
			||||||
| 
						 | 
					@ -138,13 +137,7 @@
 | 
				
			||||||
      libinput
 | 
					      libinput
 | 
				
			||||||
      libratbag
 | 
					      libratbag
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
    sway-sync-xkbmap = [
 | 
					    controller-battery = [ ];
 | 
				
			||||||
      xorg.setxkbmap
 | 
					 | 
				
			||||||
      jq
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
    print-battery-icon = [ ];
 | 
					 | 
				
			||||||
    controller-battery = [ print-battery-icon ];
 | 
					 | 
				
			||||||
    mouse-battery = [ print-battery-icon ];
 | 
					 | 
				
			||||||
    _docker-block-external-connections = [
 | 
					    _docker-block-external-connections = [
 | 
				
			||||||
      iptables
 | 
					      iptables
 | 
				
			||||||
      gawk
 | 
					      gawk
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,19 +1,10 @@
 | 
				
			||||||
#!/bin/sh
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set -euo pipefail
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cleanup() {
 | 
					 | 
				
			||||||
    if test "$?" != 0; then
 | 
					 | 
				
			||||||
        notify-send "Failed to download"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
trap cleanup EXIT INT
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DIR=$(mktemp -d)
 | 
					DIR=$(mktemp -d)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
cd "$DIR"
 | 
					cd "$DIR"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
yt-dlp --cookies-from-browser firefox --merge-output-format mp4 "$(wl-paste)"
 | 
					yt-dlp --merge-output-format mp4 "$(wl-paste)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FILENAME="$(ls | head -n1)"
 | 
					FILENAME="$(ls | head -n1)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,39 +0,0 @@
 | 
				
			||||||
#!/bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set -e
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MODEL_NAME_FILE=$(rg --files-with-matches G502 /sys/class/power_supply/*/model_name | head -n1)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if test -z "$MODEL_NAME_FILE"; then
 | 
					 | 
				
			||||||
    echo
 | 
					 | 
				
			||||||
    exit 0
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MOUSE=$(dirname "$MODEL_NAME_FILE")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if test -z "$MOUSE"; then
 | 
					 | 
				
			||||||
    echo
 | 
					 | 
				
			||||||
    exit 0
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CAPACITY=$(cat "$MOUSE/capacity")
 | 
					 | 
				
			||||||
STATUS=$(cat "$MOUSE/status")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo -n '🖱️'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if test "$STATUS" = "Charging"; then
 | 
					 | 
				
			||||||
    echo -n ""
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
    print-battery-icon "$CAPACITY"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if test "$CAPACITY" -lt 50; then
 | 
					 | 
				
			||||||
    echo -n "$CAPACITY%"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Tooltip
 | 
					 | 
				
			||||||
echo -n '🖱️'
 | 
					 | 
				
			||||||
print-battery-icon "$CAPACITY"
 | 
					 | 
				
			||||||
echo " $CAPACITY%"
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,33 +0,0 @@
 | 
				
			||||||
#!/bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set -e
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if test $# -ne 1; then
 | 
					 | 
				
			||||||
    echo "Usage $0" >&2
 | 
					 | 
				
			||||||
    exit 1
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
CAPACITY="$1"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if test "$CAPACITY" -ge 90; then
 | 
					 | 
				
			||||||
    echo -n ''
 | 
					 | 
				
			||||||
elif test "$CAPACITY" -ge 90; then
 | 
					 | 
				
			||||||
    echo -n ''
 | 
					 | 
				
			||||||
elif test "$CAPACITY" -ge 80; then
 | 
					 | 
				
			||||||
    echo -n ''
 | 
					 | 
				
			||||||
elif test "$CAPACITY" -ge 70; then
 | 
					 | 
				
			||||||
    echo -n ''
 | 
					 | 
				
			||||||
elif test "$CAPACITY" -ge 60; then
 | 
					 | 
				
			||||||
    echo -n ''
 | 
					 | 
				
			||||||
elif test "$CAPACITY" -ge 50; then
 | 
					 | 
				
			||||||
    echo -n ''
 | 
					 | 
				
			||||||
elif test "$CAPACITY" -ge 40; then
 | 
					 | 
				
			||||||
    echo -n ''
 | 
					 | 
				
			||||||
elif test "$CAPACITY" -ge 30; then
 | 
					 | 
				
			||||||
    echo -n ''
 | 
					 | 
				
			||||||
elif test "$CAPACITY" -ge 20; then
 | 
					 | 
				
			||||||
    echo -n ''
 | 
					 | 
				
			||||||
elif test "$CAPACITY" -ge 10; then
 | 
					 | 
				
			||||||
    echo -n ''
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
    echo -n ''
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
| 
						 | 
					@ -46,13 +46,4 @@ case $1 in
 | 
				
			||||||
            $screenshot -o "$cur_output" - | $copy ||
 | 
					            $screenshot -o "$cur_output" - | $copy ||
 | 
				
			||||||
            $screenshot - | $copy
 | 
					            $screenshot - | $copy
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    edit)
 | 
					 | 
				
			||||||
        # Focused monitor to clipboard
 | 
					 | 
				
			||||||
        cur_output=$(swaymsg -t get_outputs |
 | 
					 | 
				
			||||||
            jq -r '.[] | select(.focused) | .name')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        test -n "$cur_output" &&
 | 
					 | 
				
			||||||
            $screenshot -o "$cur_output" - | satty --filename - --output-filename "$DESTFILE" ||
 | 
					 | 
				
			||||||
            $screenshot - | satty --filename - --output-filename "$DESTFILE"
 | 
					 | 
				
			||||||
        ;;
 | 
					 | 
				
			||||||
esac
 | 
					esac
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,22 +0,0 @@
 | 
				
			||||||
#!/bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set -euo pipefail
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LAST_LAYOUT=""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
while sleep 1s; do
 | 
					 | 
				
			||||||
    CURRENT_LAYOUT=$(swaymsg -t get_inputs | jq -r '.[]|.xkb_active_layout_name|select(.)' | head -n1)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if test "$LAST_LAYOUT" = "$CURRENT_LAYOUT"; then
 | 
					 | 
				
			||||||
        true
 | 
					 | 
				
			||||||
    elif test "$CURRENT_LAYOUT" = "English (Colemak)"; then
 | 
					 | 
				
			||||||
        echo "Setting layout to colemak"
 | 
					 | 
				
			||||||
        setxkbmap us colemak
 | 
					 | 
				
			||||||
    elif test "$CURRENT_LAYOUT" = "Portuguese (Brazil)"; then
 | 
					 | 
				
			||||||
        echo "Setting layout to br"
 | 
					 | 
				
			||||||
        setxkbmap br
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    LAST_LAYOUT="$CURRENT_LAYOUT"
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -29,8 +29,8 @@ main() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    test -n "$entry" || exit 0
 | 
					    test -n "$entry" || exit 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    username=`pass show "$entry" 2>/dev/null | rg -m1 '(login|user|email): (.*)' -r '$2'` || true
 | 
					    username=`pass show "$entry" 2>/dev/null | perl -ne 'print $2 if /^(login|user|email): (.*)/'`
 | 
				
			||||||
    password=`pass show "$entry" 2>/dev/null | head -n 1` || true
 | 
					    password=`pass show "$entry" 2>/dev/null | head -n 1`
 | 
				
			||||||
    otp=`pass otp "$entry" 2>/dev/null` || true
 | 
					    otp=`pass otp "$entry" 2>/dev/null` || true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    action="$(print_actions_for_entry | wdmenu -p Action)"
 | 
					    action="$(print_actions_for_entry | wdmenu -p Action)"
 | 
				
			||||||
| 
						 | 
					@ -50,10 +50,8 @@ main() {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
autotype(){
 | 
					autotype(){
 | 
				
			||||||
    if test -n "$username"; then
 | 
					    env wtype -s 100 "$username"
 | 
				
			||||||
        env wtype -s 100 "$username"
 | 
					    env wtype -s 100 -k tab
 | 
				
			||||||
        env wtype -s 100 -k tab
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    env wtype -s 100 "$password"
 | 
					    env wtype -s 100 "$password"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,53 +0,0 @@
 | 
				
			||||||
gitlab-runners:
 | 
					 | 
				
			||||||
    wopus-gitlab-nix: ENC[AES256_GCM,data:n/bm5W5Q/h7MxMZX7yz4qeUBpfZDrI7A7/PlnLncMto5V5itVTXRvfd3+D/d2r9PVuJSogfMgMAh0cwuvPspjlm9ToPxrmgGdYbnAkhnFeTHdCfcF1x2DG2JkHe54wUhcQa9QEJkWZ5jJM//2jU=,iv:63lrYCCBMSr5toulba7Rni+iun0Bl2vMFbIsTVvOWQs=,tag:Z1GHj91q09sOWCaLPIKJ4Q==,type:str]
 | 
					 | 
				
			||||||
    wopus-ssh-nix-cache-pk: ENC[AES256_GCM,data:+5I7INvMNfegjjC0xPNOSj+vFakXe6V4N/S5wvL64DOxfPXhSQAjVtdMslp/LlJXH4XWbkQ8ErLbySB3WMDMRDnDRY+6+UKXsP6MFpvEtho0lN+8ZeAGC25ehadYDSFTX43wz6cLRuoAqRQdhPKM96wcYif7nF40cStgaAQhkNemK7AenSA9LQ4J72dWovFuwfTZml8qH6W/O+YEqfOgZsyJ/LobcM1fiuN1S4NnCOJSWB2Ahsu0tiMOSRxKWeUS9+ewh+x1xnZL3y4vax5GgtS2KojtXq0U4qgNi4Gwnmef7HmH1tVgeMO2ykCsuCCZ9iJR0IOqTHU2l+U6hTzf5vehpgK5/tsthkXRsLUmVRnjUaQwaEq9JYltGpEdk6U0UnD+Mf0f5BsDw23lHgannLeduhrSFrPFj+BVodnPxjyYJTPXwXfbWrKIQ8s5kWfIq9x0VePsteIgEH4xLL0yFtyZzrYeCq9WF3j5xTvJsOlG0ehQzX22orrM4RzrFVmeLYOIc/V4bQeyIf1lWemr,iv:UNaUnlVayrzF7qpgIVi9gxPFGCzIP24jNUpO295JPog=,tag:a5OlD+AJH3u6y+Lo3lOQWw==,type:str]
 | 
					 | 
				
			||||||
    wopus-ssh-nix-cache-pub: ENC[AES256_GCM,data:aknblYwAAGaso/Vhr9f1RX64tA3uOh3qxc1dBI7DQmk4TUlQn/AYrKF7wanIhhydrasRulDEam3CBiiyeW/ejcXG07wKIUyZ94TOYfcyRd1yo+PGkmb1yycU6PdjaP5/zwUPAnjMhR2quW+8iwADaUMYKXIJkdQaqUW9a845vBKIxgNgBskWMGMzldb+aUnr2eCb,iv:MQdEUrNugzv+QL6f/MNUqh9M+nFVsWI4VHlMrgQOTEg=,tag:olNTQyCSOhv3sgSjuIXKBA==,type:str]
 | 
					 | 
				
			||||||
sops:
 | 
					 | 
				
			||||||
    age:
 | 
					 | 
				
			||||||
        - recipient: age1zrgu7w8059xydagm60phnffghvfe9h2ca58cx8qwagqpyfuvs9fqw79c8h
 | 
					 | 
				
			||||||
          enc: |
 | 
					 | 
				
			||||||
            -----BEGIN AGE ENCRYPTED FILE-----
 | 
					 | 
				
			||||||
            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0eTBFdVM5OFlQTi9JMmFw
 | 
					 | 
				
			||||||
            QWpIU2dSdDMzQTVJOWJCUU03QXR1QVZoeXc4CkljdHNKQ0tUczMrNys5eXNGMnVa
 | 
					 | 
				
			||||||
            K003QjdRaWY4RmNtaEw4cEsxSEJwZlEKLS0tIFZpbGUyaHh0RndkVlpQVlVucHJa
 | 
					 | 
				
			||||||
            TndIUUhsY2xSR3E1WlJXV3ZFN0lIMncKjjf1yt4XhfguzYoCNmHYSmetMDnoz4cr
 | 
					 | 
				
			||||||
            frbZdy4hl9w9EZO5JUeC/n7QMYTZLC2/Zk2PXRUvwyQglrGoUVK2Bg==
 | 
					 | 
				
			||||||
            -----END AGE ENCRYPTED FILE-----
 | 
					 | 
				
			||||||
        - recipient: age1ecyynwv93lfu7crjjp8l47defv07quzfzaktwurpep7jc9eha5pscg7lrw
 | 
					 | 
				
			||||||
          enc: |
 | 
					 | 
				
			||||||
            -----BEGIN AGE ENCRYPTED FILE-----
 | 
					 | 
				
			||||||
            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHbHd4L0NEZW55OWd3SWlv
 | 
					 | 
				
			||||||
            U3dEcDNKZUJid2VsZ1lQdy9NRnIyVDRPRm1VCnZDcCs0S1BLNjJLZTFpSHVpNVRj
 | 
					 | 
				
			||||||
            OFpMK0ZjWTJkcWJoUFk2YnBCK3JKcFUKLS0tIEtqRkF4Q0FobXhPVTF6eWN2d0Nx
 | 
					 | 
				
			||||||
            eVAwSi9LaVNEcHIvQnhhZmZLbHRPOUUK6A91L8YCpi/sM9FiXcJ1sLmW3U4KadYL
 | 
					 | 
				
			||||||
            uw07mobP1Rf0RUdAuSK+42ErFgmS+OTDze/mT/PXg6Dfk+vhTjbfGA==
 | 
					 | 
				
			||||||
            -----END AGE ENCRYPTED FILE-----
 | 
					 | 
				
			||||||
        - recipient: age1026d4c8nqyapcsy4jz57szt6zw3ejcgv3ecyvz0s89t7w7z964fqdqv52h
 | 
					 | 
				
			||||||
          enc: |
 | 
					 | 
				
			||||||
            -----BEGIN AGE ENCRYPTED FILE-----
 | 
					 | 
				
			||||||
            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEaUpLU1ZxQWNCNFNGeEpl
 | 
					 | 
				
			||||||
            dEpVbzBFbk1XaVoxMXIzMWFmTkZWS05GOFFvCmJGamVGK2pCeTJROVloMGdYK3Mx
 | 
					 | 
				
			||||||
            cGF1elFSbjJ3UmUyc1FsUkh6b2JNWTgKLS0tIFRzbHZIL25tK1dnWm90QVFueWZM
 | 
					 | 
				
			||||||
            WUZrTkg0cklJSUg5MndsN0ZPcVk4U0kKPsj787kDFDMxsBt5qk4Bp121AMTE++99
 | 
					 | 
				
			||||||
            m2X4lL6ona9fUe8e8wGhdgxZmqvJL2RCaVWJJy5SAbJ/skP3y7i2mw==
 | 
					 | 
				
			||||||
            -----END AGE ENCRYPTED FILE-----
 | 
					 | 
				
			||||||
    lastmodified: "2025-09-09T20:29:01Z"
 | 
					 | 
				
			||||||
    mac: ENC[AES256_GCM,data:forfO9i1DJvf38Q2B6ETUuOmGB3XVNQEURlUH4h6+6qEZqpZb/c7yUlMpXTUk9kgXn+IcfUhymFN3lrS7KVhSG5SxOTqwpOLF39+XFXcam3X4jf1/H4uBVqmntWAFG2+SvPxvL5jUKw9j8O0xBPWlbnx6BOQU4ifjcoPMOWanBQ=,iv:wj6F/5AV4oieoASZXb6oBtDYA0cA+1ujPWkziMTAhQ0=,tag:29lR7wsFT3vhp2ztMHBlsA==,type:str]
 | 
					 | 
				
			||||||
    pgp:
 | 
					 | 
				
			||||||
        - created_at: "2025-09-09T20:27:32Z"
 | 
					 | 
				
			||||||
          enc: |-
 | 
					 | 
				
			||||||
            -----BEGIN PGP MESSAGE-----
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            hQEMAzy6JxafzLr5AQf/a5v/AIIsdE9WawM710HCLQwEJXskDXfN7UP055gDBJer
 | 
					 | 
				
			||||||
            96qny8cKC833OhTPLqWCUpAVgJ1JQ8EDLvj2YvXLiq/NmMFs+mBwjPdzNIUKzK6E
 | 
					 | 
				
			||||||
            QgtjRJuQfOGSW0i44b+nkmWLSi1PhxVbIFt27Nl4I+mrvkhztIZcTwht+be3mMrp
 | 
					 | 
				
			||||||
            z1hEn/BbXsin6JOB6EuyFbsRZ3wYFUlr23NiKVI/JSo39ifbtGqgWn68GN+tYYYs
 | 
					 | 
				
			||||||
            mZ5tJykyRZxTU6qEKBaW9veClxs0FW2shQpp6Go/u6u/ghhHeB99trauPFL2rypT
 | 
					 | 
				
			||||||
            IaLGWruFwHMsd+rSTcw+YrTbL7bfkqx/4xj5dxJaFNJeAfo5F5ddr1odeAHeSQmh
 | 
					 | 
				
			||||||
            pfStJmy83SHhyDw8wLKMeF9d7dPKIyU4cXbLjSv1w86bDpDw8LBJSYEjJPVjLONV
 | 
					 | 
				
			||||||
            F6AXCJxNckDXmshGUejC09abAcMzzTsEJK7ocqEoMg==
 | 
					 | 
				
			||||||
            =XAWM
 | 
					 | 
				
			||||||
            -----END PGP MESSAGE-----
 | 
					 | 
				
			||||||
          fp: 0FECE8316E74BA6F44EFC21A2F8F21CE8721456B
 | 
					 | 
				
			||||||
    unencrypted_suffix: _unencrypted
 | 
					 | 
				
			||||||
    version: 3.10.2
 | 
					 | 
				
			||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| 
						 | 
					@ -4,10 +4,16 @@ gitlab-runners:
 | 
				
			||||||
    thoreb-telemetria-nix: ENC[AES256_GCM,data:zrZvG4be08ulpo7itbrprKK5csCMLvzZjrszfMw1XiJP0FyRTUd9nHgHpbAzbjj2KyT7kKngoZAyengvaTEhkT9sUi1pdGnvajAH8BDDOD0g4LJIHFl4,iv:3bSsTzU7gHx+MchuPg9kmb5xEDugmGPje8Jw74NpRJI=,tag:zffRr77lWbyLt7o/mywb5A==,type:str]
 | 
					    thoreb-telemetria-nix: ENC[AES256_GCM,data:zrZvG4be08ulpo7itbrprKK5csCMLvzZjrszfMw1XiJP0FyRTUd9nHgHpbAzbjj2KyT7kKngoZAyengvaTEhkT9sUi1pdGnvajAH8BDDOD0g4LJIHFl4,iv:3bSsTzU7gHx+MchuPg9kmb5xEDugmGPje8Jw74NpRJI=,tag:zffRr77lWbyLt7o/mywb5A==,type:str]
 | 
				
			||||||
    thoreb-itinerario-nix: ENC[AES256_GCM,data:UdAAD0V895sFoEYR56sCG2LlpZugJ0K/nwkTygzWOnbTSmBRAcIQ8qVFPZGw+K+XMSLiCyio6Jp7k8AYP0K1VYm+6aEP3OkqR9FCLQTJgXo=,iv:UGUby50BYkn13OzItk6zZmxc5+SnbZZa4bebQHIow2A=,tag:LjDg3deWwdH2T71EtPo6jA==,type:str]
 | 
					    thoreb-itinerario-nix: ENC[AES256_GCM,data:UdAAD0V895sFoEYR56sCG2LlpZugJ0K/nwkTygzWOnbTSmBRAcIQ8qVFPZGw+K+XMSLiCyio6Jp7k8AYP0K1VYm+6aEP3OkqR9FCLQTJgXo=,iv:UGUby50BYkn13OzItk6zZmxc5+SnbZZa4bebQHIow2A=,tag:LjDg3deWwdH2T71EtPo6jA==,type:str]
 | 
				
			||||||
    docker-images-token: ENC[AES256_GCM,data:GGB/KSkjdAyhFKEspAh91ItbqEDf7K/LZSGSn+Jp7SxRfXpDzHIiMD8XJ9PTkGLeQGN4ug1i2nTYPS7d/P5OALWDU+1NPiV9nPdG0w7GERfu4g==,iv:6roabdOKX9xFMf0hWlECd73+943R+hFLos0e2dOpzns=,tag:LrASFc4DtN7aQ+3oOW/p/w==,type:str]
 | 
					    docker-images-token: ENC[AES256_GCM,data:GGB/KSkjdAyhFKEspAh91ItbqEDf7K/LZSGSn+Jp7SxRfXpDzHIiMD8XJ9PTkGLeQGN4ug1i2nTYPS7d/P5OALWDU+1NPiV9nPdG0w7GERfu4g==,iv:6roabdOKX9xFMf0hWlECd73+943R+hFLos0e2dOpzns=,tag:LrASFc4DtN7aQ+3oOW/p/w==,type:str]
 | 
				
			||||||
    wopus-gitlab-nix: ENC[AES256_GCM,data:asE7J0d58x9VfQFWc07f5T4s5NZ+/VqMQo66EX93J0LbJ4iI5YjvrrIE4pSI1e4Nz/SRQhltaJ0DfSH0+qgjD4wnAONPRi3UlFbSdGWS2bwwRtWe+Nci2krrUFxV2i/ZVE3CwCkNe4mqtII=,iv:gKrD/LhzI+jnDnX6CdxoHfjpiRdrsuRYJF9rTc8SffM=,tag:TczDGSU3gdKmERjBJ7tP/A==,type:str]
 | 
					bitbucket-runners:
 | 
				
			||||||
    wopus-ssh-nix-cache-pk: ENC[AES256_GCM,data:MtYDK6P7nwBzr6p+lRX/dkosBfeDUAj/slf/a5SgVXNIbQlkEk7gvfW5iL+C2HgMwowqWx4F+3q2W+kGweqEYzEYAoZ9pR08a7Jci3Szyy49hkamxJXF+Qwhb5VQKxDppESne7DARCF0iYeUjgeXxCYyuWlGpisnkN3HCWrIYCqbk0LS+yqgkNhDxtxMaThGYztfPnLMEV/P5vuge9sRKu3Xi3iX2uDKtx4FTBsX30Lmd8kngOVnP/GaEHDa5ECO+/yW6ZRg3fIaqJ4RV+Vz79ovFUuZV/VE8eY3JOdK5tKIBWb31YUOjP7ccBes7mMhFLO3ceNeh+a6KAJbQ4pCojJwf/cLz663FKr5f/uWDicOBbL64l3+zV5zvSDzFls0ImXMNL6Fe3SaKP7ZcC5rVrRD8P+UN/OSFmbN5LM7uYY8nNsLxTH7MYsRHgTBUmTsFEhLGJIUjtf6J3/NWIlxjBq1MmpgxN0bD6gwVAxDPP489v918tsZtKdG8SJhLUPE4LWKsU7LHpgUBroKlbGE,iv:1jnF2TTlyTR59xM8Bgaz6bubDOwFexHBJipNVa0VPXY=,tag:VsDb6C6wYa9p4Yey3iG4eA==,type:str]
 | 
					    wopus-runner-1: ENC[AES256_GCM,data:gtH0T5n8qMYpvSv5ciN8+ScGlFDf9xE0FTxNP97vT/qsOCcaItTE+5P+DFcWw46onLED+1c+u0sArFbEsT3f8lyco9b+0l99uOQAxLZQzAXYH8zGye1UnwUtytkci2PHu5c8kTpIWHXyZ1IOYNGWkermeab57ANzOkM1LbkHyAjS6VTh0I60LfAOdHOw5FDFL8d1d9oWxLloOe9USLPqHjC023EpCUT2YuyHoPCTpBu8Kb/2HfV0wkAKaB3dvVrKwXCj+bfP6+bjQ3uMzVO/7jxPmnSGBfvyZ+Hlg5goJ6bSAqQWmnPPnQ96FgQfe8su5ML9qNIp9/7eNiL6Rv6Vhxe0hHbE5wsZ/58grcg/LrugeWJvUJ9THhwcTwO8Pkvwlq0XM9seUY2NV+LCK3bLQ4IWDjWkU1IHg6+nihTcvl1iD6UIGMgqGoB/v05WVzHb+GcE2fFuSuhVHfa5RMyboELOJoFrqZiXGhY=,iv:ZakLafxYQCDd1Zw8T83Xfj+YwAQKna9LC6ognJqtifA=,tag:bwBObfdMIvJfRrOG04NtxA==,type:str]
 | 
				
			||||||
    wopus-ssh-nix-cache-pub: ENC[AES256_GCM,data:F+QHv9wwgyQYobKwyG13tS2OKCZuBPKLe7RLkhxsqYmVEtkCnli9jG+unMp7MC5L0i3puNqfoXP2IC6g4ESHq1yE0ksUpUCHzps4oMZBQK9b5JcqXQs+c//hskTQ/sFmTfGPpdnQ7wAifnQf5Mx2E4RwiRznMgJGQ3RDDjg9xfWUyvw6PlslZH65aGrq3P/iURvj,iv:u34+rXKLcZjBlVJmdbf60I82Fb621lUjOBmR4CTJWGk=,tag:ToPtBIz3bgzAUKc6hh4Oxg==,type:str]
 | 
					    wopus-runner-2: ENC[AES256_GCM,data:gg8merZMFbf396hdJY7zmKQndT3GzB7NeGZAs3C0au8Zd7OFAg9vcQcFcxNA3kZGJZqmFTR/ycWJwhYr9fhlfFuPhDynVvgJAqoYtvC2MUDiOMD/d3DlfwFjQ6cOGTrvFuY1kkgSFb4OFdrVC1eiTDrGygFmYnYcqTKn/t5Ttqi+cHZNzFzVzdVLvaLCYxltM5g45zn+fXYxYwCfqyb32/M1XTnnwIGiataGxEX5oWhVV4zqeLO4ZIYPSby5AVvIMJ/zqvqaeVVY52GLDcTKrj3thbZxMQLWN3/lOA0uYhi3L/WM8Gx+JMEIbSICcuT7QXu4w4PA+opcx9GnsMCK2/egzS+cNPJ4vGZCdVD/jh6A9zVEJAgXdsHXNXFHmMPt7DcgrCQiub62og4kBY4G/Rcg4UN7sb3v3qyBpGbCGHGRjCFc+wdHpom0yDOG2cwcqfN49pC2R7Ag2BisFQ/5A+DPmKnvGG3kt9s=,iv:5g5XiDecYqi4JNRkZubgPJECBQdZ6rBeojgFe6Etebk=,tag:HRy5bFSbfxKTb5e13lGtgg==,type:str]
 | 
				
			||||||
 | 
					    wopus-runner-3: ENC[AES256_GCM,data:f9pLYR8t51HtPpLyXysIVaDAhxDrmktJH93E7rb7imtKwK7hRhR8usnvHTcknLfD7BMvStAIYefdGt19u7PrQu6vqc19bEcNbnK5OH4KBP6+X47oMgBYtbIGXH+t3dSDt22fSIoppTwdX7/Kf4vqesfN8K7EunETvFR86oyyKdy15mvXr0XUO4us4HZjnIOBEnOm1P/V8hk5JcCpRuo+8ZYmBe5gzq5pTnqnYlPE1EovM7eDMg72J7ev07h50qvySrAqmNiqDcXfTPQ2TzuHx3XxAYqFybf1L6P9OnLB6RDAlpoFJ0h8dSg2tzC2+amYsBP0UIBK/ZhWvvAjpX+MZrTASjenh/tefDcNdbsXDOr7A4i/261z4rC0r+97INglCN1N/SZg51iBHiRAVV1zibDLfioR5+eBIykWAtjILMoYU+zOcr0E8K0I9jQGMtpnYmvHJqV0DVcdfZpJptrPUUy+lQ/iZVcPpLs=,iv:grzvVsfpUzywjNE4jvTxXKG3TYajrvSsQgfOgtafvIo=,tag:K1B6crN0ckLk0EYBtGHDkw==,type:str]
 | 
				
			||||||
 | 
					    wopus-runner-4: ENC[AES256_GCM,data:D1Zq0BtPuACnutAbUcj3gYSMLuIZcMuqc/1mEFmitEG0tBFMWhkabS+8lXcp8sb1DM0LTDMEwgMB9FVyFb670MKQNEncqQtaNJtY1BxS3SolovDAM/I+i6YGvd4X8jX99d+7ZNR6xGBWJ/dW8rz4QnIM8Eh3FDOqaFa/ltfyPKP9IZ2uZi67C/n8Q/OSdgMQkt+QxhgJfSghE1iruPwxyGlqv+E4SZNI/fQQMjX0Lh7z02ms58yyMtjO71YbukV/JXFRsdJrqY2wfH/6NlZbsKideoSxluBRVqmbW6KQd7dUT819KbOSu9CFdgThtVCU8qiv3jbAbn8D5xRy4AAOEfSqRLXJoj7otCqr47R/8+0BdS3aztFBjL3lDmprMWZ4+LD55fvczfpxUF9ox1mhcjIvCvZJJL06XsST1XRXa7i2fr4/a/XhCmQgIzar5IYxSC9OjuHp6jLsTaY3ZUgid5W1L1n8uWSmA98=,iv:O9caRG//brERiIhuMrsFdTz6TnPY0rdQnvHEu0P42yM=,tag:hrmwLX/CRhZfammJ2nfTPw==,type:str]
 | 
				
			||||||
sops:
 | 
					sops:
 | 
				
			||||||
 | 
					    kms: []
 | 
				
			||||||
 | 
					    gcp_kms: []
 | 
				
			||||||
 | 
					    azure_kv: []
 | 
				
			||||||
 | 
					    hc_vault: []
 | 
				
			||||||
    age:
 | 
					    age:
 | 
				
			||||||
        - recipient: age1zrgu7w8059xydagm60phnffghvfe9h2ca58cx8qwagqpyfuvs9fqw79c8h
 | 
					        - recipient: age1zrgu7w8059xydagm60phnffghvfe9h2ca58cx8qwagqpyfuvs9fqw79c8h
 | 
				
			||||||
          enc: |
 | 
					          enc: |
 | 
				
			||||||
| 
						 | 
					@ -27,8 +33,8 @@ sops:
 | 
				
			||||||
            aFVxcDFhaGdYekRWRVFIWnRsZndtZFkKgsvxOFHOcO306Z9FkucA1fDOpZA8N1/h
 | 
					            aFVxcDFhaGdYekRWRVFIWnRsZndtZFkKgsvxOFHOcO306Z9FkucA1fDOpZA8N1/h
 | 
				
			||||||
            jYmIgcKTFgWoSCvux67lK30jFsYp7sm5z6WxxDYsGcoQ/+pxoUX2jQ==
 | 
					            jYmIgcKTFgWoSCvux67lK30jFsYp7sm5z6WxxDYsGcoQ/+pxoUX2jQ==
 | 
				
			||||||
            -----END AGE ENCRYPTED FILE-----
 | 
					            -----END AGE ENCRYPTED FILE-----
 | 
				
			||||||
    lastmodified: "2025-07-16T15:17:16Z"
 | 
					    lastmodified: "2025-03-07T21:28:04Z"
 | 
				
			||||||
    mac: ENC[AES256_GCM,data:UKIJFzABE0vr7vSYL85iZdTvd0y3dN/MaBUoKf6OpcDtRphM8/yY5J0Xq6XM5f28WFN1GlSKUekQz+DkA6aR6aCI2SICVOJpFb/eXKQ3Y7Td+PGcBr07hFOGCSu2vAzgYB1ZnajfI659FcWmdOoJSYgHUz3G7iRTHHCRVcoaVVk=,iv:jmKwn9bkqvPa0dGge4FFW2uT4Oa1LlFpFMUlnqUgkAA=,tag:CL+0+frQMt2TmgYv9yZeuw==,type:str]
 | 
					    mac: ENC[AES256_GCM,data:4lOafZQ6PP38CByulzA/J86sw+TpQhj40s1lTRXqUtpt72yH8nQK8dXpw0dNYvDBtDpKRvNTHZubzalEua6n2lCQL7rsZ2+fo6FJ4ht2Kb70dddDcWEyrfyZQ2FaKC5L/QjqM0SbIfPszNvyQ8wIaOoMfNJBis5QOjRSGDAcJm8=,iv:LLT0oJW+3KNe1nKphCK0c5FPIuh8GfnDrvNDCFhP4NM=,tag:rPbVY7L1qxNc3aCfv77FAg==,type:str]
 | 
				
			||||||
    pgp:
 | 
					    pgp:
 | 
				
			||||||
        - created_at: "2025-03-07T22:49:16Z"
 | 
					        - created_at: "2025-03-07T22:49:16Z"
 | 
				
			||||||
          enc: |-
 | 
					          enc: |-
 | 
				
			||||||
| 
						 | 
					@ -46,4 +52,4 @@ sops:
 | 
				
			||||||
            -----END PGP MESSAGE-----
 | 
					            -----END PGP MESSAGE-----
 | 
				
			||||||
          fp: 0FECE8316E74BA6F44EFC21A2F8F21CE8721456B
 | 
					          fp: 0FECE8316E74BA6F44EFC21A2F8F21CE8721456B
 | 
				
			||||||
    unencrypted_suffix: _unencrypted
 | 
					    unencrypted_suffix: _unencrypted
 | 
				
			||||||
    version: 3.10.2
 | 
					    version: 3.9.4-unstable
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										3
									
								
								switch
									
										
									
									
									
								
							
							
						
						
									
										3
									
								
								switch
									
										
									
									
									
								
							| 
						 | 
					@ -4,9 +4,6 @@ set -euo pipefail
 | 
				
			||||||
 | 
					
 | 
				
			||||||
nix fmt
 | 
					nix fmt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Allow usage of untracked files in nix code
 | 
					 | 
				
			||||||
git add --intent-to-add .
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
git --no-pager diff
 | 
					git --no-pager diff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
run() {
 | 
					run() {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -49,7 +49,6 @@
 | 
				
			||||||
  services.logind.extraConfig = ''
 | 
					  services.logind.extraConfig = ''
 | 
				
			||||||
    HandlePowerKey=suspend
 | 
					    HandlePowerKey=suspend
 | 
				
			||||||
  '';
 | 
					  '';
 | 
				
			||||||
  services.upower.enable = true;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # This value determines the NixOS release from which the default
 | 
					  # This value determines the NixOS release from which the default
 | 
				
			||||||
  # settings for stateful data, like file locations and database versions
 | 
					  # settings for stateful data, like file locations and database versions
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,18 +33,6 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    networking.firewall.extraCommands = lib.getExe pkgs._docker-block-external-connections;
 | 
					    networking.firewall.extraCommands = lib.getExe pkgs._docker-block-external-connections;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Docker punches holes in your firewall
 | 
					 | 
				
			||||||
    systemd.services.docker-update-firewall = {
 | 
					 | 
				
			||||||
      script = lib.getExe pkgs._docker-block-external-connections;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    systemd.timers.docker-update-firewall = {
 | 
					 | 
				
			||||||
      timerConfig = {
 | 
					 | 
				
			||||||
        OnCalendar = "minutely";
 | 
					 | 
				
			||||||
        Unit = "docker-update-firewall.service";
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      wantedBy = [ "multi-user.target" ];
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    programs.extra-container.enable = true;
 | 
					    programs.extra-container.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    programs.firejail.enable = true;
 | 
					    programs.firejail.enable = true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,7 +5,6 @@
 | 
				
			||||||
    noto-fonts
 | 
					    noto-fonts
 | 
				
			||||||
    noto-fonts-cjk-sans
 | 
					    noto-fonts-cjk-sans
 | 
				
			||||||
    noto-fonts-emoji
 | 
					    noto-fonts-emoji
 | 
				
			||||||
    nerd-fonts.fira-code
 | 
					    nerdfonts_fira_hack
 | 
				
			||||||
    nerd-fonts.hack
 | 
					 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -60,6 +60,12 @@
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    programs.corectrl.enable = true;
 | 
					    programs.corectrl = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      gpuOverclock = {
 | 
				
			||||||
 | 
					        enable = true;
 | 
				
			||||||
 | 
					        ppfeaturemask = "0xffffffff";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,95 +1,51 @@
 | 
				
			||||||
 | 
					{ pkgs, lib, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  pkgs,
 | 
					  mkNixRunner =
 | 
				
			||||||
  lib,
 | 
					    authenticationTokenConfigFile: with lib; rec {
 | 
				
			||||||
  inputs ? null,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}:
 | 
					 | 
				
			||||||
let
 | 
					 | 
				
			||||||
  installNixScript =
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      authenticationTokenConfigFile,
 | 
					 | 
				
			||||||
      nixCacheSshPrivateKeyPath ? null,
 | 
					 | 
				
			||||||
      nixCacheSshPublicKeyPath ? null,
 | 
					 | 
				
			||||||
      ...
 | 
					 | 
				
			||||||
    }:
 | 
					 | 
				
			||||||
    pkgs.writeScriptBin "install-nix" ''
 | 
					 | 
				
			||||||
      mkdir -p -m 0755 /nix/var/log/nix/drvs
 | 
					 | 
				
			||||||
      mkdir -p -m 0755 /nix/var/nix/gcroots
 | 
					 | 
				
			||||||
      mkdir -p -m 0755 /nix/var/nix/profiles
 | 
					 | 
				
			||||||
      mkdir -p -m 0755 /nix/var/nix/temproots
 | 
					 | 
				
			||||||
      mkdir -p -m 0755 /nix/var/nix/userpool
 | 
					 | 
				
			||||||
      mkdir -p -m 1777 /nix/var/nix/gcroots/per-user
 | 
					 | 
				
			||||||
      mkdir -p -m 1777 /nix/var/nix/profiles/per-user
 | 
					 | 
				
			||||||
      mkdir -p -m 0755 /nix/var/nix/profiles/per-user/root
 | 
					 | 
				
			||||||
      mkdir -p -m 0700 "$HOME/.nix-defexpr"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      . ${pkgs.nix}/etc/profile.d/nix.sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      ${pkgs.nix}/bin/nix-env -i ${
 | 
					 | 
				
			||||||
        lib.concatStringsSep " " (
 | 
					 | 
				
			||||||
          with pkgs;
 | 
					 | 
				
			||||||
          [
 | 
					 | 
				
			||||||
            nix
 | 
					 | 
				
			||||||
            cacert
 | 
					 | 
				
			||||||
            git
 | 
					 | 
				
			||||||
            openssh
 | 
					 | 
				
			||||||
            docker
 | 
					 | 
				
			||||||
          ]
 | 
					 | 
				
			||||||
        )
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      ${lib.optionalString (nixCacheSshPrivateKeyPath != null && nixCacheSshPublicKeyPath != null) ''
 | 
					 | 
				
			||||||
        NIX_CACHE_SSH_PRIVATE_KEY_PATH="${nixCacheSshPrivateKeyPath}"
 | 
					 | 
				
			||||||
        NIX_CACHE_SSH_PUBLIC_KEY_PATH="${nixCacheSshPublicKeyPath}"
 | 
					 | 
				
			||||||
        . ${./gitlab-runner/nix-cache-start}
 | 
					 | 
				
			||||||
      ''}
 | 
					 | 
				
			||||||
    '';
 | 
					 | 
				
			||||||
in
 | 
					 | 
				
			||||||
rec {
 | 
					 | 
				
			||||||
  mkNixRunnerFull =
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      authenticationTokenConfigFile,
 | 
					 | 
				
			||||||
      nixCacheSshPrivateKeyPath ? null,
 | 
					 | 
				
			||||||
      nixCacheSshPublicKeyPath ? null,
 | 
					 | 
				
			||||||
      ...
 | 
					 | 
				
			||||||
    }@args:
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      # File should contain at least these two variables:
 | 
					      # File should contain at least these two variables:
 | 
				
			||||||
      # `CI_SERVER_URL`
 | 
					      # `CI_SERVER_URL`
 | 
				
			||||||
      # `REGISTRATION_TOKEN`
 | 
					      # `REGISTRATION_TOKEN`
 | 
				
			||||||
      inherit authenticationTokenConfigFile; # 2
 | 
					      inherit authenticationTokenConfigFile; # 2
 | 
				
			||||||
      dockerImage = "alpine:3.18.2";
 | 
					      dockerImage = "alpine:3.18.2";
 | 
				
			||||||
      dockerPullPolicy = "if-not-present";
 | 
					      dockerAllowedImages = [ dockerImage ];
 | 
				
			||||||
      dockerVolumes = [
 | 
					      dockerVolumes = [
 | 
				
			||||||
        "/etc/nix/nix.conf:/etc/nix/nix.conf:ro"
 | 
					        "/etc/nix/nix.conf:/etc/nix/nix.conf:ro"
 | 
				
			||||||
        "/nix/store:/nix/store:ro"
 | 
					        "/nix/store:/nix/store:ro"
 | 
				
			||||||
        "/nix/var/nix/db:/nix/var/nix/db:ro"
 | 
					        "/nix/var/nix/db:/nix/var/nix/db:ro"
 | 
				
			||||||
        "/nix/var/nix/daemon-socket:/nix/var/nix/daemon-socket:ro"
 | 
					        "/nix/var/nix/daemon-socket:/nix/var/nix/daemon-socket:ro"
 | 
				
			||||||
        "/tmp:/tmp"
 | 
					 | 
				
			||||||
        "/var/run/docker.sock:/var/run/docker.sock"
 | 
					 | 
				
			||||||
        "/var/lib/docker/containers:/var/lib/docker/containers"
 | 
					 | 
				
			||||||
        "/cache"
 | 
					 | 
				
			||||||
      ]
 | 
					 | 
				
			||||||
      ++ lib.optionals (nixCacheSshPrivateKeyPath != null) [
 | 
					 | 
				
			||||||
        "${nixCacheSshPrivateKeyPath}:${nixCacheSshPrivateKeyPath}"
 | 
					 | 
				
			||||||
      ]
 | 
					 | 
				
			||||||
      ++ lib.optionals (nixCacheSshPublicKeyPath != null) [
 | 
					 | 
				
			||||||
        "${nixCacheSshPublicKeyPath}:${nixCacheSshPublicKeyPath}"
 | 
					 | 
				
			||||||
      ];
 | 
					      ];
 | 
				
			||||||
      # dockerDisableCache = true;
 | 
					      dockerDisableCache = true;
 | 
				
			||||||
      preBuildScript = "\". ${lib.getExe (installNixScript args)}\"";
 | 
					      preBuildScript = pkgs.writeScript "setup-container" ''
 | 
				
			||||||
 | 
					        mkdir -p -m 0755 /nix/var/log/nix/drvs
 | 
				
			||||||
 | 
					        mkdir -p -m 0755 /nix/var/nix/gcroots
 | 
				
			||||||
 | 
					        mkdir -p -m 0755 /nix/var/nix/profiles
 | 
				
			||||||
 | 
					        mkdir -p -m 0755 /nix/var/nix/temproots
 | 
				
			||||||
 | 
					        mkdir -p -m 0755 /nix/var/nix/userpool
 | 
				
			||||||
 | 
					        mkdir -p -m 1777 /nix/var/nix/gcroots/per-user
 | 
				
			||||||
 | 
					        mkdir -p -m 1777 /nix/var/nix/profiles/per-user
 | 
				
			||||||
 | 
					        mkdir -p -m 0755 /nix/var/nix/profiles/per-user/root
 | 
				
			||||||
 | 
					        mkdir -p -m 0700 "$HOME/.nix-defexpr"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        . ${pkgs.nix}/etc/profile.d/nix.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ${pkgs.nix}/bin/nix-env -i ${
 | 
				
			||||||
 | 
					          concatStringsSep " " (
 | 
				
			||||||
 | 
					            with pkgs;
 | 
				
			||||||
 | 
					            [
 | 
				
			||||||
 | 
					              nix
 | 
				
			||||||
 | 
					              cacert
 | 
				
			||||||
 | 
					              git
 | 
				
			||||||
 | 
					              openssh
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
 | 
					          )
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      '';
 | 
				
			||||||
      environmentVariables = {
 | 
					      environmentVariables = {
 | 
				
			||||||
        ENV = "/etc/profile";
 | 
					        ENV = "/etc/profile";
 | 
				
			||||||
        USER = "root";
 | 
					        USER = "root";
 | 
				
			||||||
        NIX_REMOTE = "daemon";
 | 
					        NIX_REMOTE = "daemon";
 | 
				
			||||||
 | 
					        PATH = "/nix/var/nix/profiles/default/bin:/nix/var/nix/profiles/default/sbin:/bin:/sbin:/usr/bin:/usr/sbin";
 | 
				
			||||||
        NIX_SSL_CERT_FILE = "/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt";
 | 
					        NIX_SSL_CERT_FILE = "/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt";
 | 
				
			||||||
        NIX_PATH = if inputs != null then "nixpkgs=${inputs.nixpkgs}" else "";
 | 
					 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					 | 
				
			||||||
  mkNixRunner =
 | 
					 | 
				
			||||||
    authenticationTokenConfigFile:
 | 
					 | 
				
			||||||
    mkNixRunnerFull {
 | 
					 | 
				
			||||||
      inherit authenticationTokenConfigFile;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,49 +0,0 @@
 | 
				
			||||||
#!/bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo "nix-cache: Setting up ssh key and host" >&2
 | 
					 | 
				
			||||||
STORE_HOST_PUB_KEY="$(cat "$NIX_CACHE_SSH_PUBLIC_KEY_PATH" | base64 | tr -d '\n')"
 | 
					 | 
				
			||||||
STORE_URL="ssh://nix-ssh@nix-cache.wopus.dev?trusted=true&compress=true&ssh-key=$NIX_CACHE_SSH_PRIVATE_KEY_PATH&base64-ssh-public-host-key=$STORE_HOST_PUB_KEY"
 | 
					 | 
				
			||||||
echo STORE_URL="$STORE_URL" >&2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
NIX_EXTRA_CONFIG_FILE=$(mktemp)
 | 
					 | 
				
			||||||
cat > "$NIX_EXTRA_CONFIG_FILE" <<EOF
 | 
					 | 
				
			||||||
  extra-substituters = $STORE_URL
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo "nix-cache: Adding remote cache as substituter" >&2
 | 
					 | 
				
			||||||
export NIX_USER_CONF_FILES="$NIX_EXTRA_CONFIG_FILE:$NIX_USER_CONF_FILES"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo "nix-cache: Setting up nix hook" >&2
 | 
					 | 
				
			||||||
nix() {
 | 
					 | 
				
			||||||
    echo "nix-cache: executing nix hook" >&2
 | 
					 | 
				
			||||||
    command nix "$@"
 | 
					 | 
				
			||||||
    local STATUS="$?"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    local BUILD=no
 | 
					 | 
				
			||||||
    if test "$STATUS" = "0"; then
 | 
					 | 
				
			||||||
        for arg in "$@"; do
 | 
					 | 
				
			||||||
            echo "nix-cache: evaluating arg '$arg'" >&2
 | 
					 | 
				
			||||||
            case "$arg" in
 | 
					 | 
				
			||||||
                build)
 | 
					 | 
				
			||||||
                    echo "nix-cache: enablig upload" >&2
 | 
					 | 
				
			||||||
                    BUILD=yes
 | 
					 | 
				
			||||||
                ;;
 | 
					 | 
				
			||||||
                -*)
 | 
					 | 
				
			||||||
                    echo "nix-cache: ignoring argument '$arg'" >&2
 | 
					 | 
				
			||||||
                ;;
 | 
					 | 
				
			||||||
                *)
 | 
					 | 
				
			||||||
                    if test "$BUILD" = yes; then
 | 
					 | 
				
			||||||
                        echo "nix-cache: Sending path $arg" >&2
 | 
					 | 
				
			||||||
                        command nix copy --to "$STORE_URL" "$arg" || true
 | 
					 | 
				
			||||||
                    else
 | 
					 | 
				
			||||||
                        echo "nix-cache: not building, ignoring argument '$arg'" >&2
 | 
					 | 
				
			||||||
                    fi
 | 
					 | 
				
			||||||
                ;;
 | 
					 | 
				
			||||||
            esac
 | 
					 | 
				
			||||||
        done
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        echo "nix-cache: nix exited with code '$STATUS', ignoring" >&2
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return "$STATUS"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -37,6 +37,8 @@ in
 | 
				
			||||||
    xdg.portal = {
 | 
					    xdg.portal = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
      wlr.enable = true;
 | 
					      wlr.enable = true;
 | 
				
			||||||
 | 
					      # Always pick the first monitor, this is fine since I only ever use a single monitor
 | 
				
			||||||
 | 
					      wlr.settings.screencast.chooser_type = "none";
 | 
				
			||||||
      # gtk portal needed to make gtk apps happy
 | 
					      # gtk portal needed to make gtk apps happy
 | 
				
			||||||
      extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
 | 
					      extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
| 
						 | 
					@ -72,7 +74,7 @@ in
 | 
				
			||||||
            user = "lelgenio";
 | 
					            user = "lelgenio";
 | 
				
			||||||
          };
 | 
					          };
 | 
				
			||||||
          default_session = {
 | 
					          default_session = {
 | 
				
			||||||
            command = "dbus-run-session -- ${pkgs.sway}/bin/sway --config ${swayConfig}";
 | 
					            command = "${pkgs.sway}/bin/sway --config ${swayConfig}";
 | 
				
			||||||
          };
 | 
					          };
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  time.timeZone = "America/Sao_Paulo";
 | 
					  time.timeZone = "America/Sao_Paulo";
 | 
				
			||||||
  environment.variables.TZ = config.time.timeZone;
 | 
					  environment.variables.TZ = config.time.timeZone;
 | 
				
			||||||
  i18n.defaultLocale = "pt_BR.UTF-8";
 | 
					  i18n.defaultLocale = "pt_BR.utf8";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Configure keymap in X11
 | 
					  # Configure keymap in X11
 | 
				
			||||||
  services.xserver.xkb = {
 | 
					  services.xserver.xkb = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										50
									
								
								system/monolith-bitbucket-runner.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								system/monolith-bitbucket-runner.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,50 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  mkRunner = secret: {
 | 
				
			||||||
 | 
					    image = "docker-public.packages.atlassian.com/sox/atlassian/bitbucket-pipelines-runner:latest";
 | 
				
			||||||
 | 
					    volumes = [
 | 
				
			||||||
 | 
					      "/tmp:/tmp"
 | 
				
			||||||
 | 
					      "/var/run/docker.sock:/var/run/docker.sock"
 | 
				
			||||||
 | 
					      "/var/lib/docker/containers:/var/lib/docker/containers:ro"
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					    environmentFiles = [ secret ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  secretConf = {
 | 
				
			||||||
 | 
					    sopsFile = ../secrets/monolith/default.yaml;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					in
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  virtualisation.docker = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    daemon.settings = {
 | 
				
			||||||
 | 
					      # needed by bitbucket runner ???
 | 
				
			||||||
 | 
					      log-driver = "json-file";
 | 
				
			||||||
 | 
					      log-opts = {
 | 
				
			||||||
 | 
					        max-size = "10m";
 | 
				
			||||||
 | 
					        max-file = "3";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  virtualisation.oci-containers.backend = "docker";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  virtualisation.oci-containers.containers = {
 | 
				
			||||||
 | 
					    bitbucket-runner-1 = mkRunner config.sops.secrets."bitbucket-runners/wopus-runner-1".path;
 | 
				
			||||||
 | 
					    bitbucket-runner-2 = mkRunner config.sops.secrets."bitbucket-runners/wopus-runner-2".path;
 | 
				
			||||||
 | 
					    bitbucket-runner-3 = mkRunner config.sops.secrets."bitbucket-runners/wopus-runner-3".path;
 | 
				
			||||||
 | 
					    bitbucket-runner-4 = mkRunner config.sops.secrets."bitbucket-runners/wopus-runner-4".path;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  sops.secrets = {
 | 
				
			||||||
 | 
					    "bitbucket-runners/wopus-runner-1" = secretConf;
 | 
				
			||||||
 | 
					    "bitbucket-runners/wopus-runner-2" = secretConf;
 | 
				
			||||||
 | 
					    "bitbucket-runners/wopus-runner-3" = secretConf;
 | 
				
			||||||
 | 
					    "bitbucket-runners/wopus-runner-4" = secretConf;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,37 +1,29 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  inputs,
 | 
					 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  inherit (pkgs.callPackage ./gitlab-runner.nix { inherit inputs; }) mkNixRunner mkNixRunnerFull;
 | 
					  inherit (pkgs.callPackage ./gitlab-runner.nix { }) mkNixRunner;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  boot.kernel.sysctl."net.ipv4.ip_forward" = true;
 | 
					  boot.kernel.sysctl."net.ipv4.ip_forward" = true;
 | 
				
			||||||
  virtualisation.docker.enable = true;
 | 
					  virtualisation.docker.enable = true;
 | 
				
			||||||
  services.gitlab-runner = {
 | 
					  services.gitlab-runner = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    settings.concurrent = 8;
 | 
					    settings.concurrent = 12;
 | 
				
			||||||
    services = {
 | 
					    services = {
 | 
				
			||||||
      # runner for building in docker via host's nix-daemon
 | 
					      # runner for building in docker via host's nix-daemon
 | 
				
			||||||
      # nix store will be readable in runner, might be insecure
 | 
					      # nix store will be readable in runner, might be insecure
 | 
				
			||||||
      thoreb-telemetria-nix = mkNixRunner config.sops.secrets."gitlab-runners/thoreb-telemetria-nix".path;
 | 
					      thoreb-telemetria-nix = mkNixRunner config.sops.secrets."gitlab-runners/thoreb-telemetria-nix".path;
 | 
				
			||||||
      thoreb-itinerario-nix = mkNixRunner config.sops.secrets."gitlab-runners/thoreb-itinerario-nix".path;
 | 
					      thoreb-itinerario-nix = mkNixRunner config.sops.secrets."gitlab-runners/thoreb-itinerario-nix".path;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      wopus-gitlab-nix = mkNixRunnerFull {
 | 
					 | 
				
			||||||
        authenticationTokenConfigFile = config.sops.secrets."gitlab-runners/wopus-gitlab-nix".path;
 | 
					 | 
				
			||||||
        nixCacheSshPrivateKeyPath = config.sops.secrets."gitlab-runners/wopus-ssh-nix-cache-pk".path;
 | 
					 | 
				
			||||||
        nixCacheSshPublicKeyPath = config.sops.secrets."gitlab-runners/wopus-ssh-nix-cache-pub".path;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      default = {
 | 
					      default = {
 | 
				
			||||||
        # File should contain at least these two variables:
 | 
					        # File should contain at least these two variables:
 | 
				
			||||||
        # `CI_SERVER_URL`
 | 
					        # `CI_SERVER_URL`
 | 
				
			||||||
        # `CI_SERVER_TOKEN`
 | 
					        # `CI_SERVER_TOKEN`
 | 
				
			||||||
        authenticationTokenConfigFile = config.sops.secrets."gitlab-runners/docker-images-token".path;
 | 
					        authenticationTokenConfigFile = config.sops.secrets."gitlab-runners/docker-images-token".path;
 | 
				
			||||||
        dockerImage = "debian:stable";
 | 
					        dockerImage = "debian:stable";
 | 
				
			||||||
        dockerPullPolicy = "if-not-present";
 | 
					 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
| 
						 | 
					@ -47,14 +39,5 @@ in
 | 
				
			||||||
    "gitlab-runners/docker-images-token" = {
 | 
					    "gitlab-runners/docker-images-token" = {
 | 
				
			||||||
      sopsFile = ../secrets/monolith/default.yaml;
 | 
					      sopsFile = ../secrets/monolith/default.yaml;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    "gitlab-runners/wopus-gitlab-nix" = {
 | 
					 | 
				
			||||||
      sopsFile = ../secrets/monolith/default.yaml;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    "gitlab-runners/wopus-ssh-nix-cache-pk" = {
 | 
					 | 
				
			||||||
      sopsFile = ../secrets/monolith/default.yaml;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    "gitlab-runners/wopus-ssh-nix-cache-pub" = {
 | 
					 | 
				
			||||||
      sopsFile = ../secrets/monolith/default.yaml;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,8 +26,6 @@
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  services.fail2ban.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Workaround for nm-wait-online hanging??
 | 
					  # Workaround for nm-wait-online hanging??
 | 
				
			||||||
  # Ref: https://github.com/NixOS/nixpkgs/issues/180175
 | 
					  # Ref: https://github.com/NixOS/nixpkgs/issues/180175
 | 
				
			||||||
  systemd.services.NetworkManager-wait-online = {
 | 
					  systemd.services.NetworkManager-wait-online = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  services.pulseaudio.enable = false;
 | 
					  hardware.pulseaudio.enable = false;
 | 
				
			||||||
  services.pipewire = {
 | 
					  services.pipewire = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    wireplumber.enable = true;
 | 
					    wireplumber.enable = true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,15 +1,23 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
 | 
					  inherit (config.my) desktop;
 | 
				
			||||||
  inherit (config.my.theme) color;
 | 
					  inherit (config.my.theme) color;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  bugfixedFirefox = pkgs.firefox-devedition-unwrapped // {
 | 
					  bugfixedFirefox = pkgs.firefox-devedition-unwrapped // {
 | 
				
			||||||
    requireSigning = false;
 | 
					    requireSigning = false;
 | 
				
			||||||
    allowAddonSideload = true;
 | 
					    allowAddonSideload = true;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  swayCustomization = ''
 | 
				
			||||||
 | 
					    #titlebar { display: none !important; }
 | 
				
			||||||
 | 
					    #TabsToolbar { display: none !important; }
 | 
				
			||||||
 | 
					    #sidebar-header { display: none !important; }
 | 
				
			||||||
 | 
					  '';
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  config = {
 | 
					  config = {
 | 
				
			||||||
| 
						 | 
					@ -27,15 +35,15 @@ in
 | 
				
			||||||
            url = "https://addons.mozilla.org/firefox/downloads/file/4202411/sponsorblock-5.4.29.xpi";
 | 
					            url = "https://addons.mozilla.org/firefox/downloads/file/4202411/sponsorblock-5.4.29.xpi";
 | 
				
			||||||
            hash = "sha256-7Xqc8cyQNylMe5/dgDOx1f2QDVmz3JshDlTueu6AcSg=";
 | 
					            hash = "sha256-7Xqc8cyQNylMe5/dgDOx1f2QDVmz3JshDlTueu6AcSg=";
 | 
				
			||||||
          })
 | 
					          })
 | 
				
			||||||
          # (pkgs.fetchFirefoxAddon {
 | 
					          (pkgs.fetchFirefoxAddon {
 | 
				
			||||||
          #   name = "tree-style-tab";
 | 
					            name = "tree-style-tab";
 | 
				
			||||||
          #   url = "https://addons.mozilla.org/firefox/downloads/file/4197314/tree_style_tab-3.9.19.xpi";
 | 
					            url = "https://addons.mozilla.org/firefox/downloads/file/4197314/tree_style_tab-3.9.19.xpi";
 | 
				
			||||||
          #   hash = "sha256-u2f0elVPj5N/QXa+5hRJResPJAYwuT9z0s/0nwmFtVo=";
 | 
					            hash = "sha256-u2f0elVPj5N/QXa+5hRJResPJAYwuT9z0s/0nwmFtVo=";
 | 
				
			||||||
          # })
 | 
					          })
 | 
				
			||||||
          (pkgs.fetchFirefoxAddon {
 | 
					          (pkgs.fetchFirefoxAddon {
 | 
				
			||||||
            name = "ublock-origin";
 | 
					            name = "ublock-origin";
 | 
				
			||||||
            url = "https://addons.mozilla.org/firefox/downloads/file/4492375/ublock_origin-1.64.0.xpi";
 | 
					            url = "https://addons.mozilla.org/firefox/downloads/file/4290466/ublock_origin-1.58.0.xpi";
 | 
				
			||||||
            hash = "sha256-ueHIaL0awd78q/LgF3bRqQ7/ujSwf+aiE1DUXwIuDp8=";
 | 
					            hash = "sha256-RwxWmUpxdNshV4rc5ZixWKXcCXDIfFz+iJrGMr0wheo=";
 | 
				
			||||||
          })
 | 
					          })
 | 
				
			||||||
          (pkgs.fetchFirefoxAddon {
 | 
					          (pkgs.fetchFirefoxAddon {
 | 
				
			||||||
            name = "user_agent_string_switcher";
 | 
					            name = "user_agent_string_switcher";
 | 
				
			||||||
| 
						 | 
					@ -55,20 +63,10 @@ in
 | 
				
			||||||
            hash = "sha256-lKLX6IWWtliRdH1Ig33rVEB4DVfbeuMw0dfUPV/mSSI=";
 | 
					            hash = "sha256-lKLX6IWWtliRdH1Ig33rVEB4DVfbeuMw0dfUPV/mSSI=";
 | 
				
			||||||
          })
 | 
					          })
 | 
				
			||||||
          (pkgs.fetchFirefoxAddon {
 | 
					          (pkgs.fetchFirefoxAddon {
 | 
				
			||||||
            name = "unhook";
 | 
					            name = "invidious_redirect";
 | 
				
			||||||
            url = "https://addons.mozilla.org/firefox/downloads/file/4263531/youtube_recommended_videos-1.6.7.xpi";
 | 
					            url = "https://addons.mozilla.org/firefox/downloads/file/4292924/invidious_redirect_2-1.16.xpi";
 | 
				
			||||||
            hash = "sha256-u21ouN9IyOzkTkFSeDz+QBp9psJ1F2Nmsvqp6nh0DRU=";
 | 
					            hash = "sha256-ApCc+MNmW9Wd/5seV6npePQVEaszT/rhD9EB7HGiUb8=";
 | 
				
			||||||
          })
 | 
					          })
 | 
				
			||||||
          (pkgs.fetchFirefoxAddon {
 | 
					 | 
				
			||||||
            name = "youtube_no_translation";
 | 
					 | 
				
			||||||
            url = "https://addons.mozilla.org/firefox/downloads/file/4561536/youtube_no_translation-2.11.0.xpi";
 | 
					 | 
				
			||||||
            hash = "sha256-8VpoUDbvZZf0oYGSHnXEiYDjfcPjQqtbDaxp5ndAJ94=";
 | 
					 | 
				
			||||||
          })
 | 
					 | 
				
			||||||
          # (pkgs.fetchFirefoxAddon {
 | 
					 | 
				
			||||||
          #   name = "invidious_redirect";
 | 
					 | 
				
			||||||
          #   url = "https://addons.mozilla.org/firefox/downloads/file/4292924/invidious_redirect_2-1.16.xpi";
 | 
					 | 
				
			||||||
          #   hash = "sha256-ApCc+MNmW9Wd/5seV6npePQVEaszT/rhD9EB7HGiUb8=";
 | 
					 | 
				
			||||||
          # })
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
          (pkgs.fetchFirefoxAddon {
 | 
					          (pkgs.fetchFirefoxAddon {
 | 
				
			||||||
            name = "substitoot";
 | 
					            name = "substitoot";
 | 
				
			||||||
| 
						 | 
					@ -93,14 +91,13 @@ in
 | 
				
			||||||
        dev-edition-default = {
 | 
					        dev-edition-default = {
 | 
				
			||||||
          isDefault = true;
 | 
					          isDefault = true;
 | 
				
			||||||
          search.force = true;
 | 
					          search.force = true;
 | 
				
			||||||
          search.default = "ddg";
 | 
					          search.default = "DuckDuckGo";
 | 
				
			||||||
          settings = {
 | 
					          settings = {
 | 
				
			||||||
            "devtools.theme" = "auto";
 | 
					            "devtools.theme" = "auto";
 | 
				
			||||||
            "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
 | 
					            "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
 | 
				
			||||||
 | 
					            "browser.tabs.inTitlebar" = if desktop == "sway" then 0 else 1;
 | 
				
			||||||
            "sidebar.position_start" = false; # Move sidebar to the right
 | 
					            "sidebar.position_start" = false; # Move sidebar to the right
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            "browser.tabs.groups.enabled" = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            # enable media RDD to allow gpu acceleration
 | 
					            # enable media RDD to allow gpu acceleration
 | 
				
			||||||
            "media.rdd-ffmpeg.enabled" = true;
 | 
					            "media.rdd-ffmpeg.enabled" = true;
 | 
				
			||||||
            "media.rdd-ffvpx.enabled" = true;
 | 
					            "media.rdd-ffvpx.enabled" = true;
 | 
				
			||||||
| 
						 | 
					@ -128,6 +125,8 @@ in
 | 
				
			||||||
            "devtools.debugger.remote-enabled" = true;
 | 
					            "devtools.debugger.remote-enabled" = true;
 | 
				
			||||||
          };
 | 
					          };
 | 
				
			||||||
          userChrome = ''
 | 
					          userChrome = ''
 | 
				
			||||||
 | 
					            ${lib.optionalString (desktop == "sway") swayCustomization}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            #sidebar-main {
 | 
					            #sidebar-main {
 | 
				
			||||||
              background-color: ${color.bg};
 | 
					              background-color: ${color.bg};
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					@ -141,7 +140,7 @@ in
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    wayland.windowManager.sway = {
 | 
					    wayland.windowManager.sway = {
 | 
				
			||||||
      extraConfig = ''
 | 
					      extraConfig = ''
 | 
				
			||||||
        exec firefox-devedition
 | 
					        exec firefox
 | 
				
			||||||
      '';
 | 
					      '';
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -56,7 +56,7 @@ in
 | 
				
			||||||
        suv = "systemct --user";
 | 
					        suv = "systemct --user";
 | 
				
			||||||
        # docker abbrs
 | 
					        # docker abbrs
 | 
				
			||||||
        d = "docker";
 | 
					        d = "docker";
 | 
				
			||||||
        dc = "docker compose";
 | 
					        dc = "docker-compose";
 | 
				
			||||||
        # git abbrs
 | 
					        # git abbrs
 | 
				
			||||||
        g = "git";
 | 
					        g = "git";
 | 
				
			||||||
        ga = "git add";
 | 
					        ga = "git add";
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,6 +16,7 @@ in
 | 
				
			||||||
        user = {
 | 
					        user = {
 | 
				
			||||||
          name = username;
 | 
					          name = username;
 | 
				
			||||||
          email = mail.personal.user;
 | 
					          email = mail.personal.user;
 | 
				
			||||||
 | 
					          signingkey = "2F8F21CE8721456B";
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        init.defaultBranch = "main";
 | 
					        init.defaultBranch = "main";
 | 
				
			||||||
        core = {
 | 
					        core = {
 | 
				
			||||||
| 
						 | 
					@ -24,6 +25,7 @@ in
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        commit = {
 | 
					        commit = {
 | 
				
			||||||
          verbose = true;
 | 
					          verbose = true;
 | 
				
			||||||
 | 
					          gpgsign = true;
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        fetch = {
 | 
					        fetch = {
 | 
				
			||||||
          prune = true;
 | 
					          prune = true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,7 +43,7 @@ lib.mkIf (config.my.desktop == "gnome") {
 | 
				
			||||||
    qt6Packages.qtstyleplugin-kvantum
 | 
					    qt6Packages.qtstyleplugin-kvantum
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  services.gpg-agent.pinentry.package = pkgs.pinentry-gnome;
 | 
					  services.gpg-agent.pinentryPackage = pkgs.pinentry-gnome;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  xdg.defaultApplications = {
 | 
					  xdg.defaultApplications = {
 | 
				
			||||||
    enable = lib.mkForce false;
 | 
					    enable = lib.mkForce false;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,7 +24,6 @@
 | 
				
			||||||
    ./mpv.nix
 | 
					    ./mpv.nix
 | 
				
			||||||
    ./mangohud.nix
 | 
					    ./mangohud.nix
 | 
				
			||||||
    ./gaming.nix
 | 
					    ./gaming.nix
 | 
				
			||||||
    ./lsfg-vk
 | 
					 | 
				
			||||||
    ./pipewire.nix
 | 
					    ./pipewire.nix
 | 
				
			||||||
    ./mimeapps.nix
 | 
					    ./mimeapps.nix
 | 
				
			||||||
    ./desktop-entries.nix
 | 
					    ./desktop-entries.nix
 | 
				
			||||||
| 
						 | 
					@ -37,14 +36,13 @@
 | 
				
			||||||
    ./pass.nix
 | 
					    ./pass.nix
 | 
				
			||||||
    ./pqiv.nix
 | 
					    ./pqiv.nix
 | 
				
			||||||
    ./zathura.nix
 | 
					    ./zathura.nix
 | 
				
			||||||
    ./satty
 | 
					 | 
				
			||||||
    ./man.nix
 | 
					    ./man.nix
 | 
				
			||||||
    ./mpd.nix
 | 
					    ./mpd.nix
 | 
				
			||||||
    ./sway
 | 
					    ./sway
 | 
				
			||||||
    ./gnome.nix
 | 
					    ./gnome.nix
 | 
				
			||||||
    ./thunar.nix
 | 
					    ./thunar.nix
 | 
				
			||||||
    ./xdg-dirs.nix
 | 
					    ./xdg-dirs.nix
 | 
				
			||||||
    inputs.nix-index-database.homeModules.nix-index
 | 
					    inputs.nix-index-database.hmModules.nix-index
 | 
				
			||||||
    ../settings
 | 
					    ../settings
 | 
				
			||||||
    ./powerplay-led-idle.nix
 | 
					    ./powerplay-led-idle.nix
 | 
				
			||||||
    ./rm-target.nix
 | 
					    ./rm-target.nix
 | 
				
			||||||
| 
						 | 
					@ -79,7 +77,6 @@
 | 
				
			||||||
    micro
 | 
					    micro
 | 
				
			||||||
    _diffr
 | 
					    _diffr
 | 
				
			||||||
    br # bulk rename
 | 
					    br # bulk rename
 | 
				
			||||||
    bcrypt
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    comma
 | 
					    comma
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -150,14 +147,12 @@
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  sops.age.keyFile = config.home.homeDirectory + "/.ssh/id_ed25519";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  xdg.defaultApplications = {
 | 
					  xdg.defaultApplications = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    text-editor = lib.mkDefault "kak.desktop";
 | 
					    text-editor = lib.mkDefault "kak.desktop";
 | 
				
			||||||
    image-viewer = lib.mkDefault "pqiv.desktop";
 | 
					    image-viewer = lib.mkDefault "pqiv.desktop";
 | 
				
			||||||
    video-player = lib.mkDefault "mpv.desktop";
 | 
					    video-player = lib.mkDefault "mpv.desktop";
 | 
				
			||||||
    web-browser = lib.mkDefault "firefox-devedition.desktop";
 | 
					    web-browser = lib.mkDefault "firefox.desktop";
 | 
				
			||||||
    document-viewer = lib.mkDefault "org.pwmt.zathura.desktop";
 | 
					    document-viewer = lib.mkDefault "org.pwmt.zathura.desktop";
 | 
				
			||||||
    file-manager = lib.mkDefault "thunar.desktop";
 | 
					    file-manager = lib.mkDefault "thunar.desktop";
 | 
				
			||||||
    archive-manager = "engrampa.desktop";
 | 
					    archive-manager = "engrampa.desktop";
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -110,7 +110,6 @@ in
 | 
				
			||||||
          set global scrolloff 10,20
 | 
					          set global scrolloff 10,20
 | 
				
			||||||
          set global autoreload yes
 | 
					          set global autoreload yes
 | 
				
			||||||
          set global startup_info_version 99999999
 | 
					          set global startup_info_version 99999999
 | 
				
			||||||
          set global grepcmd 'rg -Hn'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ''
 | 
					        ''
 | 
				
			||||||
        + (import ./colors.nix {
 | 
					        + (import ./colors.nix {
 | 
				
			||||||
| 
						 | 
					@ -142,8 +141,6 @@ in
 | 
				
			||||||
      aspell
 | 
					      aspell
 | 
				
			||||||
      aspellDicts.en
 | 
					      aspellDicts.en
 | 
				
			||||||
      aspellDicts.pt_BR
 | 
					      aspellDicts.pt_BR
 | 
				
			||||||
 | 
					 | 
				
			||||||
      ripgrep
 | 
					 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
    home.activation = {
 | 
					    home.activation = {
 | 
				
			||||||
      update_kakoune = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
 | 
					      update_kakoune = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,15 +16,15 @@ hook global WinSetOption filetype=nix %{
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
hook global BufCreate .*\.json %{
 | 
					hook global BufCreate .*\.json %{
 | 
				
			||||||
    set buffer formatcmd "prettier --stdin-filepath='%val{buffile}'"
 | 
					    set buffer formatcmd 'prettier --parser json'
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
hook global BufCreate .*\.ya?ml %{
 | 
					hook global BufCreate .*\.ya?ml %{
 | 
				
			||||||
    set buffer formatcmd "prettier --stdin-filepath='%val{buffile}'"
 | 
					    set buffer formatcmd 'prettier --parser yaml'
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
hook global BufCreate .*\.html %{
 | 
					hook global BufCreate .*\.html %{
 | 
				
			||||||
    set buffer formatcmd "prettier --stdin-filepath='%val{buffile}'"
 | 
					    set buffer formatcmd 'prettier --parser html'
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
hook global BufCreate .*\.component\.html %{
 | 
					hook global BufCreate .*\.component\.html %{
 | 
				
			||||||
| 
						 | 
					@ -43,23 +43,11 @@ hook global BufCreate .*\.php %{
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
hook global BufCreate .*\.js %{
 | 
					hook global BufCreate .*\.js %{
 | 
				
			||||||
    set buffer formatcmd "prettier --stdin-filepath='%val{buffile}'"
 | 
					    set buffer formatcmd 'prettier --parser babel'
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
hook global BufCreate .*\.jsx %{
 | 
					 | 
				
			||||||
    set buffer formatcmd "prettier --stdin-filepath='%val{buffile}'"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
hook global BufCreate .*\.ts %{
 | 
					 | 
				
			||||||
    set buffer formatcmd "prettier --stdin-filepath='%val{buffile}'"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
hook global BufCreate .*\.tsx %{
 | 
					 | 
				
			||||||
    set buffer formatcmd "prettier --stdin-filepath='%val{buffile}'"
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
hook global BufCreate .*\.scss %{
 | 
					hook global BufCreate .*\.scss %{
 | 
				
			||||||
    set buffer formatcmd "prettier --stdin-filepath='%val{buffile}'"
 | 
					    set buffer formatcmd 'prettier --parser scss'
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
hook global BufCreate .*\.vue %{
 | 
					hook global BufCreate .*\.vue %{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,40 +0,0 @@
 | 
				
			||||||
{ pkgs, config, ... }:
 | 
					 | 
				
			||||||
let
 | 
					 | 
				
			||||||
  LosslessDllPath = config.home.homeDirectory + "/.local/lib/Lossless.dll";
 | 
					 | 
				
			||||||
in
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  home.file = {
 | 
					 | 
				
			||||||
    ".local/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json".source =
 | 
					 | 
				
			||||||
      "${pkgs.lsfg-vk}/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json";
 | 
					 | 
				
			||||||
    ".local/lib/liblsfg-vk.so".source = "${pkgs.lsfg-vk}/lib/liblsfg-vk.so";
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  home.sessionVariables = {
 | 
					 | 
				
			||||||
    # ENABLE_LSFG = 1; # Don't enable session wide, to avoid bugs
 | 
					 | 
				
			||||||
    LSFG_DLL_PATH = LosslessDllPath;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  home.packages = with pkgs; [
 | 
					 | 
				
			||||||
    lsfg-vk
 | 
					 | 
				
			||||||
    lsfg-vk-ui
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Put the dll in a reachable location for steam games
 | 
					 | 
				
			||||||
  # Secrets normally are a symlink to /run/user/1000/secrets.d/
 | 
					 | 
				
			||||||
  # Every time sops-nix.service runs, we copy the dll
 | 
					 | 
				
			||||||
  systemd.user.services.copy-lsfg-dll = {
 | 
					 | 
				
			||||||
    Service = {
 | 
					 | 
				
			||||||
      ExecStart = pkgs.writeShellScript "copy-lsfg-dll" ''
 | 
					 | 
				
			||||||
        cp -fv "${config.sops.secrets."lsfg.dll".path}" "${LosslessDllPath}"
 | 
					 | 
				
			||||||
      '';
 | 
					 | 
				
			||||||
      Type = "oneshot";
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    Unit.After = [ "sops-nix.service" ];
 | 
					 | 
				
			||||||
    Install.WantedBy = [ "sops-nix.service" ];
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sops.secrets."lsfg.dll" = {
 | 
					 | 
				
			||||||
    sopsFile = ../../secrets/lsfg.dll.gpg;
 | 
					 | 
				
			||||||
    format = "binary";
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -17,9 +17,6 @@ in
 | 
				
			||||||
      toggle_preset = "Control_R+F9";
 | 
					      toggle_preset = "Control_R+F9";
 | 
				
			||||||
      fps_metrics = "Control_R+F8";
 | 
					      fps_metrics = "Control_R+F8";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      media_player = false;
 | 
					 | 
				
			||||||
      battery = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      # legacy_layout = "false";
 | 
					      # legacy_layout = "false";
 | 
				
			||||||
      # gpu_stats = true;
 | 
					      # gpu_stats = true;
 | 
				
			||||||
      # gpu_temp = true;
 | 
					      # gpu_temp = true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,63 +0,0 @@
 | 
				
			||||||
[general]
 | 
					 | 
				
			||||||
# Start Satty in fullscreen mode
 | 
					 | 
				
			||||||
fullscreen = true
 | 
					 | 
				
			||||||
# Exit directly after copy/save action
 | 
					 | 
				
			||||||
early-exit = true
 | 
					 | 
				
			||||||
# Draw corners of rectangles round if the value is greater than 0 (0 disables rounded corners)
 | 
					 | 
				
			||||||
corner-roundness = 12
 | 
					 | 
				
			||||||
# Select the tool on startup [possible values: pointer, crop, line, arrow, rectangle, text, marker, blur, brush]
 | 
					 | 
				
			||||||
initial-tool = "brush"
 | 
					 | 
				
			||||||
# Configure the command to be called on copy, for example `wl-copy`
 | 
					 | 
				
			||||||
copy-command = "wl-copy"
 | 
					 | 
				
			||||||
# Increase or decrease the size of the annotations
 | 
					 | 
				
			||||||
# annotation-size-factor = 2
 | 
					 | 
				
			||||||
# Filename to use for saving action. Omit to disable saving to file. Might contain format specifiers: https://docs.rs/chrono/latest/chrono/format/strftime/index.html
 | 
					 | 
				
			||||||
# output-filename = "/tmp/test-%Y-%m-%d_%H:%M:%S.png"
 | 
					 | 
				
			||||||
# After copying the screenshot, save it to a file as well
 | 
					 | 
				
			||||||
# save-after-copy = false
 | 
					 | 
				
			||||||
# Hide toolbars by default
 | 
					 | 
				
			||||||
# default-hide-toolbars = false
 | 
					 | 
				
			||||||
# Experimental: whether window focus shows/hides toolbars. This does not affect initial state of toolbars, see default-hide-toolbars.
 | 
					 | 
				
			||||||
# focus-toggles-toolbars = false
 | 
					 | 
				
			||||||
# The primary highlighter to use, the other is accessible by holding CTRL at the start of a highlight [possible values: block, freehand]
 | 
					 | 
				
			||||||
primary-highlighter = "block"
 | 
					 | 
				
			||||||
# Disable notifications
 | 
					 | 
				
			||||||
disable-notifications = true
 | 
					 | 
				
			||||||
# Actions to trigger on right click (order is important)
 | 
					 | 
				
			||||||
# [possible values: save-to-clipboard, save-to-file, exit]
 | 
					 | 
				
			||||||
# actions-on-right-click = []
 | 
					 | 
				
			||||||
# Actions to trigger on Enter key (order is important)
 | 
					 | 
				
			||||||
# [possible values: save-to-clipboard, save-to-file, exit]
 | 
					 | 
				
			||||||
# actions-on-enter = ["save-to-clipboard"]
 | 
					 | 
				
			||||||
# Actions to trigger on Escape key (order is important)
 | 
					 | 
				
			||||||
# [possible values: save-to-clipboard, save-to-file, exit]
 | 
					 | 
				
			||||||
# actions-on-escape = ["exit"]
 | 
					 | 
				
			||||||
# Action to perform when the Enter key is pressed [possible values: save-to-clipboard, save-to-file]
 | 
					 | 
				
			||||||
# Deprecated: use actions-on-enter instead
 | 
					 | 
				
			||||||
action-on-enter = "save-to-clipboard"
 | 
					 | 
				
			||||||
# Right click to copy
 | 
					 | 
				
			||||||
# Deprecated: use actions-on-right-click instead
 | 
					 | 
				
			||||||
# right-click-copy = false
 | 
					 | 
				
			||||||
# request no window decoration. Please note that the compositor has the final say in this. At this point. requires xdg-decoration-unstable-v1.
 | 
					 | 
				
			||||||
# no-window-decoration = true
 | 
					 | 
				
			||||||
# experimental feature: adjust history size for brush input smooting (0: disabled, default: 0, try e.g. 5 or 10)
 | 
					 | 
				
			||||||
# brush-smooth-history-size = 10
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Font to use for text annotations
 | 
					 | 
				
			||||||
[font]
 | 
					 | 
				
			||||||
family = "Roboto"
 | 
					 | 
				
			||||||
style = "Bold"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Custom colours for the colour palette
 | 
					 | 
				
			||||||
[color-palette]
 | 
					 | 
				
			||||||
# These will be shown in the toolbar for quick selection
 | 
					 | 
				
			||||||
palette = [
 | 
					 | 
				
			||||||
    "#ff0000",
 | 
					 | 
				
			||||||
    "#00ffff",
 | 
					 | 
				
			||||||
    "#a52a2a",
 | 
					 | 
				
			||||||
    "#dc143c",
 | 
					 | 
				
			||||||
    "#ff1493",
 | 
					 | 
				
			||||||
    "#ffd700",
 | 
					 | 
				
			||||||
    "#008000",
 | 
					 | 
				
			||||||
]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,22 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}:
 | 
					 | 
				
			||||||
let
 | 
					 | 
				
			||||||
  cfg = config.my.satty;
 | 
					 | 
				
			||||||
in
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  options.my.satty.enable = lib.mkEnableOption { };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  config = lib.mkIf cfg.enable {
 | 
					 | 
				
			||||||
    xdg.configFile."satty/config.toml" = {
 | 
					 | 
				
			||||||
      source = ./config.toml;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    home.packages = with pkgs; [
 | 
					 | 
				
			||||||
      satty
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -14,7 +14,6 @@ in
 | 
				
			||||||
  imports = [
 | 
					  imports = [
 | 
				
			||||||
    ./kanshi.nix
 | 
					    ./kanshi.nix
 | 
				
			||||||
    ./mako.nix
 | 
					    ./mako.nix
 | 
				
			||||||
    ./sway-sync-xkbmap.nix
 | 
					 | 
				
			||||||
    ./sway-binds.nix
 | 
					    ./sway-binds.nix
 | 
				
			||||||
    ./sway-modes.nix
 | 
					    ./sway-modes.nix
 | 
				
			||||||
    ./sway-assigns.nix
 | 
					    ./sway-assigns.nix
 | 
				
			||||||
| 
						 | 
					@ -33,7 +32,6 @@ in
 | 
				
			||||||
    my.swaylock.enable = true;
 | 
					    my.swaylock.enable = true;
 | 
				
			||||||
    my.mpd.enable = true;
 | 
					    my.mpd.enable = true;
 | 
				
			||||||
    my.zathura.enable = true;
 | 
					    my.zathura.enable = true;
 | 
				
			||||||
    my.satty.enable = true;
 | 
					 | 
				
			||||||
    my.waybar.enable = true;
 | 
					    my.waybar.enable = true;
 | 
				
			||||||
    my.gammastep.enable = true;
 | 
					    my.gammastep.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -77,19 +75,10 @@ in
 | 
				
			||||||
          };
 | 
					          };
 | 
				
			||||||
        output = {
 | 
					        output = {
 | 
				
			||||||
          "*" = {
 | 
					          "*" = {
 | 
				
			||||||
 | 
					            adaptive_sync = "on";
 | 
				
			||||||
            bg = "${theme.background} fill";
 | 
					            bg = "${theme.background} fill";
 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
          "AOC 24G2W1G4 ATNM6XA004804" = {
 | 
					 | 
				
			||||||
            position = "0,0";
 | 
					 | 
				
			||||||
            adaptive_sync = "on";
 | 
					 | 
				
			||||||
            mode = "1920x1080@144.000Hz";
 | 
					            mode = "1920x1080@144.000Hz";
 | 
				
			||||||
          };
 | 
					          };
 | 
				
			||||||
          "LG Electronics 25UM58G 0x01010101" = {
 | 
					 | 
				
			||||||
            position = "1920,215";
 | 
					 | 
				
			||||||
            adaptive_sync = "on";
 | 
					 | 
				
			||||||
            scale = "1.2";
 | 
					 | 
				
			||||||
            mode = "2560x1080@74.991Hz";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        fonts = {
 | 
					        fonts = {
 | 
				
			||||||
          names = [ font.interface ];
 | 
					          names = [ font.interface ];
 | 
				
			||||||
| 
						 | 
					@ -134,12 +123,9 @@ in
 | 
				
			||||||
      indicator = true;
 | 
					      indicator = true;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    services.gpg-agent.pinentry.package = pkgs.pinentry-all;
 | 
					    services.gpg-agent.pinentryPackage = pkgs.pinentry-all;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    xdg.configFile."OpenTabletDriver/settings.json" = {
 | 
					    xdg.configFile."OpenTabletDriver/settings.json".source = ./open-tablet-driver.json;
 | 
				
			||||||
      force = true;
 | 
					 | 
				
			||||||
      source = ./open-tablet-driver.json;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    home.packages = with pkgs; [
 | 
					    home.packages = with pkgs; [
 | 
				
			||||||
      mySway
 | 
					      mySway
 | 
				
			||||||
| 
						 | 
					@ -164,7 +150,6 @@ in
 | 
				
			||||||
      wl-clipboard
 | 
					      wl-clipboard
 | 
				
			||||||
      wtype
 | 
					      wtype
 | 
				
			||||||
      wl-crosshair
 | 
					      wl-crosshair
 | 
				
			||||||
      caffeinated
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
      grim
 | 
					      grim
 | 
				
			||||||
      satty
 | 
					      satty
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,24 +8,6 @@ in
 | 
				
			||||||
  config.services.kanshi = lib.mkIf cfg.enable {
 | 
					  config.services.kanshi = lib.mkIf cfg.enable {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    settings = [
 | 
					    settings = [
 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        profile = {
 | 
					 | 
				
			||||||
          name = "home";
 | 
					 | 
				
			||||||
          outputs = [
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
              criteria = "AOC 24G2W1G4 ATNM6XA004804";
 | 
					 | 
				
			||||||
              position = "0,0";
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
              criteria = "LG Electronics 25UM58G 0x01010101";
 | 
					 | 
				
			||||||
              position = "1920,215";
 | 
					 | 
				
			||||||
              scale = 1.2;
 | 
					 | 
				
			||||||
              mode = "2560x1080@74.991Hz";
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          ];
 | 
					 | 
				
			||||||
          exec = [ "xrdb .Xresources" ];
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        profile = {
 | 
					        profile = {
 | 
				
			||||||
          name = "sedetary";
 | 
					          name = "sedetary";
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -20,28 +20,26 @@ in
 | 
				
			||||||
  config = lib.mkIf cfg.enable {
 | 
					  config = lib.mkIf cfg.enable {
 | 
				
			||||||
    services.mako = {
 | 
					    services.mako = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      borderSize = 2;
 | 
				
			||||||
 | 
					      padding = "5";
 | 
				
			||||||
 | 
					      margin = "15";
 | 
				
			||||||
 | 
					      layer = "overlay";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      settings = {
 | 
					      font = "${font.interface} ${toString font.size.small}";
 | 
				
			||||||
        border-size = 2;
 | 
					      textColor = color.txt;
 | 
				
			||||||
        padding = "5";
 | 
					 | 
				
			||||||
        margin = "15";
 | 
					 | 
				
			||||||
        layer = "overlay";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        font = "${font.interface} ${toString font.size.small}";
 | 
					      backgroundColor = color.bg;
 | 
				
			||||||
        text-color = color.txt;
 | 
					      borderColor = accent.color;
 | 
				
			||||||
 | 
					      progressColor = "over ${accent.color}88";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        background-color = color.bg;
 | 
					      defaultTimeout = 10000;
 | 
				
			||||||
        border-color = accent.color;
 | 
					 | 
				
			||||||
        progress-color = "over ${accent.color}88";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        default-timeout = 10000;
 | 
					      extraConfig = ''
 | 
				
			||||||
 | 
					        [app-name=volumesh]
 | 
				
			||||||
        "app-name=volumesh" = {
 | 
					        default-timeout=5000
 | 
				
			||||||
          "default-timeout" = "5000";
 | 
					        group-by=app-name
 | 
				
			||||||
          "group-by" = "app-name";
 | 
					        format=<b>%s</b>\n%b
 | 
				
			||||||
          "format" = "<b>%s</b>\\n%b";
 | 
					      '';
 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # # {{@@ header() @@}}
 | 
					      # # {{@@ header() @@}}
 | 
				
			||||||
      # # text
 | 
					      # # text
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,13 +14,12 @@ let
 | 
				
			||||||
  terminal = "alacritty";
 | 
					  terminal = "alacritty";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  _lock = pkgs.writeShellScriptBin "_lock" ''
 | 
					  _lock = pkgs.writeShellScriptBin "_lock" ''
 | 
				
			||||||
    pkill caffeinated || true
 | 
					 | 
				
			||||||
    ${pkgs.sway}/bin/swaymsg mode default
 | 
					    ${pkgs.sway}/bin/swaymsg mode default
 | 
				
			||||||
    ${pkgs.swaylock}/bin/swaylock -f
 | 
					    ${pkgs.swaylock}/bin/swaylock -f
 | 
				
			||||||
  '';
 | 
					  '';
 | 
				
			||||||
  _suspend = pkgs.writeShellScriptBin "_suspend" ''
 | 
					  _suspend = pkgs.writeShellScriptBin "_suspend" ''
 | 
				
			||||||
    ${pkgs.sway}/bin/swaymsg mode default
 | 
					    ${pkgs.sway}/bin/swaymsg mode default
 | 
				
			||||||
    pkill caffeinated || true
 | 
					    systemctl --user start swayidle.service
 | 
				
			||||||
    systemctl suspend
 | 
					    systemctl suspend
 | 
				
			||||||
  '';
 | 
					  '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -110,8 +109,6 @@ let
 | 
				
			||||||
            "${mod}+Control+${keyBind}" = "resize ${resize_cmd}";
 | 
					            "${mod}+Control+${keyBind}" = "resize ${resize_cmd}";
 | 
				
			||||||
            #  focus output
 | 
					            #  focus output
 | 
				
			||||||
            "${mod}+mod1+${keyBind}" = "focus output ${direction}";
 | 
					            "${mod}+mod1+${keyBind}" = "focus output ${direction}";
 | 
				
			||||||
            #  Move window to output
 | 
					 | 
				
			||||||
            "${mod}+mod1+Control+${keyBind}" = "move window output ${direction}; focus output ${direction}";
 | 
					 | 
				
			||||||
            #  Move workspace to output
 | 
					            #  Move workspace to output
 | 
				
			||||||
            "${mod}+mod1+Shift+${keyBind}" = "move workspace output ${direction}";
 | 
					            "${mod}+mod1+Shift+${keyBind}" = "move workspace output ${direction}";
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
| 
						 | 
					@ -127,8 +124,9 @@ let
 | 
				
			||||||
    "${mod}+v" = "splitv";
 | 
					    "${mod}+v" = "splitv";
 | 
				
			||||||
    "${mod}+a" = "focus parent";
 | 
					    "${mod}+a" = "focus parent";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    "${mod}+Shift+z" = "move scratchpad";
 | 
					    ## TODO:
 | 
				
			||||||
    "${mod}+z" = "scratchpad show";
 | 
					    # "${mod}+Shift+minus" = "move scratchpad";
 | 
				
			||||||
 | 
					    # "${mod}+minus" = "scratchpad show";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  audio_binds = {
 | 
					  audio_binds = {
 | 
				
			||||||
| 
						 | 
					@ -145,7 +143,7 @@ let
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  system_binds = {
 | 
					  system_binds = {
 | 
				
			||||||
    "--locked Ctrl+${mod}+z" = "exec ${_suspend}/bin/_suspend";
 | 
					    "--locked Ctrl+${mod}+z" = "exec ${_suspend}/bin/_suspend";
 | 
				
			||||||
    "${mod}+Alt+c" = "exec pkill caffeinated || exec caffeinated";
 | 
					    "${mod}+Alt+c" = "exec ${pkgs._sway_idle_toggle}/bin/_sway_idle_toggle";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  screenshot_binds = {
 | 
					  screenshot_binds = {
 | 
				
			||||||
| 
						 | 
					@ -162,7 +160,7 @@ let
 | 
				
			||||||
  screen_binds = {
 | 
					  screen_binds = {
 | 
				
			||||||
    "XF86MonBrightnessDown" = "exec brightnessctl --min-value=1 set 5%-";
 | 
					    "XF86MonBrightnessDown" = "exec brightnessctl --min-value=1 set 5%-";
 | 
				
			||||||
    "XF86MonBrightnessUp" = "exec brightnessctl --min-value=1 set 5%+";
 | 
					    "XF86MonBrightnessUp" = "exec brightnessctl --min-value=1 set 5%+";
 | 
				
			||||||
    "${mod}+l" = "exec ${lib.getExe _lock}";
 | 
					    "${mod}+l" = lib.getExe _lock;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  other_binds = {
 | 
					  other_binds = {
 | 
				
			||||||
| 
						 | 
					@ -173,7 +171,9 @@ let
 | 
				
			||||||
    "${mod}+c" = "exec ${pkgs.color_picker}/bin/color_picker";
 | 
					    "${mod}+c" = "exec ${pkgs.color_picker}/bin/color_picker";
 | 
				
			||||||
    "${mod}+Return" = "exec ${terminal}";
 | 
					    "${mod}+Return" = "exec ${terminal}";
 | 
				
			||||||
    "${mod}+Ctrl+Return" = "exec thunar";
 | 
					    "${mod}+Ctrl+Return" = "exec thunar";
 | 
				
			||||||
    "${mod}+Shift+s" = "exec ${pkgs.screenshotsh}/bin/screenshotsh edit";
 | 
					    "${mod}+Shift+s" = ''
 | 
				
			||||||
 | 
					      exec grim - | satty --filename - --fullscreen --output-filename "$(xdg-user-dir PICTURES)"/Screenshots/satty-$(date '+%Y%m%d-%H:%M:%S').png
 | 
				
			||||||
 | 
					    '';
 | 
				
			||||||
    "${mod}+Ctrl+v" = "exec wl-paste | tesseract -l por - - | wl-copy";
 | 
					    "${mod}+Ctrl+v" = "exec wl-paste | tesseract -l por - - | wl-copy";
 | 
				
			||||||
    "${mod}+k" = "exec showkeys";
 | 
					    "${mod}+k" = "exec showkeys";
 | 
				
			||||||
    "${mod}+Alt+x" = "exec pkill wl-crosshair || exec wl-crosshair";
 | 
					    "${mod}+Alt+x" = "exec pkill wl-crosshair || exec wl-crosshair";
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,27 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}:
 | 
					 | 
				
			||||||
let
 | 
					 | 
				
			||||||
  cfg = config.my.sway;
 | 
					 | 
				
			||||||
in
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config = lib.mkIf cfg.enable {
 | 
					 | 
				
			||||||
    systemd.user.services.sway-sync-xkbmap = {
 | 
					 | 
				
			||||||
      Unit = {
 | 
					 | 
				
			||||||
        Description = "Sync xkbmap with sway keyboard layout";
 | 
					 | 
				
			||||||
        PartOf = [ "graphical-session.target" ];
 | 
					 | 
				
			||||||
        After = [ "graphical-session.target" ];
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      Service = {
 | 
					 | 
				
			||||||
        ExecStart = lib.getExe pkgs.sway-sync-xkbmap;
 | 
					 | 
				
			||||||
        Restart = "on-failure";
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      Install = {
 | 
					 | 
				
			||||||
        WantedBy = [ "sway-session.target" ];
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -21,32 +21,33 @@ lib.mkIf (desktop == "sway") {
 | 
				
			||||||
    package = pkgs.bibata-cursors;
 | 
					    package = pkgs.bibata-cursors;
 | 
				
			||||||
    gtk.enable = true;
 | 
					    gtk.enable = true;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  gtk = {
 | 
					  gtk =
 | 
				
			||||||
    enable = true;
 | 
					 | 
				
			||||||
    font = {
 | 
					 | 
				
			||||||
      name = font.interface;
 | 
					 | 
				
			||||||
      size = font.size.small;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    theme = {
 | 
					 | 
				
			||||||
      name = gtk_theme;
 | 
					 | 
				
			||||||
      package = pkgs.orchis_theme_compact;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    iconTheme = {
 | 
					 | 
				
			||||||
      name = icon_theme;
 | 
					 | 
				
			||||||
      package = pkgs.papirus_red;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  // (
 | 
					 | 
				
			||||||
    let
 | 
					 | 
				
			||||||
      shared.extraConfig = {
 | 
					 | 
				
			||||||
        gtk-decoration-layout = "menu:";
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    in
 | 
					 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      gtk4 = shared;
 | 
					      enable = true;
 | 
				
			||||||
      gtk3 = shared;
 | 
					      font = {
 | 
				
			||||||
 | 
					        name = font.interface;
 | 
				
			||||||
 | 
					        size = font.size.small;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      theme = {
 | 
				
			||||||
 | 
					        name = gtk_theme;
 | 
				
			||||||
 | 
					        package = pkgs.orchis_theme_compact;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      iconTheme = {
 | 
				
			||||||
 | 
					        name = icon_theme;
 | 
				
			||||||
 | 
					        package = pkgs.papirus_red;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  );
 | 
					    // (
 | 
				
			||||||
 | 
					      let
 | 
				
			||||||
 | 
					        shared.extraConfig = {
 | 
				
			||||||
 | 
					          gtk-decoration-layout = "menu:";
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					      in
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        gtk4 = shared;
 | 
				
			||||||
 | 
					        gtk3 = shared;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  xdg.configFile."gtk-3.0/settings.ini".force = true;
 | 
					  xdg.configFile."gtk-3.0/settings.ini".force = true;
 | 
				
			||||||
  xdg.configFile."gtk-4.0/settings.ini".force = true;
 | 
					  xdg.configFile."gtk-4.0/settings.ini".force = true;
 | 
				
			||||||
| 
						 | 
					@ -54,7 +55,7 @@ lib.mkIf (desktop == "sway") {
 | 
				
			||||||
  qt = {
 | 
					  qt = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    platformTheme.name = "gtk3";
 | 
					    platformTheme.name = "gtk3";
 | 
				
			||||||
    style.name = "kvantum";
 | 
					    style.name = "qt5ct";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  dconf.settings = {
 | 
					  dconf.settings = {
 | 
				
			||||||
| 
						 | 
					@ -69,6 +70,28 @@ lib.mkIf (desktop == "sway") {
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # fonts.fontconfig.enable = true;
 | 
				
			||||||
 | 
					  xdg.configFile = {
 | 
				
			||||||
 | 
					    "qt5ct/qt5ct.conf".text = ''
 | 
				
			||||||
 | 
					      [Appearance]
 | 
				
			||||||
 | 
					      # color_scheme_path=/nix/store/f07mk0vrm47jxw3y5v99hxncy0w4vcyq-qt5ct-1.5/share/qt5ct/colors/darker.conf
 | 
				
			||||||
 | 
					      custom_palette=false
 | 
				
			||||||
 | 
					      icon_theme=${icon_theme}
 | 
				
			||||||
 | 
					      standard_dialogs=default
 | 
				
			||||||
 | 
					      style=kvantum-dark
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # [Fonts]
 | 
				
			||||||
 | 
					      # fixed=@Variant(\0\0\0@\0\0\0\x1c\0H\0\x61\0\x63\0k\0 \0N\0\x65\0r\0\x64\0 \0\x46\0o\0n\0t@(\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
 | 
				
			||||||
 | 
					      # general=@Variant(\0\0\0@\0\0\0\x1e\0L\0i\0\x62\0\x65\0r\0\x61\0t\0i\0o\0n\0 \0S\0\x61\0n\0s@(\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
 | 
				
			||||||
 | 
					    '';
 | 
				
			||||||
 | 
					    "kdedefaults/kdeglobals".text = ''
 | 
				
			||||||
 | 
					      [General]
 | 
				
			||||||
 | 
					      ColorScheme=BreezeDark
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      [Icons]
 | 
				
			||||||
 | 
					      Theme=${icon_theme}
 | 
				
			||||||
 | 
					    '';
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
  services.xsettingsd = {
 | 
					  services.xsettingsd = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    settings = {
 | 
					    settings = {
 | 
				
			||||||
| 
						 | 
					@ -82,6 +105,11 @@ lib.mkIf (desktop == "sway") {
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
 | 
					    libsForQt5.qt5ct
 | 
				
			||||||
 | 
					    libsForQt5.qtstyleplugin-kvantum
 | 
				
			||||||
 | 
					    qt6Packages.qt6ct
 | 
				
			||||||
 | 
					    qt6Packages.qtstyleplugin-kvantum
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pkgs.bibata-cursors
 | 
					    pkgs.bibata-cursors
 | 
				
			||||||
    pkgs.orchis_theme_compact
 | 
					    pkgs.orchis_theme_compact
 | 
				
			||||||
    pkgs.papirus_red
 | 
					    pkgs.papirus_red
 | 
				
			||||||
| 
						 | 
					@ -91,6 +119,7 @@ lib.mkIf (desktop == "sway") {
 | 
				
			||||||
    hack-font
 | 
					    hack-font
 | 
				
			||||||
    font-awesome_5
 | 
					    font-awesome_5
 | 
				
			||||||
    fira-code
 | 
					    fira-code
 | 
				
			||||||
 | 
					    nerdfonts_fira_hack
 | 
				
			||||||
    material-wifi-icons
 | 
					    material-wifi-icons
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -116,6 +116,6 @@ rec {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  dmenu = "bmenu";
 | 
					  dmenu = "bmenu";
 | 
				
			||||||
  desktop = "sway";
 | 
					  desktop = "sway";
 | 
				
			||||||
  browser = "firefox-devedition";
 | 
					  browser = "firefox";
 | 
				
			||||||
  editor = "kakoune";
 | 
					  editor = "kakoune";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,7 +4,7 @@
 | 
				
			||||||
  programs.vscode = {
 | 
					  programs.vscode = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    package = pkgs.vscodium;
 | 
					    package = pkgs.vscodium;
 | 
				
			||||||
    profiles.default.extensions = with pkgs.vscode-extensions; [
 | 
					    extensions = with pkgs.vscode-extensions; [
 | 
				
			||||||
      jnoortheen.nix-ide
 | 
					      jnoortheen.nix-ide
 | 
				
			||||||
      github.github-vscode-theme
 | 
					      github.github-vscode-theme
 | 
				
			||||||
      rust-lang.rust-analyzer
 | 
					      rust-lang.rust-analyzer
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,10 +3,12 @@
 | 
				
			||||||
  osConfig,
 | 
					  osConfig,
 | 
				
			||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  lib,
 | 
					  lib,
 | 
				
			||||||
 | 
					  font,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  inherit (config.my)
 | 
					  inherit (config.my)
 | 
				
			||||||
 | 
					    key
 | 
				
			||||||
    theme
 | 
					    theme
 | 
				
			||||||
    accent
 | 
					    accent
 | 
				
			||||||
    font
 | 
					    font
 | 
				
			||||||
| 
						 | 
					@ -38,7 +40,6 @@ in
 | 
				
			||||||
            "custom/playerctl"
 | 
					            "custom/playerctl"
 | 
				
			||||||
            "tray"
 | 
					            "tray"
 | 
				
			||||||
            "custom/controller-battery"
 | 
					            "custom/controller-battery"
 | 
				
			||||||
            "custom/mouse-battery"
 | 
					 | 
				
			||||||
            "custom/caffeine"
 | 
					            "custom/caffeine"
 | 
				
			||||||
            "pulseaudio"
 | 
					            "pulseaudio"
 | 
				
			||||||
            (lib.optional (osConfig.services.vpn.enable or false) "custom/vpn")
 | 
					            (lib.optional (osConfig.services.vpn.enable or false) "custom/vpn")
 | 
				
			||||||
| 
						 | 
					@ -165,16 +166,12 @@ in
 | 
				
			||||||
            format = "{}";
 | 
					            format = "{}";
 | 
				
			||||||
            exec = lib.getExe pkgs.controller-battery;
 | 
					            exec = lib.getExe pkgs.controller-battery;
 | 
				
			||||||
            interval = 1;
 | 
					            interval = 1;
 | 
				
			||||||
          };
 | 
					            tooltip = false;
 | 
				
			||||||
          "custom/mouse-battery" = {
 | 
					 | 
				
			||||||
            format = "{}";
 | 
					 | 
				
			||||||
            exec = lib.getExe pkgs.mouse-battery;
 | 
					 | 
				
			||||||
            interval = 1;
 | 
					 | 
				
			||||||
          };
 | 
					          };
 | 
				
			||||||
          "custom/caffeine" = {
 | 
					          "custom/caffeine" = {
 | 
				
			||||||
            format = "{}";
 | 
					            format = "{}";
 | 
				
			||||||
            exec = "pgrep caffeinated > /dev/null && echo '' || echo '' ";
 | 
					            exec = "systemctl --user status swayidle > /dev/null && echo  || echo ";
 | 
				
			||||||
            on-click = "pkill caffeinated || exec caffeinated";
 | 
					            on-click = "${pkgs._sway_idle_toggle}/bin/_sway_idle_toggle";
 | 
				
			||||||
            interval = 1;
 | 
					            interval = 1;
 | 
				
			||||||
            tooltip = false;
 | 
					            tooltip = false;
 | 
				
			||||||
          };
 | 
					          };
 | 
				
			||||||
| 
						 | 
					@ -237,19 +234,23 @@ in
 | 
				
			||||||
          };
 | 
					          };
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      ];
 | 
					      ];
 | 
				
			||||||
      style = pkgs.replaceVars ./style.css {
 | 
					      style = builtins.readFile (
 | 
				
			||||||
        accent_color = accent.color;
 | 
					        pkgs.substituteAll {
 | 
				
			||||||
 | 
					          src = ./style.css;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        color_bg = color.bg;
 | 
					          accent_color = accent.color;
 | 
				
			||||||
        color_bg_dark = color.bg_dark;
 | 
					 | 
				
			||||||
        color_bg_light = color.bg_light;
 | 
					 | 
				
			||||||
        color_txt = color.txt;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        font_interface = font.interface;
 | 
					          color_bg = color.bg;
 | 
				
			||||||
 | 
					          color_bg_dark = color.bg_dark;
 | 
				
			||||||
 | 
					          color_bg_light = color.bg_light;
 | 
				
			||||||
 | 
					          color_txt = color.txt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        font_size_big = "${toString font.size.big}px";
 | 
					          font_interface = font.interface;
 | 
				
			||||||
        font_size_medium = "${toString font.size.medium}px";
 | 
					
 | 
				
			||||||
      };
 | 
					          font_size_big = "${toString font.size.big}px";
 | 
				
			||||||
 | 
					          font_size_medium = "${toString font.size.medium}px";
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    home.packages = with pkgs; [ waybar ];
 | 
					    home.packages = with pkgs; [ waybar ];
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,7 +38,6 @@ window#waybar.solo {
 | 
				
			||||||
#custom-mpd,
 | 
					#custom-mpd,
 | 
				
			||||||
#custom-playerctl,
 | 
					#custom-playerctl,
 | 
				
			||||||
#custom-controller-battery,
 | 
					#custom-controller-battery,
 | 
				
			||||||
#custom-mouse-battery,
 | 
					 | 
				
			||||||
#tray,
 | 
					#tray,
 | 
				
			||||||
#clock,
 | 
					#clock,
 | 
				
			||||||
#network,
 | 
					#network,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,8 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  inputs,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
| 
						 | 
					@ -21,4 +24,9 @@ in
 | 
				
			||||||
      videos = "${HOME}/Vídeos";
 | 
					      videos = "${HOME}/Vídeos";
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  home.sessionVariables = {
 | 
				
			||||||
 | 
					    CARGO_HOME = "${config.xdg.dataHome}/cargo";
 | 
				
			||||||
 | 
					    RUSTUP_HOME = "${config.xdg.dataHome}/rustup";
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue