From 8e4c9981ea45d231f74f398c7692f0a435ef1b93 Mon Sep 17 00:00:00 2001 From: Donovan Glover Date: Sat, 6 Apr 2024 19:37:20 -0400 Subject: [PATCH] fish: Convert to home-manager module The home-manager module seems to be fixed now and doesn't cause an abnormal startup time anymore. --- home/fish.nix | 96 +++++++++++++++++++++++++++------------------------ 1 file changed, 50 insertions(+), 46 deletions(-) diff --git a/home/fish.nix b/home/fish.nix index 9eb3d528..d3d72739 100644 --- a/home/fish.nix +++ b/home/fish.nix @@ -4,63 +4,67 @@ let inherit (pkgs) gsettings-desktop-schemas prisma-engines gtk3; in { - xdg.configFile."fish/config.fish".text = /* fish */ '' - set -U fish_greeting "" + programs.fish = { + enable = true; - export PATH="$HOME/.deno/bin:$HOME/.cargo/bin:$HOME/.yarn/bin:$HOME/.local/bin:$HOME/.go/bin:$PATH" - export GOPATH="$HOME/.go" - export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket" - export TERMCMD="kitty --single-instance" - export XDG_DATA_DIRS="${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS" - export DIRENV_LOG_FORMAT="" - export PRISMA_SCHEMA_ENGINE_BINARY="${prisma-engines}/bin/schema-engine" - export PRISMA_QUERY_ENGINE_BINARY="${prisma-engines}/bin/query-engine" - export PRISMA_QUERY_ENGINE_LIBRARY="${prisma-engines}/lib/libquery_engine.node" - export PRISMA_INTROSPECTION_ENGINE_BINARY="${prisma-engines}/bin/introspection-engine" - export PRISMA_FMT_BINARY="${prisma-engines}/bin/prisma-fmt" + shellInit = /* fish */ '' + set -U fish_greeting "" - # Required to make gpg-agent work in cases like git commit - export GPG_TTY=(tty) + export PATH="$HOME/.deno/bin:$HOME/.cargo/bin:$HOME/.yarn/bin:$HOME/.local/bin:$HOME/.go/bin:$PATH" + export GOPATH="$HOME/.go" + export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket" + export TERMCMD="kitty --single-instance" + export XDG_DATA_DIRS="${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS" + export DIRENV_LOG_FORMAT="" + export PRISMA_SCHEMA_ENGINE_BINARY="${prisma-engines}/bin/schema-engine" + export PRISMA_QUERY_ENGINE_BINARY="${prisma-engines}/bin/query-engine" + export PRISMA_QUERY_ENGINE_LIBRARY="${prisma-engines}/lib/libquery_engine.node" + export PRISMA_INTROSPECTION_ENGINE_BINARY="${prisma-engines}/bin/introspection-engine" + export PRISMA_FMT_BINARY="${prisma-engines}/bin/prisma-fmt" - # Add color to man pages - set -x -U LESS_TERMCAP_md (printf "\e[01;31m") - set -x -U LESS_TERMCAP_me (printf "\e[0m") - set -x -U LESS_TERMCAP_se (printf "\e[0m") - set -x -U LESS_TERMCAP_so (printf "\e[01;44;30m") - set -x -U LESS_TERMCAP_ue (printf "\e[0m") - set -x -U LESS_TERMCAP_us (printf "\e[01;32m") - set -x -U MANROFFOPT "-c" + # Required to make gpg-agent work in cases like git commit + export GPG_TTY=(tty) - # Always use the default keybindings in fish - fish_default_key_bindings + # Add color to man pages + set -x -U LESS_TERMCAP_md (printf "\e[01;31m") + set -x -U LESS_TERMCAP_me (printf "\e[0m") + set -x -U LESS_TERMCAP_se (printf "\e[0m") + set -x -U LESS_TERMCAP_so (printf "\e[01;44;30m") + set -x -U LESS_TERMCAP_ue (printf "\e[0m") + set -x -U LESS_TERMCAP_us (printf "\e[01;32m") + set -x -U MANROFFOPT "-c" - # Convert unnecessarily large wav files to flac - function wav2flac - set ORIGINAL_SIZE (du -hs | cut -f1) + # Always use the default keybindings in fish + fish_default_key_bindings - fd -e wav -x ffmpeg -i "{}" -loglevel quiet -stats "{.}.flac" - fd -e wav -X trash + # Always use kitty ssh since it's our default terminal + if string match -qe -- "/dev/pts/" (tty) + alias ssh="kitty +kitten ssh" + end + ''; - set NEW_SIZE (du -hs | cut -f1) + functions = { + wav2flac = /* fish */ '' + set ORIGINAL_SIZE (du -hs | cut -f1) - echo "Done. Reduced file size from $ORIGINAL_SIZE to $NEW_SIZE" - end + fd -e wav -x ffmpeg -i "{}" -loglevel quiet -stats "{.}.flac" + fd -e wav -X trash - # Convert wav/flac to opus - function opus - set ORIGINAL_SIZE (du -hs | cut -f1) + set NEW_SIZE (du -hs | cut -f1) - fd -e wav -e flac -x ffmpeg -i "{}" -c:a libopus -b:a 128K -loglevel quiet -stats "{.}.opus" - fd -e wav -e flac -X rm -I + echo "Done. Reduced file size from $ORIGINAL_SIZE to $NEW_SIZE" + ''; - set NEW_SIZE (du -hs | cut -f1) + opus = /* fish */ '' + set ORIGINAL_SIZE (du -hs | cut -f1) - echo "Done. Reduced file size from $ORIGINAL_SIZE to $NEW_SIZE" - end + fd -e wav -e flac -x ffmpeg -i "{}" -c:a libopus -b:a 128K -loglevel quiet -stats "{.}.opus" + fd -e wav -e flac -X rm -I - # Always use kitty ssh since it's our default terminal - if string match -qe -- "/dev/pts/" (tty) - alias ssh="kitty +kitten ssh" - end - ''; + set NEW_SIZE (du -hs | cut -f1) + + echo "Done. Reduced file size from $ORIGINAL_SIZE to $NEW_SIZE" + ''; + }; + }; }