Compare commits
	
		
			1 commit
		
	
	
		
			main
			...
			stylix-fix
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| e4839e4d2e | 
					 53 changed files with 925 additions and 1060 deletions
				
			
		
							
								
								
									
										1
									
								
								.envrc
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.envrc
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					use flake "git+https://git.lillianviolet.dev/Lillian-Violet/dev-templates.git?dir=nix"
 | 
				
			||||||
							
								
								
									
										13
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								README.md
									
										
									
									
									
								
							| 
						 | 
					@ -46,16 +46,6 @@ To test if your build succeeds the basic checks and can start building the artif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Note: this does not build the full configuration, and errors might still happen in deployment, especially for dependencies that rely on external services like webservers to be called. For obvious reasons the test building does not actually pull in all the artifacts, and does not make external calls aside from to the package files (You will need a built nix store, or a connection to the git repository that hosts your packages, like an internet connection to github, to make the test run)
 | 
					Note: this does not build the full configuration, and errors might still happen in deployment, especially for dependencies that rely on external services like webservers to be called. For obvious reasons the test building does not actually pull in all the artifacts, and does not make external calls aside from to the package files (You will need a built nix store, or a connection to the git repository that hosts your packages, like an internet connection to github, to make the test run)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Post installation
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
I have made a few commands for post installation (and for an iso installer to use) that make life a bit easier, they are automatically added to the [$PATH](https://en.wikipedia.org/wiki/PATH_(variable)). The commands will automatically inhibit sleep and standby so you don't have to worry about them getting interrupted.
 | 
					 | 
				
			||||||
| Command       | Effect        |
 | 
					 | 
				
			||||||
| ------------- | ------------- |
 | 
					 | 
				
			||||||
| rebuild       | Use the latest version of the repo and do a nixos-rebuild switch on it to upgrade your system. |
 | 
					 | 
				
			||||||
| update | Update the flake lock in the repo, run a test to see if nothing breaks, and then push the flake lock update done to the repo. |
 | 
					 | 
				
			||||||
| upgrade | Run update and rebuild one after the other, useful for a quick upgrade. |
 | 
					 | 
				
			||||||
| install | Run a script that automatically lets you select a host to format the disks with disko, install nixos on that disk, and deploy the entire configuration. (useful for instal USBs) |
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Technical details
 | 
					## Technical details
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### [Home manager](https://github.com/nix-community/home-manager)
 | 
					### [Home manager](https://github.com/nix-community/home-manager)
 | 
				
			||||||
| 
						 | 
					@ -67,6 +57,3 @@ The secrets are managed in sops files within the hosts folders, there is only on
 | 
				
			||||||
``nix-shell -p sops --run "sops ./nixos/hosts/<hostname>/secrets/sops.yaml"``
 | 
					``nix-shell -p sops --run "sops ./nixos/hosts/<hostname>/secrets/sops.yaml"``
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This requires your system to have the keyfile available for sops to use, by default sops looks in the sops/age folder in your user folder for a keys.txt file with the private key. You can change this behaviour by setting the **\$SOPS_AGE_KEY_FILE** environment variable, or setting the **\$SOPS_AGE_KEY** environment variable to the key itself.
 | 
					This requires your system to have the keyfile available for sops to use, by default sops looks in the sops/age folder in your user folder for a keys.txt file with the private key. You can change this behaviour by setting the **\$SOPS_AGE_KEY_FILE** environment variable, or setting the **\$SOPS_AGE_KEY** environment variable to the key itself.
 | 
				
			||||||
 | 
					 | 
				
			||||||
### [Just](https://github.com/casey/just)
 | 
					 | 
				
			||||||
This repo uses just as a command runner for setting up and building the nixos files more easily. The programs needed to run all the commands are nix, just, and nom (nix output monitor). The commands you can use can be found in the justfile (named justfile in the root of this repo). This is purely for convenience, it doesn't add anything you could not manually do, it just automates a lot of steps.
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  disko.devices = {
 | 
					  disko.devices = {
 | 
				
			||||||
    disk = {
 | 
					    disk = {
 | 
				
			||||||
      main = {
 | 
					      sda1 = {
 | 
				
			||||||
        type = "disk";
 | 
					        type = "disk";
 | 
				
			||||||
        device = "/dev/disk/by-path/pci-0000:01:00.0-nvme-1";
 | 
					        device = "/dev/disk/by-path/pci-0000:06:00.0-ata-6";
 | 
				
			||||||
        content = {
 | 
					        content = {
 | 
				
			||||||
          type = "gpt";
 | 
					          type = "gpt";
 | 
				
			||||||
          partitions = {
 | 
					          partitions = {
 | 
				
			||||||
| 
						 | 
					@ -14,45 +14,64 @@
 | 
				
			||||||
                type = "filesystem";
 | 
					                type = "filesystem";
 | 
				
			||||||
                format = "vfat";
 | 
					                format = "vfat";
 | 
				
			||||||
                mountpoint = "/boot";
 | 
					                mountpoint = "/boot";
 | 
				
			||||||
                mountOptions = [ "umask=0077" ];
 | 
					                mountOptions = [
 | 
				
			||||||
 | 
					                  "defaults"
 | 
				
			||||||
 | 
					                ];
 | 
				
			||||||
              };
 | 
					              };
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
            nvme_luks = {
 | 
					            luks = {
 | 
				
			||||||
              size = "100%";
 | 
					              size = "100%";
 | 
				
			||||||
              content = {
 | 
					              content = {
 | 
				
			||||||
                type = "luks";
 | 
					                type = "luks";
 | 
				
			||||||
                name = "nvme_crypted";
 | 
					                name = "crypted";
 | 
				
			||||||
                extraOpenArgs = [ ];
 | 
					                extraOpenArgs = [];
 | 
				
			||||||
                settings = {
 | 
					                settings = {
 | 
				
			||||||
                  # if you want to use the key for interactive login be sure there is no trailing newline
 | 
					                  # if you want to use the key for interactive login be sure there is no trailing newline
 | 
				
			||||||
                  # for example use `echo -n "password" > /tmp/secret.key`
 | 
					                  # for example use `echo -n "password" > /tmp/secret.key`
 | 
				
			||||||
                  #keyFile = "/tmp/secret.key";
 | 
					                  #keyFile = "/tmp/secret.key";
 | 
				
			||||||
                  allowDiscards = true;
 | 
					                  allowDiscards = true;
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
 | 
					                #additionalKeyFiles = ["/tmp/additionalSecret.key"];
 | 
				
			||||||
                content = {
 | 
					                content = {
 | 
				
			||||||
                  type = "lvm_pv";
 | 
					                  type = "lvm_pv";
 | 
				
			||||||
                  vg = "nvme_pool";
 | 
					                  vg = "pool";
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
              };
 | 
					              };
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
          };
 | 
					          };
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
 | 
					      #sdc = {
 | 
				
			||||||
 | 
					        #device = "/dev/disk/by-path/pci-0000:06:00.0-ata-2";
 | 
				
			||||||
 | 
					        #type = "disk";
 | 
				
			||||||
 | 
					        #content = {
 | 
				
			||||||
 | 
					          #type = "gpt";
 | 
				
			||||||
 | 
					          #partitions = {
 | 
				
			||||||
 | 
					            #root = {
 | 
				
			||||||
 | 
					              #size = "100%";
 | 
				
			||||||
 | 
					              #content = {
 | 
				
			||||||
 | 
					                #type = "filesystem";
 | 
				
			||||||
 | 
					                #format = "ext4";
 | 
				
			||||||
 | 
					                #mountpoint = "/media";
 | 
				
			||||||
 | 
					              #};
 | 
				
			||||||
 | 
					            #};
 | 
				
			||||||
 | 
					          #};
 | 
				
			||||||
 | 
					        #};
 | 
				
			||||||
 | 
					      #};
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    lvm_vg = {
 | 
					    lvm_vg = {
 | 
				
			||||||
      nvme_pool = {
 | 
					      pool = {
 | 
				
			||||||
        type = "lvm_vg";
 | 
					        type = "lvm_vg";
 | 
				
			||||||
        lvs = {
 | 
					        lvs = {
 | 
				
			||||||
          nvme_swap = {
 | 
					          swap = {
 | 
				
			||||||
            size = "32G";
 | 
					            size = "16G";
 | 
				
			||||||
            content = {
 | 
					            content = {
 | 
				
			||||||
              type = "swap";
 | 
					              type = "swap";
 | 
				
			||||||
              discardPolicy = "both";
 | 
					 | 
				
			||||||
              resumeDevice = true; # resume from hiberation from this device
 | 
					              resumeDevice = true; # resume from hiberation from this device
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
          };
 | 
					          };
 | 
				
			||||||
          nvme_root = {
 | 
					          root = {
 | 
				
			||||||
            size = "100%";
 | 
					            size = "100%FREE";
 | 
				
			||||||
            content = {
 | 
					            content = {
 | 
				
			||||||
              type = "filesystem";
 | 
					              type = "filesystem";
 | 
				
			||||||
              format = "ext4";
 | 
					              format = "ext4";
 | 
				
			||||||
| 
						 | 
					@ -65,5 +84,13 @@
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					    nodev = {
 | 
				
			||||||
 | 
					      "/home/lillian/Downloads" = {
 | 
				
			||||||
 | 
					        fsType = "tmpfs";
 | 
				
			||||||
 | 
					        mountOptions = [
 | 
				
			||||||
 | 
					          "size=4G"
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										515
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										515
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							| 
						 | 
					@ -5,11 +5,11 @@
 | 
				
			||||||
        "fromYaml": "fromYaml"
 | 
					        "fromYaml": "fromYaml"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1755819240,
 | 
					        "lastModified": 1732200724,
 | 
				
			||||||
        "narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
 | 
					        "narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=",
 | 
				
			||||||
        "owner": "SenchoPens",
 | 
					        "owner": "SenchoPens",
 | 
				
			||||||
        "repo": "base16.nix",
 | 
					        "repo": "base16.nix",
 | 
				
			||||||
        "rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
 | 
					        "rev": "153d52373b0fb2d343592871009a286ec8837aec",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -21,28 +21,27 @@
 | 
				
			||||||
    "base16-fish": {
 | 
					    "base16-fish": {
 | 
				
			||||||
      "flake": false,
 | 
					      "flake": false,
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1754405784,
 | 
					        "lastModified": 1622559957,
 | 
				
			||||||
        "narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
 | 
					        "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
 | 
				
			||||||
        "owner": "tomyun",
 | 
					        "owner": "tomyun",
 | 
				
			||||||
        "repo": "base16-fish",
 | 
					        "repo": "base16-fish",
 | 
				
			||||||
        "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
 | 
					        "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
        "owner": "tomyun",
 | 
					        "owner": "tomyun",
 | 
				
			||||||
        "repo": "base16-fish",
 | 
					        "repo": "base16-fish",
 | 
				
			||||||
        "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
 | 
					 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "base16-helix": {
 | 
					    "base16-helix": {
 | 
				
			||||||
      "flake": false,
 | 
					      "flake": false,
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1752979451,
 | 
					        "lastModified": 1736852337,
 | 
				
			||||||
        "narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=",
 | 
					        "narHash": "sha256-esD42YdgLlEh7koBrSqcT7p2fsMctPAcGl/+2sYJa2o=",
 | 
				
			||||||
        "owner": "tinted-theming",
 | 
					        "owner": "tinted-theming",
 | 
				
			||||||
        "repo": "base16-helix",
 | 
					        "repo": "base16-helix",
 | 
				
			||||||
        "rev": "27cf1e66e50abc622fb76a3019012dc07c678fac",
 | 
					        "rev": "03860521c40b0b9c04818f2218d9cc9efc21e7a5",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -68,6 +67,33 @@
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "bcachefs-tools": {
 | 
				
			||||||
 | 
					      "inputs": {
 | 
				
			||||||
 | 
					        "crane": "crane",
 | 
				
			||||||
 | 
					        "flake-compat": "flake-compat",
 | 
				
			||||||
 | 
					        "flake-parts": [
 | 
				
			||||||
 | 
					          "flake-parts"
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "nixpkgs": [
 | 
				
			||||||
 | 
					          "nixpkgs"
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "rust-overlay": "rust-overlay",
 | 
				
			||||||
 | 
					        "treefmt-nix": "treefmt-nix"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1742852783,
 | 
				
			||||||
 | 
					        "narHash": "sha256-pgpFoMc1RGGSyOGJikcXzsQND7VQ1/ywTwFa537b/hQ=",
 | 
				
			||||||
 | 
					        "owner": "koverstreet",
 | 
				
			||||||
 | 
					        "repo": "bcachefs-tools",
 | 
				
			||||||
 | 
					        "rev": "6657ce2de3cdb25b14fb0183b90366e3e577fb9a",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "koverstreet",
 | 
				
			||||||
 | 
					        "repo": "bcachefs-tools",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "blobs": {
 | 
					    "blobs": {
 | 
				
			||||||
      "flake": false,
 | 
					      "flake": false,
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
| 
						 | 
					@ -89,11 +115,11 @@
 | 
				
			||||||
        "nixpkgs": "nixpkgs"
 | 
					        "nixpkgs": "nixpkgs"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1762198582,
 | 
					        "lastModified": 1742599566,
 | 
				
			||||||
        "narHash": "sha256-P9giW/1Crn7ekQt4YIbONJ/hKFaHkTwyhz82FCjh+OM=",
 | 
					        "narHash": "sha256-xr6ntmiUPXSh9o9mJ7og9vxALMQs1EQhIhWUAO2D1M0=",
 | 
				
			||||||
        "owner": "catppuccin",
 | 
					        "owner": "catppuccin",
 | 
				
			||||||
        "repo": "nix",
 | 
					        "repo": "nix",
 | 
				
			||||||
        "rev": "08716214674ca27914daa52e6fa809cc022b581e",
 | 
					        "rev": "5e303e8d7e251868fa79f83bbda69da90aa62402",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -104,11 +130,11 @@
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "crane": {
 | 
					    "crane": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1754269165,
 | 
					        "lastModified": 1742394900,
 | 
				
			||||||
        "narHash": "sha256-0tcS8FHd4QjbCVoxN9jI+PjHgA4vc/IjkUSp+N3zy0U=",
 | 
					        "narHash": "sha256-vVOAp9ahvnU+fQoKd4SEXB2JG2wbENkpqcwlkIXgUC0=",
 | 
				
			||||||
        "owner": "ipetkov",
 | 
					        "owner": "ipetkov",
 | 
				
			||||||
        "repo": "crane",
 | 
					        "repo": "crane",
 | 
				
			||||||
        "rev": "444e81206df3f7d92780680e45858e31d2f07a08",
 | 
					        "rev": "70947c1908108c0c551ddfd73d4f750ff2ea67cd",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -119,11 +145,26 @@
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "crane_2": {
 | 
					    "crane_2": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1754269165,
 | 
					        "lastModified": 1741148495,
 | 
				
			||||||
        "narHash": "sha256-0tcS8FHd4QjbCVoxN9jI+PjHgA4vc/IjkUSp+N3zy0U=",
 | 
					        "narHash": "sha256-EV8KUaIZ2/CdBXlutXrHoZYbWPeB65p5kKZk71gvDRI=",
 | 
				
			||||||
        "owner": "ipetkov",
 | 
					        "owner": "ipetkov",
 | 
				
			||||||
        "repo": "crane",
 | 
					        "repo": "crane",
 | 
				
			||||||
        "rev": "444e81206df3f7d92780680e45858e31d2f07a08",
 | 
					        "rev": "75390a36cd0c2cdd5f1aafd8a9f827d7107f2e53",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "ipetkov",
 | 
				
			||||||
 | 
					        "repo": "crane",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "crane_3": {
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1739053031,
 | 
				
			||||||
 | 
					        "narHash": "sha256-LrMDRuwAlRFD2T4MgBSRd1s2VtOE+Vl1oMCNu3RpPE0=",
 | 
				
			||||||
 | 
					        "owner": "ipetkov",
 | 
				
			||||||
 | 
					        "repo": "crane",
 | 
				
			||||||
 | 
					        "rev": "112e6591b2d6313b1bd05a80a754a8ee42432a7e",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -139,11 +180,11 @@
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1761899396,
 | 
					        "lastModified": 1741786315,
 | 
				
			||||||
        "narHash": "sha256-XOpKBp6HLzzMCbzW50TEuXN35zN5WGQREC7n34DcNMM=",
 | 
					        "narHash": "sha256-VT65AE2syHVj6v/DGB496bqBnu1PXrrzwlw07/Zpllc=",
 | 
				
			||||||
        "owner": "nix-community",
 | 
					        "owner": "nix-community",
 | 
				
			||||||
        "repo": "disko",
 | 
					        "repo": "disko",
 | 
				
			||||||
        "rev": "6f4cf5abbe318e4cd1e879506f6eeafd83f7b998",
 | 
					        "rev": "0d8c6ad4a43906d14abd5c60e0ffe7b587b213de",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -155,11 +196,11 @@
 | 
				
			||||||
    "firefox-gnome-theme": {
 | 
					    "firefox-gnome-theme": {
 | 
				
			||||||
      "flake": false,
 | 
					      "flake": false,
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1758112371,
 | 
					        "lastModified": 1741628778,
 | 
				
			||||||
        "narHash": "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=",
 | 
					        "narHash": "sha256-RsvHGNTmO2e/eVfgYK7g+eYEdwwh7SbZa+gZkT24MEA=",
 | 
				
			||||||
        "owner": "rafaelmardojai",
 | 
					        "owner": "rafaelmardojai",
 | 
				
			||||||
        "repo": "firefox-gnome-theme",
 | 
					        "repo": "firefox-gnome-theme",
 | 
				
			||||||
        "rev": "0909cfe4a2af8d358ad13b20246a350e14c2473d",
 | 
					        "rev": "5a81d390bb64afd4e81221749ec4bffcbeb5fa80",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -171,11 +212,11 @@
 | 
				
			||||||
    "flake-compat": {
 | 
					    "flake-compat": {
 | 
				
			||||||
      "flake": false,
 | 
					      "flake": false,
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1747046372,
 | 
					        "lastModified": 1733328505,
 | 
				
			||||||
        "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
 | 
					        "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
 | 
				
			||||||
        "owner": "edolstra",
 | 
					        "owner": "edolstra",
 | 
				
			||||||
        "repo": "flake-compat",
 | 
					        "repo": "flake-compat",
 | 
				
			||||||
        "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
 | 
					        "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -187,11 +228,42 @@
 | 
				
			||||||
    "flake-compat_2": {
 | 
					    "flake-compat_2": {
 | 
				
			||||||
      "flake": false,
 | 
					      "flake": false,
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1761588595,
 | 
					        "lastModified": 1733328505,
 | 
				
			||||||
        "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
 | 
					        "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
 | 
				
			||||||
        "owner": "edolstra",
 | 
					        "owner": "edolstra",
 | 
				
			||||||
        "repo": "flake-compat",
 | 
					        "repo": "flake-compat",
 | 
				
			||||||
        "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
 | 
					        "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "edolstra",
 | 
				
			||||||
 | 
					        "repo": "flake-compat",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "flake-compat_3": {
 | 
				
			||||||
 | 
					      "flake": false,
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1696426674,
 | 
				
			||||||
 | 
					        "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
 | 
				
			||||||
 | 
					        "owner": "edolstra",
 | 
				
			||||||
 | 
					        "repo": "flake-compat",
 | 
				
			||||||
 | 
					        "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "edolstra",
 | 
				
			||||||
 | 
					        "repo": "flake-compat",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "flake-compat_4": {
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1733328505,
 | 
				
			||||||
 | 
					        "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
 | 
				
			||||||
 | 
					        "owner": "edolstra",
 | 
				
			||||||
 | 
					        "repo": "flake-compat",
 | 
				
			||||||
 | 
					        "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -207,11 +279,11 @@
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1762040540,
 | 
					        "lastModified": 1741352980,
 | 
				
			||||||
        "narHash": "sha256-z5PlZ47j50VNF3R+IMS9LmzI5fYRGY/Z5O5tol1c9I4=",
 | 
					        "narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
 | 
				
			||||||
        "owner": "hercules-ci",
 | 
					        "owner": "hercules-ci",
 | 
				
			||||||
        "repo": "flake-parts",
 | 
					        "repo": "flake-parts",
 | 
				
			||||||
        "rev": "0010412d62a25d959151790968765a70c436598b",
 | 
					        "rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -228,11 +300,11 @@
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1754091436,
 | 
					        "lastModified": 1740872218,
 | 
				
			||||||
        "narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=",
 | 
					        "narHash": "sha256-ZaMw0pdoUKigLpv9HiNDH2Pjnosg7NBYMJlHTIsHEUo=",
 | 
				
			||||||
        "owner": "hercules-ci",
 | 
					        "owner": "hercules-ci",
 | 
				
			||||||
        "repo": "flake-parts",
 | 
					        "repo": "flake-parts",
 | 
				
			||||||
        "rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd",
 | 
					        "rev": "3876f6b87db82f33775b1ef5ea343986105db764",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -245,15 +317,16 @@
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "nixpkgs-lib": [
 | 
					        "nixpkgs-lib": [
 | 
				
			||||||
          "stylix",
 | 
					          "stylix",
 | 
				
			||||||
 | 
					          "nur",
 | 
				
			||||||
          "nixpkgs"
 | 
					          "nixpkgs"
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1756770412,
 | 
					        "lastModified": 1733312601,
 | 
				
			||||||
        "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
 | 
					        "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
 | 
				
			||||||
        "owner": "hercules-ci",
 | 
					        "owner": "hercules-ci",
 | 
				
			||||||
        "repo": "flake-parts",
 | 
					        "repo": "flake-parts",
 | 
				
			||||||
        "rev": "4524271976b625a4a605beefd893f270620fd751",
 | 
					        "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -281,6 +354,27 @@
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "flake-utils_2": {
 | 
					    "flake-utils_2": {
 | 
				
			||||||
 | 
					      "inputs": {
 | 
				
			||||||
 | 
					        "systems": [
 | 
				
			||||||
 | 
					          "stylix",
 | 
				
			||||||
 | 
					          "systems"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1731533236,
 | 
				
			||||||
 | 
					        "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
 | 
				
			||||||
 | 
					        "owner": "numtide",
 | 
				
			||||||
 | 
					        "repo": "flake-utils",
 | 
				
			||||||
 | 
					        "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "numtide",
 | 
				
			||||||
 | 
					        "repo": "flake-utils",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "flake-utils_3": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "systems": "systems_3"
 | 
					        "systems": "systems_3"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
| 
						 | 
					@ -317,21 +411,21 @@
 | 
				
			||||||
    "git-hooks": {
 | 
					    "git-hooks": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "flake-compat": [
 | 
					        "flake-compat": [
 | 
				
			||||||
          "simple-nixos-mailserver",
 | 
					          "stylix",
 | 
				
			||||||
          "flake-compat"
 | 
					          "flake-compat"
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "gitignore": "gitignore_2",
 | 
					        "gitignore": "gitignore_2",
 | 
				
			||||||
        "nixpkgs": [
 | 
					        "nixpkgs": [
 | 
				
			||||||
          "simple-nixos-mailserver",
 | 
					          "stylix",
 | 
				
			||||||
          "nixpkgs"
 | 
					          "nixpkgs"
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1760663237,
 | 
					        "lastModified": 1741379162,
 | 
				
			||||||
        "narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=",
 | 
					        "narHash": "sha256-srpAbmJapkaqGRE3ytf3bj4XshspVR5964OX5LfjDWc=",
 | 
				
			||||||
        "owner": "cachix",
 | 
					        "owner": "cachix",
 | 
				
			||||||
        "repo": "git-hooks.nix",
 | 
					        "repo": "git-hooks.nix",
 | 
				
			||||||
        "rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37",
 | 
					        "rev": "b5a62751225b2f62ff3147d0a334055ebadcd5cc",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -365,7 +459,7 @@
 | 
				
			||||||
    "gitignore_2": {
 | 
					    "gitignore_2": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "nixpkgs": [
 | 
					        "nixpkgs": [
 | 
				
			||||||
          "simple-nixos-mailserver",
 | 
					          "stylix",
 | 
				
			||||||
          "git-hooks",
 | 
					          "git-hooks",
 | 
				
			||||||
          "nixpkgs"
 | 
					          "nixpkgs"
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
| 
						 | 
					@ -387,16 +481,16 @@
 | 
				
			||||||
    "gnome-shell": {
 | 
					    "gnome-shell": {
 | 
				
			||||||
      "flake": false,
 | 
					      "flake": false,
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1748186689,
 | 
					        "lastModified": 1732369855,
 | 
				
			||||||
        "narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=",
 | 
					        "narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=",
 | 
				
			||||||
        "owner": "GNOME",
 | 
					        "owner": "GNOME",
 | 
				
			||||||
        "repo": "gnome-shell",
 | 
					        "repo": "gnome-shell",
 | 
				
			||||||
        "rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0",
 | 
					        "rev": "dadd58f630eeea41d645ee225a63f719390829dc",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
        "owner": "GNOME",
 | 
					        "owner": "GNOME",
 | 
				
			||||||
        "ref": "48.2",
 | 
					        "ref": "47.2",
 | 
				
			||||||
        "repo": "gnome-shell",
 | 
					        "repo": "gnome-shell",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
| 
						 | 
					@ -408,11 +502,11 @@
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1762228452,
 | 
					        "lastModified": 1742851132,
 | 
				
			||||||
        "narHash": "sha256-Y5950vzoyJ8+u4U6dlI/2VEbf3JQnIJsmRWWWcsgpRg=",
 | 
					        "narHash": "sha256-8vEcDefstheV1whup+5fSpZu4g9Jr7WpYzOBKAMSHn4=",
 | 
				
			||||||
        "owner": "nix-community",
 | 
					        "owner": "nix-community",
 | 
				
			||||||
        "repo": "home-manager",
 | 
					        "repo": "home-manager",
 | 
				
			||||||
        "rev": "aa6936bb637e46a49cf1292486200ba41dd4bcf7",
 | 
					        "rev": "c4d5d72805d14ea43c140eeb70401bf84c0f11b4",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -422,17 +516,38 @@
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "home-manager_2": {
 | 
				
			||||||
 | 
					      "inputs": {
 | 
				
			||||||
 | 
					        "nixpkgs": [
 | 
				
			||||||
 | 
					          "stylix",
 | 
				
			||||||
 | 
					          "nixpkgs"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1741635347,
 | 
				
			||||||
 | 
					        "narHash": "sha256-2aYfV44h18alHXopyfL4D9GsnpE5XlSVkp4MGe586VU=",
 | 
				
			||||||
 | 
					        "owner": "nix-community",
 | 
				
			||||||
 | 
					        "repo": "home-manager",
 | 
				
			||||||
 | 
					        "rev": "7fb8678716c158642ac42f9ff7a18c0800fea551",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "nix-community",
 | 
				
			||||||
 | 
					        "repo": "home-manager",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "jovian": {
 | 
					    "jovian": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "nix-github-actions": "nix-github-actions",
 | 
					        "nix-github-actions": "nix-github-actions",
 | 
				
			||||||
        "nixpkgs": "nixpkgs_2"
 | 
					        "nixpkgs": "nixpkgs_2"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1761748321,
 | 
					        "lastModified": 1742465245,
 | 
				
			||||||
        "narHash": "sha256-hD5mVzmUeyVppjArdy2uVdQe/CQUR9i3WgZB05onE7A=",
 | 
					        "narHash": "sha256-gpjtkoeq5Ye9J8GoR+rWg3NL4bbEtcLvvF4nN6MtxdU=",
 | 
				
			||||||
        "owner": "Jovian-Experiments",
 | 
					        "owner": "Jovian-Experiments",
 | 
				
			||||||
        "repo": "Jovian-NixOS",
 | 
					        "repo": "Jovian-NixOS",
 | 
				
			||||||
        "rev": "533db5857c9e00ca352558a928417116ee08a824",
 | 
					        "rev": "a95606cae5c9e1f5b84debe7865ef171d4deb287",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -443,19 +558,19 @@
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "lanzaboote": {
 | 
					    "lanzaboote": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "crane": "crane",
 | 
					        "crane": "crane_2",
 | 
				
			||||||
        "flake-compat": "flake-compat",
 | 
					        "flake-compat": "flake-compat_2",
 | 
				
			||||||
        "flake-parts": "flake-parts_2",
 | 
					        "flake-parts": "flake-parts_2",
 | 
				
			||||||
        "nixpkgs": "nixpkgs_3",
 | 
					        "nixpkgs": "nixpkgs_3",
 | 
				
			||||||
        "pre-commit-hooks-nix": "pre-commit-hooks-nix",
 | 
					        "pre-commit-hooks-nix": "pre-commit-hooks-nix",
 | 
				
			||||||
        "rust-overlay": "rust-overlay"
 | 
					        "rust-overlay": "rust-overlay_2"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1762205063,
 | 
					        "lastModified": 1741442524,
 | 
				
			||||||
        "narHash": "sha256-If6vQ+KvtKs3ARBO9G3l+4wFSCYtRBrwX1z+I+B61wQ=",
 | 
					        "narHash": "sha256-tVcxLDLLho8dWcO81Xj/3/ANLdVs0bGyCPyKjp70JWk=",
 | 
				
			||||||
        "owner": "nix-community",
 | 
					        "owner": "nix-community",
 | 
				
			||||||
        "repo": "lanzaboote",
 | 
					        "repo": "lanzaboote",
 | 
				
			||||||
        "rev": "88b8a563ff5704f4e8d8e5118fb911fa2110ca05",
 | 
					        "rev": "d8099586d9a84308ffedac07880e7f07a0180ff4",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -493,11 +608,11 @@
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1762055842,
 | 
					        "lastModified": 1742701275,
 | 
				
			||||||
        "narHash": "sha256-Pu1v3mlFhRzZiSxVHb2/i/f5yeYyRNqr0RvEUJ4UgHo=",
 | 
					        "narHash": "sha256-AulwPVrS9859t+eJ61v24wH/nfBEIDSXYxlRo3fL/SA=",
 | 
				
			||||||
        "owner": "nix-community",
 | 
					        "owner": "nix-community",
 | 
				
			||||||
        "repo": "nix-index-database",
 | 
					        "repo": "nix-index-database",
 | 
				
			||||||
        "rev": "359ff6333a7b0b60819d4c20ed05a3a1f726771f",
 | 
					        "rev": "36dc43cb50d5d20f90a28d53abb33a32b0a2aae6",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -529,11 +644,11 @@
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1751903740,
 | 
					        "lastModified": 1742568034,
 | 
				
			||||||
        "narHash": "sha256-PeSkNMvkpEvts+9DjFiop1iT2JuBpyknmBUs0Un0a4I=",
 | 
					        "narHash": "sha256-QaMEhcnscfF2MqB7flZr+sLJMMYZPnvqO4NYf9B4G38=",
 | 
				
			||||||
        "owner": "nix-community",
 | 
					        "owner": "nix-community",
 | 
				
			||||||
        "repo": "nixos-generators",
 | 
					        "repo": "nixos-generators",
 | 
				
			||||||
        "rev": "032decf9db65efed428afd2fa39d80f7089085eb",
 | 
					        "rev": "42ee229088490e3777ed7d1162cb9e9d8c3dbb11",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -544,11 +659,11 @@
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixos-hardware": {
 | 
					    "nixos-hardware": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1762179181,
 | 
					        "lastModified": 1742806253,
 | 
				
			||||||
        "narHash": "sha256-T4+TNfXlF/gHbcNCC2HY7sMGBKgqNzyYeMBWmcbH7/o=",
 | 
					        "narHash": "sha256-zvQ4GsCJT6MTOzPKLmlFyM+lxo0JGQ0cSFaZSACmWfY=",
 | 
				
			||||||
        "owner": "NixOS",
 | 
					        "owner": "NixOS",
 | 
				
			||||||
        "repo": "nixos-hardware",
 | 
					        "repo": "nixos-hardware",
 | 
				
			||||||
        "rev": "256770618502d2eda892af3ae91da5e386ce9586",
 | 
					        "rev": "ecaa2d911e77c265c2a5bac8b583c40b0f151726",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -560,11 +675,11 @@
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixpkgs": {
 | 
					    "nixpkgs": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1761672384,
 | 
					        "lastModified": 1742288794,
 | 
				
			||||||
        "narHash": "sha256-o9KF3DJL7g7iYMZq9SWgfS1BFlNbsm6xplRjVlOCkXI=",
 | 
					        "narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=",
 | 
				
			||||||
        "owner": "NixOS",
 | 
					        "owner": "NixOS",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
        "rev": "08dacfca559e1d7da38f3cf05f1f45ee9bfd213c",
 | 
					        "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -574,29 +689,28 @@
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixpkgs-25_05": {
 | 
					    "nixpkgs-24_11": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1761999846,
 | 
					        "lastModified": 1734083684,
 | 
				
			||||||
        "narHash": "sha256-IYlYnp4O4dzEpL77BD/lj5NnJy2J8qbHkNSFiPBCbqo=",
 | 
					        "narHash": "sha256-5fNndbndxSx5d+C/D0p/VF32xDiJCJzyOqorOYW4JEo=",
 | 
				
			||||||
        "owner": "NixOS",
 | 
					        "owner": "NixOS",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
        "rev": "3de8f8d73e35724bf9abef41f1bdbedda1e14a31",
 | 
					        "rev": "314e12ba369ccdb9b352a4db26ff419f7c49fa84",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
        "owner": "NixOS",
 | 
					        "id": "nixpkgs",
 | 
				
			||||||
        "ref": "nixos-25.05",
 | 
					        "ref": "nixos-24.11",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "type": "indirect"
 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixpkgs-edge": {
 | 
					    "nixpkgs-edge": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1762250068,
 | 
					        "lastModified": 1742855907,
 | 
				
			||||||
        "narHash": "sha256-bWfDQg/j6q68T6X0RtT4UrgaLue5u3JVBr6bDoi2ZXw=",
 | 
					        "narHash": "sha256-7njF0f8vk19p0cCYP+9EgYWT2RPCTSD822Yi41THKcs=",
 | 
				
			||||||
        "owner": "NixOS",
 | 
					        "owner": "NixOS",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
        "rev": "780a54edb3810c2d7d97f4cbf6ae8aa32f93d2b8",
 | 
					        "rev": "d395b30f4825e4bfbc31ed2fbd06162da496217e",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -607,11 +721,11 @@
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixpkgs-unstable": {
 | 
					    "nixpkgs-unstable": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1762111121,
 | 
					        "lastModified": 1742669843,
 | 
				
			||||||
        "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=",
 | 
					        "narHash": "sha256-G5n+FOXLXcRx+3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w=",
 | 
				
			||||||
        "owner": "nixos",
 | 
					        "owner": "nixos",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
        "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4",
 | 
					        "rev": "1e5b653dff12029333a6546c11e108ede13052eb",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -623,11 +737,11 @@
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixpkgs_2": {
 | 
					    "nixpkgs_2": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1756125398,
 | 
					        "lastModified": 1739214665,
 | 
				
			||||||
        "narHash": "sha256-XexyKZpf46cMiO5Vbj+dWSAXOnr285GHsMch8FBoHbc=",
 | 
					        "narHash": "sha256-26L8VAu3/1YRxS8MHgBOyOM8xALdo6N0I04PgorE7UM=",
 | 
				
			||||||
        "owner": "NixOS",
 | 
					        "owner": "NixOS",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
        "rev": "3b9f00d7a7bf68acd4c4abb9d43695afb04e03a5",
 | 
					        "rev": "64e75cd44acf21c7933d61d7721e812eac1b5a0a",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -639,11 +753,11 @@
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixpkgs_3": {
 | 
					    "nixpkgs_3": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1754243818,
 | 
					        "lastModified": 1741241576,
 | 
				
			||||||
        "narHash": "sha256-sEPw2W01UPf0xNGnMGNZIaE1XHkk7O+lLLetYEXVZHk=",
 | 
					        "narHash": "sha256-/mxmUVd+AE2bTmulNfM7yICocUvavlFQHcMYK67z3qI=",
 | 
				
			||||||
        "owner": "NixOS",
 | 
					        "owner": "NixOS",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
        "rev": "c460617dfb709a67d18bb31e15e455390ee4ee1c",
 | 
					        "rev": "ffe8d1b1030b5de6eba761102ee34b6e41d040ee",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -655,11 +769,11 @@
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixpkgs_4": {
 | 
					    "nixpkgs_4": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1762111121,
 | 
					        "lastModified": 1742669843,
 | 
				
			||||||
        "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=",
 | 
					        "narHash": "sha256-G5n+FOXLXcRx+3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w=",
 | 
				
			||||||
        "owner": "nixos",
 | 
					        "owner": "nixos",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
        "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4",
 | 
					        "rev": "1e5b653dff12029333a6546c11e108ede13052eb",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -671,27 +785,26 @@
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixpkgs_5": {
 | 
					    "nixpkgs_5": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1762111121,
 | 
					        "lastModified": 1732014248,
 | 
				
			||||||
        "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=",
 | 
					        "narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=",
 | 
				
			||||||
        "owner": "NixOS",
 | 
					        "owner": "NixOS",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
        "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4",
 | 
					        "rev": "23e89b7da85c3640bbc2173fe04f4bd114342367",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
        "owner": "NixOS",
 | 
					        "id": "nixpkgs",
 | 
				
			||||||
        "ref": "nixos-unstable",
 | 
					        "ref": "nixos-unstable",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "type": "indirect"
 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixpkgs_6": {
 | 
					    "nixpkgs_6": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1760596604,
 | 
					        "lastModified": 1742578646,
 | 
				
			||||||
        "narHash": "sha256-J/i5K6AAz/y5dBePHQOuzC7MbhyTOKsd/GLezSbEFiM=",
 | 
					        "narHash": "sha256-GiQ40ndXRnmmbDZvuv762vS+gew1uDpFwOfgJ8tLiEs=",
 | 
				
			||||||
        "owner": "NixOS",
 | 
					        "owner": "NixOS",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
        "rev": "3cbe716e2346710d6e1f7c559363d14e11c32a43",
 | 
					        "rev": "94c4dbe77c0740ebba36c173672ca15a7926c993",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -703,11 +816,11 @@
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixpkgs_7": {
 | 
					    "nixpkgs_7": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1758690382,
 | 
					        "lastModified": 1741513245,
 | 
				
			||||||
        "narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=",
 | 
					        "narHash": "sha256-7rTAMNTY1xoBwz0h7ZMtEcd8LELk9R5TzBPoHuhNSCk=",
 | 
				
			||||||
        "owner": "NixOS",
 | 
					        "owner": "NixOS",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
        "rev": "e643668fd71b949c53f8626614b21ff71a07379d",
 | 
					        "rev": "e3e32b642a31e6714ec1b712de8c91a3352ce7e1",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -719,11 +832,11 @@
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixpkgs_8": {
 | 
					    "nixpkgs_8": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1754800730,
 | 
					        "lastModified": 1739138025,
 | 
				
			||||||
        "narHash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=",
 | 
					        "narHash": "sha256-M4ilIfGxzbBZuURokv24aqJTbdjPA9K+DtKUzrJaES4=",
 | 
				
			||||||
        "owner": "NixOS",
 | 
					        "owner": "NixOS",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
        "rev": "641d909c4a7538f1539da9240dedb1755c907e40",
 | 
					        "rev": "b2243f41e860ac85c0b446eadc6930359b294e79",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -735,21 +848,19 @@
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nur": {
 | 
					    "nur": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "flake-parts": [
 | 
					        "flake-parts": "flake-parts_3",
 | 
				
			||||||
          "stylix",
 | 
					 | 
				
			||||||
          "flake-parts"
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "nixpkgs": [
 | 
					        "nixpkgs": [
 | 
				
			||||||
          "stylix",
 | 
					          "stylix",
 | 
				
			||||||
          "nixpkgs"
 | 
					          "nixpkgs"
 | 
				
			||||||
        ]
 | 
					        ],
 | 
				
			||||||
 | 
					        "treefmt-nix": "treefmt-nix_2"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1758998580,
 | 
					        "lastModified": 1741693509,
 | 
				
			||||||
        "narHash": "sha256-VLx0z396gDCGSiowLMFz5XRO/XuNV+4EnDYjdJhHvUk=",
 | 
					        "narHash": "sha256-emkxnsZstiJWmGACimyAYqIKz2Qz5We5h1oBVDyQjLw=",
 | 
				
			||||||
        "owner": "nix-community",
 | 
					        "owner": "nix-community",
 | 
				
			||||||
        "repo": "NUR",
 | 
					        "repo": "NUR",
 | 
				
			||||||
        "rev": "ba8d9c98f5f4630bcb0e815ab456afd90c930728",
 | 
					        "rev": "5479646b2574837f1899da78bdf9a48b75a9fb27",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -768,11 +879,11 @@
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1762115864,
 | 
					        "lastModified": 1742765550,
 | 
				
			||||||
        "narHash": "sha256-KREKZiBAkAnqJC+jvY+vSbLlrg8j6DFEU7Lv+tgOlHI=",
 | 
					        "narHash": "sha256-2vVIh2JrL6GAGfgCeY9e6iNKrBjs0Hw3bGQEAbwVs68=",
 | 
				
			||||||
        "owner": "pjones",
 | 
					        "owner": "pjones",
 | 
				
			||||||
        "repo": "plasma-manager",
 | 
					        "repo": "plasma-manager",
 | 
				
			||||||
        "rev": "8e9e76efa3cc811c230512b40d8cfde06e40da5b",
 | 
					        "rev": "b70be387276e632fe51232887f9e04e2b6ef8c16",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -794,11 +905,11 @@
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1750779888,
 | 
					        "lastModified": 1740915799,
 | 
				
			||||||
        "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
 | 
					        "narHash": "sha256-JvQvtaphZNmeeV+IpHgNdiNePsIpHD5U/7QN5AeY44A=",
 | 
				
			||||||
        "owner": "cachix",
 | 
					        "owner": "cachix",
 | 
				
			||||||
        "repo": "pre-commit-hooks.nix",
 | 
					        "repo": "pre-commit-hooks.nix",
 | 
				
			||||||
        "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
 | 
					        "rev": "42b1ba089d2034d910566bf6b40830af6b8ec732",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -809,6 +920,7 @@
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "root": {
 | 
					    "root": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
 | 
					        "bcachefs-tools": "bcachefs-tools",
 | 
				
			||||||
        "catppuccin": "catppuccin",
 | 
					        "catppuccin": "catppuccin",
 | 
				
			||||||
        "disko": "disko",
 | 
					        "disko": "disko",
 | 
				
			||||||
        "flake-parts": "flake-parts",
 | 
					        "flake-parts": "flake-parts",
 | 
				
			||||||
| 
						 | 
					@ -832,16 +944,16 @@
 | 
				
			||||||
    "rust-overlay": {
 | 
					    "rust-overlay": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "nixpkgs": [
 | 
					        "nixpkgs": [
 | 
				
			||||||
          "lanzaboote",
 | 
					          "bcachefs-tools",
 | 
				
			||||||
          "nixpkgs"
 | 
					          "nixpkgs"
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1761791894,
 | 
					        "lastModified": 1742524367,
 | 
				
			||||||
        "narHash": "sha256-myRIDh+PxaREz+z9LzbqBJF+SnTFJwkthKDX9zMyddY=",
 | 
					        "narHash": "sha256-KzTwk/5ETJavJZYV1DEWdCx05M4duFCxCpRbQSKWpng=",
 | 
				
			||||||
        "owner": "oxalica",
 | 
					        "owner": "oxalica",
 | 
				
			||||||
        "repo": "rust-overlay",
 | 
					        "repo": "rust-overlay",
 | 
				
			||||||
        "rev": "59c45eb69d9222a4362673141e00ff77842cd219",
 | 
					        "rev": "70bf752d176b2ce07417e346d85486acea9040ef",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -851,6 +963,27 @@
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "rust-overlay_2": {
 | 
					    "rust-overlay_2": {
 | 
				
			||||||
 | 
					      "inputs": {
 | 
				
			||||||
 | 
					        "nixpkgs": [
 | 
				
			||||||
 | 
					          "lanzaboote",
 | 
				
			||||||
 | 
					          "nixpkgs"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1741228283,
 | 
				
			||||||
 | 
					        "narHash": "sha256-VzqI+k/eoijLQ5am6rDFDAtFAbw8nltXfLBC6SIEJAE=",
 | 
				
			||||||
 | 
					        "owner": "oxalica",
 | 
				
			||||||
 | 
					        "repo": "rust-overlay",
 | 
				
			||||||
 | 
					        "rev": "38e9826bc4296c9daf18bc1e6aa299f3e932a403",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "oxalica",
 | 
				
			||||||
 | 
					        "repo": "rust-overlay",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "rust-overlay_3": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "nixpkgs": [
 | 
					        "nixpkgs": [
 | 
				
			||||||
          "zjstatus",
 | 
					          "zjstatus",
 | 
				
			||||||
| 
						 | 
					@ -858,11 +991,11 @@
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1754880555,
 | 
					        "lastModified": 1739240901,
 | 
				
			||||||
        "narHash": "sha256-tG6l0wiX8V8IvG4HFYY8IYN5vpNAxQ+UWunjjpE6SqU=",
 | 
					        "narHash": "sha256-YDtl/9w71m5WcZvbEroYoWrjECDhzJZLZ8E68S3BYok=",
 | 
				
			||||||
        "owner": "oxalica",
 | 
					        "owner": "oxalica",
 | 
				
			||||||
        "repo": "rust-overlay",
 | 
					        "repo": "rust-overlay",
 | 
				
			||||||
        "rev": "17c591a44e4eb77f05f27cd37e1cfc3f219c7fc4",
 | 
					        "rev": "03473e2af8a4b490f4d2cdb2e4d3b75f82c8197c",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -874,17 +1007,16 @@
 | 
				
			||||||
    "simple-nixos-mailserver": {
 | 
					    "simple-nixos-mailserver": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "blobs": "blobs",
 | 
					        "blobs": "blobs",
 | 
				
			||||||
        "flake-compat": "flake-compat_2",
 | 
					        "flake-compat": "flake-compat_3",
 | 
				
			||||||
        "git-hooks": "git-hooks",
 | 
					 | 
				
			||||||
        "nixpkgs": "nixpkgs_5",
 | 
					        "nixpkgs": "nixpkgs_5",
 | 
				
			||||||
        "nixpkgs-25_05": "nixpkgs-25_05"
 | 
					        "nixpkgs-24_11": "nixpkgs-24_11"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1762215676,
 | 
					        "lastModified": 1742413977,
 | 
				
			||||||
        "narHash": "sha256-5dDnedKkUIo8qqHbCL+tAPSMcQNQMp0evS6+dH4AoUA=",
 | 
					        "narHash": "sha256-NkhM9GVu3HL+MiXtGD0TjuPCQ4GFVJPBZ8KyI2cFDGU=",
 | 
				
			||||||
        "owner": "simple-nixos-mailserver",
 | 
					        "owner": "simple-nixos-mailserver",
 | 
				
			||||||
        "repo": "nixos-mailserver",
 | 
					        "repo": "nixos-mailserver",
 | 
				
			||||||
        "rev": "82c22259140dcfa67e97f761eb9423382c9d449b",
 | 
					        "rev": "b4fbffe79c00f19be94b86b4144ff67541613659",
 | 
				
			||||||
        "type": "gitlab"
 | 
					        "type": "gitlab"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -899,11 +1031,11 @@
 | 
				
			||||||
        "nixpkgs": "nixpkgs_6"
 | 
					        "nixpkgs": "nixpkgs_6"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1760998189,
 | 
					        "lastModified": 1742700801,
 | 
				
			||||||
        "narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=",
 | 
					        "narHash": "sha256-ZGlpUDsuBdeZeTNgoMv+aw0ByXT2J3wkYw9kJwkAS4M=",
 | 
				
			||||||
        "owner": "Mic92",
 | 
					        "owner": "Mic92",
 | 
				
			||||||
        "repo": "sops-nix",
 | 
					        "repo": "sops-nix",
 | 
				
			||||||
        "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3",
 | 
					        "rev": "67566fe68a8bed2a7b1175fdfb0697ed22ae8852",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -919,8 +1051,11 @@
 | 
				
			||||||
        "base16-helix": "base16-helix",
 | 
					        "base16-helix": "base16-helix",
 | 
				
			||||||
        "base16-vim": "base16-vim",
 | 
					        "base16-vim": "base16-vim",
 | 
				
			||||||
        "firefox-gnome-theme": "firefox-gnome-theme",
 | 
					        "firefox-gnome-theme": "firefox-gnome-theme",
 | 
				
			||||||
        "flake-parts": "flake-parts_3",
 | 
					        "flake-compat": "flake-compat_4",
 | 
				
			||||||
 | 
					        "flake-utils": "flake-utils_2",
 | 
				
			||||||
 | 
					        "git-hooks": "git-hooks",
 | 
				
			||||||
        "gnome-shell": "gnome-shell",
 | 
					        "gnome-shell": "gnome-shell",
 | 
				
			||||||
 | 
					        "home-manager": "home-manager_2",
 | 
				
			||||||
        "nixpkgs": "nixpkgs_7",
 | 
					        "nixpkgs": "nixpkgs_7",
 | 
				
			||||||
        "nur": "nur",
 | 
					        "nur": "nur",
 | 
				
			||||||
        "systems": "systems_2",
 | 
					        "systems": "systems_2",
 | 
				
			||||||
| 
						 | 
					@ -931,15 +1066,15 @@
 | 
				
			||||||
        "tinted-zed": "tinted-zed"
 | 
					        "tinted-zed": "tinted-zed"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1762101397,
 | 
					        "lastModified": 1742855382,
 | 
				
			||||||
        "narHash": "sha256-wGiL2K3kAyBBmIZpJEskaSIgyzzpg0zwfvri+Sy6/CI=",
 | 
					        "narHash": "sha256-C/aBeGktWiRg2EoSc0Aug8v+cZirSkyoVtMx1P0Dex0=",
 | 
				
			||||||
        "owner": "nix-community",
 | 
					        "owner": "danth",
 | 
				
			||||||
        "repo": "stylix",
 | 
					        "repo": "stylix",
 | 
				
			||||||
        "rev": "8c0640d5722a02178c8ee80a62c5f019cab4b3c1",
 | 
					        "rev": "5321ab0c763caa786c9756a8e8e85d1c35a8e650",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
        "owner": "nix-community",
 | 
					        "owner": "danth",
 | 
				
			||||||
        "repo": "stylix",
 | 
					        "repo": "stylix",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
| 
						 | 
					@ -1009,27 +1144,28 @@
 | 
				
			||||||
    "tinted-kitty": {
 | 
					    "tinted-kitty": {
 | 
				
			||||||
      "flake": false,
 | 
					      "flake": false,
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1735730497,
 | 
					        "lastModified": 1716423189,
 | 
				
			||||||
        "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
 | 
					        "narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=",
 | 
				
			||||||
        "owner": "tinted-theming",
 | 
					        "owner": "tinted-theming",
 | 
				
			||||||
        "repo": "tinted-kitty",
 | 
					        "repo": "tinted-kitty",
 | 
				
			||||||
        "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
 | 
					        "rev": "eb39e141db14baef052893285df9f266df041ff8",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
        "owner": "tinted-theming",
 | 
					        "owner": "tinted-theming",
 | 
				
			||||||
        "repo": "tinted-kitty",
 | 
					        "repo": "tinted-kitty",
 | 
				
			||||||
 | 
					        "rev": "eb39e141db14baef052893285df9f266df041ff8",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "tinted-schemes": {
 | 
					    "tinted-schemes": {
 | 
				
			||||||
      "flake": false,
 | 
					      "flake": false,
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1757716333,
 | 
					        "lastModified": 1741468895,
 | 
				
			||||||
        "narHash": "sha256-d4km8W7w2zCUEmPAPUoLk1NlYrGODuVa3P7St+UrqkM=",
 | 
					        "narHash": "sha256-YKM1RJbL68Yp2vESBqeZQBjTETXo8mCTTzLZyckCfZk=",
 | 
				
			||||||
        "owner": "tinted-theming",
 | 
					        "owner": "tinted-theming",
 | 
				
			||||||
        "repo": "schemes",
 | 
					        "repo": "schemes",
 | 
				
			||||||
        "rev": "317a5e10c35825a6c905d912e480dfe8e71c7559",
 | 
					        "rev": "47c8c7726e98069cade5827e5fb2bfee02ce6991",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -1041,11 +1177,11 @@
 | 
				
			||||||
    "tinted-tmux": {
 | 
					    "tinted-tmux": {
 | 
				
			||||||
      "flake": false,
 | 
					      "flake": false,
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1757811970,
 | 
					        "lastModified": 1740877430,
 | 
				
			||||||
        "narHash": "sha256-n5ZJgmzGZXOD9pZdAl1OnBu3PIqD+X3vEBUGbTi4JiI=",
 | 
					        "narHash": "sha256-zWcCXgdC4/owfH/eEXx26y5BLzTrefjtSLFHWVD5KxU=",
 | 
				
			||||||
        "owner": "tinted-theming",
 | 
					        "owner": "tinted-theming",
 | 
				
			||||||
        "repo": "tinted-tmux",
 | 
					        "repo": "tinted-tmux",
 | 
				
			||||||
        "rev": "d217ba31c846006e9e0ae70775b0ee0f00aa6b1e",
 | 
					        "rev": "d48ee86394cbe45b112ba23ab63e33656090edb4",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -1057,11 +1193,11 @@
 | 
				
			||||||
    "tinted-zed": {
 | 
					    "tinted-zed": {
 | 
				
			||||||
      "flake": false,
 | 
					      "flake": false,
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1757811247,
 | 
					        "lastModified": 1725758778,
 | 
				
			||||||
        "narHash": "sha256-4EFOUyLj85NRL3OacHoLGEo0wjiRJzfsXtR4CZWAn6w=",
 | 
					        "narHash": "sha256-8P1b6mJWyYcu36WRlSVbuj575QWIFZALZMTg5ID/sM4=",
 | 
				
			||||||
        "owner": "tinted-theming",
 | 
					        "owner": "tinted-theming",
 | 
				
			||||||
        "repo": "base16-zed",
 | 
					        "repo": "base16-zed",
 | 
				
			||||||
        "rev": "824fe0aacf82b3c26690d14e8d2cedd56e18404e",
 | 
					        "rev": "122c9e5c0e6f27211361a04fae92df97940eccf9",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					@ -1070,19 +1206,62 @@
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "zjstatus": {
 | 
					    "treefmt-nix": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "crane": "crane_2",
 | 
					        "nixpkgs": [
 | 
				
			||||||
        "flake-utils": "flake-utils_2",
 | 
					          "bcachefs-tools",
 | 
				
			||||||
        "nixpkgs": "nixpkgs_8",
 | 
					          "nixpkgs"
 | 
				
			||||||
        "rust-overlay": "rust-overlay_2"
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1761162625,
 | 
					        "lastModified": 1742370146,
 | 
				
			||||||
        "narHash": "sha256-cJD5RccT5aFwLFiId8PW91z39MpoQZIymj+qZEJ5jTE=",
 | 
					        "narHash": "sha256-XRE8hL4vKIQyVMDXykFh4ceo3KSpuJF3ts8GKwh5bIU=",
 | 
				
			||||||
 | 
					        "owner": "numtide",
 | 
				
			||||||
 | 
					        "repo": "treefmt-nix",
 | 
				
			||||||
 | 
					        "rev": "adc195eef5da3606891cedf80c0d9ce2d3190808",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "numtide",
 | 
				
			||||||
 | 
					        "repo": "treefmt-nix",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "treefmt-nix_2": {
 | 
				
			||||||
 | 
					      "inputs": {
 | 
				
			||||||
 | 
					        "nixpkgs": [
 | 
				
			||||||
 | 
					          "stylix",
 | 
				
			||||||
 | 
					          "nur",
 | 
				
			||||||
 | 
					          "nixpkgs"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1733222881,
 | 
				
			||||||
 | 
					        "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
 | 
				
			||||||
 | 
					        "owner": "numtide",
 | 
				
			||||||
 | 
					        "repo": "treefmt-nix",
 | 
				
			||||||
 | 
					        "rev": "49717b5af6f80172275d47a418c9719a31a78b53",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "numtide",
 | 
				
			||||||
 | 
					        "repo": "treefmt-nix",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "zjstatus": {
 | 
				
			||||||
 | 
					      "inputs": {
 | 
				
			||||||
 | 
					        "crane": "crane_3",
 | 
				
			||||||
 | 
					        "flake-utils": "flake-utils_3",
 | 
				
			||||||
 | 
					        "nixpkgs": "nixpkgs_8",
 | 
				
			||||||
 | 
					        "rust-overlay": "rust-overlay_3"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1741803511,
 | 
				
			||||||
 | 
					        "narHash": "sha256-DcCGBWvAvt+OWI+EcPRO+/IXZHkFgPxZUmxf2VLl8no=",
 | 
				
			||||||
        "owner": "dj95",
 | 
					        "owner": "dj95",
 | 
				
			||||||
        "repo": "zjstatus",
 | 
					        "repo": "zjstatus",
 | 
				
			||||||
        "rev": "a4bb655af8f49fe53de7fefca54348de21ecbbb2",
 | 
					        "rev": "df9c77718f7023de8406e593eda6b5b0bc09cddd",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										52
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										52
									
								
								flake.nix
									
										
									
									
									
								
							| 
						 | 
					@ -13,11 +13,11 @@
 | 
				
			||||||
    disko.url = "github:nix-community/disko";
 | 
					    disko.url = "github:nix-community/disko";
 | 
				
			||||||
    disko.inputs.nixpkgs.follows = "nixpkgs";
 | 
					    disko.inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # bcachefs-tools = {
 | 
					    bcachefs-tools = {
 | 
				
			||||||
    #   url = "github:koverstreet/bcachefs-tools";
 | 
					      url = "github:koverstreet/bcachefs-tools";
 | 
				
			||||||
    #   inputs.nixpkgs.follows = "nixpkgs";
 | 
					      inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
    #   inputs.flake-parts.follows = "flake-parts";
 | 
					      inputs.flake-parts.follows = "flake-parts";
 | 
				
			||||||
    # };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    flake-parts = {
 | 
					    flake-parts = {
 | 
				
			||||||
      url = "github:hercules-ci/flake-parts"; # Flake parts for easy flake management
 | 
					      url = "github:hercules-ci/flake-parts"; # Flake parts for easy flake management
 | 
				
			||||||
| 
						 | 
					@ -33,7 +33,11 @@
 | 
				
			||||||
    # catpuccin theme
 | 
					    # catpuccin theme
 | 
				
			||||||
    catppuccin.url = "github:catppuccin/nix";
 | 
					    catppuccin.url = "github:catppuccin/nix";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Conduwuit fork after it shut down
 | 
					    # Conduit fork without all the fuss and drama
 | 
				
			||||||
 | 
					    # conduwuit = {
 | 
				
			||||||
 | 
					    #   url = "github:girlbossceo/conduwuit";
 | 
				
			||||||
 | 
					    #   inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
 | 
					    # };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Nix index database files
 | 
					    # Nix index database files
 | 
				
			||||||
    nix-index-database.url = "github:nix-community/nix-index-database";
 | 
					    nix-index-database.url = "github:nix-community/nix-index-database";
 | 
				
			||||||
| 
						 | 
					@ -75,7 +79,7 @@
 | 
				
			||||||
    # Add any other flake you might need
 | 
					    # Add any other flake you might need
 | 
				
			||||||
    # hardware.url = "github:nixos/nixos-hardware";
 | 
					    # hardware.url = "github:nixos/nixos-hardware";
 | 
				
			||||||
    # Stylix theming engine
 | 
					    # Stylix theming engine
 | 
				
			||||||
    stylix.url = "github:nix-community/stylix";
 | 
					    stylix.url = "github:danth/stylix";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  outputs = {
 | 
					  outputs = {
 | 
				
			||||||
| 
						 | 
					@ -95,15 +99,10 @@
 | 
				
			||||||
    jovian,
 | 
					    jovian,
 | 
				
			||||||
    nixos-hardware,
 | 
					    nixos-hardware,
 | 
				
			||||||
    nix-index-database,
 | 
					    nix-index-database,
 | 
				
			||||||
 | 
					    # conduwuit,
 | 
				
			||||||
    stylix,
 | 
					    stylix,
 | 
				
			||||||
    ...
 | 
					    ...
 | 
				
			||||||
  } @ inputs: let
 | 
					  } @ inputs: let
 | 
				
			||||||
    supportedSystems = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"];
 | 
					 | 
				
			||||||
    forEachSupportedSystem = f:
 | 
					 | 
				
			||||||
      nixpkgs.lib.genAttrs supportedSystems (system:
 | 
					 | 
				
			||||||
        f {
 | 
					 | 
				
			||||||
          pkgs = import nixpkgs {inherit system;};
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
    inherit (self) outputs;
 | 
					    inherit (self) outputs;
 | 
				
			||||||
    inherit (inputs) nixpkgs-edge;
 | 
					    inherit (inputs) nixpkgs-edge;
 | 
				
			||||||
    # Supported systems for your flake packages, shell, etc.
 | 
					    # Supported systems for your flake packages, shell, etc.
 | 
				
			||||||
| 
						 | 
					@ -130,10 +129,9 @@
 | 
				
			||||||
      catppuccin.nixosModules.catppuccin
 | 
					      catppuccin.nixosModules.catppuccin
 | 
				
			||||||
      stylix.nixosModules.stylix
 | 
					      stylix.nixosModules.stylix
 | 
				
			||||||
      nix-index-database.nixosModules.nix-index
 | 
					      nix-index-database.nixosModules.nix-index
 | 
				
			||||||
      {programs.nix-index-database.comma.enable = true;}
 | 
					 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        home-manager.sharedModules = [
 | 
					        home-manager.sharedModules = [
 | 
				
			||||||
          catppuccin.homeModules.catppuccin
 | 
					          inputs.catppuccin.homeModules.catppuccin
 | 
				
			||||||
          ./home-manager/shared
 | 
					          ./home-manager/shared
 | 
				
			||||||
          sops-nix.homeManagerModules.sops
 | 
					          sops-nix.homeManagerModules.sops
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
| 
						 | 
					@ -144,18 +142,12 @@
 | 
				
			||||||
      ./nixos/desktop
 | 
					      ./nixos/desktop
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        home-manager.sharedModules = [
 | 
					        home-manager.sharedModules = [
 | 
				
			||||||
          inputs.plasma-manager.homeModules.plasma-manager
 | 
					          inputs.plasma-manager.homeManagerModules.plasma-manager
 | 
				
			||||||
          ./home-manager/desktop
 | 
					          ./home-manager/desktop
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
  in {
 | 
					  in {
 | 
				
			||||||
    devShells = forEachSupportedSystem ({pkgs}: {
 | 
					 | 
				
			||||||
      default = pkgs.mkShell {
 | 
					 | 
				
			||||||
        packages = with pkgs; [nom just git];
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Your custom packages
 | 
					    # Your custom packages
 | 
				
			||||||
    # Accessible through 'nix build', 'nix shell', etc
 | 
					    # Accessible through 'nix build', 'nix shell', etc
 | 
				
			||||||
    packages = forAllSystems (system:
 | 
					    packages = forAllSystems (system:
 | 
				
			||||||
| 
						 | 
					@ -180,18 +172,6 @@
 | 
				
			||||||
    # NixOS configuration entrypoint
 | 
					    # NixOS configuration entrypoint
 | 
				
			||||||
    # Available through 'nixos-rebuild --flake .#your-hostname'
 | 
					    # Available through 'nixos-rebuild --flake .#your-hostname'
 | 
				
			||||||
    nixosConfigurations = {
 | 
					    nixosConfigurations = {
 | 
				
			||||||
      # nixIso = nixpkgs.lib.nixosSystem {
 | 
					 | 
				
			||||||
      #   system = "x86_64-linux";
 | 
					 | 
				
			||||||
      #   specialArgs = {inherit inputs outputs;};
 | 
					 | 
				
			||||||
      #   modules =
 | 
					 | 
				
			||||||
      #     sharedModules
 | 
					 | 
				
			||||||
      #     ++ desktopModules
 | 
					 | 
				
			||||||
      #     ++ [
 | 
					 | 
				
			||||||
      #       ./nixos/hosts/iso/configuration.nix
 | 
					 | 
				
			||||||
      #       "${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-base.nix"
 | 
					 | 
				
			||||||
      #     ];
 | 
					 | 
				
			||||||
      # };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      EDI = nixpkgs.lib.nixosSystem {
 | 
					      EDI = nixpkgs.lib.nixosSystem {
 | 
				
			||||||
        system = "x86_64-linux";
 | 
					        system = "x86_64-linux";
 | 
				
			||||||
        specialArgs = {inherit inputs outputs;};
 | 
					        specialArgs = {inherit inputs outputs;};
 | 
				
			||||||
| 
						 | 
					@ -240,7 +220,6 @@
 | 
				
			||||||
        specialArgs = {inherit inputs outputs;};
 | 
					        specialArgs = {inherit inputs outputs;};
 | 
				
			||||||
        modules =
 | 
					        modules =
 | 
				
			||||||
          sharedModules
 | 
					          sharedModules
 | 
				
			||||||
          ++ desktopModules
 | 
					 | 
				
			||||||
          ++ [
 | 
					          ++ [
 | 
				
			||||||
            {_module.args = {inherit pkgs-edge;};}
 | 
					            {_module.args = {inherit pkgs-edge;};}
 | 
				
			||||||
            # > Our main nixos configuration file <
 | 
					            # > Our main nixos configuration file <
 | 
				
			||||||
| 
						 | 
					@ -249,7 +228,7 @@
 | 
				
			||||||
            jovian.nixosModules.jovian
 | 
					            jovian.nixosModules.jovian
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
              home-manager.sharedModules = [
 | 
					              home-manager.sharedModules = [
 | 
				
			||||||
                inputs.plasma-manager.homeModules.plasma-manager
 | 
					                inputs.plasma-manager.homeManagerModules.plasma-manager
 | 
				
			||||||
              ];
 | 
					              ];
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
          ];
 | 
					          ];
 | 
				
			||||||
| 
						 | 
					@ -261,7 +240,6 @@
 | 
				
			||||||
        modules =
 | 
					        modules =
 | 
				
			||||||
          sharedModules
 | 
					          sharedModules
 | 
				
			||||||
          ++ [
 | 
					          ++ [
 | 
				
			||||||
            {_module.args = {inherit pkgs-edge;};}
 | 
					 | 
				
			||||||
            ./nixos/hosts/wheatley/configuration.nix
 | 
					            ./nixos/hosts/wheatley/configuration.nix
 | 
				
			||||||
          ];
 | 
					          ];
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,8 +13,8 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # You can also split up your configuration and import pieces of it here:
 | 
					    # You can also split up your configuration and import pieces of it here:
 | 
				
			||||||
    # ./nvim.nix
 | 
					    # ./nvim.nix
 | 
				
			||||||
    ./package-configs/plasma-desktop
 | 
					    ./package-configs/plasma-desktop.nix
 | 
				
			||||||
    ./package-configs/firefox
 | 
					    ./package-configs/firefox.nix
 | 
				
			||||||
    ./package-configs/konsole
 | 
					    ./package-configs/konsole
 | 
				
			||||||
    ./package-configs/foot
 | 
					    ./package-configs/foot
 | 
				
			||||||
    ./package-configs/freetube
 | 
					    ./package-configs/freetube
 | 
				
			||||||
| 
						 | 
					@ -135,10 +135,6 @@
 | 
				
			||||||
        source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/.mozilla/firefox";
 | 
					        source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/.mozilla/firefox";
 | 
				
			||||||
        target = ".floorp";
 | 
					        target = ".floorp";
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
      librewolf = {
 | 
					 | 
				
			||||||
        source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/.mozilla/firefox";
 | 
					 | 
				
			||||||
        target = ".librewolf";
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Add stuff for your user as you see fit:
 | 
					    # Add stuff for your user as you see fit:
 | 
				
			||||||
| 
						 | 
					@ -150,8 +146,8 @@
 | 
				
			||||||
      direnv
 | 
					      direnv
 | 
				
			||||||
      git
 | 
					      git
 | 
				
			||||||
      git-credential-manager
 | 
					      git-credential-manager
 | 
				
			||||||
 | 
					      git-credential-manager
 | 
				
			||||||
      ruff
 | 
					      ruff
 | 
				
			||||||
      devtoolbox
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # Chat applications:
 | 
					      # Chat applications:
 | 
				
			||||||
      signal-desktop
 | 
					      signal-desktop
 | 
				
			||||||
| 
						 | 
					@ -169,7 +165,7 @@
 | 
				
			||||||
      fcast-client
 | 
					      fcast-client
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # Office applications:
 | 
					      # Office applications:
 | 
				
			||||||
      onlyoffice-desktopeditors
 | 
					      onlyoffice-bin
 | 
				
			||||||
      gimp
 | 
					      gimp
 | 
				
			||||||
      thunderbird
 | 
					      thunderbird
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -178,8 +174,8 @@
 | 
				
			||||||
      flameshot
 | 
					      flameshot
 | 
				
			||||||
      fzf
 | 
					      fzf
 | 
				
			||||||
      nextcloud-client
 | 
					      nextcloud-client
 | 
				
			||||||
      # nitrokey-app
 | 
					      nitrokey-app
 | 
				
			||||||
      # protonvpn-gui
 | 
					      protonvpn-gui
 | 
				
			||||||
      virtualbox
 | 
					      virtualbox
 | 
				
			||||||
      #watchmate
 | 
					      #watchmate
 | 
				
			||||||
      qbittorrent
 | 
					      qbittorrent
 | 
				
			||||||
| 
						 | 
					@ -202,6 +198,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # Web browsing:
 | 
					      # Web browsing:
 | 
				
			||||||
      firefoxpwa
 | 
					      firefoxpwa
 | 
				
			||||||
 | 
					      firefoxpwa
 | 
				
			||||||
      ungoogled-chromium
 | 
					      ungoogled-chromium
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
| 
						 | 
					@ -237,11 +234,9 @@
 | 
				
			||||||
    home-manager.enable = true;
 | 
					    home-manager.enable = true;
 | 
				
			||||||
    git = {
 | 
					    git = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
      settings = {
 | 
					      userEmail = "git@lillianviolet.dev";
 | 
				
			||||||
        user = {
 | 
					      userName = "Lillian-Violet";
 | 
				
			||||||
          name = "Lillian-Violet";
 | 
					      extraConfig = {
 | 
				
			||||||
          email = "git@lillianviolet.dev";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        init = {
 | 
					        init = {
 | 
				
			||||||
          defaultBranch = "main";
 | 
					          defaultBranch = "main";
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,16 +1,11 @@
 | 
				
			||||||
{pkgs, ...}: {
 | 
					{pkgs, ...}: {
 | 
				
			||||||
  stylix.targets.firefox.profileNames = ["lillian"];
 | 
					 | 
				
			||||||
  programs.firefox = {
 | 
					  programs.firefox = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    nativeMessagingHosts = [pkgs.firefoxpwa];
 | 
					    nativeMessagingHosts = [pkgs.firefoxpwa];
 | 
				
			||||||
    package = pkgs.librewolf;
 | 
					    package = pkgs.floorp;
 | 
				
			||||||
    profiles.default = {isDefault = false;};
 | 
					 | 
				
			||||||
    profiles.lillian = {
 | 
					    profiles.lillian = {
 | 
				
			||||||
      isDefault = true;
 | 
					      isDefault = true;
 | 
				
			||||||
      id = 1;
 | 
					 | 
				
			||||||
      settings = {
 | 
					      settings = {
 | 
				
			||||||
        "sidebar.verticalTabs" = true;
 | 
					 | 
				
			||||||
        "sidebar.visibility" = "expand-on-hover";
 | 
					 | 
				
			||||||
        "browser.aboutConfig.showWarning" = false;
 | 
					        "browser.aboutConfig.showWarning" = false;
 | 
				
			||||||
        "browser.bookmarks.addedImportButton" = true;
 | 
					        "browser.bookmarks.addedImportButton" = true;
 | 
				
			||||||
        "browser.bookmarks.restore_default_bookmarks" = false;
 | 
					        "browser.bookmarks.restore_default_bookmarks" = false;
 | 
				
			||||||
| 
						 | 
					@ -4,6 +4,7 @@
 | 
				
			||||||
    # catppuccin.enable = true;
 | 
					    # catppuccin.enable = true;
 | 
				
			||||||
    settings = {
 | 
					    settings = {
 | 
				
			||||||
      main = {
 | 
					      main = {
 | 
				
			||||||
 | 
					        font = "Atkinson Monolegible:size=12";
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      mouse = {
 | 
					      mouse = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,23 +1,4 @@
 | 
				
			||||||
{
 | 
					{osConfig, ...}: {
 | 
				
			||||||
  osConfig,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  #TODO: make the creation of the command file easier, for now this is a nice solution though
 | 
					 | 
				
			||||||
  systemd.user.services."set-kde-connect-commands" = {
 | 
					 | 
				
			||||||
    Install = {
 | 
					 | 
				
			||||||
      WantedBy = ["default.target"];
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    Service = {
 | 
					 | 
				
			||||||
      Type = "OneShot";
 | 
					 | 
				
			||||||
      ExecStart = "${pkgs.writeShellScript "set-kde-connect-commands" ''
 | 
					 | 
				
			||||||
        #!/run/current-system/sw/bin/bash
 | 
					 | 
				
			||||||
        find ${config.home.homeDirectory}/.config/kdeconnect/ -type d -name \'kdeconnect_runcommand\' -execdir cp ${builtins.toPath ./kde-connect-commands} {}+"/config" \;
 | 
					 | 
				
			||||||
      ''}";
 | 
					 | 
				
			||||||
      RemainAfterExit = true;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
  home.file.".config/kdeconnect/config" = {
 | 
					  home.file.".config/kdeconnect/config" = {
 | 
				
			||||||
    text = ''
 | 
					    text = ''
 | 
				
			||||||
      [General]
 | 
					      [General]
 | 
				
			||||||
| 
						 | 
					@ -28,22 +9,6 @@
 | 
				
			||||||
    target = ".config/kdeconnect/config";
 | 
					    target = ".config/kdeconnect/config";
 | 
				
			||||||
    force = true;
 | 
					    force = true;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  home.file."Games/.directory" = {
 | 
					 | 
				
			||||||
    text = ''
 | 
					 | 
				
			||||||
      [Desktop Entry]
 | 
					 | 
				
			||||||
      Icon=folder-games
 | 
					 | 
				
			||||||
    '';
 | 
					 | 
				
			||||||
    target = "Games/.directory";
 | 
					 | 
				
			||||||
    force = true;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
  home.file."Code/.directory" = {
 | 
					 | 
				
			||||||
    text = ''
 | 
					 | 
				
			||||||
      [Desktop Entry]
 | 
					 | 
				
			||||||
      Icon=folder-script
 | 
					 | 
				
			||||||
    '';
 | 
					 | 
				
			||||||
    target = "Code/.directory";
 | 
					 | 
				
			||||||
    force = true;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  programs.plasma = {
 | 
					  programs.plasma = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
| 
						 | 
					@ -109,8 +74,6 @@
 | 
				
			||||||
              hidden = [
 | 
					              hidden = [
 | 
				
			||||||
                "Xwayland Video Bridge_pipewireToXProxy"
 | 
					                "Xwayland Video Bridge_pipewireToXProxy"
 | 
				
			||||||
                "org.kde.plasma.devicenotifier"
 | 
					                "org.kde.plasma.devicenotifier"
 | 
				
			||||||
                "org.kde.plasma.keyboardindicator"
 | 
					 | 
				
			||||||
                "org.kde.plasma.keyboardlayout"
 | 
					 | 
				
			||||||
                "org.kde.kscreen"
 | 
					                "org.kde.kscreen"
 | 
				
			||||||
                "org.kde.plasma.printmanager"
 | 
					                "org.kde.plasma.printmanager"
 | 
				
			||||||
                "chrome_status_icon_1"
 | 
					                "chrome_status_icon_1"
 | 
				
			||||||
| 
						 | 
					@ -118,9 +81,8 @@
 | 
				
			||||||
                "Nitrokey App"
 | 
					                "Nitrokey App"
 | 
				
			||||||
                "qBittorrent"
 | 
					                "qBittorrent"
 | 
				
			||||||
                "vlc"
 | 
					                "vlc"
 | 
				
			||||||
                "obs"
 | 
					 | 
				
			||||||
                "steam"
 | 
					                "steam"
 | 
				
			||||||
                "nitrokey-app"
 | 
					                "Thunderbird Daily"
 | 
				
			||||||
              ];
 | 
					              ];
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
| 
						 | 
					@ -156,10 +118,10 @@
 | 
				
			||||||
            config = {
 | 
					            config = {
 | 
				
			||||||
              General = {
 | 
					              General = {
 | 
				
			||||||
                launchers = [
 | 
					                launchers = [
 | 
				
			||||||
                  "applications:librewolf.desktop"
 | 
					                  "applications:floorp.desktop"
 | 
				
			||||||
                  "applications:systemsettings.desktop"
 | 
					                  "applications:systemsettings.desktop"
 | 
				
			||||||
                  "applications:org.kde.dolphin.desktop"
 | 
					                  "applications:org.kde.dolphin.desktop"
 | 
				
			||||||
                  "applications:signal.desktop"
 | 
					                  "applications:signal-desktop.desktop"
 | 
				
			||||||
                  "applications:vesktop.desktop"
 | 
					                  "applications:vesktop.desktop"
 | 
				
			||||||
                  "applications:thunderbird.desktop"
 | 
					                  "applications:thunderbird.desktop"
 | 
				
			||||||
                  "applications:cinny.desktop"
 | 
					                  "applications:cinny.desktop"
 | 
				
			||||||
| 
						 | 
					@ -257,12 +219,12 @@
 | 
				
			||||||
      "mediacontrol"."previousmedia" = "Media Previous";
 | 
					      "mediacontrol"."previousmedia" = "Media Previous";
 | 
				
			||||||
      "mediacontrol"."stopmedia" = "Media Stop";
 | 
					      "mediacontrol"."stopmedia" = "Media Stop";
 | 
				
			||||||
      "org_kde_powerdevil"."Decrease Keyboard Brightness" = "Keyboard Brightness Down";
 | 
					      "org_kde_powerdevil"."Decrease Keyboard Brightness" = "Keyboard Brightness Down";
 | 
				
			||||||
      "org_kde_powerdevil"."Decrease Screen Brightness" = ["Monitor Brightness Down" "Ctrl+Volume Down"];
 | 
					      "org_kde_powerdevil"."Decrease Screen Brightness" = "Monitor Brightness Down";
 | 
				
			||||||
      "org_kde_powerdevil"."Decrease Screen Brightness Small" = ["Monitor Brightness Down" "Ctrl+Shift+Volume Down"];
 | 
					      "org_kde_powerdevil"."Decrease Screen Brightness Small" = "Shift+Monitor Brightness Down";
 | 
				
			||||||
      "org_kde_powerdevil"."Hibernate" = "Hibernate";
 | 
					      "org_kde_powerdevil"."Hibernate" = "Hibernate";
 | 
				
			||||||
      "org_kde_powerdevil"."Increase Keyboard Brightness" = "Keyboard Brightness Up";
 | 
					      "org_kde_powerdevil"."Increase Keyboard Brightness" = "Keyboard Brightness Up";
 | 
				
			||||||
      "org_kde_powerdevil"."Increase Screen Brightness" = ["Monitor Brightness Up" "Ctrl+Volume Up"];
 | 
					      "org_kde_powerdevil"."Increase Screen Brightness" = "Monitor Brightness Up";
 | 
				
			||||||
      "org_kde_powerdevil"."Increase Screen Brightness Small" = ["Shift+Monitor Brightness Up" "Ctrl+Shift+Volume Up"];
 | 
					      "org_kde_powerdevil"."Increase Screen Brightness Small" = "Shift+Monitor Brightness Up";
 | 
				
			||||||
      "org_kde_powerdevil"."PowerDown" = "Power Down";
 | 
					      "org_kde_powerdevil"."PowerDown" = "Power Down";
 | 
				
			||||||
      "org_kde_powerdevil"."PowerOff" = "Power Off";
 | 
					      "org_kde_powerdevil"."PowerOff" = "Power Off";
 | 
				
			||||||
      "org_kde_powerdevil"."Sleep" = "Sleep";
 | 
					      "org_kde_powerdevil"."Sleep" = "Sleep";
 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
[General]
 | 
					 | 
				
			||||||
commands="@ByteArray({\"2574d457_7a99_40a3_8239_24407c7a074d\":{\"command\":\"loginctl unlock-session\",\"name\":\"unlock\"},\"2bbbb9cc_892a_44a1_b097_27b149387511\":{\"command\":\"bluetoothctl disconnect 38:18:4C:11:56:99\",\"name\":\"disconnect headset\"},\"35ad74aa_c1f0_4dd7_a392_2b2676105b62\":{\"command\":\"systemctl hibernate\",\"name\":\"hibernate\"},\"5dd755de_e098_4907_982d_bedba5c3511d\":{\"command\":\"loginctl lock-session\",\"name\":\"lock\"},\"6423946a_b13e_4127_a0d0_0ca38e79fa0f\":{\"command\":\"bluetoothctl connect 38:18:4C:11:56:99\",\"name\":\"connect headset\"},\"690a4134_162b_4851_83a4_bf75722c699a\":{\"command\":\"systemctl suspend\",\"name\":\"suspend\"},\"99ae3913_1757_4ed0_ad7e_91c6f5d740ef\":{\"command\":\"qdbus org.kde.kglobalaccel /component/kmix invokeShortcut \\\"mute\\\"\",\"name\":\"mute\"},\"b11480dd_19f7_49c0_9dcc_3065ddc5150b\":{\"command\":\"qdbus org.kde.kglobalaccel /component/kmix invokeShortcut \\\"mic_mute\\\"\",\"name\":\"mute mic\"},\"bd36530a_9ed5_4345_989d_189c27b3ce00\":{\"command\":\"systemctl reboot\",\"name\":\"reboot\"},\"cf6180f7_e4bd_4f15_a9d1_19ed14e99913\":{\"command\":\"file=\\\"$HOME/Images/WebcamImage_$(date \\\"+%Y%m%d_%H%M%S\\\").jpg\\\"; ffmpeg -f video4linux2 -s 1280x720 -i /dev/video0 -ss 0:0:2 -frames 1 \\\"${file}\\\" && kdeconnect-cli -d $(kdeconnect-cli -a --id-only) --share \\\"${file}\\\"\",\"name\":\"webcam to phone\"},\"d31a3cab_bb6a_459d_89fb_533d0d8fec61\":{\"command\":\"systemctl poweroff\",\"name\":\"shutdown\"},\"f08e1a64_53be_41da_b942_e05e45f1d69c\":{\"command\":\"qdbus org.kde.kglobalaccel /component/kmix invokeShortcut \\\"decrease_volume\\\"\",\"name\":\"volume down\"},\"fbd67152_2a58_4d5d_a210_982fa0eeb171\":{\"command\":\"qdbus org.kde.kglobalaccel /component/kmix invokeShortcut \\\"increase_volume\\\"\",\"name\":\"volume up\"},\"fc3adde9_7049_4166_bcda_a74d13ec91eb\":{\"command\":\"file=/tmp/$(hostname)_$(date \\\"+%Y%m%d_%H%M%S\\\").png; spectacle -bo \\\"${file}\\\" && while ! [ -f \\\"${file}\\\" ]; do sleep 0.5; done && kdeconnect-cli -d $(kdeconnect-cli -a --id-only) --share \\\"${file}\\\"\",\"name\":\"screenshot to phone\"}})"
 | 
					 | 
				
			||||||
| 
						 | 
					@ -16,10 +16,8 @@
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
    lutris
 | 
					 | 
				
			||||||
    android-tools
 | 
					 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
					  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
				
			||||||
  home.stateVersion = "25.11";
 | 
					  home.stateVersion = "25.05";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,11 +17,8 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
    r2modman
 | 
					    r2modman
 | 
				
			||||||
    ryubing
 | 
					    ryujinx
 | 
				
			||||||
    lutris
 | 
					    lutris
 | 
				
			||||||
    vscodium
 | 
					 | 
				
			||||||
    intiface-central
 | 
					 | 
				
			||||||
    unrar
 | 
					 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  programs.mangohud = {
 | 
					  programs.mangohud = {
 | 
				
			||||||
| 
						 | 
					@ -30,5 +27,5 @@
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
					  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
				
			||||||
  home.stateVersion = "25.11";
 | 
					  home.stateVersion = "25.05";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKeZHHAEoUh/Ly9F1xUSPZLPNE0Yh/wM2qWgKvlEBa8A lillian@GLaDOS
 | 
					 | 
				
			||||||
| 
						 | 
					@ -11,11 +11,13 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # You can also split up your configuration and import pieces of it here:
 | 
					    # You can also split up your configuration and import pieces of it here:
 | 
				
			||||||
    # ./nvim.nix
 | 
					    # ./nvim.nix
 | 
				
			||||||
 | 
					    ../../desktop
 | 
				
			||||||
 | 
					    ../../shared
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
					  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
				
			||||||
  home.stateVersion = "25.11";
 | 
					  home.stateVersion = "25.05";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1 +1 @@
 | 
				
			||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGtwcWXnwOOI8G3NqAMfTeuSuDk9ly5xqwQDH2Iey3u+ lillian@queen
 | 
					ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINl+QRyKBYm+sx0hUiD2u6FBdT7aXsZBGUxm4cb7r24k lillian@GLaDOS
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1 +1 @@
 | 
				
			||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL279XPFj1nzLDozFclntPh8rOcn3d1B5iJNGds9Ray6 lillian@shodan
 | 
					ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKRT5MqPrYUhhD5rJFp0PQbkTRtGcNaCaTxEkZw9RiVT lillian@GLaDOS
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,8 +12,13 @@
 | 
				
			||||||
    # You can also split up your configuration and import pieces of it here:
 | 
					    # You can also split up your configuration and import pieces of it here:
 | 
				
			||||||
    # ./nvim.nix
 | 
					    # ./nvim.nix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ../../desktop/package-configs/plasma-desktop.nix
 | 
				
			||||||
 | 
					    ../../desktop/package-configs/firefox.nix
 | 
				
			||||||
 | 
					    ../../desktop/package-configs/konsole
 | 
				
			||||||
 | 
					    ../../desktop/package-configs/foot
 | 
				
			||||||
 | 
					    ../../desktop/package-configs/freetube
 | 
				
			||||||
 | 
					    ../../desktop/package-configs/vesktop
 | 
				
			||||||
    ../../shared
 | 
					    ../../shared
 | 
				
			||||||
    ../../desktop
 | 
					 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
  nixpkgs = {
 | 
					  nixpkgs = {
 | 
				
			||||||
    # You can add overlays here
 | 
					    # You can add overlays here
 | 
				
			||||||
| 
						 | 
					@ -28,17 +33,82 @@
 | 
				
			||||||
      #   });
 | 
					      #   });
 | 
				
			||||||
      # })
 | 
					      # })
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					    # Configure your nixpkgs instance
 | 
				
			||||||
 | 
					    config = {
 | 
				
			||||||
 | 
					      # Disable if you don't want unfree packages
 | 
				
			||||||
 | 
					      allowUnfree = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  home = {
 | 
				
			||||||
 | 
					    username = "lillian";
 | 
				
			||||||
 | 
					    homeDirectory = "/home/lillian";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
 | 
					    #Chat:
 | 
				
			||||||
 | 
					    vesktop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #Gaming:
 | 
					    #Gaming:
 | 
				
			||||||
    prismlauncher
 | 
					    prismlauncher
 | 
				
			||||||
    r2modman
 | 
					    r2modman
 | 
				
			||||||
    ryubing
 | 
					    ryujinx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Multimedia:
 | 
				
			||||||
 | 
					    freetube
 | 
				
			||||||
 | 
					    obs-studio
 | 
				
			||||||
 | 
					    vlc
 | 
				
			||||||
 | 
					    fcast-receiver
 | 
				
			||||||
 | 
					    fcast-client
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # System tools:
 | 
				
			||||||
 | 
					    rage
 | 
				
			||||||
 | 
					    flameshot
 | 
				
			||||||
 | 
					    fzf
 | 
				
			||||||
 | 
					    nextcloud-client
 | 
				
			||||||
 | 
					    nitrokey-app
 | 
				
			||||||
 | 
					    protonvpn-gui
 | 
				
			||||||
 | 
					    sops
 | 
				
			||||||
 | 
					    #watchmate
 | 
				
			||||||
 | 
					    qbittorrent
 | 
				
			||||||
 | 
					    zsh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Theming:
 | 
				
			||||||
 | 
					    catppuccin-cursors
 | 
				
			||||||
 | 
					    (catppuccin-kde.override {
 | 
				
			||||||
 | 
					      flavour = ["macchiato"];
 | 
				
			||||||
 | 
					      accents = ["mauve"];
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    catppuccin-plymouth
 | 
				
			||||||
 | 
					    catppuccin-sddm-corners
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Web browsing:
 | 
				
			||||||
 | 
					    firefox
 | 
				
			||||||
 | 
					    ungoogled-chromium
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					  programs = {
 | 
				
			||||||
 | 
					    # # Automount services for user
 | 
				
			||||||
 | 
					    # programs.bashmount.enable = true;
 | 
				
			||||||
 | 
					    # services.udiskie = {
 | 
				
			||||||
 | 
					    #   enable = true;
 | 
				
			||||||
 | 
					    #   automount = true;
 | 
				
			||||||
 | 
					    #   notify = false;
 | 
				
			||||||
 | 
					    #   tray = "never";
 | 
				
			||||||
 | 
					    # };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Enable home-manager and git
 | 
				
			||||||
 | 
					    home-manager.enable = true;
 | 
				
			||||||
 | 
					    git = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      userEmail = "git@lillianviolet.dev";
 | 
				
			||||||
 | 
					      userName = "Lillian-Violet";
 | 
				
			||||||
 | 
					      signing.format = "ssh";
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Make the kde screenlock not require a password :)
 | 
					  # Make the kde screenlock not require a password :)
 | 
				
			||||||
  programs.plasma.kscreenlocker.passwordRequired = false;
 | 
					  programs.plasma.kscreenlocker.passwordRequired = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
					  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
				
			||||||
  home.stateVersion = "25.11";
 | 
					  home.stateVersion = "25.05";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1 +1 @@
 | 
				
			||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILxXVL6QAiMLwvUYBtXCbkHEh6ENgaEO/rkZWSPJrjLJ lillian@wheatley
 | 
					ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMrmRjLF2tVkWeV7EOgUiF77Q9t+rBziRAdOPo92pyvF lillian@GLaDOS
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -35,5 +35,5 @@
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
					  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
				
			||||||
  home.stateVersion = "25.11";
 | 
					  home.stateVersion = "25.05";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										46
									
								
								home-manager/kde-connect-commands.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								home-manager/kde-connect-commands.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,46 @@
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "command": "systemctl poweroff",
 | 
				
			||||||
 | 
					        "name": "shutdown"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "command": "systemctl reboot",
 | 
				
			||||||
 | 
					        "name": "reboot"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "command": "systemctl suspend",
 | 
				
			||||||
 | 
					        "name": "suspend"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "command": "systemctl hibernate",
 | 
				
			||||||
 | 
					        "name": "hibernate"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "command": "loginctl lock-session",
 | 
				
			||||||
 | 
					        "name": "lock"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "command": "loginctl unlock-session",
 | 
				
			||||||
 | 
					        "name": "unlock"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "command": "qdbus org.kde.kglobalaccel /component/kmix invokeShortcut \"mute\"",
 | 
				
			||||||
 | 
					        "name": "mute"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "command": "qdbus org.kde.kglobalaccel /component/kmix invokeShortcut \"mic_mute\"",
 | 
				
			||||||
 | 
					        "name": "mute mic"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "command": "file=/tmp/$(hostname)_$(date \"+%Y%m%d_%H%M%S\").png; spectacle -bo \"${file}\" && while ! [ -f \"${file}\" ]; do sleep 0.5; done && kdeconnect-cli -d $(kdeconnect-cli -a --id-only) --share \"${file}\"",
 | 
				
			||||||
 | 
					        "name": "screenshot to phone"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "command": "file=\"$HOME/Images/WebcamImage_$(date \"+%Y%m%d_%H%M%S\").jpg\"; ffmpeg -f video4linux2 -s 1280x720 -i /dev/video0 -ss 0:0:2 -frames 1 \"${file}\" && kdeconnect-cli -d $(kdeconnect-cli -a --id-only) --share \"${file}\"",
 | 
				
			||||||
 | 
					        "name": "webcam to phone"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "command": "",
 | 
				
			||||||
 | 
					        "name": ""
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  osConfig,
 | 
					  osConfig,
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: {
 | 
					}: {
 | 
				
			||||||
  imports = [
 | 
					  imports = [
 | 
				
			||||||
| 
						 | 
					@ -12,7 +13,6 @@
 | 
				
			||||||
    ./shell/eza.nix
 | 
					    ./shell/eza.nix
 | 
				
			||||||
    ./shell/hyfetch.nix
 | 
					    ./shell/hyfetch.nix
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					 | 
				
			||||||
  home = {
 | 
					  home = {
 | 
				
			||||||
    username = "lillian";
 | 
					    username = "lillian";
 | 
				
			||||||
    homeDirectory = "/home/lillian";
 | 
					    homeDirectory = "/home/lillian";
 | 
				
			||||||
| 
						 | 
					@ -21,8 +21,18 @@
 | 
				
			||||||
      target = ".ssh/id_ed25519.pub";
 | 
					      target = ".ssh/id_ed25519.pub";
 | 
				
			||||||
      force = true;
 | 
					      force = true;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    packages = with pkgs; [
 | 
					  catppuccin = {
 | 
				
			||||||
 | 
					    flavor = "macchiato";
 | 
				
			||||||
 | 
					    btop.enable = true;
 | 
				
			||||||
 | 
					    cache.enable = true;
 | 
				
			||||||
 | 
					    chromium.enable = true;
 | 
				
			||||||
 | 
					    freetube.enable = true;
 | 
				
			||||||
 | 
					    freetube.flavor = "macchiato";
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
    # System tools:
 | 
					    # System tools:
 | 
				
			||||||
    vscode-langservers-extracted
 | 
					    vscode-langservers-extracted
 | 
				
			||||||
    sops
 | 
					    sops
 | 
				
			||||||
| 
						 | 
					@ -35,16 +45,6 @@
 | 
				
			||||||
    nil
 | 
					    nil
 | 
				
			||||||
    gh
 | 
					    gh
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  catppuccin = {
 | 
					 | 
				
			||||||
    flavor = "macchiato";
 | 
					 | 
				
			||||||
    btop.enable = true;
 | 
					 | 
				
			||||||
    cache.enable = true;
 | 
					 | 
				
			||||||
    chromium.enable = true;
 | 
					 | 
				
			||||||
    freetube.enable = true;
 | 
					 | 
				
			||||||
    freetube.flavor = "macchiato";
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
  programs = {
 | 
					  programs = {
 | 
				
			||||||
    navi.enable = true;
 | 
					    navi.enable = true;
 | 
				
			||||||
    yazi = {
 | 
					    yazi = {
 | 
				
			||||||
| 
						 | 
					@ -54,36 +54,33 @@
 | 
				
			||||||
      # };
 | 
					      # };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  # stylix.enable = true;
 | 
					 | 
				
			||||||
  # qt.platformTheme.name = lib.mkForce "kvantum";
 | 
					 | 
				
			||||||
  # qt.style.name = lib.mkForce "kvantum";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # stylix = {
 | 
					  stylix = {
 | 
				
			||||||
  #   enable = true;
 | 
					    enable = true;
 | 
				
			||||||
  #   autoEnable = true;
 | 
					    autoEnable = true;
 | 
				
			||||||
  #   base16Scheme = {
 | 
					    base16Scheme = {
 | 
				
			||||||
  #     scheme = "Catppuccin Macchiato";
 | 
					      scheme = "Catppuccin Macchiato";
 | 
				
			||||||
  #     author = "https://github.com/catppuccin/catppuccin";
 | 
					      author = "https://github.com/catppuccin/catppuccin";
 | 
				
			||||||
  #     base00 = "24273a";
 | 
					      base00 = "24273a";
 | 
				
			||||||
  #     base01 = "1e2030";
 | 
					      base01 = "1e2030";
 | 
				
			||||||
  #     base02 = "363a4f";
 | 
					      base02 = "363a4f";
 | 
				
			||||||
  #     base03 = "494d64";
 | 
					      base03 = "494d64";
 | 
				
			||||||
  #     base04 = "5b6078";
 | 
					      base04 = "5b6078";
 | 
				
			||||||
  #     base05 = "cad3f5";
 | 
					      base05 = "cad3f5";
 | 
				
			||||||
  #     base06 = "f4dbd6";
 | 
					      base06 = "f4dbd6";
 | 
				
			||||||
  #     base07 = "b7bdf8";
 | 
					      base07 = "b7bdf8";
 | 
				
			||||||
  #     base08 = "ed8796";
 | 
					      base08 = "ed8796";
 | 
				
			||||||
  #     base09 = "f5a97f";
 | 
					      base09 = "f5a97f";
 | 
				
			||||||
  #     base0A = "eed49f";
 | 
					      base0A = "eed49f";
 | 
				
			||||||
  #     base0B = "a6da95";
 | 
					      base0B = "a6da95";
 | 
				
			||||||
  #     base0C = "8bd5ca";
 | 
					      base0C = "8bd5ca";
 | 
				
			||||||
  #     base0D = "8aadf4";
 | 
					      base0D = "8aadf4";
 | 
				
			||||||
  #     base0E = "c6a0f6";
 | 
					      base0E = "c6a0f6";
 | 
				
			||||||
  #     base0F = "f0c6c6";
 | 
					      base0F = "f0c6c6";
 | 
				
			||||||
  #   };
 | 
					    };
 | 
				
			||||||
  #   image = ./background.jpg;
 | 
					    image = ./background.jpg;
 | 
				
			||||||
  #   cursor.package = pkgs.catppuccin-cursors;
 | 
					    cursor.package = pkgs.catppuccin-cursors;
 | 
				
			||||||
  #   cursor.name = "catppuccin-macchiato-mauve-cursors";
 | 
					    cursor.name = "catppuccin-macchiato-mauve-cursors";
 | 
				
			||||||
  #   cursor.size = 16;
 | 
					    cursor.size = 16;
 | 
				
			||||||
  # };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,50 +0,0 @@
 | 
				
			||||||
[
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    "command": "systemctl poweroff",
 | 
					 | 
				
			||||||
    "name": "shutdown"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    "command": "systemctl reboot",
 | 
					 | 
				
			||||||
    "name": "reboot"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    "command": "systemctl suspend",
 | 
					 | 
				
			||||||
    "name": "suspend"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    "command": "systemctl hibernate",
 | 
					 | 
				
			||||||
    "name": "hibernate"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    "command": "loginctl lock-session",
 | 
					 | 
				
			||||||
    "name": "lock"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    "command": "loginctl unlock-session",
 | 
					 | 
				
			||||||
    "name": "unlock"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    "command": "qdbus org.kde.kglobalaccel /component/kmix invokeShortcut \"mute\"",
 | 
					 | 
				
			||||||
    "name": "mute"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    "command": "qdbus org.kde.kglobalaccel /component/kmix invokeShortcut \"mic_mute\"",
 | 
					 | 
				
			||||||
    "name": "mute mic"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    "command": "file=/tmp/$(hostname)_$(date \"+%Y%m%d_%H%M%S\").png; spectacle -bo \"${file}\" && while ! [ -f \"${file}\" ]; do sleep 0.5; done && kdeconnect-cli -d $(kdeconnect-cli -a --id-only) --share \"${file}\"",
 | 
					 | 
				
			||||||
    "name": "screenshot to phone"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    "command": "file=\"$HOME/Images/WebcamImage_$(date \"+%Y%m%d_%H%M%S\").jpg\"; ffmpeg -f video4linux2 -s 1280x720 -i /dev/video0 -ss 0:0:2 -frames 1 \"${file}\" && kdeconnect-cli -d $(kdeconnect-cli -a --id-only) --share \"${file}\"",
 | 
					 | 
				
			||||||
    "name": "webcam to phone"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    "command": "bluetoothctl connect 38:18:4C:11:56:99",
 | 
					 | 
				
			||||||
    "name": "connect headset"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    "command": "bluetoothctl disconnect 38:18:4C:11:56:99",
 | 
					 | 
				
			||||||
    "name": "disconnect headset"
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
]
 | 
					 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,7 @@
 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
rustPlatform.buildRustPackage rec {
 | 
					rustPlatform.buildRustPackage rec {
 | 
				
			||||||
  pname = "helix";
 | 
					  pname = "helix";
 | 
				
			||||||
  version = "25.01.1";
 | 
					  version = "24.07";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # This release tarball includes source code for the tree-sitter grammars,
 | 
					  # This release tarball includes source code for the tree-sitter grammars,
 | 
				
			||||||
  # which is not ordinarily part of the repository.
 | 
					  # which is not ordinarily part of the repository.
 | 
				
			||||||
| 
						 | 
					@ -17,7 +17,6 @@ rustPlatform.buildRustPackage rec {
 | 
				
			||||||
    stripRoot = false;
 | 
					    stripRoot = false;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  useFetchCargoVendor = true;
 | 
					 | 
				
			||||||
  cargoHash = "";
 | 
					  cargoHash = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  nativeBuildInputs = [git installShellFiles];
 | 
					  nativeBuildInputs = [git installShellFiles];
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,7 +10,6 @@
 | 
				
			||||||
        mode = "horizontal";
 | 
					        mode = "horizontal";
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
      backend = "neofetch";
 | 
					      backend = "neofetch";
 | 
				
			||||||
      pride_month_disable = false;
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -57,15 +57,15 @@
 | 
				
			||||||
          pane size=1 borderless=true {
 | 
					          pane size=1 borderless=true {
 | 
				
			||||||
            plugin location="file:${inputs.zjstatus.packages.${pkgs.system}.default}/bin/zjstatus.wasm" {
 | 
					            plugin location="file:${inputs.zjstatus.packages.${pkgs.system}.default}/bin/zjstatus.wasm" {
 | 
				
			||||||
              format_left  "#[bg=#1D1D2E,fg=#C9D2F5,bold] {session} {mode} {tabs}"
 | 
					              format_left  "#[bg=#1D1D2E,fg=#C9D2F5,bold] {session} {mode} {tabs}"
 | 
				
			||||||
              format_right "#[bg=#C9D2F5,fg=#1D1D2E]▶#[bg=#C9D2F5,fg=#C9D2F5]▶#[bg=#C9D2F5,fg=#1D1D2E,bold]{datetime}#[bg=#1D1D2E,fg=#C9D2F5]▶"
 | 
					              format_right "#[bg=#C9D2F5,fg=#1D1D2E]#[bg=#C9D2F5,fg=#C9D2F5]#[bg=#C9D2F5,fg=#1D1D2E,bold]{datetime}#[bg=#1D1D2E,fg=#C9D2F5]"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
              mode_locked "#[fg=magenta,bold] {name} "
 | 
					              mode_locked "#[fg=magenta,bold] {name} "
 | 
				
			||||||
              mode_normal "#[fg=green,bold] {name} "
 | 
					              mode_normal "#[fg=green,bold] {name} "
 | 
				
			||||||
              mode_resize "#[fg=orange,bold] {name} "
 | 
					              mode_resize "#[fg=orange,bold] {name} "
 | 
				
			||||||
              mode_default_to_mode "resize"
 | 
					              mode_default_to_mode "resize"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
              tab_normal "#[bg=#C9D2F5,fg=#1D1D2E]▶#[bg=#C9D2F5,fg=#C9D2F5]▶#[bg=#C9D2F5,fg=#1D1D2E,bold]{name}{sync_indicator}{fullscreen_indicator}{floating_indicator}#[bg=#C9D2F5,fg=#C9D2F5]▶#[bg=#1D1D2E,fg=#C9D2F5]▶"
 | 
					              tab_normal "#[bg=#C9D2F5,fg=#1D1D2E]#[bg=#C9D2F5,fg=#C9D2F5]#[bg=#C9D2F5,fg=#1D1D2E,bold]{name}{sync_indicator}{fullscreen_indicator}{floating_indicator}#[bg=#C9D2F5,fg=#C9D2F5]#[bg=#1D1D2E,fg=#C9D2F5]"
 | 
				
			||||||
              tab_active "#[bg=#A6DA95,fg=#1D1D2E]▶#[bg=#A6DA95,fg=#A6DA95]▶#[bg=#A6DA95,fg=#1D1D2E,bold]{name}{sync_indicator}{fullscreen_indicator}{floating_indicator}#[bg=#A6DA95,fg=#A6DA95]▶#[bg=#1D1D2E,fg=#A6DA95]▶"
 | 
					              tab_active "#[bg=#A6DA95,fg=#1D1D2E]#[bg=#A6DA95,fg=#A6DA95]#[bg=#A6DA95,fg=#1D1D2E,bold]{name}{sync_indicator}{fullscreen_indicator}{floating_indicator}#[bg=#A6DA95,fg=#A6DA95]#[bg=#1D1D2E,fg=#A6DA95]"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
              tab_sync_indicator       " "
 | 
					              tab_sync_indicator       " "
 | 
				
			||||||
              tab_fullscreen_indicator "□ "
 | 
					              tab_fullscreen_indicator "□ "
 | 
				
			||||||
| 
						 | 
					@ -140,15 +140,15 @@
 | 
				
			||||||
          pane size=1 borderless=true {
 | 
					          pane size=1 borderless=true {
 | 
				
			||||||
            plugin location="file:${inputs.zjstatus.packages.${pkgs.system}.default}/bin/zjstatus.wasm" {
 | 
					            plugin location="file:${inputs.zjstatus.packages.${pkgs.system}.default}/bin/zjstatus.wasm" {
 | 
				
			||||||
              format_left  "#[bg=#1D1D2E,fg=#C9D2F5,bold] {session} {mode} {tabs}"
 | 
					              format_left  "#[bg=#1D1D2E,fg=#C9D2F5,bold] {session} {mode} {tabs}"
 | 
				
			||||||
              format_right "#[bg=#C9D2F5,fg=#1D1D2E]▶#[bg=#C9D2F5,fg=#C9D2F5]▶#[bg=#C9D2F5,fg=#1D1D2E,bold]{datetime}#[bg=#1D1D2E,fg=#C9D2F5]▶"
 | 
					              format_right "#[bg=#C9D2F5,fg=#1D1D2E]#[bg=#C9D2F5,fg=#C9D2F5]#[bg=#C9D2F5,fg=#1D1D2E,bold]{datetime}#[bg=#1D1D2E,fg=#C9D2F5]"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
              mode_locked "#[fg=magenta,bold] {name} "
 | 
					              mode_locked "#[fg=magenta,bold] {name} "
 | 
				
			||||||
              mode_normal "#[fg=green,bold] {name} "
 | 
					              mode_normal "#[fg=green,bold] {name} "
 | 
				
			||||||
              mode_resize "#[fg=orange,bold] {name} "
 | 
					              mode_resize "#[fg=orange,bold] {name} "
 | 
				
			||||||
              mode_default_to_mode "resize"
 | 
					              mode_default_to_mode "resize"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
              tab_normal "#[bg=#C9D2F5,fg=#1D1D2E]▶#[bg=#C9D2F5,fg=#C9D2F5]▶#[bg=#C9D2F5,fg=#1D1D2E,bold]{name}{sync_indicator}{fullscreen_indicator}{floating_indicator}#[bg=#C9D2F5,fg=#C9D2F5]▶#[bg=#1D1D2E,fg=#C9D2F5]▶"
 | 
					              tab_normal "#[bg=#C9D2F5,fg=#1D1D2E]#[bg=#C9D2F5,fg=#C9D2F5]#[bg=#C9D2F5,fg=#1D1D2E,bold]{name}{sync_indicator}{fullscreen_indicator}{floating_indicator}#[bg=#C9D2F5,fg=#C9D2F5]#[bg=#1D1D2E,fg=#C9D2F5]"
 | 
				
			||||||
              tab_active "#[bg=#A6DA95,fg=#1D1D2E]▶#[bg=#A6DA95,fg=#A6DA95]▶#[bg=#A6DA95,fg=#1D1D2E,bold]{name}{sync_indicator}{fullscreen_indicator}{floating_indicator}#[bg=#A6DA95,fg=#A6DA95]▶#[bg=#1D1D2E,fg=#A6DA95]▶"
 | 
					              tab_active "#[bg=#A6DA95,fg=#1D1D2E]#[bg=#A6DA95,fg=#A6DA95]#[bg=#A6DA95,fg=#1D1D2E,bold]{name}{sync_indicator}{fullscreen_indicator}{floating_indicator}#[bg=#A6DA95,fg=#A6DA95]#[bg=#1D1D2E,fg=#A6DA95]"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
              tab_sync_indicator       " "
 | 
					              tab_sync_indicator       " "
 | 
				
			||||||
              tab_fullscreen_indicator "□ "
 | 
					              tab_fullscreen_indicator "□ "
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -61,7 +61,7 @@
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
      # Extra commands that take more complex forms
 | 
					      # Extra commands that take more complex forms
 | 
				
			||||||
      initContent = ''
 | 
					      initExtra = ''
 | 
				
			||||||
        eval "$(zoxide init --cmd cd zsh)"
 | 
					        eval "$(zoxide init --cmd cd zsh)"
 | 
				
			||||||
        tre() { command tre "$@" -e && source "/tmp/tre_aliases_$USER" 2>/dev/null; }
 | 
					        tre() { command tre "$@" -e && source "/tmp/tre_aliases_$USER" 2>/dev/null; }
 | 
				
			||||||
        zhx() { command zellij action new-tab --layout $HOME/.config/zellij/layouts/helix.kdl; }
 | 
					        zhx() { command zellij action new-tab --layout $HOME/.config/zellij/layouts/helix.kdl; }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										28
									
								
								justfile
									
										
									
									
									
								
							
							
						
						
									
										28
									
								
								justfile
									
										
									
									
									
								
							| 
						 | 
					@ -1,44 +1,22 @@
 | 
				
			||||||
# Build the nixos configuration and switch to it
 | 
					 | 
				
			||||||
build:
 | 
					build:
 | 
				
			||||||
    sudo echo "sudo check..." && sudo nixos-rebuild --fallback --log-format internal-json -v switch --flake .# --show-trace |& nom --json 
 | 
					    sudo nixos-rebuild switch --flake .# --show-trace
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Build the nixos configuration bot don't switch to it until a reboot
 | 
					 | 
				
			||||||
boot:
 | 
					 | 
				
			||||||
    sudo echo "sudo check..." && sudo nixos-rebuild --fallback --log-format internal-json -v boot --flake .# --show-trace |& nom --json 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Run the nix flake in the nix repl
 | 
					 | 
				
			||||||
run:
 | 
					run:
 | 
				
			||||||
    nix-repl -f flake:nixpkgs
 | 
					    nix-repl -f flake:nixpkgs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Check the nix configuration for errors
 | 
					 | 
				
			||||||
test:
 | 
					test:
 | 
				
			||||||
    sudo echo "sudo check..." && sudo nix flake check --show-trace --log-format internal-json -v |& nom --json 
 | 
					    sudo nix flake check --show-trace
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Update the flake lock
 | 
					 | 
				
			||||||
update:
 | 
					update:
 | 
				
			||||||
    nix flake update --log-format internal-json -v |& nom --json && zsh
 | 
					    nix flake update
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Clean your nix store and optimize it
 | 
					 | 
				
			||||||
clean:
 | 
					clean:
 | 
				
			||||||
    sudo nix-collect-garbage
 | 
					    sudo nix-collect-garbage
 | 
				
			||||||
    sudo nix-store --optimise
 | 
					    sudo nix-store --optimise
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Set up the commit hook for testing before doing a commit
 | 
					 | 
				
			||||||
setup:
 | 
					setup:
 | 
				
			||||||
    #!/run/current-system/sw/bin/bash -e
 | 
					 | 
				
			||||||
    if [ -s ./.git/hooks/pre-commit ]; then
 | 
					 | 
				
			||||||
        read -p $"This file already contains the following text:
 | 
					 | 
				
			||||||
    $(<./.git/hooks/pre-commit)
 | 
					 | 
				
			||||||
    Do you want to add the test hook (y/N)? (This will NOT delete data)" choice
 | 
					 | 
				
			||||||
        case "$choice" in
 | 
					 | 
				
			||||||
          y|Y ) echo "just test" >> ./.git/hooks/pre-commit && chmod +x ./.git/hooks/pre-commit && echo "Added test hook to pre-commit.";;
 | 
					 | 
				
			||||||
          * ) echo "No test added to pre-commit.";;
 | 
					 | 
				
			||||||
        esac
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
    echo "just test" >> ./.git/hooks/pre-commit && chmod +x ./.git/hooks/pre-commit
 | 
					    echo "just test" >> ./.git/hooks/pre-commit && chmod +x ./.git/hooks/pre-commit
 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Make sure all the git actions of pulling, adding all files, committing, and pushing are done in one command
 | 
					 | 
				
			||||||
push:
 | 
					push:
 | 
				
			||||||
    git pull
 | 
					    git pull
 | 
				
			||||||
    git add *
 | 
					    git add *
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,15 +28,9 @@
 | 
				
			||||||
      allowUnfree = true;
 | 
					      allowUnfree = true;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  services.udev.extraRules = ''
 | 
					 | 
				
			||||||
    KERNEL=="hidraw*", ATTRS{idVendor}=="057e", MODE="0660", TAG+="uaccess"
 | 
					 | 
				
			||||||
    KERNEL=="hidraw*", KERNELS=="*057e:*", MODE="0660", TAG+="uaccess"
 | 
					 | 
				
			||||||
    KERNEL=="hidraw*", ATTRS{idVendor}=="2dc8", MODE="0660", TAG+="uaccess"
 | 
					 | 
				
			||||||
    KERNEL=="hidraw*", KERNELS=="*2DC8:*", MODE="0660", TAG+="uaccess"
 | 
					 | 
				
			||||||
  '';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  environment.systemPackages =
 | 
					  environment.systemPackages =
 | 
				
			||||||
    with pkgs; [
 | 
					    (with pkgs; [
 | 
				
			||||||
      # Custom tools
 | 
					      # Custom tools
 | 
				
			||||||
      dvd
 | 
					      dvd
 | 
				
			||||||
      dvt
 | 
					      dvt
 | 
				
			||||||
| 
						 | 
					@ -45,11 +39,6 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # System tools
 | 
					      # System tools
 | 
				
			||||||
      aha
 | 
					      aha
 | 
				
			||||||
      ttf-ms-win10
 | 
					 | 
				
			||||||
      wineWowPackages.stable
 | 
					 | 
				
			||||||
      bottles
 | 
					 | 
				
			||||||
      tpm2-abrmd
 | 
					 | 
				
			||||||
      jdk23
 | 
					 | 
				
			||||||
      #bcachefs-tools
 | 
					      #bcachefs-tools
 | 
				
			||||||
      clinfo
 | 
					      clinfo
 | 
				
			||||||
      comma
 | 
					      comma
 | 
				
			||||||
| 
						 | 
					@ -73,13 +62,7 @@
 | 
				
			||||||
      zsh
 | 
					      zsh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # KDE/QT
 | 
					      # KDE/QT
 | 
				
			||||||
      kdePackages.plasma-desktop
 | 
					      krunner-translator
 | 
				
			||||||
      kdePackages.plasma-wayland-protocols
 | 
					 | 
				
			||||||
      kdePackages.libplasma
 | 
					 | 
				
			||||||
      kdePackages.plasma-integration
 | 
					 | 
				
			||||||
      kdePackages.plasma-activities
 | 
					 | 
				
			||||||
      kdePackages.plasma-workspace
 | 
					 | 
				
			||||||
      kdePackages.plasma-vault
 | 
					 | 
				
			||||||
      kdePackages.discover
 | 
					      kdePackages.discover
 | 
				
			||||||
      kdePackages.filelight
 | 
					      kdePackages.filelight
 | 
				
			||||||
      kdePackages.kcalc
 | 
					      kdePackages.kcalc
 | 
				
			||||||
| 
						 | 
					@ -97,23 +80,21 @@
 | 
				
			||||||
      kdePackages.krdc
 | 
					      kdePackages.krdc
 | 
				
			||||||
      kdePackages.krfb
 | 
					      kdePackages.krfb
 | 
				
			||||||
      kdePackages.kate
 | 
					      kdePackages.kate
 | 
				
			||||||
 | 
					      kdePackages.xwaylandvideobridge
 | 
				
			||||||
      libportal-qt5
 | 
					      libportal-qt5
 | 
				
			||||||
      libportal
 | 
					      libportal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # User tools
 | 
					      # User tools
 | 
				
			||||||
      freetube
 | 
					 | 
				
			||||||
      noisetorch
 | 
					      noisetorch
 | 
				
			||||||
      qjackctl
 | 
					      qjackctl
 | 
				
			||||||
      wireplumber
 | 
					      wireplumber
 | 
				
			||||||
      #rustdesk
 | 
					      #rustdesk
 | 
				
			||||||
    ]
 | 
					    ])
 | 
				
			||||||
    # ++ (with pkgs-edge; [
 | 
					    ++ (with pkgs-edge; [
 | 
				
			||||||
 | 
					      freetube
 | 
				
			||||||
      # list of latest packages from nixpkgs master
 | 
					      # list of latest packages from nixpkgs master
 | 
				
			||||||
      # Can be used to install latest version of some packages
 | 
					      # Can be used to install latest version of some packages
 | 
				
			||||||
    # ])
 | 
					    ]);
 | 
				
			||||||
    ;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  fonts.packages = [pkgs.ttf-ms-win10];
 | 
					 | 
				
			||||||
  sops = {
 | 
					  sops = {
 | 
				
			||||||
    secrets."nextcloud-password" = {
 | 
					    secrets."nextcloud-password" = {
 | 
				
			||||||
      mode = "0600";
 | 
					      mode = "0600";
 | 
				
			||||||
| 
						 | 
					@ -125,7 +106,7 @@
 | 
				
			||||||
  programs = {
 | 
					  programs = {
 | 
				
			||||||
    # Allow executing of anything on the system with a , eg: , python executes python from the nix store even if not in $PATH currently
 | 
					    # Allow executing of anything on the system with a , eg: , python executes python from the nix store even if not in $PATH currently
 | 
				
			||||||
    command-not-found.enable = lib.mkForce false;
 | 
					    command-not-found.enable = lib.mkForce false;
 | 
				
			||||||
    # nix-index.enable = true;
 | 
					    nix-index.enable = true;
 | 
				
			||||||
    nix-index-database.comma.enable = true;
 | 
					    nix-index-database.comma.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    direnv = {
 | 
					    direnv = {
 | 
				
			||||||
| 
						 | 
					@ -145,8 +126,6 @@
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  xdg.portal.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Enable networking
 | 
					  # Enable networking
 | 
				
			||||||
  networking.networkmanager.enable = true; # Enables support for 32bit libs that steam uses
 | 
					  networking.networkmanager.enable = true; # Enables support for 32bit libs that steam uses
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -157,10 +136,10 @@
 | 
				
			||||||
    xserver.enable = true;
 | 
					    xserver.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Enable the KDE Plasma Desktop Environment.
 | 
					    # Enable the KDE Plasma Desktop Environment.
 | 
				
			||||||
    # displayManager.sddm = {
 | 
					    displayManager.sddm = {
 | 
				
			||||||
    #   enable = true;
 | 
					      enable = true;
 | 
				
			||||||
    #   wayland.enable = true;
 | 
					      wayland.enable = true;
 | 
				
			||||||
    # };
 | 
					    };
 | 
				
			||||||
    displayManager.defaultSession = "plasma";
 | 
					    displayManager.defaultSession = "plasma";
 | 
				
			||||||
    desktopManager.plasma6.enable = true;
 | 
					    desktopManager.plasma6.enable = true;
 | 
				
			||||||
    desktopManager.plasma6.notoPackage = pkgs.atkinson-hyperlegible;
 | 
					    desktopManager.plasma6.notoPackage = pkgs.atkinson-hyperlegible;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,11 @@
 | 
				
			||||||
{pkgs, ...}: {
 | 
					{
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}: {
 | 
				
			||||||
  programs.firefox = {
 | 
					  programs.firefox = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    package = pkgs.librewolf;
 | 
					    package = pkgs.floorp;
 | 
				
			||||||
    policies = {
 | 
					    policies = {
 | 
				
			||||||
      DisableTelemetry = true;
 | 
					      DisableTelemetry = true;
 | 
				
			||||||
      DisableFirefoxStudies = true;
 | 
					      DisableFirefoxStudies = true;
 | 
				
			||||||
| 
						 | 
					@ -115,10 +119,10 @@
 | 
				
			||||||
          installation_mode = "force_installed";
 | 
					          installation_mode = "force_installed";
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        # Tree Style Tabs
 | 
					        # Tree Style Tabs
 | 
				
			||||||
        # "treestyletab@piro.sakura.ne.jp" = {
 | 
					        "treestyletab@piro.sakura.ne.jp" = {
 | 
				
			||||||
        #   install_url = "https://addons.mozilla.org/firefox/downloads/latest/tree-style-tab/latest.xpi";
 | 
					          install_url = "https://addons.mozilla.org/firefox/downloads/latest/tree-style-tab/latest.xpi";
 | 
				
			||||||
        #   installation_mode = "force_installed";
 | 
					          installation_mode = "force_installed";
 | 
				
			||||||
        # };
 | 
					        };
 | 
				
			||||||
        # Adaptive Tab Bar Colour
 | 
					        # Adaptive Tab Bar Colour
 | 
				
			||||||
        "ATBC@EasonWong" = {
 | 
					        "ATBC@EasonWong" = {
 | 
				
			||||||
          install_url = "https://addons.mozilla.org/firefox/downloads/latest/Adaptive-Tab-Bar-Colour/latest.xpi";
 | 
					          install_url = "https://addons.mozilla.org/firefox/downloads/latest/Adaptive-Tab-Bar-Colour/latest.xpi";
 | 
				
			||||||
| 
						 | 
					@ -156,8 +160,6 @@
 | 
				
			||||||
        "floorp.tabbar.style" = 2;
 | 
					        "floorp.tabbar.style" = 2;
 | 
				
			||||||
        "floorp.browser.user.interface" = 8;
 | 
					        "floorp.browser.user.interface" = 8;
 | 
				
			||||||
        "signon.rememberSignons" = true;
 | 
					        "signon.rememberSignons" = true;
 | 
				
			||||||
        "browser.ml.chat.enabled" = false;
 | 
					 | 
				
			||||||
        "browser.ml.chat.shortcuts" = false;
 | 
					 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
      # TODO: switch to ManagedBookmarks as this will be dropped at some point https://mozilla.github.io/policy-templates/#managedbookmarks
 | 
					      # TODO: switch to ManagedBookmarks as this will be dropped at some point https://mozilla.github.io/policy-templates/#managedbookmarks
 | 
				
			||||||
      # Bookmarks = [
 | 
					      # Bookmarks = [
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,47 +24,8 @@
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  environment.systemPackages = with pkgs; [
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
    gparted
 | 
					 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  programs.virt-manager.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  users.groups.libvirtd.members = ["lillian"];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  virtualisation.libvirtd.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  virtualisation.spiceUSBRedirection.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  services.displayManager.sddm = {
 | 
					 | 
				
			||||||
    enable = true;
 | 
					 | 
				
			||||||
    wayland.enable = true;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  services.displayManager.defaultSession = "plasma";
 | 
					 | 
				
			||||||
  services.desktopManager.plasma6.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  services.samba = {
 | 
					 | 
				
			||||||
    enable = true;
 | 
					 | 
				
			||||||
    openFirewall = true;
 | 
					 | 
				
			||||||
    settings = {
 | 
					 | 
				
			||||||
      global = {
 | 
					 | 
				
			||||||
        "invalid users" = [
 | 
					 | 
				
			||||||
          "root"
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
        "passwd program" = "/run/wrappers/bin/passwd %u";
 | 
					 | 
				
			||||||
        security = "user";
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      public = {
 | 
					 | 
				
			||||||
        browseable = "yes";
 | 
					 | 
				
			||||||
        comment = "Public samba share.";
 | 
					 | 
				
			||||||
        "guest ok" = "yes";
 | 
					 | 
				
			||||||
        path = "/home/lillian/samba";
 | 
					 | 
				
			||||||
        "read only" = "no";
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
  users.groups.samba.members = ["lillian"];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  services.vpn-ip = {
 | 
					  services.vpn-ip = {
 | 
				
			||||||
    ip = "3";
 | 
					    ip = "3";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
| 
						 | 
					@ -85,11 +46,9 @@
 | 
				
			||||||
    loader.systemd-boot.enable = lib.mkForce false;
 | 
					    loader.systemd-boot.enable = lib.mkForce false;
 | 
				
			||||||
    initrd.systemd.enable = true;
 | 
					    initrd.systemd.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    binfmt.emulatedSystems = ["aarch64-linux"];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    lanzaboote = {
 | 
					    lanzaboote = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
      pkiBundle = "/var/lib/sbctl";
 | 
					      pkiBundle = "/etc/secureboot";
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    kernelModules = [
 | 
					    kernelModules = [
 | 
				
			||||||
      "iwlmvm"
 | 
					      "iwlmvm"
 | 
				
			||||||
| 
						 | 
					@ -98,5 +57,5 @@
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
					  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
				
			||||||
  system.stateVersion = "25.11";
 | 
					  system.stateVersion = "25.05";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,17 +31,8 @@
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  environment.systemPackages = with pkgs; [
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
    gparted
 | 
					 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  services.displayManager.sddm = {
 | 
					 | 
				
			||||||
    enable = true;
 | 
					 | 
				
			||||||
    wayland.enable = true;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  services.displayManager.defaultSession = "plasma";
 | 
					 | 
				
			||||||
  services.desktopManager.plasma6.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  services.vpn-ip = {
 | 
					  services.vpn-ip = {
 | 
				
			||||||
    ip = "2";
 | 
					    ip = "2";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
| 
						 | 
					@ -49,6 +40,16 @@
 | 
				
			||||||
  networking.hostName = "GLaDOS";
 | 
					  networking.hostName = "GLaDOS";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  services.xserver.videoDrivers = ["amdgpu"];
 | 
					  services.xserver.videoDrivers = ["amdgpu"];
 | 
				
			||||||
 | 
					  hardware = {
 | 
				
			||||||
 | 
					    # Add vulkan support to GPU
 | 
				
			||||||
 | 
					    graphics.extraPackages = with pkgs; [
 | 
				
			||||||
 | 
					      amdvlk
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					    # For 32 bit applications
 | 
				
			||||||
 | 
					    graphics.extraPackages32 = with pkgs; [
 | 
				
			||||||
 | 
					      driversi686Linux.amdvlk
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
  programs = {
 | 
					  programs = {
 | 
				
			||||||
    # gamemode.enable = false;
 | 
					    # gamemode.enable = false;
 | 
				
			||||||
    # gamemode.settings = {
 | 
					    # gamemode.settings = {
 | 
				
			||||||
| 
						 | 
					@ -71,28 +72,31 @@
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  jovian = {
 | 
					  jovian = {
 | 
				
			||||||
    steamos = {
 | 
					    steam = {
 | 
				
			||||||
      enableAutoMountUdevRules = true;
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      autoStart = false;
 | 
				
			||||||
 | 
					      user = "lillian";
 | 
				
			||||||
 | 
					      desktopSession = "plasma";
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    decky-loader = {
 | 
					    decky-loader = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
      package = pkgs.decky-loader-prerelease;
 | 
					      package = pkgs.decky-loader-prerelease;
 | 
				
			||||||
      extraPackages = [pkgs.python3];
 | 
					      extraPackages = [pkgs.python3];
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					    hardware.has.amd.gpu = true;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  boot = {
 | 
					  boot = {
 | 
				
			||||||
    loader.systemd-boot.enable = false;
 | 
					    loader.systemd-boot.enable = false;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    binfmt.emulatedSystems = ["aarch64-linux"];
 | 
					  boot.lanzaboote = {
 | 
				
			||||||
 | 
					 | 
				
			||||||
    lanzaboote = {
 | 
					 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    pkiBundle = "/var/lib/sbctl";
 | 
					    pkiBundle = "/var/lib/sbctl";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  users.users.lillian.extraGroups = ["gamemode"];
 | 
					  users.users.lillian.extraGroups = ["gamemode"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
					  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
				
			||||||
  system.stateVersion = "25.11";
 | 
					  system.stateVersion = "25.05";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,20 +10,20 @@
 | 
				
			||||||
    # outputs.homeManagerModules.example
 | 
					    # outputs.homeManagerModules.example
 | 
				
			||||||
    # outputs.nixosModules.contabo.wan
 | 
					    # outputs.nixosModules.contabo.wan
 | 
				
			||||||
    inputs.home-manager.nixosModules.home-manager
 | 
					    inputs.home-manager.nixosModules.home-manager
 | 
				
			||||||
    outputs.nixosModules.vpn-ip
 | 
					 | 
				
			||||||
    # Or modules exported from other flakes (such as nix-colors):
 | 
					    # Or modules exported from other flakes (such as nix-colors):
 | 
				
			||||||
    # inputs.nix-colors.homeManagerModules.defaults
 | 
					    # inputs.nix-colors.homeManagerModules.defaults
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Import shared settings
 | 
					    # Import shared settings
 | 
				
			||||||
 | 
					    ../../shared
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # programs.command-not-found.enable = lib.mkForce false;
 | 
					  programs.command-not-found.enable = lib.mkForce false;
 | 
				
			||||||
  # programs.nix-index.enable = true;
 | 
					  programs.nix-index.enable = true;
 | 
				
			||||||
  # programs.nix-index-database.comma.enable = true;
 | 
					  programs.nix-index-database.comma.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # boot.tmp.cleanOnBoot = true;
 | 
					  boot.tmp.cleanOnBoot = true;
 | 
				
			||||||
  # zramSwap.enable = false;
 | 
					  zramSwap.enable = false;
 | 
				
			||||||
  # networking.domain = "";
 | 
					  networking.domain = "";
 | 
				
			||||||
  services.openssh = {
 | 
					  services.openssh = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    # require public key authentication for better security
 | 
					    # require public key authentication for better security
 | 
				
			||||||
| 
						 | 
					@ -45,9 +45,7 @@
 | 
				
			||||||
  #Set up sops config, and configure where the keyfile is, then set the mode for the unencrypted keys
 | 
					  #Set up sops config, and configure where the keyfile is, then set the mode for the unencrypted keys
 | 
				
			||||||
  sops.defaultSopsFile = ./secrets/sops.yaml;
 | 
					  sops.defaultSopsFile = ./secrets/sops.yaml;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  services.vpn-ip.enable = false;
 | 
					  services.desktopManager.plasma6.enable = true;
 | 
				
			||||||
 | 
					 | 
				
			||||||
  # services.desktopManager.plasma6.enable = true;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  environment.systemPackages = with pkgs; [
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
    # Custom tools
 | 
					    # Custom tools
 | 
				
			||||||
| 
						 | 
					@ -67,9 +65,11 @@
 | 
				
			||||||
    sbctl
 | 
					    sbctl
 | 
				
			||||||
    tpm2-tools
 | 
					    tpm2-tools
 | 
				
			||||||
    tpm2-tss
 | 
					    tpm2-tss
 | 
				
			||||||
 | 
					    waydroid
 | 
				
			||||||
    zsh
 | 
					    zsh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # KDE/QT
 | 
					    # KDE/QT
 | 
				
			||||||
 | 
					    krunner-translator
 | 
				
			||||||
    kdePackages.discover
 | 
					    kdePackages.discover
 | 
				
			||||||
    kdePackages.kcalc
 | 
					    kdePackages.kcalc
 | 
				
			||||||
    kdePackages.kdepim-addons
 | 
					    kdePackages.kdepim-addons
 | 
				
			||||||
| 
						 | 
					@ -81,14 +81,13 @@
 | 
				
			||||||
    kdePackages.plasma-pa
 | 
					    kdePackages.plasma-pa
 | 
				
			||||||
    kdePackages.sddm-kcm
 | 
					    kdePackages.sddm-kcm
 | 
				
			||||||
    kdePackages.dolphin-plugins
 | 
					    kdePackages.dolphin-plugins
 | 
				
			||||||
 | 
					    libportal-qt5
 | 
				
			||||||
    libportal
 | 
					    libportal
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Enable networking
 | 
					  # Enable networking
 | 
				
			||||||
  networking.networkmanager.enable = true;
 | 
					  networking.networkmanager.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  networking.hostName = "iso";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Contabo ipv6 nameservers: "2a02:c207::1:53" "2a02:c207::2:53"
 | 
					  # Contabo ipv6 nameservers: "2a02:c207::1:53" "2a02:c207::2:53"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  networking.firewall.enable = true;
 | 
					  networking.firewall.enable = true;
 | 
				
			||||||
| 
						 | 
					@ -107,24 +106,24 @@
 | 
				
			||||||
  # Enable bluetooth hardware
 | 
					  # Enable bluetooth hardware
 | 
				
			||||||
  hardware.bluetooth.enable = true;
 | 
					  hardware.bluetooth.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # security.tpm2.enable = true;
 | 
					  security.tpm2.enable = true;
 | 
				
			||||||
  # security.tpm2.pkcs11.enable = true; # expose /run/current-system/sw/lib/libtpm2_pkcs11.so
 | 
					  security.tpm2.pkcs11.enable = true; # expose /run/current-system/sw/lib/libtpm2_pkcs11.so
 | 
				
			||||||
  # security.tpm2.tctiEnvironment.enable = true; # TPM2TOOLS_TCTI and TPM2_PKCS11_TCTI env variables
 | 
					  security.tpm2.tctiEnvironment.enable = true; # TPM2TOOLS_TCTI and TPM2_PKCS11_TCTI env variables
 | 
				
			||||||
  # users.users.lillian.extraGroups = ["tss"]; # tss group has access to TPM devices
 | 
					  users.users.lillian.extraGroups = ["tss"]; # tss group has access to TPM devices
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Set your time zone.
 | 
					  # Set your time zone.
 | 
				
			||||||
  time.timeZone = "Europe/Amsterdam";
 | 
					  time.timeZone = "Europe/Amsterdam";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # programs.git = {
 | 
					  programs.git = {
 | 
				
			||||||
  #   enable = true;
 | 
					    enable = true;
 | 
				
			||||||
  # };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # programs.direnv = {
 | 
					  programs.direnv = {
 | 
				
			||||||
  #   enable = true;
 | 
					    enable = true;
 | 
				
			||||||
  # };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # # Enable completion of system packages by zsh
 | 
					  # Enable completion of system packages by zsh
 | 
				
			||||||
  # environment.pathsToLink = ["/share/zsh"];
 | 
					  environment.pathsToLink = ["/share/zsh"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # kde power settings do not turn off screen
 | 
					  # kde power settings do not turn off screen
 | 
				
			||||||
  systemd = {
 | 
					  systemd = {
 | 
				
			||||||
| 
						 | 
					@ -137,17 +136,17 @@
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # home-manager = {
 | 
					  home-manager = {
 | 
				
			||||||
  #   extraSpecialArgs = {inherit inputs outputs;};
 | 
					    extraSpecialArgs = {inherit inputs outputs;};
 | 
				
			||||||
  #   users = {
 | 
					    users = {
 | 
				
			||||||
  #     # Import your home-manager configuration
 | 
					      # Import your home-manager configuration
 | 
				
			||||||
  #     lillian = import ../../../home-manager/hosts/iso;
 | 
					      lillian = import ../../../home-manager/hosts/iso;
 | 
				
			||||||
  #   };
 | 
					    };
 | 
				
			||||||
  # };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # boot.kernelPackages = lib.mkForce pkgs.linuxPackages_latest;
 | 
					  boot.kernelPackages = lib.mkForce pkgs.linuxPackages_latest;
 | 
				
			||||||
  # boot.supportedFilesystems = lib.mkForce ["bcachefs" "btrfs" "cifs" "f2fs" "jfs" "ntfs" "reiserfs" "vfat" "xfs"];
 | 
					  boot.supportedFilesystems = lib.mkForce ["bcachefs" "btrfs" "cifs" "f2fs" "jfs" "ntfs" "reiserfs" "vfat" "xfs"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
					  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
				
			||||||
  system.stateVersion = "25.11";
 | 
					  system.stateVersion = "24.11";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,9 @@
 | 
				
			||||||
lillian-password: ENC[AES256_GCM,data:eQzZwGxK9Lw2gc8HDNw57odxPzTH4sa/2O97h3VAghRwLClmCYKT91kxj2F3kQ4iEctBl0GxdS4WoL3H9eE4/CAPffXdTmkdYg==,iv:2ezB4DNHFv5ceJ2gtATV12Azm3vFFDLX1qSSy+cKuMY=,tag:zxb5agUCDpi92bYV7+DmoA==,type:str]
 | 
					lillian-password: ENC[AES256_GCM,data:eQzZwGxK9Lw2gc8HDNw57odxPzTH4sa/2O97h3VAghRwLClmCYKT91kxj2F3kQ4iEctBl0GxdS4WoL3H9eE4/CAPffXdTmkdYg==,iv:2ezB4DNHFv5ceJ2gtATV12Azm3vFFDLX1qSSy+cKuMY=,tag:zxb5agUCDpi92bYV7+DmoA==,type:str]
 | 
				
			||||||
ssh-private-key: ENC[AES256_GCM,data:YQ+9aKpBL9XYl0IBxpPttUli6/E25alUhO36dZwPPSIBLI1ehyczocQMxNRYNtB2xKYx4wPaYIndLBhj9VdTUgaOWUd2C6aU6YgXgFAsjgEwqVDZWRp7TrTHojtrS5HnJgfopx6EqPf/uljD9yQsOkubDDUbpYkpWX/3vixm9LJ1eRXxTxXW8D3O5OM2Z1NsqA7meVa1xhvWJokqS4sD5ntp1HT78Xmu62EweHQVGaznUvWZupYh0uCQd0tr6GVTZLHdyCdaFUGHRbRddBcljpBIRWaWkhIrkjejvptUZ4Ht/UN5XM5z+zfU3DxsDOxeJ7m83om9I3WdZSdq1aDXe+VFEfMrx/0QTk2LtAmOvujcN6wO7a77SD4Rpuvq8KH2CeKrwMLlFf2BeGIcGhvAhRYUVxtypM38DEdbf/7xIcw0vQP2zNZN4QWdukUInDndnAxMfbIXKpYI5OPRaZMTVui41hkS86LBfbd5RhTjyzrtIpVSq9XkKRX7d5i8Gcjb4ORpQvrNNYMo+TXCiLNTg3/q0My/jEhfjfTF,iv:EpKC9judTZ1+0Y2LC1OK2YzGH/orRpZNtE7O+ZZyU1E=,tag:S6ju/FkwIBbBA8YU3dRo1A==,type:str]
 | 
					 | 
				
			||||||
nextcloud-password: ENC[AES256_GCM,data:5u8j1wau5FewTe+t3YZ365Acfcrt09XDgCUNpDbuVKaNZIEW3gdR60XACQeAvsyQeznynILJnz7/txV2,iv:l1xYhUkQGdWYNNy1lG9xB5SgL9cn2FdzAs19iVCohlA=,tag:rT0flG+v9wd8jSUm8DrCjg==,type:str]
 | 
					 | 
				
			||||||
wg-private-key: ENC[AES256_GCM,data:3JpyscuzK4LG1lfM3oyQNBHy7BQ2WeTaSyaZoaNfS4U7KkpEaCp5EVLBYiY=,iv:odDG8xp+d+O4FuECfeCJn/z2ka4KSzSBvgBCmcMZ0S0=,tag:iPwnqgtap+i44Mru/S7TyA==,type:str]
 | 
					 | 
				
			||||||
sops:
 | 
					sops:
 | 
				
			||||||
 | 
					    kms: []
 | 
				
			||||||
 | 
					    gcp_kms: []
 | 
				
			||||||
 | 
					    azure_kv: []
 | 
				
			||||||
 | 
					    hc_vault: []
 | 
				
			||||||
    age:
 | 
					    age:
 | 
				
			||||||
        - recipient: age12e00qvf4shtmsfq3ujamyaa72pjvad2qhrxkvpl9hryrjvgxev4sjhmkxz
 | 
					        - recipient: age12e00qvf4shtmsfq3ujamyaa72pjvad2qhrxkvpl9hryrjvgxev4sjhmkxz
 | 
				
			||||||
          enc: |
 | 
					          enc: |
 | 
				
			||||||
| 
						 | 
					@ -13,7 +14,8 @@ sops:
 | 
				
			||||||
            dXlaN3dWOUl4Mys2V0x3Z3F6UVU4MVUKEJYpX8XhSNcM+7aUuxnIwrokY0/29Cnh
 | 
					            dXlaN3dWOUl4Mys2V0x3Z3F6UVU4MVUKEJYpX8XhSNcM+7aUuxnIwrokY0/29Cnh
 | 
				
			||||||
            yz0HAZkaj8FwvnPnafo5jmwVyi6WXECvX5E0NZfjKH4AF5vTu6Wukg==
 | 
					            yz0HAZkaj8FwvnPnafo5jmwVyi6WXECvX5E0NZfjKH4AF5vTu6Wukg==
 | 
				
			||||||
            -----END AGE ENCRYPTED FILE-----
 | 
					            -----END AGE ENCRYPTED FILE-----
 | 
				
			||||||
    lastmodified: "2025-08-14T18:00:16Z"
 | 
					    lastmodified: "2024-03-20T18:17:48Z"
 | 
				
			||||||
    mac: ENC[AES256_GCM,data:NnX0hMrfeKJucgqgVUIUS0WOHerkDtKe3P+4vvWRCMX3eXg4Tsju8pZySZP7RSZX7+2W3OUHMOUuAum0YrVasTXuhm6jPvlbqvRnVXaVzCNheIUvTCF7LFeJEOQYKS5m8AiVKFRrxz+dGn90DSeijjajSePBjo8AnKyAOQEt1S8=,iv:1iJiqJU0vdDiWnJAYDlbOBBa9lBOODjjdlsRH54aTGI=,tag:JZtgVeLvFN6vcCZkRnuNcQ==,type:str]
 | 
					    mac: ENC[AES256_GCM,data:3UHIoYPHC6n56CHguOVuoFd9VwCjGiD9VCYy2d5W+4XQEZpjnONX8fhwwWRm42COymz89tmqDmpDp88BnSU8uE14IaCIUoxfCaRiZtjAiHjouua2jr50aUV56pwyan8ZiiOjP8oP1VY/tsv1w0jWI9TjSTHvCdNLR8XEcf6bCrk=,iv:/lBJdkQgwZyiztQ9vSoHgY+WxXJKHFI93dxtOSunHNo=,tag:lLwrSdzoN9CzmyIdLOe5ig==,type:str]
 | 
				
			||||||
 | 
					    pgp: []
 | 
				
			||||||
    unencrypted_suffix: _unencrypted
 | 
					    unencrypted_suffix: _unencrypted
 | 
				
			||||||
    version: 3.10.2
 | 
					    version: 3.8.1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,6 @@
 | 
				
			||||||
  outputs,
 | 
					  outputs,
 | 
				
			||||||
  lib,
 | 
					  lib,
 | 
				
			||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: {
 | 
					}: {
 | 
				
			||||||
  imports = [
 | 
					  imports = [
 | 
				
			||||||
| 
						 | 
					@ -56,6 +55,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  environment.systemPackages = with pkgs; [
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
    fzf
 | 
					    fzf
 | 
				
			||||||
 | 
					    matrix-conduit
 | 
				
			||||||
    docker
 | 
					    docker
 | 
				
			||||||
    docker-compose
 | 
					    docker-compose
 | 
				
			||||||
    gitea
 | 
					    gitea
 | 
				
			||||||
| 
						 | 
					@ -68,53 +68,29 @@
 | 
				
			||||||
    #jellyfin
 | 
					    #jellyfin
 | 
				
			||||||
    #jellyfin-web
 | 
					    #jellyfin-web
 | 
				
			||||||
    #jellyfin-ffmpeg
 | 
					    #jellyfin-ffmpeg
 | 
				
			||||||
    nextcloud-spreed-signaling
 | 
					 | 
				
			||||||
    nats-server
 | 
					 | 
				
			||||||
    nginx
 | 
					    nginx
 | 
				
			||||||
    onlyoffice-documentserver
 | 
					    onlyoffice-documentserver
 | 
				
			||||||
    openssl
 | 
					    openssl
 | 
				
			||||||
 | 
					    phanpy
 | 
				
			||||||
    postgresql_16
 | 
					    postgresql_16
 | 
				
			||||||
    python310
 | 
					    python310
 | 
				
			||||||
    # python310Packages.nbconvert
 | 
					    # python310Packages.nbconvert
 | 
				
			||||||
    janus-gateway
 | 
					 | 
				
			||||||
    jupyter
 | 
					    jupyter
 | 
				
			||||||
    # rabbitmq-server
 | 
					    rabbitmq-server
 | 
				
			||||||
    roundcube
 | 
					    roundcube
 | 
				
			||||||
    roundcubePlugins.contextmenu
 | 
					    roundcubePlugins.contextmenu
 | 
				
			||||||
    roundcubePlugins.carddav
 | 
					    roundcubePlugins.carddav
 | 
				
			||||||
    roundcubePlugins.custom_from
 | 
					    roundcubePlugins.custom_from
 | 
				
			||||||
    roundcubePlugins.persistent_login
 | 
					    roundcubePlugins.persistent_login
 | 
				
			||||||
    roundcubePlugins.thunderbird_labels
 | 
					    roundcubePlugins.thunderbird_labels
 | 
				
			||||||
 | 
					    youtube-dl
 | 
				
			||||||
    sqlite
 | 
					    sqlite
 | 
				
			||||||
 | 
					    rocksdb
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
  services.vpn-ip = {
 | 
					  services.vpn-ip = {
 | 
				
			||||||
    enable = false;
 | 
					    enable = false;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  systemd = {
 | 
					 | 
				
			||||||
    services."upgrade-nextcloud" = {
 | 
					 | 
				
			||||||
      path = with pkgs; [nextcloud31];
 | 
					 | 
				
			||||||
      enable = true;
 | 
					 | 
				
			||||||
      unitConfig = {
 | 
					 | 
				
			||||||
        after = "nextcloud-setup.service";
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      serviceConfig = {
 | 
					 | 
				
			||||||
        Type = "oneshot";
 | 
					 | 
				
			||||||
        ExecStart = "${config.services.nextcloud.occ}/bin/nextcloud-occ upgrade";
 | 
					 | 
				
			||||||
        RemainAfterExit = "yes";
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    timers."upgrade-nextcloud" = {
 | 
					 | 
				
			||||||
      wantedBy = ["timers.target"];
 | 
					 | 
				
			||||||
      partOf = ["upgrade-nextcloud.service"];
 | 
					 | 
				
			||||||
      timerConfig = {
 | 
					 | 
				
			||||||
        OnCalendar = "daily";
 | 
					 | 
				
			||||||
        Unit = "nextcloud-setup.service";
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  networking = {
 | 
					  networking = {
 | 
				
			||||||
    domain = "";
 | 
					    domain = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -217,5 +193,5 @@
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
					  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
				
			||||||
  system.stateVersion = "25.11";
 | 
					  system.stateVersion = "25.05";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,8 +8,7 @@ mailpassunhash: ENC[AES256_GCM,data:q/P3nrNLy3hCISDmalw94nzWIFhoCdCTyflj27D2Ltr8
 | 
				
			||||||
rpcSecret: ENC[AES256_GCM,data:gOuQSY2RI6rnSnG1,iv:xz1ueq4/UOKYBs5r9Tk4jL0+GyX8uo8I8ZymVgIMKLI=,tag:Fr8rWIttLz7X8Pri6FBJBQ==,type:str]
 | 
					rpcSecret: ENC[AES256_GCM,data:gOuQSY2RI6rnSnG1,iv:xz1ueq4/UOKYBs5r9Tk4jL0+GyX8uo8I8ZymVgIMKLI=,tag:Fr8rWIttLz7X8Pri6FBJBQ==,type:str]
 | 
				
			||||||
wg-private-key: ENC[AES256_GCM,data:mq8QWoQ4tE4eYaFbwCzQnRREUFI2qrnmDnwurKMu6qdKkDylqc65E7jgGDI=,iv:r5RdcmfW4OaKlbbzUCPahONvpLcfZ7X7KcEEYFIYFDk=,tag:e93C4lByJV75JMHLJ02PfA==,type:str]
 | 
					wg-private-key: ENC[AES256_GCM,data:mq8QWoQ4tE4eYaFbwCzQnRREUFI2qrnmDnwurKMu6qdKkDylqc65E7jgGDI=,iv:r5RdcmfW4OaKlbbzUCPahONvpLcfZ7X7KcEEYFIYFDk=,tag:e93C4lByJV75JMHLJ02PfA==,type:str]
 | 
				
			||||||
lillian-password: ENC[AES256_GCM,data:tc+Romv2fL+tdqLLmbwqaF4IHrNZ0VEpnECmW/66FW7IUpjHMyS7YP+pmmvDCzM9afIXMxyPFHGNRwiCmxqstiiNeSeLdo6rDw==,iv:sGeu9aNTgdpThv+0Z/nZKIrat1xNgM0t/KTGPaFbsdI=,tag:kZBHF4X0KO9znog61NwU+Q==,type:str]
 | 
					lillian-password: ENC[AES256_GCM,data:tc+Romv2fL+tdqLLmbwqaF4IHrNZ0VEpnECmW/66FW7IUpjHMyS7YP+pmmvDCzM9afIXMxyPFHGNRwiCmxqstiiNeSeLdo6rDw==,iv:sGeu9aNTgdpThv+0Z/nZKIrat1xNgM0t/KTGPaFbsdI=,tag:kZBHF4X0KO9znog61NwU+Q==,type:str]
 | 
				
			||||||
coturn-auth-secret: ENC[AES256_GCM,data:1K7WX5FGhF7+CRZs4SEVKogsGv/93IJVvLeMe6/d1dg3g5/6fQkRCVl1KicMUOsqUxMweUn5hUXSO1h/ruWvPA==,iv:0U/JoeVin2zTkyk60x2boUQRzGW+9swlbxP1ENCbAFQ=,tag:ll8WCgMNtun5Va0VpC81Tw==,type:str]
 | 
					coturn-auth-secret: ENC[AES256_GCM,data:RYxyATuYIcrGd8h8Gc4CP9ZQ80ekuuwHehnOPYisHejmycgT8a2mWpk+5r3HkFmBNcLDeNlfnhIif5oLHGuHyw==,iv:M2GdNDxP4xpP35FJPTgljbcKpOm6DmEEnIYRItAxDVI=,tag:IiiNXeTi6Yja5PrnKRkhdA==,type:str]
 | 
				
			||||||
hpb-secret: ENC[AES256_GCM,data:I/64j3nA0BWW5YY4STMFzxnSKQ+TmiHvweIIGOMJvV4=,iv:zezsPPnKlVBVlrJeG4pGbtuiz1GEWLmQaZl1isNa+pk=,tag:YbTWLAjIIMDn5Jo43U0QtA==,type:str]
 | 
					 | 
				
			||||||
grafana-telegraf-key: ENC[AES256_GCM,data:agpUzG1/n2NAKDt45IgelmDf0CUlC82fmD4f7JdcszNuUg7uCNA7XeaJ6PZtHQ==,iv:keo3i+qSbtXkA5fyCr2S5z9nJS9bXUn5WDiPgWocPU8=,tag:p/nDff10PRhi9pOszp1PnA==,type:str]
 | 
					grafana-telegraf-key: ENC[AES256_GCM,data:agpUzG1/n2NAKDt45IgelmDf0CUlC82fmD4f7JdcszNuUg7uCNA7XeaJ6PZtHQ==,iv:keo3i+qSbtXkA5fyCr2S5z9nJS9bXUn5WDiPgWocPU8=,tag:p/nDff10PRhi9pOszp1PnA==,type:str]
 | 
				
			||||||
sync-secrets: ENC[AES256_GCM,data:AwCgqfSXmYVGnCV5PJ5Ql44IiutTS76F1H7Ow7gB4mQQ8PtiAsmArzpAXd7LzsXedm55X04U+GvkcbM9cwPcF+psyb3Zi8EnI/mjnI9MgFyySSEcosJZVAtCpXGIMyYgRXtF5OBh5CzupAG059d1TDAqrSpLXMuSDdypTaOMHxnlq5q1swfpzhhY3PVgUKVFXdjZLX8aF3JTE9ceVxFsB+traLzOQsl+QKty0x0mpuqR97zkMCchX7bTwgUgbl7phzTvmwV8Qw==,iv:gkZs5NB9+CLfz4kfV4ha2llZQPP81uuXRKqUlASgpiA=,tag:DXkiG0ZFHLHlVhwLwtv/XQ==,type:str]
 | 
					sync-secrets: ENC[AES256_GCM,data:AwCgqfSXmYVGnCV5PJ5Ql44IiutTS76F1H7Ow7gB4mQQ8PtiAsmArzpAXd7LzsXedm55X04U+GvkcbM9cwPcF+psyb3Zi8EnI/mjnI9MgFyySSEcosJZVAtCpXGIMyYgRXtF5OBh5CzupAG059d1TDAqrSpLXMuSDdypTaOMHxnlq5q1swfpzhhY3PVgUKVFXdjZLX8aF3JTE9ceVxFsB+traLzOQsl+QKty0x0mpuqR97zkMCchX7bTwgUgbl7phzTvmwV8Qw==,iv:gkZs5NB9+CLfz4kfV4ha2llZQPP81uuXRKqUlASgpiA=,tag:DXkiG0ZFHLHlVhwLwtv/XQ==,type:str]
 | 
				
			||||||
writefreely: ENC[AES256_GCM,data:QOj5h/rHCxmgpPNhu3IS4eyruhQokHTJxW6yQM9YDgQ=,iv:qAd+/rAAanzL9FTIX22M+2kwI0WI2d3i86cJrn8MFBo=,tag:3zvpqnovDEoJdvK/qcFDuQ==,type:str]
 | 
					writefreely: ENC[AES256_GCM,data:QOj5h/rHCxmgpPNhu3IS4eyruhQokHTJxW6yQM9YDgQ=,iv:qAd+/rAAanzL9FTIX22M+2kwI0WI2d3i86cJrn8MFBo=,tag:3zvpqnovDEoJdvK/qcFDuQ==,type:str]
 | 
				
			||||||
| 
						 | 
					@ -17,6 +16,10 @@ writefreelymysql: ENC[AES256_GCM,data:1JZwIX04O3DBAo7JvEkeNrFcSdcmk/u4WUf/kkbr2J
 | 
				
			||||||
ssh-private-key: ENC[AES256_GCM,data:DK/ggskAyhvotRkf36oZBoPw3hGvVlXneqaJZRPwX2a3YVMy4zgDE3iN65UeR6mfkp9J3OmLejOHeWFB/bRCHY3oTW6GUuZljTe2rI1/x/d2s4zX5UPPEWcy3cXH25d72DzElQBEMDKuZyDe0OZ0/NkR//vEeXgoA2Nr/NKHlTWrq/t26DMD2Vt+kQ+S9b0hh4tgh3OP1lwRu9/mTJOmInd/86gKB9+aD9V0oFvNbMEmgbwIah+ZjQBHB7GEIwjUc/lLmc+3RSn9J0rICIhnhL7NTzHUDHkYd93Tm0L9UHIyi9Oco2sK8tuV5mTDM1OK8CbDg/5FICTQ0H4sstCrDNZd2wE4E1kaZuwYOyxpzQpWJY8jOxxw5oIE0IccvvptM/9vp+0f1F2RIDrkIdHSLpFbGZGvXNVAWlXyv+0qOYS7BGzD0KAh9f74GcAvULq36vdzBahb5e+CqT3JXESne8qhkpsP0G9Z1I1Fy0xpADx/9cTnAm5RmXTw/KBPmBA5IZYZBRbR/C+N7Xyxr7u9RcwFJdIbSpAeT/ew,iv:pHT7DtX1ab7boPboXRaSg9w/4sMgNraEswtEf2tBPkw=,tag:Fbw2/Evf4ZsLFMBPflf9CA==,type:str]
 | 
					ssh-private-key: ENC[AES256_GCM,data:DK/ggskAyhvotRkf36oZBoPw3hGvVlXneqaJZRPwX2a3YVMy4zgDE3iN65UeR6mfkp9J3OmLejOHeWFB/bRCHY3oTW6GUuZljTe2rI1/x/d2s4zX5UPPEWcy3cXH25d72DzElQBEMDKuZyDe0OZ0/NkR//vEeXgoA2Nr/NKHlTWrq/t26DMD2Vt+kQ+S9b0hh4tgh3OP1lwRu9/mTJOmInd/86gKB9+aD9V0oFvNbMEmgbwIah+ZjQBHB7GEIwjUc/lLmc+3RSn9J0rICIhnhL7NTzHUDHkYd93Tm0L9UHIyi9Oco2sK8tuV5mTDM1OK8CbDg/5FICTQ0H4sstCrDNZd2wE4E1kaZuwYOyxpzQpWJY8jOxxw5oIE0IccvvptM/9vp+0f1F2RIDrkIdHSLpFbGZGvXNVAWlXyv+0qOYS7BGzD0KAh9f74GcAvULq36vdzBahb5e+CqT3JXESne8qhkpsP0G9Z1I1Fy0xpADx/9cTnAm5RmXTw/KBPmBA5IZYZBRbR/C+N7Xyxr7u9RcwFJdIbSpAeT/ew,iv:pHT7DtX1ab7boPboXRaSg9w/4sMgNraEswtEf2tBPkw=,tag:Fbw2/Evf4ZsLFMBPflf9CA==,type:str]
 | 
				
			||||||
mollysocket-vapid-key: ENC[AES256_GCM,data:8N2hxY6WN6mCcjMIFsw/Vt1RoGvUbYxkVPOOn4WRjXZtEEkkVCIaNevozF4xCnBUEWIukNg8lZk8ake/pHAq,iv:+NHm3hSotcRPRjrwEe9xKnEeYbnUZqJEB1sd5B+tWIE=,tag:Pd2pnJqj771XqdqBREGzJQ==,type:str]
 | 
					mollysocket-vapid-key: ENC[AES256_GCM,data:8N2hxY6WN6mCcjMIFsw/Vt1RoGvUbYxkVPOOn4WRjXZtEEkkVCIaNevozF4xCnBUEWIukNg8lZk8ake/pHAq,iv:+NHm3hSotcRPRjrwEe9xKnEeYbnUZqJEB1sd5B+tWIE=,tag:Pd2pnJqj771XqdqBREGzJQ==,type:str]
 | 
				
			||||||
sops:
 | 
					sops:
 | 
				
			||||||
 | 
					    kms: []
 | 
				
			||||||
 | 
					    gcp_kms: []
 | 
				
			||||||
 | 
					    azure_kv: []
 | 
				
			||||||
 | 
					    hc_vault: []
 | 
				
			||||||
    age:
 | 
					    age:
 | 
				
			||||||
        - recipient: age12e00qvf4shtmsfq3ujamyaa72pjvad2qhrxkvpl9hryrjvgxev4sjhmkxz
 | 
					        - recipient: age12e00qvf4shtmsfq3ujamyaa72pjvad2qhrxkvpl9hryrjvgxev4sjhmkxz
 | 
				
			||||||
          enc: |
 | 
					          enc: |
 | 
				
			||||||
| 
						 | 
					@ -27,7 +30,8 @@ sops:
 | 
				
			||||||
            KzNBMCtUaS9sU21Xc1JUd1FSR29tSkEKyqaDM/WUWjK2l+ahE6sIFYsQ6Qtkf7yz
 | 
					            KzNBMCtUaS9sU21Xc1JUd1FSR29tSkEKyqaDM/WUWjK2l+ahE6sIFYsQ6Qtkf7yz
 | 
				
			||||||
            NWFTzsDZBmm9kpSIjchf+PuBuoRHeEKbEH8jnMlYB3J8boEnUnXMlw==
 | 
					            NWFTzsDZBmm9kpSIjchf+PuBuoRHeEKbEH8jnMlYB3J8boEnUnXMlw==
 | 
				
			||||||
            -----END AGE ENCRYPTED FILE-----
 | 
					            -----END AGE ENCRYPTED FILE-----
 | 
				
			||||||
    lastmodified: "2025-08-04T13:04:56Z"
 | 
					    lastmodified: "2025-01-14T13:43:37Z"
 | 
				
			||||||
    mac: ENC[AES256_GCM,data:ppQgyWY/4Kr8/Ag5x7wBv1RZAxky6Itf4sBBRIzJj8njzSDOPm0blcDHjIGesu9PwmjnnJihZivmWXj43pAjxf6p4FmtlBAIqLUjRIV7fR16VINo7dPx4Pv6+sw1uwFvLliD/FfKwYo2S+Lx0eQnOzW1p7RROpbQJQ8k7AUngKE=,iv:Pk8sPdAMzITgeeaoZHJc77ywp47DuB5A1Lx5pjtHXM0=,tag:JkMDnjYMPTFkyOiikA7ejA==,type:str]
 | 
					    mac: ENC[AES256_GCM,data:GK+WcmMgDbZ5xeqMK06CuquR6/ptd2oXzVJ9V74+n6lBx4XsyPu17puKGKgsGsIHeRYdbwtQh8tm42/XJ0tK8qJz1yGvfQxPasd+ibRBHatWWHzQ/czR3NIRWYqGF9/mxi2uHrftaKtku1/huxjzjb69blopMzn2LEH0vCzXCkc=,iv:K6Fbhmz9FAzLd8KcjDSriVre8MhCYrGTVXh+u6oGLaQ=,tag:4Ylrs+Mm54vAKFQyyo8Njg==,type:str]
 | 
				
			||||||
 | 
					    pgp: []
 | 
				
			||||||
    unencrypted_suffix: _unencrypted
 | 
					    unencrypted_suffix: _unencrypted
 | 
				
			||||||
    version: 3.10.2
 | 
					    version: 3.9.2
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,7 +17,7 @@
 | 
				
			||||||
    outputs.nixosModules.vpn-ip
 | 
					    outputs.nixosModules.vpn-ip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Import the shared settings
 | 
					    # Import the shared settings
 | 
				
			||||||
    ../../desktop
 | 
					    ../../desktop/package-configs/firefox
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # You can also split up your configuration and import pieces of it here:
 | 
					    # You can also split up your configuration and import pieces of it here:
 | 
				
			||||||
    # ./nvim.nix
 | 
					    # ./nvim.nix
 | 
				
			||||||
| 
						 | 
					@ -46,17 +46,12 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    lanzaboote = {
 | 
					    lanzaboote = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
      pkiBundle = "/var/lib/sbctl";
 | 
					      pkiBundle = "/etc/secureboot";
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    consoleLogLevel = 0;
 | 
					    consoleLogLevel = 0;
 | 
				
			||||||
    kernelParams = ["quiet" "udev.log_priority=0" "fbcon=vc:2-6" "console=tty0"];
 | 
					    kernelParams = ["quiet" "udev.log_priority=0" "fbcon=vc:2-6" "console=tty0"];
 | 
				
			||||||
    plymouth.enable = true;
 | 
					    plymouth.enable = true;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  services.udev.extraRules = ''
 | 
					 | 
				
			||||||
    KERNEL=="hidraw*", ATTRS{idVendor}=="2dc8", MODE="0660", TAG+="uaccess"
 | 
					 | 
				
			||||||
    KERNEL=="hidraw*", KERNELS=="*2DC8:*", MODE="0660", TAG+="uaccess"
 | 
					 | 
				
			||||||
    SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2dc8", MODE="0666"
 | 
					 | 
				
			||||||
  '';
 | 
					 | 
				
			||||||
  zramSwap.enable = false;
 | 
					  zramSwap.enable = false;
 | 
				
			||||||
  networking = {
 | 
					  networking = {
 | 
				
			||||||
    domain = "";
 | 
					    domain = "";
 | 
				
			||||||
| 
						 | 
					@ -65,10 +60,8 @@
 | 
				
			||||||
    networkmanager.enable = true;
 | 
					    networkmanager.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    firewall.enable = true;
 | 
					    firewall.enable = true;
 | 
				
			||||||
    firewall.interfaces."wg0".allowedTCPPorts = [8080];
 | 
					
 | 
				
			||||||
    firewall.interfaces."wg0".allowedUDPPorts = [8080];
 | 
					    firewall.allowedTCPPorts = [22];
 | 
				
			||||||
    firewall.allowedTCPPorts = [22 8080 8091 9090 9777 46899 46898];
 | 
					 | 
				
			||||||
    firewall.allowedUDPPorts = [22 8080 8091 9090 9777 46899 46898];
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    hostName = "shodan";
 | 
					    hostName = "shodan";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
| 
						 | 
					@ -76,10 +69,28 @@
 | 
				
			||||||
    ip = "4";
 | 
					    ip = "4";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  xdg.portal.extraPortals = [pkgs.kdePackages.xdg-desktop-portal-kde];
 | 
					 | 
				
			||||||
  services = {
 | 
					  services = {
 | 
				
			||||||
 | 
					    openssh.enable = true; # Enables support for 32bit libs that steam uses
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Enable the X11 windowing system.
 | 
				
			||||||
 | 
					    xserver.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Enable the KDE Plasma Desktop Environment.
 | 
				
			||||||
 | 
					    desktopManager.plasma6.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    avahi = {
 | 
				
			||||||
 | 
					      nssmdns4 = true;
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      ipv4 = true;
 | 
				
			||||||
 | 
					      ipv6 = true;
 | 
				
			||||||
 | 
					      publish = {
 | 
				
			||||||
 | 
					        enable = true;
 | 
				
			||||||
 | 
					        addresses = true;
 | 
				
			||||||
 | 
					        workstation = true;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
    displayManager = {
 | 
					    displayManager = {
 | 
				
			||||||
      # defaultSession = "plasma";
 | 
					      defaultSession = "plasma";
 | 
				
			||||||
      sddm.wayland.enable = lib.mkForce true;
 | 
					      sddm.wayland.enable = lib.mkForce true;
 | 
				
			||||||
      sddm.settings = {
 | 
					      sddm.settings = {
 | 
				
			||||||
        Autologin = {
 | 
					        Autologin = {
 | 
				
			||||||
| 
						 | 
					@ -88,17 +99,76 @@
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Enable flatpak support
 | 
				
			||||||
 | 
					    flatpak.enable = true;
 | 
				
			||||||
 | 
					    packagekit.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Configure keymap in X11
 | 
				
			||||||
 | 
					    xserver = {
 | 
				
			||||||
 | 
					      xkb.layout = "us";
 | 
				
			||||||
 | 
					      xkb.variant = "";
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Enable CUPS to print documents.
 | 
				
			||||||
 | 
					    printing.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Enable fwupd daemon and user space client
 | 
				
			||||||
 | 
					    fwupd.enable = true;
 | 
				
			||||||
 | 
					    pipewire = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      alsa.enable = true;
 | 
				
			||||||
 | 
					      alsa.support32Bit = true;
 | 
				
			||||||
 | 
					      pulse.enable = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  nixpkgs = {
 | 
				
			||||||
 | 
					    # You can add overlays here
 | 
				
			||||||
 | 
					    overlays = [
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					    # Configure your nixpkgs instance
 | 
				
			||||||
 | 
					    config = {
 | 
				
			||||||
 | 
					      # Disable if you don't want unfree packages
 | 
				
			||||||
 | 
					      allowUnfree = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
  environment.systemPackages = with pkgs; [
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
    # Custom tools
 | 
					    # Custom tools
 | 
				
			||||||
 | 
					    auto-mount
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #System:
 | 
					    #System:
 | 
				
			||||||
 | 
					    btrfs-progs
 | 
				
			||||||
    decky-loader
 | 
					    decky-loader
 | 
				
			||||||
    jre8
 | 
					    efitools
 | 
				
			||||||
    # jellyfin-media-player
 | 
					    jq
 | 
				
			||||||
 | 
					    # noto-fonts
 | 
				
			||||||
 | 
					    # noto-fonts-emoji-blob-bin
 | 
				
			||||||
 | 
					    # noto-fonts-emoji
 | 
				
			||||||
 | 
					    qjackctl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #rustdesk
 | 
					    #rustdesk
 | 
				
			||||||
 | 
					    sbctl
 | 
				
			||||||
 | 
					    udisks
 | 
				
			||||||
 | 
					    util-linux
 | 
				
			||||||
 | 
					    waypipe
 | 
				
			||||||
 | 
					    python3
 | 
				
			||||||
 | 
					    protonup-qt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #KDE:
 | 
				
			||||||
 | 
					    krunner-translator
 | 
				
			||||||
 | 
					    # kdePackages.discover
 | 
				
			||||||
 | 
					    kdePackages.kcalc
 | 
				
			||||||
 | 
					    kdePackages.kdepim-addons
 | 
				
			||||||
 | 
					    kdePackages.kirigami
 | 
				
			||||||
 | 
					    kdePackages.kdeconnect-kde
 | 
				
			||||||
 | 
					    # kdePackages.krunner-ssh
 | 
				
			||||||
 | 
					    # kdePackages.krunner-symbols
 | 
				
			||||||
 | 
					    kdePackages.qtvirtualkeyboard
 | 
				
			||||||
 | 
					    kdePackages.packagekit-qt
 | 
				
			||||||
 | 
					    kdePackages.krdc
 | 
				
			||||||
 | 
					    kdePackages.krfb
 | 
				
			||||||
 | 
					    libportal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #Gaming:
 | 
					    #Gaming:
 | 
				
			||||||
    heroic
 | 
					    heroic
 | 
				
			||||||
| 
						 | 
					@ -106,29 +176,6 @@
 | 
				
			||||||
    protontricks
 | 
					    protontricks
 | 
				
			||||||
    rare
 | 
					    rare
 | 
				
			||||||
    lutris
 | 
					    lutris
 | 
				
			||||||
 | 
					 | 
				
			||||||
    (kodi.withPackages (kodiPkgs:
 | 
					 | 
				
			||||||
      with kodiPkgs; [
 | 
					 | 
				
			||||||
        steam-controller
 | 
					 | 
				
			||||||
        invidious
 | 
					 | 
				
			||||||
        youtube
 | 
					 | 
				
			||||||
        netflix
 | 
					 | 
				
			||||||
        upnext
 | 
					 | 
				
			||||||
        sponsorblock
 | 
					 | 
				
			||||||
        sendtokodi
 | 
					 | 
				
			||||||
        jellyfin
 | 
					 | 
				
			||||||
        inputstream-adaptive
 | 
					 | 
				
			||||||
        inputstreamhelper
 | 
					 | 
				
			||||||
        inputstream-ffmpegdirect
 | 
					 | 
				
			||||||
        upnext
 | 
					 | 
				
			||||||
        sponsorblock
 | 
					 | 
				
			||||||
        sendtokodi
 | 
					 | 
				
			||||||
        routing
 | 
					 | 
				
			||||||
        requests-cache
 | 
					 | 
				
			||||||
        requests
 | 
					 | 
				
			||||||
        plugin-cache
 | 
					 | 
				
			||||||
        a4ksubtitles
 | 
					 | 
				
			||||||
      ]))
 | 
					 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  jovian = {
 | 
					  jovian = {
 | 
				
			||||||
| 
						 | 
					@ -141,7 +188,7 @@
 | 
				
			||||||
    decky-loader = {
 | 
					    decky-loader = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
      package = pkgs.decky-loader-prerelease;
 | 
					      package = pkgs.decky-loader-prerelease;
 | 
				
			||||||
      extraPackages = [pkgs.python3 pkgs.flatpak pkgs.uutils-findutils];
 | 
					      extraPackages = [pkgs.python3];
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    devices.steamdeck = {
 | 
					    devices.steamdeck = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
| 
						 | 
					@ -149,15 +196,59 @@
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    steamos = {
 | 
					    steamos = {
 | 
				
			||||||
      enableAutoMountUdevRules = true;
 | 
					      enableAutoMountUdevRules = true;
 | 
				
			||||||
 | 
					      enableMesaPatches = true;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  fonts.packages = [pkgs.ttf-ms-win10];
 | 
					  programs = {
 | 
				
			||||||
 | 
					    steam = lib.mkForce {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
 | 
				
			||||||
 | 
					      dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
 | 
				
			||||||
 | 
					      extest.enable = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    kdeconnect.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    noisetorch = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    git = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # # Enable automounting of removable media
 | 
					  # # Enable automounting of removable media
 | 
				
			||||||
  # services.udisks2.enable = true;
 | 
					  # services.udisks2.enable = true;
 | 
				
			||||||
  # services.devmon.enable = true;
 | 
					  # services.devmon.enable = true;
 | 
				
			||||||
  # services.gvfs.enable = true;
 | 
					  # services.gvfs.enable = true;
 | 
				
			||||||
  # environment.variables.GIO_EXTRA_MODULES = lib.mkForce ["${pkgs.gvfs}/lib/gio/modules"];
 | 
					  # environment.variables.GIO_EXTRA_MODULES = lib.mkForce ["${pkgs.gvfs}/lib/gio/modules"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Set your time zone.
 | 
				
			||||||
 | 
					  time.timeZone = "Europe/Amsterdam";
 | 
				
			||||||
 | 
					  hardware = {
 | 
				
			||||||
 | 
					    graphics.enable32Bit = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Enable bluetooth hardware
 | 
				
			||||||
 | 
					    bluetooth.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Enable sound with pipewire.
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  services.pulseaudio.enable = false;
 | 
				
			||||||
 | 
					  users.users.lillian.extraGroups = ["decky" "tss" "input"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Enable completion of system packages by zsh
 | 
				
			||||||
 | 
					  environment.pathsToLink = ["/share/zsh"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  security = {
 | 
				
			||||||
 | 
					    rtkit.enable = true;
 | 
				
			||||||
 | 
					    tpm2 = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      pkcs11.enable = true; # expose /run/current-system/sw/lib/libtpm2_pkcs11.so
 | 
				
			||||||
 | 
					      tctiEnvironment.enable = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
					  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
				
			||||||
  system.stateVersion = "25.11";
 | 
					  system.stateVersion = "25.05";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,11 @@
 | 
				
			||||||
lillian-password: ENC[AES256_GCM,data:uPNBvMyhkiX3eedduFlsFUIcas/VBVSYrsmGTlgGUOzTQST59CYZRoq0ArphIJ3+Usy6KbR5tA5FCp4PoB3qVYBfjlAq6dhZIw==,iv:TiUIo2lvdL6SiDuW4gWn0TeJXkz5MldzqGxuK3MNPnE=,tag:d3p/h+q50JxygDtk2qxIeQ==,type:str]
 | 
					lillian-password: ENC[AES256_GCM,data:uPNBvMyhkiX3eedduFlsFUIcas/VBVSYrsmGTlgGUOzTQST59CYZRoq0ArphIJ3+Usy6KbR5tA5FCp4PoB3qVYBfjlAq6dhZIw==,iv:TiUIo2lvdL6SiDuW4gWn0TeJXkz5MldzqGxuK3MNPnE=,tag:d3p/h+q50JxygDtk2qxIeQ==,type:str]
 | 
				
			||||||
wg-private-key: ENC[AES256_GCM,data:PeuKeYRHfOzGlekLI95EH3qq+blntZrrboPKaKC0ghD5zIyaCYrFHYWLkug=,iv:BcugGYW7+i7d04H4EKn+BdJJPqwMVVvlHBETO0x0kQM=,tag:Z/ammSrFpWTIbVfi4VJZ9w==,type:str]
 | 
					wg-private-key: ENC[AES256_GCM,data:PeuKeYRHfOzGlekLI95EH3qq+blntZrrboPKaKC0ghD5zIyaCYrFHYWLkug=,iv:BcugGYW7+i7d04H4EKn+BdJJPqwMVVvlHBETO0x0kQM=,tag:Z/ammSrFpWTIbVfi4VJZ9w==,type:str]
 | 
				
			||||||
ssh-private-key: ENC[AES256_GCM,data:7K3p6Lu4je2fNmvtKpLY2z7MG5E0gg3486PCLTlm/NzWpiH0FO8KO2yPkPPVurXfUWj7ig3eiP+bc6+kufRQ8+MCHaR+JA056cdMch0MMK92FyPvJjNKzwB4W3BpdvOKipaZvuvSfgdrEdpz6rWRwBb9KaUW5aHBjW5eQNm+q0yP2uZjW6Ncp/zrdevjlRJyXGnNJD8CBDQgLILvqlvziRO4xBnSZOmFpdCKM9jMkxwHIQUND4ic71G6cheN+kIsgsa67DlJjfrngGWxKrlC3Q2DC+30vHtW8f18oa+g7eu9eTz8+bSLxYJf9TADwE+UYe2Hakib1ju67yxBkcomIjBvqgo+zEr0jC2qYmOvlKfqn64gSbAE7zEVCbavz6gA2EMb0g47twtAdgGUyzppGQ4LXjZXv6lyYov2gdXP7bzAcXXfzDh92BuTUOp9HXOTsLh7XC7cPKziowwwT+oUeOaSujMT9tgqkazgcVR3ne+PjxduptV75gxOwxeu6F2Zm+4Y4xJBdJeyP1Baq0yj4HNY/gv3pxEEXgU5,iv:TJ3AsSvXeUmBsKd6xy+Kc1ws+Yc9ZQ5Q4A8UFHI7Wsg=,tag:egCYoe3Mkbvkup0itszm4w==,type:str]
 | 
					ssh-private-key: ENC[AES256_GCM,data:7K3p6Lu4je2fNmvtKpLY2z7MG5E0gg3486PCLTlm/NzWpiH0FO8KO2yPkPPVurXfUWj7ig3eiP+bc6+kufRQ8+MCHaR+JA056cdMch0MMK92FyPvJjNKzwB4W3BpdvOKipaZvuvSfgdrEdpz6rWRwBb9KaUW5aHBjW5eQNm+q0yP2uZjW6Ncp/zrdevjlRJyXGnNJD8CBDQgLILvqlvziRO4xBnSZOmFpdCKM9jMkxwHIQUND4ic71G6cheN+kIsgsa67DlJjfrngGWxKrlC3Q2DC+30vHtW8f18oa+g7eu9eTz8+bSLxYJf9TADwE+UYe2Hakib1ju67yxBkcomIjBvqgo+zEr0jC2qYmOvlKfqn64gSbAE7zEVCbavz6gA2EMb0g47twtAdgGUyzppGQ4LXjZXv6lyYov2gdXP7bzAcXXfzDh92BuTUOp9HXOTsLh7XC7cPKziowwwT+oUeOaSujMT9tgqkazgcVR3ne+PjxduptV75gxOwxeu6F2Zm+4Y4xJBdJeyP1Baq0yj4HNY/gv3pxEEXgU5,iv:TJ3AsSvXeUmBsKd6xy+Kc1ws+Yc9ZQ5Q4A8UFHI7Wsg=,tag:egCYoe3Mkbvkup0itszm4w==,type:str]
 | 
				
			||||||
nextcloud-password: ENC[AES256_GCM,data:vA+L/7rTne16AZbibUAaLAcQKLoKPvM1ATNL/hbzjVt+qmxHhmuQq0cqKdoPOFlOftMNLo5HSKiHdLxh,iv:kw0IorbyjT/ocanJDcR3kuPCqHsPwSD4axIp2dfn1Fc=,tag:5QLl3xKq4a0EiImO07ardQ==,type:str]
 | 
					 | 
				
			||||||
sops:
 | 
					sops:
 | 
				
			||||||
 | 
					    kms: []
 | 
				
			||||||
 | 
					    gcp_kms: []
 | 
				
			||||||
 | 
					    azure_kv: []
 | 
				
			||||||
 | 
					    hc_vault: []
 | 
				
			||||||
    age:
 | 
					    age:
 | 
				
			||||||
        - recipient: age12e00qvf4shtmsfq3ujamyaa72pjvad2qhrxkvpl9hryrjvgxev4sjhmkxz
 | 
					        - recipient: age12e00qvf4shtmsfq3ujamyaa72pjvad2qhrxkvpl9hryrjvgxev4sjhmkxz
 | 
				
			||||||
          enc: |
 | 
					          enc: |
 | 
				
			||||||
| 
						 | 
					@ -13,7 +16,8 @@ sops:
 | 
				
			||||||
            KzNBMCtUaS9sU21Xc1JUd1FSR29tSkEKyqaDM/WUWjK2l+ahE6sIFYsQ6Qtkf7yz
 | 
					            KzNBMCtUaS9sU21Xc1JUd1FSR29tSkEKyqaDM/WUWjK2l+ahE6sIFYsQ6Qtkf7yz
 | 
				
			||||||
            NWFTzsDZBmm9kpSIjchf+PuBuoRHeEKbEH8jnMlYB3J8boEnUnXMlw==
 | 
					            NWFTzsDZBmm9kpSIjchf+PuBuoRHeEKbEH8jnMlYB3J8boEnUnXMlw==
 | 
				
			||||||
            -----END AGE ENCRYPTED FILE-----
 | 
					            -----END AGE ENCRYPTED FILE-----
 | 
				
			||||||
    lastmodified: "2025-10-22T13:25:05Z"
 | 
					    lastmodified: "2024-12-22T22:35:15Z"
 | 
				
			||||||
    mac: ENC[AES256_GCM,data:qGLiJvoU+lyzMBr1jW3My5kNLCm59xVmdc3knyg64KMbAL65q7m5EJBC9uvRX0ZcxaNXWuRJWyUu1VV9tIKtSW+HLVJUZuTCi+0qswOL331LLuyDzhIkOKbPUPiDzKaMLif7EqENN9kN2aGSivpMVB5QkqRccmg6ya1Qkx5Ao7A=,iv:RiaIdq5Ve/PNVTD38Qh4YM+2x8fEU027r7hlmoNZI9A=,tag:jm9ZThwSVtpyed+kMIgaJw==,type:str]
 | 
					    mac: ENC[AES256_GCM,data:olqDdjgOF7MsYXibawEn4bou6LPof25j231+Vwr+pSGCO19Sj44OkZpS0YmNBi+Uym+X6RGM5uV3fg4JYVgThnALI9JFyFuZ41gjPRyNBXJ16RnogKykHK5XNjQEogYho5bgLA8DTDeOvSfFHW2ENM052z6lJyAaPWJLa4ADlEY=,iv:YXGKcHQfqZCnK9Z3Nw/JxcTmZR++0iKUc7PDbLBqahY=,tag:UbHZvFZjaYjrC51Q1f/oyg==,type:str]
 | 
				
			||||||
 | 
					    pgp: []
 | 
				
			||||||
    unencrypted_suffix: _unencrypted
 | 
					    unencrypted_suffix: _unencrypted
 | 
				
			||||||
    version: 3.11.0
 | 
					    version: 3.9.2
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,7 +29,7 @@
 | 
				
			||||||
  programs = {
 | 
					  programs = {
 | 
				
			||||||
    # Allow executing of anything on the system with a , eg: , python executes python from the nix store even if not in $PATH currently
 | 
					    # Allow executing of anything on the system with a , eg: , python executes python from the nix store even if not in $PATH currently
 | 
				
			||||||
    command-not-found.enable = lib.mkForce false;
 | 
					    command-not-found.enable = lib.mkForce false;
 | 
				
			||||||
    # nix-index.enable = true;
 | 
					    nix-index.enable = true;
 | 
				
			||||||
    nix-index-database.comma.enable = true;
 | 
					    nix-index-database.comma.enable = true;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  services = {
 | 
					  services = {
 | 
				
			||||||
| 
						 | 
					@ -162,36 +162,6 @@
 | 
				
			||||||
    enable = false;
 | 
					    enable = false;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  services.stubby = {
 | 
					 | 
				
			||||||
    enable = true;
 | 
					 | 
				
			||||||
    settings =
 | 
					 | 
				
			||||||
      pkgs.stubby.passthru.settingsExample
 | 
					 | 
				
			||||||
      // {
 | 
					 | 
				
			||||||
        upstream_recursive_servers = [
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            address_data = "192.242.2.4";
 | 
					 | 
				
			||||||
            tls_auth_name = "base.dns.mullvad.net";
 | 
					 | 
				
			||||||
            tls_pubkey_pinset = [
 | 
					 | 
				
			||||||
              {
 | 
					 | 
				
			||||||
                digest = "sha256";
 | 
					 | 
				
			||||||
                value = "g8bfYNSxU86c8odFPsdTvWnC2VZkxIiHLZ2a6pydEjI=";
 | 
					 | 
				
			||||||
              }
 | 
					 | 
				
			||||||
            ];
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            address_data = "2a07:e340::4";
 | 
					 | 
				
			||||||
            tls_auth_name = "base.dns.mullvad.net";
 | 
					 | 
				
			||||||
            tls_pubkey_pinset = [
 | 
					 | 
				
			||||||
              {
 | 
					 | 
				
			||||||
                digest = "sha256";
 | 
					 | 
				
			||||||
                value = "g8bfYNSxU86c8odFPsdTvWnC2VZkxIiHLZ2a6pydEjI=";
 | 
					 | 
				
			||||||
              }
 | 
					 | 
				
			||||||
            ];
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  networking = {
 | 
					  networking = {
 | 
				
			||||||
    hostName = "wheatley";
 | 
					    hostName = "wheatley";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -207,8 +177,12 @@
 | 
				
			||||||
    # Configure DNS servers manually (this example uses Cloudflare and Google DNS)
 | 
					    # Configure DNS servers manually (this example uses Cloudflare and Google DNS)
 | 
				
			||||||
    # IPv6 DNS servers can be used here as well.
 | 
					    # IPv6 DNS servers can be used here as well.
 | 
				
			||||||
    nameservers = [
 | 
					    nameservers = [
 | 
				
			||||||
      "194.242.2.4"
 | 
					      # "127.0.0.1"
 | 
				
			||||||
      "2a07:e340::4"
 | 
					      # "::1"
 | 
				
			||||||
 | 
					      "94.140.14.49"
 | 
				
			||||||
 | 
					      "94.140.14.59"
 | 
				
			||||||
 | 
					      "2a10:50c0:0:0:0:0:ded:ff"
 | 
				
			||||||
 | 
					      "2a10:50c0:0:0:0:0:ded:ff"
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    wireguard.enable = true;
 | 
					    wireguard.enable = true;
 | 
				
			||||||
| 
						 | 
					@ -246,36 +220,6 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # wg public key for host: A02sO7uLdgflhPIRd0cbJONIaPP4z8HTxDkmX4NegFg=
 | 
					      # wg public key for host: A02sO7uLdgflhPIRd0cbJONIaPP4z8HTxDkmX4NegFg=
 | 
				
			||||||
      # TODO: generate this dynamically based on other hosts
 | 
					      # TODO: generate this dynamically based on other hosts
 | 
				
			||||||
      wg0 = {
 | 
					 | 
				
			||||||
        address = ["10.70.93.226/32" "fc00:bbbb:bbbb:bb01::7:5de1/128"];
 | 
					 | 
				
			||||||
        privateKeyFile = lib.mkForce config.sops.secrets."wg-private-key".path;
 | 
					 | 
				
			||||||
        dns = ["100.64.0.7"];
 | 
					 | 
				
			||||||
        extraOptions = {
 | 
					 | 
				
			||||||
          FwMark = 51820;
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        listenPort = 51820;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        postUp = ''
 | 
					 | 
				
			||||||
          ${pkgs.iproute2}/bin/ip rule add from 192.168.2.43 table main
 | 
					 | 
				
			||||||
          ${pkgs.iptables}/bin/iptables -t mangle -A PREROUTING -i end0 -j CONNMARK --set-mark 51820
 | 
					 | 
				
			||||||
          ${pkgs.iptables}/bin/iptables -t mangle -A PREROUTING -m connmark --mark 51820 -j MARK --set-mark 51820
 | 
					 | 
				
			||||||
        '';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        preDown = ''
 | 
					 | 
				
			||||||
          ${pkgs.iproute2}/bin/ip rule del from 192.168.2.43 table main
 | 
					 | 
				
			||||||
          ${pkgs.iptables}/bin/iptables -t mangle -D PREROUTING -i end0 -j CONNMARK --set-mark 51820
 | 
					 | 
				
			||||||
          ${pkgs.iptables}/bin/iptables -t mangle -D PREROUTING -m connmark --mark 51820 -j MARK --set-mark 51820
 | 
					 | 
				
			||||||
        '';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        peers = [
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            publicKey = "/wPQafVa/60OIp8KqhC1xTTG+nQXZF17uo8XfdUnz2E=";
 | 
					 | 
				
			||||||
            allowedIPs = ["0.0.0.0/0" "::0/0"];
 | 
					 | 
				
			||||||
            endpoint = "31.171.154.50:51820";
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      wg1 = {
 | 
					      wg1 = {
 | 
				
			||||||
        # Determines the IP address and subnet of the server's end of the tunnel interface.
 | 
					        # Determines the IP address and subnet of the server's end of the tunnel interface.
 | 
				
			||||||
        address = ["10.0.0.1/24" "fdc9:281f:04d7:9ee9::1/64"];
 | 
					        address = ["10.0.0.1/24" "fdc9:281f:04d7:9ee9::1/64"];
 | 
				
			||||||
| 
						 | 
					@ -285,26 +229,22 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # This allows the wireguard server to route your traffic to the internet and hence be like a VPN
 | 
					        # This allows the wireguard server to route your traffic to the internet and hence be like a VPN
 | 
				
			||||||
        postUp = ''
 | 
					        postUp = ''
 | 
				
			||||||
          ${pkgs.iptables}/bin/iptables -A FORWARD -i wg1 -j ACCEPT
 | 
					          ${pkgs.iptables}/bin/iptables -A FORWARD -i wg0 -j ACCEPT
 | 
				
			||||||
          ${pkgs.iptables}/bin/iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
 | 
					          ${pkgs.iptables}/bin/iptables -t nat -A POSTROUTING -s 10.0.0.1/24 -o eth0 -j MASQUERADE
 | 
				
			||||||
          ${pkgs.iptables}/bin/ip6tables -A FORWARD -i wg1 -j ACCEPT
 | 
					          ${pkgs.iptables}/bin/ip6tables -A FORWARD -i wg0 -j ACCEPT
 | 
				
			||||||
          ${pkgs.iptables}/bin/ip6tables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
 | 
					          ${pkgs.iptables}/bin/ip6tables -t nat -A POSTROUTING -s fdc9:281f:04d7:9ee9::1/64 -o eth0 -j MASQUERADE
 | 
				
			||||||
        '';
 | 
					        '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Undo the above
 | 
					        # Undo the above
 | 
				
			||||||
        preDown = ''
 | 
					        preDown = ''
 | 
				
			||||||
          ${pkgs.iptables}/bin/iptables -D FORWARD -i wg1 -j ACCEPT
 | 
					          ${pkgs.iptables}/bin/iptables -D FORWARD -i wg0 -j ACCEPT
 | 
				
			||||||
          ${pkgs.iptables}/bin/iptables -t nat -D POSTROUTING -o wg0 -j MASQUERADE
 | 
					          ${pkgs.iptables}/bin/iptables -t nat -D POSTROUTING -s 10.0.0.1/24 -o eth0 -j MASQUERADE
 | 
				
			||||||
          ${pkgs.iptables}/bin/ip6tables -D FORWARD -i wg1 -j ACCEPT
 | 
					          ${pkgs.iptables}/bin/ip6tables -D FORWARD -i wg0 -j ACCEPT
 | 
				
			||||||
          ${pkgs.iptables}/bin/ip6tables -t nat -D POSTROUTING -o wg0 -j MASQUERADE
 | 
					          ${pkgs.iptables}/bin/ip6tables -t nat -D POSTROUTING -s fdc9:281f:04d7:9ee9::1/64 -o eth0 -j MASQUERADE
 | 
				
			||||||
        '';
 | 
					        '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        privateKeyFile = lib.mkForce config.sops.secrets."wg-private-key".path;
 | 
					        privateKeyFile = lib.mkForce config.sops.secrets."wg-private-key".path;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        extraOptions = {
 | 
					 | 
				
			||||||
          FwMark = 51820;
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        peers = [
 | 
					        peers = [
 | 
				
			||||||
          {
 | 
					          {
 | 
				
			||||||
            #GLaDOS public key
 | 
					            #GLaDOS public key
 | 
				
			||||||
| 
						 | 
					@ -334,7 +274,7 @@
 | 
				
			||||||
      # enable NAT
 | 
					      # enable NAT
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
      externalInterface = "end0";
 | 
					      externalInterface = "end0";
 | 
				
			||||||
      internalInterfaces = ["wg1" "wg0"];
 | 
					      internalInterfaces = ["wg1"];
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    firewall = {
 | 
					    firewall = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
| 
						 | 
					@ -346,7 +286,6 @@
 | 
				
			||||||
        80 # http
 | 
					        80 # http
 | 
				
			||||||
        443 # https
 | 
					        443 # https
 | 
				
			||||||
        51821 # wg
 | 
					        51821 # wg
 | 
				
			||||||
        51820 # wg-mullvad
 | 
					 | 
				
			||||||
        7878
 | 
					        7878
 | 
				
			||||||
        53 # dnsmasq
 | 
					        53 # dnsmasq
 | 
				
			||||||
      ];
 | 
					      ];
 | 
				
			||||||
| 
						 | 
					@ -412,6 +351,6 @@
 | 
				
			||||||
  services.cage.enable = true;
 | 
					  services.cage.enable = true;
 | 
				
			||||||
  nixpkgs.config.kodi.enableAdvancedLauncher = true;
 | 
					  nixpkgs.config.kodi.enableAdvancedLauncher = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  system.stateVersion = "25.11";
 | 
					  system.stateVersion = "25.05";
 | 
				
			||||||
  nixpkgs.hostPlatform = lib.mkForce "aarch64-linux";
 | 
					  nixpkgs.hostPlatform = lib.mkForce "aarch64-linux";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,11 +29,17 @@
 | 
				
			||||||
  '';
 | 
					  '';
 | 
				
			||||||
in {
 | 
					in {
 | 
				
			||||||
  # Configure Conduit itself
 | 
					  # Configure Conduit itself
 | 
				
			||||||
  services.matrix-continuwuity = {
 | 
					  services.matrix-conduit = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # This causes NixOS to use the flake defined in this repository instead of
 | 
				
			||||||
 | 
					    # the build of Conduit built into nixpkgs.
 | 
				
			||||||
 | 
					    # package = inputs.conduwuit.packages.${pkgs.system}.default;
 | 
				
			||||||
 | 
					    package = pkgs.conduwuit;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    settings.global = {
 | 
					    settings.global = {
 | 
				
			||||||
      inherit server_name;
 | 
					      inherit server_name;
 | 
				
			||||||
 | 
					      database_backend = "rocksdb";
 | 
				
			||||||
      allow_registration = false;
 | 
					      allow_registration = false;
 | 
				
			||||||
      # emergency_password = "testpassword";
 | 
					      # emergency_password = "testpassword";
 | 
				
			||||||
      turn_uris = ["turn:turn.gladtherescake.eu.url?transport=udp" "turn:turn.gladtherescake.eu?transport=tcp"];
 | 
					      turn_uris = ["turn:turn.gladtherescake.eu.url?transport=udp" "turn:turn.gladtherescake.eu?transport=tcp"];
 | 
				
			||||||
| 
						 | 
					@ -111,7 +117,6 @@ in {
 | 
				
			||||||
        locations."=/.well-known/matrix/client" = {
 | 
					        locations."=/.well-known/matrix/client" = {
 | 
				
			||||||
          # Use the contents of the derivation built previously
 | 
					          # Use the contents of the derivation built previously
 | 
				
			||||||
          alias = "${well_known_client}";
 | 
					          alias = "${well_known_client}";
 | 
				
			||||||
          return = "200 '{\"m.homeserver\": {\"base_url\": \"https://${server_name}\"}, \"org.matrix.msc3575.proxy\": {\"url\": \"https://${server_name}\"}}'";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
          extraConfig = ''
 | 
					          extraConfig = ''
 | 
				
			||||||
            # Set the header since by default NGINX thinks it's just bytes
 | 
					            # Set the header since by default NGINX thinks it's just bytes
 | 
				
			||||||
| 
						 | 
					@ -125,7 +130,6 @@ in {
 | 
				
			||||||
          proxyPass = "http://matrix.gladtherescake.eu/client/unstable/org.matrix.msc3575/sync";
 | 
					          proxyPass = "http://matrix.gladtherescake.eu/client/unstable/org.matrix.msc3575/sync";
 | 
				
			||||||
          proxyWebsockets = true;
 | 
					          proxyWebsockets = true;
 | 
				
			||||||
          recommendedProxySettings = false;
 | 
					          recommendedProxySettings = false;
 | 
				
			||||||
          return = "200 '{\"contacts\": [{\"matrix_id\": \"@admin:server.name\", \"email_address\": \"admin@server.name\", \"role\": \"m.role.admin\"}]}'";
 | 
					 | 
				
			||||||
          extraConfig = ''
 | 
					          extraConfig = ''
 | 
				
			||||||
            proxy_set_header Host $host;
 | 
					            proxy_set_header Host $host;
 | 
				
			||||||
            proxy_buffering off;
 | 
					            proxy_buffering off;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,7 +5,7 @@
 | 
				
			||||||
  services.coturn = {
 | 
					  services.coturn = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    use-auth-secret = true;
 | 
					    use-auth-secret = true;
 | 
				
			||||||
    static-auth-secret-file = config.sops.secrets."coturn-auth-secret".path;
 | 
					    static-auth-secret = "cPKWEn4Fo5TAJoE7iX3xeVOaMVE4afeRN1iRGWYfbkWbkaZMxTpnmazHyH6c6yXT";
 | 
				
			||||||
    realm = "turn.gladtherescake.eu";
 | 
					    realm = "turn.gladtherescake.eu";
 | 
				
			||||||
    relay-ips = [
 | 
					    relay-ips = [
 | 
				
			||||||
      "62.171.160.195"
 | 
					      "62.171.160.195"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,7 +5,7 @@
 | 
				
			||||||
    ./gotosocial
 | 
					    ./gotosocial
 | 
				
			||||||
    ./mail-server
 | 
					    ./mail-server
 | 
				
			||||||
    ./nextcloud
 | 
					    ./nextcloud
 | 
				
			||||||
    # ./phanpy
 | 
					    ./phanpy
 | 
				
			||||||
    ./postgres
 | 
					    ./postgres
 | 
				
			||||||
    ./roundcube
 | 
					    ./roundcube
 | 
				
			||||||
    ./coturn
 | 
					    ./coturn
 | 
				
			||||||
| 
						 | 
					@ -14,6 +14,5 @@
 | 
				
			||||||
    #./firefox-sync
 | 
					    #./firefox-sync
 | 
				
			||||||
    ./writefreely
 | 
					    ./writefreely
 | 
				
			||||||
    ./mollysocket
 | 
					    ./mollysocket
 | 
				
			||||||
    ./jellyfin
 | 
					 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,6 @@
 | 
				
			||||||
{...}: {
 | 
					{...}: {
 | 
				
			||||||
 | 
					  users.users.jellyfin.extraGroups = ["nextcloud" "aria2"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  services.nginx = {
 | 
					  services.nginx = {
 | 
				
			||||||
    virtualHosts = {
 | 
					    virtualHosts = {
 | 
				
			||||||
      "video.gladtherescake.eu" = {
 | 
					      "video.gladtherescake.eu" = {
 | 
				
			||||||
| 
						 | 
					@ -14,7 +16,5 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  services.jellyfin = {
 | 
					  services.jellyfin = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    user = "nextcloud";
 | 
					 | 
				
			||||||
    group = "nextcloud";
 | 
					 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,7 +6,6 @@
 | 
				
			||||||
  # services.dovecot2.sieve.extensions = ["fileinto"];
 | 
					  # services.dovecot2.sieve.extensions = ["fileinto"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  mailserver = {
 | 
					  mailserver = {
 | 
				
			||||||
    stateVersion = 3;
 | 
					 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    enableImap = true;
 | 
					    enableImap = true;
 | 
				
			||||||
    enableSubmission = true;
 | 
					    enableSubmission = true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -50,7 +50,7 @@
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    hostName = "nextcloud.gladtherescake.eu";
 | 
					    hostName = "nextcloud.gladtherescake.eu";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    package = pkgs.nextcloud32;
 | 
					    package = pkgs.nextcloud30;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Use HTTPS for links
 | 
					    # Use HTTPS for links
 | 
				
			||||||
    https = true;
 | 
					    https = true;
 | 
				
			||||||
| 
						 | 
					@ -69,7 +69,6 @@
 | 
				
			||||||
      overwriteprotocol = "https";
 | 
					      overwriteprotocol = "https";
 | 
				
			||||||
      default_phone_region = "NL";
 | 
					      default_phone_region = "NL";
 | 
				
			||||||
      maintenance_window_start = 3;
 | 
					      maintenance_window_start = 3;
 | 
				
			||||||
      log_type = "file";
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    appstoreEnable = true;
 | 
					    appstoreEnable = true;
 | 
				
			||||||
    extraAppsEnable = true;
 | 
					    extraAppsEnable = true;
 | 
				
			||||||
| 
						 | 
					@ -102,9 +101,9 @@
 | 
				
			||||||
  #   #jwtSecretFile = config.sops.secrets."local.json".path;
 | 
					  #   #jwtSecretFile = config.sops.secrets."local.json".path;
 | 
				
			||||||
  # };
 | 
					  # };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # services.rabbitmq = {
 | 
					  services.rabbitmq = {
 | 
				
			||||||
  #   enable = true;
 | 
					    enable = true;
 | 
				
			||||||
  # };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  systemd.services."sops-nix.service" = {
 | 
					  systemd.services."sops-nix.service" = {
 | 
				
			||||||
    before = [
 | 
					    before = [
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,7 +4,6 @@
 | 
				
			||||||
  lib,
 | 
					  lib,
 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  pkgs-edge,
 | 
					 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: {
 | 
					}: {
 | 
				
			||||||
  imports = [
 | 
					  imports = [
 | 
				
			||||||
| 
						 | 
					@ -14,7 +13,7 @@
 | 
				
			||||||
    #../hosts/${config.networking.hostName}/hardware-configuration.nix
 | 
					    #../hosts/${config.networking.hostName}/hardware-configuration.nix
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
  sops = {
 | 
					  sops = {
 | 
				
			||||||
    age.keyFile = "var/secrets/keys.txt";
 | 
					    age.keyFile = ../../../../../../var/secrets/keys.txt;
 | 
				
			||||||
    secrets."lillian-password".neededForUsers = true;
 | 
					    secrets."lillian-password".neededForUsers = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    defaultSopsFile = ../hosts/${config.networking.hostName}/secrets/sops.yaml;
 | 
					    defaultSopsFile = ../hosts/${config.networking.hostName}/secrets/sops.yaml;
 | 
				
			||||||
| 
						 | 
					@ -30,10 +29,11 @@
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  #TODO: remove this when unneeded for freetube
 | 
					  #TODO: remove this when unneeded for freetube
 | 
				
			||||||
  nixpkgs.config.permittedInsecurePackages = [
 | 
					  nixpkgs.config.permittedInsecurePackages = [
 | 
				
			||||||
 | 
					    "python3.12-youtube-dl-2021.12.17"
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  nix = {
 | 
					  nix = {
 | 
				
			||||||
    package = pkgs-edge.lix;
 | 
					    package = pkgs.lix;
 | 
				
			||||||
    gc = {
 | 
					    gc = {
 | 
				
			||||||
      automatic = true;
 | 
					      automatic = true;
 | 
				
			||||||
      dates = "weekly";
 | 
					      dates = "weekly";
 | 
				
			||||||
| 
						 | 
					@ -67,19 +67,6 @@
 | 
				
			||||||
      ];
 | 
					      ];
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					 | 
				
			||||||
  #TODO: ugly hardcoded delete, if it ever becomes a problem fix this, else just leave it I guess
 | 
					 | 
				
			||||||
  system.userActivationScripts = {
 | 
					 | 
				
			||||||
    removeConflictingFiles = {
 | 
					 | 
				
			||||||
      text = ''
 | 
					 | 
				
			||||||
        rm -f /home/lillian/.config/gtk-3.0/settings.ini.backup
 | 
					 | 
				
			||||||
        rm -f /home/lillian/.config/gtk-3.0/gtk.css.backup
 | 
					 | 
				
			||||||
        rm -f /home/lillian/.config/gtk-4.0/settings.ini.backup
 | 
					 | 
				
			||||||
        rm -f /home/lillian/.config/gtk-4.0/gtk.css.backup
 | 
					 | 
				
			||||||
      '';
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  catppuccin = {
 | 
					  catppuccin = {
 | 
				
			||||||
    flavor = "macchiato";
 | 
					    flavor = "macchiato";
 | 
				
			||||||
    tty.enable = true;
 | 
					    tty.enable = true;
 | 
				
			||||||
| 
						 | 
					@ -91,28 +78,17 @@
 | 
				
			||||||
    # grub.enable = false;
 | 
					    # grub.enable = false;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  programs = {
 | 
					  programs.zsh = {
 | 
				
			||||||
    zsh = {
 | 
					 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    gnupg.agent = {
 | 
					  programs.gnupg.agent = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    enableBrowserSocket = true;
 | 
					    enableBrowserSocket = true;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
    chromium = {
 | 
					 | 
				
			||||||
      enable = true;
 | 
					 | 
				
			||||||
      #Bet these options get renamed and put under a SearchProvider subheader...
 | 
					 | 
				
			||||||
      defaultSearchProviderSearchURL = "https://noai.duckduckgo.com/?t=ftab&q={searchTerms}";
 | 
					 | 
				
			||||||
      defaultSearchProviderEnabled = true;
 | 
					 | 
				
			||||||
      extensions = ["cjpalhdlnbpafiamejdnhcphjbkeiagm" "gcbommkclmclpchllfjekcdonpmejbdp"];
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  stylix = {
 | 
					  stylix = {
 | 
				
			||||||
    targets.qt.platform = lib.mkForce "kde";
 | 
					 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    # targets.qt.platform = "kde6";
 | 
					 | 
				
			||||||
    autoEnable = true;
 | 
					    autoEnable = true;
 | 
				
			||||||
    base16Scheme = {
 | 
					    base16Scheme = {
 | 
				
			||||||
      scheme = "Catppuccin Macchiato";
 | 
					      scheme = "Catppuccin Macchiato";
 | 
				
			||||||
| 
						 | 
					@ -137,7 +113,7 @@
 | 
				
			||||||
    image = ./background.jpg;
 | 
					    image = ./background.jpg;
 | 
				
			||||||
    cursor.package = pkgs.catppuccin-cursors.macchiatoMauve;
 | 
					    cursor.package = pkgs.catppuccin-cursors.macchiatoMauve;
 | 
				
			||||||
    cursor.name = "catppuccin-macchiato-mauve-cursors";
 | 
					    cursor.name = "catppuccin-macchiato-mauve-cursors";
 | 
				
			||||||
    cursor.size = 24;
 | 
					    cursor.size = 16;
 | 
				
			||||||
    homeManagerIntegration.followSystem = true;
 | 
					    homeManagerIntegration.followSystem = true;
 | 
				
			||||||
    fonts = {
 | 
					    fonts = {
 | 
				
			||||||
      serif = {
 | 
					      serif = {
 | 
				
			||||||
| 
						 | 
					@ -162,60 +138,19 @@
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  services.scx.enable =
 | 
					 | 
				
			||||||
    if (pkgs.system == "aarch64-linux")
 | 
					 | 
				
			||||||
    then false
 | 
					 | 
				
			||||||
    else true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  fonts.packages = [
 | 
					  fonts.packages = [
 | 
				
			||||||
    pkgs.atkinson-hyperlegible
 | 
					    pkgs.atkinson-hyperlegible
 | 
				
			||||||
    pkgs.atkinson-monolegible
 | 
					    pkgs.atkinson-monolegible
 | 
				
			||||||
    pkgs.noto-fonts-emoji-blob-bin
 | 
					    pkgs.noto-fonts-emoji-blob-bin
 | 
				
			||||||
    pkgs.noto-fonts
 | 
					    pkgs.noto-fonts
 | 
				
			||||||
    pkgs.nerd-fonts.fira-mono
 | 
					    pkgs.nerd-fonts.fira-mono
 | 
				
			||||||
    pkgs.font-awesome
 | 
					 | 
				
			||||||
    pkgs.liberation_ttf
 | 
					 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fonts.fontconfig = {
 | 
					  # fonts.fontconfig.defaultFonts = {
 | 
				
			||||||
    useEmbeddedBitmaps = true;
 | 
					 | 
				
			||||||
    # defaultFonts = {
 | 
					 | 
				
			||||||
  #   emoji = ["Blobmoji"];
 | 
					  #   emoji = ["Blobmoji"];
 | 
				
			||||||
  #   monospace = ["Atkinson Monolegible"];
 | 
					  #   monospace = ["Atkinson Monolegible"];
 | 
				
			||||||
  #   sansSerif = ["Atkinson Hyperlegible"];
 | 
					  #   sansSerif = ["Atkinson Hyperlegible"];
 | 
				
			||||||
  # };
 | 
					  # };
 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
  systemd = {
 | 
					 | 
				
			||||||
    services."shutdown-zellij-zsh" = {
 | 
					 | 
				
			||||||
      path = with pkgs; [killall];
 | 
					 | 
				
			||||||
      enable = true;
 | 
					 | 
				
			||||||
      unitConfig = {
 | 
					 | 
				
			||||||
        Before = "shutdown.target";
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      serviceConfig = {
 | 
					 | 
				
			||||||
        Type = "oneshot";
 | 
					 | 
				
			||||||
        ExecStart = "${pkgs.killall}/bin/killall -SIGKILL zellij zsh";
 | 
					 | 
				
			||||||
        RemainAfterExit = "yes";
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    services."start-vpn-wg" =
 | 
					 | 
				
			||||||
      if config.services.vpn-ip.enable
 | 
					 | 
				
			||||||
      then {
 | 
					 | 
				
			||||||
        path = with pkgs; [systemd];
 | 
					 | 
				
			||||||
        enable = true;
 | 
					 | 
				
			||||||
        unitConfig = {
 | 
					 | 
				
			||||||
          Wants = "network-online.target";
 | 
					 | 
				
			||||||
          After = "network-online.target";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        serviceConfig = {
 | 
					 | 
				
			||||||
          Type = "oneshot";
 | 
					 | 
				
			||||||
          ExecStart = "${pkgs.systemd}/bin/systemctl start wg-quick-wg0.service";
 | 
					 | 
				
			||||||
          RemainAfterExit = "yes";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      else {};
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  networking =
 | 
					  networking =
 | 
				
			||||||
    if config.services.vpn-ip.enable
 | 
					    if config.services.vpn-ip.enable
 | 
				
			||||||
| 
						 | 
					@ -224,7 +159,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      wg-quick.interfaces = {
 | 
					      wg-quick.interfaces = {
 | 
				
			||||||
        wg0 = {
 | 
					        wg0 = {
 | 
				
			||||||
          autostart = false;
 | 
					          autostart = true;
 | 
				
			||||||
          address = ["10.0.0.${config.services.vpn-ip.ip}/24" "fdc9:281f:04d7:9ee9::${config.services.vpn-ip.ip}/64"];
 | 
					          address = ["10.0.0.${config.services.vpn-ip.ip}/24" "fdc9:281f:04d7:9ee9::${config.services.vpn-ip.ip}/64"];
 | 
				
			||||||
          dns = ["10.0.0.1" "fdc9:281f:04d7:9ee9::1"];
 | 
					          dns = ["10.0.0.1" "fdc9:281f:04d7:9ee9::1"];
 | 
				
			||||||
          listenPort = 51821;
 | 
					          listenPort = 51821;
 | 
				
			||||||
| 
						 | 
					@ -242,15 +177,8 @@
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    else {};
 | 
					    else {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  environment = {
 | 
					 | 
				
			||||||
    systemPackages = with pkgs; [
 | 
					 | 
				
			||||||
      nix-output-monitor
 | 
					 | 
				
			||||||
      usbutils
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Enable completion of system packages by zsh
 | 
					  # Enable completion of system packages by zsh
 | 
				
			||||||
    pathsToLink = ["/share/zsh"];
 | 
					  environment.pathsToLink = ["/share/zsh"];
 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  home-manager = {
 | 
					  home-manager = {
 | 
				
			||||||
    backupFileExtension = "backup";
 | 
					    backupFileExtension = "backup";
 | 
				
			||||||
| 
						 | 
					@ -265,8 +193,7 @@
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  users = {
 | 
					  users = {
 | 
				
			||||||
    users = {
 | 
					    users.lillian = {
 | 
				
			||||||
      lillian = {
 | 
					 | 
				
			||||||
      isNormalUser = true;
 | 
					      isNormalUser = true;
 | 
				
			||||||
      extraGroups = ["sudo" "networkmanager" "wheel" "vboxsf" "docker"];
 | 
					      extraGroups = ["sudo" "networkmanager" "wheel" "vboxsf" "docker"];
 | 
				
			||||||
      shell = pkgs.zsh;
 | 
					      shell = pkgs.zsh;
 | 
				
			||||||
| 
						 | 
					@ -276,11 +203,10 @@
 | 
				
			||||||
        "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH30G2PJOnI6jnAtxOQV0SpLFUva0adarLZLvaoZvjGE lillian@GLaDOS"
 | 
					        "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH30G2PJOnI6jnAtxOQV0SpLFUva0adarLZLvaoZvjGE lillian@GLaDOS"
 | 
				
			||||||
      ];
 | 
					      ];
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					    mutableUsers = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      root = {
 | 
					    users.root = {
 | 
				
			||||||
      hashedPassword = "*";
 | 
					      hashedPassword = "*";
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
    mutableUsers = false;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,13 +22,12 @@
 | 
				
			||||||
      install-nix-no-inhibit
 | 
					      install-nix-no-inhibit
 | 
				
			||||||
      update
 | 
					      update
 | 
				
			||||||
      upgrade
 | 
					      upgrade
 | 
				
			||||||
      simple-completion-language-server
 | 
					      # simple-completion-language-server
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # System tools
 | 
					      # System tools
 | 
				
			||||||
      age
 | 
					      age
 | 
				
			||||||
      alejandra
 | 
					      alejandra
 | 
				
			||||||
      e2fsprogs
 | 
					      e2fsprogs
 | 
				
			||||||
      uutils-findutils
 | 
					 | 
				
			||||||
      git
 | 
					      git
 | 
				
			||||||
      git-filter-repo
 | 
					      git-filter-repo
 | 
				
			||||||
      pre-commit
 | 
					      pre-commit
 | 
				
			||||||
| 
						 | 
					@ -43,10 +42,6 @@
 | 
				
			||||||
      wget
 | 
					      wget
 | 
				
			||||||
      zsh
 | 
					      zsh
 | 
				
			||||||
      tldr
 | 
					      tldr
 | 
				
			||||||
      nmap
 | 
					 | 
				
			||||||
      knot-dns
 | 
					 | 
				
			||||||
      libressl
 | 
					 | 
				
			||||||
      nettools
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # System libraries
 | 
					      # System libraries
 | 
				
			||||||
    ])
 | 
					    ])
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,6 +14,4 @@ pkgs: {
 | 
				
			||||||
  phanpy = pkgs.callPackage ./phanpy {};
 | 
					  phanpy = pkgs.callPackage ./phanpy {};
 | 
				
			||||||
  auto-mount = pkgs.callPackage ./auto-mount {};
 | 
					  auto-mount = pkgs.callPackage ./auto-mount {};
 | 
				
			||||||
  simple-completion-language-server = pkgs.callPackage ./simple-completion-language-server {};
 | 
					  simple-completion-language-server = pkgs.callPackage ./simple-completion-language-server {};
 | 
				
			||||||
  freetube-0236 = pkgs.callPackage ./freetube-0.23.6 {};
 | 
					 | 
				
			||||||
  ttf-ms-win10 = pkgs.callPackage ./ttf-ms-win10 {};
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,121 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  stdenvNoCC,
 | 
					 | 
				
			||||||
  fetchFromGitHub,
 | 
					 | 
				
			||||||
  fetchYarnDeps,
 | 
					 | 
				
			||||||
  replaceVars,
 | 
					 | 
				
			||||||
  makeDesktopItem,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  nodejs,
 | 
					 | 
				
			||||||
  yarnConfigHook,
 | 
					 | 
				
			||||||
  yarnBuildHook,
 | 
					 | 
				
			||||||
  makeShellWrapper,
 | 
					 | 
				
			||||||
  copyDesktopItems,
 | 
					 | 
				
			||||||
  electron,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  nixosTests,
 | 
					 | 
				
			||||||
}:
 | 
					 | 
				
			||||||
let
 | 
					 | 
				
			||||||
  description = "Open Source YouTube app for privacy";
 | 
					 | 
				
			||||||
in
 | 
					 | 
				
			||||||
stdenvNoCC.mkDerivation (finalAttrs: {
 | 
					 | 
				
			||||||
  pname = "freetube";
 | 
					 | 
				
			||||||
  version = "0.23.6";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  src = fetchFromGitHub {
 | 
					 | 
				
			||||||
    owner = "FreeTubeApp";
 | 
					 | 
				
			||||||
    repo = "FreeTube";
 | 
					 | 
				
			||||||
    tag = "v${finalAttrs.version}-beta";
 | 
					 | 
				
			||||||
    hash = "sha256-Z1L45RHlmylfqKBY37PC5TQ3ubOgH0AHFGM7VkmtkZ0=";
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Darwin requires writable Electron dist
 | 
					 | 
				
			||||||
  postUnpack =
 | 
					 | 
				
			||||||
    if stdenvNoCC.hostPlatform.isDarwin then
 | 
					 | 
				
			||||||
      ''
 | 
					 | 
				
			||||||
        cp -r ${electron.dist} electron-dist
 | 
					 | 
				
			||||||
        chmod -R u+w electron-dist
 | 
					 | 
				
			||||||
      ''
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
      ''
 | 
					 | 
				
			||||||
        ln -s ${electron.dist} electron-dist
 | 
					 | 
				
			||||||
      '';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  patches = [
 | 
					 | 
				
			||||||
    (replaceVars ./patch-build-script.patch {
 | 
					 | 
				
			||||||
      electron-version = electron.version;
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  yarnOfflineCache = fetchYarnDeps {
 | 
					 | 
				
			||||||
    yarnLock = "${finalAttrs.src}/yarn.lock";
 | 
					 | 
				
			||||||
    hash = "sha256-ia5wLRt3Hmo4/dsB1/rhGWGJ7LMnVR9ju9lSlQZDTTg=";
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  nativeBuildInputs = [
 | 
					 | 
				
			||||||
    nodejs
 | 
					 | 
				
			||||||
    yarnConfigHook
 | 
					 | 
				
			||||||
    yarnBuildHook
 | 
					 | 
				
			||||||
    makeShellWrapper
 | 
					 | 
				
			||||||
    copyDesktopItems
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  installPhase = ''
 | 
					 | 
				
			||||||
    runHook preInstall
 | 
					 | 
				
			||||||
  ''
 | 
					 | 
				
			||||||
  + lib.optionalString stdenvNoCC.hostPlatform.isLinux ''
 | 
					 | 
				
			||||||
    mkdir -p $out/share/freetube
 | 
					 | 
				
			||||||
    cp -r build/*-unpacked/{locales,resources{,.pak}} -t $out/share/freetube
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    makeWrapper ${lib.getExe electron} $out/bin/freetube \
 | 
					 | 
				
			||||||
      --add-flags "$out/share/freetube/resources/app.asar" \
 | 
					 | 
				
			||||||
      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    install -D _icons/icon.svg $out/share/icons/hicolor/scalable/apps/freetube.svg
 | 
					 | 
				
			||||||
  ''
 | 
					 | 
				
			||||||
  + lib.optionalString stdenvNoCC.hostPlatform.isDarwin ''
 | 
					 | 
				
			||||||
    mkdir -p $out/Applications
 | 
					 | 
				
			||||||
    cp -r build/mac*/FreeTube.app $out/Applications
 | 
					 | 
				
			||||||
    ln -s "$out/Applications/FreeTube.app/Contents/MacOS/FreeTube" $out/bin/freetube
 | 
					 | 
				
			||||||
  ''
 | 
					 | 
				
			||||||
  + ''
 | 
					 | 
				
			||||||
    runHook postInstall
 | 
					 | 
				
			||||||
  '';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  desktopItems = [
 | 
					 | 
				
			||||||
    (makeDesktopItem {
 | 
					 | 
				
			||||||
      name = "freetube";
 | 
					 | 
				
			||||||
      desktopName = "FreeTube";
 | 
					 | 
				
			||||||
      comment = description;
 | 
					 | 
				
			||||||
      exec = "freetube %U";
 | 
					 | 
				
			||||||
      terminal = false;
 | 
					 | 
				
			||||||
      type = "Application";
 | 
					 | 
				
			||||||
      icon = "freetube";
 | 
					 | 
				
			||||||
      startupWMClass = "FreeTube";
 | 
					 | 
				
			||||||
      mimeTypes = [ "x-scheme-handler/freetube" ];
 | 
					 | 
				
			||||||
      categories = [ "Network" ];
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  passthru.tests = nixosTests.freetube;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  meta = {
 | 
					 | 
				
			||||||
    inherit description;
 | 
					 | 
				
			||||||
    homepage = "https://freetubeapp.io/";
 | 
					 | 
				
			||||||
    license = lib.licenses.agpl3Only;
 | 
					 | 
				
			||||||
    maintainers = with lib.maintainers; [
 | 
					 | 
				
			||||||
      ryneeverett
 | 
					 | 
				
			||||||
      pentane
 | 
					 | 
				
			||||||
      ryand56
 | 
					 | 
				
			||||||
      sigmasquadron
 | 
					 | 
				
			||||||
      ddogfoodd
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
    badPlatforms = [
 | 
					 | 
				
			||||||
      # output app is called "Electron.app" while derivation expects "FreeTube.app"
 | 
					 | 
				
			||||||
      #see: https://github.com/NixOS/nixpkgs/pull/384596#issuecomment-2677141349
 | 
					 | 
				
			||||||
      lib.systems.inspect.patterns.isDarwin
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
    inherit (electron.meta) platforms;
 | 
					 | 
				
			||||||
    mainProgram = "freetube";
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,13 +0,0 @@
 | 
				
			||||||
diff --git a/_scripts/ebuilder.config.js b/_scripts/ebuilder.config.js
 | 
					 | 
				
			||||||
index 5b79d961..9f5945d2 100644
 | 
					 | 
				
			||||||
--- a/_scripts/ebuilder.config.js
 | 
					 | 
				
			||||||
+++ b/_scripts/ebuilder.config.js
 | 
					 | 
				
			||||||
@@ -1,6 +1,8 @@
 | 
					 | 
				
			||||||
 const { name, productName } = require('../package.json')
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 const config = {
 | 
					 | 
				
			||||||
+  electronVersion: "@electron-version@",
 | 
					 | 
				
			||||||
+  electronDist: "electron-dist",
 | 
					 | 
				
			||||||
   appId: `io.freetubeapp.${name}`,
 | 
					 | 
				
			||||||
   copyright: 'Copyleft © 2020-2024 freetubeapp@protonmail.com',
 | 
					 | 
				
			||||||
   // asar: false,
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,5 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  git,
 | 
					  git,
 | 
				
			||||||
  nix-output-monitor,
 | 
					 | 
				
			||||||
  gum,
 | 
					  gum,
 | 
				
			||||||
  writeShellApplication,
 | 
					  writeShellApplication,
 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
| 
						 | 
					@ -8,7 +7,7 @@ writeShellApplication
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  name = "install-nix-no-inhibit";
 | 
					  name = "install-nix-no-inhibit";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  runtimeInputs = [git gum nix-output-monitor];
 | 
					  runtimeInputs = [git gum];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  text = ''
 | 
					  text = ''
 | 
				
			||||||
    # An install script for NixOS installation to /tmp
 | 
					    # An install script for NixOS installation to /tmp
 | 
				
			||||||
| 
						 | 
					@ -37,8 +36,8 @@ writeShellApplication
 | 
				
			||||||
        --mode zap_create_mount \
 | 
					        --mode zap_create_mount \
 | 
				
			||||||
        "./disko/''${dir}/default.nix"
 | 
					        "./disko/''${dir}/default.nix"
 | 
				
			||||||
    echo "NixOS Installing..."
 | 
					    echo "NixOS Installing..."
 | 
				
			||||||
    sudo nixos-install --flake .#"''${dir}" --show-trace --log-format internal-json -v |& nom --json
 | 
					    sudo nixos-install --flake .#"''${dir}"
 | 
				
			||||||
    sudo nixos-install --flake .#"''${dir}" --show-trace --log-format internal-json -v |& nom --json
 | 
					    sudo nixos-install --flake .#"''${dir}"
 | 
				
			||||||
    popd > /dev/null
 | 
					    popd > /dev/null
 | 
				
			||||||
    echo "Cleaning up repository in '/tmp/install-nix'..."
 | 
					    echo "Cleaning up repository in '/tmp/install-nix'..."
 | 
				
			||||||
    rm -rf ./install-nix
 | 
					    rm -rf ./install-nix
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,13 +1,9 @@
 | 
				
			||||||
{
 | 
					{writeShellApplication}:
 | 
				
			||||||
  writeShellApplication,
 | 
					 | 
				
			||||||
  nix-output-monitor,
 | 
					 | 
				
			||||||
  just,
 | 
					 | 
				
			||||||
}:
 | 
					 | 
				
			||||||
writeShellApplication
 | 
					writeShellApplication
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  name = "rebuild-no-inhibit";
 | 
					  name = "rebuild-no-inhibit";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  runtimeInputs = [nix-output-monitor just];
 | 
					  runtimeInputs = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  text = ''
 | 
					  text = ''
 | 
				
			||||||
    # A rebuild script for NixOS
 | 
					    # A rebuild script for NixOS
 | 
				
			||||||
| 
						 | 
					@ -18,11 +14,7 @@ writeShellApplication
 | 
				
			||||||
    git clone https://codeberg.org/Lillian-Violet/NixOS-Config.git ./rebuild
 | 
					    git clone https://codeberg.org/Lillian-Violet/NixOS-Config.git ./rebuild
 | 
				
			||||||
    pushd ./rebuild > /dev/null
 | 
					    pushd ./rebuild > /dev/null
 | 
				
			||||||
    echo "NixOS Rebuilding..."
 | 
					    echo "NixOS Rebuilding..."
 | 
				
			||||||
    if [ "''$HOSTNAME" = shodan ]; then
 | 
					    sudo nixos-rebuild switch --flake .#
 | 
				
			||||||
       just boot
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
       just build
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    popd > /dev/null
 | 
					    popd > /dev/null
 | 
				
			||||||
    echo "Cleaning up repository in '/tmp/rebuild'..."
 | 
					    echo "Cleaning up repository in '/tmp/rebuild'..."
 | 
				
			||||||
    rm -rf ./rebuild
 | 
					    rm -rf ./rebuild
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,16 +5,16 @@
 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
rustPlatform.buildRustPackage rec {
 | 
					rustPlatform.buildRustPackage rec {
 | 
				
			||||||
  pname = "simple-completion-language-server";
 | 
					  pname = "simple-completion-language-server";
 | 
				
			||||||
  version = "6c797949ad5a6e9548b60b5475d1c9977f26c811";
 | 
					  version = "ff9f90bc96c347f284571bc6310bc31f95508d55";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  src = fetchFromGitHub {
 | 
					  src = fetchFromGitHub {
 | 
				
			||||||
    owner = "estin";
 | 
					    owner = "estin";
 | 
				
			||||||
    repo = pname;
 | 
					    repo = pname;
 | 
				
			||||||
    rev = version;
 | 
					    rev = version;
 | 
				
			||||||
    hash = "sha256-cITZdlDB03i7gOYbahV99wZOQ7tisnqdT/N2Z12oLFM=";
 | 
					    hash = "sha256-qybbZXjKzKcc6UXfAjwmkkB+qEUuGQXABRbMj7bNksM=";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  cargoHash = "sha256-nannF4BKRLCcsS7VznzEHqrhLHYvN4X22t8jud87XEM=";
 | 
					  cargoHash = "sha256-VTz2Fm+PRUPM5+u9D+2TzGGIEQwb1j0Lz0WRaQ5/Yzo=";
 | 
				
			||||||
  meta = with lib; {
 | 
					  meta = with lib; {
 | 
				
			||||||
    description = "Language server to enable word completion and snippets for Helix editor";
 | 
					    description = "Language server to enable word completion and snippets for Helix editor";
 | 
				
			||||||
    homepage = "https://github.com/estin/simple-completion-language-server";
 | 
					    homepage = "https://github.com/estin/simple-completion-language-server";
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,29 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  stdenvNoCC,
 | 
					 | 
				
			||||||
  fetchzip,
 | 
					 | 
				
			||||||
}:
 | 
					 | 
				
			||||||
stdenvNoCC.mkDerivation rec {
 | 
					 | 
				
			||||||
  pname = "ttf-ms-win10";
 | 
					 | 
				
			||||||
  version = "1.0";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  src = fetchzip {
 | 
					 | 
				
			||||||
    url = "https://github.com/streetsamurai00mi/ttf-ms-win10/archive/refs/heads/build.zip";
 | 
					 | 
				
			||||||
    hash = "sha256-UwkHlrSRaXhfoMlimyXFETV9yq1SbvUXykrhigf+wP8=";
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  installPhase = ''
 | 
					 | 
				
			||||||
    runHook preInstall
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    install -Dm644 *.ttf -t $out/share/fonts/truetype
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    runHook postInstall
 | 
					 | 
				
			||||||
  '';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  meta = with lib; {
 | 
					 | 
				
			||||||
    homepage = "https://github.com/streetsamurai00mi/ttf-ms-win10";
 | 
					 | 
				
			||||||
    description = "Windows 10 ttf Fonts";
 | 
					 | 
				
			||||||
    license = licenses.unfree;
 | 
					 | 
				
			||||||
    maintainers = [];
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue