Compare commits
	
		
			28 commits
		
	
	
		
			05c888f20a
			...
			6754eed1d8
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
							 | 
						6754eed1d8 | ||
| 
							 | 
						1735ec5594 | ||
| 
							 | 
						9cf6333f4b | ||
| 
							 | 
						8fc672bfcf | ||
| 
							 | 
						87062e05c4 | ||
| 
							 | 
						1bebb5d096 | ||
| 
							 | 
						f89c75aad2 | ||
| 
							 | 
						f5e1b9c7ee | ||
| 
							 | 
						f1855c1265 | ||
| 
							 | 
						a208ca4df2 | ||
| 
							 | 
						1f1b901330 | ||
| 
							 | 
						1b3b7cf607 | ||
| 
							 | 
						ff0c287624 | ||
| 
							 | 
						4d28e476dc | ||
| 
							 | 
						232728a053 | ||
| 
							 | 
						29d96e90a4 | ||
| 
							 | 
						084e819232 | ||
| 
							 | 
						78400473ef | ||
| 
							 | 
						2059b854de | ||
| 
							 | 
						d2b11ad2e2 | ||
| 
							 | 
						3ba30b1a6d | ||
| 
							 | 
						c0d650d54f | ||
| 
							 | 
						a377c8e30b | ||
| 
							 | 
						26625c6952 | ||
| 
							 | 
						ecc65f071d | ||
| 
							 | 
						16422ccbd7 | ||
| 
							 | 
						a63f1c69c7 | ||
| 
							 | 
						7524f74f76 | 
					 94 changed files with 1161 additions and 1080 deletions
				
			
		
							
								
								
									
										24
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										24
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							| 
						 | 
				
			
			@ -266,11 +266,11 @@
 | 
			
		|||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1751117291,
 | 
			
		||||
        "narHash": "sha256-iOeiPypZkl6uPL5mQ4aFG4wYVs9w9BJZ2/5XHlLgyIk=",
 | 
			
		||||
        "lastModified": 1757763404,
 | 
			
		||||
        "narHash": "sha256-a1h+58wDOtbQXrHoZwLwB7PhXwFhBXRHhNRhAQGq/oY=",
 | 
			
		||||
        "ref": "refs/heads/main",
 | 
			
		||||
        "rev": "2a4818dc2158cbdad34a701ab12d0b1cf7f52c46",
 | 
			
		||||
        "revCount": 45,
 | 
			
		||||
        "rev": "07a5fbca27ec941c841ad93f2ac65bc529225a51",
 | 
			
		||||
        "revCount": 46,
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.berlin.ccc.de/servicepoint/servicepoint-cli.git"
 | 
			
		||||
      },
 | 
			
		||||
| 
						 | 
				
			
			@ -290,11 +290,11 @@
 | 
			
		|||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1752323001,
 | 
			
		||||
        "narHash": "sha256-YEcYegmlv12yN9VWrz2qt0nyL+9EeGIlrDvac8Pf7Cw=",
 | 
			
		||||
        "lastModified": 1757763091,
 | 
			
		||||
        "narHash": "sha256-V3E6JKGzCrq5u+hp38sAdKv/EoxU+X0qfSoBIPxALi4=",
 | 
			
		||||
        "ref": "refs/heads/main",
 | 
			
		||||
        "rev": "75a0ae7a59e687bea5f92791a2d64c048f35846d",
 | 
			
		||||
        "revCount": 119,
 | 
			
		||||
        "rev": "493b7b0343334019b372176f811a966839ba9aa5",
 | 
			
		||||
        "revCount": 121,
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.berlin.ccc.de/servicepoint/servicepoint-simulator.git"
 | 
			
		||||
      },
 | 
			
		||||
