{ 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 ''; }; }