Compare commits
	
		
			No commits in common. "main" and "gnome-pass-search-provider" have entirely different histories.
		
	
	
		
			main
			...
			gnome-pass
		
	
		
					 143 changed files with 1620 additions and 3199 deletions
				
			
		
							
								
								
									
										2
									
								
								.gitattributes
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitattributes
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,2 +0,0 @@
 | 
			
		|||
flake.lock binary
 | 
			
		||||
*.gpg binary
 | 
			
		||||
							
								
								
									
										37
									
								
								.sops.yaml
									
										
									
									
									
								
							
							
						
						
									
										37
									
								
								.sops.yaml
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,37 +0,0 @@
 | 
			
		|||
keys:
 | 
			
		||||
  - &lelgenio-gpg 0FECE8316E74BA6F44EFC21A2F8F21CE8721456B
 | 
			
		||||
  - &lelgenio-ssh age1zrgu7w8059xydagm60phnffghvfe9h2ca58cx8qwagqpyfuvs9fqw79c8h
 | 
			
		||||
  - &monolith-ssh age1ecyynwv93lfu7crjjp8l47defv07quzfzaktwurpep7jc9eha5pscg7lrw
 | 
			
		||||
  - &double-rainbow-ssh age1026d4c8nqyapcsy4jz57szt6zw3ejcgv3ecyvz0s89t7w7z964fqdqv52h
 | 
			
		||||
  - &phantom-ssh age1m4mqcd2kmuhfr8a22rvh02c68jkakhdfmuqgtusuv0czk4jvna7sz79p3y
 | 
			
		||||
 | 
			
		||||
