zsh.nix/module.nix
2025-04-19 23:07:40 +02:00

36 lines
1.2 KiB
Nix

# ~/.config/nixpkgs/modules/jiriks74/zsh/default.nix
{ config, lib, pkgs, ... }:
let
cfg = config.jiriks74.zsh;
# Helper to get the path relative to this file
mkPath = path: ./modules + "/${path}";
in {
options.jiriks74.zsh = {
# Option to enable the core Zsh configuration (like programs.zsh.enable)
enable = lib.mkEnableOption "Enable jiriks74's core zsh configuration";
# Option to include extra packages
qolPackages = lib.mkEnableOption "Enable QualityOfLife packages";
};
# Conditionally import other Nix files based on the options
imports =
# Import core zsh settings if 'enable' is true
(lib.lists.optionals cfg.enable [ (mkPath "zsh.nix") ])
# Import packages if 'extraPackages' is true
++ (lib.lists.optionals cfg.extraPackages [ (mkPath "packages.nix") ])
# Add more conditional imports here based on other options
# ++ (lib.lists.optionals cfg.keybindings [ (mkPath "keybindings.nix") ])
# ++ (lib.lists.optionals cfg.plugins [ (mkPath "plugins.nix") ])
;
# Base configuration that might always apply or depend on 'enable'
config = lib.mkMerge [
# (lib.mkIf cfg.enable {
# programs.zsh.enable = true;
# })
];
}