From 4a870d4a18b3dfbdac20512c7fb2b9228ccb7686 Mon Sep 17 00:00:00 2001 From: Romain Paquet Date: Tue, 27 Jan 2026 14:36:11 +0100 Subject: [PATCH] refactor homeModules --- flake.nix | 9 ++--- flakeModules/atuin.nix | 16 +++++++++ flakeModules/flake-module.nix | 5 +++ home-manager/desktop/fonts.nix | 13 -------- home-manager/desktop/pass.nix | 14 -------- home-manager/flake-module.nix | 5 --- {home-manager => homeModules}/chat.nix | 2 +- {home-manager => homeModules}/cli.nix | 33 ++++++++++++++++--- {home-manager => homeModules}/common.nix | 0 .../desktop/default.nix | 0 homeModules/desktop/fonts.nix | 7 ++++ homeModules/desktop/pass.nix | 20 +++++++++++ .../desktop/terminal.nix | 2 +- .../desktop/wayland.nix | 0 {home-manager => homeModules}/dev.nix | 3 +- {home-manager => homeModules}/dotfiles.nix | 0 homeModules/flake-module.nix | 27 +++++++++++++++ .../desktop => homeModules}/gnome.nix | 0 {home-manager => homeModules}/helix.nix | 2 +- .../mail/default.nix | 0 {home-manager => homeModules}/minecraft.nix | 0 .../desktop => homeModules}/niri.nix | 3 +- .../desktop => homeModules}/vicinae.nix | 0 machines/haze/configuration.nix | 3 +- machines/haze/home.nix | 21 ++++++------ modules/dev.nix | 6 ---- 26 files changed, 126 insertions(+), 65 deletions(-) create mode 100644 flakeModules/atuin.nix create mode 100644 flakeModules/flake-module.nix delete mode 100644 home-manager/desktop/fonts.nix delete mode 100644 home-manager/desktop/pass.nix delete mode 100644 home-manager/flake-module.nix rename {home-manager => homeModules}/chat.nix (82%) rename {home-manager => homeModules}/cli.nix (64%) rename {home-manager => homeModules}/common.nix (100%) rename {home-manager => homeModules}/desktop/default.nix (100%) create mode 100644 homeModules/desktop/fonts.nix create mode 100644 homeModules/desktop/pass.nix rename {home-manager => homeModules}/desktop/terminal.nix (90%) rename {home-manager => homeModules}/desktop/wayland.nix (100%) rename {home-manager => homeModules}/dev.nix (92%) rename {home-manager => homeModules}/dotfiles.nix (100%) create mode 100644 homeModules/flake-module.nix rename {home-manager/desktop => homeModules}/gnome.nix (100%) rename {home-manager => homeModules}/helix.nix (91%) rename {home-manager => homeModules}/mail/default.nix (100%) rename {home-manager => homeModules}/minecraft.nix (100%) rename {home-manager/desktop => homeModules}/niri.nix (68%) rename {home-manager/desktop => homeModules}/vicinae.nix (100%) delete mode 100644 modules/dev.nix diff --git a/flake.nix b/flake.nix index aa62a31..044ab3c 100644 --- a/flake.nix +++ b/flake.nix @@ -3,29 +3,30 @@ outputs = inputs@{ - nixpkgs, clan-core, flake-parts, ... }: - flake-parts.lib.mkFlake { inherit inputs; } ({ + flake-parts.lib.mkFlake { inherit inputs; } { imports = [ clan-core.flakeModules.default + inputs.home-manager.flakeModules.home-manager inputs.terranix.flakeModule ./clan/flake-module.nix ./clanServices/flake-module.nix ./devShells/flake-module.nix - ./home-manager/flake-module.nix + ./homeModules/flake-module.nix ./infra/flake-module.nix ./modules/flake-module.nix ./packages/flake-module.nix + ./flakeModules/flake-module.nix ]; systems = [ "x86_64-linux" "aarch64-linux" ]; - }); + }; inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; diff --git a/flakeModules/atuin.nix b/flakeModules/atuin.nix new file mode 100644 index 0000000..cb37c93 --- /dev/null +++ b/flakeModules/atuin.nix @@ -0,0 +1,16 @@ +{ + flake.nixosModules.atuin-config = { + clan.core.vars.generators.atuin = { + prompts.key.persist = true; + files.key.owner = "rpqt"; + }; + }; + + flake.homeModules.atuin-config = + { config, osConfig, ... }: + { + programs.atuin.enable = true; + xdg.dataFile."atuin/key".source = + config.lib.file.mkOutOfStoreSymlink osConfig.clan.core.vars.generators.atuin.files.key.path; + }; +} diff --git a/flakeModules/flake-module.nix b/flakeModules/flake-module.nix new file mode 100644 index 0000000..8fbf844 --- /dev/null +++ b/flakeModules/flake-module.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./atuin.nix + ]; +} diff --git a/home-manager/desktop/fonts.nix b/home-manager/desktop/fonts.nix deleted file mode 100644 index b987e69..0000000 --- a/home-manager/desktop/fonts.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ pkgs, ... }: -{ - home.packages = [ - pkgs.nerd-fonts.jetbrains-mono - pkgs.noto-fonts-color-emoji - ]; - - fonts.fontconfig.enable = true; - fonts.fontconfig.defaultFonts = { - sansSerif = [ "Adwaita Sans" ]; - monospace = [ "Adwaita Mono" ]; - }; -} diff --git a/home-manager/desktop/pass.nix b/home-manager/desktop/pass.nix deleted file mode 100644 index 3b60fee..0000000 --- a/home-manager/desktop/pass.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ pkgs, ... }: -{ - home.packages = [ - pkgs.pass - pkgs.gnupg - pkgs.pinentry-gnome3 - ]; - - programs.gpg.enable = true; - services.gpg-agent = { - enable = true; - pinentry.package = pkgs.pinentry-gnome3; - }; -} diff --git a/home-manager/flake-module.nix b/home-manager/flake-module.nix deleted file mode 100644 index 4909227..0000000 --- a/home-manager/flake-module.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - flake.homeManagerModules = { - dotfiles.imports = [ ./dotfiles.nix ]; - }; -} diff --git a/home-manager/chat.nix b/homeModules/chat.nix similarity index 82% rename from home-manager/chat.nix rename to homeModules/chat.nix index 0b9cd4a..7cb9124 100644 --- a/home-manager/chat.nix +++ b/homeModules/chat.nix @@ -6,7 +6,7 @@ }: { imports = [ - self.homeManagerModules.dotfiles + self.homeModules.dotfiles ]; home.packages = with pkgs; [ senpai ]; diff --git a/home-manager/cli.nix b/homeModules/cli.nix similarity index 64% rename from home-manager/cli.nix rename to homeModules/cli.nix index 89ccda3..a678563 100644 --- a/home-manager/cli.nix +++ b/homeModules/cli.nix @@ -21,7 +21,7 @@ let in { imports = [ - self.homeManagerModules.dotfiles + self.homeModules.dotfiles ]; home.packages = with pkgs; [ @@ -53,10 +53,6 @@ in programs.starship.enable = true; programs.bat.enable = true; - programs.atuin.enable = true; - xdg.dataFile."atuin/key".source = - config.lib.file.mkOutOfStoreSymlink osConfig.clan.core.vars.generators.atuin.files.key.path; - programs.zsh = { enable = true; syntaxHighlighting.enable = true; @@ -68,6 +64,33 @@ in inherit shellAliases; }; + programs.zellij.enable = true; + + # programs.khal = { + # enable = true; + # }; + + # accounts.calendar.basePath = ".calendar"; + + # programs.pimsync.enable = true; + + # accounts.calendar.accounts.personal = { + # pimsync.enable = true; + # khal.enable = true; + # thunderbird.enable = true; + # remote = { + # url = "https://cloud.rpqt.fr/remote.php/dav/calendars/rpqt/personal/"; + + # type = "caldav"; + # userName = "rpqt@rpqt.fr"; + # passwordCommand = [ + # "sh" + # "-c" + # "passage web/cloud.rpqt.fr | head -n 1" + # ]; + # }; + # }; + xdg.configFile."git".source = "${config.dotfiles.path}/.config/git"; xdg.configFile."jj/config.toml".source = "${config.dotfiles.path}/.config/jj/config.toml"; xdg.configFile."task/taskrc".source = "${config.dotfiles.path}/.config/task/taskrc"; diff --git a/home-manager/common.nix b/homeModules/common.nix similarity index 100% rename from home-manager/common.nix rename to homeModules/common.nix diff --git a/home-manager/desktop/default.nix b/homeModules/desktop/default.nix similarity index 100% rename from home-manager/desktop/default.nix rename to homeModules/desktop/default.nix diff --git a/homeModules/desktop/fonts.nix b/homeModules/desktop/fonts.nix new file mode 100644 index 0000000..eae2c70 --- /dev/null +++ b/homeModules/desktop/fonts.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: +{ + home.packages = [ + pkgs.nerd-fonts.jetbrains-mono + pkgs.noto-fonts-color-emoji + ]; +} diff --git a/homeModules/desktop/pass.nix b/homeModules/desktop/pass.nix new file mode 100644 index 0000000..7aa6a0f --- /dev/null +++ b/homeModules/desktop/pass.nix @@ -0,0 +1,20 @@ +{ pkgs, ... }: +let + pass-alias = pkgs.writeShellScriptBin "pass" '' + exec ${pkgs.passage}/bin/passage "$@" + ''; +in +{ + home.packages = [ + # pkgs.pass + pass-alias + pkgs.gnupg + pkgs.pinentry-gnome3 + ]; + + # programs.gpg.enable = true; + services.gpg-agent = { + enable = false; + pinentry.package = pkgs.pinentry-gnome3; + }; +} diff --git a/home-manager/desktop/terminal.nix b/homeModules/desktop/terminal.nix similarity index 90% rename from home-manager/desktop/terminal.nix rename to homeModules/desktop/terminal.nix index 5f35837..cb68238 100644 --- a/home-manager/desktop/terminal.nix +++ b/homeModules/desktop/terminal.nix @@ -6,7 +6,7 @@ }: { imports = [ - self.homeManagerModules.dotfiles + self.homeModules.dotfiles ]; home.packages = [ diff --git a/home-manager/desktop/wayland.nix b/homeModules/desktop/wayland.nix similarity index 100% rename from home-manager/desktop/wayland.nix rename to homeModules/desktop/wayland.nix diff --git a/home-manager/dev.nix b/homeModules/dev.nix similarity index 92% rename from home-manager/dev.nix rename to homeModules/dev.nix index ccca27f..0868a12 100644 --- a/home-manager/dev.nix +++ b/homeModules/dev.nix @@ -8,8 +8,9 @@ imports = [ ./cli.nix ./helix.nix - self.homeManagerModules.dotfiles + self.homeModules.dotfiles self.inputs.direnv-instant.homeModules.direnv-instant + self.homeModules.atuin-config ]; home.packages = with pkgs; [ diff --git a/home-manager/dotfiles.nix b/homeModules/dotfiles.nix similarity index 100% rename from home-manager/dotfiles.nix rename to homeModules/dotfiles.nix diff --git a/homeModules/flake-module.nix b/homeModules/flake-module.nix new file mode 100644 index 0000000..ccb87ea --- /dev/null +++ b/homeModules/flake-module.nix @@ -0,0 +1,27 @@ +{ lib, ... }: +{ + flake.homeModules = + (builtins.readDir ./.) + |> lib.filterAttrs ( + path: type: + (type == "directory" && lib.filesystem.pathIsRegularFile (./${path}/default.nix)) + || (type == "regular" && (lib.hasSuffix ".nix" path)) + ) + |> lib.mapAttrs' ( + path: type: + if type == "directory" then + { + name = path; + value = { + imports = [ ./${path} ]; + }; + } + else + { + name = lib.removeSuffix ".nix" path; + value = { + imports = [ ./${path} ]; + }; + } + ); +} diff --git a/home-manager/desktop/gnome.nix b/homeModules/gnome.nix similarity index 100% rename from home-manager/desktop/gnome.nix rename to homeModules/gnome.nix diff --git a/home-manager/helix.nix b/homeModules/helix.nix similarity index 91% rename from home-manager/helix.nix rename to homeModules/helix.nix index 61aa5cb..25655af 100644 --- a/home-manager/helix.nix +++ b/homeModules/helix.nix @@ -6,7 +6,7 @@ }: { imports = [ - self.homeManagerModules.dotfiles + self.homeModules.dotfiles ]; home.packages = [ pkgs.helix ]; diff --git a/home-manager/mail/default.nix b/homeModules/mail/default.nix similarity index 100% rename from home-manager/mail/default.nix rename to homeModules/mail/default.nix diff --git a/home-manager/minecraft.nix b/homeModules/minecraft.nix similarity index 100% rename from home-manager/minecraft.nix rename to homeModules/minecraft.nix diff --git a/home-manager/desktop/niri.nix b/homeModules/niri.nix similarity index 68% rename from home-manager/desktop/niri.nix rename to homeModules/niri.nix index 9422dda..a98b421 100644 --- a/home-manager/desktop/niri.nix +++ b/homeModules/niri.nix @@ -1,8 +1,7 @@ { self, config, ... }: { imports = [ - self.homeManagerModules.dotfiles - ./wayland.nix + self.homeModules.dotfiles ]; xdg.configFile."niri".source = "${config.dotfiles.path}/.config/niri"; diff --git a/home-manager/desktop/vicinae.nix b/homeModules/vicinae.nix similarity index 100% rename from home-manager/desktop/vicinae.nix rename to homeModules/vicinae.nix diff --git a/machines/haze/configuration.nix b/machines/haze/configuration.nix index ffa0c02..6696305 100644 --- a/machines/haze/configuration.nix +++ b/machines/haze/configuration.nix @@ -15,8 +15,8 @@ ./network.nix ./syncthing.nix + self.nixosModules.atuin-config self.nixosModules.desktop - self.nixosModules.dev self.nixosModules.lanzaboote self.nixosModules.nix-defaults @@ -26,7 +26,6 @@ home-manager.useUserPackages = true; home-manager.users.rpqt = ./home.nix; home-manager.extraSpecialArgs = { - inherit (self) inputs; inherit self; }; } diff --git a/machines/haze/home.nix b/machines/haze/home.nix index 92fffc4..ac7941d 100644 --- a/machines/haze/home.nix +++ b/machines/haze/home.nix @@ -1,14 +1,15 @@ +{ self, ... }: { imports = [ - ../../home-manager/chat.nix - ../../home-manager/common.nix - ../../home-manager/desktop - ../../home-manager/dev.nix - ../../home-manager/helix.nix - ../../home-manager/mail - ../../home-manager/minecraft.nix - ../../home-manager/desktop - ../../home-manager/desktop/niri.nix - ../../home-manager/desktop/vicinae.nix + self.homeModules.chat + self.homeModules.common + self.homeModules.desktop + self.homeModules.dev + self.homeModules.helix + self.homeModules.mail + self.homeModules.minecraft + self.homeModules.desktop + self.homeModules.niri + self.homeModules.vicinae ]; } diff --git a/modules/dev.nix b/modules/dev.nix deleted file mode 100644 index 294bdfa..0000000 --- a/modules/dev.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - clan.core.vars.generators.atuin = { - prompts.key.persist = true; - files.key.owner = "rpqt"; - }; -}