nix-config/modules/fish.nix
Donovan Glover 2995ae4d7a
meta: Replace feh with pqiv
pqiv is an image viewer that, unlike feh, has native support for
Wayland, which makes working with it quite nice. It also supports
showing a thumbnail mode that lets you preview and switch between
images with ease, as well as the ability to run custom commands
based on the current image.

pqiv has more features than imv *and* anti-aliasing *actually works*,
making it an ideal choice for image viewing on Wayland. After years of
using feh, I am quite happy that I found pqiv.
2023-06-24 14:58:44 -04:00

95 lines
3.2 KiB
Nix

{ pkgs, ... }:
{
users.defaultUserShell = pkgs.fish;
environment.shells = [ pkgs.fish ];
environment.sessionVariables = {
GIT_DISCOVERY_ACROSS_FILESYSTEM = "1";
FZF_DEFAULT_OPTS = "--height 40% --reverse --border --color=16";
NODE_OPTIONS = "--max_old_space_size=16384";
};
environment.systemPackages = with pkgs; [
wget
jq
exa
fd
fzf
ripgrep
];
programs.fish = {
enable = true;
shellAliases = {
ls = "${pkgs.exa}/bin/exa --group-directories-first -I 'lost+found'";
tree = "${pkgs.exa}/bin/exa --group-directories-first --all --long --tree -I 'node_modules|.git|public|lost+found|target'";
mv = "mv -i";
cp = "cp -ia";
rg = "${pkgs.ripgrep}/bin/rg --max-columns=2000 --smart-case";
yarn = "${pkgs.yarn}/bin/yarn --emoji true";
};
shellAbbrs = {
g = "git";
ga = "git add";
gaa = "git add --all";
gap = "git add --patch";
gb = "git branch"; # List all branches
gbd = "git branch --delete";
gc = "git commit -m";
gca = "git commit --amend";
gcl = "git clone";
gco = "git checkout";
gd = "git diff"; # Show all file changes not staged yet
gds = "git diff --staged"; # Show changes staged but not committed
gi = "git init";
gl = "git log --oneline --decorate --all --graph -n 10";
gm = "git merge";
gp = "git push"; # Push your commits to a remote server
gr = "git reset HEAD~"; # Undo the last commit but keep changed files
gR = "git restore";
gRs = "git restore --staged";
gra = "git remote add";
gre = "git remote --verbose"; # List all remotes
grh = "git reset HEAD";
grr = "git reset --hard HEAD~"; # Remove the last commit and all changes with it
gs = "git status";
gst = "git stash";
gstp = "git stash pop";
gt = "git tag";
gts = "git tag -s";
y = "yarn";
ya = "yarn add";
yar = "yarn remove";
yi = "yarn init";
yin = "yarn install";
yu = "yarn upgrade-interactive";
dl = "yt-dlp";
vol = "wpctl set-volume '@DEFAULT_AUDIO_SINK@'"; # Change the volume, e.g. vol 10%+, vol 10%-, vol 100%
nf = "tput clear; and neofetch --size 56%";
df = "df --human-readable --type=ext4 --total";
du = "du --human-readable --summarize";
jis = "recode shift_jis..utf8"; # Easily convert shift_jis-encoded files to utf8
utf16 = "recode utf16..utf8"; # Rarely, some files from Japan are utf16 instead
jp = "LANG=ja_JP.UTF-8 LC_ALL=ja_JP.UTF-8";
vm = /* fish */ ''cd ~/nix-config && crystal spec tests/main.cr --progress --verbose --tag local && nixos-rebuild build-vm --flake . --verbose && ./result/bin/run-nixos-vm && trash put result nixos.qcow2'';
sw = "cd ~/nix-config && crystal spec tests/main.cr --progress --verbose --tag local && sudo nixos-rebuild switch --flake . --verbose";
st = "cd ~/nix-config && crystal spec tests/main.cr --progress --verbose --tag local";
tf = "treefmt";
c = "tput clear"; # Clear the terminal completely
e = "exit";
k = "kitty @ set-colors -c -a ~/.cache/wal/kitty";
l = "ls -l";
n = "nvim";
j = "joshuto";
w = "wal -o ~/.config/wal/done.sh";
t = "tree";
};
};
}