diff --git a/home/default.nix b/home/default.nix index 607add26..8567d30e 100644 --- a/home/default.nix +++ b/home/default.nix @@ -12,22 +12,22 @@ ./etc ]; - # Define homeImports for each profile, including sharedImports + # Define homeImports for each user, including sharedImports homeImports = { "cnst@cnix" = sharedImports ++ [ - ./profiles/cnst + ./users/cnst ]; "adam@adampad" = sharedImports ++ [ - ./profiles/adam + ./users/adam ]; "toothpick@toothpc" = sharedImports ++ [ - ./profiles/toothpick + ./users/toothpick ]; }; diff --git a/home/profiles/adam/default.nix b/home/users/adam/default.nix similarity index 100% rename from home/profiles/adam/default.nix rename to home/users/adam/default.nix diff --git a/home/profiles/adam/git.nix b/home/users/adam/git.nix similarity index 100% rename from home/profiles/adam/git.nix rename to home/users/adam/git.nix diff --git a/home/profiles/adam/modules.nix b/home/users/adam/modules.nix similarity index 100% rename from home/profiles/adam/modules.nix rename to home/users/adam/modules.nix diff --git a/home/profiles/adam/shell.nix b/home/users/adam/shell.nix similarity index 86% rename from home/profiles/adam/shell.nix rename to home/users/adam/shell.nix index fe6376b8..48c170ed 100644 --- a/home/profiles/adam/shell.nix +++ b/home/users/adam/shell.nix @@ -7,6 +7,10 @@ syntaxHighlighting.enable = true; shellAliases = { + usermodules = "nvim /home/adam/.nix-config/home/users/adam/modules.nix"; + umod = "nvim /home/adam/.nix-config/home/users/adam/modules.nix"; + systemmodules = "nvim /home/adam/.nix-config/hosts/adampad/modules.nix"; + smod = "nvim /home/adam/.nix-config/hosts/adampad/modules.nix"; nixclean = "sudo nix run .#cleanup-boot"; nixdev = "nix develop ~/.nix-config -c $SHELL"; nixconfig = "cd /home/adam/.nix-config/"; diff --git a/home/profiles/cnst/default.nix b/home/users/cnst/default.nix similarity index 100% rename from home/profiles/cnst/default.nix rename to home/users/cnst/default.nix diff --git a/home/profiles/cnst/git.nix b/home/users/cnst/git.nix similarity index 100% rename from home/profiles/cnst/git.nix rename to home/users/cnst/git.nix diff --git a/home/profiles/cnst/modules.nix b/home/users/cnst/modules.nix similarity index 100% rename from home/profiles/cnst/modules.nix rename to home/users/cnst/modules.nix diff --git a/home/profiles/cnst/shell.nix b/home/users/cnst/shell.nix similarity index 86% rename from home/profiles/cnst/shell.nix rename to home/users/cnst/shell.nix index 07203558..42f176ee 100644 --- a/home/profiles/cnst/shell.nix +++ b/home/users/cnst/shell.nix @@ -7,7 +7,10 @@ syntaxHighlighting.enable = true; shellAliases = { - nixmodules = "nvim /home/cnst/.nix-config/home/profiles/cnst/modules.nix"; + usermodules = "nvim /home/cnst/.nix-config/home/users/cnst/modules.nix"; + umod = "nvim /home/cnst/.nix-config/home/users/cnst/modules.nix"; + systemmodules = "nvim /home/cnst/.nix-config/hosts/cnix/modules.nix"; + smod = "nvim /home/cnst/.nix-config/hosts/cnix/modules.nix"; nixclean = "sudo nix run .#cleanup-boot"; nixdev = "nix develop ~/.nix-config -c $SHELL"; nixconfig = "cd /home/cnst/.nix-config/"; diff --git a/home/profiles/toothpick/default.nix b/home/users/toothpick/default.nix similarity index 97% rename from home/profiles/toothpick/default.nix rename to home/users/toothpick/default.nix index e3f70862..573ed1fe 100644 --- a/home/profiles/toothpick/default.nix +++ b/home/users/toothpick/default.nix @@ -22,7 +22,6 @@ STEAM_EXTRA_COMPAT_TOOLS_PATHS = "/home/toothpick/.steam/root/compatibilitytools.d"; # proton and steam compat XDG_SESSION_TYPE = "wayland"; - NIXOS_OZONE_WL = "1"; MOZ_ENABLE_WAYLAND = "1"; MOZ_DISABLE_RDD_SANDBOX = "1"; WLR_DRM_NO_ATOMIC = "1"; diff --git a/home/profiles/toothpick/git.nix b/home/users/toothpick/git.nix similarity index 100% rename from home/profiles/toothpick/git.nix rename to home/users/toothpick/git.nix diff --git a/home/profiles/toothpick/modules.nix b/home/users/toothpick/modules.nix similarity index 100% rename from home/profiles/toothpick/modules.nix rename to home/users/toothpick/modules.nix diff --git a/home/profiles/toothpick/shell.nix b/home/users/toothpick/shell.nix similarity index 84% rename from home/profiles/toothpick/shell.nix rename to home/users/toothpick/shell.nix index 0c150013..a628bc6e 100644 --- a/home/profiles/toothpick/shell.nix +++ b/home/users/toothpick/shell.nix @@ -7,6 +7,10 @@ syntaxHighlighting.enable = true; shellAliases = { + usermodules = "nvim /home/toothpick/.nix-config/home/users/toothpick/modules.nix"; + umod = "nvim /home/toothpick/.nix-config/home/users/toothpick/modules.nix"; + systemmodules = "nvim /home/toothpick/.nix-config/hosts/toothpc/modules.nix"; + smod = "nvim /home/toothpick/.nix-config/hosts/toothpc/modules.nix"; nixclean = "sudo nix run .#cleanup-boot"; nixdev = "nix develop ~/.nix-config -c $SHELL"; nixconfig = "cd /home/toothpick/.nix-config/"; diff --git a/hosts/adampad/default.nix b/hosts/adampad/default.nix index 059930c0..3e205ad4 100644 --- a/hosts/adampad/default.nix +++ b/hosts/adampad/default.nix @@ -32,6 +32,7 @@ in { imports = [ ./hardware-configuration.nix + ./modules.nix ]; boot = { diff --git a/hosts/adampad/modules.nix b/hosts/adampad/modules.nix new file mode 100644 index 00000000..e719bcca --- /dev/null +++ b/hosts/adampad/modules.nix @@ -0,0 +1,66 @@ +{ + modules = { + network = { + enable = true; + hostName = "adampad"; + interfaces = { + "enp7s0" = { + allowedTCPPorts = [22 80 443]; + }; + }; + }; + gaming = { + steam.enable = false; + gamescope.enable = false; + lutris.enable = false; + gamemode = { + enable = false; + optimizeGpu = false; + }; + }; + gui = { + gnome.enable = false; + hyprland.enable = true; + }; + utils = { + android.enable = true; + anyrun.enable = true; + corectrl.enable = false; + microfetch.enable = true; + nix-ld.enable = false; + }; + sysd = { + blueman.enable = true; + dbus.enable = true; + fwupd.enable = true; + gnome-keyring.enable = true; + greetd.enable = true; + gvfs.enable = true; + locate.enable = true; + mullvad.enable = true; + pipewire.enable = true; + powerd.enable = true; + samba.enable = false; + sops.enable = false; + ssh.enable = true; + udisks.enable = true; + xserver.amd.enable = true; + }; + hardware = { + bluetooth.enable = true; + logitech.enable = false; + graphics = { + amd.enable = true; + nvidia.enable = false; + }; + }; + studio = { + blender = { + enable = false; + hip = false; + }; + gimp.enable = false; + inkscape.enable = false; + }; + }; +} diff --git a/hosts/cnix/default.nix b/hosts/cnix/default.nix index da7e6f65..1d333b09 100644 --- a/hosts/cnix/default.nix +++ b/hosts/cnix/default.nix @@ -38,6 +38,7 @@ in { imports = [ ./hardware-configuration.nix + ./modules.nix ]; boot = { diff --git a/hosts/cnix/modules.nix b/hosts/cnix/modules.nix new file mode 100644 index 00000000..b126e342 --- /dev/null +++ b/hosts/cnix/modules.nix @@ -0,0 +1,66 @@ +{ + modules = { + network = { + enable = true; + hostName = "cnix"; + interfaces = { + "enp7s0" = { + allowedTCPPorts = [22 80 443]; + }; + }; + }; + gaming = { + steam.enable = true; + gamescope.enable = true; + lutris.enable = true; + gamemode = { + enable = true; + optimizeGpu = true; + }; + }; + gui = { + gnome.enable = false; + hyprland.enable = true; + }; + utils = { + android.enable = true; + anyrun.enable = true; + corectrl.enable = true; + microfetch.enable = true; + nix-ld.enable = false; + }; + sysd = { + blueman.enable = true; + dbus.enable = true; + fwupd.enable = true; + gnome-keyring.enable = true; + greetd.enable = true; + gvfs.enable = true; + locate.enable = true; + mullvad.enable = true; + pipewire.enable = true; + powerd.enable = true; + samba.enable = false; + sops.enable = true; + ssh.enable = true; + udisks.enable = true; + xserver.amd.hhkbse.enable = true; + }; + hardware = { + bluetooth.enable = true; + logitech.enable = true; + graphics = { + amd.enable = true; + nvidia.enable = false; + }; + }; + studio = { + blender = { + enable = false; + hip = false; + }; + gimp.enable = true; + inkscape.enable = true; + }; + }; +} diff --git a/hosts/default.nix b/hosts/default.nix index 819a6767..67c19159 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -11,9 +11,9 @@ systemConfig = "${self}/system"; hostConfig = "${self}/hosts"; - cnstConfig = "${self}/home/profiles/cnst"; - toothpickConfig = "${self}/home/profiles/toothpick"; - adamConfig = "${self}/home/profiles/adam"; + cnstConfig = "${self}/home/users/cnst"; + toothpickConfig = "${self}/home/users/toothpick"; + adamConfig = "${self}/home/users/adam"; userModules = "${self}/home/modules"; systemModules = "${self}/system/modules"; @@ -23,7 +23,7 @@ mod = "${systemConfig}"; # get the basic config to build on top of - inherit (import "${systemConfig}") adampad cnix toothpc; + inherit (import "${systemConfig}") shared; # get these into the module system specialArgs = {inherit inputs self userConfig systemConfig hostConfig cnstConfig toothpickConfig adamConfig userModules systemModules;}; @@ -31,15 +31,10 @@ cnix = nixosSystem { inherit specialArgs; modules = - cnix + shared ++ [ ./cnix "${mod}/boot/lanzaboote" - "${mod}/etc/bluetooth" - "${mod}/etc/graphics/amd" - "${mod}/etc/logitech" - "${mod}/etc/network/cnix" - "${mod}/etc/xserver/amd/hhkbse" "${mod}/nix/nh/cnix" { home-manager = { @@ -54,14 +49,10 @@ toothpc = nixosSystem { inherit specialArgs; modules = - toothpc + shared ++ [ ./toothpc "${mod}/boot/lanzaboote" - "${mod}/etc/graphics/nvidia" - "${mod}/etc/logitech" - "${mod}/etc/network/toothpc" - "${mod}/etc/xserver/nvidia" "${mod}/nix/nh/toothpc" { home-manager = { @@ -77,14 +68,10 @@ adampad = nixosSystem { inherit specialArgs; modules = - adampad + shared ++ [ ./adampad "${mod}/boot" - "${mod}/etc/bluetooth" - "${mod}/etc/graphics/amd" - "${mod}/etc/network/adampad" - "${mod}/etc/xserver/amd" "${mod}/nix/nh/adampad" { home-manager = { diff --git a/hosts/toothpc/default.nix b/hosts/toothpc/default.nix index e66ef5ff..58e1660b 100644 --- a/hosts/toothpc/default.nix +++ b/hosts/toothpc/default.nix @@ -32,6 +32,7 @@ in { imports = [ ./hardware-configuration.nix + ./modules.nix ]; boot = { diff --git a/hosts/toothpc/modules.nix b/hosts/toothpc/modules.nix new file mode 100644 index 00000000..fd80ef4b --- /dev/null +++ b/hosts/toothpc/modules.nix @@ -0,0 +1,66 @@ +{ + modules = { + network = { + enable = true; + hostName = "toothpc"; + interfaces = { + "enp4s0" = { + allowedTCPPorts = [22 80 443]; + }; + }; + }; + gaming = { + steam.enable = true; + gamescope.enable = true; + lutris.enable = true; + gamemode = { + enable = true; + optimizeGpu = false; + }; + }; + gui = { + gnome.enable = false; + hyprland.enable = true; + }; + utils = { + android.enable = false; + anyrun.enable = true; + corectrl.enable = true; + microfetch.enable = true; + nix-ld.enable = false; + }; + sysd = { + blueman.enable = false; + dbus.enable = true; + fwupd.enable = true; + gnome-keyring.enable = true; + greetd.enable = true; + gvfs.enable = true; + locate.enable = true; + mullvad.enable = true; + pipewire.enable = true; + powerd.enable = true; + samba.enable = false; + sops.enable = false; + ssh.enable = true; + udisks.enable = true; + xserver.nvidia.enable = true; + }; + hardware = { + bluetooth.enable = false; + logitech.enable = true; + graphics = { + amd.enable = false; + nvidia.enable = true; + }; + }; + studio = { + blender = { + enable = false; + hip = false; + }; + gimp.enable = true; + inkscape.enable = true; + }; + }; +} diff --git a/system/bin/anyrun/default.nix b/system/bin/anyrun/default.nix deleted file mode 100644 index 5e576449..00000000 --- a/system/bin/anyrun/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{pkgs, ...}: { - environment.systemPackages = [ - pkgs.anyrun - ]; -} diff --git a/system/bin/default.nix b/system/bin/default.nix deleted file mode 100644 index 33d7f262..00000000 --- a/system/bin/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./anyrun - ./hyprland - ]; -} diff --git a/system/bin/gnome/default.nix b/system/bin/gnome/default.nix deleted file mode 100644 index 03cf8282..00000000 --- a/system/bin/gnome/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ - services = { - xserver = { - desktopManager.gnome = { - enable = true; - }; - }; - gnome.games.enable = true; - }; -} diff --git a/system/bin/hyprland/default.nix b/system/bin/hyprland/default.nix deleted file mode 100644 index 3bf15ee6..00000000 --- a/system/bin/hyprland/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - inputs, - pkgs, - ... -}: { - programs.hyprland = { - enable = true; - package = inputs.hyprland.packages.${pkgs.system}.default; - portalPackage = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland; - }; - environment.variables.NIXOS_OZONE_WL = "1"; -} diff --git a/system/default.nix b/system/default.nix index 2e38e28b..495ddabc 100644 --- a/system/default.nix +++ b/system/default.nix @@ -1,35 +1,9 @@ -# yes, this is also yanked from, you guessed it, fufexan. let shared = [ - ./bin ./etc ./nix - ./srv - ./usr/share - ./opt/microfetch + ./modules ]; - - adampad = - shared - ++ [ - ./opt/android - ./srv/blueman - ]; - cnix = - shared - ++ [ - ./opt/gaming.nix - ./opt/android - ./opt/gimp - ./opt/inkscape - ./opt/sops - ./srv/blueman - ]; - toothpc = - shared - ++ [ - ./opt/gaming.nix - ]; in { - inherit shared adampad cnix toothpc; + inherit shared; } diff --git a/system/etc/bluetooth/default.nix b/system/etc/bluetooth/default.nix deleted file mode 100644 index 3099b9bc..00000000 --- a/system/etc/bluetooth/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - hardware = { - bluetooth = { - enable = true; - powerOnBoot = false; - }; - }; -} diff --git a/system/etc/default.nix b/system/etc/default.nix index 01932d88..7088c4a9 100644 --- a/system/etc/default.nix +++ b/system/etc/default.nix @@ -2,7 +2,8 @@ imports = [ # shared imports ./dconf - ./fuse + ./locale + ./fonts ./security ./xdg ./zram diff --git a/system/usr/share/fonts/default.nix b/system/etc/fonts/default.nix similarity index 100% rename from system/usr/share/fonts/default.nix rename to system/etc/fonts/default.nix diff --git a/system/etc/fuse/default.nix b/system/etc/fuse/default.nix deleted file mode 100644 index 3a691052..00000000 --- a/system/etc/fuse/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - programs.fuse = { - userAllowOther = true; - }; -} diff --git a/system/etc/graphics/amd/default.nix b/system/etc/graphics/amd/default.nix deleted file mode 100644 index 4b2d66ec..00000000 --- a/system/etc/graphics/amd/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{pkgs, ...}: { - hardware = { - graphics = { - enable = true; - enable32Bit = true; - extraPackages = with pkgs; [ - libva - vaapiVdpau - libvdpau-va-gl - amdvlk - - # mesa - mesa - - # vulkan - # vulkan-tools - # vulkan-loader - # vulkan-validation-layers - # vulkan-extension-layer - ]; - extraPackages32 = with pkgs.pkgsi686Linux; [ - vaapiVdpau - libvdpau-va-gl - ]; - }; - }; -} diff --git a/system/etc/graphics/nvidia/default.nix b/system/etc/graphics/nvidia/default.nix deleted file mode 100644 index 090e72b3..00000000 --- a/system/etc/graphics/nvidia/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ - pkgs, - config, - ... -}: { - hardware = { - graphics = { - enable = true; - enable32Bit = true; - extraPackages = with pkgs; [ - libva - vaapiVdpau - libvdpau-va-gl - intel-media-driver - nvidia-vaapi-driver - ]; - }; - nvidia = { - package = config.boot.kernelPackages.nvidiaPackages.beta; - # package = config.boot.kernelPackages.nvidiaPackages.stable; - modesetting.enable = true; - powerManagement = { - enable = false; - finegrained = false; - }; - open = false; - nvidiaSettings = true; - }; - }; -} diff --git a/system/usr/share/locale/default.nix b/system/etc/locale/default.nix similarity index 100% rename from system/usr/share/locale/default.nix rename to system/etc/locale/default.nix diff --git a/system/etc/logitech/default.nix b/system/etc/logitech/default.nix deleted file mode 100644 index 4f90ee5b..00000000 --- a/system/etc/logitech/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - hardware = { - logitech.wireless = { - enable = true; - enableGraphical = true; - }; - }; -} diff --git a/system/etc/network/adampad/default.nix b/system/etc/network/adampad/default.nix deleted file mode 100644 index c51faf9d..00000000 --- a/system/etc/network/adampad/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - networking = { - networkmanager.enable = true; - hostName = "adampad"; - nftables.enable = true; - firewall = { - enable = true; - interfaces = { - "enp7s0" = { - allowedTCPPorts = [22 80 443]; - }; - }; - }; - }; -} diff --git a/system/etc/network/cnix/default.nix b/system/etc/network/cnix/default.nix deleted file mode 100644 index 1a1c880b..00000000 --- a/system/etc/network/cnix/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - networking = { - networkmanager.enable = true; - hostName = "cnix"; - nftables.enable = true; - firewall = { - enable = true; - interfaces = { - "enp7s0" = { - allowedTCPPorts = [22 80 443]; - }; - }; - }; - }; -} diff --git a/system/etc/network/toothpc/default.nix b/system/etc/network/toothpc/default.nix deleted file mode 100644 index 95429e7d..00000000 --- a/system/etc/network/toothpc/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - networking = { - networkmanager.enable = true; - hostName = "toothpc"; - nftables.enable = true; - firewall = { - enable = true; - interfaces = { - "enp4s0" = { - allowedTCPPorts = [22 80 443]; - }; - }; - }; - }; -} diff --git a/system/modules/default.nix b/system/modules/default.nix new file mode 100644 index 00000000..cc9a38ce --- /dev/null +++ b/system/modules/default.nix @@ -0,0 +1,40 @@ +{systemModules, ...}: { + imports = [ + "${systemModules}/network" + "${systemModules}/gaming/gamemode" + "${systemModules}/gaming/gamescope" + "${systemModules}/gaming/steam" + "${systemModules}/gaming/lutris" + "${systemModules}/gui/gnome" + "${systemModules}/gui/hyprland" + "${systemModules}/utils/android" + "${systemModules}/utils/anyrun" + "${systemModules}/utils/corectrl" + "${systemModules}/utils/microfetch" + "${systemModules}/utils/nix-ld" + "${systemModules}/sysd/blueman" + "${systemModules}/sysd/dbus" + "${systemModules}/sysd/fwupd" + "${systemModules}/sysd/gnome-keyring" + "${systemModules}/sysd/greetd" + "${systemModules}/sysd/gvfs" + "${systemModules}/sysd/locate" + "${systemModules}/sysd/mullvad" + "${systemModules}/sysd/pipewire" + "${systemModules}/sysd/powerd" + "${systemModules}/sysd/samba" + "${systemModules}/sysd/sops" + "${systemModules}/sysd/ssh" + "${systemModules}/sysd/udisks" + "${systemModules}/sysd/xserver/amd" + "${systemModules}/sysd/xserver/amd/hhkbse" + "${systemModules}/sysd/xserver/nvidia" + "${systemModules}/hardware/graphics/amd" + "${systemModules}/hardware/graphics/nvidia" + "${systemModules}/hardware/bluetooth" + "${systemModules}/hardware/logitech" + "${systemModules}/studio/gimp" + "${systemModules}/studio/inkscape" + "${systemModules}/studio/blender" + ]; +} diff --git a/system/modules/gaming/gamemode/default.nix b/system/modules/gaming/gamemode/default.nix new file mode 100644 index 00000000..a7828e16 --- /dev/null +++ b/system/modules/gaming/gamemode/default.nix @@ -0,0 +1,48 @@ +{ + config, + lib, + pkgs, + inputs, + ... +}: let + inherit (lib) mkIf mkEnableOption mkOption; + cfg = config.modules.gaming.gamemode; + pipewireLowLatencyModule = inputs.nix-gaming.nixosModules.pipewireLowLatency; +in { + imports = [ + pipewireLowLatencyModule + ]; + options = { + modules.gaming.gamemode = { + enable = mkEnableOption "Enables gamemode"; + optimizeGpu = mkOption { + type = lib.types.bool; + default = false; + description = "Whether to apply GPU optimizations."; + }; + }; + }; + config = mkIf cfg.enable { + programs.gamemode = { + enable = true; + settings = { + general = { + inhibit_screensaver = 1; + softrealtime = "auto"; + renice = 15; + }; + gpu = mkIf cfg.optimizeGpu { + apply_gpu_optimisations = "accept-responsibility"; + gpu_device = 0; + amd_performance_level = "high"; + }; + custom = { + start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'"; + end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'"; + }; + }; + }; + # see https://github.com/fufexan/nix-gaming/#pipewire-low-latency + services.pipewire.lowLatency.enable = true; + }; +} diff --git a/system/modules/gaming/gamescope/default.nix b/system/modules/gaming/gamescope/default.nix new file mode 100644 index 00000000..efbbcda4 --- /dev/null +++ b/system/modules/gaming/gamescope/default.nix @@ -0,0 +1,22 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.gaming.gamescope; +in { + options = { + modules.gaming.gamescope.enable = mkEnableOption "Enables gamescope"; + }; + config = mkIf cfg.enable { + programs.gamescope = { + enable = true; + capSysNice = true; + args = [ + "--rt" + "--expose-wayland" + ]; + }; + }; +} diff --git a/system/modules/gaming/lutris/default.nix b/system/modules/gaming/lutris/default.nix new file mode 100644 index 00000000..c182731c --- /dev/null +++ b/system/modules/gaming/lutris/default.nix @@ -0,0 +1,18 @@ +{ + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.gaming.lutris; +in { + options = { + modules.gaming.lutris.enable = mkEnableOption "Enables lutris"; + }; + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + lutris + ]; + }; +} diff --git a/system/modules/gaming/steam/default.nix b/system/modules/gaming/steam/default.nix new file mode 100644 index 00000000..c23d5258 --- /dev/null +++ b/system/modules/gaming/steam/default.nix @@ -0,0 +1,20 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.gaming.steam; +in { + options = { + modules.gaming.steam.enable = mkEnableOption "Enables steam"; + }; + config = mkIf cfg.enable { + programs = { + steam = { + enable = true; + gamescopeSession.enable = true; + }; + }; + }; +} diff --git a/system/modules/gui/gnome/default.nix b/system/modules/gui/gnome/default.nix new file mode 100644 index 00000000..71a97bb8 --- /dev/null +++ b/system/modules/gui/gnome/default.nix @@ -0,0 +1,22 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.gui.gnome; +in { + options = { + modules.gui.gnome.enable = mkEnableOption "Enables gnome"; + }; + config = mkIf cfg.enable { + services = { + xserver = { + desktopManager.gnome = { + enable = true; + }; + }; + gnome.games.enable = true; + }; + }; +} diff --git a/system/modules/gui/hyprland/default.nix b/system/modules/gui/hyprland/default.nix new file mode 100644 index 00000000..0131a06e --- /dev/null +++ b/system/modules/gui/hyprland/default.nix @@ -0,0 +1,22 @@ +{ + pkgs, + inputs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.gui.hyprland; +in { + options = { + modules.gui.hyprland.enable = mkEnableOption "Enables hyprland"; + }; + config = mkIf cfg.enable { + programs.hyprland = { + enable = true; + package = inputs.hyprland.packages.${pkgs.system}.default; + portalPackage = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland; + }; + environment.variables.NIXOS_OZONE_WL = "1"; + }; +} diff --git a/system/modules/hardware/bluetooth/default.nix b/system/modules/hardware/bluetooth/default.nix new file mode 100644 index 00000000..52513709 --- /dev/null +++ b/system/modules/hardware/bluetooth/default.nix @@ -0,0 +1,20 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.hardware.bluetooth; +in { + options = { + modules.hardware.bluetooth.enable = mkEnableOption "Enables bluetooth"; + }; + config = mkIf cfg.enable { + hardware = { + bluetooth = { + enable = true; + powerOnBoot = false; + }; + }; + }; +} diff --git a/system/modules/hardware/graphics/amd/default.nix b/system/modules/hardware/graphics/amd/default.nix new file mode 100644 index 00000000..db381328 --- /dev/null +++ b/system/modules/hardware/graphics/amd/default.nix @@ -0,0 +1,40 @@ +{ + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.hardware.graphics.amd; +in { + options = { + modules.hardware.graphics.amd.enable = mkEnableOption "Enables AMD graphics"; + }; + config = mkIf cfg.enable { + hardware = { + graphics = { + enable = true; + enable32Bit = true; + extraPackages = with pkgs; [ + libva + vaapiVdpau + libvdpau-va-gl + amdvlk + + # mesa + mesa + + # vulkan + # vulkan-tools + # vulkan-loader + # vulkan-validation-layers + # vulkan-extension-layer + ]; + extraPackages32 = with pkgs.pkgsi686Linux; [ + vaapiVdpau + libvdpau-va-gl + ]; + }; + }; + }; +} diff --git a/system/modules/hardware/graphics/nvidia/default.nix b/system/modules/hardware/graphics/nvidia/default.nix new file mode 100644 index 00000000..c428e063 --- /dev/null +++ b/system/modules/hardware/graphics/nvidia/default.nix @@ -0,0 +1,39 @@ +{ + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.hardware.graphics.nvidia; +in { + options = { + modules.hardware.graphics.nvidia.enable = mkEnableOption "Enables NVidia graphics"; + }; + config = mkIf cfg.enable { + hardware = { + graphics = { + enable = true; + enable32Bit = true; + extraPackages = with pkgs; [ + libva + vaapiVdpau + libvdpau-va-gl + intel-media-driver + nvidia-vaapi-driver + ]; + }; + nvidia = { + package = config.boot.kernelPackages.nvidiaPackages.beta; + # package = config.boot.kernelPackages.nvidiaPackages.stable; + modesetting.enable = true; + powerManagement = { + enable = false; + finegrained = false; + }; + open = false; + nvidiaSettings = true; + }; + }; + }; +} diff --git a/system/modules/hardware/logitech/default.nix b/system/modules/hardware/logitech/default.nix new file mode 100644 index 00000000..7de82eaf --- /dev/null +++ b/system/modules/hardware/logitech/default.nix @@ -0,0 +1,20 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.hardware.logitech; +in { + options = { + modules.hardware.logitech.enable = mkEnableOption "Enables logitech"; + }; + config = mkIf cfg.enable { + hardware = { + logitech.wireless = { + enable = true; + enableGraphical = true; + }; + }; + }; +} diff --git a/system/modules/network/default.nix b/system/modules/network/default.nix new file mode 100644 index 00000000..d1d3b896 --- /dev/null +++ b/system/modules/network/default.nix @@ -0,0 +1,48 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption mkOption types; + cfg = config.modules.network; +in { + options = { + modules = { + network = { + enable = mkEnableOption "Enable the custom networking module"; + + hostName = mkOption { + type = types.str; + default = "default-hostname"; + description = "Hostname for the system."; + }; + + interfaces = mkOption { + type = types.attrsOf (types.submodule { + options = { + allowedTCPPorts = mkOption { + type = types.listOf types.int; + default = []; + description = "List of allowed TCP ports for this interface."; + }; + }; + }); + default = {}; + description = "Network interface configurations."; + }; + }; + }; + }; + + config = mkIf cfg.enable { + networking = { + networkmanager.enable = true; + inherit (cfg) hostName; + nftables.enable = true; + firewall = { + enable = true; + inherit (cfg) interfaces; + }; + }; + }; +} diff --git a/system/modules/studio/blender/default.nix b/system/modules/studio/blender/default.nix new file mode 100644 index 00000000..bbf5ddf7 --- /dev/null +++ b/system/modules/studio/blender/default.nix @@ -0,0 +1,29 @@ +{ + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption mkOption; + cfg = config.modules.studio.blender; +in { + options = { + modules.studio.blender = { + enable = mkEnableOption "Enables Blender"; + hip = mkOption { + type = lib.types.bool; + default = false; + description = "Use the HIP-enabled version of Blender (for AMD GPUs)."; + }; + }; + }; + config = mkIf cfg.enable { + environment.systemPackages = [ + ( + if cfg.hip + then pkgs.blender-hip + else pkgs.blender + ) + ]; + }; +} diff --git a/system/modules/studio/gimp/default.nix b/system/modules/studio/gimp/default.nix new file mode 100644 index 00000000..d92c5265 --- /dev/null +++ b/system/modules/studio/gimp/default.nix @@ -0,0 +1,18 @@ +{ + config, + pkgs, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.studio.gimp; +in { + options = { + modules.studio.gimp.enable = mkEnableOption "Enables gimp"; + }; + config = mkIf cfg.enable { + environment.systemPackages = [ + pkgs.gimp-with-plugins + ]; + }; +} diff --git a/system/modules/studio/inkscape/default.nix b/system/modules/studio/inkscape/default.nix new file mode 100644 index 00000000..c028cab9 --- /dev/null +++ b/system/modules/studio/inkscape/default.nix @@ -0,0 +1,18 @@ +{ + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.studio.inkscape; +in { + options = { + modules.studio.inkscape.enable = mkEnableOption "Enables inkscape"; + }; + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + inkscape-with-extensions + ]; + }; +} diff --git a/system/modules/sysd/blueman/default.nix b/system/modules/sysd/blueman/default.nix new file mode 100644 index 00000000..6b737abe --- /dev/null +++ b/system/modules/sysd/blueman/default.nix @@ -0,0 +1,15 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.sysd.blueman; +in { + options = { + modules.sysd.blueman.enable = mkEnableOption "Enables blueman"; + }; + config = mkIf cfg.enable { + services.blueman.enable = true; + }; +} diff --git a/system/modules/sysd/dbus/default.nix b/system/modules/sysd/dbus/default.nix new file mode 100644 index 00000000..64fd0821 --- /dev/null +++ b/system/modules/sysd/dbus/default.nix @@ -0,0 +1,21 @@ +{ + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.sysd.dbus; +in { + options = { + modules.sysd.dbus.enable = mkEnableOption "Enables dbus"; + }; + config = mkIf cfg.enable { + services.dbus = { + enable = true; + packages = with pkgs; [ + gcr + ]; + }; + }; +} diff --git a/system/modules/sysd/fwupd/default.nix b/system/modules/sysd/fwupd/default.nix new file mode 100644 index 00000000..2e892434 --- /dev/null +++ b/system/modules/sysd/fwupd/default.nix @@ -0,0 +1,15 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.sysd.fwupd; +in { + options = { + modules.sysd.fwupd.enable = mkEnableOption "Enables fwupd"; + }; + config = mkIf cfg.enable { + services.fwupd.enable = true; + }; +} diff --git a/system/modules/sysd/gnome-keyring/default.nix b/system/modules/sysd/gnome-keyring/default.nix new file mode 100644 index 00000000..cc2ca621 --- /dev/null +++ b/system/modules/sysd/gnome-keyring/default.nix @@ -0,0 +1,15 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.sysd.gnome-keyring; +in { + options = { + modules.sysd.gnome-keyring.enable = mkEnableOption "Enables gnome-keyring"; + }; + config = mkIf cfg.enable { + services.gnome.gnome-keyring.enable = true; + }; +} diff --git a/system/modules/sysd/greetd/default.nix b/system/modules/sysd/greetd/default.nix new file mode 100644 index 00000000..ca361d38 --- /dev/null +++ b/system/modules/sysd/greetd/default.nix @@ -0,0 +1,30 @@ +{ + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.sysd.greetd; +in { + options = { + modules.sysd.greetd.enable = mkEnableOption "Enables greetd"; + }; + config = mkIf cfg.enable { + services.greetd = { + enable = true; + settings = { + # AUTOLOGIN + # initial_session = { + # command = "${pkgs.hyprland}/bin/Hyprland"; + # user = "cnst"; # <- select which user to auto-login + # }; + default_session = { + command = "${pkgs.greetd.tuigreet}/bin/tuigreet -r --remember-session --asterisks"; + user = "greeter"; + }; + }; + }; + security.pam.services.greetd.enableGnomeKeyring = true; + }; +} diff --git a/system/modules/sysd/gvfs/default.nix b/system/modules/sysd/gvfs/default.nix new file mode 100644 index 00000000..aef6f331 --- /dev/null +++ b/system/modules/sysd/gvfs/default.nix @@ -0,0 +1,15 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.sysd.gvfs; +in { + options = { + modules.sysd.gvfs.enable = mkEnableOption "Enables gvfs"; + }; + config = mkIf cfg.enable { + services.gvfs.enable = true; + }; +} diff --git a/system/modules/sysd/locate/default.nix b/system/modules/sysd/locate/default.nix new file mode 100644 index 00000000..805ff138 --- /dev/null +++ b/system/modules/sysd/locate/default.nix @@ -0,0 +1,20 @@ +{ + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.sysd.locate; +in { + options = { + modules.sysd.locate.enable = mkEnableOption "Enables plocate"; + }; + config = mkIf cfg.enable { + services.locate = { + enable = true; + package = pkgs.plocate; + localuser = null; + }; + }; +} diff --git a/system/modules/sysd/mullvad/default.nix b/system/modules/sysd/mullvad/default.nix new file mode 100644 index 00000000..2eeaf216 --- /dev/null +++ b/system/modules/sysd/mullvad/default.nix @@ -0,0 +1,19 @@ +{ + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.sysd.mullvad; +in { + options = { + modules.sysd.mullvad.enable = mkEnableOption "Enables mullvad"; + }; + config = mkIf cfg.enable { + services.mullvad-vpn = { + enable = true; + package = pkgs.mullvad-vpn; + }; + }; +} diff --git a/system/modules/sysd/pipewire/default.nix b/system/modules/sysd/pipewire/default.nix new file mode 100644 index 00000000..996b6e70 --- /dev/null +++ b/system/modules/sysd/pipewire/default.nix @@ -0,0 +1,24 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.sysd.pipewire; +in { + options = { + modules.sysd.pipewire.enable = mkEnableOption "Enables pipewire"; + }; + config = mkIf cfg.enable { + hardware.pulseaudio.enable = false; + services.pipewire = { + enable = true; + alsa = { + enable = true; + support32Bit = true; + }; + pulse.enable = true; + jack.enable = true; + }; + }; +} diff --git a/system/modules/sysd/powerd/default.nix b/system/modules/sysd/powerd/default.nix new file mode 100644 index 00000000..fad5e531 --- /dev/null +++ b/system/modules/sysd/powerd/default.nix @@ -0,0 +1,18 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.sysd.powerd; +in { + options = { + modules.sysd.powerd.enable = mkEnableOption "Enables power-profiles-daemon"; + }; + config = mkIf cfg.enable { + services = { + power-profiles-daemon.enable = true; + upower.enable = true; + }; + }; +} diff --git a/system/modules/sysd/samba/default.nix b/system/modules/sysd/samba/default.nix new file mode 100644 index 00000000..48d408fd --- /dev/null +++ b/system/modules/sysd/samba/default.nix @@ -0,0 +1,32 @@ +{ + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.sysd.samba; +in { + options = { + modules.sysd.samba.enable = mkEnableOption "Enables samba"; + }; + config = mkIf cfg.enable { + services = { + samba = { + enable = true; + package = pkgs.samba4Full; + openFirewall = true; + }; + avahi = { + publish.enable = true; + publish.userServices = true; + enable = true; + openFirewall = true; + }; + samba-wsdd = { + enable = true; + openFirewall = true; + }; + }; + }; +} diff --git a/system/opt/sops/default.nix b/system/modules/sysd/sops/default.nix similarity index 70% rename from system/opt/sops/default.nix rename to system/modules/sysd/sops/default.nix index 26aa083f..f032d897 100644 --- a/system/opt/sops/default.nix +++ b/system/modules/sysd/sops/default.nix @@ -47,20 +47,27 @@ }; }) ]; + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.sysd.sops; in { - sops = lib.mkMerge [ - { - age = {sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"];}; - gnupg = { - home = "~/.gnupg"; - sshKeyPaths = []; - }; - } - defaultConfig - hostSpecificConfig - ]; - environment.systemPackages = [ - pkgs.sops - pkgs.age - ]; + options = { + modules.sysd.sops.enable = mkEnableOption "Enables sops"; + }; + config = mkIf cfg.enable { + sops = lib.mkMerge [ + { + age = {sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"];}; + gnupg = { + home = "~/.gnupg"; + sshKeyPaths = []; + }; + } + defaultConfig + hostSpecificConfig + ]; + environment.systemPackages = [ + pkgs.sops + pkgs.age + ]; + }; } diff --git a/system/modules/sysd/ssh/default.nix b/system/modules/sysd/ssh/default.nix new file mode 100644 index 00000000..279729d8 --- /dev/null +++ b/system/modules/sysd/ssh/default.nix @@ -0,0 +1,20 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.sysd.ssh; +in { + options = { + modules.sysd.ssh.enable = mkEnableOption "Enables ssh"; + }; + config = mkIf cfg.enable { + services.openssh = { + enable = true; + }; + programs.ssh = { + startAgent = true; + }; + }; +} diff --git a/system/modules/sysd/udisks/default.nix b/system/modules/sysd/udisks/default.nix new file mode 100644 index 00000000..b0bd4eef --- /dev/null +++ b/system/modules/sysd/udisks/default.nix @@ -0,0 +1,15 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.sysd.udisks; +in { + options = { + modules.sysd.udisks.enable = mkEnableOption "Enables udisks"; + }; + config = mkIf cfg.enable { + services.udisks2.enable = true; + }; +} diff --git a/system/modules/sysd/xserver/amd/default.nix b/system/modules/sysd/xserver/amd/default.nix new file mode 100644 index 00000000..5104d7c1 --- /dev/null +++ b/system/modules/sysd/xserver/amd/default.nix @@ -0,0 +1,29 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.sysd.xserver.amd; +in { + options = { + modules.sysd.xserver.amd.enable = mkEnableOption "Enables xserver with amdgpu"; + }; + config = mkIf cfg.enable { + services.xserver = { + enable = true; + videoDrivers = ["amdgpu"]; + # xkb = { + # extraLayouts.hhkbse = { + # description = "HHKBse by cnst"; + # languages = ["se"]; + # symbolsFile = /home/cnst/.nix-config/nixos/hosts/cnix/xkb/symbols/hhkbse; + # }; + # layout = "hhkbse"; + # # dir = "/home/cnst/.nix-config/nixos/xkb"; + # variant = ""; + # options = "lv3:rwin_switch"; + # }; + }; + }; +} diff --git a/system/modules/sysd/xserver/amd/hhkbse/default.nix b/system/modules/sysd/xserver/amd/hhkbse/default.nix new file mode 100644 index 00000000..42b79b0f --- /dev/null +++ b/system/modules/sysd/xserver/amd/hhkbse/default.nix @@ -0,0 +1,30 @@ +{ + config, + lib, + hostConfig, + ... +}: let + path = "${hostConfig}/cnix/xkb/symbols"; + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.sysd.xserver.amd.hhkbse; +in { + options = { + modules.sysd.xserver.amd.hhkbse.enable = mkEnableOption "Enables xserver for amdgpu with HHKBSE"; + }; + config = mkIf cfg.enable { + services.xserver = { + enable = true; + videoDrivers = ["amdgpu"]; + xkb = { + extraLayouts.hhkbse = { + description = "HHKBse by cnst"; + languages = ["se"]; + symbolsFile = "${path}/hhkbse"; + }; + layout = "hhkbse"; + variant = ""; + options = "lv3:rwin_switch"; + }; + }; + }; +} diff --git a/system/modules/sysd/xserver/nvidia/default.nix b/system/modules/sysd/xserver/nvidia/default.nix new file mode 100644 index 00000000..86acaa03 --- /dev/null +++ b/system/modules/sysd/xserver/nvidia/default.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.sysd.xserver.nvidia; +in { + options = { + modules.sysd.xserver.nvidia.enable = mkEnableOption "Enables xserver with nvidia"; + }; + config = mkIf cfg.enable { + services.xserver = { + enable = true; + videoDrivers = ["nvidia"]; + xkb.layout = "se"; + }; + }; +} diff --git a/system/modules/utils/android/default.nix b/system/modules/utils/android/default.nix new file mode 100644 index 00000000..65ed79d7 --- /dev/null +++ b/system/modules/utils/android/default.nix @@ -0,0 +1,15 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.utils.android; +in { + options = { + modules.utils.android.enable = mkEnableOption "Enables android tools"; + }; + config = mkIf cfg.enable { + programs.adb.enable = true; + }; +} diff --git a/system/modules/utils/anyrun/default.nix b/system/modules/utils/anyrun/default.nix new file mode 100644 index 00000000..35aebde9 --- /dev/null +++ b/system/modules/utils/anyrun/default.nix @@ -0,0 +1,18 @@ +{ + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.utils.anyrun; +in { + options = { + modules.utils.anyrun.enable = mkEnableOption "Enables anyrun"; + }; + config = mkIf cfg.enable { + environment.systemPackages = [ + pkgs.anyrun + ]; + }; +} diff --git a/system/modules/utils/corectrl/default.nix b/system/modules/utils/corectrl/default.nix new file mode 100644 index 00000000..ce5f632e --- /dev/null +++ b/system/modules/utils/corectrl/default.nix @@ -0,0 +1,21 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.utils.corectrl; +in { + options = { + modules.utils.corectrl.enable = mkEnableOption "Enables CoreCtrl"; + }; + config = mkIf cfg.enable { + programs.corectrl = { + enable = true; + gpuOverclock = { + enable = true; + ppfeaturemask = "0xffffffff"; + }; + }; + }; +} diff --git a/system/modules/utils/microfetch/default.nix b/system/modules/utils/microfetch/default.nix new file mode 100644 index 00000000..da855708 --- /dev/null +++ b/system/modules/utils/microfetch/default.nix @@ -0,0 +1,16 @@ +{ + config, + lib, + inputs, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.utils.microfetch; +in { + options = { + modules.utils.microfetch.enable = mkEnableOption "Enables microfetch"; + }; + config = mkIf cfg.enable { + environment.systemPackages = [inputs.microfetch.packages.x86_64-linux.default]; + }; +} diff --git a/system/opt/nix-ld/default.nix b/system/modules/utils/nix-ld/default.nix similarity index 81% rename from system/opt/nix-ld/default.nix rename to system/modules/utils/nix-ld/default.nix index c6b59324..5e172be1 100644 --- a/system/opt/nix-ld/default.nix +++ b/system/modules/utils/nix-ld/default.nix @@ -1,8 +1,19 @@ -{pkgs, ...}: { - programs.nix-ld = { - enable = true; - # Sets up all the libraries to load + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.utils.nix-ld; +in { + options = { + modules.utils.nix-ld.enable = mkEnableOption "Enables nix-ld"; + }; + config = mkIf cfg.enable { + programs.nix-ld = { + enable = true; + # Sets up all the libraries to load libraries = with pkgs; [ stdenv.cc.cc openssl @@ -86,6 +97,7 @@ libdrm mesa libxkbcommon -]; -}; + ]; + }; + }; } diff --git a/system/nix/default.nix b/system/nix/default.nix index bfe71606..2821ff96 100644 --- a/system/nix/default.nix +++ b/system/nix/default.nix @@ -12,10 +12,12 @@ ]; environment = { - systemPackages = [ - pkgs.git - pkgs.scx - pkgs.stow + systemPackages = with pkgs; [ + git + scx + stow + winetricks + protonup ]; localBinInPath = true; }; diff --git a/system/opt/agenix/default.nix b/system/opt/agenix/default.nix deleted file mode 100644 index 5227fa7e..00000000 --- a/system/opt/agenix/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ - inputs, - pkgs, - ... -}: { - environment.systemPackages = [ - inputs.agenix.packages.x86_64-linux.default - pkgs.age - ]; -} diff --git a/system/opt/android/default.nix b/system/opt/android/default.nix deleted file mode 100644 index ef89b964..00000000 --- a/system/opt/android/default.nix +++ /dev/null @@ -1 +0,0 @@ -{ programs.adb.enable = true; } diff --git a/system/opt/bottles/default.nix b/system/opt/bottles/default.nix deleted file mode 100644 index c0ec8f1e..00000000 --- a/system/opt/bottles/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{pkgs, ...}: { - environment.systemPackages = [pkgs.bottles-unwrapped]; -} diff --git a/system/opt/corectrl/default.nix b/system/opt/corectrl/default.nix deleted file mode 100644 index 2d3e601c..00000000 --- a/system/opt/corectrl/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ - programs.corectrl = { - enable = true; - gpuOverclock = { - enable = true; - ppfeaturemask = "0xffffffff"; - }; - }; -} diff --git a/system/opt/gamemode/default.nix b/system/opt/gamemode/default.nix deleted file mode 100644 index b72f6696..00000000 --- a/system/opt/gamemode/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - pkgs, - inputs, - ... -}: { - programs.gamemode = { - enable = true; - settings = { - general = { - softrealtime = "auto"; - renice = 15; - }; - # gpu = { - # apply_gpu_optimisations = "accept-responsibility"; - # gpu_device = 1; - # amd_performance_level = "high"; - # }; - custom = { - start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'"; - end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'"; - }; - }; - }; - # see https://github.com/fufexan/nix-gaming/#pipewire-low-latency - services.pipewire.lowLatency.enable = true; - imports = [ - inputs.nix-gaming.nixosModules.pipewireLowLatency - ]; -} diff --git a/system/opt/gamescope/default.nix b/system/opt/gamescope/default.nix deleted file mode 100644 index 626c4f3d..00000000 --- a/system/opt/gamescope/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ - programs.gamescope = { - enable = true; - capSysNice = true; - args = [ - "--rt" - "--expose-wayland" - ]; - }; -} diff --git a/system/opt/gaming.nix b/system/opt/gaming.nix deleted file mode 100644 index 3534b6e3..00000000 --- a/system/opt/gaming.nix +++ /dev/null @@ -1,17 +0,0 @@ -{pkgs, ...}: { - imports = [ - ./steam - ./lutris - # ./bottles - ./gamemode - ./gamescope - ./corectrl - ]; - environment = { - systemPackages = with pkgs; [ - # Misc - protonup - winetricks - ]; - }; -} diff --git a/system/opt/gimp/default.nix b/system/opt/gimp/default.nix deleted file mode 100644 index 0bb26949..00000000 --- a/system/opt/gimp/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{pkgs, ...}: { - environment.systemPackages = with pkgs; [ - gimp-with-plugins - ]; -} diff --git a/system/opt/inkscape/default.nix b/system/opt/inkscape/default.nix deleted file mode 100644 index 31155530..00000000 --- a/system/opt/inkscape/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{pkgs, ...}: { - environment.systemPackages = with pkgs; [ - inkscape-with-extensions - ]; -} diff --git a/system/opt/lutris/default.nix b/system/opt/lutris/default.nix deleted file mode 100644 index b156c28c..00000000 --- a/system/opt/lutris/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{pkgs, ...}: { - environment.systemPackages = with pkgs; [ - lutris - ]; -} diff --git a/system/opt/microfetch/default.nix b/system/opt/microfetch/default.nix deleted file mode 100644 index 1ac91464..00000000 --- a/system/opt/microfetch/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{inputs, ...}: { - environment.systemPackages = [inputs.microfetch.packages.x86_64-linux.default]; -} diff --git a/system/opt/steam/default.nix b/system/opt/steam/default.nix deleted file mode 100644 index 6fab3c72..00000000 --- a/system/opt/steam/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - programs = { - steam = { - enable = true; - gamescopeSession.enable = true; - }; - }; -} diff --git a/system/srv/audio/default.nix b/system/srv/audio/default.nix deleted file mode 100644 index 479f8ff9..00000000 --- a/system/srv/audio/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ - hardware.pulseaudio.enable = false; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - jack.enable = true; - }; -} diff --git a/system/srv/blueman/default.nix b/system/srv/blueman/default.nix deleted file mode 100644 index 89f77a33..00000000 --- a/system/srv/blueman/default.nix +++ /dev/null @@ -1 +0,0 @@ -{services.blueman.enable = true;} diff --git a/system/srv/dbus/default.nix b/system/srv/dbus/default.nix deleted file mode 100644 index 41ed5f2b..00000000 --- a/system/srv/dbus/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{pkgs, ...}: { - services.dbus = { - enable = true; - packages = with pkgs; [ - gcr - ]; - }; -} diff --git a/system/srv/default.nix b/system/srv/default.nix deleted file mode 100644 index bd7c4031..00000000 --- a/system/srv/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - imports = [ - ./audio - ./dbus - ./fwupd - ./gnome-keyring - ./greetd - ./gvfs - ./locate - ./mullvad - ./openssh - ./power - # ./samba - ./udisks - ]; -} diff --git a/system/srv/fwupd/default.nix b/system/srv/fwupd/default.nix deleted file mode 100644 index a62f7091..00000000 --- a/system/srv/fwupd/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - services.fwupd.enable = true; -} diff --git a/system/srv/gnome-keyring/default.nix b/system/srv/gnome-keyring/default.nix deleted file mode 100644 index 582f02f4..00000000 --- a/system/srv/gnome-keyring/default.nix +++ /dev/null @@ -1 +0,0 @@ -{services.gnome.gnome-keyring.enable = true;} diff --git a/system/srv/greetd/default.nix b/system/srv/greetd/default.nix deleted file mode 100644 index 7d2bfba8..00000000 --- a/system/srv/greetd/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -{pkgs, ...}: { - services.greetd = { - enable = true; - settings = { - # AUTOLOGIN - # initial_session = { - # command = "${pkgs.hyprland}/bin/Hyprland"; - # user = "cnst"; # <- select which user to auto-login - # }; - default_session = { - command = "${pkgs.greetd.tuigreet}/bin/tuigreet -r --remember-session --asterisks"; - user = "greeter"; - }; - }; - }; - security.pam.services.greetd.enableGnomeKeyring = true; -} diff --git a/system/srv/gvfs/default.nix b/system/srv/gvfs/default.nix deleted file mode 100644 index e57a99ff..00000000 --- a/system/srv/gvfs/default.nix +++ /dev/null @@ -1 +0,0 @@ -{services.gvfs.enable = true;} diff --git a/system/srv/locate/default.nix b/system/srv/locate/default.nix deleted file mode 100644 index 494136ef..00000000 --- a/system/srv/locate/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{pkgs, ...}: { - services.locate = { - enable = true; - package = pkgs.plocate; - localuser = null; - }; -} diff --git a/system/srv/mullvad/default.nix b/system/srv/mullvad/default.nix deleted file mode 100644 index 31d3c05d..00000000 --- a/system/srv/mullvad/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{pkgs, ...}: { - services.mullvad-vpn = { - enable = true; - package = pkgs.mullvad-vpn; - }; -} diff --git a/system/srv/openssh/default.nix b/system/srv/openssh/default.nix deleted file mode 100644 index 7d808082..00000000 --- a/system/srv/openssh/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - services.openssh = { - enable = true; - }; - programs.ssh = { - startAgent = true; - }; -} diff --git a/system/srv/power/default.nix b/system/srv/power/default.nix deleted file mode 100644 index 8e76d348..00000000 --- a/system/srv/power/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - services = { - power-profiles-daemon.enable = true; - upower.enable = true; - }; -} diff --git a/system/srv/samba/default.nix b/system/srv/samba/default.nix deleted file mode 100644 index a3f200fe..00000000 --- a/system/srv/samba/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{pkgs, ...}: { - services = { - samba = { - enable = true; - package = pkgs.samba4Full; - openFirewall = true; - }; - avahi = { - publish.enable = true; - publish.userServices = true; - enable = true; - openFirewall = true; - }; - samba-wsdd = { - enable = true; - openFirewall = true; - }; - }; -} diff --git a/system/srv/udisks/default.nix b/system/srv/udisks/default.nix deleted file mode 100644 index cad0b22a..00000000 --- a/system/srv/udisks/default.nix +++ /dev/null @@ -1 +0,0 @@ -{services.udisks2.enable = true;} diff --git a/system/usr/share/default.nix b/system/usr/share/default.nix deleted file mode 100644 index 941c2a82..00000000 --- a/system/usr/share/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - imports = [ - # shared imports - ./fonts - ./locale - ]; -}