dots/home/modules/shells.nix
2025-11-22 13:55:55 +01:00

128 lines
3.1 KiB
Nix

{
pkgs,
device-name,
...
}: {
home.packages = with pkgs; [
bat
fzf
fd
eza
most
];
home.sessionVariables = {
EDITOR = "nvim";
PAGER = "most";
MANPAGER = "most";
MANROFFOPT = "-c";
};
programs = {
bash.enable = true;
fzf.enable = true;
eza.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 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 .
}
def --env fzf-cd [] {
let dir = (fd -t d -L . | fzf --reverse --height 40% --border rounded --preview=("eza --color=always --group-directories-first --icons --long {}") --preview-window=border-left)
if $dir != null and $dir != "" {
cd $dir
}
}
def --env fzf-nvim [] {
let file = (fd -t f -L . | fzf --reverse --height 40% --border rounded --preview=("bat -p -P --color always {}") --preview-window=border-left)
if $file != null and $file != "" {
nvim $file
}
}
$env.config.keybindings = ($env.config.keybindings | append {
name: "fzf-cd"
modifier: "control"
keycode: "char_f"
mode: "emacs"
event: [
{
send: "executehostcommand"
cmd: 'fzf-cd'
}
]
})
$env.config.keybindings = ($env.config.keybindings | append {
name: "fzf-nvim"
modifier: "control"
keycode: "char_e"
mode: "emacs"
event: [
{
send: "executehostcommand"
cmd: 'fzf-nvim'
}
]
})
'';
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";
};
};
};
}