mirror of
https://github.com/SebastianStork/nixos-config.git
synced 2026-01-21 19:51:34 +01:00
88 lines
2.6 KiB
Nix
88 lines
2.6 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
osConfig,
|
|
...
|
|
}: let
|
|
cfg = config.myConfig.shell;
|
|
in {
|
|
options.myConfig.shell = {
|
|
bash.enable = lib.mkEnableOption "";
|
|
zsh.enable = lib.mkEnableOption "";
|
|
starship.enable = lib.mkEnableOption "";
|
|
nixAliases = {
|
|
enable = lib.mkEnableOption "";
|
|
nix-helper.enable = lib.mkEnableOption "";
|
|
};
|
|
improvedCommands.enable = lib.mkEnableOption "";
|
|
direnv.enable = lib.mkEnableOption "";
|
|
};
|
|
|
|
config = {
|
|
assertions = [
|
|
{
|
|
assertion =
|
|
if cfg.nixAliases.nix-helper.enable
|
|
then osConfig.myConfig.nix-helper.enable
|
|
else true;
|
|
message = "The nix-helper has to be enabled on the OS level.";
|
|
}
|
|
];
|
|
|
|
programs.bash.enable = cfg.bash.enable;
|
|
|
|
programs.zsh.enable = cfg.zsh.enable;
|
|
|
|
programs.starship = lib.mkIf cfg.starship.enable {
|
|
enable = true;
|
|
enableBashIntegration = cfg.bash.enable;
|
|
enableZshIntegration = cfg.zsh.enable;
|
|
settings = {
|
|
cmd_duration.disabled = true;
|
|
directory = {
|
|
truncation_length = 0;
|
|
truncation_symbol = "…/";
|
|
truncate_to_repo = false;
|
|
};
|
|
};
|
|
};
|
|
|
|
home.shellAliases = let
|
|
nixAliases = lib.mkIf cfg.nixAliases.enable {
|
|
nr =
|
|
if cfg.nixAliases.nix-helper.enable
|
|
then "nh os"
|
|
else "sudo nixos-rebuild --flake $FLAKE";
|
|
nrs = "nr switch";
|
|
nrt = "nr test";
|
|
nrb = "nr boot";
|
|
nrrb = "nrb && reboot";
|
|
nu = "sudo nix flake update";
|
|
};
|
|
commandAliases = lib.mkIf cfg.improvedCommands.enable {
|
|
cat = "bat -p";
|
|
};
|
|
in
|
|
lib.mkMerge [nixAliases commandAliases];
|
|
|
|
programs.lsd = lib.mkIf cfg.improvedCommands.enable {
|
|
enable = true;
|
|
enableAliases = true;
|
|
};
|
|
|
|
programs.bat.enable = cfg.improvedCommands.enable;
|
|
|
|
programs.fzf.enable = cfg.improvedCommands.enable;
|
|
|
|
programs.zoxide = lib.mkIf cfg.improvedCommands.enable {
|
|
enable = true;
|
|
options = ["--cmd cd"];
|
|
};
|
|
|
|
programs.direnv = lib.mkIf cfg.direnv.enable {
|
|
enable = true;
|
|
nix-direnv.enable = true;
|
|
config.global.hide_env_diff = true;
|
|
};
|
|
};
|
|
}
|