From 5f7e9cada5b4e8a6d035ac82e8bb6c40bf131672 Mon Sep 17 00:00:00 2001 From: OlivierChiasson Date: Thu, 16 Jul 2026 20:55:53 -0300 Subject: [PATCH] refactor(desktop): clean up options formatting and simplify slice logic Refactor `modules/desktop/options.nix` to improve code readability by expanding the `optPath` list definition and simplifying the `wisdomSimpleSlice` configuration logic. Also apply minor style fixes to `modules/wisdom/filebrowsers/nemo.nix` to ensure consistent spacing within list definitions. --- modules/desktop/options.nix | 23 +++++++++++------------ modules/wisdom/filebrowsers/nemo.nix | 2 +- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/modules/desktop/options.nix b/modules/desktop/options.nix index 2ceac0d..3bb74f0 100644 --- a/modules/desktop/options.nix +++ b/modules/desktop/options.nix @@ -1,8 +1,5 @@ -{ lib, ... }: { - # Resolve `wisdom*` HM slices for NixOS `extraModules` (`self` is not an HM specialArg). - # Slices are gated by `chiasson.home.*.enable`; hosts only flip toggles in `home.nix`. - # Lives here (not `modules/lib/`) because `hosts/desktop-home-base.nix` consumes it and - # fragment eval order requires the definition to sort before `hosts/`. +{ lib, ... }: +{ flake.lib.wisdomCatalogExtraModules = self: let @@ -14,22 +11,24 @@ in map (name: self.homeManagerModules.${name}) names; - # Thin HM slice: an `enable` toggle that adds packages to `home.packages`, skipping - # any not `availableOn` this platform. `packages` is a `pkgs -> [ drv ]` function so - # callers only name each package once (the helper owns the platform-gating). Used by - # the trivial single-package wisdom slices so they stay one declarative block instead - # of the repeated `root/cfg` + `mkIf (root.enable && cfg.enable)` boilerplate. flake.lib.wisdomSimpleSlice = { path, default, description, packages }: { config, lib, pkgs, ... }: let segs = lib.splitString "." path; - optPath = [ "chiasson" "home" ] ++ segs ++ [ "enable" ]; + optPath = [ + "chiasson" + "home" + ] + ++ segs + ++ [ "enable" ]; + root = config.chiasson.home; + cfg = lib.getAttrFromPath segs root; enabled = lib.getAttrFromPath optPath config; in { options = lib.setAttrByPath optPath (lib.mkEnableOption description // { inherit default; }); - config = lib.mkIf (config.chiasson.home.enable && enabled) { + config = lib.mkIf (root.enable && enabled) { home.packages = lib.filter (lib.meta.availableOn pkgs.stdenv.hostPlatform) (packages pkgs); }; }; diff --git a/modules/wisdom/filebrowsers/nemo.nix b/modules/wisdom/filebrowsers/nemo.nix index 7907656..f708e5e 100644 --- a/modules/wisdom/filebrowsers/nemo.nix +++ b/modules/wisdom/filebrowsers/nemo.nix @@ -13,7 +13,7 @@ }; config = lib.mkIf (root.enable && cfg.enable) { - home.packages = [pkgs.nemo]; + home.packages = [ pkgs.nemo ]; xdg.mimeApps = { enable = lib.mkDefault true;