diff options
author | Freya Murphy <freya@freyacat.org> | 2025-09-17 22:07:16 -0400 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2025-09-17 22:07:16 -0400 |
commit | 68d03fe362b7e0df11662d8d6a1e01eac0bfae77 (patch) | |
tree | a76abd05f662f73b4083ddb0d8bf0d72c29e5a74 /system | |
parent | update commits (diff) | |
download | dotfiles-nix-68d03fe362b7e0df11662d8d6a1e01eac0bfae77.tar.gz dotfiles-nix-68d03fe362b7e0df11662d8d6a1e01eac0bfae77.tar.bz2 dotfiles-nix-68d03fe362b7e0df11662d8d6a1e01eac0bfae77.zip |
refactor: remove modules folder, fully split home and system modules
Diffstat (limited to 'system')
-rw-r--r-- | system/default.nix | 34 | ||||
-rw-r--r-- | system/desktops/default.nix | 8 | ||||
-rw-r--r-- | system/desktops/hyprland.nix | 29 | ||||
-rw-r--r-- | system/desktops/ly.nix | 59 | ||||
-rw-r--r-- | system/desktops/sway.nix | 33 | ||||
-rw-r--r-- | system/desktops/wayland.nix | 24 | ||||
-rw-r--r-- | system/fingerprint.nix | 6 | ||||
-rw-r--r-- | system/gaming/default.nix | 5 | ||||
-rw-r--r-- | system/gaming/steam.nix | 34 | ||||
-rw-r--r-- | system/sshd.nix | 4 | ||||
-rw-r--r-- | system/virt/default.nix | 6 | ||||
-rw-r--r-- | system/virt/docker.nix | 15 | ||||
-rw-r--r-- | system/virt/qemu.nix | 21 |
13 files changed, 270 insertions, 8 deletions
diff --git a/system/default.nix b/system/default.nix index e3b7c66..824c99f 100644 --- a/system/default.nix +++ b/system/default.nix @@ -1,10 +1,15 @@ { + lib, config, pkgs, - self, + inputs, ... }: { imports = [ + inputs.home-manager.nixosModules.home-manager + ./desktops + ./gaming + ./virt ./battery.nix ./bluetooth.nix ./desktop.nix @@ -27,6 +32,27 @@ # enable nixos-rebuild-ng system.rebuild.enableNg = true; + # use system packages in home manager + home-manager.useGlobalPkgs = true; + + # install user packages to /etc/profiles and not home directory + home-manager.useUserPackages = true; + + # root user home + home-manager.users.root = { + home.stateVersion = config.stateVersion; + }; + + # main user home + home-manager.extraSpecialArgs = {inherit inputs;}; + home-manager.users.${config.user} = { + imports = [ + ../home + ../options.nix + (inputs.self.lib.customConfig config) + ]; + }; + # hostname networking.hostName = config.hostName; @@ -40,7 +66,6 @@ shared-mime-info # shell bash - zsh # utility curl dig @@ -60,6 +85,9 @@ wget ]; + # system shell + programs.zsh.enable = true; + # use the latest kernel boot.kernelPackages = pkgs.linuxPackages_latest; @@ -92,5 +120,5 @@ }; # certs - security.pki.certificateFiles = self.lib.certs; + security.pki.certificateFiles = inputs.self.lib.certs; } diff --git a/system/desktops/default.nix b/system/desktops/default.nix new file mode 100644 index 0000000..8f9270f --- /dev/null +++ b/system/desktops/default.nix @@ -0,0 +1,8 @@ +{...}: { + imports = [ + ./hyprland.nix + ./ly.nix + ./sway.nix + ./wayland.nix + ]; +} diff --git a/system/desktops/hyprland.nix b/system/desktops/hyprland.nix new file mode 100644 index 0000000..91170bd --- /dev/null +++ b/system/desktops/hyprland.nix @@ -0,0 +1,29 @@ +{ + inputs, + config, + pkgs, + lib, + ... +}: let + inherit (lib) mkIf mkDefault; + cfg = config.desktops.hyprland; +in { + config = mkIf cfg.enable { + desktops.wayland.enable = true; + + xdg.portal = { + extraPortals = [ + inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland + ]; + config = { + hyprland.common = ["gtk" "hyprland"]; + }; + }; + + programs.hyprland = { + enable = true; + package = inputs.hyprland.packages.${pkgs.system}.hyprland; + portalPackage = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland; + }; + }; +} diff --git a/system/desktops/ly.nix b/system/desktops/ly.nix new file mode 100644 index 0000000..ac53495 --- /dev/null +++ b/system/desktops/ly.nix @@ -0,0 +1,59 @@ +{ + lib, + config, + pkgs, + inputs, + ... +}: let + inherit (lib) mkIf; + cfg = config.desktops.ly; +in { + config = mkIf cfg.enable { + # display manager + services.displayManager.ly = { + enable = true; + package = inputs.self.packages.${pkgs.system}.ly; + + settings = let + base = "0x00${config.theme.colors.base}"; + text = "0x00${config.theme.colors.text}"; + bold = "0x01${config.theme.colors.text}"; + error = "0x00${config.theme.colors.error}"; + save_file = pkgs.writeText "ly-prefs" '' + ${config.user} + 1 + ''; + in { + # general + clear_password = true; + default_input = "password"; + xinitrc = "null"; + hide_version_string = true; + hide_key_hints = true; + session_log = "/dev/null"; + # state (evil) + tty = 1; + save = false; + load = true; + save_file = toString save_file; + # background + bg = base; + error_bg = base; + blank_box = true; + # foreground + fg = text; + error_fg = error; + border_fg = bold; + }; + }; + + # disable default login on tty 1 + systemd.services."autovt@tty1".enable = false; + systemd.services."getty@tty1".enable = false; + + # fix env not being set + systemd.services.display-manager = { + environment.XDG_CURRENT_DESKTOP = "X-NIXOS-SYSTEMD-AWARE"; + }; + }; +} diff --git a/system/desktops/sway.nix b/system/desktops/sway.nix new file mode 100644 index 0000000..622d54c --- /dev/null +++ b/system/desktops/sway.nix @@ -0,0 +1,33 @@ +{ + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkIf mkDefault; + cfg = config.desktops.sway; +in { + config = mkIf cfg.enable { + desktops.wayland.enable = true; + + # TODO: set NIXOS_OZONE_WL env var + + xdg.portal = { + config = { + sway.common = ["gtk" "wlr"]; + }; + extraPortals = with pkgs; [ + xdg-desktop-portal-wlr + ]; + }; + + programs.sway = { + enable = true; + package = pkgs.swayfx; + wrapperFeatures = { + base = false; + gtk = false; + }; + }; + }; +} diff --git a/system/desktops/wayland.nix b/system/desktops/wayland.nix new file mode 100644 index 0000000..8a81fdf --- /dev/null +++ b/system/desktops/wayland.nix @@ -0,0 +1,24 @@ +{ + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkIf; + cfg = config.desktops.wayland; +in { + config = mkIf cfg.enable { + xdg.portal = { + enable = true; + xdgOpenUsePortal = true; + extraPortals = with pkgs; [ + xdg-desktop-portal-gtk + ]; + config = { + default.common = ["gtk"]; + }; + }; + + programs.xwayland.enable = true; + }; +} diff --git a/system/fingerprint.nix b/system/fingerprint.nix index d95e929..cbf8f24 100644 --- a/system/fingerprint.nix +++ b/system/fingerprint.nix @@ -1,8 +1,8 @@ { lib, + pkgs, config, - self, - system, + inputs, ... }: let inherit (lib) mkIf; @@ -11,7 +11,7 @@ in { services.fprintd = { enable = true; tod.enable = true; - tod.driver = self.packages.${system}.libfprint-2-tod1-vfs0090; + tod.driver = inputs.self.packages.${pkgs.system}.libfprint-2-tod1-vfs0090; }; }; } diff --git a/system/gaming/default.nix b/system/gaming/default.nix new file mode 100644 index 0000000..acb0a1f --- /dev/null +++ b/system/gaming/default.nix @@ -0,0 +1,5 @@ +{...}: { + imports = [ + ./steam.nix + ]; +} diff --git a/system/gaming/steam.nix b/system/gaming/steam.nix new file mode 100644 index 0000000..cd243e5 --- /dev/null +++ b/system/gaming/steam.nix @@ -0,0 +1,34 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkIf; + cfg = config.gaming.steam; +in { + config = mkIf cfg.enable { + nixpkgs.config.allowUnfreePredicate = pkg: + builtins.elem (lib.getName pkg) [ + "steam" + "steam-original" + "steam-runtime" + ]; + + programs.gamescope = { + enable = true; + capSysNice = true; + }; + + programs.steam = { + enable = true; + remotePlay.openFirewall = true; + dedicatedServer.openFirewall = true; + localNetworkGameTransfers.openFirewall = true; + gamescopeSession.enable = true; + }; + + # controllers + hardware.xone.enable = true; + hardware.steam-hardware.enable = true; + }; +} diff --git a/system/sshd.nix b/system/sshd.nix index a1ca2f2..e7f64d8 100644 --- a/system/sshd.nix +++ b/system/sshd.nix @@ -1,7 +1,7 @@ { lib, config, - self, + inputs, ... }: let inherit (lib) mkIf; @@ -34,7 +34,7 @@ in { # add authorized keys users.users.${config.user} = { - openssh.authorizedKeys.keyFiles = self.lib.sshKeys; + openssh.authorizedKeys.keyFiles = inputs.self.lib.sshKeys; }; }; } diff --git a/system/virt/default.nix b/system/virt/default.nix new file mode 100644 index 0000000..18be703 --- /dev/null +++ b/system/virt/default.nix @@ -0,0 +1,6 @@ +{...}: { + imports = [ + ./docker.nix + ./qemu.nix + ]; +} diff --git a/system/virt/docker.nix b/system/virt/docker.nix new file mode 100644 index 0000000..2505df4 --- /dev/null +++ b/system/virt/docker.nix @@ -0,0 +1,15 @@ +{ + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkIf; + cfg = config.virt.docker; +in { + config = mkIf cfg.enable { + virtualisation.docker.enable = true; + virtualisation.docker.storageDriver = "btrfs"; + users.groups.docker.members = [config.user]; + }; +} diff --git a/system/virt/qemu.nix b/system/virt/qemu.nix new file mode 100644 index 0000000..6c068e4 --- /dev/null +++ b/system/virt/qemu.nix @@ -0,0 +1,21 @@ +{ + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkIf; + cfg = config.virt.qemu; +in { + config = mkIf cfg.enable { + programs.virt-manager.enable = true; + users.groups.kvm.members = [config.user]; + users.groups.libvirtd.members = [config.user]; + virtualisation.libvirtd.enable = true; + virtualisation.spiceUSBRedirection.enable = true; + + environment.systemPackages = with pkgs; [ + qemu + ]; + }; +} |