Files
nixos/modules/dev/shell.nix
2026-02-04 22:53:00 +01:00

94 lines
2.1 KiB
Nix

# modules/dev/shell.nix
# Fish shell with plugins and aliases
{
config,
pkgs,
lib,
...
}:
{
programs.fish = {
enable = true;
interactiveShellInit = ''
set -g fish_greeting
if set -q GHOSTTY_RESOURCES_DIR
source "$GHOSTTY_RESOURCES_DIR/shell-integration/fish/vendor_conf.d/ghostty-shell-integration.fish"
end
set -g pure_show_system_time false
set -g pure_enable_single_line_prompt true
set -g fish_prompt_pwd_dir_length 3
clear && fastfetch
'';
shellAliases = {
ll = "eza -la --icons --git";
ls = "eza --icons";
la = "eza -la --icons";
lt = "eza --tree --icons --level=2";
cat = "bat";
find = "fd";
grep = "rg";
df = "duf";
du = "dust";
sed = "sd";
dc = "docker compose";
dps = "docker ps";
dpa = "docker ps -a";
dl = "docker logs -f";
dex = "docker exec -it";
gs = "git status";
gd = "git diff";
gds = "git diff --staged";
gl = "git log --oneline -20";
glo = "git log --oneline --graph --all";
ga = "git add";
gc = "git commit";
gp = "git push";
gpu = "git pull";
gco = "git checkout";
gb = "git branch";
gst = "git stash";
rebuild = "sudo nixos-rebuild switch --flake .";
rebuild-boot = "sudo nixos-rebuild boot --flake .";
rebuild-test = "sudo nixos-rebuild test --flake .";
update = "nix flake update";
search = "nix search nixpkgs";
gc-nix = "sudo nix-collect-garbage -d";
update-apps = "nix profile upgrade '.*'";
list-apps = "nix profile list";
ports = "ss -tulanp";
myip = "curl -s ifconfig.me";
".." = "cd ..";
"..." = "cd ../..";
"...." = "cd ../../..";
rm = "rm -i";
mv = "mv -i";
cp = "cp -i";
};
shellAbbrs = {
g = "git";
d = "docker";
n = "nix";
v = "nvim";
c = "code";
z = "zeditor";
};
};
environment.systemPackages = with pkgs; [
fishPlugins.pure
fishPlugins.autopair
fishPlugins.fzf-fish
fishPlugins.done
fishPlugins.grc
grc
dust
];
}