diff --git a/home/modules/0_template/default.nix b/home/modules/0_template/default.nix index 45b4c7ea..25ef641b 100644 --- a/home/modules/0_template/default.nix +++ b/home/modules/0_template/default.nix @@ -5,12 +5,10 @@ mylib, pkgs, ... -}: -with lib; -with mylib.modules; let - cfg = config.modules.TEMPLATE; +}: let + inherit (config.modules) TEMPLATE; in { options.modules.TEMPLATE = import ./options.nix {inherit lib mylib;}; - config = mkIf cfg.enable {}; + config = lib.mkIf TEMPLATE.enable {}; } diff --git a/home/modules/ags/default.nix b/home/modules/ags/default.nix index 34961d42..c229cb91 100644 --- a/home/modules/ags/default.nix +++ b/home/modules/ags/default.nix @@ -4,14 +4,12 @@ mylib, pkgs, ... -}: -with lib; -with mylib.modules; let - cfg = config.modules.ags; +}: let + inherit (config.modules) ags; in { options.modules.ags = import ./options.nix {inherit lib mylib;}; - config = mkIf cfg.enable { + config = lib.mkIf ags.enable { programs.ags = { enable = true; systemd.enable = true; diff --git a/home/modules/chromium/default.nix b/home/modules/chromium/default.nix index be8de40f..0dff78e3 100644 --- a/home/modules/chromium/default.nix +++ b/home/modules/chromium/default.nix @@ -1,19 +1,15 @@ -# TODO: Expose some settings { config, - nixosConfig, lib, mylib, pkgs, ... -}: -with lib; -with mylib.modules; let - cfg = config.modules.chromium; +}: let + inherit (config.modules) chromium; in { options.modules.chromium = import ./options.nix {inherit lib mylib;}; - config = mkIf cfg.enable { + config = lib.mkIf chromium.enable { home.packages = with pkgs; builtins.concatLists [ (optionals cfg.google [ diff --git a/home/modules/firefox/default.nix b/home/modules/firefox/default.nix index 57113ee6..771943ef 100644 --- a/home/modules/firefox/default.nix +++ b/home/modules/firefox/default.nix @@ -6,14 +6,12 @@ pkgs, hostname, ... -}: -with lib; -with mylib.modules; let - cfg = config.modules.firefox; +}: let + inherit (config.modules) firefox; in { options.modules.firefox = import ./options.nix {inherit lib mylib;}; - config = mkIf cfg.enable { + config = lib.mkIf firefox.enable { home.packages = with pkgs; builtins.concatLists [ # TODO: I don't think vaapi works yet @@ -27,18 +25,18 @@ in { # (optionals cfg.gnomeTheme [firefox-gnome-theme]) ]; - home.sessionVariables = mkMerge [ + home.sessionVariables = lib.mkMerge [ { MOZ_USE_XINPUT2 = 1; } - (optionalAttrs cfg.wayland { + (lib.optionalAttrs firefox.wayland { MOZ_ENABLE_WAYLAND = 1; EGL_PLATFORM = "wayland"; # XDG_CURRENT_DESKTOP = "Hyprland"; # TODO: Or "sway"? # Already set by hyprland }) - (optionalAttrs cfg.vaapi { + (lib.optionalAttrs firefox.vaapi { # LIBVA_DRIVER_NAME = "radeonsi"; # "nvidia" for Nvidia card # LIBVA_DRIVER_NAME = "nvidia"; # Specified in hardware-configuration MOZ_DISABLE_RDD_SANDBOX = 1; @@ -72,7 +70,7 @@ in { # not strictly necessary extraPolicies = { # TODO: Make library function to allow easy bookmark creation and add my default bookmarks/folders - Bookmarks = optionalAttrs cfg.defaultBookmarks {}; + Bookmarks = lib.optionalAttrs firefox.defaultBookmarks {}; CaptivePortal = false; DisableFirefoxAccounts = true; DisableFirefoxStudies = true; @@ -98,13 +96,13 @@ in { default = { id = 0; # 0 is default profile - userChrome = concatStringsSep "\n" [ + userChrome = lib.concatStringsSep "\n" [ # TODO: Borked after standalone HM # (optionalString cfg.gnomeTheme '' # @import "${pkgs.firefox-gnome-theme}/share/firefox-gnome-theme/gnome-theme.css"; # '') - (optionalString cfg.disableTabBar '' + (lib.optionalString firefox.disableTabBar '' #TabsToolbar { display: none; } '') ]; @@ -153,8 +151,8 @@ in { youtube-shorts-block ]; - settings = mkMerge [ - (optionalAttrs cfg.vaapi { + settings = lib.mkMerge [ + (lib.optionalAttrs firefox.vaapi { # Firefox wayland hardware video acceleration # https://github.com/elFarto/nvidia-vaapi-driver/#firefox= # TODO: Disable and check if it works by default @@ -255,7 +253,6 @@ in { "identity.fxaccounts.account.device.name" = hostname; - "media.hardwaremediakeys.enabled" = false; # Do not interfere with spotify "media.videocontrols.picture-in-picture.video-toggle.enabled" = true; @@ -278,7 +275,7 @@ in { "toolkit.coverage.opt-out" = true; "toolkit.coverage.endpoint.base" = ""; - "toolkit.legacyUserProfileCustomizations.stylesheets" = cfg.gnomeTheme || cfg.disableTabBar; + "toolkit.legacyUserProfileCustomizations.stylesheets" = firefox.gnomeTheme || firefox.disableTabBar; "toolkit.telemetry.unified" = false; "toolkit.telemetry.enabled" = false; "toolkit.telemetry.server" = "data:,"; diff --git a/home/modules/fish/default.nix b/home/modules/fish/default.nix index fef7c0ae..cb266b85 100644 --- a/home/modules/fish/default.nix +++ b/home/modules/fish/default.nix @@ -4,14 +4,12 @@ mylib, pkgs, ... -}: -with lib; -with mylib.modules; let - cfg = config.modules.fish; +}: let + inherit (config.modules) fish; in { options.modules.fish = import ./options.nix {inherit lib mylib;}; - config = mkIf cfg.enable { + config = lib.mkIf fish.enable { home.file.".config/fish/themes/catppuccin-latte.theme".text = '' # name: 'Catppuccin Latte' # url: 'https://github.com/catppuccin/fish' @@ -109,19 +107,19 @@ in { shellAbbrs = let # Only add " | bat" if bat is installed - batify = command: command + (optionalString config.programs.bat.enable " | bat"); + batify = command: command + (lib.optionalString config.programs.bat.enable " | bat"); # Same as above but with args for bat - batifyWithArgs = command: args: command + (optionalString config.programs.bat.enable (" | bat " + args)); + batifyWithArgs = command: args: command + (lib.optionalString config.programs.bat.enable (" | bat " + args)); # These can be used for my config.modules and for HM config.programs, # as both of these add the package to home.packages - hasHomePackage = package: (contains config.home.packages package); + hasHomePackage = package: (mylib.contains config.home.packages package); # Only add fish abbr if package is installed - abbrify = package: abbr: (optionalAttrs (hasHomePackage package) abbr); + abbrify = package: abbr: (lib.optionalAttrs (hasHomePackage package) abbr); in - mkMerge [ + lib.mkMerge [ # Abbrs that are always available are defined here. { # Shell basics diff --git a/home/modules/hyprland/default.nix b/home/modules/hyprland/default.nix index 8dc88987..5eb377d0 100644 --- a/home/modules/hyprland/default.nix +++ b/home/modules/hyprland/default.nix @@ -10,8 +10,7 @@ nixosConfig, ... }: let - cfg = config.modules.hyprland; - color = config.modules.color; + inherit (config.modules) hyprland color; # This function is mapped to the "cfg.monitors" attrSet. # For each key-value entry in "cfg.monitors", @@ -29,22 +28,22 @@ + (lib.optionalString (builtins.hasAttr "class" attrs) ", class:^(${attrs.class})$") + (lib.optionalString (builtins.hasAttr "title" attrs) ", title:^(${attrs.title})$"); - mkTranslucentRule = class: "opacity ${cfg.transparent-opacity} ${cfg.transparent-opacity}, class:^(${class})$"; + mkTranslucentRule = class: "opacity ${hyprland.transparent-opacity} ${hyprland.transparent-opacity}, class:^(${class})$"; mkBind = key: action: "${key}, ${action}"; mkBinds = key: actions: builtins.map (mkBind key) actions; # These functions are used to generate the keybindings.info file for Rofi fixupNoMod = key: ''${builtins.replaceStrings ["<-"] ["<"] key}''; - mkBindHelpKey = key: ''${builtins.replaceStrings ["$mainMod" " " ","] ["${cfg.keybindings.main-mod}" "-" ""] key}''; + mkBindHelpKey = key: ''${builtins.replaceStrings ["$mainMod" " " ","] ["${hyprland.keybindings.main-mod}" "-" ""] key}''; mkBindHelpAction = action: ''${builtins.replaceStrings [","] [""] action}''; mkBindHelp = key: action: "<${mkBindHelpKey key}>: ${mkBindHelpAction action}"; mkBindsHelp = key: actions: builtins.map fixupNoMod (builtins.map (mkBindHelp key) actions); - mkWallpaper = monitor: "${monitor}, ${config.home.homeDirectory}/NixFlake/wallpapers/${cfg.theme}.png"; + mkWallpaper = monitor: "${monitor}, ${config.home.homeDirectory}/NixFlake/wallpapers/${hyprland.theme}.png"; mkDelayedStart = str: "hyprctl dispatch exec \"sleep 5s && ${str}\""; - delayed-exec = builtins.map mkDelayedStart cfg.autostart.delayed; + delayed-exec = builtins.map mkDelayedStart hyprland.autostart.delayed; mkExec = prog: "${prog}"; always-bind = { @@ -126,7 +125,7 @@ in { options.modules.hyprland = import ./options.nix {inherit lib mylib;}; - config = lib.mkIf cfg.enable { + config = lib.mkIf hyprland.enable { # Some assertion is not possible if HM is used standalone, # because nixosConfig won't be available. assertions = [ @@ -174,7 +173,7 @@ in { ]; file = { - ".config/hypr/keybindings.info".text = lib.pipe (cfg.keybindings.bindings + ".config/hypr/keybindings.info".text = lib.pipe (hyprland.keybindings.bindings // always-bind) [ (builtins.mapAttrs mkBindsHelp) builtins.attrValues @@ -213,7 +212,7 @@ in { background = [ { - path = "~/NixFlake/wallpapers/${cfg.theme}.png"; + path = "~/NixFlake/wallpapers/${hyprland.theme}.png"; blur_passes = 3; blur_size = 10; monitor = ""; @@ -279,8 +278,8 @@ in { splash = false; splash_offset = 2.0; - preload = "~/NixFlake/wallpapers/${cfg.theme}.png"; - wallpaper = lib.pipe cfg.monitors [ + preload = "~/NixFlake/wallpapers/${hyprland.theme}.png"; + wallpaper = lib.pipe hyprland.monitors [ builtins.attrNames (builtins.map mkWallpaper) ]; @@ -353,7 +352,7 @@ in { xwayland.enable = true; settings = { - "$mainMod" = "${cfg.keybindings.main-mod}"; + "$mainMod" = "${hyprland.keybindings.main-mod}"; general = { gaps_in = 5; @@ -380,8 +379,8 @@ in { }; input = { - kb_layout = "${cfg.kb-layout}"; - kb_variant = "${cfg.kb-variant}"; + kb_layout = "${hyprland.kb-layout}"; + kb_variant = "${hyprland.kb-variant}"; kb_model = "pc104"; kb_options = ""; kb_rules = ""; @@ -395,18 +394,18 @@ in { sensitivity = 0; # -1.0 - 1.0, 0 means no modification. }; - monitor = lib.pipe cfg.monitors [ + monitor = lib.pipe hyprland.monitors [ (builtins.mapAttrs mkMonitor) builtins.attrValues ]; - workspace = lib.pipe cfg.workspaces [ + workspace = lib.pipe hyprland.workspaces [ (builtins.mapAttrs mkWorkspaces) builtins.attrValues builtins.concatLists ]; - bind = lib.pipe (cfg.keybindings.bindings + bind = lib.pipe (hyprland.keybindings.bindings // always-bind) [ (builtins.mapAttrs mkBinds) builtins.attrValues @@ -419,20 +418,20 @@ in { builtins.concatLists ]; - exec-once = lib.pipe (always-exec ++ cfg.autostart.immediate ++ delayed-exec) [ + exec-once = lib.pipe (always-exec ++ hyprland.autostart.immediate ++ delayed-exec) [ (builtins.map mkExec) ]; windowrulev2 = - lib.pipe cfg.workspacerules [ + lib.pipe hyprland.workspacerules [ (builtins.mapAttrs mkWorkspaceRules) builtins.attrValues builtins.concatLists ] - ++ lib.pipe cfg.floating [ + ++ lib.pipe hyprland.floating [ (builtins.map mkFloatingRule) ] - ++ lib.pipe cfg.transparent [ + ++ lib.pipe hyprland.transparent [ (builtins.map mkTranslucentRule) ]; diff --git a/home/modules/kitty/default.nix b/home/modules/kitty/default.nix index a7ab0ce9..441c9049 100644 --- a/home/modules/kitty/default.nix +++ b/home/modules/kitty/default.nix @@ -4,16 +4,12 @@ lib, mylib, ... -}: -with lib; -with mylib.modules; let - cfg = config.modules.kitty; - color = config.modules.color; - # cfgnv = config.modules.neovim; +}: let + inherit (config.modules) kitty color; in { options.modules.kitty = import ./options.nix {inherit lib mylib;}; - config = mkIf cfg.enable { + config = lib.mkIf kitty.enable { programs.kitty = { enable = true; shellIntegration.enableFishIntegration = true; diff --git a/home/modules/latex/default.nix b/home/modules/latex/default.nix index 805d2839..7ed4110e 100644 --- a/home/modules/latex/default.nix +++ b/home/modules/latex/default.nix @@ -4,14 +4,12 @@ mylib, pkgs, ... -}: -with lib; -with mylib.modules; let - cfg = config.modules.latex; +}: let + inherit (config.modules) latex; in { options.modules.latex = import ./options.nix {inherit lib mylib;}; - config = mkIf cfg.enable { + config = lib.mkIf latex.enable { home = { packages = with pkgs; [ texliveFull diff --git a/home/modules/neovim/default.nix b/home/modules/neovim/default.nix index 27904559..aa37cb7d 100644 --- a/home/modules/neovim/default.nix +++ b/home/modules/neovim/default.nix @@ -6,15 +6,12 @@ mylib, pkgs, ... -}: -with lib; -with mylib.modules; let - cfg = config.modules.neovim; - color = config.modules.color; +}: let + inherit (config.modules) neovim color; in { options.modules.neovim = import ./options.nix {inherit lib mylib;}; - config = mkIf cfg.enable { + config = lib.mkIf neovim.enable { home = { file.".config/neovide/config.toml".source = ./neovide_config.ini; file.".config/vale/.vale.ini".source = ./vale_config.ini; @@ -80,8 +77,8 @@ in { defaultEditor = true; enableMan = false; # Nixvim man pages luaLoader.enable = true; # NOTE: Experimental - viAlias = cfg.alias; - vimAlias = cfg.alias; + viAlias = neovim.alias; + vimAlias = neovim.alias; # Configured using plugin # colorschemes.catppuccin = { diff --git a/home/modules/nnn/default.nix b/home/modules/nnn/default.nix index 0b05dc8a..6045ac2b 100644 --- a/home/modules/nnn/default.nix +++ b/home/modules/nnn/default.nix @@ -1,19 +1,16 @@ # TODO: Expose some settings { config, - nixosConfig, lib, mylib, pkgs, ... -}: -with lib; -with mylib.modules; let - cfg = config.modules.nnn; +}: let + inherit (config.modules) nnn; in { options.modules.nnn = import ./options.nix {inherit lib mylib;}; - config = mkIf cfg.enable { + config = lib.mkIf nnn.enable { home.sessionVariables = { # NNN_TERMINAL = "alacritty"; # NNN_FIFO = "/tmp/nnn.fifo"; # For nnn preview diff --git a/home/modules/zathura/default.nix b/home/modules/zathura/default.nix index 5cda1aa9..0b580339 100644 --- a/home/modules/zathura/default.nix +++ b/home/modules/zathura/default.nix @@ -3,17 +3,17 @@ lib, mylib, ... -}: -with lib; -with mylib.modules; let - cfg = config.modules.zathura; +}: let + inherit (config.modules) zathura; in { options.modules.zathura = import ./options.nix {inherit lib mylib;}; - config = mkIf cfg.enable { + config = lib.mkIf zathura.enable { programs.zathura = { enable = true; + # TODO: Set database backend + # TODO: Use color module options = { # Catppuccin Latte default-fg = "#4C4F69";