creation_rules:
 | 
			
		||||
  - path_regex: secrets/[^/]+\.(yaml|json|env|ini|gpg)$
 | 
			
		||||
    key_groups:
 | 
			
		||||
    - pgp:
 | 
			
		||||
      - *lelgenio-gpg
 | 
			
		||||
      age:
 | 
			
		||||
      - *lelgenio-ssh
 | 
			
		||||
      - *monolith-ssh
 | 
			
		||||
  - path_regex: secrets/monolith/[^/]+\.(yaml|json|env|ini|gpg)$
 | 
			
		||||
    key_groups:
 | 
			
		||||
    - pgp:
 | 
			
		||||
      - *lelgenio-gpg
 | 
			
		||||
      age:
 | 
			
		||||
      - *lelgenio-ssh
 | 
			
		||||
      - *monolith-ssh
 | 
			
		||||
  - path_regex: secrets/double-rainbow/[^/]+\.(yaml|json|env|ini|gpg)$
 | 
			
		||||
    key_groups:
 | 
			
		||||
    - pgp:
 | 
			
		||||
      - *lelgenio-gpg
 | 
			
		||||
      age:
 | 
			
		||||
      - *lelgenio-ssh
 | 
			
		||||
      - *monolith-ssh
 | 
			
		||||
      - *double-rainbow-ssh
 | 
			
		||||
  - path_regex: secrets/phantom/[^/]+\.(yaml|json|env|ini|gpg)$
 | 
			
		||||
    key_groups:
 | 
			
		||||
    - pgp:
 | 
			
		||||
      - *lelgenio-gpg
 | 
			
		||||
      age:
 | 
			
		||||
      - *lelgenio-ssh
 | 
			
		||||
      - *phantom-ssh
 | 
			
		||||
							
								
								
									
										701
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										701
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							| 
						 | 
				
			
			@ -28,11 +28,11 @@
 | 
			
		|||
        "systems": "systems"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1760836749,
 | 
			
		||||
        "narHash": "sha256-wyT7Pl6tMFbFrs8Lk/TlEs81N6L+VSybPfiIgzU8lbQ=",
 | 
			
		||||
        "lastModified": 1718371084,
 | 
			
		||||
        "narHash": "sha256-abpBi61mg0g+lFFU0zY4C6oP6fBwPzbHPKBGw676xsA=",
 | 
			
		||||
        "owner": "ryantm",
 | 
			
		||||
        "repo": "agenix",
 | 
			
		||||
        "rev": "2f0f812f69f3eb4140157fe15e12739adf82e32a",
 | 
			
		||||
        "rev": "3a56735779db467538fb2e577eda28a9daacaca6",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			@ -57,38 +57,6 @@
 | 
			
		|||
        "type": "gitlab"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "catboy-spinner": {
 | 
			
		||||
      "flake": false,
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1728098748,
 | 
			
		||||
        "narHash": "sha256-FHM/a+wqctmg1LXf/XB6TcXowL0Wzbq1kSCGVnxGgL8=",
 | 
			
		||||
        "ref": "refs/heads/main",
 | 
			
		||||
        "rev": "c6fc11b0900826508f6a766c65cf92e0c7c4eab9",
 | 
			
		||||
        "revCount": 4,
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.lelgenio.com/lelgenio/catboy-spinner"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.lelgenio.com/lelgenio/catboy-spinner"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "contador-da-viagem": {
 | 
			
		||||
      "flake": false,
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1742610036,
 | 
			
		||||
        "narHash": "sha256-sY1iheemazmIVJAnoFtut6cN7HX/C5OMDY54UrmCoqE=",
 | 
			
		||||
        "ref": "refs/heads/main",
 | 
			
		||||
        "rev": "efe5ac4a16de7f78824ac89dc987ef635afa5267",
 | 
			
		||||
        "revCount": 4,
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.lelgenio.com/lelgenio/contador-da-viagem"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.lelgenio.com/lelgenio/contador-da-viagem"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "crane": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-compat": "flake-compat",
 | 
			
		||||
| 
						 | 
				
			
			@ -114,27 +82,6 @@
 | 
			
		|||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "crane_2": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "made-you-look",
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1718730147,
 | 
			
		||||
        "narHash": "sha256-QmD6B6FYpuoCqu6ZuPJH896ItNquDkn0ulQlOn4ykN8=",
 | 
			
		||||
        "owner": "ipetkov",
 | 
			
		||||
        "repo": "crane",
 | 
			
		||||
        "rev": "32c21c29b034d0a93fdb2379d6fabc40fc3d0e6c",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "ipetkov",
 | 
			
		||||
        "repo": "crane",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "crane_3": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "warthunder-leak-counter",
 | 
			
		||||
| 
						 | 
				
			
			@ -163,11 +110,11 @@
 | 
			
		|||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1744478979,
 | 
			
		||||
        "narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=",
 | 
			
		||||
        "lastModified": 1700795494,
 | 
			
		||||
        "narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
 | 
			
		||||
        "owner": "lnl7",
 | 
			
		||||
        "repo": "nix-darwin",
 | 
			
		||||
        "rev": "43975d782b418ebf4969e9ccba82466728c2851b",
 | 
			
		||||
        "rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			@ -182,7 +129,9 @@
 | 
			
		|||
        "advisory-db": "advisory-db",
 | 
			
		||||
        "crane": "crane",
 | 
			
		||||
        "flake-utils": "flake-utils_2",
 | 
			
		||||
        "nixpkgs": "nixpkgs"
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1693509848,
 | 
			
		||||
| 
						 | 
				
			
			@ -202,7 +151,9 @@
 | 
			
		|||
      "inputs": {
 | 
			
		||||
        "fenix": "fenix",
 | 
			
		||||
        "flake-utils": "flake-utils_3",
 | 
			
		||||
        "nixpkgs": "nixpkgs_2"
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1659395338,
 | 
			
		||||
| 
						 | 
				
			
			@ -225,11 +176,11 @@
 | 
			
		|||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1760701190,
 | 
			
		||||
        "narHash": "sha256-y7UhnWlER8r776JsySqsbTUh2Txf7K30smfHlqdaIQw=",
 | 
			
		||||
        "lastModified": 1719451710,
 | 
			
		||||
        "narHash": "sha256-h+bFEQHQ46pBkEsOXbxmmY6QNPPGrgpDbNlHtAKG49M=",
 | 
			
		||||
        "owner": "nix-community",
 | 
			
		||||
        "repo": "disko",
 | 
			
		||||
        "rev": "3a9450b26e69dcb6f8de6e2b07b3fc1c288d85f5",
 | 
			
		||||
        "rev": "8767dbf5d723b1b6834f4d09b217da7c31580d58",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			@ -238,20 +189,40 @@
 | 
			
		|||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "dzgui": {
 | 
			
		||||
      "flake": false,
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1702780245,
 | 
			
		||||
        "narHash": "sha256-cdW5LN2Q7eYW8xIqKPQfeYPd7e6VdJGaoA9NMHesCrE=",
 | 
			
		||||
        "owner": "aclist",
 | 
			
		||||
        "repo": "dztui",
 | 
			
		||||
        "rev": "28323f3edb8fa747dc559d1939ccdd7729e4e3a1",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "aclist",
 | 
			
		||||
        "repo": "dztui",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "dzgui-nix": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": "nixpkgs_3"
 | 
			
		||||
        "dzgui": "dzgui",
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1749410315,
 | 
			
		||||
        "narHash": "sha256-5H8MuMMSq1WnQcvb1FiDNkKP+uyeZ8HX5GRTMfEOyLI=",
 | 
			
		||||
        "lastModified": 1702850463,
 | 
			
		||||
        "narHash": "sha256-qR/c/GjsLUzrCyHN/Q9nnClduf6OqTg26S1AFYKPzxA=",
 | 
			
		||||
        "owner": "lelgenio",
 | 
			
		||||
        "repo": "dzgui-nix",
 | 
			
		||||
        "rev": "49adbb1edfb3c25b0cd8256d35673394386065e7",
 | 
			
		||||
        "rev": "2ed6515b27d8186b9fedfe1dcaf861f07e796a0d",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "lelgenio",
 | 
			
		||||
        "ref": "dzgui-4.1.0",
 | 
			
		||||
        "repo": "dzgui-nix",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
| 
						 | 
				
			
			@ -295,13 +266,43 @@
 | 
			
		|||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "flake-compat_2": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1696426674,
 | 
			
		||||
        "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
 | 
			
		||||
        "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
 | 
			
		||||
        "revCount": 57,
 | 
			
		||||
        "type": "tarball",
 | 
			
		||||
        "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "type": "tarball",
 | 
			
		||||
        "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "flake-compat_3": {
 | 
			
		||||
      "flake": false,
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1747046372,
 | 
			
		||||
        "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
 | 
			
		||||
        "lastModified": 1650374568,
 | 
			
		||||
        "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
 | 
			
		||||
        "owner": "edolstra",
 | 
			
		||||
        "repo": "flake-compat",
 | 
			
		||||
        "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
 | 
			
		||||
        "rev": "b4a34015c698c7793d592d66adbab377907a2be8",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "edolstra",
 | 
			
		||||
        "repo": "flake-compat",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "flake-compat_4": {
 | 
			
		||||
      "flake": false,
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1696426674,
 | 
			
		||||
        "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
 | 
			
		||||
        "owner": "edolstra",
 | 
			
		||||
        "repo": "flake-compat",
 | 
			
		||||
        "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			@ -328,6 +329,24 @@
 | 
			
		|||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "flake-utils-plus": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-utils": "flake-utils_4"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1696331477,
 | 
			
		||||
        "narHash": "sha256-YkbRa/1wQWdWkVJ01JvV+75KIdM37UErqKgTf0L54Fk=",
 | 
			
		||||
        "owner": "gytis-ivaskevicius",
 | 
			
		||||
        "repo": "flake-utils-plus",
 | 
			
		||||
        "rev": "bfc53579db89de750b25b0c5e7af299e0c06d7d3",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "gytis-ivaskevicius",
 | 
			
		||||
        "repo": "flake-utils-plus",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "flake-utils_2": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "systems": "systems_3"
 | 
			
		||||
| 
						 | 
				
			
			@ -363,14 +382,14 @@
 | 
			
		|||
    },
 | 
			
		||||
    "flake-utils_4": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "systems": "systems_4"
 | 
			
		||||
        "systems": "systems_5"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1681202837,
 | 
			
		||||
        "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
 | 
			
		||||
        "lastModified": 1694529238,
 | 
			
		||||
        "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
 | 
			
		||||
        "owner": "numtide",
 | 
			
		||||
        "repo": "flake-utils",
 | 
			
		||||
        "rev": "cfacdce06f30d2b68473a46042957675eebb3401",
 | 
			
		||||
        "rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			@ -381,7 +400,7 @@
 | 
			
		|||
    },
 | 
			
		||||
    "flake-utils_5": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "systems": "systems_5"
 | 
			
		||||
        "systems": "systems_7"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1681202837,
 | 
			
		||||
| 
						 | 
				
			
			@ -399,7 +418,7 @@
 | 
			
		|||
    },
 | 
			
		||||
    "flake-utils_6": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "systems": "systems_6"
 | 
			
		||||
        "systems": "systems_8"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1681202837,
 | 
			
		||||
| 
						 | 
				
			
			@ -417,7 +436,7 @@
 | 
			
		|||
    },
 | 
			
		||||
    "flake-utils_7": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "systems": "systems_7"
 | 
			
		||||
        "systems": "systems_9"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1710146030,
 | 
			
		||||
| 
						 | 
				
			
			@ -433,70 +452,6 @@
 | 
			
		|||
        "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": {
 | 
			
		||||
      "flake": false,
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1728232065,
 | 
			
		||||
        "narHash": "sha256-1DUW1YqZALPFxBM7HYcNZiCZQvMqUiJ1m04NU4IIe3I=",
 | 
			
		||||
        "ref": "refs/heads/main",
 | 
			
		||||
        "rev": "10f7485fea930bb45e97fbda0cd68f199a7e8f59",
 | 
			
		||||
        "revCount": 1,
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.lelgenio.com/lelgenio/hello-fonts"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.lelgenio.com/lelgenio/hello-fonts"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "home-manager": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
| 
						 | 
				
			
			@ -504,60 +459,20 @@
 | 
			
		|||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1758463745,
 | 
			
		||||
        "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
 | 
			
		||||
        "lastModified": 1718530513,
 | 
			
		||||
        "narHash": "sha256-BmO8d0r+BVlwWtMLQEYnwmngqdXIuyFzMwvmTcLMee8=",
 | 
			
		||||
        "owner": "nix-community",
 | 
			
		||||
        "repo": "home-manager",
 | 
			
		||||
        "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
 | 
			
		||||
        "rev": "a1fddf0967c33754271761d91a3d921772b30d0e",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "nix-community",
 | 
			
		||||
        "ref": "release-25.05",
 | 
			
		||||
        "ref": "release-24.05",
 | 
			
		||||
        "repo": "home-manager",
 | 
			
		||||
        "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": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "crane": "crane_2",
 | 
			
		||||
        "flake-utils": "flake-utils_4",
 | 
			
		||||
        "nixpkgs": "nixpkgs_4"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1728159958,
 | 
			
		||||
        "narHash": "sha256-r/h/ch70KfOQ8moftDhHagu3WajglaqU+hrEzUtTM1Y=",
 | 
			
		||||
        "ref": "refs/heads/main",
 | 
			
		||||
        "rev": "96e978aa2f414d4b92b78e7ae975d7ff7db95a91",
 | 
			
		||||
        "revCount": 3,
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.lelgenio.com/lelgenio/made-you-look"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.lelgenio.com/lelgenio/made-you-look"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nix-index-database": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
| 
						 | 
				
			
			@ -565,11 +480,11 @@
 | 
			
		|||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1760846226,
 | 
			
		||||
        "narHash": "sha256-xmU8kAsRprJiTGBTaGrwmjBP3AMA9ltlrxHKFuy5JWc=",
 | 
			
		||||
        "lastModified": 1719111455,
 | 
			
		||||
        "narHash": "sha256-rnIxHx+fLpydjMQsbpZ21kblUr/lMqSaAtMA4+qMMEE=",
 | 
			
		||||
        "owner": "Mic92",
 | 
			
		||||
        "repo": "nix-index-database",
 | 
			
		||||
        "rev": "5024e1901239a76b7bf94a4cd27f3507e639d49e",
 | 
			
		||||
        "rev": "4293f532d0107dfb7e6f8b34a0421dc8111320e6",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			@ -578,187 +493,118 @@
 | 
			
		|||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nix-software-center": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixos-appstream-data": "nixos-appstream-data",
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ],
 | 
			
		||||
        "utils": "utils"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1714856183,
 | 
			
		||||
        "narHash": "sha256-Ue7xV+rZqImux4DDj3VMla4LIH2g8VeXbTJwgvX7wOo=",
 | 
			
		||||
        "owner": "vlinkz",
 | 
			
		||||
        "repo": "nix-software-center",
 | 
			
		||||
        "rev": "b9e0f53536e1e94e7d8c3cda3c6866b3f9d01386",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "vlinkz",
 | 
			
		||||
        "repo": "nix-software-center",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixos-appstream-data": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-utils": [
 | 
			
		||||
          "nix-software-center",
 | 
			
		||||
          "utils"
 | 
			
		||||
        ],
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nix-software-center",
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1712858390,
 | 
			
		||||
        "narHash": "sha256-XE7gr+zU3N4SHPAhsgk8cVAFp1iBg+Lxxp3y4dUF1vE=",
 | 
			
		||||
        "owner": "korfuri",
 | 
			
		||||
        "repo": "nixos-appstream-data",
 | 
			
		||||
        "rev": "0465d42a4433faa63b7a5eb0b8d397937c9fc13a",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "korfuri",
 | 
			
		||||
        "ref": "flake",
 | 
			
		||||
        "repo": "nixos-appstream-data",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixos-conf-editor": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-compat": "flake-compat_2",
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ],
 | 
			
		||||
        "snowfall-lib": "snowfall-lib"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1707338010,
 | 
			
		||||
        "narHash": "sha256-UtLeZzDdk96sLTRcWsGrkWCslNUDytrGe0VmOTB/iig=",
 | 
			
		||||
        "owner": "vlinkz",
 | 
			
		||||
        "repo": "nixos-conf-editor",
 | 
			
		||||
        "rev": "27b5e92f580f794c690093503869aab242f075ab",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "vlinkz",
 | 
			
		||||
        "repo": "nixos-conf-editor",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixos-mailserver": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "blobs": "blobs",
 | 
			
		||||
        "flake-compat": "flake-compat_2",
 | 
			
		||||
        "git-hooks": "git-hooks",
 | 
			
		||||
        "flake-compat": "flake-compat_4",
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ],
 | 
			
		||||
        "nixpkgs-25_05": "nixpkgs-25_05"
 | 
			
		||||
        "nixpkgs-24_05": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ],
 | 
			
		||||
        "utils": "utils_2"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1755110674,
 | 
			
		||||
        "narHash": "sha256-PigqTAGkdBYXVFWsJnqcirrLeFqRFN4PFigLA8FzxeI=",
 | 
			
		||||
        "lastModified": 1718084203,
 | 
			
		||||
        "narHash": "sha256-Cx1xoVfSMv1XDLgKg08CUd1EoTYWB45VmB9XIQzhmzI=",
 | 
			
		||||
        "owner": "simple-nixos-mailserver",
 | 
			
		||||
        "repo": "nixos-mailserver",
 | 
			
		||||
        "rev": "f5936247dbdb8501221978562ab0b302dd75456c",
 | 
			
		||||
        "rev": "29916981e7b3b5782dc5085ad18490113f8ff63b",
 | 
			
		||||
        "type": "gitlab"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "simple-nixos-mailserver",
 | 
			
		||||
        "ref": "nixos-25.05",
 | 
			
		||||
        "ref": "nixos-24.05",
 | 
			
		||||
        "repo": "nixos-mailserver",
 | 
			
		||||
        "type": "gitlab"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1684425776,
 | 
			
		||||
        "narHash": "sha256-eXzSIXkzXa9EecoDF9xCsoim0vd++8dvYU7QOuQMO8A=",
 | 
			
		||||
        "lastModified": 1719253556,
 | 
			
		||||
        "narHash": "sha256-A/76RFUVxZ/7Y8+OMVL1Lc8LRhBxZ8ZE2bpMnvZ1VpY=",
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "8dc174d8b768893172eb3e52008f10f48dfbd5cf",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "ref": "release-22.11",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs-25_05": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1747610100,
 | 
			
		||||
        "narHash": "sha256-rpR5ZPMkWzcnCcYYo3lScqfuzEw5Uyfh+R0EKZfroAc=",
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "ca49c4304acf0973078db0a9d200fd2bae75676d",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "ref": "nixos-25.05",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs-unstable": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1761114652,
 | 
			
		||||
        "narHash": "sha256-f/QCJM/YhrV/lavyCVz8iU3rlZun6d+dAiC3H+CDle4=",
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "01f116e4df6a15f4ccdffb1bcd41096869fb385c",
 | 
			
		||||
        "rev": "fc07dc3bdf2956ddd64f24612ea7fc894933eb2e",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "id": "nixpkgs",
 | 
			
		||||
        "ref": "nixos-unstable",
 | 
			
		||||
        "ref": "nixos-24.05",
 | 
			
		||||
        "type": "indirect"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs_2": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1659219666,
 | 
			
		||||
        "narHash": "sha256-pzYr5fokQPHv7CmUXioOhhzDy/XyWOIXP4LZvv/T7Mk=",
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "7b9be38c7250b22d829ab6effdee90d5e40c6e5c",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "id": "nixpkgs",
 | 
			
		||||
        "ref": "nixos-unstable",
 | 
			
		||||
        "type": "indirect"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs_3": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1732812356,
 | 
			
		||||
        "narHash": "sha256-LNcgjOLArRlx2W6XSi0yc0xwLjrK3KF9LxAMqUgFDgw=",
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "581d7e4d23b91daf2afa0005a5d3d01d6a8884fe",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "id": "nixpkgs",
 | 
			
		||||
        "ref": "nixpkgs-unstable",
 | 
			
		||||
        "type": "indirect"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs_4": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1719010183,
 | 
			
		||||
        "narHash": "sha256-8HMWaqpyjbVeEsmy/A2H6VFtW/Wr71vkPLnpTiAXu+8=",
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "0f620ca71fa69abb411a6c78739a9b171a0a95a6",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "ref": "release-24.05",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs_5": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1761173472,
 | 
			
		||||
        "narHash": "sha256-m9W0dYXflzeGgKNravKJvTMR4Qqa2MVD11AwlGMufeE=",
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "c8aa8cc00a5cb57fada0851a038d35c08a36a2bb",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "id": "nixpkgs",
 | 
			
		||||
        "ref": "nixos-25.05",
 | 
			
		||||
        "type": "indirect"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs_6": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1761236834,
 | 
			
		||||
        "narHash": "sha256-+pthv6hrL5VLW2UqPdISGuLiUZ6SnAXdd2DdUE+fV2Q=",
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "d5faa84122bc0a1fd5d378492efce4e289f8eac1",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "ref": "nixpkgs-unstable",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs_7": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1719010183,
 | 
			
		||||
        "narHash": "sha256-8HMWaqpyjbVeEsmy/A2H6VFtW/Wr71vkPLnpTiAXu+8=",
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "0f620ca71fa69abb411a6c78739a9b171a0a95a6",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "ref": "release-24.05",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs_8": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1714091391,
 | 
			
		||||
        "narHash": "sha256-68n3GBvlm1MIeJXadPzQ3v8Y9sIW3zmv8gI5w5sliC8=",
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "4c86138ce486d601d956a165e2f7a0fc029a03c1",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "ref": "nixpkgs-unstable",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "plymouth-themes": {
 | 
			
		||||
      "flake": false,
 | 
			
		||||
      "locked": {
 | 
			
		||||
| 
						 | 
				
			
			@ -778,11 +624,11 @@
 | 
			
		|||
    "ranger-icons": {
 | 
			
		||||
      "flake": false,
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1749128401,
 | 
			
		||||
        "narHash": "sha256-qvWqKVS4C5OO6bgETBlVDwcv4eamGlCUltjsBU3gAbA=",
 | 
			
		||||
        "lastModified": 1713564482,
 | 
			
		||||
        "narHash": "sha256-sijO9leDXgnjgcVlh5fKYalhjOupwFMRyH0xh2g/rEQ=",
 | 
			
		||||
        "owner": "alexanderjeurissen",
 | 
			
		||||
        "repo": "ranger_devicons",
 | 
			
		||||
        "rev": "1bcaff0366a9d345313dc5af14002cfdcddabb82",
 | 
			
		||||
        "rev": "a8d626485ca83719e1d8d5e32289cd96a097c861",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			@ -794,30 +640,21 @@
 | 
			
		|||
    "root": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "agenix": "agenix",
 | 
			
		||||
        "catboy-spinner": "catboy-spinner",
 | 
			
		||||
        "contador-da-viagem": "contador-da-viagem",
 | 
			
		||||
        "demoji": "demoji",
 | 
			
		||||
        "dhist": "dhist",
 | 
			
		||||
        "disko": "disko",
 | 
			
		||||
        "dzgui-nix": "dzgui-nix",
 | 
			
		||||
        "hello-fonts": "hello-fonts",
 | 
			
		||||
        "home-manager": "home-manager",
 | 
			
		||||
        "lsfg-vk-flake": "lsfg-vk-flake",
 | 
			
		||||
        "made-you-look": "made-you-look",
 | 
			
		||||
        "nix-index-database": "nix-index-database",
 | 
			
		||||
        "nix-software-center": "nix-software-center",
 | 
			
		||||
        "nixos-conf-editor": "nixos-conf-editor",
 | 
			
		||||
        "nixos-mailserver": "nixos-mailserver",
 | 
			
		||||
        "nixpkgs": "nixpkgs_5",
 | 
			
		||||
        "nixpkgs-unstable": "nixpkgs-unstable",
 | 
			
		||||
        "nixpkgs": "nixpkgs",
 | 
			
		||||
        "plymouth-themes": "plymouth-themes",
 | 
			
		||||
        "ranger-icons": "ranger-icons",
 | 
			
		||||
        "sops-nix": "sops-nix",
 | 
			
		||||
        "tlauncher": "tlauncher",
 | 
			
		||||
        "tomater": "tomater",
 | 
			
		||||
        "treefmt-nix": "treefmt-nix",
 | 
			
		||||
        "vpsadminos": "vpsadminos",
 | 
			
		||||
        "warthunder-leak-counter": "warthunder-leak-counter",
 | 
			
		||||
        "wl-crosshair": "wl-crosshair",
 | 
			
		||||
        "youre-wrong": "youre-wrong"
 | 
			
		||||
        "wl-crosshair": "wl-crosshair"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "rust-analyzer-src": {
 | 
			
		||||
| 
						 | 
				
			
			@ -864,23 +701,26 @@
 | 
			
		|||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "sops-nix": {
 | 
			
		||||
    "snowfall-lib": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-compat": "flake-compat_3",
 | 
			
		||||
        "flake-utils-plus": "flake-utils-plus",
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixos-conf-editor",
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1760998189,
 | 
			
		||||
        "narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=",
 | 
			
		||||
        "owner": "Mic92",
 | 
			
		||||
        "repo": "sops-nix",
 | 
			
		||||
        "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3",
 | 
			
		||||
        "lastModified": 1696432959,
 | 
			
		||||
        "narHash": "sha256-oJQZv2MYyJaVyVJY5IeevzqpGvMGKu5pZcCCJvb+xjc=",
 | 
			
		||||
        "owner": "snowfallorg",
 | 
			
		||||
        "repo": "lib",
 | 
			
		||||
        "rev": "92803a029b5314d4436a8d9311d8707b71d9f0b6",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "Mic92",
 | 
			
		||||
        "repo": "sops-nix",
 | 
			
		||||
        "owner": "snowfallorg",
 | 
			
		||||
        "repo": "lib",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
| 
						 | 
				
			
			@ -989,6 +829,36 @@
 | 
			
		|||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "systems_8": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1681028828,
 | 
			
		||||
        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
 | 
			
		||||
        "owner": "nix-systems",
 | 
			
		||||
        "repo": "default",
 | 
			
		||||
        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "nix-systems",
 | 
			
		||||
        "repo": "default",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "systems_9": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1681028828,
 | 
			
		||||
        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
 | 
			
		||||
        "owner": "nix-systems",
 | 
			
		||||
        "repo": "default",
 | 
			
		||||
        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "nix-systems",
 | 
			
		||||
        "repo": "default",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "tlauncher": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-utils": "flake-utils_5",
 | 
			
		||||
| 
						 | 
				
			
			@ -997,80 +867,69 @@
 | 
			
		|||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1734044605,
 | 
			
		||||
        "narHash": "sha256-CeCYv3JFJIySSf2eX9ceEOF1FqNGeJnzEuO5f+OvioQ=",
 | 
			
		||||
        "lastModified": 1684504342,
 | 
			
		||||
        "narHash": "sha256-rJ0eH7BuPizvXPc+LjVtovse4gWEuxP2WiyNdXjPNL4=",
 | 
			
		||||
        "ref": "refs/heads/main",
 | 
			
		||||
        "rev": "6a68f2cda0aa2fbb399a4c43b445e8c1a2df0634",
 | 
			
		||||
        "revCount": 4,
 | 
			
		||||
        "rev": "add4df7220bd0b85177a1938c02b60c966c5eb71",
 | 
			
		||||
        "revCount": 3,
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.lelgenio.com/lelgenio/tlauncher-nix"
 | 
			
		||||
        "url": "https://git.lelgenio.xyz/lelgenio/tlauncher-nix"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.lelgenio.com/lelgenio/tlauncher-nix"
 | 
			
		||||
        "url": "https://git.lelgenio.xyz/lelgenio/tlauncher-nix"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "tomater": {
 | 
			
		||||
      "flake": false,
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1728089744,
 | 
			
		||||
        "narHash": "sha256-WOz/qUKyao7lM2qcwqqcJDw4jI8mUJL6kNUNm0sxPKk=",
 | 
			
		||||
        "ref": "refs/heads/main",
 | 
			
		||||
        "rev": "efff561c745514a7874e3f5de95307a74efc7df9",
 | 
			
		||||
        "revCount": 1,
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.lelgenio.com/lelgenio/tomater"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.lelgenio.com/lelgenio/tomater"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "treefmt-nix": {
 | 
			
		||||
    "utils": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": "nixpkgs_6"
 | 
			
		||||
        "systems": "systems_4"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1761311587,
 | 
			
		||||
        "narHash": "sha256-Msq86cR5SjozQGCnC6H8C+0cD4rnx91BPltZ9KK613Y=",
 | 
			
		||||
        "lastModified": 1689068808,
 | 
			
		||||
        "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
 | 
			
		||||
        "owner": "numtide",
 | 
			
		||||
        "repo": "treefmt-nix",
 | 
			
		||||
        "rev": "2eddae033e4e74bf581c2d1dfa101f9033dbd2dc",
 | 
			
		||||
        "repo": "flake-utils",
 | 
			
		||||
        "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "numtide",
 | 
			
		||||
        "repo": "treefmt-nix",
 | 
			
		||||
        "repo": "flake-utils",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "vpsadminos": {
 | 
			
		||||
    "utils_2": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "systems": "systems_6"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1761032776,
 | 
			
		||||
        "narHash": "sha256-u/uujjN1kiUgCVs+ha4m+IMD6OwATRpW/YWJKjs48f0=",
 | 
			
		||||
        "owner": "vpsfreecz",
 | 
			
		||||
        "repo": "vpsadminos",
 | 
			
		||||
        "rev": "db4e325b1499f184f5e9a0025af2c2fab0043db3",
 | 
			
		||||
        "lastModified": 1709126324,
 | 
			
		||||
        "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=",
 | 
			
		||||
        "owner": "numtide",
 | 
			
		||||
        "repo": "flake-utils",
 | 
			
		||||
        "rev": "d465f4819400de7c8d874d50b982301f28a84605",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "vpsfreecz",
 | 
			
		||||
        "repo": "vpsadminos",
 | 
			
		||||
        "owner": "numtide",
 | 
			
		||||
        "repo": "flake-utils",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "warthunder-leak-counter": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "crane": "crane_3",
 | 
			
		||||
        "crane": "crane_2",
 | 
			
		||||
        "flake-utils": "flake-utils_6",
 | 
			
		||||
        "nixpkgs": "nixpkgs_7"
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1758999384,
 | 
			
		||||
        "narHash": "sha256-n1RiAhVtPxhjHmKoOBfEleTAMwz9JSvLmZyCQYpwXSQ=",
 | 
			
		||||
        "lastModified": 1719076817,
 | 
			
		||||
        "narHash": "sha256-B6NTomYXL50j6fabZrAGvTPp3zv5oFxNUhwvLhDNoMw=",
 | 
			
		||||
        "ref": "refs/heads/main",
 | 
			
		||||
        "rev": "0949b2fe4f54f74bf880c2034f6fc3a7d15b7cef",
 | 
			
		||||
        "revCount": 6,
 | 
			
		||||
        "rev": "406d6646970191c016a375f25a35aa00dfa0d4aa",
 | 
			
		||||
        "revCount": 4,
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.lelgenio.com/lelgenio/warthunder-leak-counter"
 | 
			
		||||
      },
 | 
			
		||||
| 
						 | 
				
			
			@ -1082,14 +941,16 @@
 | 
			
		|||
    "wl-crosshair": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-utils": "flake-utils_7",
 | 
			
		||||
        "nixpkgs": "nixpkgs_8"
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1752343846,
 | 
			
		||||
        "narHash": "sha256-tm2iycSAzbomHfOqmpQ21ozmS84OXfKIu/ZJant0Vfk=",
 | 
			
		||||
        "lastModified": 1715216838,
 | 
			
		||||
        "narHash": "sha256-q5key9BWJjJQqECrhflso9ZTzULBeScvromo0S4fjqE=",
 | 
			
		||||
        "owner": "lelgenio",
 | 
			
		||||
        "repo": "wl-crosshair",
 | 
			
		||||
        "rev": "940acb43e753cfbe0afd0478370778e1bf2d3d55",
 | 
			
		||||
        "rev": "39b716cf410a1b45006f50f32f8d63de5c43aedb",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			@ -1097,22 +958,6 @@
 | 
			
		|||
        "repo": "wl-crosshair",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "youre-wrong": {
 | 
			
		||||
      "flake": false,
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1728228087,
 | 
			
		||||
        "narHash": "sha256-W40rQbQAo3lGrKlfenSA8JaGwZMSx/X4lP71enQtK7Y=",
 | 
			
		||||
        "ref": "refs/heads/main",
 | 
			
		||||
        "rev": "64e7876233e99ad7223cae29688374a1c1ff569a",
 | 
			
		||||
        "revCount": 2,
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.lelgenio.com/lelgenio/youre-wrong"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.lelgenio.com/lelgenio/youre-wrong"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "root": "root",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										161
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										161
									
								
								flake.nix
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,14 +1,10 @@
 | 
			
		|||
{
 | 
			
		||||
  description = "My system config";
 | 
			
		||||
  inputs = {
 | 
			
		||||
    nixpkgs.url = "nixpkgs/nixos-25.05";
 | 
			
		||||
    nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
 | 
			
		||||
 | 
			
		||||
    home-manager.url = "github:nix-community/home-manager/release-25.05";
 | 
			
		||||
    nixpkgs.url = "nixpkgs/nixos-24.05";
 | 
			
		||||
    home-manager.url = "github:nix-community/home-manager/release-24.05";
 | 
			
		||||
    home-manager.inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
 | 
			
		||||
    vpsadminos.url = "github:vpsfreecz/vpsadminos";
 | 
			
		||||
 | 
			
		||||
    nix-index-database = {
 | 
			
		||||
      url = "github:Mic92/nix-index-database";
 | 
			
		||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
| 
						 | 
				
			
			@ -26,60 +22,51 @@
 | 
			
		|||
      inputs.home-manager.follows = "home-manager";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    sops-nix = {
 | 
			
		||||
      url = "github:Mic92/sops-nix";
 | 
			
		||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    nixos-mailserver = {
 | 
			
		||||
      url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-25.05";
 | 
			
		||||
      url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.05";
 | 
			
		||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
      inputs.nixpkgs-24_05.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    dzgui-nix.url = "github:lelgenio/dzgui-nix";
 | 
			
		||||
    dzgui-nix = {
 | 
			
		||||
      url = "github:lelgenio/dzgui-nix/dzgui-4.1.0";
 | 
			
		||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    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";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    disko = {
 | 
			
		||||
      url = "github:nix-community/disko";
 | 
			
		||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    treefmt-nix.url = "github:numtide/treefmt-nix";
 | 
			
		||||
    disko.url = "github:nix-community/disko";
 | 
			
		||||
    disko.inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
 | 
			
		||||
    # my stuff
 | 
			
		||||
    dhist.url = "github:lelgenio/dhist";
 | 
			
		||||
    demoji.url = "github:lelgenio/demoji";
 | 
			
		||||
    wl-crosshair.url = "github:lelgenio/wl-crosshair";
 | 
			
		||||
    warthunder-leak-counter.url = "git+https://git.lelgenio.com/lelgenio/warthunder-leak-counter";
 | 
			
		||||
    made-you-look.url = "git+https://git.lelgenio.com/lelgenio/made-you-look";
 | 
			
		||||
    contador-da-viagem = {
 | 
			
		||||
      url = "git+https://git.lelgenio.com/lelgenio/contador-da-viagem";
 | 
			
		||||
      flake = false;
 | 
			
		||||
    dhist = {
 | 
			
		||||
      url = "github:lelgenio/dhist";
 | 
			
		||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
    catboy-spinner = {
 | 
			
		||||
      url = "git+https://git.lelgenio.com/lelgenio/catboy-spinner";
 | 
			
		||||
      flake = false;
 | 
			
		||||
    demoji = {
 | 
			
		||||
      url = "github:lelgenio/demoji";
 | 
			
		||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
    tomater = {
 | 
			
		||||
      url = "git+https://git.lelgenio.com/lelgenio/tomater";
 | 
			
		||||
      flake = false;
 | 
			
		||||
    wl-crosshair = {
 | 
			
		||||
      url = "github:lelgenio/wl-crosshair";
 | 
			
		||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
    youre-wrong = {
 | 
			
		||||
      url = "git+https://git.lelgenio.com/lelgenio/youre-wrong";
 | 
			
		||||
      flake = false;
 | 
			
		||||
    warthunder-leak-counter = {
 | 
			
		||||
      url = "git+https://git.lelgenio.com/lelgenio/warthunder-leak-counter";
 | 
			
		||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
    hello-fonts = {
 | 
			
		||||
      url = "git+https://git.lelgenio.com/lelgenio/hello-fonts";
 | 
			
		||||
      flake = false;
 | 
			
		||||
 | 
			
		||||
    # gnome stuff
 | 
			
		||||
    nixos-conf-editor = {
 | 
			
		||||
      url = "github:vlinkz/nixos-conf-editor";
 | 
			
		||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
    nix-software-center = {
 | 
			
		||||
      url = "github:vlinkz/nix-software-center";
 | 
			
		||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
  outputs =
 | 
			
		||||
| 
						 | 
				
			
			@ -105,30 +92,22 @@
 | 
			
		|||
      specialArgs = {
 | 
			
		||||
        inherit inputs;
 | 
			
		||||
      };
 | 
			
		||||
      common_modules = [
 | 
			
		||||
        { nixpkgs.pkgs = pkgs; }
 | 
			
		||||
        ./system/configuration.nix
 | 
			
		||||
        ./system/secrets.nix
 | 
			
		||||
        ./system/sops.nix
 | 
			
		||||
        ./system/greetd.nix
 | 
			
		||||
        { login-manager.greetd.enable = desktop == "sway"; }
 | 
			
		||||
      common_modules =
 | 
			
		||||
        [
 | 
			
		||||
          { nixpkgs.pkgs = pkgs; }
 | 
			
		||||
          ./system/configuration.nix
 | 
			
		||||
          ./system/secrets.nix
 | 
			
		||||
          ./system/greetd.nix
 | 
			
		||||
          { login-manager.greetd.enable = desktop == "sway"; }
 | 
			
		||||
 | 
			
		||||
        inputs.agenix.nixosModules.default
 | 
			
		||||
        inputs.sops-nix.nixosModules.default
 | 
			
		||||
        inputs.home-manager.nixosModules.home-manager
 | 
			
		||||
        inputs.disko.nixosModules.disko
 | 
			
		||||
        (
 | 
			
		||||
          { config, ... }:
 | 
			
		||||
          inputs.agenix.nixosModules.default
 | 
			
		||||
          inputs.dzgui-nix.nixosModules.default
 | 
			
		||||
          inputs.home-manager.nixosModules.home-manager
 | 
			
		||||
          inputs.disko.nixosModules.disko
 | 
			
		||||
          {
 | 
			
		||||
            home-manager.useGlobalPkgs = true;
 | 
			
		||||
            home-manager.useUserPackages = true;
 | 
			
		||||
            home-manager.users.lelgenio = {
 | 
			
		||||
              my = config.my;
 | 
			
		||||
              imports = [
 | 
			
		||||
                ./user/home.nix
 | 
			
		||||
                inputs.sops-nix.homeManagerModules.sops
 | 
			
		||||
              ];
 | 
			
		||||
            };
 | 
			
		||||
            home-manager.users.lelgenio = import ./user/home.nix;
 | 
			
		||||
            home-manager.backupFileExtension = "bkp";
 | 
			
		||||
            # Optionally, use home-manager.extraSpecialArgs to pass
 | 
			
		||||
            # arguments to home.nix
 | 
			
		||||
| 
						 | 
				
			
			@ -136,10 +115,9 @@
 | 
			
		|||
              inherit inputs;
 | 
			
		||||
            };
 | 
			
		||||
          }
 | 
			
		||||
        )
 | 
			
		||||
      ]
 | 
			
		||||
      ++ lib.optional (desktop == "gnome") ./system/gnome.nix
 | 
			
		||||
      ++ lib.optional (desktop == "kde") ./system/kde.nix;
 | 
			
		||||
        ]
 | 
			
		||||
        ++ lib.optional (desktop == "gnome") ./system/gnome.nix
 | 
			
		||||
        ++ lib.optional (desktop == "kde") ./system/kde.nix;
 | 
			
		||||
    in
 | 
			
		||||
    {
 | 
			
		||||
      checks."${system}" = {
 | 
			
		||||
| 
						 | 
				
			
			@ -157,35 +135,39 @@
 | 
			
		|||
            ./system/monolith-gitlab-runner.nix
 | 
			
		||||
            ./system/monolith-forgejo-runner.nix
 | 
			
		||||
            ./system/nix-serve.nix
 | 
			
		||||
          ]
 | 
			
		||||
          ++ common_modules;
 | 
			
		||||
            ./system/steam.nix
 | 
			
		||||
          ] ++ common_modules;
 | 
			
		||||
        };
 | 
			
		||||
        rainbow = lib.nixosSystem {
 | 
			
		||||
          inherit system specialArgs;
 | 
			
		||||
          modules = [
 | 
			
		||||
            ./hosts/rainbow
 | 
			
		||||
            ./system/rainbow-gitlab-runner.nix
 | 
			
		||||
          ] ++ common_modules;
 | 
			
		||||
        };
 | 
			
		||||
        double-rainbow = lib.nixosSystem {
 | 
			
		||||
          inherit system specialArgs;
 | 
			
		||||
          modules = [
 | 
			
		||||
            ./hosts/double-rainbow
 | 
			
		||||
          ]
 | 
			
		||||
          ++ common_modules;
 | 
			
		||||
            ./hosts/double-rainbow.nix
 | 
			
		||||
            ./system/rainbow-gitlab-runner.nix
 | 
			
		||||
          ] ++ common_modules;
 | 
			
		||||
        };
 | 
			
		||||
        pixie = lib.nixosSystem {
 | 
			
		||||
          inherit system specialArgs;
 | 
			
		||||
          modules = [
 | 
			
		||||
            ./hosts/pixie.nix
 | 
			
		||||
          ]
 | 
			
		||||
          ++ common_modules
 | 
			
		||||
          ++ [
 | 
			
		||||
            {
 | 
			
		||||
              packages.media-packages.enable = lib.mkOverride 0 false;
 | 
			
		||||
              services.flatpak.enable = lib.mkOverride 0 false;
 | 
			
		||||
            }
 | 
			
		||||
          ];
 | 
			
		||||
          modules =
 | 
			
		||||
            [ ./hosts/pixie.nix ]
 | 
			
		||||
            ++ common_modules
 | 
			
		||||
            ++ [
 | 
			
		||||
              {
 | 
			
		||||
                packages.media-packages.enable = lib.mkOverride 0 false;
 | 
			
		||||
                programs.steam.enable = lib.mkOverride 0 false;
 | 
			
		||||
                services.flatpak.enable = lib.mkOverride 0 false;
 | 
			
		||||
              }
 | 
			
		||||
            ];
 | 
			
		||||
        };
 | 
			
		||||
        phantom = lib.nixosSystem {
 | 
			
		||||
          inherit system specialArgs;
 | 
			
		||||
          modules = [
 | 
			
		||||
            { nixpkgs.pkgs = pkgs; }
 | 
			
		||||
            ./hosts/phantom
 | 
			
		||||
          ];
 | 
			
		||||
          modules = [ ./hosts/phantom ];
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -202,7 +184,6 @@
 | 
			
		|||
 | 
			
		||||
      packages.${system} = pkgs // packages;
 | 
			
		||||
 | 
			
		||||
      # formatter.${system} = pkgs.nixfmt-rfc-style;
 | 
			
		||||
      formatter.${system} = (inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix).config.build.wrapper;
 | 
			
		||||
      formatter.${system} = pkgs.nixfmt-rfc-style;
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,12 +17,7 @@ let
 | 
			
		|||
  ];
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    (modulesPath + "/installer/scan/not-detected.nix")
 | 
			
		||||
    ./gitlab-runner.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  my.nix-ld.enable = true;
 | 
			
		||||
  imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
 | 
			
		||||
 | 
			
		||||
  boot.initrd.availableKernelModules = [
 | 
			
		||||
    "xhci_pci"
 | 
			
		||||
| 
						 | 
				
			
			@ -42,15 +37,14 @@ in
 | 
			
		|||
    options = [ "subvol=@" ] ++ btrfs_options ++ btrfs_ssd;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  boot.initrd.luks.devices."luks-d6573cf8-25f0-4ffc-8046-ac3a4db1e964".device =
 | 
			
		||||
    "/dev/disk/by-uuid/d6573cf8-25f0-4ffc-8046-ac3a4db1e964";
 | 
			
		||||
  boot.initrd.luks.devices."luks-d6573cf8-25f0-4ffc-8046-ac3a4db1e964".device = "/dev/disk/by-uuid/d6573cf8-25f0-4ffc-8046-ac3a4db1e964";
 | 
			
		||||
 | 
			
		||||
  fileSystems."/boot" = {
 | 
			
		||||
    device = "/dev/disk/by-uuid/97EB-7DB5";
 | 
			
		||||
    fsType = "vfat";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  swapDevices = [ { device = "/swapfile"; } ];
 | 
			
		||||
  swapDevices = [ ];
 | 
			
		||||
 | 
			
		||||
  services.udev.extraRules = ''
 | 
			
		||||
    # Force all disks to use mq-deadline scheduler
 | 
			
		||||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,46 +0,0 @@
 | 
			
		|||
{ pkgs, lib, ... }:
 | 
			
		||||
let
 | 
			
		||||
  undervoltGpu = pkgs.writeShellScript "undervolt-gpu" ''
 | 
			
		||||
    set -xe
 | 
			
		||||
    cd $1
 | 
			
		||||
    echo "manual" > power_dpm_force_performance_level
 | 
			
		||||
    echo "1" > pp_power_profile_mode
 | 
			
		||||
    test -e pp_od_clk_voltage
 | 
			
		||||
    echo "vo -120" > pp_od_clk_voltage
 | 
			
		||||
    echo "c" > pp_od_clk_voltage
 | 
			
		||||
  '';
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  boot.initrd.kernelModules = [ "amdgpu" ];
 | 
			
		||||
  boot.kernelParams = [
 | 
			
		||||
    "video=DP-1:1920x1080@144"
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  systemd.services.amd-fan-control = {
 | 
			
		||||
    script = ''
 | 
			
		||||
      ${lib.getExe pkgs.amd-fan-control} /sys/class/drm/card1/device 60 90 0 80
 | 
			
		||||
    '';
 | 
			
		||||
    serviceConfig = {
 | 
			
		||||
      Restart = "always";
 | 
			
		||||
      RestartSec = 10;
 | 
			
		||||
    };
 | 
			
		||||
    wantedBy = [ "multi-user.target" ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  hardware.amdgpu = {
 | 
			
		||||
    overdrive = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      ppfeaturemask = "0xffffffff";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  hardware.graphics.enable32Bit = true;
 | 
			
		||||
 | 
			
		||||
  hardware.graphics.extraPackages = with pkgs; [
 | 
			
		||||
    libva
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  services.udev.extraRules = ''
 | 
			
		||||
    ACTION=="add", SUBSYSTEM=="hwmon", ATTR{name}=="amdgpu", ATTR{power1_cap}="186000000", RUN+="${undervoltGpu} %S%p/device"
 | 
			
		||||
  '';
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -23,8 +23,6 @@ in
 | 
			
		|||
  imports = [
 | 
			
		||||
    (modulesPath + "/installer/scan/not-detected.nix")
 | 
			
		||||
    ./partition.nix
 | 
			
		||||
    ./amdgpu.nix
 | 
			
		||||
    ./factorio-server.nix
 | 
			
		||||
  ];
 | 
			
		||||
  boot.initrd.availableKernelModules = [
 | 
			
		||||
    "nvme"
 | 
			
		||||
| 
						 | 
				
			
			@ -35,31 +33,47 @@ in
 | 
			
		|||
    "sd_mod"
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  hardware.opentabletdriver = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    # TODO: remove this once otd gets updated
 | 
			
		||||
    package = pkgs.unstable.opentabletdriver;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  my.gaming.enable = true;
 | 
			
		||||
  my.nix-ld.enable = true;
 | 
			
		||||
 | 
			
		||||
  boot.kernelPackages = pkgs.linuxPackages_latest;
 | 
			
		||||
  hardware.opentabletdriver.enable = true;
 | 
			
		||||
 | 
			
		||||
  boot.extraModulePackages = with config.boot.kernelPackages; [ zenpower ];
 | 
			
		||||
 | 
			
		||||
  boot.initrd.kernelModules = [ "amdgpu" ];
 | 
			
		||||
  boot.kernelModules = [
 | 
			
		||||
    "kvm-amd"
 | 
			
		||||
    "amdgpu"
 | 
			
		||||
    "zenpower"
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  boot.kernelParams = [
 | 
			
		||||
    "amdgpu.dcdebugmask=0x10" # amdgpu undervolting bug
 | 
			
		||||
    "video=DP-1:1920x1080@144"
 | 
			
		||||
  ];
 | 
			
		||||
  systemd.sleep.extraConfig = ''
 | 
			
		||||
    HibernateDelaySec=30s
 | 
			
		||||
    SuspendState=mem
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  hardware.opengl.driSupport = true;
 | 
			
		||||
  # # For 32 bit applications
 | 
			
		||||
  hardware.opengl.driSupport32Bit = true;
 | 
			
		||||
 | 
			
		||||
  hardware.opengl.extraPackages = with pkgs; [
 | 
			
		||||
    libva
 | 
			
		||||
    libvdpau
 | 
			
		||||
    vaapiVdpau
 | 
			
		||||
    rocm-opencl-icd
 | 
			
		||||
    rocm-opencl-runtime
 | 
			
		||||
    rocmPackages.rocm-smi
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  boot.kernelPackages = pkgs.linuxPackages_6_1;
 | 
			
		||||
 | 
			
		||||
  programs.corectrl = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    gpuOverclock = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      ppfeaturemask = "0xffffffff";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/mnt/old" = {
 | 
			
		||||
    device = "/dev/disk/by-label/BTRFS_ROOT";
 | 
			
		||||
    fsType = "btrfs";
 | 
			
		||||
| 
						 | 
				
			
			@ -96,8 +110,7 @@ in
 | 
			
		|||
    options = [
 | 
			
		||||
      "subvol=@games"
 | 
			
		||||
      "nofail"
 | 
			
		||||
    ]
 | 
			
		||||
    ++ btrfs_options;
 | 
			
		||||
    ] ++ btrfs_options;
 | 
			
		||||
  };
 | 
			
		||||
  fileSystems."/home/lelgenio/Downloads/Torrents" = {
 | 
			
		||||
    device = "/dev/disk/by-label/BTRFS_DATA";
 | 
			
		||||
| 
						 | 
				
			
			@ -105,8 +118,7 @@ in
 | 
			
		|||
    options = [
 | 
			
		||||
      "subvol=@torrents"
 | 
			
		||||
      "nofail"
 | 
			
		||||
    ]
 | 
			
		||||
    ++ btrfs_options;
 | 
			
		||||
    ] ++ btrfs_options;
 | 
			
		||||
  };
 | 
			
		||||
  fileSystems."/home/lelgenio/Música" = {
 | 
			
		||||
    device = "/dev/disk/by-label/BTRFS_DATA";
 | 
			
		||||
| 
						 | 
				
			
			@ -114,8 +126,7 @@ in
 | 
			
		|||
    options = [
 | 
			
		||||
      "subvol=@music"
 | 
			
		||||
      "nofail"
 | 
			
		||||
    ]
 | 
			
		||||
    ++ btrfs_options;
 | 
			
		||||
    ] ++ btrfs_options;
 | 
			
		||||
  };
 | 
			
		||||
  fileSystems."/home/lelgenio/.local/mount/data" = {
 | 
			
		||||
    device = "/dev/disk/by-label/BTRFS_DATA";
 | 
			
		||||
| 
						 | 
				
			
			@ -123,14 +134,13 @@ in
 | 
			
		|||
    options = [
 | 
			
		||||
      "subvol=@data"
 | 
			
		||||
      "nofail"
 | 
			
		||||
    ]
 | 
			
		||||
    ++ btrfs_options;
 | 
			
		||||
  };
 | 
			
		||||
  fileSystems."/home/lelgenio/.local/mount/old" = {
 | 
			
		||||
    device = "/dev/disk/by-label/BTRFS_ROOT";
 | 
			
		||||
    fsType = "btrfs";
 | 
			
		||||
    options = [ "nofail" ] ++ btrfs_options ++ btrfs_ssd;
 | 
			
		||||
    ] ++ btrfs_options;
 | 
			
		||||
  };
 | 
			
		||||
  # fileSystems."/home/lelgenio/.local/mount/bigboy" = {
 | 
			
		||||
  #   device = "/dev/disk/by-label/BTRFS_BIGBOY";
 | 
			
		||||
  #   fsType = "btrfs";
 | 
			
		||||
  #   options = [ "nofail" ] ++ btrfs_options ++ btrfs_ssd;
 | 
			
		||||
  # };
 | 
			
		||||
 | 
			
		||||
  # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
 | 
			
		||||
  # (the default) this is the recommended approach. When using systemd-networkd it's
 | 
			
		||||
| 
						 | 
				
			
			@ -142,15 +152,13 @@ in
 | 
			
		|||
  hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
 | 
			
		||||
  networking.hostName = "monolith"; # Define your hostname.
 | 
			
		||||
 | 
			
		||||
  virtualisation.virtualbox.host.enable = true;
 | 
			
		||||
 | 
			
		||||
  services.udev.extraRules = ''
 | 
			
		||||
    # Fix broken suspend with Logitech USB dongle
 | 
			
		||||
    # `lsusb | grep Logitech` will return "vendor:product"
 | 
			
		||||
    ACTION=="add" SUBSYSTEM=="usb" ATTR{idVendor}=="046d" ATTR{idProduct}=="c547" ATTR{power/wakeup}="disabled"
 | 
			
		||||
    # Force all disks to use mq-deadline scheduler
 | 
			
		||||
    # 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 = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,50 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  services.factorio = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    package = pkgs.my-factorio-headless;
 | 
			
		||||
    public = true;
 | 
			
		||||
    lan = true;
 | 
			
		||||
    openFirewall = true;
 | 
			
		||||
    admins = [ "lelgenio" ];
 | 
			
		||||
    extraSettingsFile = config.age.secrets.factorio-settings.path;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  systemd.services.factorio = {
 | 
			
		||||
    after = [ "network-online.target" ];
 | 
			
		||||
    wants = [ "network-online.target" ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  systemd.services.factorio-backup-save = {
 | 
			
		||||
    description = "Backup factorio saves";
 | 
			
		||||
    script = ''
 | 
			
		||||
      FILENAME="space-age-$(date --iso=seconds | tr ':' '_').zip"
 | 
			
		||||
      ${lib.getExe pkgs.rsync} \
 | 
			
		||||
        -av  \
 | 
			
		||||
        --chown=lelgenio \
 | 
			
		||||
        /var/lib/factorio/saves/default.zip \
 | 
			
		||||
        ~lelgenio/Documentos/GameSaves/factorio_saves/$FILENAME
 | 
			
		||||
    '';
 | 
			
		||||
    serviceConfig.Type = "oneshot";
 | 
			
		||||
    wantedBy = [ "multi-user.target" ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  systemd.timers.factorio-backup-save = {
 | 
			
		||||
    timerConfig = {
 | 
			
		||||
      OnCalendar = "*-*-* 18:00:00";
 | 
			
		||||
      Persistent = true;
 | 
			
		||||
      Unit = "factorio-backup-save.service";
 | 
			
		||||
    };
 | 
			
		||||
    wantedBy = [ "timers.target" ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  age.secrets.factorio-settings = {
 | 
			
		||||
    file = ../../secrets/factorio-settings.age;
 | 
			
		||||
    mode = "777";
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,26 +0,0 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  users.users.davikiwi = {
 | 
			
		||||
    isNormalUser = true;
 | 
			
		||||
    description = "Davi";
 | 
			
		||||
    hashedPassword = "$y$j9T$0e/rczjOVCy7PuwC3pG0V/$gTHZhfO4wQSlFvbDyfghbCnGI2uDI0a52zSrQ/yOA5A";
 | 
			
		||||
    openssh.authorizedKeys.keys = [
 | 
			
		||||
      "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGgZDBnj+gVMHqoNvjpx2T/HqnxUDbLPshu+t7301gXd Davi@DESKTOP-EVHFGJ9"
 | 
			
		||||
    ];
 | 
			
		||||
    extraGroups = [ "docker" ];
 | 
			
		||||
    packages = with pkgs; [
 | 
			
		||||
      (pkgs.python3.withPackages (python-pkgs: [
 | 
			
		||||
        python-pkgs.pip
 | 
			
		||||
        python-pkgs.wheel
 | 
			
		||||
      ]))
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  services.nginx.virtualHosts."davikiwi.lelgenio.com" = {
 | 
			
		||||
    enableACME = true;
 | 
			
		||||
    forceSSL = true;
 | 
			
		||||
    locations."/" = {
 | 
			
		||||
      proxyPass = "http://127.0.0.1:24618";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -2,20 +2,15 @@
 | 
			
		|||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  inputs,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    inputs.vpsadminos.nixosConfigurations.container
 | 
			
		||||
    ./vpsadminos.nix
 | 
			
		||||
    inputs.agenix.nixosModules.default
 | 
			
		||||
    inputs.sops-nix.nixosModules.default
 | 
			
		||||
 | 
			
		||||
    ../../system/sops.nix
 | 
			
		||||
    ../../system/nix.nix
 | 
			
		||||
    ./hardware-config.nix
 | 
			
		||||
    ./mastodon.nix
 | 
			
		||||
    ./lemmy.nix
 | 
			
		||||
    ./nextcloud.nix
 | 
			
		||||
    ./nginx.nix
 | 
			
		||||
    ./syncthing.nix
 | 
			
		||||
| 
						 | 
				
			
			@ -23,9 +18,7 @@
 | 
			
		|||
    ./writefreely.nix
 | 
			
		||||
    ./email.nix
 | 
			
		||||
    ./forgejo.nix
 | 
			
		||||
    ./invidious.nix
 | 
			
		||||
    ./davi.nix
 | 
			
		||||
    ./goofs.nix
 | 
			
		||||
    ./warthunder-leak-counter.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  networking.hostName = "phantom";
 | 
			
		||||
| 
						 | 
				
			
			@ -53,7 +46,7 @@
 | 
			
		|||
  # Set your time zone.
 | 
			
		||||
  time.timeZone = "America/Sao_Paulo";
 | 
			
		||||
  # Select internationalisation properties.
 | 
			
		||||
  i18n.defaultLocale = "pt_BR.UTF-8";
 | 
			
		||||
  i18n.defaultLocale = "pt_BR.utf8";
 | 
			
		||||
 | 
			
		||||
  boot.kernel.sysctl."fs.inotify.max_user_watches" = 1048576;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -61,27 +54,6 @@
 | 
			
		|||
    identityPaths = [ "/root/.ssh/id_rsa" ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  sops = {
 | 
			
		||||
    secrets.hello = { };
 | 
			
		||||
    defaultSopsFile = lib.mkForce ../../secrets/phantom/default.yaml;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  environment.etc."teste-sops" = {
 | 
			
		||||
    text = config.sops.secrets.hello.path;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  virtualisation.docker = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    daemon.settings = {
 | 
			
		||||
      # needed by bitbucket runner ???
 | 
			
		||||
      log-driver = "json-file";
 | 
			
		||||
      log-opts = {
 | 
			
		||||
        max-size = "10m";
 | 
			
		||||
        max-file = "3";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  nix.settings = {
 | 
			
		||||
    cores = 1;
 | 
			
		||||
    max-jobs = 1;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,8 +36,6 @@
 | 
			
		|||
        hashedPassword = "$2b$05$DcA9xMdvHqqQMZw2.zybI.vfKsQAJtaQ/JB.t9AHu6psstWq97m2C";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    enableManageSieve = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # 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_user'] = "%u";
 | 
			
		||||
      $config['smtp_pass'] = "%p";
 | 
			
		||||
      $config['plugins'] = [ "carddav", "archive", "managesieve" ];
 | 
			
		||||
      $config['plugins'] = [ "carddav", "archive" ];
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,6 +13,9 @@ in
 | 
			
		|||
    virtualHosts.${cfg.settings.server.DOMAIN} = {
 | 
			
		||||
      forceSSL = true;
 | 
			
		||||
      enableACME = true;
 | 
			
		||||
      extraConfig = ''
 | 
			
		||||
        client_max_body_size 512M;
 | 
			
		||||
      '';
 | 
			
		||||
      locations."/".proxyPass = "http://localhost:${toString srv.HTTP_PORT}";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
| 
						 | 
				
			
			@ -27,9 +30,6 @@ in
 | 
			
		|||
        ENABLED = true;
 | 
			
		||||
        DEFAULT_ACTIONS_URL = "github";
 | 
			
		||||
      };
 | 
			
		||||
      repository = {
 | 
			
		||||
        ENABLE_PUSH_CREATE_USER = true;
 | 
			
		||||
      };
 | 
			
		||||
      server = {
 | 
			
		||||
        DOMAIN = "git.lelgenio.com";
 | 
			
		||||
        HTTP_PORT = 3000;
 | 
			
		||||
| 
						 | 
				
			
			@ -37,7 +37,7 @@ in
 | 
			
		|||
      };
 | 
			
		||||
      mailer = {
 | 
			
		||||
        ENABLED = true;
 | 
			
		||||
        SMTP_ADDR = "lelgenio.com";
 | 
			
		||||
        SMTP_ADDR = "mail.lelgenio.com";
 | 
			
		||||
        FROM = "noreply@git.lelgenio.com";
 | 
			
		||||
        USER = "noreply@git.lelgenio.com";
 | 
			
		||||
      };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,51 +0,0 @@
 | 
			
		|||
{ inputs, config, ... }:
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    inputs.warthunder-leak-counter.nixosModules.default
 | 
			
		||||
    inputs.made-you-look.nixosModules.default
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  services.warthunder-leak-counter.enable = true;
 | 
			
		||||
  services.nginx.virtualHosts."warthunder-leak-counter.lelgenio.com" = {
 | 
			
		||||
    enableACME = true;
 | 
			
		||||
    forceSSL = true;
 | 
			
		||||
    locations."/" = {
 | 
			
		||||
      proxyPass = "http://127.0.0.1:${toString config.services.warthunder-leak-counter.port}";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  services.made-you-look.enable = true;
 | 
			
		||||
  services.nginx.virtualHosts."coolest-thing-ever.lelgenio.com" = {
 | 
			
		||||
    enableACME = true;
 | 
			
		||||
    forceSSL = true;
 | 
			
		||||
    locations."/" = {
 | 
			
		||||
      proxyPass = "http://127.0.0.1:${toString config.services.made-you-look.port}";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  services.nginx.virtualHosts."catboy-spinner.lelgenio.com" = {
 | 
			
		||||
    enableACME = true;
 | 
			
		||||
    forceSSL = true;
 | 
			
		||||
    root = inputs.catboy-spinner;
 | 
			
		||||
  };
 | 
			
		||||
  services.nginx.virtualHosts."tomater.lelgenio.com" = {
 | 
			
		||||
    enableACME = true;
 | 
			
		||||
    forceSSL = true;
 | 
			
		||||
    root = inputs.tomater;
 | 
			
		||||
  };
 | 
			
		||||
  services.nginx.virtualHosts."youre-wrong.lelgenio.com" = {
 | 
			
		||||
    enableACME = true;
 | 
			
		||||
    forceSSL = true;
 | 
			
		||||
    root = inputs.youre-wrong;
 | 
			
		||||
  };
 | 
			
		||||
  services.nginx.virtualHosts."hello-fonts.lelgenio.com" = {
 | 
			
		||||
    enableACME = true;
 | 
			
		||||
    forceSSL = true;
 | 
			
		||||
    root = inputs.hello-fonts;
 | 
			
		||||
  };
 | 
			
		||||
  services.nginx.virtualHosts."contador-da-viagem.lelgenio.com" = {
 | 
			
		||||
    enableACME = true;
 | 
			
		||||
    forceSSL = true;
 | 
			
		||||
    root = inputs.contador-da-viagem;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,15 +1,10 @@
 | 
			
		|||
{
 | 
			
		||||
  fileSystems."/var/lib/syncthing-data" = {
 | 
			
		||||
    device = "172.16.130.7:/nas/5749/syncthinng_data";
 | 
			
		||||
    fsType = "nfs";
 | 
			
		||||
    options = [ "nofail" ];
 | 
			
		||||
  };
 | 
			
		||||
  fileSystems."/var/lib/mastodon" = {
 | 
			
		||||
    device = "172.16.131.19:/nas/5749/mastodon";
 | 
			
		||||
    fsType = "nfs";
 | 
			
		||||
    options = [ "nofail" ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  inputs,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  swapDevices = [
 | 
			
		||||
    {
 | 
			
		||||
      device = "/swap/swapfile";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,40 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  inputs,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  config,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  # Replace with unstable, since 24.05 does not have sig-helper
 | 
			
		||||
  disabledModules = [ "services/web-apps/invidious.nix" ];
 | 
			
		||||
  imports = [ (inputs.nixpkgs-unstable + "/nixos/modules/services/web-apps/invidious.nix") ];
 | 
			
		||||
 | 
			
		||||
  services.invidious = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    domain = "invidious.lelgenio.com";
 | 
			
		||||
    nginx.enable = true;
 | 
			
		||||
    port = 10601;
 | 
			
		||||
    http3-ytproxy.enable = true;
 | 
			
		||||
    sig-helper = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      package = pkgs.unstable.inv-sig-helper;
 | 
			
		||||
    };
 | 
			
		||||
    # {
 | 
			
		||||
    #     "visitor_data": "...",
 | 
			
		||||
    #     "po_token": "..."
 | 
			
		||||
    # }
 | 
			
		||||
    extraSettingsFile = config.age.secrets.phantom-invidious-settings.path;
 | 
			
		||||
    settings = {
 | 
			
		||||
      force_resolve = "ipv6";
 | 
			
		||||
      db = {
 | 
			
		||||
        user = "invidious";
 | 
			
		||||
        dbname = "invidious";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  age.secrets.phantom-invidious-settings = {
 | 
			
		||||
    file = ../../secrets/phantom-invidious-settings.age;
 | 
			
		||||
    mode = "666";
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,18 +0,0 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  services.lemmy = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    settings = {
 | 
			
		||||
      hostname = "lemmy.lelgenio.com";
 | 
			
		||||
    };
 | 
			
		||||
    database.createLocally = true;
 | 
			
		||||
    nginx.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  services.pict-rs.package = pkgs.pict-rs;
 | 
			
		||||
 | 
			
		||||
  services.nginx.virtualHosts."lemmy.lelgenio.com" = {
 | 
			
		||||
    enableACME = true;
 | 
			
		||||
    forceSSL = true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,16 +1,16 @@
 | 
			
		|||
{
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  inputs,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  services.nextcloud = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    package = pkgs.nextcloud30;
 | 
			
		||||
    package = pkgs.nextcloud29;
 | 
			
		||||
    hostName = "cloud.lelgenio.com";
 | 
			
		||||
    https = true;
 | 
			
		||||
    config = {
 | 
			
		||||
      dbtype = "sqlite"; # TODO: move to single postgres db
 | 
			
		||||
      adminpassFile = config.age.secrets.phantom-nextcloud.path;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,7 +11,6 @@
 | 
			
		|||
    recommendedTlsSettings = true;
 | 
			
		||||
    recommendedOptimisation = true;
 | 
			
		||||
    recommendedGzipSettings = true;
 | 
			
		||||
    clientMaxBodySize = "512M";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Redirect *lelgenio.xyz -> *lelgenio.com
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,7 +40,6 @@
 | 
			
		|||
    ];
 | 
			
		||||
    initialHashedPassword = "$y$j9T$E3aBBSSq0Gma8hZD9L7ov0$iCGDW4fqrXWfHO0qodBYYgMFA9CpIraoklHcPbJJrM3";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  security.sudo.wheelNeedsPassword = false;
 | 
			
		||||
 | 
			
		||||
  programs.fish.enable = true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										76
									
								
								hosts/phantom/vpsadminos.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								hosts/phantom/vpsadminos.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,76 @@
 | 
			
		|||
# This file provides compatibility for NixOS to run in a container on vpsAdminOS
 | 
			
		||||
# hosts.
 | 
			
		||||
#
 | 
			
		||||
# If you're experiencing issues, try updating this file to the latest version
 | 
			
		||||
# from vpsAdminOS repository:
 | 
			
		||||
#
 | 
			
		||||
#   https://github.com/vpsfreecz/vpsadminos/blob/staging/os/lib/nixos-container/vpsadminos.nix
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
with lib;
 | 
			
		||||
let
 | 
			
		||||
  nameservers = [
 | 
			
		||||
    "1.1.1.1"
 | 
			
		||||
    "2606:4700:4700::1111"
 | 
			
		||||
  ];
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  networking.nameservers = mkDefault nameservers;
 | 
			
		||||
  services.resolved = mkDefault { fallbackDns = nameservers; };
 | 
			
		||||
  networking.dhcpcd.extraConfig = "noipv4ll";
 | 
			
		||||
 | 
			
		||||
  systemd.services.systemd-sysctl.enable = false;
 | 
			
		||||
  systemd.services.systemd-oomd.enable = false;
 | 
			
		||||
  systemd.sockets."systemd-journald-audit".enable = false;
 | 
			
		||||
  systemd.mounts = [
 | 
			
		||||
    {
 | 
			
		||||
      where = "/sys/kernel/debug";
 | 
			
		||||
      enable = false;
 | 
			
		||||
    }
 | 
			
		||||
  ];
 | 
			
		||||
  systemd.services.rpc-gssd.enable = false;
 | 
			
		||||
 | 
			
		||||
  # Due to our restrictions in /sys, the default systemd-udev-trigger fails
 | 
			
		||||
  # on accessing PCI devices, etc. Override it to match only network devices.
 | 
			
		||||
  # In addition, boot.isContainer prevents systemd-udev-trigger.service from
 | 
			
		||||
  # being enabled at all, so add it explicitly.
 | 
			
		||||
  systemd.additionalUpstreamSystemUnits = [ "systemd-udev-trigger.service" ];
 | 
			
		||||
  systemd.services.systemd-udev-trigger.serviceConfig.ExecStart = [
 | 
			
		||||
    ""
 | 
			
		||||
    "-udevadm trigger --subsystem-match=net --action=add"
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  boot.isContainer = true;
 | 
			
		||||
  boot.enableContainers = mkDefault true;
 | 
			
		||||
  boot.loader.initScript.enable = true;
 | 
			
		||||
  boot.specialFileSystems."/run/keys".fsType = mkForce "tmpfs";
 | 
			
		||||
  boot.systemdExecutable = mkDefault "/run/current-system/systemd/lib/systemd/systemd systemd.unified_cgroup_hierarchy=0";
 | 
			
		||||
 | 
			
		||||
  # Overrides for <nixpkgs/nixos/modules/virtualisation/container-config.nix>
 | 
			
		||||
  documentation.enable = mkOverride 500 true;
 | 
			
		||||
  documentation.nixos.enable = mkOverride 500 true;
 | 
			
		||||
  networking.useHostResolvConf = mkOverride 500 false;
 | 
			
		||||
  services.openssh.startWhenNeeded = mkOverride 500 false;
 | 
			
		||||
 | 
			
		||||
  # Bring up the network, /ifcfg.{add,del} are supplied by the vpsAdminOS host
 | 
			
		||||
  systemd.services.networking-setup = {
 | 
			
		||||
    description = "Load network configuration provided by the vpsAdminOS host";
 | 
			
		||||
    before = [ "network.target" ];
 | 
			
		||||
    wantedBy = [ "network.target" ];
 | 
			
		||||
    after = [ "network-pre.target" ];
 | 
			
		||||
    path = [ pkgs.iproute2 ];
 | 
			
		||||
    serviceConfig = {
 | 
			
		||||
      Type = "oneshot";
 | 
			
		||||
      RemainAfterExit = true;
 | 
			
		||||
      ExecStart = "${pkgs.bash}/bin/bash /ifcfg.add";
 | 
			
		||||
      ExecStop = "${pkgs.bash}/bin/bash /ifcfg.del";
 | 
			
		||||
    };
 | 
			
		||||
    unitConfig.ConditionPathExists = "/ifcfg.add";
 | 
			
		||||
    restartIfChanged = false;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										19
									
								
								hosts/phantom/warthunder-leak-counter.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								hosts/phantom/warthunder-leak-counter.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
{
 | 
			
		||||
  inputs,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  config,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  imports = [ inputs.warthunder-leak-counter.nixosModules.default ];
 | 
			
		||||
 | 
			
		||||
  services.warthunder-leak-counter.enable = true;
 | 
			
		||||
 | 
			
		||||
  services.nginx.virtualHosts."warthunder-leak-counter.lelgenio.com" = {
 | 
			
		||||
    enableACME = true;
 | 
			
		||||
    forceSSL = true;
 | 
			
		||||
    locations."/" = {
 | 
			
		||||
      proxyPass = "http://127.0.0.1:${toString config.services.warthunder-leak-counter.port}";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										85
									
								
								hosts/rainbow/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								hosts/rainbow/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,85 @@
 | 
			
		|||
# Do not modify this file!  It was generated by ‘nixos-generate-config’
 | 
			
		||||
# and may be overwritten by future invocations.  Please make changes
 | 
			
		||||
# to /etc/nixos/configuration.nix instead.
 | 
			
		||||
{
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  modulesPath,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
let
 | 
			
		||||
  btrfs_options = [
 | 
			
		||||
    "compress=zstd:3"
 | 
			
		||||
    "noatime"
 | 
			
		||||
    "x-systemd.device-timeout=0"
 | 
			
		||||
  ];
 | 
			
		||||
  btrfs_ssd = [
 | 
			
		||||
    "ssd"
 | 
			
		||||
    "discard=async"
 | 
			
		||||
  ];
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
 | 
			
		||||
 | 
			
		||||
  boot.initrd.availableKernelModules = [
 | 
			
		||||
    "xhci_pci"
 | 
			
		||||
    "ahci"
 | 
			
		||||
    "usb_storage"
 | 
			
		||||
    "usbhid"
 | 
			
		||||
    "sd_mod"
 | 
			
		||||
  ];
 | 
			
		||||
  boot.initrd.kernelModules = [ "i915" ];
 | 
			
		||||
  boot.kernelModules = [ "kvm-intel" ];
 | 
			
		||||
  boot.extraModulePackages = [ ];
 | 
			
		||||
 | 
			
		||||
  fileSystems."/" = {
 | 
			
		||||
    device = "/dev/disk/by-label/BTRFS_ROOT";
 | 
			
		||||
    fsType = "btrfs";
 | 
			
		||||
    options = [ "subvol=@nixos" ] ++ btrfs_options ++ btrfs_ssd;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  boot.initrd.luks.devices = {
 | 
			
		||||
    "main" = {
 | 
			
		||||
      bypassWorkqueues = true;
 | 
			
		||||
      device = "/dev/disk/by-label/CRYPT_ROOT";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/home" = {
 | 
			
		||||
    device = "/dev/disk/by-label/BTRFS_ROOT";
 | 
			
		||||
    fsType = "btrfs";
 | 
			
		||||
    options = [ "subvol=@home" ] ++ btrfs_options ++ btrfs_ssd;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  boot.loader.efi.efiSysMountPoint = "/boot/efi";
 | 
			
		||||
  fileSystems."/boot/efi" = {
 | 
			
		||||
    device = "/dev/disk/by-uuid/DC3B-5753";
 | 
			
		||||
    fsType = "vfat";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/swap" = {
 | 
			
		||||
    device = "/dev/disk/by-label/BTRFS_ROOT";
 | 
			
		||||
    fsType = "btrfs";
 | 
			
		||||
    options = [ "subvol=@swap" ] ++ btrfs_ssd;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  swapDevices = [
 | 
			
		||||
    {
 | 
			
		||||
      device = "/swap/swapfile";
 | 
			
		||||
      size = (1024 * 8);
 | 
			
		||||
    }
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
 | 
			
		||||
  # (the default) this is the recommended approach. When using systemd-networkd it's
 | 
			
		||||
  # still possible to use this option, but it's recommended to use it in conjunction
 | 
			
		||||
  # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
 | 
			
		||||
  networking.useDHCP = lib.mkDefault true;
 | 
			
		||||
  # networking.interfaces.enp1s0.useDHCP = lib.mkDefault true;
 | 
			
		||||
 | 
			
		||||
  powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand";
 | 
			
		||||
  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
 | 
			
		||||
 | 
			
		||||
  networking.hostName = "rainbow"; # Define your hostname.
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -2,7 +2,6 @@
 | 
			
		|||
rec {
 | 
			
		||||
  all = [
 | 
			
		||||
    scripts
 | 
			
		||||
    unstable
 | 
			
		||||
    themes
 | 
			
		||||
    new-packages
 | 
			
		||||
    patches
 | 
			
		||||
| 
						 | 
				
			
			@ -12,10 +11,6 @@ rec {
 | 
			
		|||
 | 
			
		||||
  scripts = (import ../scripts);
 | 
			
		||||
 | 
			
		||||
  unstable = final: prev: {
 | 
			
		||||
    unstable = import inputs.nixpkgs-unstable { inherit (final) system config; };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  themes = (
 | 
			
		||||
    final: prev: {
 | 
			
		||||
      papirus_red = (final.papirus-icon-theme.override { color = "red"; });
 | 
			
		||||
| 
						 | 
				
			
			@ -28,6 +23,14 @@ rec {
 | 
			
		|||
          ];
 | 
			
		||||
        }
 | 
			
		||||
      );
 | 
			
		||||
      nerdfonts_fira_hack = (
 | 
			
		||||
        final.nerdfonts.override {
 | 
			
		||||
          fonts = [
 | 
			
		||||
            "FiraCode"
 | 
			
		||||
            "Hack"
 | 
			
		||||
          ];
 | 
			
		||||
        }
 | 
			
		||||
      );
 | 
			
		||||
    }
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -35,8 +38,6 @@ rec {
 | 
			
		|||
    final: prev:
 | 
			
		||||
    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;
 | 
			
		||||
      demoji = inputs.demoji.packages.${prev.system}.default;
 | 
			
		||||
      tlauncher = inputs.tlauncher.packages.${prev.system}.tlauncher;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										64
									
								
								pkgs/blade-formatter/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								pkgs/blade-formatter/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,64 @@
 | 
			
		|||
{
 | 
			
		||||
  lib,
 | 
			
		||||
  mkYarnPackage,
 | 
			
		||||
  fetchFromGitHub,
 | 
			
		||||
  fetchYarnDeps,
 | 
			
		||||
  testers,
 | 
			
		||||
  writeText,
 | 
			
		||||
  runCommand,
 | 
			
		||||
  blade-formatter,
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
mkYarnPackage rec {
 | 
			
		||||
  pname = "blade-formatter";
 | 
			
		||||
  version = "1.38.2";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "shufo";
 | 
			
		||||
    repo = pname;
 | 
			
		||||
    rev = "v${version}";
 | 
			
		||||
    hash = "sha256-JvILLw7Yp4g/dSsYtZ2ylmlXfS9t+2KADlBrYOJWTpg=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  packageJSON = ./package.json;
 | 
			
		||||
  offlineCache = fetchYarnDeps {
 | 
			
		||||
    yarnLock = "${src}/yarn.lock";
 | 
			
		||||
    hash = "sha256-UFDxw3fYMzSUhZw+TCEh/dN7OioKI75LzKSnEwGPKDA=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  postBuild = "yarn build";
 | 
			
		||||
 | 
			
		||||
  passthru.tests = {
 | 
			
		||||
    version = testers.testVersion {
 | 
			
		||||
      package = blade-formatter;
 | 
			
		||||
      command = "blade-formatter --version";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    simple = testers.testEqualContents {
 | 
			
		||||
      assertion = "blade-formatter formats a basic blade file";
 | 
			
		||||
      expected = writeText "expected" ''
 | 
			
		||||
        @if (true)
 | 
			
		||||
            Hello world!
 | 
			
		||||
        @endif
 | 
			
		||||
      '';
 | 
			
		||||
      actual =
 | 
			
		||||
        runCommand "actual"
 | 
			
		||||
          {
 | 
			
		||||
            nativeBuildInputs = [ blade-formatter ];
 | 
			
		||||
            base = writeText "base" ''
 | 
			
		||||
              @if(   true )  Hello world!   @endif
 | 
			
		||||
            '';
 | 
			
		||||
          }
 | 
			
		||||
          ''
 | 
			
		||||
            blade-formatter $base > $out
 | 
			
		||||
          '';
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  meta = with lib; {
 | 
			
		||||
    description = "Laravel Blade template formatter";
 | 
			
		||||
    homepage = "https://github.com/shufo/blade-formatter";
 | 
			
		||||
    license = licenses.mit;
 | 
			
		||||
    maintainers = with maintainers; [ lelgenio ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										120
									
								
								pkgs/blade-formatter/package.json
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										120
									
								
								pkgs/blade-formatter/package.json
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,120 @@
 | 
			
		|||
{
 | 
			
		||||
  "name": "blade-formatter",
 | 
			
		||||
  "engines": {
 | 
			
		||||
    "node": ">= 14.0.0"
 | 
			
		||||
  },
 | 
			
		||||
  "keywords": [
 | 
			
		||||
    "php",
 | 
			
		||||
    "formatter",
 | 
			
		||||
    "laravel"
 | 
			
		||||
  ],
 | 
			
		||||
  "version": "1.38.2",
 | 
			
		||||
  "description": "An opinionated blade template formatter for Laravel",
 | 
			
		||||
  "main": "./dist/bundle.cjs",
 | 
			
		||||
  "types": "./dist/types/main.d.ts",
 | 
			
		||||
  "type": "module",
 | 
			
		||||
  "exports": {
 | 
			
		||||
    ".": {
 | 
			
		||||
      "import": "./dist/bundle.js",
 | 
			
		||||
      "require": "./dist/bundle.cjs",
 | 
			
		||||
      "default": "./dist/bundle.js"
 | 
			
		||||
    },
 | 
			
		||||
    "./*": "./*"
 | 
			
		||||
  },
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "build": "cross-env NODE_ENV=production node esbuild.js && cross-env NODE_ENV=production ESM_BUILD=true node esbuild.js",
 | 
			
		||||
    "prepublish": "tsc src/main.ts --declaration --emitDeclarationOnly --outDir ./dist/types || true",
 | 
			
		||||
    "watch": "node esbuild.js",
 | 
			
		||||
    "test": "yarn run build && node --experimental-vm-modules node_modules/.bin/jest",
 | 
			
		||||
    "lint": "eslint src -c .eslintrc.json --ext ts",
 | 
			
		||||
    "fix": "prettier {src,__tests__}/**/*.ts --write",
 | 
			
		||||
    "check_formatted": "prettier **/*.ts -c",
 | 
			
		||||
    "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
 | 
			
		||||
    "prepare": "husky install",
 | 
			
		||||
    "bin": "cross-env ./bin/blade-formatter.cjs"
 | 
			
		||||
  },
 | 
			
		||||
  "bin": {
 | 
			
		||||
    "blade-formatter": "bin/blade-formatter.cjs"
 | 
			
		||||
  },
 | 
			
		||||
  "author": "Shuhei Hayashibara",
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@prettier/plugin-php": "^0.19.7",
 | 
			
		||||
    "@shufo/tailwindcss-class-sorter": "3.0.1",
 | 
			
		||||
    "aigle": "^1.14.1",
 | 
			
		||||
    "ajv": "^8.9.0",
 | 
			
		||||
    "chalk": "^4.1.0",
 | 
			
		||||
    "concat-stream": "^2.0.0",
 | 
			
		||||
    "detect-indent": "^6.0.0",
 | 
			
		||||
    "find-config": "^1.0.0",
 | 
			
		||||
    "glob": "^8.0.1",
 | 
			
		||||
    "html-attribute-sorter": "^0.4.3",
 | 
			
		||||
    "ignore": "^5.1.8",
 | 
			
		||||
    "js-beautify": "^1.14.8",
 | 
			
		||||
    "lodash": "^4.17.19",
 | 
			
		||||
    "php-parser": "3.1.5",
 | 
			
		||||
    "prettier": "^2.2.0",
 | 
			
		||||
    "tailwindcss": "^3.1.8",
 | 
			
		||||
    "vscode-oniguruma": "1.7.0",
 | 
			
		||||
    "vscode-textmate": "^7.0.1",
 | 
			
		||||
    "xregexp": "^5.0.1",
 | 
			
		||||
    "yargs": "^17.3.1"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@babel/core": "^7.6.4",
 | 
			
		||||
    "@babel/plugin-transform-modules-commonjs": "^7.16.5",
 | 
			
		||||
    "@babel/preset-env": "^7.13.12",
 | 
			
		||||
    "@babel/preset-typescript": "^7.16.5",
 | 
			
		||||
    "@types/concat-stream": "^2.0.0",
 | 
			
		||||
    "@types/find-config": "^1.0.1",
 | 
			
		||||
    "@types/fs-extra": "^11.0.0",
 | 
			
		||||
    "@types/glob": "^8.0.0",
 | 
			
		||||
    "@types/jest": "^29.0.0",
 | 
			
		||||
    "@types/js-beautify": "^1.13.3",
 | 
			
		||||
    "@types/lodash": "^4.14.178",
 | 
			
		||||
    "@types/mocha": "^10.0.0",
 | 
			
		||||
    "@types/node": "^18.0.0",
 | 
			
		||||
    "@types/xregexp": "^4.4.0",
 | 
			
		||||
    "@typescript-eslint/eslint-plugin": "^5.8.1",
 | 
			
		||||
    "@typescript-eslint/parser": "^5.8.1",
 | 
			
		||||
    "app-root-path": "^3.0.0",
 | 
			
		||||
    "babel-jest": "^29.0.0",
 | 
			
		||||
    "codecov": "^3.8.3",
 | 
			
		||||
    "cross-env": "^7.0.3",
 | 
			
		||||
    "esbuild": "^0.19.0",
 | 
			
		||||
    "esbuild-node-externals": "^1.4.1",
 | 
			
		||||
    "eslint": "^8.5.0",
 | 
			
		||||
    "eslint-config-airbnb-base": "^15.0.0",
 | 
			
		||||
    "eslint-config-airbnb-typescript": "^17.0.0",
 | 
			
		||||
    "eslint-config-prettier": "^9.0.0",
 | 
			
		||||
    "eslint-import-resolver-typescript": "^3.0.0",
 | 
			
		||||
    "eslint-plugin-import": "^2.25.3",
 | 
			
		||||
    "eslint-plugin-jest": "^26.0.0",
 | 
			
		||||
    "eslint-plugin-prettier": "^5.0.0",
 | 
			
		||||
    "fs-extra": "^11.0.0",
 | 
			
		||||
    "husky": "^8.0.0",
 | 
			
		||||
    "jest": "^29.0.0",
 | 
			
		||||
    "lint-staged": ">=10",
 | 
			
		||||
    "source-map-loader": "^4.0.0",
 | 
			
		||||
    "ts-jest": "^29.0.0",
 | 
			
		||||
    "ts-loader": "^9.2.6",
 | 
			
		||||
    "ts-migrate": "^0.1.27",
 | 
			
		||||
    "ts-node": "^10.4.0",
 | 
			
		||||
    "typescript": "^5.0.0"
 | 
			
		||||
  },
 | 
			
		||||
  "repository": {
 | 
			
		||||
    "type": "git",
 | 
			
		||||
    "url": "https://github.com/shufo/blade-formatter.git"
 | 
			
		||||
  },
 | 
			
		||||
  "files": [
 | 
			
		||||
    "dist",
 | 
			
		||||
    "src",
 | 
			
		||||
    "bin",
 | 
			
		||||
    "wasm",
 | 
			
		||||
    "syntaxes",
 | 
			
		||||
    "CHANGELOG.md"
 | 
			
		||||
  ],
 | 
			
		||||
  "lint-staged": {
 | 
			
		||||
    "*.ts": "yarn run fix"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -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 ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -2,14 +2,11 @@
 | 
			
		|||
# You can build them using 'nix build .#example' or (legacy) 'nix-build -A example'
 | 
			
		||||
 | 
			
		||||
{ pkgs, inputs }:
 | 
			
		||||
rec {
 | 
			
		||||
  caffeinated = pkgs.callPackage ./caffeinated { };
 | 
			
		||||
{
 | 
			
		||||
  blade-formatter = pkgs.callPackage ./blade-formatter { };
 | 
			
		||||
  cargo-checkmate = pkgs.callPackage ./cargo-checkmate.nix { };
 | 
			
		||||
  lipsum = pkgs.callPackage ./lipsum.nix { };
 | 
			
		||||
  emmet-cli = pkgs.callPackage ./emmet-cli.nix { };
 | 
			
		||||
  material-wifi-icons = pkgs.callPackage ./material-wifi-icons.nix { };
 | 
			
		||||
  gnome-pass-search-provider = pkgs.callPackage ./gnome-pass-search-provider.nix { };
 | 
			
		||||
  my-factorio-headless = pkgs.callPackage ./factorio-headless {
 | 
			
		||||
    inherit (pkgs.unstable) factorio-headless;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,10 +0,0 @@
 | 
			
		|||
{ factorio-headless, pkgs }:
 | 
			
		||||
 | 
			
		||||
factorio-headless.overrideAttrs (_: rec {
 | 
			
		||||
  version = "2.0.66";
 | 
			
		||||
  src = pkgs.fetchurl {
 | 
			
		||||
    name = "factorio_headless_x64-${version}.tar.xz";
 | 
			
		||||
    url = "https://www.factorio.com/get-download/${version}/headless/linux64";
 | 
			
		||||
    hash = "sha256-8bOXbqzE4jOADTmdkABsNW+jZvXWQ0HFBMlcDLoyHAY=";
 | 
			
		||||
  };
 | 
			
		||||
})
 | 
			
		||||
| 
						 | 
				
			
			@ -1,14 +0,0 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
set -xe
 | 
			
		||||
 | 
			
		||||
cd "$(dirname $0)"
 | 
			
		||||
 | 
			
		||||
current_version="$(rg '^.*?version\s*=\s*"(.+)".*?$' --replace '$1' ./default.nix)"
 | 
			
		||||
current_hash="$(rg '^.*?hash\s*=\s*"(.+)".*?$' --replace '$1' ./default.nix)"
 | 
			
		||||
 | 
			
		||||
new_version="$(curl https://factorio.com/api/latest-releases | jq -r .stable.headless)"
 | 
			
		||||
new_hash="$(nix-hash --to-sri --type sha256 $(nix-prefetch-url --type sha256 https://www.factorio.com/get-download/${new_version}/headless/linux64))"
 | 
			
		||||
 | 
			
		||||
sd --fixed-strings "$current_version" "$new_version" ./default.nix
 | 
			
		||||
sd --fixed-strings "$current_hash" "$new_hash" ./default.nix
 | 
			
		||||
| 
						 | 
				
			
			@ -5,6 +5,7 @@
 | 
			
		|||
  wrapGAppsHook,
 | 
			
		||||
  gtk3,
 | 
			
		||||
  gobject-introspection,
 | 
			
		||||
  gnome,
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										0
									
								
								scripts/_diffr
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								scripts/_diffr
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							| 
						 | 
				
			
			@ -1,33 +0,0 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
# Create the DOCKER-USER chain if it doesn't exist
 | 
			
		||||
iptables -N DOCKER-USER || true
 | 
			
		||||
 | 
			
		||||
# Flush existing rules in the DOCKER-USER chain
 | 
			
		||||
iptables -F DOCKER-USER
 | 
			
		||||
 | 
			
		||||
# Get all external network interfaces
 | 
			
		||||
interfaces=$(
 | 
			
		||||
    ip -o -f inet addr show |
 | 
			
		||||
    awk '{print $2}' |
 | 
			
		||||
    grep -E '^(enp|eth|wlan|wlp)' |
 | 
			
		||||
    sort -u
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
for iface in $interfaces; do
 | 
			
		||||
    # Allow traffic from LAN
 | 
			
		||||
    iptables -A DOCKER-USER -i "$iface" -s 127.0.0.1 -j ACCEPT
 | 
			
		||||
    iptables -A DOCKER-USER -i "$iface" -s 10.0.0.0/8 -j ACCEPT
 | 
			
		||||
    iptables -A DOCKER-USER -i "$iface" -s 192.168.0.0/16 -j ACCEPT
 | 
			
		||||
 | 
			
		||||
    # Allow established and related connections
 | 
			
		||||
    iptables -A DOCKER-USER -i "$iface" -m state --state RELATED,ESTABLISHED -j ACCEPT
 | 
			
		||||
 | 
			
		||||
    # Drop all other traffic
 | 
			
		||||
    iptables -A DOCKER-USER -i "$iface" -j DROP
 | 
			
		||||
 | 
			
		||||
    echo "iptables rules have been set up for interface: $iface"
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# Return to the previous chain
 | 
			
		||||
iptables -A DOCKER-USER -j RETURN
 | 
			
		||||
							
								
								
									
										11
									
								
								scripts/_sway_idle_toggle
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								scripts/_sway_idle_toggle
									
										
									
									
									
										Normal 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
 | 
			
		||||
| 
						 | 
				
			
			@ -1,145 +0,0 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
bail() {
 | 
			
		||||
    echo "Error: $@" >&2
 | 
			
		||||
    echo "Exiting..." >&2
 | 
			
		||||
    exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
map_range() {
 | 
			
		||||
    VALUE="$1"
 | 
			
		||||
    MIN_INPUT="$2"
 | 
			
		||||
    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 ))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
clamp() {
 | 
			
		||||
    VALUE="$1"
 | 
			
		||||
 | 
			
		||||
    MIN="$2"
 | 
			
		||||
    MAX="$3"
 | 
			
		||||
 | 
			
		||||
    VALUE=$VALUE
 | 
			
		||||
    if [ "$VALUE" -gt $MAX ]; then
 | 
			
		||||
        VALUE=$MAX
 | 
			
		||||
    elif [ "$VALUE" -lt $MIN ]; then
 | 
			
		||||
        VALUE=$MIN
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    echo $VALUE
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cleanup() {
 | 
			
		||||
    echo "Setting controll to auto" >&2
 | 
			
		||||
    if test -f "$HWMON/pwm1_enable"; then
 | 
			
		||||
        echo 2 > "$HWMON/pwm1_enable"
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
trap cleanup EXIT INT
 | 
			
		||||
 | 
			
		||||
usage() {
 | 
			
		||||
    echo "Usage: $0 <device> <min-temp> <max-temp> <min-fan> <max-fan>" >&2
 | 
			
		||||
    echo "Example: $0 /sys/class/drm/card1/device 60 100 10 80" >&2
 | 
			
		||||
    exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
parse_cli() {
 | 
			
		||||
    if test -n "$AMDGPU_FAN_CRONTROL_DEBUG"; then
 | 
			
		||||
        echo parse_cli "$@" >&2
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    DEVICE="$1" # eg: /sys/class/drm/card1/device
 | 
			
		||||
    HWMON=$(echo "$DEVICE"/hwmon/hwmon*)
 | 
			
		||||
    TEMP_INPUT="$HWMON/temp2_input"
 | 
			
		||||
 | 
			
		||||
    TEMP_MIN="$2"
 | 
			
		||||
    TEMP_MAX="$3"
 | 
			
		||||
 | 
			
		||||
    PWM_MIN_PCT="$4"
 | 
			
		||||
    PWM_MAX_PCT="$5"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
validate_variables() {
 | 
			
		||||
    if ! [ -d "$HWMON" ]; then
 | 
			
		||||
        bail "Invalid drm-device: '$HWMON' is not a directory"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if ! [ -f "$TEMP_INPUT" ]; then
 | 
			
		||||
        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
 | 
			
		||||
        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="$(( $TEMPERATURE_RAW / 1000 ))" # 60_000 = 60°C
 | 
			
		||||
 | 
			
		||||
    # Calculate the fan speed we would want to reach given infinite time
 | 
			
		||||
    TARGET_PWM=$(map_range $TEMPERATURE $TEMP_MIN $TEMP_MAX $PWM_MIN $PWM_MAX)
 | 
			
		||||
 | 
			
		||||
    # Calculate an appropriate amount to "walk" in the direction of target fan speed
 | 
			
		||||
    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
 | 
			
		||||
 | 
			
		||||
    # Apply the new fan speed
 | 
			
		||||
    echo "$NEXT_PWM" > "$HWMON/pwm1"
 | 
			
		||||
 | 
			
		||||
    # Wait for next iteratino
 | 
			
		||||
    PREV_PWM="$NEXT_PWM"
 | 
			
		||||
    sleep .1s
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main() {
 | 
			
		||||
    parse_cli "$@"
 | 
			
		||||
    validate_variables
 | 
			
		||||
    setup
 | 
			
		||||
    while true; do
 | 
			
		||||
        main_loop
 | 
			
		||||
    done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main "$@"
 | 
			
		||||
							
								
								
									
										27
									
								
								scripts/auto_connect_gamepad
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										27
									
								
								scripts/auto_connect_gamepad
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
list_paired_controllers() {
 | 
			
		||||
    bluetoothctl devices Paired | grep -i 'controller' | cut -d' ' -f2
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
count_connected_controllers() {
 | 
			
		||||
    bluetoothctl devices Connected | grep -i 'controller' | wc -l
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
try_to_connect_to_all_controllers() {
 | 
			
		||||
    list_paired_controllers | while read paired_controller; do
 | 
			
		||||
        echo "Trying to connect to controller $paired_controller"
 | 
			
		||||
        bluetoothctl connect "$paired_controller"
 | 
			
		||||
    done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
while true; do
 | 
			
		||||
    echo "looping"
 | 
			
		||||
    if test "$(count_connected_controllers)" -ne 0 ; then
 | 
			
		||||
        echo "there is a controller connected, not attempting to connect to any other"
 | 
			
		||||
        sleep 10s
 | 
			
		||||
        continue
 | 
			
		||||
    fi
 | 
			
		||||
    sleep 1s
 | 
			
		||||
    try_to_connect_to_all_controllers
 | 
			
		||||
done
 | 
			
		||||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										5
									
								
								scripts/bmenu
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										5
									
								
								scripts/bmenu
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							| 
						 | 
				
			
			@ -8,10 +8,13 @@
 | 
			
		|||
if test "$argv[1]" = "run"
 | 
			
		||||
    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 \
 | 
			
		||||
        --dmenu="bmenu start -p Iniciar:" \
 | 
			
		||||
        --term "$t" \
 | 
			
		||||
        --i3-ipc \
 | 
			
		||||
        --wrapper="$wrapper" \
 | 
			
		||||
        --no-generic
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										0
									
								
								scripts/br
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								scripts/br
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							| 
						 | 
				
			
			@ -1,29 +0,0 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
CONTROLLER=$(find /sys/class/power_supply -maxdepth 1 -name '*controller*' || true)
 | 
			
		||||
 | 
			
		||||
if test -z "$CONTROLLER"; then
 | 
			
		||||
    echo
 | 
			
		||||
    exit 0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
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 ''
 | 
			
		||||
print-battery-icon "$CAPACITY"
 | 
			
		||||
echo " $CAPACITY%"
 | 
			
		||||
| 
						 | 
				
			
			@ -1,33 +1,34 @@
 | 
			
		|||
(
 | 
			
		||||
  final: prev:
 | 
			
		||||
  with prev;
 | 
			
		||||
  let
 | 
			
		||||
    lib = prev.lib;
 | 
			
		||||
 | 
			
		||||
    importScript = (_: path: import (path) { inherit (final) pkgs lib; });
 | 
			
		||||
    wrapScript =
 | 
			
		||||
    import_script = (_: path: import (path) { inherit pkgs lib; });
 | 
			
		||||
    create_script = (
 | 
			
		||||
      name: text: runtimeInputs:
 | 
			
		||||
      final.runCommand name
 | 
			
		||||
        {
 | 
			
		||||
          nativeBuildInputs = [ final.makeWrapper ];
 | 
			
		||||
          meta.mainProgram = name;
 | 
			
		||||
        }
 | 
			
		||||
        ''
 | 
			
		||||
          mkdir -p $out/bin
 | 
			
		||||
          cp ${text} $out/bin/${name}
 | 
			
		||||
          wrapProgram $out/bin/${name} \
 | 
			
		||||
              --suffix PATH : ${lib.makeBinPath runtimeInputs}
 | 
			
		||||
        '';
 | 
			
		||||
    createScripts = lib.mapAttrs (name: deps: wrapScript name ./${name} deps);
 | 
			
		||||
      let
 | 
			
		||||
        script_body = pkgs.writeTextFile {
 | 
			
		||||
          inherit name;
 | 
			
		||||
          executable = true;
 | 
			
		||||
          text = ''
 | 
			
		||||
            ${builtins.readFile text}
 | 
			
		||||
          '';
 | 
			
		||||
        };
 | 
			
		||||
      in
 | 
			
		||||
      (pkgs.writeShellApplication {
 | 
			
		||||
        inherit name runtimeInputs;
 | 
			
		||||
        text = ''exec ${script_body} "$@"'';
 | 
			
		||||
        checkPhase = "";
 | 
			
		||||
      })
 | 
			
		||||
    );
 | 
			
		||||
    create_scripts = lib.mapAttrs (name: deps: create_script name ./${name} deps);
 | 
			
		||||
 | 
			
		||||
    myPass = final.pass.withExtensions (ex: with ex; [ pass-otp ]);
 | 
			
		||||
    pass = pkgs.pass.withExtensions (ex: with ex; [ pass-otp ]);
 | 
			
		||||
  in
 | 
			
		||||
  with final;
 | 
			
		||||
  createScripts {
 | 
			
		||||
    amd-fan-control = [ bash ];
 | 
			
		||||
  create_scripts {
 | 
			
		||||
    br = [ ];
 | 
			
		||||
    bmenu = [
 | 
			
		||||
      bemenu
 | 
			
		||||
      dhist
 | 
			
		||||
      final.bemenu
 | 
			
		||||
      final.dhist
 | 
			
		||||
      fish
 | 
			
		||||
      j4-dmenu-desktop
 | 
			
		||||
      jq
 | 
			
		||||
| 
						 | 
				
			
			@ -43,21 +44,21 @@
 | 
			
		|||
      fish
 | 
			
		||||
    ];
 | 
			
		||||
    _diffr = [ diffr ];
 | 
			
		||||
    _thunar-terminal = [ terminal ];
 | 
			
		||||
    _thunar-terminal = [ final.terminal ];
 | 
			
		||||
    _sway_idle_toggle = [ final.swayidle ];
 | 
			
		||||
    kak-pager = [
 | 
			
		||||
      fish
 | 
			
		||||
      _diffr
 | 
			
		||||
      final._diffr
 | 
			
		||||
    ];
 | 
			
		||||
    kak-man-pager = [ kak-pager ];
 | 
			
		||||
    kak-man-pager = [ final.kak-pager ];
 | 
			
		||||
    helix-pager = [
 | 
			
		||||
      fish
 | 
			
		||||
      _diffr
 | 
			
		||||
      final._diffr
 | 
			
		||||
    ];
 | 
			
		||||
    helix-man-pager = [ helix-pager ];
 | 
			
		||||
    bcrypt = [ apacheHttpd ];
 | 
			
		||||
    helix-man-pager = [ final.helix-pager ];
 | 
			
		||||
    musmenu = [
 | 
			
		||||
      mpc-cli
 | 
			
		||||
      wdmenu
 | 
			
		||||
      final.wdmenu
 | 
			
		||||
      trash-cli
 | 
			
		||||
      xdg-user-dirs
 | 
			
		||||
      libnotify
 | 
			
		||||
| 
						 | 
				
			
			@ -70,13 +71,11 @@
 | 
			
		|||
    pass-export = [
 | 
			
		||||
      pass2csv
 | 
			
		||||
      gnupg
 | 
			
		||||
      sd
 | 
			
		||||
    ];
 | 
			
		||||
    wpass = [
 | 
			
		||||
      wdmenu
 | 
			
		||||
      ripgrep
 | 
			
		||||
      final.wdmenu
 | 
			
		||||
      fd
 | 
			
		||||
      myPass
 | 
			
		||||
      pass
 | 
			
		||||
      sd
 | 
			
		||||
      wl-clipboard
 | 
			
		||||
      wtype
 | 
			
		||||
| 
						 | 
				
			
			@ -97,7 +96,7 @@
 | 
			
		|||
    pulse_sink = [
 | 
			
		||||
      pulseaudio
 | 
			
		||||
      pamixer
 | 
			
		||||
      wdmenu
 | 
			
		||||
      final.wdmenu
 | 
			
		||||
    ];
 | 
			
		||||
    color_picker = [
 | 
			
		||||
      grim
 | 
			
		||||
| 
						 | 
				
			
			@ -109,13 +108,13 @@
 | 
			
		|||
    dzadd = [
 | 
			
		||||
      procps
 | 
			
		||||
      libnotify
 | 
			
		||||
      wdmenu
 | 
			
		||||
      final.wdmenu
 | 
			
		||||
      jq
 | 
			
		||||
      mpv
 | 
			
		||||
      pqiv
 | 
			
		||||
      python3Packages.deemix
 | 
			
		||||
      mpc-cli
 | 
			
		||||
      mpdDup
 | 
			
		||||
      final.mpdDup
 | 
			
		||||
    ];
 | 
			
		||||
    mpdDup = [
 | 
			
		||||
      mpc-cli
 | 
			
		||||
| 
						 | 
				
			
			@ -126,33 +125,14 @@
 | 
			
		|||
      zbar
 | 
			
		||||
      wl-clipboard
 | 
			
		||||
    ];
 | 
			
		||||
    git_clean_remote_deleted = [
 | 
			
		||||
      git
 | 
			
		||||
    auto_connect_gamepad = [
 | 
			
		||||
      bluez
 | 
			
		||||
      coreutils
 | 
			
		||||
      gnugrep
 | 
			
		||||
      gawk
 | 
			
		||||
      findutils
 | 
			
		||||
    ];
 | 
			
		||||
    pint-fmt = [ ];
 | 
			
		||||
    powerplay-led-idle = [
 | 
			
		||||
      bash
 | 
			
		||||
      libinput
 | 
			
		||||
      libratbag
 | 
			
		||||
    ];
 | 
			
		||||
    sway-sync-xkbmap = [
 | 
			
		||||
      xorg.setxkbmap
 | 
			
		||||
      jq
 | 
			
		||||
    ];
 | 
			
		||||
    print-battery-icon = [ ];
 | 
			
		||||
    controller-battery = [ print-battery-icon ];
 | 
			
		||||
    mouse-battery = [ print-battery-icon ];
 | 
			
		||||
    _docker-block-external-connections = [
 | 
			
		||||
      iptables
 | 
			
		||||
      gawk
 | 
			
		||||
      gnugrep
 | 
			
		||||
      iproute2
 | 
			
		||||
    ];
 | 
			
		||||
    vrr-fullscreen = [ ];
 | 
			
		||||
  }
 | 
			
		||||
  // lib.mapAttrs importScript {
 | 
			
		||||
  // lib.mapAttrs import_script {
 | 
			
		||||
    wdmenu = ./wdmenu.nix;
 | 
			
		||||
    wlauncher = ./wlauncher.nix;
 | 
			
		||||
    _gpg-unlock = ./_gpg-unlock.nix;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,19 +1,10 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
set -euo pipefail
 | 
			
		||||
 | 
			
		||||
cleanup() {
 | 
			
		||||
    if test "$?" != 0; then
 | 
			
		||||
        notify-send "Failed to download"
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
trap cleanup EXIT INT
 | 
			
		||||
 | 
			
		||||
DIR=$(mktemp -d)
 | 
			
		||||
 | 
			
		||||
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)"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +0,0 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
git branch -vv \
 | 
			
		||||
| grep ': gone]' \
 | 
			
		||||
| awk '{print $1}' \
 | 
			
		||||
| xargs git branch -D
 | 
			
		||||
							
								
								
									
										0
									
								
								scripts/helix-pager
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								scripts/helix-pager
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								scripts/kak-pager
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								scripts/kak-pager
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							| 
						 | 
				
			
			@ -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%"
 | 
			
		||||
| 
						 | 
				
			
			@ -8,6 +8,3 @@ pass2csv "$PASSWORD_STORE_DIR" "$HOME/passwords.csv" \
 | 
			
		|||
  -f User '(user|login)(:\s*)?' \
 | 
			
		||||
  -f TOTP 'otpauth(:)?' \
 | 
			
		||||
  -f URL 'url(:\s*)?'
 | 
			
		||||
 | 
			
		||||
# Fix TOTP format for keepass
 | 
			
		||||
sd '"//totp/.*?secret=(.*?)(&.*?)?"' '"$1"' "$HOME/passwords.csv"
 | 
			
		||||
| 
						 | 
				
			
			@ -1,7 +0,0 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
file="$(mktemp)"
 | 
			
		||||
cat - >"$file"
 | 
			
		||||
./vendor/bin/pint --quiet "$file"
 | 
			
		||||
cat "$file"
 | 
			
		||||
rm "$file"
 | 
			
		||||
							
								
								
									
										0
									
								
								scripts/playerctl-status
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								scripts/playerctl-status
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							| 
						 | 
				
			
			@ -1,79 +0,0 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
# Constants
 | 
			
		||||
SECONDS_UNTIL_FADE=$(( 1 * 60))
 | 
			
		||||
SECONDS_UNTIL_OFF=$(( 6 * 60))
 | 
			
		||||
 | 
			
		||||
COLOR_ON=ff0000
 | 
			
		||||
COLOR_FADE=880000
 | 
			
		||||
COLOR_OFF=000000
 | 
			
		||||
 | 
			
		||||
# Logging
 | 
			
		||||
 | 
			
		||||
if [[ "$1" = "debug" ]]; then
 | 
			
		||||
    echo "Running with debugging" >&2
 | 
			
		||||
    DEBUG="true"
 | 
			
		||||
 | 
			
		||||
    SECONDS_UNTIL_FADE=$(( 3 ))
 | 
			
		||||
    SECONDS_UNTIL_OFF=$(( 5 ))
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
log() {
 | 
			
		||||
    if [[ "$DEBUG" = "true" ]]; then
 | 
			
		||||
        echo "$@" >&2
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Implementation
 | 
			
		||||
 | 
			
		||||
main() {
 | 
			
		||||
    CURRENT_STATE="UNKNOWN"
 | 
			
		||||
    LAST_POINTER_MOTION="$(date +%s)"
 | 
			
		||||
 | 
			
		||||
    if [ "$(ratbagctl list | wc -l)" -ne 1 ]; then
 | 
			
		||||
        echo "Not exactly one device found, exiting..."
 | 
			
		||||
        exit 1
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    DEVICE="$(ratbagctl list | cut -d: -f1)"
 | 
			
		||||
 | 
			
		||||
    while true; do
 | 
			
		||||
        while read line; do
 | 
			
		||||
            LAST_POINTER_MOTION="$(date +%s)"
 | 
			
		||||
            break
 | 
			
		||||
        done < <(
 | 
			
		||||
            timeout 5s \
 | 
			
		||||
                libinput debug-events \
 | 
			
		||||
                | grep POINTER_MOTION
 | 
			
		||||
        )
 | 
			
		||||
        TIME_SINCE_LAST=$(( "$(date +%s)" - "$LAST_POINTER_MOTION" ))
 | 
			
		||||
        log "Last pointer motion was $TIME_SINCE_LAST seconds ago"
 | 
			
		||||
        if [ "$TIME_SINCE_LAST" -gt "$SECONDS_UNTIL_OFF" ]; then
 | 
			
		||||
            setState OFF "$COLOR_OFF"
 | 
			
		||||
        elif [ "$TIME_SINCE_LAST" -gt "$SECONDS_UNTIL_FADE" ]; then
 | 
			
		||||
            setState FADE "$COLOR_FADE"
 | 
			
		||||
        else
 | 
			
		||||
            setState ON "$COLOR_ON"
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
setState() {
 | 
			
		||||
    STATE="$1"
 | 
			
		||||
    COLOR="$2"
 | 
			
		||||
    MODE="$3"
 | 
			
		||||
 | 
			
		||||
    if [[ "$STATE" = "$CURRENT_STATE" ]]; then
 | 
			
		||||
        log "Already in $STATE state"
 | 
			
		||||
        return
 | 
			
		||||
    fi
 | 
			
		||||
    log "Changing state to $STATE"
 | 
			
		||||
    CURRENT_STATE="$STATE"
 | 
			
		||||
 | 
			
		||||
    ratbagctl "$DEVICE" led 0 set mode on
 | 
			
		||||
    ratbagctl "$DEVICE" led 0 set color "$COLOR"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main
 | 
			
		||||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
							
								
								
									
										0
									
								
								scripts/pulse_sink
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								scripts/pulse_sink
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										9
									
								
								scripts/screenshotsh
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										9
									
								
								scripts/screenshotsh
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							| 
						 | 
				
			
			@ -46,13 +46,4 @@ case $1 in
 | 
			
		|||
            $screenshot -o "$cur_output" - | $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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										0
									
								
								scripts/showkeys
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								scripts/showkeys
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							| 
						 | 
				
			
			@ -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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										0
									
								
								scripts/terminal
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								scripts/terminal
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										28
									
								
								scripts/vrr-fullscreen
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										28
									
								
								scripts/vrr-fullscreen
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,28 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
# List of supported outputs for VRR
 | 
			
		||||
output_vrr_whitelist=(
 | 
			
		||||
    "DP-1"
 | 
			
		||||
    "DP-2"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# Toggle VRR for fullscreened apps in prespecified displays to avoid stutters while in desktop
 | 
			
		||||
swaymsg -t subscribe -m '[ "window" ]' | while read window_json; do
 | 
			
		||||
    window_event=$(echo ${window_json} | jq -r '.change')
 | 
			
		||||
 | 
			
		||||
    # Process only focus change and fullscreen toggle
 | 
			
		||||
    if [[ $window_event = "focus" || $window_event = "fullscreen_mode" ]]; then
 | 
			
		||||
        output_json=$(swaymsg -t get_outputs | jq -r '.[] | select(.focused == true)')
 | 
			
		||||
        output_name=$(echo ${output_json} | jq -r '.name')
 | 
			
		||||
 | 
			
		||||
        # Use only VRR in whitelisted outputs
 | 
			
		||||
        if [[ ${output_vrr_whitelist[*]} =~ ${output_name} ]]; then
 | 
			
		||||
            output_vrr_status=$(echo ${output_json} | jq -r '.adaptive_sync_status')
 | 
			
		||||
            window_fullscreen_status=$(echo ${window_json} | jq -r '.container.fullscreen_mode')
 | 
			
		||||
 | 
			
		||||
            # Only update output if nesseccary to avoid flickering
 | 
			
		||||
            [[ $output_vrr_status = "disabled" && $window_fullscreen_status = "1" ]] && swaymsg output "${output_name}" adaptive_sync 1
 | 
			
		||||
            [[ $output_vrr_status = "enabled" && $window_fullscreen_status = "0" ]] && swaymsg output "${output_name}" adaptive_sync 0
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
done
 | 
			
		||||
							
								
								
									
										0
									
								
								scripts/wl-copy-file
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								scripts/wl-copy-file
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										10
									
								
								scripts/wpass
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										10
									
								
								scripts/wpass
									
										
									
									
									
										
										
										Executable file → Normal file
									
								
							| 
						 | 
				
			
			@ -29,8 +29,8 @@ main() {
 | 
			
		|||
 | 
			
		||||
    test -n "$entry" || exit 0
 | 
			
		||||
 | 
			
		||||
    username=`pass show "$entry" 2>/dev/null | rg -m1 '(login|user|email): (.*)' -r '$2'` || true
 | 
			
		||||
    password=`pass show "$entry" 2>/dev/null | head -n 1` || 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`
 | 
			
		||||
    otp=`pass otp "$entry" 2>/dev/null` || true
 | 
			
		||||
 | 
			
		||||
    action="$(print_actions_for_entry | wdmenu -p Action)"
 | 
			
		||||
| 
						 | 
				
			
			@ -50,10 +50,8 @@ main() {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
autotype(){
 | 
			
		||||
    if test -n "$username"; then
 | 
			
		||||
        env wtype -s 100 "$username"
 | 
			
		||||
        env wtype -s 100 -k tab
 | 
			
		||||
    fi
 | 
			
		||||
    env wtype -s 100 "$username"
 | 
			
		||||
    env wtype -s 100 -k tab
 | 
			
		||||
    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
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -1,49 +0,0 @@
 | 
			
		|||
forgejo-runners:
 | 
			
		||||
    git.lelgenio.com-default: ENC[AES256_GCM,data:sEfpBZvgQUkyXPWY4RI0RPJWUbsYK/RGqiYJ5wDSVY9a0EYenyt96QYq6815evq2iQ==,iv:rSWnCOdhfKH4TM9R0/IParYd9laYhWxR+iUhgkVvqfc=,tag:mBcSH/oGDMBgBScvCdn3Zg==,type:str]
 | 
			
		||||
gitlab-runners:
 | 
			
		||||
    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]
 | 
			
		||||
    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]
 | 
			
		||||
    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-ssh-nix-cache-pub: ENC[AES256_GCM,data:F+QHv9wwgyQYobKwyG13tS2OKCZuBPKLe7RLkhxsqYmVEtkCnli9jG+unMp7MC5L0i3puNqfoXP2IC6g4ESHq1yE0ksUpUCHzps4oMZBQK9b5JcqXQs+c//hskTQ/sFmTfGPpdnQ7wAifnQf5Mx2E4RwiRznMgJGQ3RDDjg9xfWUyvw6PlslZH65aGrq3P/iURvj,iv:u34+rXKLcZjBlVJmdbf60I82Fb621lUjOBmR4CTJWGk=,tag:ToPtBIz3bgzAUKc6hh4Oxg==,type:str]
 | 
			
		||||
sops:
 | 
			
		||||
    age:
 | 
			
		||||
        - recipient: age1zrgu7w8059xydagm60phnffghvfe9h2ca58cx8qwagqpyfuvs9fqw79c8h
 | 
			
		||||
          enc: |
 | 
			
		||||
            -----BEGIN AGE ENCRYPTED FILE-----
 | 
			
		||||
            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlaFFtOHRBNjZqOXJOV1Bk
 | 
			
		||||
            SXRhZTdNWklKaTZST2JhU3VFLzBGSWY0QlMwCldwS1hhMDEyZDAxWUlRRXZtTWts
 | 
			
		||||
            Ti9IOUR2OFdGYkJ4cFRsV0lkbWJvb1EKLS0tIEJUS1ZCZ1M4ZUs5cDhiam5JaEk1
 | 
			
		||||
            U1VjNFprNHZWeDhwU3owRXh0MlBFYkUKHPgxz9/w3+JEtOljfyWBPSshfFlVWVys
 | 
			
		||||
            f15yxlAeWIZVEGqoau7DegVdZiYYIJR2dFBXV1RkKbAwLrbUxAQidg==
 | 
			
		||||
            -----END AGE ENCRYPTED FILE-----
 | 
			
		||||
        - recipient: age1ecyynwv93lfu7crjjp8l47defv07quzfzaktwurpep7jc9eha5pscg7lrw
 | 
			
		||||
          enc: |
 | 
			
		||||
            -----BEGIN AGE ENCRYPTED FILE-----
 | 
			
		||||
            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5OWk0cTJ4d25Qd0hrdkFD
 | 
			
		||||
            a2Fzd1lrMDREclkvRmxUSjFpYXZvRGs2Rm13Cm5aRVZDWE5ZUVR1K2hkZkdKWjYw
 | 
			
		||||
            K3lKNndBNGFveGVGVWplaHA0MVlYUG8KLS0tIFlVeXhCTGJGUm1HK2RCSFg1RnI3
 | 
			
		||||
            aFVxcDFhaGdYekRWRVFIWnRsZndtZFkKgsvxOFHOcO306Z9FkucA1fDOpZA8N1/h
 | 
			
		||||
            jYmIgcKTFgWoSCvux67lK30jFsYp7sm5z6WxxDYsGcoQ/+pxoUX2jQ==
 | 
			
		||||
            -----END AGE ENCRYPTED FILE-----
 | 
			
		||||
    lastmodified: "2025-07-16T15:17:16Z"
 | 
			
		||||
    mac: ENC[AES256_GCM,data:UKIJFzABE0vr7vSYL85iZdTvd0y3dN/MaBUoKf6OpcDtRphM8/yY5J0Xq6XM5f28WFN1GlSKUekQz+DkA6aR6aCI2SICVOJpFb/eXKQ3Y7Td+PGcBr07hFOGCSu2vAzgYB1ZnajfI659FcWmdOoJSYgHUz3G7iRTHHCRVcoaVVk=,iv:jmKwn9bkqvPa0dGge4FFW2uT4Oa1LlFpFMUlnqUgkAA=,tag:CL+0+frQMt2TmgYv9yZeuw==,type:str]
 | 
			
		||||
    pgp:
 | 
			
		||||
        - created_at: "2025-03-07T22:49:16Z"
 | 
			
		||||
          enc: |-
 | 
			
		||||
            -----BEGIN PGP MESSAGE-----
 | 
			
		||||
 | 
			
		||||
            hQEMAzy6JxafzLr5AQgAjwQqdeESOfrOuCjfjALdoy3AnNYC+slusdlra58CoRu6
 | 
			
		||||
            YFDAivwPHJBRiuVy43Lo7SWnKXMKvLOry589GBY3JGjNV5U1cPWBhMlTubYZmZWl
 | 
			
		||||
            iel8Bvw4IF5JksMIvLFdDgexLN7wETzzZP9S8750BCgpSrncrw1k/dUedhv5HUjo
 | 
			
		||||
            N10x6BPjPSmgolA8uxsISHLAUrKcQoeaWvcZFU1ofKywq08HgIySphy6z3Gmv3Qs
 | 
			
		||||
            86saZp1rFm5+qHkrDRgL6Oe3Xx30jVkzn9MHPWzZCDPCEvYGJgXX34NGzbX+/nd3
 | 
			
		||||
            JB9XkT2YTFi4BLhdHY3EE7e9//PJc5G9RVDZyAF1e9JeAXH2yR5blXbogoy+VMnS
 | 
			
		||||
            Yn74Uvs+fnYFTDOiuequro5i0uAyxtrCx8fdfwjuh+9SC5p3N2cBv2eT7zLQwQHi
 | 
			
		||||
            czHlwxmpi/dMB/u83fR4FzuCUt98VXiezIC4yGn25g==
 | 
			
		||||
            =Yqqx
 | 
			
		||||
            -----END PGP MESSAGE-----
 | 
			
		||||
          fp: 0FECE8316E74BA6F44EFC21A2F8F21CE8721456B
 | 
			
		||||
    unencrypted_suffix: _unencrypted
 | 
			
		||||
    version: 3.10.2
 | 
			
		||||
| 
						 | 
				
			
			@ -1,16 +0,0 @@
 | 
			
		|||
age-encryption.org/v1
 | 
			
		||||
-> ssh-rsa BwwxHg
 | 
			
		||||
iTcgtxF1IxopbtF+aw7V8IQfH7tWiMk9lE/eWlVHVjeaRvER5W6Y3xZNOFCjtbqY
 | 
			
		||||
VwEyV6ibfZ4GJt1jRu2icEH/AnLUJFFGQnxu/K/rtoZ3tqSIk9WCBv3aPo4oZRiU
 | 
			
		||||
uaaxi2gD8qo1RLyl/Ij7Djw4i/isUOO1EON5sgx1d39k6qUD4Mak0DSU4EtGdTsr
 | 
			
		||||
OaxDAc0kAxhxZQOUH/QlKa0HLonaFcy1LHqvttOcw3UZuZnaYfZiPlcqe3USS9cm
 | 
			
		||||
96aIC5cS9pHr4JFrqRYvfpla2TY5jlCB/xBGw3KjGEIQoBPXSsJZA6BCMZyp00++
 | 
			
		||||
tdfS2aomt9HFmb1wZDS0jWAxkVF6nXXBbolFVih+58h0nYLljtHIQ3SizRoXY459
 | 
			
		||||
x3JE9NReHp2OO3SlIeO03Kv8YMBvj7nSSd1C1PMpu+hJ/eCXi1WQxD6QY+40muk6
 | 
			
		||||
KhqE3PZ8BCY2b+VpywUF5gVH28mo3jscqAzhf2dZ3SQlzldI+hFyKPxTdAqkfUOH
 | 
			
		||||
 | 
			
		||||
--- cinb+wzjVfTkpfm1CtFIFaepwoQVCj1MquB5rAC45Ew
 | 
			
		||||
¾
 | 
			
		||||
6
 | 
			
		||||
ZCþHS07ïºÖóýE¼X*Àqb=üOßíÛÉwu¥¤³Pºþ¹Ùçǖѳ/£ómvòÞ×Ë2VœÄ«
 | 
			
		||||
ÁŠxvç[“£‚µ£±”Ì‚A~ evdÓåÙ0¢Œni³1Ò›¹Qý„"í@Ù¹§ÞÔ{KpÐ:åϵuµsÊÎBñò(X…r[ÂQVg¢Tš¤°ðœîËï@Ä*ÇõÿíB«<>.§¯žhE鲟èÐë’÷½¥Žûzlz|kã`l8‘´8¼M›cch<63>îáZ`ƒ ?yeoƒ+ÈM-:/–À**ìè¦ÊcŸÎZD¡2Ñá¼é&·÷¾Ç¢¹£e¤ï*Hnç"Þ~+|ua(û6óËJ
 | 
			
		||||
| 
						 | 
				
			
			@ -1,54 +0,0 @@
 | 
			
		|||
hello: ENC[AES256_GCM,data:UJAAdOL7wzQ1LduTyW+XK2NtXyw/u/Yz28Bmd7OoBe41FVLKwVfvdI1nAwYuNQ==,iv:7kPT2HF5T498bUJ9hUlz5Ez/jn1g7YIUVbJOTW/CHhQ=,tag:KJhJPg8AStyW4roEbEUJ2g==,type:str]
 | 
			
		||||
example_key: ENC[AES256_GCM,data:DcLN+C1BQ6WZg5fRiA==,iv:JC3GTWn4a4RekAHdOQB3YV5+eGa4cUK1JjyTPe8eNHY=,tag:W9CV4rsgHuXyqpWpUxlIQg==,type:str]
 | 
			
		||||
#ENC[AES256_GCM,data:RjdYJNz6qGfbsU/AiBeLlQ==,iv:LjRzSjBXp44cGSqUUfRDNLC9cW4Vd7lfsqDWINt31VA=,tag:NzVm1h9CVKE2XXt300aR/g==,type:comment]
 | 
			
		||||
example_array:
 | 
			
		||||
    - ENC[AES256_GCM,data:K9j/t8MDibYO8Frhu1M=,iv:YnrxRnJJwTH6DJC6Bv/d1NUnX2ZPFwsjoji7L1Z+d7s=,tag:Dm7xCUlnjKdXHCuk8lwY8w==,type:str]
 | 
			
		||||
    - ENC[AES256_GCM,data:0g6ACJzEHBtukwQYYTY=,iv:xLBJWfOYkX7Y28N01CX2+d5QOr9VGAhInH6pa1hNSGE=,tag:tCkCigo4yhi6YKVMe3Z3lQ==,type:str]
 | 
			
		||||
example_number: ENC[AES256_GCM,data:R+/m/QVBH9/3DA==,iv:FumBUj97ICrRQmyh5fg8Gu9Lba9oITD1pdsr1I/PCf0=,tag:hguw1gpPI3w64fG1WLnJqA==,type:float]
 | 
			
		||||
example_booleans:
 | 
			
		||||
    - ENC[AES256_GCM,data:VvI5ag==,iv:koMzyWcua75sK19vuk65oywCD61lMyH3xUwue8LTqy4=,tag:2ym1M0FTwevLm7wefTUWAw==,type:bool]
 | 
			
		||||
    - ENC[AES256_GCM,data:lFEC/S8=,iv:cJWbnmseP/AqJzyORM+VI5y7rK8axVeh7EXoLP7mT/Q=,tag:BaS5HyecokdLCq+LzQxGkg==,type:bool]
 | 
			
		||||
sops:
 | 
			
		||||
    kms: []
 | 
			
		||||
    gcp_kms: []
 | 
			
		||||
    azure_kv: []
 | 
			
		||||
    hc_vault: []
 | 
			
		||||
    age:
 | 
			
		||||
        - recipient: age1zrgu7w8059xydagm60phnffghvfe9h2ca58cx8qwagqpyfuvs9fqw79c8h
 | 
			
		||||
          enc: |
 | 
			
		||||
            -----BEGIN AGE ENCRYPTED FILE-----
 | 
			
		||||
            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpSXhsMHQvb0NyUXRkRDE3
 | 
			
		||||
            TjVjb2orQktDMGs4U2JUS3hWdmtMdnhuYnhBCi9VU1RVblZPaW14VGxMcjM0N20z
 | 
			
		||||
            R1pOdUJZc1ZGcjBsTnNaZGhleVR6L1kKLS0tIE5vQkFhVXd0R3ZQSzZkNmVqN1Vj
 | 
			
		||||
            NERXdlJhVHF0NWpNT29CNlRid2NYMVUKxg7kbP6dOZDUz0uxdC45DZCAa6GQTQ1x
 | 
			
		||||
            nIb7lvPW4xFIb0bOZuvc7cAbHjf4So+8zvA0MM4mkTmIDpnwGD5Clg==
 | 
			
		||||
            -----END AGE ENCRYPTED FILE-----
 | 
			
		||||
        - recipient: age1m4mqcd2kmuhfr8a22rvh02c68jkakhdfmuqgtusuv0czk4jvna7sz79p3y
 | 
			
		||||
          enc: |
 | 
			
		||||
            -----BEGIN AGE ENCRYPTED FILE-----
 | 
			
		||||
            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrcTJGVmZUenNwYVNjRFlU
 | 
			
		||||
            VXNBeDdpVFVtSTN5TG9VN0Q1WjRFbjlHd0Z3CjFsU1BsNkZ1a1ZkY2lva3lBUWZ3
 | 
			
		||||
            YUpqeEo0Tys1bDk0TEpwQTJ2U29kbjgKLS0tIFJDYWpNemY4NXZ0MkM0YWNldDBE
 | 
			
		||||
            RU1HSUhldHpzeURaUWQvcjBCQ3pMY2cKYL87Njs4e68zu5AXKNF/hxiB3HduS8wz
 | 
			
		||||
            o0kmGI58DZx17+Cdipw0ab9a9wiu9C9Fn+LaiCcdM/ESXtS79RzdbQ==
 | 
			
		||||
            -----END AGE ENCRYPTED FILE-----
 | 
			
		||||
    lastmodified: "2025-03-05T22:27:18Z"
 | 
			
		||||
    mac: ENC[AES256_GCM,data:WSopSnWZ+uOllywd7difaZtJcfxkL7eIf9Kr3GajZKO0+rP6pEHIS+5AbXZy6oKRlCLUPecY/WXFvk3//akpvvXHbf6Jp4fQ/YSuTcYKRQupbDBpOXSlc33QyRl6oEyiMOjxMxa2N2tmq8dmA0NbF9wSDMa5a4eNDoiL5T/sUZ8=,iv:QqbVRApzFF6q24rk8KfKuthj656nEczD9Si4INj+N9A=,tag:tMRNYo+u/jIQ6iX3KqKJdA==,type:str]
 | 
			
		||||
    pgp:
 | 
			
		||||
        - created_at: "2025-03-07T22:49:19Z"
 | 
			
		||||
          enc: |-
 | 
			
		||||
            -----BEGIN PGP MESSAGE-----
 | 
			
		||||
 | 
			
		||||
            hQEMAzy6JxafzLr5AQf/Zw+EB0lFpbul4KmHL3ndbhQCHzhkMgG6vEyj7EpjHQxE
 | 
			
		||||
            nwf9kRrTcRh9YdrgR+5PFRnFJ8+L+gZhk+V/GaEPcEUyskOX/YGTSp1u6pXKGEem
 | 
			
		||||
            TGojrIx0WwcmeCZUn+qCehbC7ZU64NDDmb7VeWnRkMbboU6UVooHUub88VsbnYw2
 | 
			
		||||
            XXtXh4G8isrbyAKzUyypnJnEVbKlVqPOL67BYczjyBqMYc1JVLmBy6nP+sv6q/yo
 | 
			
		||||
            QyDzlunmZtu52dwAL0L6wJF+novLr4W9cso4K5UVv2sp5M8gucuiY2obiB3vNfgO
 | 
			
		||||
            q9GZTlMWnyDGflM1w+tzpZ/Ke+sM4dSy3cXpZd+MFNJeAaBJ1owjolb4tPUXlt+W
 | 
			
		||||
            cJ+SFLWxzH8MsPb+Hfxrt8PPCcv67uch/k50PLYs/V/EM59+mgEJe5LY4rMbUSFw
 | 
			
		||||
            REGL3LA6Cnkl2bUeHlfG7XlztHd/ehmZM2RPKof+Qw==
 | 
			
		||||
            =htZl
 | 
			
		||||
            -----END PGP MESSAGE-----
 | 
			
		||||
          fp: 0FECE8316E74BA6F44EFC21A2F8F21CE8721456B
 | 
			
		||||
    unencrypted_suffix: _unencrypted
 | 
			
		||||
    version: 3.9.4-unstable
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -2,6 +2,9 @@ let
 | 
			
		|||
  main_ssh_public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCxR/w+38b2lX90yNBqhq3mUmkn1WGu6GAPhN1tVp2ZjYRJNV/+5gWCnTtOWYtDx35HmK/spQ2Qy8X9ttkzORa24fysNx1Iqn/TiXhD7eIJjbGPnrOpIKTkW5/uB3SD/P5NBSa06//BaqJU4sBlG79hoXRpod052hQtdpTVDiMCIV+iboWPKqopmJJfWdBtVnHXs9rep0htPRExxGslImFk7Z6xjcaHyCpIQZPlOGf+sGsmUU7jRqzvZFV8ucIdbnAlMHrU4pepNFhuraESyZVTa/bi9sw0iozXp5Q5+5thMebEslmT1Z771kI4sieDy+O4r8c0Sx2/VY1UAzcpq1faggc3YB01MTh+tiEC6xdMvZLrQGL1NBWjHleMyL53GU5ERluC0vXJF3Hv3BGGBDfXWbrEm5n06DHr2apRVJGC0LwiQ7Woud1X4V4X1pKSusxCVMjT2lmcOwV6YhKhB2sowJc1OdMx4+tL0UWE+YKSZgBHfolwk6ml0F4EO9nnUHc= lelgenio@i15";
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  "rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.age".publicKeys = [
 | 
			
		||||
    main_ssh_public_key
 | 
			
		||||
  ];
 | 
			
		||||
  "monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.age".publicKeys = [
 | 
			
		||||
    main_ssh_public_key
 | 
			
		||||
  ];
 | 
			
		||||
| 
						 | 
				
			
			@ -9,11 +12,9 @@ in
 | 
			
		|||
  "monolith-forgejo-runner-token.age".publicKeys = [ main_ssh_public_key ];
 | 
			
		||||
  "lelgenio-cachix.age".publicKeys = [ main_ssh_public_key ];
 | 
			
		||||
  "monolith-nix-serve-privkey.age".publicKeys = [ main_ssh_public_key ];
 | 
			
		||||
  "factorio-settings.age".publicKeys = [ main_ssh_public_key ];
 | 
			
		||||
  "phantom-nextcloud.age".publicKeys = [ main_ssh_public_key ];
 | 
			
		||||
  "phantom-writefreely.age".publicKeys = [ main_ssh_public_key ];
 | 
			
		||||
  "phantom-renawiki.age".publicKeys = [ main_ssh_public_key ];
 | 
			
		||||
  "phantom-forgejo-mailer-password.age".publicKeys = [ main_ssh_public_key ];
 | 
			
		||||
  "phantom-mastodon-mailer-password.age".publicKeys = [ main_ssh_public_key ];
 | 
			
		||||
  "phantom-invidious-settings.age".publicKeys = [ main_ssh_public_key ];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,55 +0,0 @@
 | 
			
		|||
hello: ENC[AES256_GCM,data:ADXdQUkrnh9lDrsHyInYsPBo21u/mIAH47KhGQsxuz5OshT6CoK+89CILEi9tQ==,iv:b/rnM77z69+pVO3kxQZxI2YzTCRiBwwO5fhcwCB2/CI=,tag:A0FOXIfgIkJawV3QhlJPWQ==,type:str]
 | 
			
		||||
example_key: ENC[AES256_GCM,data:gXXl6hhdYNLC1Grmyw==,iv:miSL7Wdewd5zs4A86/r8OW6gK+PGZJ+gaqZRHHxvZos=,tag:Ty+IaoXdMSEThNPRjwhqTA==,type:str]
 | 
			
		||||
#ENC[AES256_GCM,data:FLhydTaiOqLRFk+ZrgGx9Q==,iv:TqhX2ylJKFQjdOpmwCER1+gRe4iR+I0hkVkNnYH4ESo=,tag:1BSk9TKqTma4MVUMswwmog==,type:comment]
 | 
			
		||||
example_array:
 | 
			
		||||
    - ENC[AES256_GCM,data:1sIEL3xGDAygUKoodBA=,iv:1DumVv8vDvhT/K0jXM1vHdrFTE7dIxqqjS8CIpWdnc8=,tag:WSs+3a816zVOaGCTElxgFQ==,type:str]
 | 
			
		||||
    - ENC[AES256_GCM,data:tFi1czQnVgX/nlWrJrs=,iv:isH65ldilVe3EjsKNP/dOKgtWZtHQPw364fPHBI+LEw=,tag:Ka5ywriFptKg3+lIHPEIyA==,type:str]
 | 
			
		||||
example_number: ENC[AES256_GCM,data:sxSM8a9oAp+u6g==,iv:KRLfIxZuBsnK+QE4mqm3pyhJmE7Fsd4ykJA++KrOnEQ=,tag:F5EkVUzw06ulr5jZvlTJdg==,type:float]
 | 
			
		||||
example_booleans:
 | 
			
		||||
    - ENC[AES256_GCM,data:PDts2Q==,iv:qtfKg5gmUw2aERJe3gfT15Pk7mWocXwKdJhAzSic1o0=,tag:gn1sWsgt9ihYF8bHAkAQwQ==,type:bool]
 | 
			
		||||
    - ENC[AES256_GCM,data:o9as7T0=,iv:YXyTB2X9PmTsOd37+BAp2xnT/+Yzyajcn5y1GE1O5rE=,tag:hyXA43jpyAbgH2hg1ivloQ==,type:bool]
 | 
			
		||||
sops:
 | 
			
		||||
    shamir_threshold: 1
 | 
			
		||||
    kms: []
 | 
			
		||||
    gcp_kms: []
 | 
			
		||||
    azure_kv: []
 | 
			
		||||
    hc_vault: []
 | 
			
		||||
    age:
 | 
			
		||||
        - recipient: age1zrgu7w8059xydagm60phnffghvfe9h2ca58cx8qwagqpyfuvs9fqw79c8h
 | 
			
		||||
          enc: |
 | 
			
		||||
            -----BEGIN AGE ENCRYPTED FILE-----
 | 
			
		||||
            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvUURIQmZvSVp3aXlFT0RR
 | 
			
		||||
            VHVBR0drN2JyV1hNUk5sakxGRXl6SEJuOUUwClQ1Q1lRZTR5R3Z4dlZyb29OaTNW
 | 
			
		||||
            UVcwV3h6UlhtZkg2aFhrUUtIT0tQRmsKLS0tIDlnckhHWXRKcmRwTGUzdHZxWEVh
 | 
			
		||||
            a3ZSWk0wNm1raXdMYXdKY1hDd2dZWUEK+IFU/9vsHu70XbSJ7sKqFncrZO3NAH8/
 | 
			
		||||
            X/XF1VUmIuDfQZYJsDa4HaXe52xvDWTw3/4frG9HutEI2NcvvRpxlw==
 | 
			
		||||
            -----END AGE ENCRYPTED FILE-----
 | 
			
		||||
        - recipient: age1ecyynwv93lfu7crjjp8l47defv07quzfzaktwurpep7jc9eha5pscg7lrw
 | 
			
		||||
          enc: |
 | 
			
		||||
            -----BEGIN AGE ENCRYPTED FILE-----
 | 
			
		||||
            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNRGxFWXJVcDZOdzVxaFJG
 | 
			
		||||
            LzdhN3JKaFhPOVBlblRPNWpDdERPaWhDNkM0CmcvUGxNQ09tNTJndWZTdjFia2pl
 | 
			
		||||
            RnNWQ0ZKSFhEN0FNbVZlKzlFUlh5QTgKLS0tIFkwc1pJajlyOGNHSTdaM3FQZWFK
 | 
			
		||||
            NUJpRDlLNXlGOTNBbVRTU0ZMVkhqdUUK1koXmGDGTKoNx1wp4c9EknY9LQ5a7dQP
 | 
			
		||||
            Zx6OzvtpsxL6KGjH7BeNNcm2zOR4YqnklLq09UsPHElz2upJQzECAQ==
 | 
			
		||||
            -----END AGE ENCRYPTED FILE-----
 | 
			
		||||
    lastmodified: "2025-03-07T22:49:01Z"
 | 
			
		||||
    mac: ENC[AES256_GCM,data:yma+7wtzVjCzlLOVpqiicjQ9YN1ttzoh8CpcAtjdtVl6gu7/3FXUKYyAWJd+1NUUpK7vN435gOq9/nsig0FRrn0Hgq0+cjFUGS6+6+SPmL97eFvti89gCOeIFhPvBnJQYJLiyVkUcBek4xW+vnt6UgrTy+sD9AT3KHdBlfu3pzY=,iv:ioswFO5KDAL3Bv7MI8V0aWXXxZZIz1M1PyMUbIMnCRI=,tag:5fUBtqz9J2qvY4fUT2ueoQ==,type:str]
 | 
			
		||||
    pgp:
 | 
			
		||||
        - created_at: "2025-03-07T22:49:20Z"
 | 
			
		||||
          enc: |-
 | 
			
		||||
            -----BEGIN PGP MESSAGE-----
 | 
			
		||||
 | 
			
		||||
            hQEMAzy6JxafzLr5AQf/Xok7aBMNT6W3LV2Ekx/ccxEZaZ0aVNKHE9aFTz5kBSpu
 | 
			
		||||
            cXVohu5mEgeXr++HbrsCI821/gfchQ1yzVSLJsSrmZdJ586c3a7pWx2Eo4pcngmy
 | 
			
		||||
            vb5UWtTBNogABnLz4iTjVQYLjZeNcNhkzW6s3m9PiaX3AvJP9irPcmwIyYpzd9pt
 | 
			
		||||
            hngnBsdTis52fmvZ6+wOuMyTZU0Iksknom1De8xqgR5ZuO0Vitt19RGbpVhx96AC
 | 
			
		||||
            t1CUkb5WMFTdpbCFORa/ta9Z7UcKxXTAPsfPkPVG9DnHQ1jSmsJWPDQZxoIJLHuH
 | 
			
		||||
            SVV+qfRGndOo9fjExCInX6I5wBlrHrdpGtL7VLczV9JeAXYlMJwH63eOyi8hxxtr
 | 
			
		||||
            KfTJEIALC25uFhoK8bmr30yVZe7thUPMXfht+R5dlHne7+FcBb4k7YLpeN/M40me
 | 
			
		||||
            CSKk+9YaG7gQIdrfvEXlHSPCPppcKev6ZUspHewhmQ==
 | 
			
		||||
            =IMON
 | 
			
		||||
            -----END PGP MESSAGE-----
 | 
			
		||||
          fp: 0FECE8316E74BA6F44EFC21A2F8F21CE8721456B
 | 
			
		||||
    unencrypted_suffix: _unencrypted
 | 
			
		||||
    version: 3.9.4
 | 
			
		||||
| 
						 | 
				
			
			@ -1,18 +1,6 @@
 | 
			
		|||
{ lib, ... }:
 | 
			
		||||
{
 | 
			
		||||
  options = {
 | 
			
		||||
    my = {
 | 
			
		||||
      themes = lib.mkOption { };
 | 
			
		||||
      key = lib.mkOption { };
 | 
			
		||||
      theme = lib.mkOption { };
 | 
			
		||||
      accent = lib.mkOption { };
 | 
			
		||||
      font = lib.mkOption { };
 | 
			
		||||
      username = lib.mkOption { type = lib.types.str; };
 | 
			
		||||
      mail = lib.mkOption { };
 | 
			
		||||
      dmenu = lib.mkOption { type = lib.types.str; };
 | 
			
		||||
      desktop = lib.mkOption { type = lib.types.str; };
 | 
			
		||||
      browser = lib.mkOption { type = lib.types.str; };
 | 
			
		||||
      editor = lib.mkOption { type = lib.types.str; };
 | 
			
		||||
    };
 | 
			
		||||
    my = lib.mkOption { };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										27
									
								
								switch
									
										
									
									
									
								
							
							
						
						
									
										27
									
								
								switch
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,28 +1,13 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
set -euo pipefail
 | 
			
		||||
 | 
			
		||||
nix fmt
 | 
			
		||||
 | 
			
		||||
# Allow usage of untracked files in nix code
 | 
			
		||||
git add --intent-to-add .
 | 
			
		||||
 | 
			
		||||
git --no-pager diff
 | 
			
		||||
 | 
			
		||||
run() {
 | 
			
		||||
sudo nice ionice \
 | 
			
		||||
    nixos-rebuild \
 | 
			
		||||
        switch \
 | 
			
		||||
        --use-remote-sudo \
 | 
			
		||||
        --print-build-logs \
 | 
			
		||||
        --flake .# \
 | 
			
		||||
        "$@"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if which nom >/dev/null; then
 | 
			
		||||
    run --verbose \
 | 
			
		||||
        --log-format internal-json \
 | 
			
		||||
        "$@" \
 | 
			
		||||
    |& nom --json
 | 
			
		||||
else
 | 
			
		||||
    run "$@"
 | 
			
		||||
fi
 | 
			
		||||
    switch \
 | 
			
		||||
    --verbose \
 | 
			
		||||
    --print-build-logs \
 | 
			
		||||
    --flake .# \
 | 
			
		||||
    $@
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,17 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  options.my.android.enable = lib.mkEnableOption { };
 | 
			
		||||
 | 
			
		||||
  config = lib.mkIf config.my.android.enable {
 | 
			
		||||
    # Open kde connect ports
 | 
			
		||||
    programs.kdeconnect.enable = true;
 | 
			
		||||
 | 
			
		||||
    programs.adb.enable = true;
 | 
			
		||||
    services.udev.packages = [ pkgs.android-udev-rules ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -6,7 +6,7 @@
 | 
			
		|||
    settings = {
 | 
			
		||||
      General = {
 | 
			
		||||
        DiscoverableTimeout = 0;
 | 
			
		||||
        Discoverable = true;
 | 
			
		||||
        # Discoverable = true;
 | 
			
		||||
        AlwaysPairable = true;
 | 
			
		||||
      };
 | 
			
		||||
      Policy = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,6 +2,7 @@
 | 
			
		|||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  inputs,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										18
									
								
								system/cachix.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								system/cachix.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
{
 | 
			
		||||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  config,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  services.cachix-watch-store = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    cacheName = "lelgenio";
 | 
			
		||||
    cachixTokenFile = config.age.secrets.lelgenio-cachix.path;
 | 
			
		||||
  };
 | 
			
		||||
  systemd.services.cachix-watch-store-agent = {
 | 
			
		||||
    serviceConfig.TimeoutStopSec = 3;
 | 
			
		||||
    # If we don't do this, cachix tends to timeout
 | 
			
		||||
    serviceConfig.KillMode = lib.mkForce "control-group";
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,11 +1,16 @@
 | 
			
		|||
# Edit this configuration file to define what should be installed on
 | 
			
		||||
# your system.  Help is available in the configuration.nix(5) man page
 | 
			
		||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
 | 
			
		||||
{ pkgs, config, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  inputs,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./android.nix
 | 
			
		||||
    ./gaming.nix
 | 
			
		||||
    ./gamemode.nix
 | 
			
		||||
    ./cachix.nix
 | 
			
		||||
    ./media-packages.nix
 | 
			
		||||
    ./boot.nix
 | 
			
		||||
    ./thunar.nix
 | 
			
		||||
| 
						 | 
				
			
			@ -13,32 +18,31 @@
 | 
			
		|||
    ./fonts.nix
 | 
			
		||||
    ./sound.nix
 | 
			
		||||
    ./bluetooth.nix
 | 
			
		||||
    ./mouse.nix
 | 
			
		||||
    ./locale.nix
 | 
			
		||||
    ./users.nix
 | 
			
		||||
    ./containers.nix
 | 
			
		||||
    ./nix-ld.nix
 | 
			
		||||
    ./network.nix
 | 
			
		||||
    ../settings
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  my = import ../user/variables.nix // {
 | 
			
		||||
    android.enable = true;
 | 
			
		||||
    media-packages.enable = true;
 | 
			
		||||
    containers.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
  my = import ../user/variables.nix;
 | 
			
		||||
 | 
			
		||||
  zramSwap.enable = true;
 | 
			
		||||
 | 
			
		||||
  programs.adb.enable = true;
 | 
			
		||||
  services.udev.packages = [ pkgs.android-udev-rules ];
 | 
			
		||||
 | 
			
		||||
  # Enable touchpad support (enabled default in most desktopManager).
 | 
			
		||||
  services.libinput.enable = true;
 | 
			
		||||
 | 
			
		||||
  packages.media-packages.enable = true;
 | 
			
		||||
  environment.systemPackages = with pkgs; [
 | 
			
		||||
    pavucontrol
 | 
			
		||||
 | 
			
		||||
    glib # gsettings
 | 
			
		||||
    usbutils
 | 
			
		||||
    adwaita-icon-theme # default gnome cursors
 | 
			
		||||
    # dracula-theme # gtk theme
 | 
			
		||||
    gnome3.adwaita-icon-theme # default gnome cursors
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  services.geoclue2.enable = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -49,7 +53,6 @@
 | 
			
		|||
  services.logind.extraConfig = ''
 | 
			
		||||
    HandlePowerKey=suspend
 | 
			
		||||
  '';
 | 
			
		||||
  services.upower.enable = true;
 | 
			
		||||
 | 
			
		||||
  # This value determines the NixOS release from which the default
 | 
			
		||||
  # settings for stateful data, like file locations and database versions
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,52 +1,20 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  config,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  options.my.containers.enable = lib.mkEnableOption { };
 | 
			
		||||
  services.flatpak.enable = true;
 | 
			
		||||
 | 
			
		||||
  config = lib.mkIf config.my.containers.enable {
 | 
			
		||||
    services.flatpak.enable = true;
 | 
			
		||||
    programs.appimage.enable = true;
 | 
			
		||||
 | 
			
		||||
    virtualisation.docker = {
 | 
			
		||||
  virtualisation.docker = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    autoPrune = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      autoPrune = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        dates = "monthly";
 | 
			
		||||
        flags = [
 | 
			
		||||
          "--all"
 | 
			
		||||
          "--volumes"
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
      daemon.settings = {
 | 
			
		||||
        # needed by bitbucket runner ???
 | 
			
		||||
        log-driver = "json-file";
 | 
			
		||||
        log-opts = {
 | 
			
		||||
          max-size = "10m";
 | 
			
		||||
          max-file = "3";
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
      dates = "monthly";
 | 
			
		||||
      flags = [
 | 
			
		||||
        "--all"
 | 
			
		||||
        "--volumes"
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    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.firejail.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  programs.extra-container.enable = true;
 | 
			
		||||
 | 
			
		||||
  programs.firejail.enable = true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,9 +3,8 @@
 | 
			
		|||
  fonts.enableDefaultPackages = true;
 | 
			
		||||
  fonts.packages = with pkgs; [
 | 
			
		||||
    noto-fonts
 | 
			
		||||
    noto-fonts-cjk-sans
 | 
			
		||||
    noto-fonts-cjk
 | 
			
		||||
    noto-fonts-emoji
 | 
			
		||||
    nerd-fonts.fira-code
 | 
			
		||||
    nerd-fonts.hack
 | 
			
		||||
    nerdfonts_fira_hack
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										27
									
								
								system/gamemode.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								system/gamemode.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
{
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  inputs,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  programs.gamemode.enable = true;
 | 
			
		||||
  programs.gamemode.enableRenice = true;
 | 
			
		||||
  programs.gamemode.settings = {
 | 
			
		||||
    general = {
 | 
			
		||||
      renice = 10;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # Warning: GPU optimisations have the potential to damage hardware
 | 
			
		||||
    gpu = {
 | 
			
		||||
      apply_gpu_optimisations = "accept-responsibility";
 | 
			
		||||
      gpu_device = 0;
 | 
			
		||||
      amd_performance_level = "high";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    custom = {
 | 
			
		||||
      start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'";
 | 
			
		||||
      end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,65 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  inputs,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  options.my.gaming.enable = lib.mkEnableOption { };
 | 
			
		||||
 | 
			
		||||
  config = lib.mkIf config.my.gaming.enable {
 | 
			
		||||
    programs.steam.enable = true;
 | 
			
		||||
    programs.steam.extraPackages =
 | 
			
		||||
      config.fonts.packages
 | 
			
		||||
      ++ (with pkgs; [
 | 
			
		||||
        capitaine-cursors
 | 
			
		||||
        bibata-cursors
 | 
			
		||||
        mangohud
 | 
			
		||||
        xdg-user-dirs
 | 
			
		||||
        gamescope
 | 
			
		||||
 | 
			
		||||
        # gamescope compatibility??
 | 
			
		||||
        xorg.libXcursor
 | 
			
		||||
        xorg.libXi
 | 
			
		||||
        xorg.libXinerama
 | 
			
		||||
        xorg.libXScrnSaver
 | 
			
		||||
        libpng
 | 
			
		||||
        libpulseaudio
 | 
			
		||||
        libvorbis
 | 
			
		||||
        stdenv.cc.cc.lib
 | 
			
		||||
        libkrb5
 | 
			
		||||
        keyutils
 | 
			
		||||
      ]);
 | 
			
		||||
 | 
			
		||||
    environment.systemPackages = with pkgs; [
 | 
			
		||||
      protontricks
 | 
			
		||||
      bottles
 | 
			
		||||
      inputs.dzgui-nix.packages.${pkgs.system}.default
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    programs.gamemode = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      enableRenice = true;
 | 
			
		||||
      settings = {
 | 
			
		||||
        general = {
 | 
			
		||||
          renice = 10;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        # Warning: GPU optimisations have the potential to damage hardware
 | 
			
		||||
        gpu = {
 | 
			
		||||
          apply_gpu_optimisations = "accept-responsibility";
 | 
			
		||||
          gpu_device = 0;
 | 
			
		||||
          amd_performance_level = "high";
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        custom = {
 | 
			
		||||
          start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'";
 | 
			
		||||
          end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'";
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    programs.corectrl.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,95 +1,52 @@
 | 
			
		|||
{ pkgs, lib, ... }:
 | 
			
		||||
{
 | 
			
		||||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  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:
 | 
			
		||||
    {
 | 
			
		||||
  mkNixRunner =
 | 
			
		||||
    registrationConfigFile: with lib; rec {
 | 
			
		||||
      # File should contain at least these two variables:
 | 
			
		||||
      # `CI_SERVER_URL`
 | 
			
		||||
      # `REGISTRATION_TOKEN`
 | 
			
		||||
      inherit authenticationTokenConfigFile; # 2
 | 
			
		||||
      inherit registrationConfigFile; # 2
 | 
			
		||||
      dockerImage = "alpine:3.18.2";
 | 
			
		||||
      dockerPullPolicy = "if-not-present";
 | 
			
		||||
      dockerAllowedImages = [ dockerImage ];
 | 
			
		||||
      dockerVolumes = [
 | 
			
		||||
        "/etc/nix/nix.conf:/etc/nix/nix.conf:ro"
 | 
			
		||||
        "/nix/store:/nix/store:ro"
 | 
			
		||||
        "/nix/var/nix/db:/nix/var/nix/db: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;
 | 
			
		||||
      preBuildScript = "\". ${lib.getExe (installNixScript args)}\"";
 | 
			
		||||
      dockerDisableCache = true;
 | 
			
		||||
      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 = {
 | 
			
		||||
        ENV = "/etc/profile";
 | 
			
		||||
        USER = "root";
 | 
			
		||||
        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_PATH = if inputs != null then "nixpkgs=${inputs.nixpkgs}" else "";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  mkNixRunner =
 | 
			
		||||
    authenticationTokenConfigFile:
 | 
			
		||||
    mkNixRunnerFull {
 | 
			
		||||
      inherit authenticationTokenConfigFile;
 | 
			
		||||
      tagList = [ "nix" ];
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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 = {
 | 
			
		||||
      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
 | 
			
		||||
      extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
 | 
			
		||||
    };
 | 
			
		||||
| 
						 | 
				
			
			@ -72,7 +74,7 @@ in
 | 
			
		|||
            user = "lelgenio";
 | 
			
		||||
          };
 | 
			
		||||
          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";
 | 
			
		||||
  environment.variables.TZ = config.time.timeZone;
 | 
			
		||||
  i18n.defaultLocale = "pt_BR.UTF-8";
 | 
			
		||||
  i18n.defaultLocale = "pt_BR.utf8";
 | 
			
		||||
 | 
			
		||||
  # Configure keymap in X11
 | 
			
		||||
  services.xserver.xkb = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,10 +5,10 @@
 | 
			
		|||
  ...
 | 
			
		||||
}:
 | 
			
		||||
let
 | 
			
		||||
  cfg = config.my.media-packages;
 | 
			
		||||
  cfg = config.packages.media-packages;
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  options.my.media-packages = {
 | 
			
		||||
  options.packages.media-packages = {
 | 
			
		||||
    enable = lib.mkEnableOption "media packages";
 | 
			
		||||
  };
 | 
			
		||||
  config = lib.mkIf cfg.enable {
 | 
			
		||||
| 
						 | 
				
			
			@ -23,7 +23,6 @@ in
 | 
			
		|||
      gimp
 | 
			
		||||
      inkscape
 | 
			
		||||
      krita
 | 
			
		||||
      kdePackages.breeze
 | 
			
		||||
      kdePackages.kdenlive
 | 
			
		||||
      pitivi
 | 
			
		||||
      blender-hip
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,60 +1,36 @@
 | 
			
		|||
{
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  inputs,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
let
 | 
			
		||||
  inherit (pkgs.callPackage ./gitlab-runner.nix { inherit inputs; }) mkNixRunner mkNixRunnerFull;
 | 
			
		||||
  inherit (pkgs.callPackage ./gitlab-runner.nix { }) mkNixRunner;
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  boot.kernel.sysctl."net.ipv4.ip_forward" = true;
 | 
			
		||||
  virtualisation.docker.enable = true;
 | 
			
		||||
  services.gitlab-runner = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    settings.concurrent = 8;
 | 
			
		||||
    settings.concurrent = 4;
 | 
			
		||||
    services = {
 | 
			
		||||
      # ci_test = {
 | 
			
		||||
      #   registrationConfigFile = "/srv/gitlab-runner/env/ci_test";
 | 
			
		||||
      #   dockerImage = "debian";
 | 
			
		||||
      #   dockerPrivileged = true;
 | 
			
		||||
      # };
 | 
			
		||||
      thoreb_builder = {
 | 
			
		||||
        registrationConfigFile =
 | 
			
		||||
          config.age.secrets.monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.path;
 | 
			
		||||
        dockerImage = "debian";
 | 
			
		||||
        dockerPrivileged = true;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      # runner for building in docker via host's nix-daemon
 | 
			
		||||
      # nix store will be readable in runner, might be insecure
 | 
			
		||||
      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;
 | 
			
		||||
 | 
			
		||||
      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 = {
 | 
			
		||||
        # File should contain at least these two variables:
 | 
			
		||||
        # `CI_SERVER_URL`
 | 
			
		||||
        # `CI_SERVER_TOKEN`
 | 
			
		||||
        authenticationTokenConfigFile = config.sops.secrets."gitlab-runners/docker-images-token".path;
 | 
			
		||||
        dockerImage = "debian:stable";
 | 
			
		||||
        dockerPullPolicy = "if-not-present";
 | 
			
		||||
      };
 | 
			
		||||
      thoreb-telemetria-nix = mkNixRunner config.age.secrets.gitlab-runner-thoreb-telemetria-registrationConfigFile.path;
 | 
			
		||||
      thoreb-itinerario-nix = mkNixRunner config.age.secrets.monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.path;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
  systemd.services.gitlab-runner.serviceConfig.Nice = 10;
 | 
			
		||||
 | 
			
		||||
  sops.secrets = {
 | 
			
		||||
    "gitlab-runners/thoreb-telemetria-nix" = {
 | 
			
		||||
      sopsFile = ../secrets/monolith/default.yaml;
 | 
			
		||||
    };
 | 
			
		||||
    "gitlab-runners/thoreb-itinerario-nix" = {
 | 
			
		||||
      sopsFile = ../secrets/monolith/default.yaml;
 | 
			
		||||
    };
 | 
			
		||||
    "gitlab-runners/docker-images-token" = {
 | 
			
		||||
      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;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,15 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  # Allow configuring Logitech Peripherals
 | 
			
		||||
  services.ratbagd.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Sway does not undersand high resolution scroll wheels
 | 
			
		||||
  # I don't need this, so I disable it
 | 
			
		||||
  environment.etc."libinput/local-overrides.quirks".text = ''
 | 
			
		||||
    [Logitech G502 X PLUS]
 | 
			
		||||
    MatchUdevType=mouse
 | 
			
		||||
    MatchBus=usb
 | 
			
		||||
    MatchVendor=0x046D
 | 
			
		||||
    MatchProduct=0x4099
 | 
			
		||||
    AttrEventCode=-REL_WHEEL_HI_RES
 | 
			
		||||
  '';
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -6,14 +6,11 @@
 | 
			
		|||
  # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
 | 
			
		||||
  # Enable networking
 | 
			
		||||
  networking.networkmanager.enable = true;
 | 
			
		||||
 | 
			
		||||
  networking.firewall = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    logRefusedConnections = false;
 | 
			
		||||
  };
 | 
			
		||||
  # Open kde connect ports
 | 
			
		||||
  programs.kdeconnect.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Enable CUPS to print documents.
 | 
			
		||||
  services.printing.enable = true;
 | 
			
		||||
  # services.printing.enable = true;
 | 
			
		||||
 | 
			
		||||
  security.rtkit.enable = true;
 | 
			
		||||
  services.openssh = {
 | 
			
		||||
| 
						 | 
				
			
			@ -25,15 +22,4 @@
 | 
			
		|||
      KbdInteractiveAuthentication = false;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  services.fail2ban.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Workaround for nm-wait-online hanging??
 | 
			
		||||
  # Ref: https://github.com/NixOS/nixpkgs/issues/180175
 | 
			
		||||
  systemd.services.NetworkManager-wait-online = {
 | 
			
		||||
    serviceConfig.ExecStart = [
 | 
			
		||||
      ""
 | 
			
		||||
      "${pkgs.networkmanager}/bin/nm-online -q"
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,21 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  config,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  options.my.nix-ld.enable = lib.mkEnableOption { };
 | 
			
		||||
 | 
			
		||||
  config = lib.mkIf (config.my.nix-ld.enable) {
 | 
			
		||||
    programs.nix-ld = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      libraries =
 | 
			
		||||
        with pkgs;
 | 
			
		||||
        # run appimages + linux games natively
 | 
			
		||||
        [ fuse ]
 | 
			
		||||
        ++ (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs)
 | 
			
		||||
        ++ (appimageTools.defaultFhsEnvArgs.targetPkgs pkgs);
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -44,7 +44,7 @@ in
 | 
			
		|||
      ];
 | 
			
		||||
    };
 | 
			
		||||
    extraOptions = ''
 | 
			
		||||
      experimental-features = nix-command flakes
 | 
			
		||||
      experimental-features = nix-command flakes repl-flake
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										34
									
								
								system/rainbow-gitlab-runner.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								system/rainbow-gitlab-runner.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,34 @@
 | 
			
		|||
{
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
let
 | 
			
		||||
  inherit (pkgs.callPackage ./gitlab-runner.nix { }) mkNixRunner;
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  boot.kernel.sysctl."net.ipv4.ip_forward" = true;
 | 
			
		||||
  virtualisation.docker.enable = true;
 | 
			
		||||
  services.gitlab-runner = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    settings.concurrent = 1;
 | 
			
		||||
    services = {
 | 
			
		||||
      # ci_test = {
 | 
			
		||||
      #   registrationConfigFile = "/srv/gitlab-runner/env/ci_test";
 | 
			
		||||
      #   dockerImage = "debian";
 | 
			
		||||
      #   dockerPrivileged = true;
 | 
			
		||||
      # };
 | 
			
		||||
      thoreb_builder = {
 | 
			
		||||
        registrationConfigFile =
 | 
			
		||||
          config.age.secrets.rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.path;
 | 
			
		||||
        dockerImage = "debian";
 | 
			
		||||
        dockerPrivileged = true;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      thoreb-telemetria-nix = mkNixRunner config.age.secrets.gitlab-runner-thoreb-telemetria-registrationConfigFile.path;
 | 
			
		||||
      thoreb-itinerario-nix = mkNixRunner config.age.secrets.rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.path;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
  systemd.services.gitlab-runner.serviceConfig.Nice = 10;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
{ pkgs, config, ... }:
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  age = {
 | 
			
		||||
    identityPaths = [ "/root/.ssh/id_rsa" ];
 | 
			
		||||
| 
						 | 
				
			
			@ -6,6 +6,7 @@
 | 
			
		|||
    secrets.monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.file = ../secrets/monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.age;
 | 
			
		||||
    secrets.gitlab-runner-thoreb-telemetria-registrationConfigFile.file = ../secrets/gitlab-runner-thoreb-telemetria-registrationConfigFile.age;
 | 
			
		||||
    secrets.monolith-forgejo-runner-token.file = ../secrets/monolith-forgejo-runner-token.age;
 | 
			
		||||
    secrets.rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.file = ../secrets/rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.age;
 | 
			
		||||
    secrets.monolith-nix-serve-privkey.file = ../secrets/monolith-nix-serve-privkey.age;
 | 
			
		||||
    secrets.phantom-forgejo-mailer-password.file = ../secrets/phantom-forgejo-mailer-password.age;
 | 
			
		||||
  };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,15 +0,0 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  environment.systemPackages = with pkgs; [
 | 
			
		||||
    sops
 | 
			
		||||
    gnupg
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  sops = {
 | 
			
		||||
    defaultSopsFile = ../secrets/test.yaml;
 | 
			
		||||
    age.sshKeyPaths = [
 | 
			
		||||
      "/etc/ssh/ssh_host_ed25519_key"
 | 
			
		||||
      "/home/lelgenio/.ssh/id_ed25519"
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  services.pulseaudio.enable = false;
 | 
			
		||||
  sound.enable = true;
 | 
			
		||||
  hardware.pulseaudio.enable = false;
 | 
			
		||||
  services.pipewire = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    wireplumber.enable = true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										33
									
								
								system/steam.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								system/steam.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
{
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  inputs,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  programs.steam.enable = true;
 | 
			
		||||
  programs.steam.package = pkgs.steam.override {
 | 
			
		||||
    extraLibraries =
 | 
			
		||||
      pkgs:
 | 
			
		||||
      with config.hardware.opengl;
 | 
			
		||||
      if pkgs.hostPlatform.is64bit then
 | 
			
		||||
        [ package ] ++ extraPackages
 | 
			
		||||
      else
 | 
			
		||||
        [ package32 ] ++ extraPackages32;
 | 
			
		||||
 | 
			
		||||
    extraPkgs =
 | 
			
		||||
      pkgs: with pkgs; [
 | 
			
		||||
        capitaine-cursors
 | 
			
		||||
        bibata-cursors
 | 
			
		||||
        mangohud
 | 
			
		||||
        xdg-user-dirs
 | 
			
		||||
      ];
 | 
			
		||||
  };
 | 
			
		||||
  environment.systemPackages = with pkgs; [
 | 
			
		||||
    protontricks
 | 
			
		||||
    bottles
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  programs.dzgui.enable = true;
 | 
			
		||||
  programs.dzgui.package = inputs.dzgui-nix.packages.${pkgs.system}.default;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,8 +0,0 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  projectRootFile = "flake.nix";
 | 
			
		||||
  programs.nixfmt.enable = true;
 | 
			
		||||
  programs.nixfmt.package = pkgs.nixfmt-rfc-style;
 | 
			
		||||
 | 
			
		||||
  settings.on-unmatched = "debug";
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -116,12 +116,6 @@ in
 | 
			
		|||
            mode = "Vi|~Search";
 | 
			
		||||
            action = "SearchNext";
 | 
			
		||||
          }
 | 
			
		||||
          {
 | 
			
		||||
            key = lib.toUpper key.next;
 | 
			
		||||
            mods = "Shift";
 | 
			
		||||
            mode = "Vi|~Search";
 | 
			
		||||
            action = "SearchPrevious";
 | 
			
		||||
          }
 | 
			
		||||
          {
 | 
			
		||||
            key = "Up";
 | 
			
		||||
            mods = "Control|Shift";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,15 +9,15 @@
 | 
			
		|||
  wayland.windowManager.sway = {
 | 
			
		||||
    extraConfig = ''
 | 
			
		||||
      exec thunderbird
 | 
			
		||||
      exec discordcanary
 | 
			
		||||
      exec vesktop
 | 
			
		||||
      exec telegram-desktop
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    tdesktop
 | 
			
		||||
    discord-canary
 | 
			
		||||
    vesktop
 | 
			
		||||
    thunderbird
 | 
			
		||||
    element-desktop
 | 
			
		||||
    element-desktop-wayland
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										26
									
								
								user/controller.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								user/controller.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,26 @@
 | 
			
		|||
{ pkgs, lib, ... }:
 | 
			
		||||
{
 | 
			
		||||
  systemd.user.services = {
 | 
			
		||||
    autoconnect-gamepad = {
 | 
			
		||||
      Unit = {
 | 
			
		||||
        Description = "Attempt to connect to game controllers";
 | 
			
		||||
        PartOf = [ "graphical-session.target" ];
 | 
			
		||||
        After = [ "graphical-session.target" ];
 | 
			
		||||
      };
 | 
			
		||||
      Service = {
 | 
			
		||||
        ExecStart = lib.getExe pkgs.auto_connect_gamepad;
 | 
			
		||||
      };
 | 
			
		||||
      Install = {
 | 
			
		||||
        WantedBy = [ "sway-session.target" ];
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  xdg.desktopEntries = {
 | 
			
		||||
    disconnect-controller = {
 | 
			
		||||
      name = "Disconnect Controller";
 | 
			
		||||
      exec = "bluetoothctl disconnect 84:30:95:97:1A:79";
 | 
			
		||||
      terminal = false;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,9 +0,0 @@
 | 
			
		|||
{ lib, ... }:
 | 
			
		||||
{
 | 
			
		||||
  options.my = {
 | 
			
		||||
    nix-ld.enable = lib.mkEnableOption { };
 | 
			
		||||
    android.enable = lib.mkEnableOption { };
 | 
			
		||||
    media-packages.enable = lib.mkEnableOption { };
 | 
			
		||||
    containers.enable = lib.mkEnableOption { };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue