From 7f3e574437879f97ca606b29f7a914bc04f32fbb Mon Sep 17 00:00:00 2001 From: Alan Pearce Date: Wed, 16 Aug 2023 20:12:35 +0200 Subject: Make shell aliases shell-agnostic --- user/settings/shell.nix | 132 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 user/settings/shell.nix (limited to 'user/settings/shell.nix') diff --git a/user/settings/shell.nix b/user/settings/shell.nix new file mode 100644 index 00000000..6a720894 --- /dev/null +++ b/user/settings/shell.nix @@ -0,0 +1,132 @@ +{ config +, lib +, pkgs +, ... +}: +let + inherit (pkgs) stdenv; + lsOptions = + if stdenv.isDarwin + then "-p" + else "-v --group-directories-first --hyperlink=auto"; + lsIsoDate = + if stdenv.isDarwin + then "" + else "--time-style=long-iso"; +in +{ + home = { + shellAliases = { + l = "ls ${lsOptions} -Bp"; + l1 = "ls -1"; + ls = "ls ${lsOptions} -hF"; + la = "ls ${lsOptions} -hA"; + ll = "ls ${lsOptions} ${lsIsoDate} -hl"; + lal = "ll -A"; + lla = "lal"; + llr = "ll -t"; + + c = "tere"; + "c," = "cd $(ghq list -p nixfiles)"; + cg = "cd $(git root)"; + cdg = "cd $(git root)"; + + http = "xh"; + https = "xh --default-scheme https"; + xhs = "xh --default-scheme https"; + + hist-freq-lines = "fc -l -10000 | cut -d' ' -f4- | sort | uniq -c | sort -gr | head -n100 | less"; + hist-freq-commands = "fc -l -10000 | cut -d' ' -f4 | sort | uniq -c | sort -gr | head -n10 | less"; + wprop = "xprop | egrep '^WM_(CLASS|NAME|WINDOW_ROLE|TYPE)'"; + + # Enable the following commands to support aliases. + sudo = "sudo "; + watch = "watch "; + + e = "$EDITOR"; + se = "sudo -e"; + + ip = "ip --color=auto"; + ip4 = "ip -4"; + ip6 = "ip -6"; + + d = "docker"; + db = "docker build"; + dr = "docker run"; + di = "docker image"; + dj = "docker pull"; + dk = "docker push"; + + dcb = "dc build"; + dcd = "dc down"; + dcj = "dc pull"; + dck = "dc push"; + dcl = "dc logs"; + dclf = "dc logs -f"; + dcu = "dc up"; + dcud = "dc up -d"; + dcr = "dc restart"; + + ga = "git add"; + gs = "git st"; + gd = "git diff"; + gdc = "git diff --cached"; + gf = "git fetch"; + gk = "git push"; + gkf = "git push --force-with-lease"; + gj = "git pull"; + gl = "git lg"; + gm = "git merge"; + ge = "git remote"; + ges = "git remote -v show"; + gr = "git rebase"; + gz = "git stash"; + gzl = "git stash list"; + gzp = "git stash pop"; + gdt = "git difftool"; + grl = "git reflog"; + gri = "git rebase --interactive"; + gfa = "git fetch --all"; + grs = "git reset"; + grsh = "git reset --hard"; + gsh = "git show"; + gsm = "git submodule"; + gci = "git commit"; + gx = "git restore"; + gb = "git switch"; + gbr = "git br"; + gbrc = "git checkout -b"; + gbrd = "git branch --delete"; + gbrm = "git branch --move"; + gmup = "git mup"; + grup = "git rup"; + + ho = "home-manager"; + hob = "home-manager build"; + hos = "home-manager switch"; + hon = "home-manager news"; + hoh = "home-manager help"; + hop = "home-manager packages"; + hol = "home-manager generations"; + hox = "home-manager expire-generations '-30 days'"; + + nish = "nix-shell"; + nf = "nix flake"; + nfa = "nix flake archive"; + nfp = "nix flake prefetch"; + nfu = "nix flake update"; + nfl = "nix flake lock"; + nlg = "nix-env --list-generations"; + snlg = "sudo nix-env --list-generations --profile /nix/var/nix/profiles/system"; + ngc = "nix-collect-garbage --delete-older-than 30d"; + sngc = "sudo nix-collect-garbage --delete-older-than 30d"; + }; + }; + programs.zsh = { + shellAliases = { + history = "fc -l $(( $LINES - 2 ))"; + + hor = "$(nix-shell -p home-manager --run 'home-manager generations' | head -n 2 | tail -n 1 | f 7)/activate"; + }; + }; +} -- cgit 1.4.1