| 
						 | 
				
			
			@ -358,11 +358,11 @@
 | 
			
		|||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1755431984,
 | 
			
		||||
        "narHash": "sha256-iBgSdzkta6zQ2eIRWjmJTLZ3b1e1EZiCyCPcgCdqPGU=",
 | 
			
		||||
        "lastModified": 1757847061,
 | 
			
		||||
        "narHash": "sha256-YW8fpD35tD+1zTkxk0WhP7FJSL15JlFfG7tscgkdI+A=",
 | 
			
		||||
        "ref": "refs/heads/main",
 | 
			
		||||
        "rev": "31abcb7a9583c4ed931f658eca3e3c1970e60814",
 | 
			
		||||
        "revCount": 28,
 | 
			
		||||
        "rev": "ddff8c9b206564dd9b9007e4e894afa6f7860fc8",
 | 
			
		||||
        "revCount": 30,
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.berlin.ccc.de/vinzenz/zerforschen.plus"
 | 
			
		||||
      },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										242
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										242
									
								
								flake.nix
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,7 +1,6 @@
 | 
			
		|||
{
 | 
			
		||||
  inputs = {
 | 
			
		||||
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
 | 
			
		||||
 | 
			
		||||
    nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
 | 
			
		||||
 | 
			
		||||
    home-manager = {
 | 
			
		||||
| 
						 | 
				
			
			@ -50,7 +49,7 @@
 | 
			
		|||
  };
 | 
			
		||||
 | 
			
		||||
  outputs =
 | 
			
		||||
    inputs@{
 | 
			
		||||
    {
 | 
			
		||||
      self,
 | 
			
		||||
      nixpkgs,
 | 
			
		||||
      home-manager,
 | 
			
		||||
| 
						 | 
				
			
			@ -59,31 +58,74 @@
 | 
			
		|||
      nixpkgs-unstable,
 | 
			
		||||
      servicepoint-cli,
 | 
			
		||||
      servicepoint-simulator,
 | 
			
		||||
      naersk,
 | 
			
		||||
      nix-vscode-extensions,
 | 
			
		||||
      ...
 | 
			
		||||
    }:
 | 
			
		||||
    let
 | 
			
		||||
      devices = {
 | 
			
		||||
        vinzenz-lpt2 = "x86_64-linux";
 | 
			
		||||
        vinzenz-pc2 = "x86_64-linux";
 | 
			
		||||
        ronja-pc = "x86_64-linux";
 | 
			
		||||
        hetzner-vpn2 = "aarch64-linux";
 | 
			
		||||
        forgejo-runner-1 = "aarch64-linux";
 | 
			
		||||
        vinzenz-lpt2 = {
 | 
			
		||||
          system = "x86_64-linux";
 | 
			
		||||
          additional-modules = [
 | 
			
		||||
            self.nixosModules.user-vinzenz
 | 
			
		||||
 | 
			
		||||
            self.nixosModules.gnome
 | 
			
		||||
            self.nixosModules.wine-gaming
 | 
			
		||||
            self.nixosModules.steam
 | 
			
		||||
            self.nixosModules.printing
 | 
			
		||||
            self.nixosModules.podman
 | 
			
		||||
            self.nixosModules.vinzenz-desktop-settings
 | 
			
		||||
            self.nixosModules.intel-graphics
 | 
			
		||||
          ];
 | 
			
		||||
          home-manager-users = {
 | 
			
		||||
            inherit (self.homeConfigurations) vinzenz;
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
        vinzenz-pc2 = {
 | 
			
		||||
          system = "x86_64-linux";
 | 
			
		||||
          additional-modules = [
 | 
			
		||||
            self.nixosModules.user-vinzenz
 | 
			
		||||
            self.nixosModules.user-ronja
 | 
			
		||||
 | 
			
		||||
            self.nixosModules.gnome
 | 
			
		||||
            self.nixosModules.wine-gaming
 | 
			
		||||
            self.nixosModules.steam
 | 
			
		||||
            self.nixosModules.printing
 | 
			
		||||
            self.nixosModules.podman
 | 
			
		||||
            self.nixosModules.vinzenz-desktop-settings
 | 
			
		||||
            self.nixosModules.amd-graphics
 | 
			
		||||
          ];
 | 
			
		||||
          home-manager-users = {
 | 
			
		||||
            inherit (self.homeConfigurations) vinzenz ronja;
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
        ronja-pc = {
 | 
			
		||||
          system = "x86_64-linux";
 | 
			
		||||
          additional-modules = [
 | 
			
		||||
            self.nixosModules.user-ronja
 | 
			
		||||
 | 
			
		||||
            self.nixosModules.gnome
 | 
			
		||||
            self.nixosModules.steam
 | 
			
		||||
            self.nixosModules.wine-gaming
 | 
			
		||||
            self.nixosModules.vinzenz-desktop-settings
 | 
			
		||||
          ];
 | 
			
		||||
          home-manager-users = {
 | 
			
		||||
            inherit (self.homeConfigurations) ronja;
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
        hetzner-vpn2 = {
 | 
			
		||||
          system = "aarch64-linux";
 | 
			
		||||
        };
 | 
			
		||||
        forgejo-runner-1 = {
 | 
			
		||||
          system = "aarch64-linux";
 | 
			
		||||
          additional-modules = [ self.nixosModules.podman ];
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
      homeDevices = [
 | 
			
		||||
        "vinzenz-lpt2"
 | 
			
		||||
        "vinzenz-pc2"
 | 
			
		||||
        "ronja-pc"
 | 
			
		||||
      ];
 | 
			
		||||
      forDevice = f: nixpkgs.lib.mapAttrs f devices;
 | 
			
		||||
      supported-systems = [
 | 
			
		||||
        "x86_64-linux"
 | 
			
		||||
        "aarch64-linux"
 | 
			
		||||
      ];
 | 
			
		||||
      inherit (nixpkgs) lib;
 | 
			
		||||
      forDevice = f: lib.mapAttrs (device: value: f (value // { inherit device; })) devices;
 | 
			
		||||
      supported-systems = lib.attrsets.mapAttrsToList (k: v: v.system) devices;
 | 
			
		||||
      forAllSystems =
 | 
			
		||||
        f:
 | 
			
		||||
        nixpkgs.lib.genAttrs supported-systems (
 | 
			
		||||
        lib.genAttrs supported-systems (
 | 
			
		||||
          system:
 | 
			
		||||
          f rec {
 | 
			
		||||
            inherit system;
 | 
			
		||||
| 
						 | 
				
			
			@ -91,67 +133,141 @@
 | 
			
		|||
          }
 | 
			
		||||
        );
 | 
			
		||||
    in
 | 
			
		||||
    rec {
 | 
			
		||||
    {
 | 
			
		||||
      lib = {
 | 
			
		||||
        importDir =
 | 
			
		||||
          dir:
 | 
			
		||||
          (lib.attrsets.mapAttrs' (
 | 
			
		||||
            m: _:
 | 
			
		||||
            lib.attrsets.nameValuePair (lib.strings.removeSuffix ".nix" m) { imports = [ "${dir}/${m}" ]; }
 | 
			
		||||
          ) (builtins.readDir dir));
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      overlays = {
 | 
			
		||||
        unstable-packages = final: prev: {
 | 
			
		||||
          unstable = import nixpkgs-unstable {
 | 
			
		||||
            inherit (prev) system config;
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      nixosModules = (self.lib.importDir ./nixosModules) // {
 | 
			
		||||
        niri = {
 | 
			
		||||
          imports = [ niri.nixosModules.niri ];
 | 
			
		||||
          nixpkgs.overlays = [ niri.overlays.niri ];
 | 
			
		||||
        };
 | 
			
		||||
        pkgs-unstable = {
 | 
			
		||||
          nixpkgs.overlays = [ self.overlays.unstable-packages ];
 | 
			
		||||
        };
 | 
			
		||||
        pkgs-vscode-extensions = {
 | 
			
		||||
          nixpkgs.overlays = [ nix-vscode-extensions.overlays.default ];
 | 
			
		||||
        };
 | 
			
		||||
        # required modules to use other modules, should not do anything on their own
 | 
			
		||||
        default = {
 | 
			
		||||
          imports = [ self.nixosModules.allowed-unfree-list ];
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      homeModules = self.lib.importDir ./homeModules;
 | 
			
		||||
      homeConfigurations = self.lib.importDir ./homeConfigurations;
 | 
			
		||||
 | 
			
		||||
      formatter = forAllSystems ({ pkgs, ... }: pkgs.nixfmt-tree);
 | 
			
		||||
 | 
			
		||||
      nixosConfigurations = forDevice (
 | 
			
		||||
        device: system:
 | 
			
		||||
        {
 | 
			
		||||
          device,
 | 
			
		||||
          system,
 | 
			
		||||
          home-manager-users ? { },
 | 
			
		||||
          additional-modules ? [ ],
 | 
			
		||||
        }:
 | 
			
		||||
        let
 | 
			
		||||
          specialArgs = {
 | 
			
		||||
            inherit inputs device;
 | 
			
		||||
            inherit device;
 | 
			
		||||
          };
 | 
			
		||||
        in
 | 
			
		||||
        nixpkgs.lib.nixosSystem {
 | 
			
		||||
          inherit system specialArgs;
 | 
			
		||||
          modules = [
 | 
			
		||||
            { networking.hostName = device; }
 | 
			
		||||
 | 
			
		||||
            ./modules/globalinstalls.nix
 | 
			
		||||
            ./modules/networking.nix
 | 
			
		||||
            ./modules/nixpkgs.nix
 | 
			
		||||
            ./modules/lix.nix
 | 
			
		||||
 | 
			
		||||
            ./hosts/${device}/hardware.nix
 | 
			
		||||
            ./hosts/${device}/imports.nix
 | 
			
		||||
            ./hosts/${device}/configuration.nix
 | 
			
		||||
 | 
			
		||||
            {
 | 
			
		||||
              networking.hostName = device;
 | 
			
		||||
              nixpkgs = {
 | 
			
		||||
                inherit system;
 | 
			
		||||
                hostPlatform = lib.mkDefault system;
 | 
			
		||||
              };
 | 
			
		||||
              system = {
 | 
			
		||||
                stateVersion = "22.11";
 | 
			
		||||
                autoUpgrade.flake = "git+https://git.berlin.ccc.de/vinzenz/nixos-configuration.git";
 | 
			
		||||
              };
 | 
			
		||||
 | 
			
		||||
              nixpkgs.overlays = [
 | 
			
		||||
                overlays.unstable-packages
 | 
			
		||||
                self.overlays.unstable-packages
 | 
			
		||||
              ];
 | 
			
		||||
 | 
			
		||||
              nix.settings.experimental-features = [
 | 
			
		||||
                "nix-command"
 | 
			
		||||
                "flakes"
 | 
			
		||||
              ];
 | 
			
		||||
 | 
			
		||||
              documentation = {
 | 
			
		||||
                info.enable = false; # info pages and the info command
 | 
			
		||||
                doc.enable = false; # documentation distributed in packages' /share/doc
 | 
			
		||||
              };
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            ./nixosConfigurations/${device}
 | 
			
		||||
 | 
			
		||||
            self.nixosModules.default
 | 
			
		||||
            self.nixosModules.lix-is-nix
 | 
			
		||||
            self.nixosModules.globalinstalls
 | 
			
		||||
            self.nixosModules.autoupdate
 | 
			
		||||
            self.nixosModules.openssh
 | 
			
		||||
            self.nixosModules.tailscale
 | 
			
		||||
            self.nixosModules.allowed-unfree-list
 | 
			
		||||
            self.nixosModules.extra-caches
 | 
			
		||||
            self.nixosModules.systemd-boot
 | 
			
		||||
 | 
			
		||||
            zerforschen-plus.nixosModules.default
 | 
			
		||||
          ]
 | 
			
		||||
          ++ (nixpkgs.lib.optionals (builtins.elem device homeDevices) [
 | 
			
		||||
            home-manager.nixosModules.home-manager
 | 
			
		||||
            { home-manager.extraSpecialArgs = specialArgs; }
 | 
			
		||||
            ./modules/home-manager.nix
 | 
			
		||||
 | 
			
		||||
            ./modules/i18n.nix
 | 
			
		||||
 | 
			
		||||
            niri.nixosModules.niri
 | 
			
		||||
          ++ (nixpkgs.lib.optionals (home-manager-users != { }) [
 | 
			
		||||
            {
 | 
			
		||||
              nixpkgs.overlays = [
 | 
			
		||||
                niri.overlays.niri
 | 
			
		||||
                overlays.servicepoint-packages
 | 
			
		||||
                nix-vscode-extensions.overlays.default
 | 
			
		||||
              home-manager = {
 | 
			
		||||
                extraSpecialArgs = specialArgs;
 | 
			
		||||
                useGlobalPkgs = true;
 | 
			
		||||
                useUserPackages = true;
 | 
			
		||||
              };
 | 
			
		||||
 | 
			
		||||
              time.timeZone = "Europe/Berlin";
 | 
			
		||||
 | 
			
		||||
              home-manager.sharedModules = [
 | 
			
		||||
                { home.stateVersion = "22.11"; }
 | 
			
		||||
                self.homeModules.adwaita
 | 
			
		||||
                self.homeModules.git
 | 
			
		||||
                self.homeModules.templates
 | 
			
		||||
                self.homeModules.zsh-basics
 | 
			
		||||
                self.homeModules.nano
 | 
			
		||||
                self.homeModules.gnome-extensions
 | 
			
		||||
              ];
 | 
			
		||||
 | 
			
		||||
              home-manager.users = home-manager-users;
 | 
			
		||||
            }
 | 
			
		||||
          ]);
 | 
			
		||||
 | 
			
		||||
            self.nixosModules.pkgs-unstable
 | 
			
		||||
            self.nixosModules.pkgs-vscode-extensions
 | 
			
		||||
            self.nixosModules.niri
 | 
			
		||||
            self.nixosModules.kdeconnect
 | 
			
		||||
            self.nixosModules.en-de
 | 
			
		||||
            self.nixosModules.gnome
 | 
			
		||||
            self.nixosModules.modern-desktop
 | 
			
		||||
            self.nixosModules.nix-ld
 | 
			
		||||
            self.nixosModules.quiet-boot
 | 
			
		||||
            self.nixosModules.firmware-updates
 | 
			
		||||
 | 
			
		||||
            home-manager.nixosModules.home-manager
 | 
			
		||||
            servicepoint-simulator.nixosModules.default
 | 
			
		||||
            servicepoint-cli.nixosModules.default
 | 
			
		||||
          ])
 | 
			
		||||
          ++ additional-modules;
 | 
			
		||||
        }
 | 
			
		||||
      );
 | 
			
		||||
 | 
			
		||||
      overlays = {
 | 
			
		||||
        unstable-packages = final: prev: {
 | 
			
		||||
          unstable = import nixpkgs-unstable {
 | 
			
		||||
            system = prev.system;
 | 
			
		||||
            config = prev.config;
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
        servicepoint-packages = final: prev: {
 | 
			
		||||
          servicepoint-cli = servicepoint-cli.legacyPackages."${prev.system}".servicepoint-cli;
 | 
			
		||||
          servicepoint-simulator =
 | 
			
		||||
            servicepoint-simulator.legacyPackages."${prev.system}".servicepoint-simulator;
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      formatter = forAllSystems ({ pkgs, ... }: pkgs.nixfmt-tree);
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,25 +0,0 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config = {
 | 
			
		||||
    # Define user account
 | 
			
		||||
    users.users.ronja = {
 | 
			
		||||
      isNormalUser = true;
 | 
			
		||||
      name = "ronja";
 | 
			
		||||
      description = "Ronja";
 | 
			
		||||
      home = "/home/ronja";
 | 
			
		||||
      extraGroups = [
 | 
			
		||||
        "networkmanager"
 | 
			
		||||
        "wheel"
 | 
			
		||||
        "games"
 | 
			
		||||
        "podman"
 | 
			
		||||
        "openvscode-server"
 | 
			
		||||
      ];
 | 
			
		||||
      shell = pkgs.zsh;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    home-manager.users.ronja.imports = [
 | 
			
		||||
      ./configuration.nix
 | 
			
		||||
      ./vscode.nix
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,51 +0,0 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config = {
 | 
			
		||||
    users.users.vinzenz = {
 | 
			
		||||
      isNormalUser = true;
 | 
			
		||||
      name = "vinzenz";
 | 
			
		||||
      description = "Vinzenz";
 | 
			
		||||
      home = "/home/vinzenz";
 | 
			
		||||
      extraGroups = [
 | 
			
		||||
        "networkmanager"
 | 
			
		||||
        "wheel"
 | 
			
		||||
        "games"
 | 
			
		||||
        "dialout"
 | 
			
		||||
        "podman"
 | 
			
		||||
        "nginx"
 | 
			
		||||
        "adbusers"
 | 
			
		||||
        "kvm"
 | 
			
		||||
        "input"
 | 
			
		||||
        "video"
 | 
			
		||||
      ];
 | 
			
		||||
      shell = pkgs.zsh;
 | 
			
		||||
      autoSubUidGidRange = true;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    nix.settings.trusted-users = [ "vinzenz" ];
 | 
			
		||||
 | 
			
		||||
    home-manager.users.vinzenz.imports = [
 | 
			
		||||
      ./configuration.nix
 | 
			
		||||
      ./editorconfig.nix
 | 
			
		||||
      ./fuzzel.nix
 | 
			
		||||
      ./git.nix
 | 
			
		||||
      ./gnome.nix
 | 
			
		||||
      #./niri.nix
 | 
			
		||||
      ./ssh.nix
 | 
			
		||||
      ./swaylock.nix
 | 
			
		||||
      ./vscode.nix
 | 
			
		||||
      ./waybar.nix
 | 
			
		||||
      ./zsh.nix
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    allowedUnfreePackages = [
 | 
			
		||||
      "rider"
 | 
			
		||||
      "pycharm-professional"
 | 
			
		||||
      "jetbrains-toolbox"
 | 
			
		||||
 | 
			
		||||
      "anydesk"
 | 
			
		||||
 | 
			
		||||
      "vscode-extension-ms-dotnettools-csharp"
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,26 +0,0 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config = {
 | 
			
		||||
    home.packages =
 | 
			
		||||
      with pkgs.gnomeExtensions;
 | 
			
		||||
      [
 | 
			
		||||
        gsconnect
 | 
			
		||||
        # battery-health-charging
 | 
			
		||||
        quick-settings-tweaker
 | 
			
		||||
        solaar-extension
 | 
			
		||||
        alphabetical-app-grid
 | 
			
		||||
      ]
 | 
			
		||||
      ++ (with pkgs; [ foliate ]);
 | 
			
		||||
 | 
			
		||||
    dconf.settings = {
 | 
			
		||||
      "org/gnome/shell" = {
 | 
			
		||||
        enabled-extensions = [
 | 
			
		||||
          "GPaste@gnome-shell-extensions.gnome.org"
 | 
			
		||||
          "gsconnect@andyholmes.github.io"
 | 
			
		||||
          "solaar-extension@sidevesh"
 | 
			
		||||
          "AlphabeticalAppGrid@stuarthayhurst"
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
{ config, pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  imports = [ ./vscode.nix ];
 | 
			
		||||
  config = {
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
      ## Apps
 | 
			
		||||
| 
						 | 
				
			
			@ -60,8 +60,8 @@
 | 
			
		|||
    nodeenv                 # node.js environment (https://github.com/ekalinin/nodeenv)
 | 
			
		||||
    # node_version          # node.js version
 | 
			
		||||
    # go_version            # go version (https://golang.org)
 | 
			
		||||
    # rust_version          # rustc version (https://www.rust-lang.org)
 | 
			
		||||
    # dotnet_version        # .NET version (https://dotnet.microsoft.com)
 | 
			
		||||
    rust_version          # rustc version (https://www.rust-lang.org)
 | 
			
		||||
    dotnet_version        # .NET version (https://dotnet.microsoft.com)
 | 
			
		||||
    # php_version           # php version (https://www.php.net/)
 | 
			
		||||
    # laravel_version       # laravel php framework version (https://laravel.com/)
 | 
			
		||||
    # java_version          # java version (https://www.java.com/)
 | 
			
		||||
| 
						 | 
				
			
			@ -756,14 +756,14 @@
 | 
			
		|||
  typeset -g POWERLEVEL9K_RANGER_BACKGROUND=0
 | 
			
		||||
  # Custom icon.
 | 
			
		||||
  # typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐'
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  ####################[ yazi: yazi shell (https://github.com/sxyazi/yazi) ]#####################
 | 
			
		||||
  # Yazi shell color.
 | 
			
		||||
  typeset -g POWERLEVEL9K_YAZI_FOREGROUND=3
 | 
			
		||||
  typeset -g POWERLEVEL9K_YAZI_BACKGROUND=0
 | 
			
		||||
  # Custom icon.
 | 
			
		||||
  # typeset -g POWERLEVEL9K_YAZI_VISUAL_IDENTIFIER_EXPANSION='⭐'
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  ######################[ nnn: nnn shell (https://github.com/jarun/nnn) ]#######################
 | 
			
		||||
  # Nnn shell color.
 | 
			
		||||
  typeset -g POWERLEVEL9K_NNN_FOREGROUND=0
 | 
			
		||||
| 
						 | 
				
			
			@ -56,6 +56,10 @@
 | 
			
		|||
    icu
 | 
			
		||||
 | 
			
		||||
    nextcloud-client
 | 
			
		||||
 | 
			
		||||
    lutris
 | 
			
		||||
 | 
			
		||||
    foliate
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  home.file = {
 | 
			
		||||
							
								
								
									
										15
									
								
								homeConfigurations/vinzenz/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								homeConfigurations/vinzenz/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,15 @@
 | 
			
		|||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./configuration.nix
 | 
			
		||||
    ./editorconfig.nix
 | 
			
		||||
    ./fuzzel.nix
 | 
			
		||||
    ./git.nix
 | 
			
		||||
    ./gnome.nix
 | 
			
		||||
    #./niri.nix
 | 
			
		||||
    ./ssh.nix
 | 
			
		||||
    ./swaylock.nix
 | 
			
		||||
    ./vscode.nix
 | 
			
		||||
    ./waybar.nix
 | 
			
		||||
    ./zsh.nix
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,3 @@
 | 
			
		|||
{ ... }:
 | 
			
		||||
{
 | 
			
		||||
  config.editorconfig = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,3 @@
 | 
			
		|||
{ ... }:
 | 
			
		||||
{
 | 
			
		||||
  config.programs.git = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
							
								
								
									
										31
									
								
								homeConfigurations/vinzenz/gnome.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								homeConfigurations/vinzenz/gnome.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,31 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config = {
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
      gitg
 | 
			
		||||
      meld
 | 
			
		||||
      simple-scan
 | 
			
		||||
      pinta
 | 
			
		||||
      dconf-editor
 | 
			
		||||
      impression # usb image writer
 | 
			
		||||
      papers # pdf viewer
 | 
			
		||||
      gnome-software # for flatpak apps
 | 
			
		||||
      gnomeExtensions.solaar-extension
 | 
			
		||||
      snapshot
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    dconf.settings = {
 | 
			
		||||
      "org/gnome/shell".enabled-extensions = [
 | 
			
		||||
        "GPaste@gnome-shell-extensions.gnome.org"
 | 
			
		||||
        "solaar-extension@sidevesh"
 | 
			
		||||
      ];
 | 
			
		||||
      "org/gnome/desktop/interface".color-scheme = "prefer-dark";
 | 
			
		||||
      "org/gnome/desktop/wm/keybindings" = {
 | 
			
		||||
        switch-windows = [ "<Alt>Tab" ];
 | 
			
		||||
        switch-windows-backward = [ "<Shift><Alt>Tab" ];
 | 
			
		||||
        switch-applications = [ "<Super>Tab" ];
 | 
			
		||||
        switch-applications-backward = [ "<Shift><Super>Tab" ];
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -16,16 +16,7 @@
 | 
			
		|||
      name = "adwaita-dark";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    services = {
 | 
			
		||||
      kdeconnect = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        # this still shows up in gnome session starting with 25.05
 | 
			
		||||
        # indicator = true;
 | 
			
		||||
      };
 | 
			
		||||
      mako = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
    services.mako.enable = true;
 | 
			
		||||
 | 
			
		||||
    programs.niri.settings = {
 | 
			
		||||
      input.keyboard.xkb.layout = "de";
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,3 @@
 | 
			
		|||
{ ... }:
 | 
			
		||||
{
 | 
			
		||||
  config.programs.ssh = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -20,7 +20,7 @@
 | 
			
		|||
      my-direnvallow = "echo \"use nix\" > .envrc && direnv allow";
 | 
			
		||||
      my-ip4 = "ip addr show | grep 192";
 | 
			
		||||
      deadnix = "nix run github:astro/deadnix -- ";
 | 
			
		||||
      statix = "nix run git+https://git.peppe.rs/languages/statix -- ";
 | 
			
		||||
      statix = "nix run github:oppiliappan/statix -- ";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    history = {
 | 
			
		||||
							
								
								
									
										12
									
								
								homeModules/adwaita.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								homeModules/adwaita.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,12 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  gtk = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    iconTheme.name = "Adwaita";
 | 
			
		||||
    cursorTheme.name = "Adwaita";
 | 
			
		||||
    theme = {
 | 
			
		||||
      name = "adw-gtk3-dark";
 | 
			
		||||
      package = pkgs.adw-gtk3;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								homeModules/git.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								homeModules/git.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,13 @@
 | 
			
		|||
{
 | 
			
		||||
  programs = {
 | 
			
		||||
    git = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      extraConfig.init.defaultBranch = "main";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    gh = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      gitCredentialHelper.enable = true;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										101
									
								
								homeModules/gnome-extensions.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								homeModules/gnome-extensions.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,101 @@
 | 
			
		|||
{
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  osConfig,
 | 
			
		||||
  config,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  options.vinzenz.gnome-extensions =
 | 
			
		||||
    let
 | 
			
		||||
      mkDefaultEnabledOption =
 | 
			
		||||
        name:
 | 
			
		||||
        lib.mkOption {
 | 
			
		||||
          default = true;
 | 
			
		||||
          example = false;
 | 
			
		||||
          description = "Whether to enable ${name}.";
 | 
			
		||||
          type = lib.types.bool;
 | 
			
		||||
        };
 | 
			
		||||
    in
 | 
			
		||||
    {
 | 
			
		||||
      enable = mkDefaultEnabledOption "gnome extended options";
 | 
			
		||||
      appindicator.enable = mkDefaultEnabledOption "appindicator";
 | 
			
		||||
      caffeine.enable = mkDefaultEnabledOption "caffeine";
 | 
			
		||||
      tailscale-qs.enable = lib.mkOption {
 | 
			
		||||
        default = osConfig.services.tailscale.enable;
 | 
			
		||||
        example = true;
 | 
			
		||||
        description = "Whether to enable tailscale quick setting.";
 | 
			
		||||
        type = lib.types.bool;
 | 
			
		||||
      };
 | 
			
		||||
      alphabetic-apps.enable = mkDefaultEnabledOption "alphabetic app grid";
 | 
			
		||||
      clock-show-seconds = mkDefaultEnabledOption "clock seconds";
 | 
			
		||||
      show-battery-percentage = mkDefaultEnabledOption "battery percentage";
 | 
			
		||||
      enable-numlock = mkDefaultEnabledOption "num lock on login";
 | 
			
		||||
      enable-systool-warning = lib.mkEnableOption "system configuration tool warning";
 | 
			
		||||
      edge-tiling = mkDefaultEnabledOption "edge tiling";
 | 
			
		||||
      dynamic-workspaces = mkDefaultEnabledOption "dynamic workspaces";
 | 
			
		||||
      tap-to-click = mkDefaultEnabledOption "tap to click";
 | 
			
		||||
      two-finger-scrolling = mkDefaultEnabledOption "two finger scrolling";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  config =
 | 
			
		||||
    let
 | 
			
		||||
      cfg = config.vinzenz.gnome-extensions;
 | 
			
		||||
    in
 | 
			
		||||
    lib.mkIf cfg.enable (
 | 
			
		||||
      lib.mkMerge [
 | 
			
		||||
        {
 | 
			
		||||
          dconf = {
 | 
			
		||||
            enable = true;
 | 
			
		||||
            settings = {
 | 
			
		||||
              "org/gnome/shell" = {
 | 
			
		||||
                disable-user-extensions = false;
 | 
			
		||||
                disabled-extensions = [ ];
 | 
			
		||||
                enabled-extensions = [ ];
 | 
			
		||||
              };
 | 
			
		||||
 | 
			
		||||
              "ca/desrt/dconf-editor".show-warning = cfg.enable-systool-warning;
 | 
			
		||||
              "org/gnome/tweaks".show-extensions-notice = cfg.enable-systool-warning;
 | 
			
		||||
              "org/gnome/mutter" = {
 | 
			
		||||
                inherit (cfg) edge-tiling dynamic-workspaces;
 | 
			
		||||
              };
 | 
			
		||||
              "org/gnome/desktop/peripherals/touchpad" = {
 | 
			
		||||
                inherit (cfg) tap-to-click;
 | 
			
		||||
                two-finger-scrolling-enabled = cfg.two-finger-scrolling;
 | 
			
		||||
              };
 | 
			
		||||
              "org/gnome/desktop/interface" = {
 | 
			
		||||
                inherit (cfg) clock-show-seconds show-battery-percentage;
 | 
			
		||||
              };
 | 
			
		||||
            };
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        (lib.mkIf cfg.tailscale-qs.enable {
 | 
			
		||||
          home.packages = [ pkgs.gnomeExtensions.tailscale-qs ];
 | 
			
		||||
          dconf.settings."org/gnome/shell".enabled-extensions = [ "tailscale@joaophi.github.com" ];
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        (lib.mkIf cfg.appindicator.enable {
 | 
			
		||||
          home.packages = [ pkgs.gnomeExtensions.appindicator ];
 | 
			
		||||
          dconf.settings."org/gnome/shell".enabled-extensions = [ "appindicatorsupport@rgcjonas.gmail.com" ];
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        (lib.mkIf cfg.caffeine.enable {
 | 
			
		||||
          home.packages = [ pkgs.gnomeExtensions.caffeine ];
 | 
			
		||||
          dconf.settings."org/gnome/shell".enabled-extensions = [ "caffeine@patapon.info" ];
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        (lib.mkIf cfg.alphabetic-apps.enable {
 | 
			
		||||
          home.packages = [ pkgs.gnomeExtensions.alphabetical-app-grid ];
 | 
			
		||||
          dconf.settings = {
 | 
			
		||||
            "org/gnome/shell".enabled-extensions = [ "AlphabeticalAppGrid@stuarthayhurst" ];
 | 
			
		||||
            "org/gnome/shell/extensions/alphabetical-app-grid".folder-order-position = "start";
 | 
			
		||||
          };
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        (lib.mkIf cfg.enable-numlock {
 | 
			
		||||
          dconf.settings."org/gnome/desktop/peripherals/keyboard".numlock-state = true;
 | 
			
		||||
        })
 | 
			
		||||
      ]
 | 
			
		||||
    );
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										9
									
								
								homeModules/nano.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								homeModules/nano.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,9 @@
 | 
			
		|||
{
 | 
			
		||||
  home = {
 | 
			
		||||
    sessionVariables.EDITOR = "nano";
 | 
			
		||||
    file.".nanorc".text = ''
 | 
			
		||||
      set linenumbers
 | 
			
		||||
      set mouse
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										12
									
								
								homeModules/templates.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								homeModules/templates.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,12 @@
 | 
			
		|||
{
 | 
			
		||||
  home.file = {
 | 
			
		||||
    "Templates/Empty file".text = "";
 | 
			
		||||
    "Templates/Empty bash script".text = ''
 | 
			
		||||
      #!/usr/bin/env bash
 | 
			
		||||
      # abort on error, undefined variables
 | 
			
		||||
      set -eu
 | 
			
		||||
      # print commands before execution
 | 
			
		||||
      set -x
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								homeModules/zsh-basics.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								homeModules/zsh-basics.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,13 @@
 | 
			
		|||
{
 | 
			
		||||
  programs = {
 | 
			
		||||
    command-not-found.enable = true;
 | 
			
		||||
    dircolors.enable = true;
 | 
			
		||||
 | 
			
		||||
    zsh = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      syntaxHighlighting.enable = true;
 | 
			
		||||
      autosuggestion.enable = true;
 | 
			
		||||
      enableVteIntegration = true;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								hooks/pre-commit
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										6
									
								
								hooks/pre-commit
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
set -euxo pipefail
 | 
			
		||||
 | 
			
		||||
nix fmt
 | 
			
		||||
 | 
			
		||||
nix flake check --all-systems --show-trace
 | 
			
		||||
| 
						 | 
				
			
			@ -1,15 +0,0 @@
 | 
			
		|||
{ ... }:
 | 
			
		||||
{
 | 
			
		||||
  # uncomment for build check on non arm system (requires --impure)
 | 
			
		||||
  # nixpkgs.buildPlatform = builtins.currentSystem;
 | 
			
		||||
  services.tailscale.useRoutingFeatures = "both";
 | 
			
		||||
  system.autoUpgrade.allowReboot = true;
 | 
			
		||||
 | 
			
		||||
  users.users = {
 | 
			
		||||
    root.openssh.authorizedKeys.keys = [
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFCJUpbpB3KEKVoKWsKoar9J4RNah8gmQoSH6jQEw5dY vinzenz-pixel-JuiceSSH''
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO1CRn4yYTL4XUdCebE8Z4ZeuMujBjorTdWifg911EOv vinzenz-pc2 home roaming''
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPDNpLDmctyqGpow/ElQvdhY4BLBPS/sigDJ1QEcC7wC vinzenz-lpt2-roaming''
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,6 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ../../modules/podman.nix
 | 
			
		||||
    ./forgejo-runner.nix
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,21 +0,0 @@
 | 
			
		|||
{ ... }:
 | 
			
		||||
{
 | 
			
		||||
  # uncomment for build check on non arm system (requires --impure)
 | 
			
		||||
  # nixpkgs.buildPlatform = builtins.currentSystem;
 | 
			
		||||
 | 
			
		||||
  services.tailscale.useRoutingFeatures = "both";
 | 
			
		||||
 | 
			
		||||
  users.users = {
 | 
			
		||||
    root.openssh.authorizedKeys.keys = [
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICdYqY3Y1/f1bsAi5Qfyr/UWuX9ixu96IeAlhoQaJkbf''
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFCJUpbpB3KEKVoKWsKoar9J4RNah8gmQoSH6jQEw5dY vinzenz-pixel-JuiceSSH''
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO1CRn4yYTL4XUdCebE8Z4ZeuMujBjorTdWifg911EOv vinzenz-pc2 home roaming''
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPDNpLDmctyqGpow/ElQvdhY4BLBPS/sigDJ1QEcC7wC vinzenz-lpt2-roaming''
 | 
			
		||||
    ];
 | 
			
		||||
    #ronja.openssh.authorizedKeys.keys = [
 | 
			
		||||
    #  ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIALWKm+d6KL6Vl3grPOcGouiNTkvdhXuWJmcrdEBY2nw ronja-ssh-host-key''
 | 
			
		||||
    #];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  system.autoUpgrade.allowReboot = true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,5 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./nginx.nix
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,26 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  # Configure keymap in X11
 | 
			
		||||
  services.xserver.xkb = {
 | 
			
		||||
    layout = "de";
 | 
			
		||||
    variant = "";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Configure console keymap
 | 
			
		||||
  console.keyMap = "de";
 | 
			
		||||
 | 
			
		||||
  # List packages installed in system profile. To search, run:
 | 
			
		||||
  # $ nix search wget
 | 
			
		||||
  environment.systemPackages = with pkgs; [
 | 
			
		||||
    #  vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
 | 
			
		||||
    #  wget
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # Open ports in the firewall.
 | 
			
		||||
  # networking.firewall.allowedTCPPorts = [ ... ];
 | 
			
		||||
  # networking.firewall.allowedUDPPorts = [ ... ];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,10 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ../../modules/gnome.nix
 | 
			
		||||
    ../../modules/gaming.nix
 | 
			
		||||
    ../../modules/desktop-environment.nix
 | 
			
		||||
    ../../modules/desktop-hardware.nix
 | 
			
		||||
 | 
			
		||||
    ../../home/ronja
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,63 +0,0 @@
 | 
			
		|||
{ lib, ... }:
 | 
			
		||||
{
 | 
			
		||||
  imports = [ ../../modules/intel-graphics.nix ];
 | 
			
		||||
  config = {
 | 
			
		||||
    # intel cpu
 | 
			
		||||
    boot.kernelModules = [
 | 
			
		||||
      "kvm-intel"
 | 
			
		||||
      "xe"
 | 
			
		||||
    ];
 | 
			
		||||
    hardware.cpu.intel.updateMicrocode = true;
 | 
			
		||||
 | 
			
		||||
    boot.loader = {
 | 
			
		||||
      systemd-boot.enable = true;
 | 
			
		||||
      efi.canTouchEfiVariables = true;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
 | 
			
		||||
    # (the default) this is the recommended approach. When using systemd-networkd it's
 | 
			
		||||
    # still possible to use this option, but it's recommended to use it in conjunction
 | 
			
		||||
    # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
 | 
			
		||||
    networking.useDHCP = lib.mkDefault true;
 | 
			
		||||
 | 
			
		||||
    hardware.enableRedistributableFirmware = true;
 | 
			
		||||
 | 
			
		||||
    nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
 | 
			
		||||
 | 
			
		||||
    boot.initrd = {
 | 
			
		||||
      availableKernelModules = [
 | 
			
		||||
        "xhci_pci"
 | 
			
		||||
        "thunderbolt"
 | 
			
		||||
        "nvme"
 | 
			
		||||
      ];
 | 
			
		||||
      luks.devices = {
 | 
			
		||||
        "luks-2c654ff2-3c42-48d3-a1e3-9545679afaa3" = {
 | 
			
		||||
          device = "/dev/disk/by-uuid/2c654ff2-3c42-48d3-a1e3-9545679afaa3";
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    fileSystems = {
 | 
			
		||||
      "/" = {
 | 
			
		||||
        device = "/dev/disk/by-uuid/e4dad0c8-26a1-45e9-bbd9-48565eb6574e";
 | 
			
		||||
        fsType = "btrfs";
 | 
			
		||||
        options = [ "subvol=@" ];
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      "/boot" = {
 | 
			
		||||
        device = "/dev/disk/by-uuid/E2B7-2BC1";
 | 
			
		||||
        fsType = "vfat";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    swapDevices = [
 | 
			
		||||
      {
 | 
			
		||||
        device = "/var/lib/swapfile";
 | 
			
		||||
        size = 32 * 1024;
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    services.thermald.enable = true;
 | 
			
		||||
    services.hardware.bolt.enable = true; # thunderbolt security
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,14 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ../../modules/gnome.nix
 | 
			
		||||
    ../../modules/gaming.nix
 | 
			
		||||
    ../../modules/printing.nix
 | 
			
		||||
    ../../modules/podman.nix
 | 
			
		||||
    #../../modules/niri.nix
 | 
			
		||||
    ../../modules/desktop-environment.nix
 | 
			
		||||
    ../../modules/desktop-hardware.nix
 | 
			
		||||
 | 
			
		||||
    ../../home/vinzenz
 | 
			
		||||
    ../../home/ronja
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,25 +0,0 @@
 | 
			
		|||
{ ... }:
 | 
			
		||||
{
 | 
			
		||||
  imports = [ ../../modules/amd-graphics.nix ];
 | 
			
		||||
  config = {
 | 
			
		||||
    # amd cpu
 | 
			
		||||
    boot.kernelModules = [ "kvm-amd" ];
 | 
			
		||||
    hardware.cpu.amd.updateMicrocode = true;
 | 
			
		||||
 | 
			
		||||
    boot = {
 | 
			
		||||
      initrd.availableKernelModules = [
 | 
			
		||||
        "nvme"
 | 
			
		||||
        "xhci_pci"
 | 
			
		||||
        "ahci"
 | 
			
		||||
        "usbhid"
 | 
			
		||||
        "sd_mod"
 | 
			
		||||
      ]; # "usb_storage"
 | 
			
		||||
      loader.efi.efiSysMountPoint = "/boot";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    fileSystems = import ./fstab.nix;
 | 
			
		||||
    swapDevices = [ ];
 | 
			
		||||
 | 
			
		||||
    networking.interfaces.eno1.wakeOnLan.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,14 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ../../modules/gnome.nix
 | 
			
		||||
    ../../modules/gaming.nix
 | 
			
		||||
    ../../modules/printing.nix
 | 
			
		||||
    ../../modules/podman.nix
 | 
			
		||||
    #../../modules/niri.nix
 | 
			
		||||
    ../../modules/desktop-environment.nix
 | 
			
		||||
    ../../modules/desktop-hardware.nix
 | 
			
		||||
 | 
			
		||||
    ../../home/vinzenz
 | 
			
		||||
    ../../home/ronja
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,22 +0,0 @@
 | 
			
		|||
{ pkgs, config, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config = {
 | 
			
		||||
    boot.kernelModules = [ "amdgpu" ];
 | 
			
		||||
    services.xserver.videoDrivers = [ "amdgpu" ];
 | 
			
		||||
 | 
			
		||||
    hardware = {
 | 
			
		||||
      graphics.enable = true;
 | 
			
		||||
      amdgpu = {
 | 
			
		||||
        opencl.enable = true;
 | 
			
		||||
        amdvlk = {
 | 
			
		||||
          # TODO: this creates black borders around GNOME apps
 | 
			
		||||
          # enable = true;
 | 
			
		||||
          # support32Bit.enable = config.hardware.graphics.enable32Bit;
 | 
			
		||||
        };
 | 
			
		||||
        overdrive.enable = true;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    environment.systemPackages = with pkgs; [ nvtopPackages.amd ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,121 +0,0 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config = {
 | 
			
		||||
    services = {
 | 
			
		||||
      xserver.enable = true;
 | 
			
		||||
      libinput.enable = true;
 | 
			
		||||
      flatpak.enable = true;
 | 
			
		||||
      fstrim.enable = true;
 | 
			
		||||
      earlyoom = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        freeMemThreshold = 5;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # Enable sound with pipewire.
 | 
			
		||||
    security.rtkit.enable = true;
 | 
			
		||||
    services = {
 | 
			
		||||
      pulseaudio.enable = false;
 | 
			
		||||
      pipewire = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        alsa.enable = true;
 | 
			
		||||
        alsa.support32Bit = true;
 | 
			
		||||
        pulse.enable = true;
 | 
			
		||||
        #jack.enable = true;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    programs = {
 | 
			
		||||
      kdeconnect.enable = true;
 | 
			
		||||
      firefox = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        languagePacks = [
 | 
			
		||||
          "en-US"
 | 
			
		||||
          "de"
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
      nix-ld = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        libraries = with pkgs; [
 | 
			
		||||
          stdenv.cc.cc
 | 
			
		||||
          zlib
 | 
			
		||||
          zstd
 | 
			
		||||
          curl
 | 
			
		||||
          openssl
 | 
			
		||||
          attr
 | 
			
		||||
          libssh
 | 
			
		||||
          bzip2
 | 
			
		||||
          libxml2
 | 
			
		||||
          acl
 | 
			
		||||
          libsodium
 | 
			
		||||
          util-linux
 | 
			
		||||
          xz
 | 
			
		||||
          systemd
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
      appimage = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        binfmt = true;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    networking = {
 | 
			
		||||
      firewall = {
 | 
			
		||||
        allowedTCPPortRanges = [
 | 
			
		||||
          {
 | 
			
		||||
            # KDE Connect / gsconnect
 | 
			
		||||
            from = 1714;
 | 
			
		||||
            to = 1764;
 | 
			
		||||
          }
 | 
			
		||||
        ];
 | 
			
		||||
        allowedUDPPortRanges = [
 | 
			
		||||
          {
 | 
			
		||||
            # KDE Connect / gsconnect
 | 
			
		||||
            from = 1714;
 | 
			
		||||
            to = 1764;
 | 
			
		||||
          }
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    systemd = {
 | 
			
		||||
      # save some boot time because nothing actually requires network connectivity
 | 
			
		||||
      services.NetworkManager-wait-online.enable = false;
 | 
			
		||||
 | 
			
		||||
      # prevent stuck units from preventing shutdown (default is 120s)
 | 
			
		||||
      extraConfig = ''
 | 
			
		||||
        DefaultTimeoutStopSec=10s
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    environment.systemPackages = with pkgs; [
 | 
			
		||||
      lm_sensors
 | 
			
		||||
 | 
			
		||||
      # office
 | 
			
		||||
      libreoffice-qt
 | 
			
		||||
      hunspell
 | 
			
		||||
      hunspellDicts.de-de
 | 
			
		||||
      hunspellDicts.en-us-large
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    fonts = {
 | 
			
		||||
      enableDefaultPackages = true;
 | 
			
		||||
      fontconfig.defaultFonts.monospace = [ "FiraCode Nerd Font" ];
 | 
			
		||||
      packages = with pkgs; [
 | 
			
		||||
        nerd-fonts.fira-code
 | 
			
		||||
        roboto-mono
 | 
			
		||||
        recursive
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    hardware.logitech.wireless = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      enableGraphical = true;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    system.autoUpgrade = {
 | 
			
		||||
      allowReboot = false;
 | 
			
		||||
      operation = "boot";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,48 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  config = {
 | 
			
		||||
    boot = {
 | 
			
		||||
      kernelPackages = pkgs.linuxPackages_zen;
 | 
			
		||||
      kernelParams = [
 | 
			
		||||
        "quiet"
 | 
			
		||||
        "udev.log_level=3"
 | 
			
		||||
      ];
 | 
			
		||||
      supportedFilesystems = [ "btrfs" ];
 | 
			
		||||
      initrd.supportedFilesystems = [ "btrfs" ];
 | 
			
		||||
      consoleLogLevel = 0;
 | 
			
		||||
      initrd.verbose = false;
 | 
			
		||||
      plymouth.enable = true;
 | 
			
		||||
      loader = {
 | 
			
		||||
        timeout = 3;
 | 
			
		||||
        efi.canTouchEfiVariables = true;
 | 
			
		||||
        systemd-boot = {
 | 
			
		||||
          enable = true;
 | 
			
		||||
          editor = false; # do not allow changing kernel parameters
 | 
			
		||||
          consoleMode = "max";
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    networking.networkmanager.enable = true;
 | 
			
		||||
    # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
 | 
			
		||||
    # (the default) this is the recommended approach. When using systemd-networkd it's
 | 
			
		||||
    # still possible to use this option, but it's recommended to use it in conjunction
 | 
			
		||||
    # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
 | 
			
		||||
    networking.useDHCP = lib.mkDefault true;
 | 
			
		||||
    # networking.interfaces.eno1.useDHCP = lib.mkDefault true;
 | 
			
		||||
    # networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true;
 | 
			
		||||
 | 
			
		||||
    hardware = {
 | 
			
		||||
      enableRedistributableFirmware = true;
 | 
			
		||||
      bluetooth.enable = true;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
 | 
			
		||||
 | 
			
		||||
    services.fwupd.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,81 +0,0 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config = {
 | 
			
		||||
    hardware = {
 | 
			
		||||
      graphics = {
 | 
			
		||||
        enable32Bit = true;
 | 
			
		||||
        extraPackages = with pkgs; [ mangohud ];
 | 
			
		||||
        extraPackages32 = with pkgs; [ mangohud ];
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      steam-hardware.enable = true;
 | 
			
		||||
      xpadneo.enable = true;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    environment.systemPackages = with pkgs; [
 | 
			
		||||
      wineWowPackages.stagingFull
 | 
			
		||||
      wineWowPackages.fonts
 | 
			
		||||
      winetricks
 | 
			
		||||
      dxvk
 | 
			
		||||
      mangohud
 | 
			
		||||
      vulkan-tools
 | 
			
		||||
      glxinfo
 | 
			
		||||
      lutris
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    programs = {
 | 
			
		||||
      xwayland.enable = true;
 | 
			
		||||
      steam = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        remotePlay.openFirewall = true;
 | 
			
		||||
        dedicatedServer.openFirewall = true;
 | 
			
		||||
        localNetworkGameTransfers.openFirewall = true;
 | 
			
		||||
        gamescopeSession.enable = false;
 | 
			
		||||
      };
 | 
			
		||||
      gamemode.enable = true;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    networking.firewall = {
 | 
			
		||||
      allowedUDPPorts = [
 | 
			
		||||
        # Factorio
 | 
			
		||||
        34197
 | 
			
		||||
 | 
			
		||||
        # steam network transfer
 | 
			
		||||
        3478
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
      allowedTCPPorts = [
 | 
			
		||||
        # steam network transfer
 | 
			
		||||
        24070
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
      allowedTCPPortRanges = [
 | 
			
		||||
        # steam network transfer
 | 
			
		||||
        {
 | 
			
		||||
          from = 27015;
 | 
			
		||||
          to = 27050;
 | 
			
		||||
        }
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
      allowedUDPPortRanges = [
 | 
			
		||||
        # steam network transfer
 | 
			
		||||
        {
 | 
			
		||||
          from = 4379;
 | 
			
		||||
          to = 4380;
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          from = 27000;
 | 
			
		||||
          to = 27100;
 | 
			
		||||
        }
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    allowedUnfreePackages = [
 | 
			
		||||
      "steam"
 | 
			
		||||
      "steam-original"
 | 
			
		||||
      "steam-run"
 | 
			
		||||
      "steam-unwrapped"
 | 
			
		||||
      "ut1999"
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,34 +0,0 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config = {
 | 
			
		||||
    environment = {
 | 
			
		||||
      systemPackages = with pkgs; [
 | 
			
		||||
        ncdu
 | 
			
		||||
        glances
 | 
			
		||||
        iotop
 | 
			
		||||
 | 
			
		||||
        pciutils
 | 
			
		||||
        lsof
 | 
			
		||||
        dig
 | 
			
		||||
 | 
			
		||||
        screen
 | 
			
		||||
 | 
			
		||||
        tldr
 | 
			
		||||
        neofetch
 | 
			
		||||
 | 
			
		||||
        nix-output-monitor
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    programs = {
 | 
			
		||||
      zsh.enable = true;
 | 
			
		||||
      htop.enable = true;
 | 
			
		||||
      iotop.enable = true;
 | 
			
		||||
      git.enable = true;
 | 
			
		||||
      nano = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        syntaxHighlight = true;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,46 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  "org/gnome/desktop/interface" = {
 | 
			
		||||
    color-scheme = "prefer-dark";
 | 
			
		||||
    clock-show-seconds = true;
 | 
			
		||||
    show-battery-percentage = true;
 | 
			
		||||
  };
 | 
			
		||||
  "org/gnome/mutter" = {
 | 
			
		||||
    edge-tiling = true;
 | 
			
		||||
    dynamic-workspaces = true;
 | 
			
		||||
  };
 | 
			
		||||
  "org/gnome/desktop/peripherals/keyboard" = {
 | 
			
		||||
    numlock-state = true;
 | 
			
		||||
  };
 | 
			
		||||
  "org/gnome/desktop/peripherals/touchpad" = {
 | 
			
		||||
    tap-to-click = true;
 | 
			
		||||
    two-finger-scrolling-enabled = true;
 | 
			
		||||
  };
 | 
			
		||||
  "org/gnome/tweaks" = {
 | 
			
		||||
    show-extensions-notice = false;
 | 
			
		||||
  };
 | 
			
		||||
  "org/gnome/shell" = {
 | 
			
		||||
    disable-user-extensions = false;
 | 
			
		||||
    disabled-extensions = [ ];
 | 
			
		||||
    enabled-extensions = [
 | 
			
		||||
      "tailscale@joaophi.github.com"
 | 
			
		||||
      "appindicatorsupport@rgcjonas.gmail.com"
 | 
			
		||||
      "workspace-indicator@gnome-shell-extensions.gcampax.github.com"
 | 
			
		||||
      "caffeine@patapon.info"
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
  "ca/desrt/dconf-editor" = {
 | 
			
		||||
    show-warning = false;
 | 
			
		||||
  };
 | 
			
		||||
  "org/gnome/desktop/wm/keybindings" = {
 | 
			
		||||
    switch-windows = [ "<Alt>Tab" ];
 | 
			
		||||
    switch-windows-backward = [ "<Shift><Alt>Tab" ];
 | 
			
		||||
    switch-applications = [ "<Super>Tab" ];
 | 
			
		||||
    switch-applications-backward = [ "<Shift><Super>Tab" ];
 | 
			
		||||
  };
 | 
			
		||||
  "org/gnome/shell/extensions/alphabetical-app-grid" = {
 | 
			
		||||
    folder-order-position = "start";
 | 
			
		||||
  };
 | 
			
		||||
  "org/gnome/shell/extensions/gsconnect" = {
 | 
			
		||||
    enabled = true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,101 +0,0 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config = {
 | 
			
		||||
    services = {
 | 
			
		||||
      xserver = {
 | 
			
		||||
        # Enable the GNOME Desktop Environment.
 | 
			
		||||
        desktopManager.gnome = {
 | 
			
		||||
          enable = true;
 | 
			
		||||
          extraGSettingsOverridePackages = [ pkgs.mutter ];
 | 
			
		||||
          extraGSettingsOverrides = ''
 | 
			
		||||
            [org.gnome.mutter]
 | 
			
		||||
            experimental-features=['scale-monitor-framebuffer']
 | 
			
		||||
          '';
 | 
			
		||||
        };
 | 
			
		||||
        displayManager.gdm.enable = true;
 | 
			
		||||
        excludePackages = with pkgs; [ xterm ];
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      displayManager.defaultSession = "gnome";
 | 
			
		||||
 | 
			
		||||
      gnome = {
 | 
			
		||||
        tinysparql.enable = false;
 | 
			
		||||
        localsearch.enable = false;
 | 
			
		||||
        sushi.enable = true;
 | 
			
		||||
        gnome-remote-desktop.enable = true;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    programs = {
 | 
			
		||||
      dconf.enable = true;
 | 
			
		||||
      gpaste.enable = true;
 | 
			
		||||
      kdeconnect.package = pkgs.gnomeExtensions.gsconnect;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # remove some gnome default apps
 | 
			
		||||
    environment.gnome.excludePackages = with pkgs; [
 | 
			
		||||
      cheese # photo booth
 | 
			
		||||
      epiphany # web browser
 | 
			
		||||
      evince # document viewer
 | 
			
		||||
      geary # email client
 | 
			
		||||
      gnome-maps
 | 
			
		||||
      gnome-weather
 | 
			
		||||
      gnome-tour
 | 
			
		||||
      sysprof
 | 
			
		||||
      orca # screen reader
 | 
			
		||||
      gnome-weather
 | 
			
		||||
      gnome-backgrounds
 | 
			
		||||
      gnome-user-docs
 | 
			
		||||
      yelp # help app
 | 
			
		||||
      # gnome-music
 | 
			
		||||
      # totem # video player
 | 
			
		||||
      # snapshot # camera
 | 
			
		||||
      # baobab # disk usage
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    # RDP connections
 | 
			
		||||
    networking.firewall.allowedTCPPorts = [ 3389 ];
 | 
			
		||||
 | 
			
		||||
    home-manager.sharedModules = [
 | 
			
		||||
      {
 | 
			
		||||
        home.packages =
 | 
			
		||||
          with pkgs;
 | 
			
		||||
          [
 | 
			
		||||
            gitg
 | 
			
		||||
            meld
 | 
			
		||||
            simple-scan
 | 
			
		||||
            pinta
 | 
			
		||||
            dconf-editor
 | 
			
		||||
            gpaste
 | 
			
		||||
            ghex
 | 
			
		||||
            impression
 | 
			
		||||
            papers
 | 
			
		||||
 | 
			
		||||
            # graphical installer for flatpak apps
 | 
			
		||||
            gnome-software
 | 
			
		||||
          ]
 | 
			
		||||
          ++ (with gnomeExtensions; [
 | 
			
		||||
            caffeine
 | 
			
		||||
            appindicator
 | 
			
		||||
          ]);
 | 
			
		||||
 | 
			
		||||
        dconf.settings = import ./gnome-shared-dconf.nix;
 | 
			
		||||
 | 
			
		||||
        gtk = {
 | 
			
		||||
          enable = true;
 | 
			
		||||
          iconTheme.name = "Adwaita";
 | 
			
		||||
          cursorTheme.name = "Adwaita";
 | 
			
		||||
          theme = {
 | 
			
		||||
            name = "adw-gtk3-dark";
 | 
			
		||||
            package = pkgs.adw-gtk3;
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      {
 | 
			
		||||
        home.packages = with pkgs; [ trayscale ] ++ (with gnomeExtensions; [ tailscale-qs ]);
 | 
			
		||||
        dconf.settings."org/gnome/shell".enabled-extensions = [ "tailscale@joaophi.github.com" ];
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,61 +0,0 @@
 | 
			
		|||
_: {
 | 
			
		||||
  home-manager = {
 | 
			
		||||
    useGlobalPkgs = true;
 | 
			
		||||
    useUserPackages = true;
 | 
			
		||||
    sharedModules = [
 | 
			
		||||
      # set stateVersion
 | 
			
		||||
      { home.stateVersion = "22.11"; }
 | 
			
		||||
      # make nano the default editor
 | 
			
		||||
      {
 | 
			
		||||
        home = {
 | 
			
		||||
          sessionVariables.EDITOR = "nano";
 | 
			
		||||
          file.".nanorc".text = ''
 | 
			
		||||
            set linenumbers
 | 
			
		||||
            set mouse
 | 
			
		||||
          '';
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      # command line niceness
 | 
			
		||||
      {
 | 
			
		||||
        programs = {
 | 
			
		||||
          command-not-found.enable = true;
 | 
			
		||||
          dircolors.enable = true;
 | 
			
		||||
 | 
			
		||||
          zsh = {
 | 
			
		||||
            enable = true;
 | 
			
		||||
            syntaxHighlighting.enable = true;
 | 
			
		||||
            autosuggestion.enable = true;
 | 
			
		||||
            enableVteIntegration = true;
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      # common git config
 | 
			
		||||
      {
 | 
			
		||||
        programs = {
 | 
			
		||||
          git = {
 | 
			
		||||
            enable = true;
 | 
			
		||||
            extraConfig.init.defaultBranch = "main";
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          gh = {
 | 
			
		||||
            enable = true;
 | 
			
		||||
            gitCredentialHelper.enable = true;
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      # Templates
 | 
			
		||||
      {
 | 
			
		||||
        home.file = {
 | 
			
		||||
          "Templates/Empty file".text = "";
 | 
			
		||||
          "Templates/Empty bash script".text = ''
 | 
			
		||||
            #!/usr/bin/env bash
 | 
			
		||||
            # abort on error, undefined variables
 | 
			
		||||
            set -eu
 | 
			
		||||
            # print commands before execution
 | 
			
		||||
            set -x
 | 
			
		||||
          '';
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,19 +0,0 @@
 | 
			
		|||
_: {
 | 
			
		||||
  config = {
 | 
			
		||||
    time.timeZone = "Europe/Berlin";
 | 
			
		||||
    i18n = {
 | 
			
		||||
      defaultLocale = "en_US.UTF-8";
 | 
			
		||||
      extraLocaleSettings = {
 | 
			
		||||
        LC_ADDRESS = "de_DE.UTF-8";
 | 
			
		||||
        LC_IDENTIFICATION = "de_DE.UTF-8";
 | 
			
		||||
        LC_MEASUREMENT = "de_DE.UTF-8";
 | 
			
		||||
        LC_MONETARY = "de_DE.UTF-8";
 | 
			
		||||
        LC_NAME = "de_DE.UTF-8";
 | 
			
		||||
        LC_NUMERIC = "de_DE.UTF-8";
 | 
			
		||||
        LC_PAPER = "de_DE.UTF-8";
 | 
			
		||||
        LC_TELEPHONE = "de_DE.UTF-8";
 | 
			
		||||
        LC_TIME = "de_DE.UTF-8";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,12 +0,0 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  nixpkgs.overlays = [ (final: prev: {
 | 
			
		||||
    inherit (prev.lixPackageSets.stable)
 | 
			
		||||
      nixpkgs-review
 | 
			
		||||
      nix-eval-jobs
 | 
			
		||||
      nix-fast-build
 | 
			
		||||
      colmena;
 | 
			
		||||
  }) ];
 | 
			
		||||
 | 
			
		||||
  nix.package = pkgs.lixPackageSets.stable.lix;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,23 +0,0 @@
 | 
			
		|||
_: {
 | 
			
		||||
  config = {
 | 
			
		||||
    services.openssh = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      openFirewall = true;
 | 
			
		||||
      settings = {
 | 
			
		||||
        PermitRootLogin = "without-password";
 | 
			
		||||
        PasswordAuthentication = false;
 | 
			
		||||
        KbdInteractiveAuthentication = false;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    services.tailscale = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      openFirewall = true;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    networking.firewall = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      checkReversePath = "loose";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,59 +0,0 @@
 | 
			
		|||
{ config, lib, ... }:
 | 
			
		||||
{
 | 
			
		||||
  options.allowedUnfreePackages = lib.mkOption {
 | 
			
		||||
    type = lib.types.listOf lib.types.str;
 | 
			
		||||
    default = [ ];
 | 
			
		||||
    example = [ "steam" ];
 | 
			
		||||
  };
 | 
			
		||||
  config = {
 | 
			
		||||
    nixpkgs.config = {
 | 
			
		||||
      # https://github.com/NixOS/nixpkgs/issues/197325#issuecomment-1579420085
 | 
			
		||||
      allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) config.allowedUnfreePackages;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    nix = {
 | 
			
		||||
      settings = {
 | 
			
		||||
        substituters = [
 | 
			
		||||
          "https://cache.nixos.org/"
 | 
			
		||||
          "https://nix-community.cachix.org"
 | 
			
		||||
          "https://cache.lix.systems"
 | 
			
		||||
          "https://niri.cachix.org"
 | 
			
		||||
        ];
 | 
			
		||||
        trusted-public-keys = [
 | 
			
		||||
          "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
 | 
			
		||||
          "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
 | 
			
		||||
          "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o="
 | 
			
		||||
          "niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
 | 
			
		||||
        ];
 | 
			
		||||
        experimental-features = [
 | 
			
		||||
          "nix-command"
 | 
			
		||||
          "flakes"
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
      gc = {
 | 
			
		||||
        automatic = true;
 | 
			
		||||
        dates = "daily";
 | 
			
		||||
        options = "--delete-older-than 7d";
 | 
			
		||||
      };
 | 
			
		||||
      optimise.automatic = true;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    system = {
 | 
			
		||||
      stateVersion = "22.11";
 | 
			
		||||
      # enable auto updates
 | 
			
		||||
      autoUpgrade = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        dates = "daily";
 | 
			
		||||
        flake = "git+https://git.berlin.ccc.de/vinzenz/nixos-configuration.git";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    documentation = {
 | 
			
		||||
      enable = true; # documentation of packages
 | 
			
		||||
      nixos.enable = false; # nixos documentation
 | 
			
		||||
      man.enable = true; # manual pages and the man command
 | 
			
		||||
      info.enable = false; # info pages and the info command
 | 
			
		||||
      doc.enable = false; # documentation distributed in packages' /share/doc
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,14 +0,0 @@
 | 
			
		|||
_: {
 | 
			
		||||
  config = {
 | 
			
		||||
    services = {
 | 
			
		||||
      # Enable CUPS to print documents.
 | 
			
		||||
      printing.enable = true;
 | 
			
		||||
 | 
			
		||||
      avahi = {
 | 
			
		||||
        enable = true; # runs the Avahi daemon
 | 
			
		||||
        nssmdns4 = true; # enables the mDNS NSS plug-in
 | 
			
		||||
        openFirewall = true; # opens the firewall for UDP port 5353
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								nixosConfigurations/forgejo-runner-1/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								nixosConfigurations/forgejo-runner-1/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./hardware.nix
 | 
			
		||||
    ./forgejo-runner.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  config = {
 | 
			
		||||
    # uncomment for build check on non arm system (requires --impure)
 | 
			
		||||
    # nixpkgs.buildPlatform = builtins.currentSystem;
 | 
			
		||||
    services.tailscale.useRoutingFeatures = "both";
 | 
			
		||||
    system.autoUpgrade.allowReboot = true;
 | 
			
		||||
 | 
			
		||||
    users.users = {
 | 
			
		||||
      root.openssh.authorizedKeys.keys = [
 | 
			
		||||
        ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFCJUpbpB3KEKVoKWsKoar9J4RNah8gmQoSH6jQEw5dY vinzenz-pixel-JuiceSSH''
 | 
			
		||||
        ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO1CRn4yYTL4XUdCebE8Z4ZeuMujBjorTdWifg911EOv vinzenz-pc2 home roaming''
 | 
			
		||||
        ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPDNpLDmctyqGpow/ElQvdhY4BLBPS/sigDJ1QEcC7wC vinzenz-lpt2-roaming''
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -3,11 +3,6 @@
 | 
			
		|||
  imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
 | 
			
		||||
 | 
			
		||||
  config = {
 | 
			
		||||
    nixpkgs = {
 | 
			
		||||
      hostPlatform = "aarch64-linux";
 | 
			
		||||
      system = "aarch64-linux";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    boot = {
 | 
			
		||||
      tmp.cleanOnBoot = true;
 | 
			
		||||
      kernelParams = [ "console=tty" ];
 | 
			
		||||
							
								
								
									
										27
									
								
								nixosConfigurations/hetzner-vpn2/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								nixosConfigurations/hetzner-vpn2/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./hardware.nix
 | 
			
		||||
    ./nginx.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  config = {
 | 
			
		||||
    # uncomment for build check on non arm system (requires --impure)
 | 
			
		||||
    # nixpkgs.buildPlatform = builtins.currentSystem;
 | 
			
		||||
 | 
			
		||||
    services.tailscale.useRoutingFeatures = "both";
 | 
			
		||||
 | 
			
		||||
    users.users = {
 | 
			
		||||
      root.openssh.authorizedKeys.keys = [
 | 
			
		||||
        ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICdYqY3Y1/f1bsAi5Qfyr/UWuX9ixu96IeAlhoQaJkbf''
 | 
			
		||||
        ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFCJUpbpB3KEKVoKWsKoar9J4RNah8gmQoSH6jQEw5dY vinzenz-pixel-JuiceSSH''
 | 
			
		||||
        ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO1CRn4yYTL4XUdCebE8Z4ZeuMujBjorTdWifg911EOv vinzenz-pc2 home roaming''
 | 
			
		||||
        ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPDNpLDmctyqGpow/ElQvdhY4BLBPS/sigDJ1QEcC7wC vinzenz-lpt2-roaming''
 | 
			
		||||
      ];
 | 
			
		||||
      #ronja.openssh.authorizedKeys.keys = [
 | 
			
		||||
      #  ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIALWKm+d6KL6Vl3grPOcGouiNTkvdhXuWJmcrdEBY2nw ronja-ssh-host-key''
 | 
			
		||||
      #];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    system.autoUpgrade.allowReboot = true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -3,11 +3,6 @@
 | 
			
		|||
  imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
 | 
			
		||||
 | 
			
		||||
  config = {
 | 
			
		||||
    nixpkgs = {
 | 
			
		||||
      hostPlatform = "aarch64-linux";
 | 
			
		||||
      system = "aarch64-linux";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    boot = {
 | 
			
		||||
      tmp.cleanOnBoot = true;
 | 
			
		||||
      kernelParams = [ "console=tty" ];
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
{ inputs, pkgs, ... }:
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
let
 | 
			
		||||
  blog-domain-socket = "/run/nginx/blog.sock";
 | 
			
		||||
  anubis-domain-socket = "/run/anubis/anubis-blog.sock";
 | 
			
		||||
| 
						 | 
				
			
			@ -72,28 +72,26 @@ in
 | 
			
		|||
            addSSL = true;
 | 
			
		||||
            enableACME = true;
 | 
			
		||||
            locations."/" = {
 | 
			
		||||
              proxyPass = ("http://unix:" + anubis-domain-socket);
 | 
			
		||||
              proxyPass = "http://unix:" + anubis-domain-socket;
 | 
			
		||||
            };
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          "blog-in-anubis" = {
 | 
			
		||||
            root = inputs.zerforschen-plus.packages."${pkgs.system}".zerforschen-plus-content;
 | 
			
		||||
            root = pkgs.zerforschen-plus-content;
 | 
			
		||||
            listen = [
 | 
			
		||||
              {
 | 
			
		||||
                addr = ("unix:" + blog-domain-socket);
 | 
			
		||||
                addr = "unix:" + blog-domain-socket;
 | 
			
		||||
              }
 | 
			
		||||
            ];
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    anubis = {
 | 
			
		||||
      instances.main = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        settings = {
 | 
			
		||||
          BIND = anubis-domain-socket;
 | 
			
		||||
          TARGET = "unix://" + blog-domain-socket;
 | 
			
		||||
        };
 | 
			
		||||
    anubis.instances.main = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      settings = {
 | 
			
		||||
        BIND = anubis-domain-socket;
 | 
			
		||||
        TARGET = "unix://" + blog-domain-socket;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
							
								
								
									
										32
									
								
								nixosConfigurations/ronja-pc/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								nixosConfigurations/ronja-pc/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,32 @@
 | 
			
		|||
{
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./hardware.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  config = {
 | 
			
		||||
    # Configure keymap in X11
 | 
			
		||||
    services.xserver.xkb = {
 | 
			
		||||
      layout = "de";
 | 
			
		||||
      variant = "";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # Configure console keymap
 | 
			
		||||
    console.keyMap = "de";
 | 
			
		||||
 | 
			
		||||
    # List packages installed in system profile. To search, run:
 | 
			
		||||
    # $ nix search wget
 | 
			
		||||
    environment.systemPackages = with pkgs; [
 | 
			
		||||
      #  vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
 | 
			
		||||
      #  wget
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    # Open ports in the firewall.
 | 
			
		||||
    # networking.firewall.allowedTCPPorts = [ ... ];
 | 
			
		||||
    # networking.firewall.allowedUDPPorts = [ ... ];};
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,6 +1,8 @@
 | 
			
		|||
{ lib, ... }:
 | 
			
		||||
{
 | 
			
		||||
  boot = {
 | 
			
		||||
    supportedFilesystems = [ "btrfs" ];
 | 
			
		||||
    initrd.supportedFilesystems = [ "btrfs" ];
 | 
			
		||||
    kernelModules = [ "kvm-intel" ];
 | 
			
		||||
    extraModulePackages = [ ];
 | 
			
		||||
    initrd = {
 | 
			
		||||
| 
						 | 
				
			
			@ -37,6 +39,10 @@
 | 
			
		|||
    { device = "/dev/disk/by-uuid/bf9d19fb-499b-4bfb-b67d-131fa5bf8259"; }
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
 | 
			
		||||
  hardware.cpu.intel.updateMicrocode = true;
 | 
			
		||||
  hardware.bluetooth.enable = true;
 | 
			
		||||
 | 
			
		||||
  networking = {
 | 
			
		||||
    networkmanager.enable = true;
 | 
			
		||||
    useDHCP = lib.mkDefault true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,6 +1,8 @@
 | 
			
		|||
{ ... }:
 | 
			
		||||
{
 | 
			
		||||
  imports = [ ./nginx.nix ];
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./hardware.nix
 | 
			
		||||
    ./nginx.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  config = {
 | 
			
		||||
    nix.settings.extra-platforms = [
 | 
			
		||||
							
								
								
									
										56
									
								
								nixosConfigurations/vinzenz-lpt2/hardware.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								nixosConfigurations/vinzenz-lpt2/hardware.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,56 @@
 | 
			
		|||
{ pkgs, lib, ... }:
 | 
			
		||||
{
 | 
			
		||||
  # intel cpu
 | 
			
		||||
  boot.kernelModules = [
 | 
			
		||||
    "kvm-intel"
 | 
			
		||||
    "xe"
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  networking = {
 | 
			
		||||
    networkmanager.enable = true;
 | 
			
		||||
    useDHCP = lib.mkDefault true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  boot = {
 | 
			
		||||
    kernelPackages = pkgs.linuxPackages_zen;
 | 
			
		||||
    supportedFilesystems = [ "btrfs" ];
 | 
			
		||||
    initrd = {
 | 
			
		||||
      supportedFilesystems = [ "btrfs" ];
 | 
			
		||||
      availableKernelModules = [
 | 
			
		||||
        "xhci_pci"
 | 
			
		||||
        "thunderbolt"
 | 
			
		||||
        "nvme"
 | 
			
		||||
      ];
 | 
			
		||||
      luks.devices = {
 | 
			
		||||
        "luks-2c654ff2-3c42-48d3-a1e3-9545679afaa3" = {
 | 
			
		||||
          device = "/dev/disk/by-uuid/2c654ff2-3c42-48d3-a1e3-9545679afaa3";
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  fileSystems = {
 | 
			
		||||
    "/" = {
 | 
			
		||||
      device = "/dev/disk/by-uuid/e4dad0c8-26a1-45e9-bbd9-48565eb6574e";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=@" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    "/boot" = {
 | 
			
		||||
      device = "/dev/disk/by-uuid/E2B7-2BC1";
 | 
			
		||||
      fsType = "vfat";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  swapDevices = [
 | 
			
		||||
    {
 | 
			
		||||
      device = "/var/lib/swapfile";
 | 
			
		||||
      size = 32 * 1024;
 | 
			
		||||
    }
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  services.thermald.enable = true;
 | 
			
		||||
  services.hardware.bolt.enable = true; # thunderbolt security
 | 
			
		||||
 | 
			
		||||
  hardware.bluetooth.enable = true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
{ inputs, pkgs, ... }:
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
let
 | 
			
		||||
  blog-domain-socket = "/run/nginx/blog.sock";
 | 
			
		||||
  anubis-domain-socket = "/run/anubis/anubis-blog.sock";
 | 
			
		||||
| 
						 | 
				
			
			@ -29,15 +29,15 @@ in
 | 
			
		|||
 | 
			
		||||
        "vinzenz-lpt2" = {
 | 
			
		||||
          locations."/" = {
 | 
			
		||||
            proxyPass = ("http://unix:" + anubis-domain-socket);
 | 
			
		||||
            proxyPass = "http://unix:" + anubis-domain-socket;
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        "vinzenz-lpt2-in-anubis" = {
 | 
			
		||||
          root = inputs.zerforschen-plus.packages."${pkgs.system}".zerforschen-plus-content;
 | 
			
		||||
          root = pkgs.zerforschen-plus-content;
 | 
			
		||||
          listen = [
 | 
			
		||||
            {
 | 
			
		||||
              addr = ("unix:" + blog-domain-socket);
 | 
			
		||||
              addr = "unix:" + blog-domain-socket;
 | 
			
		||||
            }
 | 
			
		||||
          ];
 | 
			
		||||
        };
 | 
			
		||||
| 
						 | 
				
			
			@ -1,7 +1,5 @@
 | 
			
		|||
{
 | 
			
		||||
  pkgs,
 | 
			
		||||
  system,
 | 
			
		||||
  inputs,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -28,7 +26,7 @@
 | 
			
		|||
      "zerforschen.plus" = {
 | 
			
		||||
        #addSSL = true;
 | 
			
		||||
        #enableACME = true;
 | 
			
		||||
        root = inputs.zerforschen-plus.packages."${pkgs.system}".zerforschen-plus-content;
 | 
			
		||||
        root = pkgs.zerforschen-plus-content;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
| 
						 | 
				
			
			@ -5,6 +5,7 @@
 | 
			
		|||
    ./vscode-server.nix
 | 
			
		||||
    ./hass.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  config = {
 | 
			
		||||
    nix.settings.extra-platforms = [
 | 
			
		||||
      "aarch64-linux"
 | 
			
		||||
| 
						 | 
				
			
			@ -32,5 +33,10 @@
 | 
			
		|||
    ];
 | 
			
		||||
 | 
			
		||||
    environment.systemPackages = with pkgs; [ lact ];
 | 
			
		||||
 | 
			
		||||
    networking.firewall.allowedUDPPorts = [
 | 
			
		||||
      # Factorio
 | 
			
		||||
      34197
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								nixosConfigurations/vinzenz-pc2/hardware.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								nixosConfigurations/vinzenz-pc2/hardware.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,30 @@
 | 
			
		|||
{ pkgs, lib, ... }:
 | 
			
		||||
{
 | 
			
		||||
  # amd cpu
 | 
			
		||||
  boot.kernelModules = [ "kvm-amd" ];
 | 
			
		||||
 | 
			
		||||
  boot = {
 | 
			
		||||
    initrd.availableKernelModules = [
 | 
			
		||||
      "nvme"
 | 
			
		||||
      "xhci_pci"
 | 
			
		||||
      "ahci"
 | 
			
		||||
      "usbhid"
 | 
			
		||||
      "sd_mod"
 | 
			
		||||
    ]; # "usb_storage"
 | 
			
		||||
    kernelPackages = pkgs.linuxPackages_zen;
 | 
			
		||||
    supportedFilesystems = [ "btrfs" ];
 | 
			
		||||
    initrd.supportedFilesystems = [ "btrfs" ];
 | 
			
		||||
    loader.efi.efiSysMountPoint = "/boot";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  fileSystems = import ./fstab.nix;
 | 
			
		||||
  swapDevices = [ ];
 | 
			
		||||
 | 
			
		||||
  networking = {
 | 
			
		||||
    networkmanager.enable = true;
 | 
			
		||||
    useDHCP = lib.mkDefault true;
 | 
			
		||||
    interfaces.eno1.wakeOnLan.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  hardware.bluetooth.enable = true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -15,16 +15,12 @@
 | 
			
		|||
    ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  networking = {
 | 
			
		||||
    firewall = {
 | 
			
		||||
      allowedTCPPorts = [
 | 
			
		||||
        8542
 | 
			
		||||
        8543
 | 
			
		||||
        8544
 | 
			
		||||
        80
 | 
			
		||||
        1313
 | 
			
		||||
        5201
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
  networking.firewall.allowedTCPPorts = [
 | 
			
		||||
    8542
 | 
			
		||||
    8543
 | 
			
		||||
    8544
 | 
			
		||||
    80
 | 
			
		||||
    1313
 | 
			
		||||
    5201
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										17
									
								
								nixosModules/allowed-unfree-list.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								nixosModules/allowed-unfree-list.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
{ lib, config, ... }:
 | 
			
		||||
{
 | 
			
		||||
  options.allowedUnfreePackages = lib.mkOption {
 | 
			
		||||
    type = lib.types.listOf lib.types.str;
 | 
			
		||||
    default = [ ];
 | 
			
		||||
    example = [ "steam" ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  config = {
 | 
			
		||||
    nixpkgs.config = {
 | 
			
		||||
      # https://github.com/NixOS/nixpkgs/issues/197325#issuecomment-1579420085
 | 
			
		||||
      allowUnfreePredicate = lib.mkDefault (
 | 
			
		||||
        pkg: builtins.elem (lib.getName pkg) config.allowedUnfreePackages
 | 
			
		||||
      );
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										20
									
								
								nixosModules/amd-graphics.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								nixosModules/amd-graphics.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,20 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  boot.kernelModules = [ "amdgpu" ];
 | 
			
		||||
  services.xserver.videoDrivers = [ "amdgpu" ];
 | 
			
		||||
 | 
			
		||||
  hardware = {
 | 
			
		||||
    graphics.enable = true;
 | 
			
		||||
    amdgpu = {
 | 
			
		||||
      opencl.enable = true;
 | 
			
		||||
      amdvlk = {
 | 
			
		||||
        # TODO: this creates black borders around GNOME apps
 | 
			
		||||
        # enable = true;
 | 
			
		||||
        # support32Bit.enable = config.hardware.graphics.enable32Bit;
 | 
			
		||||
      };
 | 
			
		||||
      overdrive.enable = true;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  environment.systemPackages = with pkgs; [ nvtopPackages.amd ];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								nixosModules/autoupdate.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								nixosModules/autoupdate.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
{
 | 
			
		||||
  nix = {
 | 
			
		||||
    optimise.automatic = true;
 | 
			
		||||
    gc = {
 | 
			
		||||
      automatic = true;
 | 
			
		||||
      dates = "daily";
 | 
			
		||||
      options = "--delete-older-than 7d";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  system.autoUpgrade = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    dates = "daily";
 | 
			
		||||
    # do not forget to set `flake` when using this module!
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										31
									
								
								nixosModules/en-de.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								nixosModules/en-de.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,31 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  i18n = {
 | 
			
		||||
    defaultLocale = "en_US.UTF-8";
 | 
			
		||||
    extraLocales = [
 | 
			
		||||
      "de_DE.UTF-8/UTF-8"
 | 
			
		||||
    ];
 | 
			
		||||
    extraLocaleSettings = {
 | 
			
		||||
      LC_ADDRESS = "de_DE.UTF-8";
 | 
			
		||||
      LC_IDENTIFICATION = "de_DE.UTF-8";
 | 
			
		||||
      LC_MEASUREMENT = "de_DE.UTF-8";
 | 
			
		||||
      LC_MONETARY = "de_DE.UTF-8";
 | 
			
		||||
      LC_NAME = "de_DE.UTF-8";
 | 
			
		||||
      LC_NUMERIC = "de_DE.UTF-8";
 | 
			
		||||
      LC_PAPER = "de_DE.UTF-8";
 | 
			
		||||
      LC_TELEPHONE = "de_DE.UTF-8";
 | 
			
		||||
      LC_TIME = "de_DE.UTF-8";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  programs.firefox.languagePacks = [
 | 
			
		||||
    "en-US"
 | 
			
		||||
    "de"
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  environment.systemPackages = [
 | 
			
		||||
    pkgs.hunspell
 | 
			
		||||
    pkgs.hunspellDicts.de-de
 | 
			
		||||
    pkgs.hunspellDicts.en-us
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								nixosModules/extra-caches.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								nixosModules/extra-caches.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
{
 | 
			
		||||
  nix.settings = {
 | 
			
		||||
    substituters = [
 | 
			
		||||
      "https://cache.nixos.org/"
 | 
			
		||||
      "https://nix-community.cachix.org"
 | 
			
		||||
      "https://cache.lix.systems"
 | 
			
		||||
      "https://niri.cachix.org"
 | 
			
		||||
    ];
 | 
			
		||||
    trusted-public-keys = [
 | 
			
		||||
      "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
 | 
			
		||||
      "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
 | 
			
		||||
      "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o="
 | 
			
		||||
      "niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								nixosModules/firmware-updates.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								nixosModules/firmware-updates.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
{
 | 
			
		||||
  hardware = {
 | 
			
		||||
    enableRedistributableFirmware = true;
 | 
			
		||||
    cpu = {
 | 
			
		||||
      amd.updateMicrocode = true;
 | 
			
		||||
      intel.updateMicrocode = true;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  services.fwupd.enable = true;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										23
									
								
								nixosModules/globalinstalls.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								nixosModules/globalinstalls.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,23 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  environment.systemPackages = with pkgs; [
 | 
			
		||||
    ncdu
 | 
			
		||||
    glances
 | 
			
		||||
    lsof
 | 
			
		||||
    dig
 | 
			
		||||
    screen
 | 
			
		||||
    tldr
 | 
			
		||||
    nix-output-monitor
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  programs = {
 | 
			
		||||
    zsh.enable = true;
 | 
			
		||||
    htop.enable = true;
 | 
			
		||||
    iotop.enable = true;
 | 
			
		||||
    git.enable = true;
 | 
			
		||||
    nano = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      syntaxHighlight = true;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										65
									
								
								nixosModules/gnome.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								nixosModules/gnome.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,65 @@
 | 
			
		|||
{
 | 
			
		||||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  config,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  options.vinzenz = {
 | 
			
		||||
    keep-gnome-default-apps = lib.mkEnableOption "keep gnome default apps";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  config = lib.mkMerge [
 | 
			
		||||
    {
 | 
			
		||||
      services = {
 | 
			
		||||
        xserver = {
 | 
			
		||||
          # Enable the GNOME Desktop Environment.
 | 
			
		||||
          desktopManager.gnome = {
 | 
			
		||||
            enable = true;
 | 
			
		||||
            extraGSettingsOverridePackages = [ pkgs.mutter ];
 | 
			
		||||
            extraGSettingsOverrides = ''
 | 
			
		||||
              [org.gnome.mutter]
 | 
			
		||||
              experimental-features=['scale-monitor-framebuffer']
 | 
			
		||||
            '';
 | 
			
		||||
          };
 | 
			
		||||
          displayManager.gdm.enable = true;
 | 
			
		||||
          excludePackages = [ pkgs.xterm ];
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        displayManager.defaultSession = "gnome";
 | 
			
		||||
 | 
			
		||||
        gnome = {
 | 
			
		||||
          tinysparql.enable = false;
 | 
			
		||||
          localsearch.enable = false;
 | 
			
		||||
          sushi.enable = true;
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      programs = {
 | 
			
		||||
        dconf.enable = true;
 | 
			
		||||
        gpaste.enable = true;
 | 
			
		||||
      };
 | 
			
		||||
    }
 | 
			
		||||
    (lib.mkIf (!config.vinzenz.keep-gnome-default-apps) {
 | 
			
		||||
      environment.gnome.excludePackages = with pkgs; [
 | 
			
		||||
        cheese # photo booth
 | 
			
		||||
        epiphany # web browser
 | 
			
		||||
        evince # document viewer
 | 
			
		||||
        geary # email client
 | 
			
		||||
        gnome-maps
 | 
			
		||||
        gnome-weather
 | 
			
		||||
        gnome-tour
 | 
			
		||||
        sysprof
 | 
			
		||||
        orca # screen reader
 | 
			
		||||
        gnome-weather
 | 
			
		||||
        gnome-backgrounds
 | 
			
		||||
        gnome-user-docs
 | 
			
		||||
        yelp # help app
 | 
			
		||||
        gnome-music
 | 
			
		||||
        totem # video player
 | 
			
		||||
        snapshot # camera
 | 
			
		||||
        baobab # disk usage
 | 
			
		||||
      ];
 | 
			
		||||
    })
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										53
									
								
								nixosModules/kdeconnect.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								nixosModules/kdeconnect.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,53 @@
 | 
			
		|||
{
 | 
			
		||||
  lib,
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  config = lib.mkMerge [
 | 
			
		||||
    {
 | 
			
		||||
      networking.firewall =
 | 
			
		||||
        let
 | 
			
		||||
          kdeconnect-range = {
 | 
			
		||||
            from = 1714;
 | 
			
		||||
            to = 1764;
 | 
			
		||||
          };
 | 
			
		||||
        in
 | 
			
		||||
        {
 | 
			
		||||
          allowedTCPPortRanges = [ kdeconnect-range ];
 | 
			
		||||
          allowedUDPPortRanges = [ kdeconnect-range ];
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
      programs.kdeconnect.enable = true;
 | 
			
		||||
      home-manager.sharedModules = [
 | 
			
		||||
        {
 | 
			
		||||
          services.kdeconnect = {
 | 
			
		||||
            enable = true;
 | 
			
		||||
            # this still shows up in gnome session starting with 25.05
 | 
			
		||||
            # indicator = true;
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
      ];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    (lib.mkIf config.services.xserver.desktopManager.gnome.enable {
 | 
			
		||||
      # replace kdeconnect with gsconnect
 | 
			
		||||
      programs.kdeconnect.package = pkgs.gnomeExtensions.gsconnect;
 | 
			
		||||
 | 
			
		||||
      home-manager.sharedModules = [
 | 
			
		||||
        (
 | 
			
		||||
          { pkgs, ... }:
 | 
			
		||||
          {
 | 
			
		||||
            home.packages = [ pkgs.gnomeExtensions.gsconnect ];
 | 
			
		||||
            # enable gsconnect extension
 | 
			
		||||
            dconf.settings = {
 | 
			
		||||
              "org/gnome/shell".enabled-extensions = [ "gsconnect@andyholmes.github.io" ];
 | 
			
		||||
              "org/gnome/shell/extensions/gsconnect".enabled = true;
 | 
			
		||||
            };
 | 
			
		||||
          }
 | 
			
		||||
        )
 | 
			
		||||
      ];
 | 
			
		||||
    })
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										15
									
								
								nixosModules/lix-is-nix.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								nixosModules/lix-is-nix.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,15 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  nixpkgs.overlays = [
 | 
			
		||||
    (final: prev: {
 | 
			
		||||
      inherit (prev.lixPackageSets.stable)
 | 
			
		||||
        nixpkgs-review
 | 
			
		||||
        nix-eval-jobs
 | 
			
		||||
        nix-fast-build
 | 
			
		||||
        colmena
 | 
			
		||||
        ;
 | 
			
		||||
    })
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  nix.package = pkgs.lixPackageSets.latest.lix;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										49
									
								
								nixosModules/modern-desktop.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								nixosModules/modern-desktop.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,49 @@
 | 
			
		|||
{
 | 
			
		||||
  services = {
 | 
			
		||||
    xserver.enable = true;
 | 
			
		||||
    libinput.enable = true;
 | 
			
		||||
    flatpak.enable = true;
 | 
			
		||||
    fstrim.enable = true;
 | 
			
		||||
    earlyoom = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      freeMemThreshold = 5;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Enable sound with pipewire.
 | 
			
		||||
  security.rtkit.enable = true;
 | 
			
		||||
  services = {
 | 
			
		||||
    pulseaudio.enable = false;
 | 
			
		||||
    pipewire = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      alsa.enable = true;
 | 
			
		||||
      alsa.support32Bit = true;
 | 
			
		||||
      pulse.enable = true;
 | 
			
		||||
      #jack.enable = true;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  systemd = {
 | 
			
		||||
    # save some boot time because nothing actually requires network connectivity
 | 
			
		||||
    services.NetworkManager-wait-online.enable = false;
 | 
			
		||||
 | 
			
		||||
    # prevent stuck units from preventing shutdown (default is 120s)
 | 
			
		||||
    extraConfig = ''
 | 
			
		||||
      DefaultTimeoutStopSec=10s
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  programs = {
 | 
			
		||||
    xwayland.enable = true;
 | 
			
		||||
 | 
			
		||||
    appimage = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      binfmt = true;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  system.autoUpgrade = {
 | 
			
		||||
    allowReboot = false;
 | 
			
		||||
    operation = "boot";
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								nixosModules/nix-ld.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								nixosModules/nix-ld.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  programs.nix-ld = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    libraries = with pkgs; [
 | 
			
		||||
      stdenv.cc.cc
 | 
			
		||||
      zlib
 | 
			
		||||
      zstd
 | 
			
		||||
      curl
 | 
			
		||||
      openssl
 | 
			
		||||
      attr
 | 
			
		||||
      libssh
 | 
			
		||||
      bzip2
 | 
			
		||||
      libxml2
 | 
			
		||||
      acl
 | 
			
		||||
      libsodium
 | 
			
		||||
      util-linux
 | 
			
		||||
      xz
 | 
			
		||||
      systemd
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								nixosModules/openssh.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								nixosModules/openssh.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
{
 | 
			
		||||
  services.openssh = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    openFirewall = true;
 | 
			
		||||
    settings = {
 | 
			
		||||
      PermitRootLogin = "without-password";
 | 
			
		||||
      PasswordAuthentication = false;
 | 
			
		||||
      KbdInteractiveAuthentication = false;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
_: {
 | 
			
		||||
{
 | 
			
		||||
  virtualisation = {
 | 
			
		||||
    containers.enable = true;
 | 
			
		||||
    podman = {
 | 
			
		||||
							
								
								
									
										12
									
								
								nixosModules/printing.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								nixosModules/printing.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,12 @@
 | 
			
		|||
{
 | 
			
		||||
  services = {
 | 
			
		||||
    # Enable CUPS to print documents.
 | 
			
		||||
    printing.enable = true;
 | 
			
		||||
 | 
			
		||||
    avahi = {
 | 
			
		||||
      enable = true; # runs the Avahi daemon
 | 
			
		||||
      nssmdns4 = true; # enables the mDNS NSS plug-in
 | 
			
		||||
      openFirewall = true; # opens the firewall for UDP port 5353
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								nixosModules/quiet-boot.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								nixosModules/quiet-boot.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
{
 | 
			
		||||
  boot = {
 | 
			
		||||
    kernelParams = [
 | 
			
		||||
      "quiet"
 | 
			
		||||
      "udev.log_level=3"
 | 
			
		||||
    ];
 | 
			
		||||
    consoleLogLevel = 0;
 | 
			
		||||
    initrd.verbose = false;
 | 
			
		||||
    plymouth.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										45
									
								
								nixosModules/steam.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								nixosModules/steam.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,45 @@
 | 
			
		|||
{
 | 
			
		||||
  hardware.steam-hardware.enable = true;
 | 
			
		||||
 | 
			
		||||
  programs = {
 | 
			
		||||
    steam = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      remotePlay.openFirewall = true;
 | 
			
		||||
      dedicatedServer.openFirewall = true;
 | 
			
		||||
      localNetworkGameTransfers.openFirewall = true;
 | 
			
		||||
      gamescopeSession.enable = false;
 | 
			
		||||
    };
 | 
			
		||||
    gamemode.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # steam network transfer
 | 
			
		||||
  networking.firewall = {
 | 
			
		||||
    allowedUDPPorts = [ 3478 ];
 | 
			
		||||
    allowedTCPPorts = [ 24070 ];
 | 
			
		||||
 | 
			
		||||
    allowedTCPPortRanges = [
 | 
			
		||||
      {
 | 
			
		||||
        from = 27015;
 | 
			
		||||
        to = 27050;
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    allowedUDPPortRanges = [
 | 
			
		||||
      {
 | 
			
		||||
        from = 4379;
 | 
			
		||||
        to = 4380;
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        from = 27000;
 | 
			
		||||
        to = 27100;
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  allowedUnfreePackages = [
 | 
			
		||||
    "steam"
 | 
			
		||||
    "steam-original"
 | 
			
		||||
    "steam-run"
 | 
			
		||||
    "steam-unwrapped"
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								nixosModules/systemd-boot.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								nixosModules/systemd-boot.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
{
 | 
			
		||||
  boot.loader = {
 | 
			
		||||
    timeout = 3;
 | 
			
		||||
    efi.canTouchEfiVariables = true;
 | 
			
		||||
    systemd-boot = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      editor = false; # do not allow changing kernel parameters
 | 
			
		||||
      consoleMode = "max";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										8
									
								
								nixosModules/tailscale.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								nixosModules/tailscale.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
{
 | 
			
		||||
  services.tailscale = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    openFirewall = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  networking.firewall.checkReversePath = "loose";
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										19
									
								
								nixosModules/user-ronja.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								nixosModules/user-ronja.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  users.users.ronja = {
 | 
			
		||||
    isNormalUser = true;
 | 
			
		||||
    name = "ronja";
 | 
			
		||||
    description = "Ronja";
 | 
			
		||||
    home = "/home/ronja";
 | 
			
		||||
    extraGroups = [
 | 
			
		||||
      "networkmanager"
 | 
			
		||||
      "wheel"
 | 
			
		||||
      "games"
 | 
			
		||||
      "podman"
 | 
			
		||||
      "openvscode-server"
 | 
			
		||||
    ];
 | 
			
		||||
    shell = pkgs.zsh;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  nix.settings.trusted-users = [ "ronja" ];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										35
									
								
								nixosModules/user-vinzenz.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								nixosModules/user-vinzenz.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,35 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  users.users.vinzenz = {
 | 
			
		||||
    isNormalUser = true;
 | 
			
		||||
    name = "vinzenz";
 | 
			
		||||
    description = "Vinzenz";
 | 
			
		||||
    home = "/home/vinzenz";
 | 
			
		||||
    extraGroups = [
 | 
			
		||||
      "networkmanager"
 | 
			
		||||
      "wheel"
 | 
			
		||||
      "games"
 | 
			
		||||
      "dialout"
 | 
			
		||||
      "podman"
 | 
			
		||||
      "nginx"
 | 
			
		||||
      "adbusers"
 | 
			
		||||
      "kvm"
 | 
			
		||||
      "input"
 | 
			
		||||
      "video"
 | 
			
		||||
    ];
 | 
			
		||||
    shell = pkgs.zsh;
 | 
			
		||||
    autoSubUidGidRange = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  nix.settings.trusted-users = [ "vinzenz" ];
 | 
			
		||||
 | 
			
		||||
  allowedUnfreePackages = [
 | 
			
		||||
    "rider"
 | 
			
		||||
    "pycharm-professional"
 | 
			
		||||
    "jetbrains-toolbox"
 | 
			
		||||
 | 
			
		||||
    "anydesk"
 | 
			
		||||
 | 
			
		||||
    "vscode-extension-ms-dotnettools-csharp"
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										28
									
								
								nixosModules/vinzenz-desktop-settings.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								nixosModules/vinzenz-desktop-settings.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,28 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  programs.firefox.enable = true;
 | 
			
		||||
 | 
			
		||||
  environment.systemPackages = with pkgs; [
 | 
			
		||||
    lm_sensors
 | 
			
		||||
    libreoffice-qt6
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  fonts = {
 | 
			
		||||
    enableDefaultPackages = true;
 | 
			
		||||
    fontconfig.defaultFonts.monospace = [ "FiraCode Nerd Font" ];
 | 
			
		||||
    packages = with pkgs; [
 | 
			
		||||
      nerd-fonts.fira-code
 | 
			
		||||
      roboto-mono
 | 
			
		||||
      recursive
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  hardware.logitech.wireless = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    enableGraphical = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # RDP connections
 | 
			
		||||
  services.gnome.gnome-remote-desktop.enable = true;
 | 
			
		||||
  networking.firewall.allowedTCPPorts = [ 3389 ];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								nixosModules/wine-gaming.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								nixosModules/wine-gaming.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  hardware = {
 | 
			
		||||
    graphics = {
 | 
			
		||||
      enable32Bit = true;
 | 
			
		||||
      extraPackages = with pkgs; [ mangohud ];
 | 
			
		||||
      extraPackages32 = with pkgs; [ mangohud ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    xpadneo.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  environment.systemPackages = with pkgs; [
 | 
			
		||||
    wineWowPackages.stagingFull
 | 
			
		||||
    wineWowPackages.fonts
 | 
			
		||||
    winetricks
 | 
			
		||||
    dxvk
 | 
			
		||||
    mangohud
 | 
			
		||||
    vulkan-tools
 | 
			
		||||
    glxinfo
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue