36 lines
1.2 KiB
Nix
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;
|
|
# })
|
|
];
|
|
}
|