Compare commits
	
		
			No commits in common. "1735ec5594d1c2d1f8650e75d79cc9699d522e15" and "1b3b7cf607b57db75d152829f58f2358f66eabbb" have entirely different histories.
		
	
	
		
			1735ec5594
			...
			1b3b7cf607
		
	
		
					 60 changed files with 677 additions and 701 deletions
				
			
		
							
								
								
									
										118
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										118
									
								
								flake.nix
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -63,66 +63,23 @@
 | 
			
		|||
    }:
 | 
			
		||||
    let
 | 
			
		||||
      devices = {
 | 
			
		||||
        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 ];
 | 
			
		||||
        };
 | 
			
		||||
        vinzenz-lpt2 = "x86_64-linux";
 | 
			
		||||
        vinzenz-pc2 = "x86_64-linux";
 | 
			
		||||
        ronja-pc = "x86_64-linux";
 | 
			
		||||
        hetzner-vpn2 = "aarch64-linux";
 | 
			
		||||
        forgejo-runner-1 = "aarch64-linux";
 | 
			
		||||
      };
 | 
			
		||||
      homeDevices = [
 | 
			
		||||
        "vinzenz-lpt2"
 | 
			
		||||
        "vinzenz-pc2"
 | 
			
		||||
        "ronja-pc"
 | 
			
		||||
      ];
 | 
			
		||||
      lib = nixpkgs.lib;
 | 
			
		||||
      forDevice = f: lib.mapAttrs (device: value: f (value // { inherit device; })) devices;
 | 
			
		||||
      supported-systems = lib.attrsets.mapAttrsToList (k: v: v.system) devices;
 | 
			
		||||
      forDevice = f: lib.mapAttrs f devices;
 | 
			
		||||
      supported-systems = [
 | 
			
		||||
        "x86_64-linux"
 | 
			
		||||
        "aarch64-linux"
 | 
			
		||||
      ];
 | 
			
		||||
      forAllSystems =
 | 
			
		||||
        f:
 | 
			
		||||
        lib.genAttrs supported-systems (
 | 
			
		||||
| 
						 | 
				
			
			@ -144,28 +101,21 @@
 | 
			
		|||
      };
 | 
			
		||||
 | 
			
		||||
      nixosConfigurations = forDevice (
 | 
			
		||||
        {
 | 
			
		||||
          device,
 | 
			
		||||
          system,
 | 
			
		||||
          home-manager-users ? { },
 | 
			
		||||
          additional-modules ? [ ],
 | 
			
		||||
        }:
 | 
			
		||||
        device: system:
 | 
			
		||||
        let
 | 
			
		||||
          specialArgs = {
 | 
			
		||||
          commonSpecialArgs = {
 | 
			
		||||
            inherit device;
 | 
			
		||||
            vinzenzHomeModules = self.homeModules;
 | 
			
		||||
            vinzenzLib = self.lib;
 | 
			
		||||
          };
 | 
			
		||||
        in
 | 
			
		||||
        nixpkgs.lib.nixosSystem {
 | 
			
		||||
          inherit system specialArgs;
 | 
			
		||||
          inherit system;
 | 
			
		||||
          specialArgs = commonSpecialArgs // {
 | 
			
		||||
            vinzenzNixosModules = self.nixosModules;
 | 
			
		||||
          };
 | 
			
		||||
          modules = [
 | 
			
		||||
            {
 | 
			
		||||
              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";
 | 
			
		||||
| 
						 | 
				
			
			@ -178,18 +128,11 @@
 | 
			
		|||
              nix.settings.experimental-features = [
 | 
			
		||||
                "nix-command"
 | 
			
		||||
                "flakes"
 | 
			
		||||
                "repl-flake"
 | 
			
		||||
              ];
 | 
			
		||||
 | 
			
		||||
              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
 | 
			
		||||
| 
						 | 
				
			
			@ -197,14 +140,14 @@
 | 
			
		|||
            self.nixosModules.tailscale
 | 
			
		||||
            self.nixosModules.allowed-unfree-list
 | 
			
		||||
            self.nixosModules.extra-caches
 | 
			
		||||
            self.nixosModules.systemd-boot
 | 
			
		||||
            ./modules/nixpkgs.nix
 | 
			
		||||
 | 
			
		||||
            zerforschen-plus.nixosModules.default
 | 
			
		||||
          ]
 | 
			
		||||
          ++ (nixpkgs.lib.optionals (home-manager-users != { }) [
 | 
			
		||||
          ++ (nixpkgs.lib.optionals (builtins.elem device homeDevices) [
 | 
			
		||||
            {
 | 
			
		||||
              home-manager = {
 | 
			
		||||
                extraSpecialArgs = specialArgs;
 | 
			
		||||
                extraSpecialArgs = commonSpecialArgs;
 | 
			
		||||
                useGlobalPkgs = true;
 | 
			
		||||
                useUserPackages = true;
 | 
			
		||||
              };
 | 
			
		||||
| 
						 | 
				
			
			@ -218,10 +161,7 @@
 | 
			
		|||
                self.homeModules.templates
 | 
			
		||||
                self.homeModules.zsh-basics
 | 
			
		||||
                self.homeModules.nano
 | 
			
		||||
                self.homeModules.gnome-extensions
 | 
			
		||||
              ];
 | 
			
		||||
 | 
			
		||||
              home-manager.users = home-manager-users;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            self.nixosModules.pkgs-unstable
 | 
			
		||||
| 
						 | 
				
			
			@ -232,14 +172,11 @@
 | 
			
		|||
            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;
 | 
			
		||||
          ]);
 | 
			
		||||
        }
 | 
			
		||||
      );
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -263,14 +200,9 @@
 | 
			
		|||
        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);
 | 
			
		||||
    };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,5 @@
 | 
			
		|||
{ config, pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  imports = [ ./vscode.nix ];
 | 
			
		||||
  config = {
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
      ## Apps
 | 
			
		||||
							
								
								
									
										25
									
								
								home/ronja/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								home/ronja/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,25 @@
 | 
			
		|||
{ 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
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -56,10 +56,6 @@
 | 
			
		|||
    icu
 | 
			
		||||
 | 
			
		||||
    nextcloud-client
 | 
			
		||||
 | 
			
		||||
    lutris
 | 
			
		||||
 | 
			
		||||
    foliate
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  home.file = {
 | 
			
		||||
							
								
								
									
										51
									
								
								home/vinzenz/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								home/vinzenz/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,51 @@
 | 
			
		|||
{ 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"
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										24
									
								
								home/vinzenz/gnome.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								home/vinzenz/gnome.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,24 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config = {
 | 
			
		||||
    home.packages =
 | 
			
		||||
      with pkgs.gnomeExtensions;
 | 
			
		||||
      [
 | 
			
		||||
        # 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"
 | 
			
		||||
          "solaar-extension@sidevesh"
 | 
			
		||||
          "AlphabeticalAppGrid@stuarthayhurst"
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,15 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./configuration.nix
 | 
			
		||||
    ./editorconfig.nix
 | 
			
		||||
    ./fuzzel.nix
 | 
			
		||||
    ./git.nix
 | 
			
		||||
    ./gnome.nix
 | 
			
		||||
    #./niri.nix
 | 
			
		||||
    ./ssh.nix
 | 
			
		||||
    ./swaylock.nix
 | 
			
		||||
    ./vscode.nix
 | 
			
		||||
    ./waybar.nix
 | 
			
		||||
    ./zsh.nix
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,31 +0,0 @@
 | 
			
		|||
{ 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" ];
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,101 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  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;
 | 
			
		||||
        })
 | 
			
		||||
      ]
 | 
			
		||||
    );
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,6 +0,0 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
set -euxo pipefail
 | 
			
		||||
 | 
			
		||||
nix fmt
 | 
			
		||||
 | 
			
		||||
nix flake check --all-systems --show-trace
 | 
			
		||||
							
								
								
									
										22
									
								
								modules/amd-graphics.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								modules/amd-graphics.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
{ 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 ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										31
									
								
								modules/desktop-environment.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								modules/desktop-environment.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,31 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config = {
 | 
			
		||||
    programs.firefox.enable = true;
 | 
			
		||||
 | 
			
		||||
    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;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										48
									
								
								modules/desktop-hardware.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								modules/desktop-hardware.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,48 @@
 | 
			
		|||
{
 | 
			
		||||
  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;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								modules/gaming.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								modules/gaming.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,30 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config = {
 | 
			
		||||
    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
 | 
			
		||||
      lutris
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    networking.firewall.allowedUDPPorts = [
 | 
			
		||||
      # Factorio
 | 
			
		||||
      34197
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										43
									
								
								modules/gnome-shared-dconf.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								modules/gnome-shared-dconf.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,43 @@
 | 
			
		|||
{
 | 
			
		||||
  "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";
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										61
									
								
								modules/gnome.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								modules/gnome.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,61 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config = {
 | 
			
		||||
    # 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
 | 
			
		||||
    services.gnome.gnome-remote-desktop.enable = true;
 | 
			
		||||
    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;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      {
 | 
			
		||||
        home.packages = with pkgs; [ trayscale ] ++ (with gnomeExtensions; [ tailscale-qs ]);
 | 
			
		||||
        dconf.settings."org/gnome/shell".enabled-extensions = [ "tailscale@joaophi.github.com" ];
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,5 +1,7 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{ pkgs, vinzenzNixosModules, ... }:
 | 
			
		||||
{
 | 
			
		||||
  imports = [ vinzenzNixosModules.allowed-unfree-list ];
 | 
			
		||||
 | 
			
		||||
  config = {
 | 
			
		||||
    hardware.graphics = {
 | 
			
		||||
      extraPackages = with pkgs; [
 | 
			
		||||
							
								
								
									
										9
									
								
								modules/nixpkgs.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								modules/nixpkgs.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,9 @@
 | 
			
		|||
{
 | 
			
		||||
  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
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										15
									
								
								nixosConfigurations/forgejo-runner-1/configuration.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								nixosConfigurations/forgejo-runner-1/configuration.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,15 @@
 | 
			
		|||
{ ... }:
 | 
			
		||||
{
 | 
			
		||||
  # 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,21 +1,10 @@
 | 
			
		|||
{ vinzenzNixosModules, ... }:
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./configuration.nix
 | 
			
		||||
    ./hardware.nix
 | 
			
		||||
 | 
			
		||||
    vinzenzNixosModules.podman
 | 
			
		||||
    ./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,6 +3,11 @@
 | 
			
		|||
  imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
 | 
			
		||||
 | 
			
		||||
  config = {
 | 
			
		||||
    nixpkgs = {
 | 
			
		||||
      hostPlatform = "aarch64-linux";
 | 
			
		||||
      system = "aarch64-linux";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    boot = {
 | 
			
		||||
      tmp.cleanOnBoot = true;
 | 
			
		||||
      kernelParams = [ "console=tty" ];
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										21
									
								
								nixosConfigurations/hetzner-vpn2/configuration.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								nixosConfigurations/hetzner-vpn2/configuration.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
{ ... }:
 | 
			
		||||
{
 | 
			
		||||
  # 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,27 +1,7 @@
 | 
			
		|||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./configuration.nix
 | 
			
		||||
    ./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,6 +3,11 @@
 | 
			
		|||
  imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
 | 
			
		||||
 | 
			
		||||
  config = {
 | 
			
		||||
    nixpkgs = {
 | 
			
		||||
      hostPlatform = "aarch64-linux";
 | 
			
		||||
      system = "aarch64-linux";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    boot = {
 | 
			
		||||
      tmp.cleanOnBoot = true;
 | 
			
		||||
      kernelParams = [ "console=tty" ];
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										26
									
								
								nixosConfigurations/ronja-pc/configuration.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								nixosConfigurations/ronja-pc/configuration.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,26 @@
 | 
			
		|||
{
 | 
			
		||||
  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,32 +1,15 @@
 | 
			
		|||
{
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{ vinzenzNixosModules, ... }:
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./configuration.nix
 | 
			
		||||
    ./hardware.nix
 | 
			
		||||
 | 
			
		||||
    ../../modules/gnome.nix
 | 
			
		||||
    ../../modules/gaming.nix
 | 
			
		||||
    vinzenzNixosModules.steam
 | 
			
		||||
    ../../modules/desktop-environment.nix
 | 
			
		||||
    ../../modules/desktop-hardware.nix
 | 
			
		||||
 | 
			
		||||
    ../../home/ronja
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  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,8 +1,6 @@
 | 
			
		|||
{ lib, ... }:
 | 
			
		||||
{
 | 
			
		||||
  boot = {
 | 
			
		||||
    supportedFilesystems = [ "btrfs" ];
 | 
			
		||||
    initrd.supportedFilesystems = [ "btrfs" ];
 | 
			
		||||
    kernelModules = [ "kvm-intel" ];
 | 
			
		||||
    extraModulePackages = [ ];
 | 
			
		||||
    initrd = {
 | 
			
		||||
| 
						 | 
				
			
			@ -39,10 +37,6 @@
 | 
			
		|||
    { device = "/dev/disk/by-uuid/bf9d19fb-499b-4bfb-b67d-131fa5bf8259"; }
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  hardware.bluetooth.enable = true;
 | 
			
		||||
 | 
			
		||||
  networking = {
 | 
			
		||||
    networkmanager.enable = true;
 | 
			
		||||
    useDHCP = lib.mkDefault true;
 | 
			
		||||
  };
 | 
			
		||||
  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
 | 
			
		||||
  hardware.cpu.intel.updateMicrocode = true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										45
									
								
								nixosConfigurations/vinzenz-lpt2/configuration.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								nixosConfigurations/vinzenz-lpt2/configuration.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,45 @@
 | 
			
		|||
{ ... }:
 | 
			
		||||
{
 | 
			
		||||
  imports = [ ./nginx.nix ];
 | 
			
		||||
 | 
			
		||||
  config = {
 | 
			
		||||
    nix.settings.extra-platforms = [
 | 
			
		||||
      "aarch64-linux"
 | 
			
		||||
      "i686-linux"
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    services.xserver.xkb = {
 | 
			
		||||
      # Configure keymap in X11
 | 
			
		||||
      layout = "de";
 | 
			
		||||
      variant = "";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # Configure console keymap
 | 
			
		||||
    console.keyMap = "de";
 | 
			
		||||
 | 
			
		||||
    users.users.vinzenz.openssh.authorizedKeys.keys = [
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFCJUpbpB3KEKVoKWsKoar9J4RNah8gmQoSH6jQEw5dY vinzenz-pixel-JuiceSSH''
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO1CRn4yYTL4XUdCebE8Z4ZeuMujBjorTdWifg911EOv vinzenz-pc2 home roaming''
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    #users.users.ronja.openssh.authorizedKeys.keys = [
 | 
			
		||||
    #  ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIALWKm+d6KL6Vl3grPOcGouiNTkvdhXuWJmcrdEBY2nw ronja-ssh-host-key''
 | 
			
		||||
    #];
 | 
			
		||||
 | 
			
		||||
    programs = {
 | 
			
		||||
      adb.enable = true;
 | 
			
		||||
      light = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        brightnessKeys = {
 | 
			
		||||
          enable = true;
 | 
			
		||||
          step = 5;
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    networking.firewall.allowedTCPPorts = [
 | 
			
		||||
      8776
 | 
			
		||||
      1337
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,47 +1,18 @@
 | 
			
		|||
{ vinzenzNixosModules, ... }:
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./configuration.nix
 | 
			
		||||
    ./hardware.nix
 | 
			
		||||
    ./nginx.nix
 | 
			
		||||
 | 
			
		||||
    ../../modules/gnome.nix
 | 
			
		||||
    ../../modules/gaming.nix
 | 
			
		||||
    vinzenzNixosModules.steam
 | 
			
		||||
    vinzenzNixosModules.printing
 | 
			
		||||
    vinzenzNixosModules.podman
 | 
			
		||||
    ../../modules/desktop-environment.nix
 | 
			
		||||
    ../../modules/desktop-hardware.nix
 | 
			
		||||
 | 
			
		||||
    ../../home/vinzenz
 | 
			
		||||
    ../../home/ronja
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  config = {
 | 
			
		||||
    nix.settings.extra-platforms = [
 | 
			
		||||
      "aarch64-linux"
 | 
			
		||||
      "i686-linux"
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    services.xserver.xkb = {
 | 
			
		||||
      # Configure keymap in X11
 | 
			
		||||
      layout = "de";
 | 
			
		||||
      variant = "";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # Configure console keymap
 | 
			
		||||
    console.keyMap = "de";
 | 
			
		||||
 | 
			
		||||
    users.users.vinzenz.openssh.authorizedKeys.keys = [
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFCJUpbpB3KEKVoKWsKoar9J4RNah8gmQoSH6jQEw5dY vinzenz-pixel-JuiceSSH''
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO1CRn4yYTL4XUdCebE8Z4ZeuMujBjorTdWifg911EOv vinzenz-pc2 home roaming''
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    #users.users.ronja.openssh.authorizedKeys.keys = [
 | 
			
		||||
    #  ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIALWKm+d6KL6Vl3grPOcGouiNTkvdhXuWJmcrdEBY2nw ronja-ssh-host-key''
 | 
			
		||||
    #];
 | 
			
		||||
 | 
			
		||||
    programs = {
 | 
			
		||||
      adb.enable = true;
 | 
			
		||||
      light = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        brightnessKeys = {
 | 
			
		||||
          enable = true;
 | 
			
		||||
          step = 5;
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    networking.firewall.allowedTCPPorts = [
 | 
			
		||||
      8776
 | 
			
		||||
      1337
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,21 +1,30 @@
 | 
			
		|||
{ pkgs, lib, ... }:
 | 
			
		||||
{ lib, ... }:
 | 
			
		||||
{
 | 
			
		||||
  # intel cpu
 | 
			
		||||
  boot.kernelModules = [
 | 
			
		||||
    "kvm-intel"
 | 
			
		||||
    "xe"
 | 
			
		||||
  ];
 | 
			
		||||
  imports = [ ../../modules/intel-graphics.nix ];
 | 
			
		||||
  config = {
 | 
			
		||||
    # intel cpu
 | 
			
		||||
    boot.kernelModules = [
 | 
			
		||||
      "kvm-intel"
 | 
			
		||||
      "xe"
 | 
			
		||||
    ];
 | 
			
		||||
    hardware.cpu.intel.updateMicrocode = true;
 | 
			
		||||
 | 
			
		||||
  networking = {
 | 
			
		||||
    networkmanager.enable = true;
 | 
			
		||||
    useDHCP = lib.mkDefault true;
 | 
			
		||||
  };
 | 
			
		||||
    boot.loader = {
 | 
			
		||||
      systemd-boot.enable = true;
 | 
			
		||||
      efi.canTouchEfiVariables = true;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  boot = {
 | 
			
		||||
    kernelPackages = pkgs.linuxPackages_zen;
 | 
			
		||||
    supportedFilesystems = [ "btrfs" ];
 | 
			
		||||
    initrd = {
 | 
			
		||||
      supportedFilesystems = [ "btrfs" ];
 | 
			
		||||
    # 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"
 | 
			
		||||
| 
						 | 
				
			
			@ -27,30 +36,28 @@
 | 
			
		|||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  fileSystems = {
 | 
			
		||||
    "/" = {
 | 
			
		||||
      device = "/dev/disk/by-uuid/e4dad0c8-26a1-45e9-bbd9-48565eb6574e";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=@" ];
 | 
			
		||||
    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";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    "/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
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  swapDevices = [
 | 
			
		||||
    {
 | 
			
		||||
      device = "/var/lib/swapfile";
 | 
			
		||||
      size = 32 * 1024;
 | 
			
		||||
    }
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  services.thermald.enable = true;
 | 
			
		||||
  services.hardware.bolt.enable = true; # thunderbolt security
 | 
			
		||||
 | 
			
		||||
  hardware.bluetooth.enable = true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										36
									
								
								nixosConfigurations/vinzenz-pc2/configuration.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								nixosConfigurations/vinzenz-pc2/configuration.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,36 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./hardware.nix
 | 
			
		||||
    ./vscode-server.nix
 | 
			
		||||
    ./hass.nix
 | 
			
		||||
  ];
 | 
			
		||||
  config = {
 | 
			
		||||
    nix.settings.extra-platforms = [
 | 
			
		||||
      "aarch64-linux"
 | 
			
		||||
      "i686-linux"
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    services.xserver.xkb = {
 | 
			
		||||
      # Configure keymap in X11
 | 
			
		||||
      layout = "de";
 | 
			
		||||
      variant = "";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # Configure console keymap
 | 
			
		||||
    console.keyMap = "de";
 | 
			
		||||
 | 
			
		||||
    users.users.vinzenz.openssh.authorizedKeys.keys = [
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINrY6tcgnoC/xbgL7vxSjddEY9MBxRXe9n2cAHt88/TT home roaming''
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFCJUpbpB3KEKVoKWsKoar9J4RNah8gmQoSH6jQEw5dY vinzenz-pixel-JuiceSSH''
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPDNpLDmctyqGpow/ElQvdhY4BLBPS/sigDJ1QEcC7wC vinzenz-lpt2-roaming''
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    users.users.ronja.openssh.authorizedKeys.keys = [
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIALWKm+d6KL6Vl3grPOcGouiNTkvdhXuWJmcrdEBY2nw ssh-host-key''
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEgN6J8KyVyQqBAz+y3drXDmIsxOPkdPB+ISgpIP9Eld Generated By Termius''
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    environment.systemPackages = with pkgs; [ lact ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,42 +1,19 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{ vinzenzNixosModules, ... }:
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./configuration.nix
 | 
			
		||||
    ./hardware.nix
 | 
			
		||||
    ./vscode-server.nix
 | 
			
		||||
    ./hass.nix
 | 
			
		||||
 | 
			
		||||
    ../../modules/gnome.nix
 | 
			
		||||
    ../../modules/gaming.nix
 | 
			
		||||
    vinzenzNixosModules.steam
 | 
			
		||||
    vinzenzNixosModules.printing
 | 
			
		||||
    vinzenzNixosModules.podman
 | 
			
		||||
    #../../modules/niri.nix
 | 
			
		||||
    ../../modules/desktop-environment.nix
 | 
			
		||||
    ../../modules/desktop-hardware.nix
 | 
			
		||||
 | 
			
		||||
    ../../home/vinzenz
 | 
			
		||||
    ../../home/ronja
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  config = {
 | 
			
		||||
    nix.settings.extra-platforms = [
 | 
			
		||||
      "aarch64-linux"
 | 
			
		||||
      "i686-linux"
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    services.xserver.xkb = {
 | 
			
		||||
      # Configure keymap in X11
 | 
			
		||||
      layout = "de";
 | 
			
		||||
      variant = "";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # Configure console keymap
 | 
			
		||||
    console.keyMap = "de";
 | 
			
		||||
 | 
			
		||||
    users.users.vinzenz.openssh.authorizedKeys.keys = [
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINrY6tcgnoC/xbgL7vxSjddEY9MBxRXe9n2cAHt88/TT home roaming''
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFCJUpbpB3KEKVoKWsKoar9J4RNah8gmQoSH6jQEw5dY vinzenz-pixel-JuiceSSH''
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPDNpLDmctyqGpow/ElQvdhY4BLBPS/sigDJ1QEcC7wC vinzenz-lpt2-roaming''
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    users.users.ronja.openssh.authorizedKeys.keys = [
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIALWKm+d6KL6Vl3grPOcGouiNTkvdhXuWJmcrdEBY2nw ssh-host-key''
 | 
			
		||||
      ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEgN6J8KyVyQqBAz+y3drXDmIsxOPkdPB+ISgpIP9Eld Generated By Termius''
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    environment.systemPackages = with pkgs; [ lact ];
 | 
			
		||||
 | 
			
		||||
    networking.firewall.allowedUDPPorts = [
 | 
			
		||||
      # Factorio
 | 
			
		||||
      34197
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,30 +1,25 @@
 | 
			
		|||
{ pkgs, lib, ... }:
 | 
			
		||||
{ ... }:
 | 
			
		||||
{
 | 
			
		||||
  # amd cpu
 | 
			
		||||
  boot.kernelModules = [ "kvm-amd" ];
 | 
			
		||||
  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"
 | 
			
		||||
    kernelPackages = pkgs.linuxPackages_zen;
 | 
			
		||||
    supportedFilesystems = [ "btrfs" ];
 | 
			
		||||
    initrd.supportedFilesystems = [ "btrfs" ];
 | 
			
		||||
    loader.efi.efiSysMountPoint = "/boot";
 | 
			
		||||
    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;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  fileSystems = import ./fstab.nix;
 | 
			
		||||
  swapDevices = [ ];
 | 
			
		||||
 | 
			
		||||
  networking = {
 | 
			
		||||
    networkmanager.enable = true;
 | 
			
		||||
    useDHCP = lib.mkDefault true;
 | 
			
		||||
    interfaces.eno1.wakeOnLan.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  hardware.bluetooth.enable = true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,12 +15,16 @@
 | 
			
		|||
    ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  networking.firewall.allowedTCPPorts = [
 | 
			
		||||
    8542
 | 
			
		||||
    8543
 | 
			
		||||
    8544
 | 
			
		||||
    80
 | 
			
		||||
    1313
 | 
			
		||||
    5201
 | 
			
		||||
  ];
 | 
			
		||||
  networking = {
 | 
			
		||||
    firewall = {
 | 
			
		||||
      allowedTCPPorts = [
 | 
			
		||||
        8542
 | 
			
		||||
        8543
 | 
			
		||||
        8544
 | 
			
		||||
        80
 | 
			
		||||
        1313
 | 
			
		||||
        5201
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,9 +9,7 @@
 | 
			
		|||
  config = {
 | 
			
		||||
    nixpkgs.config = {
 | 
			
		||||
      # https://github.com/NixOS/nixpkgs/issues/197325#issuecomment-1579420085
 | 
			
		||||
      allowUnfreePredicate = lib.mkDefault (
 | 
			
		||||
        pkg: builtins.elem (lib.getName pkg) config.allowedUnfreePackages
 | 
			
		||||
      );
 | 
			
		||||
      allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) config.allowedUnfreePackages;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,20 +0,0 @@
 | 
			
		|||
{ 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 ];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,3 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  i18n = {
 | 
			
		||||
    defaultLocale = "en_US.UTF-8";
 | 
			
		||||
| 
						 | 
				
			
			@ -22,10 +21,4 @@
 | 
			
		|||
    "en-US"
 | 
			
		||||
    "de"
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  environment.systemPackages = [
 | 
			
		||||
    pkgs.hunspell
 | 
			
		||||
    pkgs.hunspellDicts.de-de
 | 
			
		||||
    pkgs.hunspellDicts.en-us
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  hardware = {
 | 
			
		||||
    enableRedistributableFirmware = true;
 | 
			
		||||
    cpu = {
 | 
			
		||||
      amd.updateMicrocode = true;
 | 
			
		||||
      intel.updateMicrocode = true;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  services.fwupd.enable = true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,65 +1,31 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  config,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  options.vinzenz = {
 | 
			
		||||
    keep-gnome-default-apps = lib.mkEnableOption "keep gnome default apps";
 | 
			
		||||
  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;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  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
 | 
			
		||||
      ];
 | 
			
		||||
    })
 | 
			
		||||
  ];
 | 
			
		||||
  programs = {
 | 
			
		||||
    dconf.enable = true;
 | 
			
		||||
    gpaste.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  boot = {
 | 
			
		||||
    kernelParams = [
 | 
			
		||||
      "quiet"
 | 
			
		||||
      "udev.log_level=3"
 | 
			
		||||
    ];
 | 
			
		||||
    consoleLogLevel = 0;
 | 
			
		||||
    initrd.verbose = false;
 | 
			
		||||
    plymouth.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,7 @@
 | 
			
		|||
{ vinzenzNixosModules, ... }:
 | 
			
		||||
{
 | 
			
		||||
  imports = [ vinzenzNixosModules.allowed-unfree-list ];
 | 
			
		||||
 | 
			
		||||
  hardware.steam-hardware.enable = true;
 | 
			
		||||
 | 
			
		||||
  programs = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +0,0 @@
 | 
			
		|||
{
 | 
			
		||||
  boot.loader = {
 | 
			
		||||
    timeout = 3;
 | 
			
		||||
    efi.canTouchEfiVariables = true;
 | 
			
		||||
    systemd-boot = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      editor = false; # do not allow changing kernel parameters
 | 
			
		||||
      consoleMode = "max";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,19 +0,0 @@
 | 
			
		|||
{ 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" ];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,35 +0,0 @@
 | 
			
		|||
{ 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"
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,28 +0,0 @@
 | 
			
		|||
{ 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 ];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,22 +0,0 @@
 | 
			
		|||
{ 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