dots/home/modules/shells.nix
2025-11-07 11:25:43 +01:00

102 lines
2.2 KiB
Nix

{
pkgs,
device-name,
...
}: {
home.packages = with pkgs; [
bat
fzf
fd
];
home.sessionVariables = {
EDITOR = "nvim";
};
programs = {
bash.enable = true;
direnv = {
enable = true;
silent = true;
nix-direnv .enable = true;
};
nushell = {
enable = true;
extraConfig =
/*
nu
*/
''
if "ZELLIJ" in $env == false {
zellij
exit
} else {
if "IN_NIX_SHELL" in $env == false {
fastfetch
}
}
def garbage [] {
sudo nix-collect-garbage --delete-old
sudo nixos-rebuild switch --flake /home/maxag/.nix-config
}
def c [] {
clear
fastfetch
}
def --env f [] {
let dir = (
fd --type d --follow --exclude .git
| fzf --height 40% --reverse --border
)
if ($dir != "") {
cd $dir
}
}
def rebuild [message?: string] {
cd /home/maxag/.nix-config
let commit_message = if $message != null {$message} else {"non important commit"}
try {
git pull
git add .
git commit -m $commit_message
git push
}
sudo nixos-rebuild switch --flake .
}
$env.config.keybindings = ($env.config.keybindings | append {
name: "fzf-search"
modifier: "control"
keycode: "char_f"
mode: "emacs"
event: {
send: "executehostcommand"
cmd: 'commandline edit --insert (fd -t d -L . | fzf)'
}
})
'';
settings = {
show_banner = false;
};
shellAliases = {
zel = "zellij";
system = "nvim /home/maxag/.nix-config/flake.nix";
home = "nvim /home/maxag/.nix-config/home/${device-name}/home.nix";
config = "nvim /home/maxag/.nix-config/configuration/${device-name}/configuration.nix";
cat = "bat -p -P";
nix-shell = "nix-shell --run nu";
};
};
};
}