nixos_dots/archive/fish.nix
2024-12-12 19:12:55 +03:00

82 lines
No EOL
3.8 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ pkgs, ... }: {
programs.fish = {
enable = true;
shellAliases = let
flakeDir = "~/dots";
in {
rb = "sudo nixos-rebuild switch --flake ${flakeDir}"; # Применить новый конфиг
# Можно назвать аналогом "sudo pacman -Su", не "Syu", репу не обновляет
upg = "sudo nixos-rebuild switch --upgrade --flake ${flakeDir}"; # Обновить пакеты, но не репозиторий во fleke.lock
# Возможно это аналог "sudo pacman -Sy". Обновить репозиторий, чтоб потом на него обновиться? Пакеты не обновляет
upd = "nix flake update ${flakeDir}"; # Обновляет flake.lock на последние коммиты с гитхаба?
pkgs = "nvim ${flakeDir}/nixos/packages.nix";
v = "nvim";
t = "timer";
r = "ranger";
ff = "fastfetch";
yt = "cd /mnt/backups/Media/yt-dlp"; # Бекапить YouTube
qb = "cd /mnt/backups/Media/Music/Qobux/qdl"; # Бекапить музыку с Qobuz
};
# Всё, что в комментах ниже, лишнее. Я нашёл норм способ. Пишем "nix-prefetch-git link" и получаем всю инфу
# Узнать rev - git ls-remote https://github.com/{owner}/{repo}.git HEAD
# На гитхабе вроде можно просто на странице коммитов нажать ... и copy full SHA
# Узнать sha256 - sudo nix-prefetch-url --unpack https://github.com/{owner}/{repo}/archive/{rev}.tar.gz
# Ссылку проще получить, открыв страницу релизов и оттуда скопировать ссылку на архив
# Если нет релизов - sudo nix-prefetch-url --unpack https://github.com/{owner}/{repo}/archive/refs/heads/{branch}.zip
plugin = [
{ # The Node.js version manager you'll adore, crafted just for Fish
name = "nvm.fish"; # https://github.com/jorgebucaran/nvm.fish
src = pkgs.fetchFromGitHub {
owner = "jorgebucaran";
repo = "nvm.fish";
rev = "b8edb1ee24cbbf7259196b0cb3c6c4ab65b07929";
sha256 = "17vk608mbmb9mwvvm18hs63iy7vzdrd1ymia94szy1hy5d0li77c";
};
}
{ # Utility functions to start your ssh agent when using fish shell
name = "fish-ssh-agent"; # https://github.com/danhper/fish-ssh-agent
src = pkgs.fetchFromGitHub {
owner = "danhper";
repo = "fish-ssh-agent";
rev = "fd70a2afdd03caf9bf609746bf6b993b9e83be57";
sha256 = "1fvl23y9lylj4nz6k7yfja6v9jlsg8jffs2m5mq0ql4ja5vi5pkv";
};
}
];
};
home = {
packages = with pkgs.fishPlugins; [ # Плагины для Fish из репы никса
z # Частые директории https://github.com/jethrokuan/z/blob/master/man/man1/z.md
plugin-git # Алиасы для гита https://github.com/jhillyerd/plugin-git
fzf-fish # https://github.com/PatrickF1/fzf.fish
done # Оповещения для длительных процессов https://github.com/franciscolourenco/done
bass # Позволяет юзать bash в fish https://github.com/edc/bass
];
# Чтоб при выходе из ranger я всегда cd в каталог, из которого вышел
file.".config/fish/functions/ranger.fish".text = ''
function ranger
set tempfile (mktemp -t tmp.XXXXXX)
command ranger --choosedir=$tempfile $argv
set return_value $status
if test -s $tempfile
set ranger_pwd (cat $tempfile)
if test -n $ranger_pwd -a -d $ranger_pwd
builtin cd -- $ranger_pwd
end
end
command rm -f -- $tempfile
return $return_value
end
'';
};
}