diff options
Diffstat (limited to 'home/ebisu/kansai/system/shell/fish.nix')
| -rw-r--r-- | home/ebisu/kansai/system/shell/fish.nix | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/home/ebisu/kansai/system/shell/fish.nix b/home/ebisu/kansai/system/shell/fish.nix new file mode 100644 index 0000000..d7ff424 --- /dev/null +++ b/home/ebisu/kansai/system/shell/fish.nix @@ -0,0 +1,184 @@ +{ + pkgs, + config, + secrets, + self, + lib, + ... +}: +{ + programs.fish = { + enable = true; + + shellInit = '' + if status is-interactive + set fish_greeting + + fish_vi_key_bindings + + function fish_postexec --on-event fish_postexec + if test "$argv" != "clear" + echo + end + end + + function vpn + env BIND_INTERFACE=wgpia0 LD_PRELOAD=/usr/lib/bindToInterface.so $argv + end + + function nh + if test "$argv[1]" = "home" -a "$argv[2]" = "switch" + command nh $argv -- --impure + else + command nh $argv + end + end + + function nix-find + doas find $argv -type f -exec test ! -L {} \; -exec realpath {} \; | grep -v "^/nix/store" + end + + function code + command code $argv --wait + end + + function code! + command code $argv + end + end + + set -l config_home (set -q XDG_CONFIG_HOME; and echo $XDG_CONFIG_HOME; or echo ${config.xdg.configHome}) + set HISTSIZE -1 + set HISTFILESIZE -1 + set SAVEHIST -1 + set GPG_TTY (tty) + + bind \ce edit_command_buffer + + cat ${config.xdg.cacheHome}/wal/sequences + + zoxide init fish | source + ''; + + plugins = [ + { + name = "fzf.fish"; + + src = pkgs.fetchFromGitHub { + owner = "patrickf1"; + repo = "fzf.fish"; + rev = "8920367cf85eee5218cc25a11e209d46e2591e7a"; + sha256 = "sha256-T8KYLA/r/gOKvAivKRoeqIwE2pINlxFQtZJHpOy9GMM="; + }; + } + { + name = "bass"; + + src = pkgs.fetchFromGitHub { + owner = "edc"; + repo = "bass"; + rev = "79b62958ecf4e87334f24d6743e5766475bcf4d0"; + sha256 = "sha256-3d/qL+hovNA4VMWZ0n1L+dSM1lcz7P5CQJyy+/8exTc="; + }; + } + { + name = "nvm.fish"; + + src = pkgs.fetchFromGitHub { + owner = "jorgebucaran"; + repo = "nvm.fish"; + rev = "b8edb1ee24cbbf7259196b0cb3c6c4ab65b07929"; + sha256 = "sha256-7JxIQSseBv81SSpWH1pufx8fh9EQhbo3r2nVVREwc58="; + }; + } + { + name = "sponge"; + + src = pkgs.fetchFromGitHub { + owner = "meaningful-ooo"; + repo = "sponge"; + rev = "384299545104d5256648cee9d8b117aaa9a6d7be"; + sha256 = "sha256-MdcZUDRtNJdiyo2l9o5ma7nAX84xEJbGFhAVhK+Zm1w="; + }; + } + { + name = "autopair.fish"; + + src = pkgs.fetchFromGitHub { + owner = "jorgebucaran"; + repo = "autopair.fish"; + rev = "4d1752ff5b39819ab58d7337c69220342e9de0e2"; + sha256 = "sha256-qt3t1iKRRNuiLWiVoiAYOu+9E7jsyECyIqZJ/oRIT1A="; + }; + } + ]; + + shellAliases = + let + proxyEnvironment = "http_proxy=$(cat ${ + config.sops.secrets."proxy/i2p/http".path + }) HTTP_PROXY=$(cat ${config.sops.secrets."proxy/i2p/http".path}) https_proxy=$(cat ${ + config.sops.secrets."proxy/i2p/https".path + }) HTTPS_PROXY=$(cat ${config.sops.secrets."proxy/i2p/https".path}) socks_proxy=$(cat ${ + config.sops.secrets."proxy/i2p/socks5".path + }) SOCKS_PROXY=$(cat ${config.sops.secrets."proxy/i2p/socks5".path})"; + in + { + # Verbosity + cp = "cp -iv"; + mv = "mv -iv"; + # rm = "rm -vI"; + bc = "bc -ql"; + rsync = "rsync -vrPlu"; + mkd = "mkdir -pv"; + yt = "yt-dlp --embed-metadata -i"; + yta = "yt -x -f bestaudio/best"; + ytt = "yt --skip-download --write-thumbnail"; + ffmpeg = "ffmpeg -hide_banner"; + wdic = "wdic --homophones --kanji --color --pager"; + hakuneko = "hakuneko-desktop --no-sandbox"; + fastfetch = "clear && /usr/bin/env fastfetch"; + wget = "wget --hsts-file=${config.xdg.dataHome}/wget-hsts"; + mosh = "mosh --predict=experimental"; + + # Modern Alternatives & Alias Rewrites + unzip = "ripunzip unzip-file"; + nvim = "lvim"; + vim = "lvim"; + vimdiff = "lvim -d"; + rm = "rip"; + + # Colourise + ls = "exa -h --no-quotes --color=auto --group-directories-first"; + grep = "grep --color=auto"; + diff = "diff --color=auto"; + ccat = "highlight --out-format=ansi"; + ip = "ip -color=auto"; + + # Abbreviations + ka = "killall"; + g = "git"; + sdn = "shutdown -h now"; + e = "$EDITOR"; + v = "$EDITOR"; + ff = "fastfetch"; + + # Other + chan = "chan-downloader -c 10"; + rotd = "systemctl --user restart opentabledriver.service"; + ks = "kaguya stream --user-agent 'Mozilla/5.0 (X11; Linux x86_64; rv:120.0) Gecko/20100101 Firefox/120.0'"; + def = "myougiden"; + suzuri = "SUZURI_MINIMAL=1 SUZURI_REVERSE=1 ${pkgs.tsutsumi.suzuri}/bin/suzuri"; + "5ch" = "html2md -i 'https://ff5ch.syoboi.jp/' -s section | glow"; + shinobu = "curl --silent https://shinobu.fuwn.workers.dev/shinobu -o /tmp/shinobu && feh /tmp/shinobu"; + auto_subtitle = "source ${config.home.homeDirectory}/Documents/Code/Git/Random/auto-subtitle/venv/bin/activate && auto_subtitle --model medium --task translate --srt_only True"; + steamy = "mangohud gamemoderun steam-runtime"; + koix = "koi -f"; + seamonkey = "${config.home.homeDirectory}/.local/src/seamonkey/seamonkey-bin"; + doom = "${config.xdg.configHome}/emacs/bin/doom"; + epiphany-i2p = "${proxyEnvironment} epiphany"; + eolie-i2p = "${proxyEnvironment} eolie"; + notion = "notion-app ${import "${self}/lib/electron-flags.nix" { inherit lib; }}"; + }; + }; +} |