diff --git a/hosts/default.nix b/hosts/default.nix index 7a34711..a9a28c7 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -1,12 +1,11 @@ inputs: let inherit (inputs) self; - inherit (builtins) filter map toString; inherit (inputs.nixpkgs) lib; - inherit (lib.attrsets) recursiveUpdate; - inherit (lib.filesystem) listFilesRecursive; inherit (lib.lists) concatLists flatten singleton; + inherit (lib) nixosSystem recursiveUpdate; + inherit (builtins) filter map toString; + inherit (lib.filesystem) listFilesRecursive; inherit (lib.strings) hasSuffix; - inherit (lib) nixosSystem; # NOTE: This was inspired by raf, and I find this # to be quite a sane way of managing all modules in my flake. diff --git a/modules/options/system/monitors.nix b/modules/options/system/monitors.nix index 314d3f6..4294f2e 100644 --- a/modules/options/system/monitors.nix +++ b/modules/options/system/monitors.nix @@ -1,5 +1,5 @@ {lib, ...}: let - inherit (lib.options) mkOption; + inherit (lib) mkOption; inherit (lib.types) submodule int ints number attrsOf ; in { options.modules.system.hardware.monitors = mkOption { diff --git a/modules/options/system/networking/default.nix b/modules/options/system/networking/default.nix index 68fa733..8a8c298 100644 --- a/modules/options/system/networking/default.nix +++ b/modules/options/system/networking/default.nix @@ -1,5 +1,5 @@ {lib, ...}: let - inherit (lib.options) mkEnableOption; + inherit (lib) mkEnableOption mkOption types; in { options.modules.system.networking = { nftbles.enable = mkEnableOption "Nftables firewall"; diff --git a/modules/options/system/programs/default.nix b/modules/options/system/programs/default.nix index 403de42..9f7e0d3 100644 --- a/modules/options/system/programs/default.nix +++ b/modules/options/system/programs/default.nix @@ -1,6 +1,5 @@ {lib, ...}: let - inherit (lib.types) str enum; - inherit (lib.options) mkEnableOption mkOption; + inherit (lib) mkEnableOption mkOption types; in { options.modules.system.programs = { editors = { @@ -20,30 +19,30 @@ in { git = { signingKey = mkOption { - type = str; + type = types.str; default = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILPiRe9OH/VtWFWyy5QbAVcN7CLxr4zUtRCwmxD6aeN6"; description = "The default gpg key used for signing commits"; }; }; default = { terminal = mkOption { - type = enum ["foot" "kitty"]; + type = types.enum ["foot" "kitty"]; default = "foot"; }; fileManager = mkOption { - type = enum ["thunar" "dolphin" "nemo"]; + type = types.enum ["thunar" "dolphin" "nemo"]; default = "thunar"; }; browser = mkOption { - type = enum ["firefox" "librewolf" "chromium"]; + type = types.enum ["firefox" "librewolf" "chromium"]; default = "firefox"; }; editor = mkOption { - type = enum ["neovim" "helix" "emacs"]; + type = types.enum ["neovim" "helix" "emacs"]; default = "emacs"; }; launcher = mkOption { - type = enum ["anyrun" "rofi" "wofi"]; + type = types.enum ["anyrun" "rofi" "wofi"]; default = "anyrun"; }; }; diff --git a/modules/other/system.nix b/modules/other/system.nix index d533cf5..aa876e9 100644 --- a/modules/other/system.nix +++ b/modules/other/system.nix @@ -1,11 +1,10 @@ {lib, ...}: let - inherit (lib.options) mkOption; - inherit (lib.types) str; + inherit (lib) mkOption types; in { options.modules.other.system = { username = mkOption { description = "username for this system"; - type = str; + type = types.str; }; }; } diff --git a/modules/programs/cli/nh.nix b/modules/programs/cli/nh.nix index 18033fa..1190441 100644 --- a/modules/programs/cli/nh.nix +++ b/modules/programs/cli/nh.nix @@ -5,8 +5,7 @@ }: let cfg = config.modules.programs.nh; inherit (config.modules.other.system) username; - inherit (lib.modules) mkIf; - inherit (lib.options) mkEnableOption; + inherit (lib) mkEnableOption mkIf; in { options.modules.programs.nh.enable = mkEnableOption "nh"; diff --git a/modules/programs/gui/foot.nix b/modules/programs/gui/foot.nix index 3ad1f3f..32c5a71 100644 --- a/modules/programs/gui/foot.nix +++ b/modules/programs/gui/foot.nix @@ -4,11 +4,11 @@ pkgs, ... }: let - inherit (lib.modules) mkIf; - - inherit (config.meta.mainUser) username; cfg = config.modules.system.programs.terminals.foot; colours = config.modules.style.colorScheme.colors; + inherit (config.meta.mainUser) username; + + inherit (lib) mkIf; foot-config = pkgs.writeText "foot.ini" (lib.generators.toINI {} { main = { diff --git a/modules/programs/gui/minecraft.nix b/modules/programs/gui/minecraft.nix index 753faeb..aa82068 100644 --- a/modules/programs/gui/minecraft.nix +++ b/modules/programs/gui/minecraft.nix @@ -4,10 +4,9 @@ pkgs, ... }: let + cfg = config.modules.programs.minecraft; inherit (lib.options) mkEnableOption; inherit (lib.modules) mkIf; - - cfg = config.modules.programs.minecraft; in { options.modules.programs.minecraft = { enable = mkEnableOption "minecraft"; diff --git a/modules/programs/tui/btop.nix b/modules/programs/tui/btop.nix index df1d29b..324a280 100644 --- a/modules/programs/tui/btop.nix +++ b/modules/programs/tui/btop.nix @@ -4,9 +4,7 @@ pkgs, ... }: let - inherit (lib.options) mkEnableOption; - inherit (lib.modules) mkIf; - + inherit (lib) mkEnableOption mkIf; cfg = config.modules.programs.btop; btop-settings = pkgs.writeTextDir "btop/btop.conf" '' diff --git a/modules/services/kanata/module.nix b/modules/services/kanata/module.nix index b7164d5..430b360 100644 --- a/modules/services/kanata/module.nix +++ b/modules/services/kanata/module.nix @@ -3,10 +3,9 @@ lib, ... }: let + cfg = config.modules.services.kanata; inherit (lib.modules) mkIf; inherit (lib.options) mkEnableOption; - - cfg = config.modules.services.kanata; in { options.modules.services.kanata.enable = mkEnableOption "kanata"; config = mkIf cfg.enable { diff --git a/modules/services/nextcloud/module.nix b/modules/services/nextcloud/module.nix index 5a3a570..53456e5 100644 --- a/modules/services/nextcloud/module.nix +++ b/modules/services/nextcloud/module.nix @@ -6,7 +6,6 @@ }: let inherit (lib.meta) getExe'; inherit (lib.modules) mkIf; - cfg = config.modules.system.services.nextcloud; in { options.modules.system.services.nextcloud.enable = lib.mkEnableOption "nextcloud"; diff --git a/modules/services/postgresql/module.nix b/modules/services/postgresql/module.nix index 84e95b5..f47a158 100644 --- a/modules/services/postgresql/module.nix +++ b/modules/services/postgresql/module.nix @@ -6,7 +6,6 @@ }: let inherit (lib.modules) mkIf; inherit (lib.options) mkEnableOption; - cfg = config.modules.system.services.database.postgresql; in { options.modules.system.services.database.postgresql.enable = mkEnableOption "postgresql"; diff --git a/modules/services/ssh.nix b/modules/services/ssh.nix index bca460c..0731e20 100644 --- a/modules/services/ssh.nix +++ b/modules/services/ssh.nix @@ -1,5 +1,5 @@ {lib, ...}: let - inherit (lib.options) mkEnableOption; + inherit (lib) mkEnableOption; in { options.modules.programs.ssh.enable = mkEnableOption "ssh"; config = { diff --git a/modules/style/colors.nix b/modules/style/colors.nix index 07934ae..ba2a272 100644 --- a/modules/style/colors.nix +++ b/modules/style/colors.nix @@ -11,8 +11,9 @@ ... }: let inherit (lib.options) mkOption literalExpression; - inherit (lib.strings) toLower replaceStrings removePrefix hasPrefix isString; inherit (lib.types) str nullOr enum mkOptionType attrsOf coercedTo; + inherit (lib.strings) toLower replaceStrings removePrefix hasPrefix isString; + # inherit (lib) serializeTheme; cfg = config.modules.style; diff --git a/modules/style/gtk.nix b/modules/style/gtk.nix index 2e180bc..7440c41 100644 --- a/modules/style/gtk.nix +++ b/modules/style/gtk.nix @@ -4,10 +4,9 @@ pkgs, ... }: let - inherit (lib.modules) mkIf; inherit (lib.options) mkOption mkEnableOption; inherit (lib.types) str package; - + inherit (lib.modules) mkIf; cfg = config.modules.theming.gtk; in { options.modules.theming.gtk = { diff --git a/modules/style/qt.nix b/modules/style/qt.nix index 77413e4..69260f0 100644 --- a/modules/style/qt.nix +++ b/modules/style/qt.nix @@ -5,9 +5,8 @@ ... }: let inherit (lib.modules) mkIf; - inherit (lib.options) mkEnableOption mkOption; + inherit (lib) mkEnableOption mkOption; inherit (lib.types) str package; - cfg = config.modules.theming.qt; in { options.modules.theming.qt = { diff --git a/modules/style/theming.nix b/modules/style/theming.nix index d276442..5e3655e 100644 --- a/modules/style/theming.nix +++ b/modules/style/theming.nix @@ -4,16 +4,13 @@ pkgs, ... }: let - inherit (builtins) toString isBool; - inherit (lib.generators) toINI; inherit (lib.modules) mkMerge mkIf; inherit (lib.options) mkEnableOption; - inherit (lib.strings) escape; - inherit (lib.trivial) boolToString; - cfg = config.modules.theming; + inherit (builtins) toString isBool; + inherit (lib) boolToString escape generators; - toGtk3Ini = toINI { + toGtk3Ini = generators.toINI { mkKeyValue = key: value: let value' = if isBool value diff --git a/modules/system/boot/module.nix b/modules/system/boot/module.nix index 882b70d..9c9214b 100644 --- a/modules/system/boot/module.nix +++ b/modules/system/boot/module.nix @@ -5,8 +5,8 @@ ... }: let inherit (lib.modules) mkForce; + inherit (lib.modules) mkIf; inherit (lib.options) mkEnableOption; - cfg = config.modules.system.boot; in { options.modules.system.boot = { @@ -31,8 +31,6 @@ in { }; loader = { efi.canTouchEfiVariables = true; - # I love spamming space - timeout = 0; systemd-boot = { enable = cfg.systemd-boot.enable; editor = mkForce false; diff --git a/modules/system/hardware/bluetooth.nix b/modules/system/hardware/bluetooth.nix index b882011..6ef8d98 100644 --- a/modules/system/hardware/bluetooth.nix +++ b/modules/system/hardware/bluetooth.nix @@ -4,9 +4,8 @@ pkgs, ... }: let - inherit (lib.modules) mkIf; - cfg = config.modules.system.hardware.bluetooth; + inherit (lib) mkIf; in { config = mkIf cfg.enable { hardware.bluetooth = { diff --git a/modules/system/hardware/cpu/intel.nix b/modules/system/hardware/cpu/intel.nix index ee059aa..c9a5f23 100644 --- a/modules/system/hardware/cpu/intel.nix +++ b/modules/system/hardware/cpu/intel.nix @@ -4,7 +4,8 @@ pkgs, ... }: let - inherit (lib.modules) mkDefault; + inherit (lib) mkDefault mkIf; + inherit (config.modules.system.video) nvidia amd; in { hardware = { cpu.intel.updateMicrocode = mkDefault config.hardware.enableRedistributableFirmware; diff --git a/modules/system/hardware/sound/pipewire/module.nix b/modules/system/hardware/sound/pipewire/module.nix index a18d3de..43a098e 100644 --- a/modules/system/hardware/sound/pipewire/module.nix +++ b/modules/system/hardware/sound/pipewire/module.nix @@ -3,9 +3,8 @@ lib, ... }: let - inherit (lib.modules) mkIf; - cfg = config.modules.system.sound; + inherit (lib) mkIf; in { config = mkIf cfg.enable { services.pipewire = { diff --git a/modules/system/nix/module.nix b/modules/system/nix/module.nix index 1472607..696f22c 100644 --- a/modules/system/nix/module.nix +++ b/modules/system/nix/module.nix @@ -6,8 +6,7 @@ pkgs, ... }: let - inherit (lib.attrsets) mapAttrsToList; - inherit (lib.modules) mkForce; + inherit (lib) mapAttrsToList mkForce; in { imports = [ ./documentation.nix # nixos documentation diff --git a/modules/system/os/impermanence/module.nix b/modules/system/os/impermanence/module.nix index 8484f52..e5e67f4 100644 --- a/modules/system/os/impermanence/module.nix +++ b/modules/system/os/impermanence/module.nix @@ -4,7 +4,7 @@ lib, ... }: let - inherit (lib.modules) mkIf mkForce; + inherit (lib) mkIf mkForce; inherit (builtins) map; cfg = config.modules.system.impermanence; diff --git a/modules/system/os/networking/networkmanager.nix b/modules/system/os/networking/networkmanager.nix index d0c2228..1f9a6a5 100644 --- a/modules/system/os/networking/networkmanager.nix +++ b/modules/system/os/networking/networkmanager.nix @@ -1,5 +1,5 @@ {lib, ...}: let - inherit (lib.modules) mkForce; + inherit (lib) mkForce; in { networking.networkmanager = { enable = true; diff --git a/modules/system/os/security/sudo.nix b/modules/system/os/security/sudo.nix index 30b3b2b..0af4efc 100644 --- a/modules/system/os/security/sudo.nix +++ b/modules/system/os/security/sudo.nix @@ -3,7 +3,7 @@ pkgs, ... }: let - inherit (lib.modules) mkForce mkDefault; + inherit (lib) mkForce mkDefault; in { security = { sudo-rs.enable = mkForce false; diff --git a/modules/wms/wayland/hyprland/binds.nix b/modules/wms/wayland/hyprland/binds.nix index 3e923a1..e225f57 100644 --- a/modules/wms/wayland/hyprland/binds.nix +++ b/modules/wms/wayland/hyprland/binds.nix @@ -1,8 +1,10 @@ { + config, lib, pkgs, ... }: let + cfg = config.modules.desktops.hyprland; inherit (builtins) map genList toString; inherit (lib.meta) getExe getExe'; in { @@ -47,10 +49,10 @@ in { "$mainMod, V, togglespecialworkspace, audio" # Reload hyprland - "$mainMod, R, exec, ${getExe' pkgs.hyprland "hyprctl"} reload" + "$mainMod, R, exec, ${cfg.package}/bin/hyprctl reload" # Restart waybar - "$mainMod CONTROL, B, exec, ${pkgs.procps}/bin/pkill waybar || ${getExe pkgs.waybar}" + "$mainMod CONTROL, B, exec, ${pkgs.procps}/bin/pkill waybar || ${pkgs.waybar}/bin/waybar" ]; binde = [ diff --git a/modules/wms/wayland/hyprland/module.nix b/modules/wms/wayland/hyprland/module.nix index 2ecec85..e745493 100644 --- a/modules/wms/wayland/hyprland/module.nix +++ b/modules/wms/wayland/hyprland/module.nix @@ -5,11 +5,11 @@ pkgs, ... }: let - inherit (lib.modules) mkIf; - inherit (lib.options) mkOption; - inherit (lib.types) bool; - cfg = config.modules.desktops.hyprland; + # inherit (inputs.hyprsplit.packages.${pkgs.system}) hyprsplit; + inherit (lib.modules) mkIf mkDefault; + inherit (lib.options) mkOption; + inherit (lib.types) bool enum package; in { imports = [ ./binds.nix @@ -19,6 +19,8 @@ in { ./workspaces.nix inputs.hyprland.nixosModules.default ]; + # we disable the default hyprland module + # disabledModules = ["programs/hyprland.nix"]; options.modules.desktops.hyprland = { enable = mkOption { @@ -28,6 +30,19 @@ in { Whether to enable Hyprland wayland compositor. ''; }; + + package = mkOption { + type = package; + default = pkgs.hyprland; + description = '' + The Hyprland package to be used. + ''; + }; + portalPackage = mkOption { + type = package; + default = pkgs.xdg-desktop-portal-hyprland; + description = "The hyprland portal package"; + }; }; config = mkIf cfg.enable { @@ -44,14 +59,15 @@ in { # xdg Portal xdg.portal = { enable = true; - xdgOpenUsePortal = true; + configPackages = mkDefault [ + pkgs.xdg-desktop-portal-hyprland + ]; extraPortals = [ pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-hyprland ]; config = { - common.default = ["*"]; - hyprland.default = ["gtk" "hyprland"]; + common.default = ["gtk" "hyprland"]; }; }; }; diff --git a/modules/wms/wayland/hyprland/settings.nix b/modules/wms/wayland/hyprland/settings.nix index 03314fd..f0484ac 100644 --- a/modules/wms/wayland/hyprland/settings.nix +++ b/modules/wms/wayland/hyprland/settings.nix @@ -3,11 +3,10 @@ lib, ... }: let - inherit (builtins) toString; - inherit (lib.attrsets) mapAttrsToList; - - inherit (config.modules.style.colorScheme) colors; inherit (config.modules.system.hardware) monitors; + inherit (lib) mapAttrsToList; + inherit (builtins) toString; + inherit (config.modules.style.colorScheme) colors; in { config = { programs.hyprland = { diff --git a/modules/wms/wayland/hyprland/workspaces.nix b/modules/wms/wayland/hyprland/workspaces.nix index f526436..83d6ad2 100644 --- a/modules/wms/wayland/hyprland/workspaces.nix +++ b/modules/wms/wayland/hyprland/workspaces.nix @@ -3,11 +3,9 @@ lib, ... }: let - inherit (builtins) map genList attrNames toString; - inherit (lib.lists) imap0 flatten; - inherit (lib.strings) optionalString; - inherit (config.modules.system.hardware) monitors; + inherit (lib) imap0 flatten optionalString; + inherit (builtins) map genList attrNames toString; in { programs.hyprland.settings = { # INFO: This is a custom function to map all of my monitors to workspaces. diff --git a/modules/wms/wayland/variables.nix b/modules/wms/wayland/variables.nix index 3b2aec7..895ffbb 100644 --- a/modules/wms/wayland/variables.nix +++ b/modules/wms/wayland/variables.nix @@ -3,10 +3,8 @@ lib, ... }: let - inherit (lib.modules) mkIf; - inherit (lib.options) mkEnableOption; - cfg = config.modules.wms.wayland; + inherit (lib) mkIf mkEnableOption; in { options.modules.wms.wayland.enable = mkEnableOption "wayland"; config = mkIf cfg.enable { diff --git a/packages/helix.nix b/packages/helix.nix index f98a7f9..50fed6f 100644 --- a/packages/helix.nix +++ b/packages/helix.nix @@ -32,8 +32,7 @@ basedpyright, ... }: let - inherit (lib.meta) getExe; - + inherit (lib) getExe; toml = formats.toml {}; helix-config = { theme = "gruvbox";