From 2e9bfb0dc5166492bde9b9cc7667e1857da2a5d2 Mon Sep 17 00:00:00 2001 From: ChUrl Date: Wed, 26 Apr 2023 12:42:48 +0200 Subject: [PATCH] Refactor home modules into config + options --- home/modules/audio/default.nix | 4 ++-- home/modules/audio/options.nix | 2 ++ home/modules/default.nix | 30 +++++++++++++++--------------- home/modules/emacs/default.nix | 2 +- home/modules/emacs/options.nix | 4 +++- home/modules/email/default.nix | 2 +- home/modules/email/options.nix | 4 +++- home/modules/firefox/default.nix | 2 +- home/modules/firefox/options.nix | 4 +++- home/modules/fish/default.nix | 2 +- home/modules/fish/options.nix | 4 +++- home/modules/flatpak/default.nix | 2 +- home/modules/flatpak/options.nix | 4 +++- home/modules/gaming/default.nix | 4 ++-- home/modules/gaming/options.nix | 4 +++- home/modules/gnome/default.nix | 2 +- home/modules/gnome/options.nix | 4 +++- home/modules/hyprland/default.nix | 2 +- home/modules/hyprland/options.nix | 4 +++- home/modules/kitty/default.nix | 2 +- home/modules/kitty/options.nix | 4 +++- home/modules/misc/default.nix | 2 +- home/modules/misc/options.nix | 4 +++- home/modules/neovim/default.nix | 2 +- home/modules/neovim/options.nix | 4 +++- home/modules/nextcloud/default.nix | 2 +- home/modules/nextcloud/options.nix | 4 +++- home/modules/plasma/default.nix | 2 +- home/modules/plasma/options.nix | 4 +++- home/modules/ranger/default.nix | 2 +- home/modules/ranger/options.nix | 4 +++- 31 files changed, 76 insertions(+), 46 deletions(-) diff --git a/home/modules/audio/default.nix b/home/modules/audio/default.nix index 8e05dfc1..a06a6f52 100644 --- a/home/modules/audio/default.nix +++ b/home/modules/audio/default.nix @@ -12,10 +12,10 @@ with mylib.modules; let cfgfp = config.modules.flatpak; in { imports = [ - ../flatpak.nix + ../flatpak ]; - options.modules.audio = import ./options.nix { inherit lib; }; + options.modules.audio = import ./options.nix { inherit lib mylib; }; config = mkIf cfg.enable { assertions = [ diff --git a/home/modules/audio/options.nix b/home/modules/audio/options.nix index 77947a8b..2b7f3f96 100644 --- a/home/modules/audio/options.nix +++ b/home/modules/audio/options.nix @@ -1,7 +1,9 @@ { lib, + mylib }: with lib; +with mylib.modules; { enable = mkEnableOpt "Audio module"; diff --git a/home/modules/default.nix b/home/modules/default.nix index 908d6aa3..f4cb9099 100644 --- a/home/modules/default.nix +++ b/home/modules/default.nix @@ -8,20 +8,20 @@ ... }: { imports = [ - ./audio/default.nix - ./emacs/default.nix - ./email/default.nix - ./firefox/default.nix - ./fish/default.nix - ./flatpak/default.nix - ./gaming/default.nix - ./gnome/default.nix - ./hyprland/default.nix - ./kitty/default.nix - ./misc/default.nix - ./neovim/default.nix - ./nextcloud/default.nix - ./plasma/default.nix - ./ranger/default.nix + ./audio + ./emacs + ./email + ./firefox + ./fish + ./flatpak + ./gaming + ./gnome + ./hyprland + ./kitty + ./misc + ./neovim + ./nextcloud + ./plasma + ./ranger ]; } diff --git a/home/modules/emacs/default.nix b/home/modules/emacs/default.nix index 44b6bcbd..d2dff8f3 100644 --- a/home/modules/emacs/default.nix +++ b/home/modules/emacs/default.nix @@ -18,7 +18,7 @@ in { # Options is a vector of options this module defines # This module defines only the "emacs" option and suboptions "enable" and "doom" - options.modules.emacs = import ./options.nix { inherit lib; }; + options.modules.emacs = import ./options.nix { inherit lib mylib; }; # Config is the merged set of all module configurations # Here we define what happens to the config if the module is active (but only if the module is active) diff --git a/home/modules/emacs/options.nix b/home/modules/emacs/options.nix index c41b0d03..f9baf506 100644 --- a/home/modules/emacs/options.nix +++ b/home/modules/emacs/options.nix @@ -1,7 +1,9 @@ { - lib + lib, + mylib }: with lib; +with mylib.modules; { enable = mkEnableOpt "Emacs module"; diff --git a/home/modules/email/default.nix b/home/modules/email/default.nix index f92c0f14..e43aef59 100644 --- a/home/modules/email/default.nix +++ b/home/modules/email/default.nix @@ -14,7 +14,7 @@ with lib; with mylib.modules; let cfg = config.modules.email; in { - options.modules.email = import ./options.nix { inherit lib; }; + options.modules.email = import ./options.nix { inherit lib mylib; }; # TODO: Add Maildir to nextcloud sync config = mkIf cfg.enable { diff --git a/home/modules/email/options.nix b/home/modules/email/options.nix index 121fb209..9943d62e 100644 --- a/home/modules/email/options.nix +++ b/home/modules/email/options.nix @@ -1,7 +1,9 @@ { - lib + lib, + mylib }: with lib; +with mylib.modules; { enable = mkEnableOpt "Email"; autosync = mkEnableOpt "Automatically call \"notmuch new\" via systemd timer"; diff --git a/home/modules/firefox/default.nix b/home/modules/firefox/default.nix index 24783712..4dbfb37e 100644 --- a/home/modules/firefox/default.nix +++ b/home/modules/firefox/default.nix @@ -12,7 +12,7 @@ with lib; with mylib.modules; let cfg = config.modules.firefox; in { - options.modules.firefox = import ./options.nix { inherit lib; }; + options.modules.firefox = import ./options.nix { inherit lib mylib; }; config = mkIf cfg.enable { home.packages = with pkgs; diff --git a/home/modules/firefox/options.nix b/home/modules/firefox/options.nix index 216c47b0..1f7565af 100644 --- a/home/modules/firefox/options.nix +++ b/home/modules/firefox/options.nix @@ -1,7 +1,9 @@ { - lib + lib, + mylib }: with lib; +with mylib.modules; { enable = mkEnableOpt "Firefox"; wayland = mkBoolOpt false "Enable firefox wayland support"; diff --git a/home/modules/fish/default.nix b/home/modules/fish/default.nix index f0e9a04c..0905f3e5 100644 --- a/home/modules/fish/default.nix +++ b/home/modules/fish/default.nix @@ -10,7 +10,7 @@ with lib; with mylib.modules; let cfg = config.modules.fish; in { - options.modules.fish = import ./options.nix { inherit lib; }; + options.modules.fish = import ./options.nix { inherit lib mylib; }; config = mkIf cfg.enable { programs.fish = { diff --git a/home/modules/fish/options.nix b/home/modules/fish/options.nix index 837096f5..1be55290 100644 --- a/home/modules/fish/options.nix +++ b/home/modules/fish/options.nix @@ -1,7 +1,9 @@ { - lib + lib, + mylib }: with lib; +with mylib.modules; { enable = mkEnableOpt "Fish"; } \ No newline at end of file diff --git a/home/modules/flatpak/default.nix b/home/modules/flatpak/default.nix index 6946f32b..d9fe2c73 100644 --- a/home/modules/flatpak/default.nix +++ b/home/modules/flatpak/default.nix @@ -14,7 +14,7 @@ with mylib.modules; let cfg = config.modules.flatpak; in { - options.modules.flatpak = import ./options.nix { inherit lib; }; + options.modules.flatpak = import ./options.nix { inherit lib mylib; }; config = mkIf cfg.enable { assertions = [ diff --git a/home/modules/flatpak/options.nix b/home/modules/flatpak/options.nix index 33dc2923..1b5ddca2 100644 --- a/home/modules/flatpak/options.nix +++ b/home/modules/flatpak/options.nix @@ -1,7 +1,9 @@ { - lib + lib, + mylib }: with lib; +with mylib.modules; { enable = mkEnableOpt "Flatpak module"; fontFix = mkBoolOpt true "Link fonts to ~/.local/share/fonts so flatpak apps can find them"; diff --git a/home/modules/gaming/default.nix b/home/modules/gaming/default.nix index af6c6a40..aa092a6f 100644 --- a/home/modules/gaming/default.nix +++ b/home/modules/gaming/default.nix @@ -12,14 +12,14 @@ with mylib.modules; let in { imports = [ # NOTE: I don't know if this is the right approach or if I should use config.modules.flatpak - ./flatpak.nix + ../flatpak ]; # TODO: Enable flatpak MangoHud, there are multiple versions, Steam.Utility.MangoHud works but can't be configured (in ~/.config/MangoHud), other versions don't even work (need to figure that out as Steam.Utility.MangoHud is EOL...) # TODO: SteamTinkerLaunch option # TODO: Dolphin + SteamRomManager option - options.modules.gaming = import ./options.nix { inherit lib; }; + options.modules.gaming = import ./options.nix { inherit lib mylib; }; config = mkIf cfg.enable { assertions = [ diff --git a/home/modules/gaming/options.nix b/home/modules/gaming/options.nix index f4a3d6df..d5f949e2 100644 --- a/home/modules/gaming/options.nix +++ b/home/modules/gaming/options.nix @@ -1,7 +1,9 @@ { - lib + lib, + mylib }: with lib; +with mylib.modules; { enable = mkEnableOpt "Gaming module"; diff --git a/home/modules/gnome/default.nix b/home/modules/gnome/default.nix index b4c330ca..567e2961 100644 --- a/home/modules/gnome/default.nix +++ b/home/modules/gnome/default.nix @@ -10,7 +10,7 @@ with lib; with mylib.modules; let cfg = config.modules.gnome; in { - options.modules.gnome = import ./options.nix { inherit lib; }; + options.modules.gnome = import ./options.nix { inherit lib mylib; }; config = mkIf cfg.enable { assertions = [ diff --git a/home/modules/gnome/options.nix b/home/modules/gnome/options.nix index 77a09ed2..62669421 100644 --- a/home/modules/gnome/options.nix +++ b/home/modules/gnome/options.nix @@ -1,7 +1,9 @@ { - lib + lib, + mylib }: with lib; +with mylib.modules; { enable = mkEnableOpt "Gnome Desktop"; # TODO: Add option for dash-to-dock diff --git a/home/modules/hyprland/default.nix b/home/modules/hyprland/default.nix index 386eb2eb..b6ced42f 100644 --- a/home/modules/hyprland/default.nix +++ b/home/modules/hyprland/default.nix @@ -10,7 +10,7 @@ with lib; with mylib.modules; let cfg = config.modules.hyprland; in { - options.modules.hyprland = import ./options.nix { inherit lib; }; + options.modules.hyprland = import ./options.nix { inherit lib mylib; }; config = let # Taken from https://github.com/Ruixi-rebirth/flakes/blob/main/modules/programs/wayland/waybar/workspace-patch.nix diff --git a/home/modules/hyprland/options.nix b/home/modules/hyprland/options.nix index 3e53db37..4ef35c4d 100644 --- a/home/modules/hyprland/options.nix +++ b/home/modules/hyprland/options.nix @@ -1,7 +1,9 @@ { - lib + lib, + mylib }: with lib; +with mylib.modules; { enable = mkEnableOpt "Hyprland Window Manager + Compositor"; diff --git a/home/modules/kitty/default.nix b/home/modules/kitty/default.nix index 406a4a24..c96007e0 100644 --- a/home/modules/kitty/default.nix +++ b/home/modules/kitty/default.nix @@ -11,7 +11,7 @@ with mylib.modules; let cfg = config.modules.kitty; # cfgnv = config.modules.neovim; in { - options.modules.kitty = import ./options.nix { inherit lib; }; + options.modules.kitty = import ./options.nix { inherit lib mylib; }; config = mkIf cfg.enable { programs.kitty = { diff --git a/home/modules/kitty/options.nix b/home/modules/kitty/options.nix index efb4493d..823c41d6 100644 --- a/home/modules/kitty/options.nix +++ b/home/modules/kitty/options.nix @@ -1,7 +1,9 @@ { - lib + lib, + mylib }: with lib; +with mylib.modules; { enable = mkEnableOpt "Kitty"; } \ No newline at end of file diff --git a/home/modules/misc/default.nix b/home/modules/misc/default.nix index 8cbd35af..28a80142 100644 --- a/home/modules/misc/default.nix +++ b/home/modules/misc/default.nix @@ -10,7 +10,7 @@ with lib; with mylib.modules; let cfg = config.modules.misc; in { - options.modules.misc = import ./options.nix { inherit lib; }; + options.modules.misc = import ./options.nix { inherit lib mylib; }; config = mkIf cfg.enable { home.packages = with pkgs; diff --git a/home/modules/misc/options.nix b/home/modules/misc/options.nix index 4287a354..31db80ab 100644 --- a/home/modules/misc/options.nix +++ b/home/modules/misc/options.nix @@ -1,7 +1,9 @@ { - lib + lib, + mylib }: with lib; +with mylib.modules; { enable = mkEnableOpt "Misc module"; diff --git a/home/modules/neovim/default.nix b/home/modules/neovim/default.nix index 8f6a188f..ef5f74bd 100644 --- a/home/modules/neovim/default.nix +++ b/home/modules/neovim/default.nix @@ -10,7 +10,7 @@ with lib; with mylib.modules; let cfg = config.modules.neovim; in { - options.modules.neovim = import ./options.nix { inherit lib; }; + options.modules.neovim = import ./options.nix { inherit lib mylib; }; config = mkIf cfg.enable { # TODO: Configure by option diff --git a/home/modules/neovim/options.nix b/home/modules/neovim/options.nix index e8e22889..6583f285 100644 --- a/home/modules/neovim/options.nix +++ b/home/modules/neovim/options.nix @@ -1,7 +1,9 @@ { - lib + lib, + mylib }: with lib; +with mylib.modules; { enable = mkEnableOpt "NeoVim"; alias = mkBoolOpt false "Link nvim to vim/vi"; diff --git a/home/modules/nextcloud/default.nix b/home/modules/nextcloud/default.nix index dc55c8be..9ce7f240 100644 --- a/home/modules/nextcloud/default.nix +++ b/home/modules/nextcloud/default.nix @@ -13,7 +13,7 @@ with lib; with mylib.modules; let cfg = config.modules.nextcloud; in { - options.modules.nextcloud = import ./options.nix { inherit lib; }; + options.modules.nextcloud = import ./options.nix { inherit lib mylib; }; config = mkIf cfg.enable { assertions = [ diff --git a/home/modules/nextcloud/options.nix b/home/modules/nextcloud/options.nix index e3446415..3b62bbc2 100644 --- a/home/modules/nextcloud/options.nix +++ b/home/modules/nextcloud/options.nix @@ -1,7 +1,9 @@ { - lib + lib, + mylib }: with lib; +with mylib.modules; { enable = mkEnableOpt "Nextcloud Client"; autostart = mkBoolOpt false "Autostart the Nextcloud client (systemd)"; diff --git a/home/modules/plasma/default.nix b/home/modules/plasma/default.nix index 6e8e3af7..0b5df80d 100644 --- a/home/modules/plasma/default.nix +++ b/home/modules/plasma/default.nix @@ -11,7 +11,7 @@ with lib; with mylib.modules; let cfg = config.modules.plasma; in { - options.modules.plasma = import ./options.nix { inherit lib; }; + options.modules.plasma = import ./options.nix { inherit lib mylib; }; config = mkIf cfg.enable { assertions = [ diff --git a/home/modules/plasma/options.nix b/home/modules/plasma/options.nix index 944460cf..927b8d46 100644 --- a/home/modules/plasma/options.nix +++ b/home/modules/plasma/options.nix @@ -1,7 +1,9 @@ { - lib + lib, + mylib }: with lib; +with mylib.modules; { enable = mkEnableOpt "Plasma Desktop"; } \ No newline at end of file diff --git a/home/modules/ranger/default.nix b/home/modules/ranger/default.nix index bfd4fcf2..5887a953 100644 --- a/home/modules/ranger/default.nix +++ b/home/modules/ranger/default.nix @@ -10,7 +10,7 @@ with lib; with mylib.modules; let cfg = config.modules.ranger; in { - options.modules.ranger = import ./options.nix { inherit lib; }; + options.modules.ranger = import ./options.nix { inherit lib mylib; }; config = mkIf cfg.enable { home.packages = with pkgs; diff --git a/home/modules/ranger/options.nix b/home/modules/ranger/options.nix index 45c9bc0f..8e54e6c7 100644 --- a/home/modules/ranger/options.nix +++ b/home/modules/ranger/options.nix @@ -1,7 +1,9 @@ { - lib + lib, + mylib }: with lib; +with mylib.modules; { enable = mkEnableOpt "Ranger"; preview = mkBoolOpt false "Enable Ranger image preview";