feat(wisdom): introduce wisdomSimpleSlice helper for package modules
Implement a `wisdomSimpleSlice` helper in `desktop/options.nix` to reduce boilerplate for simple Home Manager modules that only manage packages. This helper handles the `enable` option creation, platform-gating via `availableOn`, and conditional inclusion in `home.packages`. Refactor several existing wisdom modules to use this new helper: - `wisdomBrowsersChrome` - `wisdomBrowsersEdge` - `wisdomEditorsKate` - `wisdomEditorsObsidian` Additionally, clean up `wisdom/default.nix` by removing the explicit import of `wisdomShellBash` (which is now handled via auto-wiring) and improving code formatting.
This commit is contained in:
@@ -1,21 +1,8 @@
|
||||
{ ... }: {
|
||||
flake.homeManagerModules.wisdomBrowsersChrome =
|
||||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
root = config.chiasson.home;
|
||||
cfg = config.chiasson.home.browsers.chrome;
|
||||
in
|
||||
{
|
||||
options.chiasson.home.browsers.chrome.enable = lib.mkEnableOption ''
|
||||
Chrome (unfree, needs `allowUnfree`); skipped if nixpkgs has no build for this platform.
|
||||
'' // {
|
||||
default = false;
|
||||
};
|
||||
|
||||
config = lib.mkIf (root.enable && cfg.enable) {
|
||||
home.packages = lib.optional (
|
||||
lib.meta.availableOn pkgs.stdenv.hostPlatform pkgs.google-chrome
|
||||
) pkgs.google-chrome;
|
||||
};
|
||||
};
|
||||
{ self, ... }: {
|
||||
flake.homeManagerModules.wisdomBrowsersChrome = self.lib.wisdomSimpleSlice {
|
||||
path = "browsers.chrome";
|
||||
default = false;
|
||||
description = "Chrome (unfree, needs `allowUnfree`); skipped if nixpkgs has no build for this platform.";
|
||||
packages = pkgs: [ pkgs.google-chrome ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,19 +1,8 @@
|
||||
{ ... }: {
|
||||
flake.homeManagerModules.wisdomBrowsersEdge =
|
||||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
root = config.chiasson.home;
|
||||
cfg = config.chiasson.home.browsers.edge;
|
||||
in
|
||||
{
|
||||
options.chiasson.home.browsers.edge.enable = lib.mkEnableOption "Edge (unfree); skipped if unavailable on this platform." // {
|
||||
default = false;
|
||||
};
|
||||
|
||||
config = lib.mkIf (root.enable && cfg.enable) {
|
||||
home.packages = lib.optional (
|
||||
lib.meta.availableOn pkgs.stdenv.hostPlatform pkgs.microsoft-edge
|
||||
) pkgs.microsoft-edge;
|
||||
};
|
||||
};
|
||||
{ self, ... }: {
|
||||
flake.homeManagerModules.wisdomBrowsersEdge = self.lib.wisdomSimpleSlice {
|
||||
path = "browsers.edge";
|
||||
default = false;
|
||||
description = "Edge (unfree); skipped if unavailable on this platform.";
|
||||
packages = pkgs: [ pkgs.microsoft-edge ];
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user