2022-12-20 19:34:16 +00:00
|
|
|
{ pkgs, config, lib, ... }:
|
2021-12-06 22:35:29 +00:00
|
|
|
|
2022-12-20 19:34:16 +00:00
|
|
|
let
|
2023-04-10 17:24:05 +00:00
|
|
|
inherit (pkgs) fetchFromGitHub;
|
2022-12-20 19:34:16 +00:00
|
|
|
inherit (pkgs.stdenv) isDarwin;
|
|
|
|
inherit (lib) optionals;
|
|
|
|
in
|
2021-12-06 22:35:29 +00:00
|
|
|
{
|
2022-12-20 19:34:16 +00:00
|
|
|
|
|
|
|
home.packages = with pkgs; [ ] ++ optionals isDarwin [
|
|
|
|
terminal-notifier
|
|
|
|
];
|
2022-12-19 21:02:48 +00:00
|
|
|
|
2021-12-06 22:35:29 +00:00
|
|
|
programs.fish = {
|
|
|
|
enable = true;
|
|
|
|
|
|
|
|
plugins = [
|
2022-04-27 20:16:55 +00:00
|
|
|
# https://github.com/dracula/fish
|
2021-12-06 22:35:29 +00:00
|
|
|
{
|
|
|
|
name = "dracula";
|
2023-04-10 17:24:05 +00:00
|
|
|
src = fetchFromGitHub {
|
2021-12-06 22:35:29 +00:00
|
|
|
owner = "dracula";
|
|
|
|
repo = "fish";
|
2023-04-10 17:24:05 +00:00
|
|
|
rev = "0e51af5e5346e5d24efabd43fb4631e2a8fd1b70";
|
|
|
|
hash = "sha256-YXh6pPJ9dJDPpq1kX5xd1edoOaH6jDq8pDOkx3k03/0=";
|
2021-12-06 22:35:29 +00:00
|
|
|
};
|
|
|
|
}
|
2022-01-10 11:28:26 +00:00
|
|
|
|
2022-12-19 21:02:48 +00:00
|
|
|
# https://github.com/franciscolourenco/done/releases
|
2022-03-02 22:31:45 +00:00
|
|
|
{
|
|
|
|
name = "done-fish";
|
2023-04-10 17:24:05 +00:00
|
|
|
src = fetchFromGitHub {
|
2022-12-19 21:02:48 +00:00
|
|
|
owner = "franciscolourenco";
|
2022-03-02 22:31:45 +00:00
|
|
|
repo = "done";
|
2022-12-19 21:02:48 +00:00
|
|
|
rev = "1.16.5";
|
|
|
|
sha256 = "sha256-E0wveeDw1VzEH2kzn63q9hy1xkccfxQHBV2gVpu2IdQ=";
|
2022-03-02 22:31:45 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2022-04-27 20:16:55 +00:00
|
|
|
# https://github.com/PatrickF1/fzf.fish/releases
|
2022-01-10 11:28:26 +00:00
|
|
|
{
|
|
|
|
name = "fzf-fish";
|
2023-04-10 17:24:05 +00:00
|
|
|
src = fetchFromGitHub {
|
2022-01-10 11:28:26 +00:00
|
|
|
owner = "PatrickF1";
|
|
|
|
repo = "fzf.fish";
|
2023-04-10 17:24:05 +00:00
|
|
|
rev = "v9.7";
|
2023-04-13 15:05:03 +00:00
|
|
|
sha256 = "sha256-haNSqXJzLL3JGvD4JrASVmhLJz6i9lna6/EdojXdFOo=";
|
2022-01-10 11:28:26 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2022-04-27 20:16:55 +00:00
|
|
|
# https://github.com/jorgebucaran/autopair.fish/releases
|
2022-01-10 11:28:26 +00:00
|
|
|
{
|
|
|
|
name = "autopair-fish";
|
2023-04-10 17:24:05 +00:00
|
|
|
src = fetchFromGitHub {
|
2022-01-10 11:28:26 +00:00
|
|
|
owner = "jorgebucaran";
|
|
|
|
repo = "autopair.fish";
|
2022-07-05 19:10:07 +00:00
|
|
|
rev = "1.0.4";
|
|
|
|
sha256 = "sha256-s1o188TlwpUQEN3X5MxUlD/2CFCpEkWu83U9O+wg3VU=";
|
2022-01-10 11:28:26 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2022-07-27 09:04:46 +00:00
|
|
|
# https://github.com/nickeb96/puffer-fish
|
|
|
|
{
|
|
|
|
name = "puffer-fish";
|
2023-04-10 17:24:05 +00:00
|
|
|
src = fetchFromGitHub {
|
2022-07-27 09:04:46 +00:00
|
|
|
owner = "nickeb96";
|
|
|
|
repo = "puffer-fish";
|
2023-04-10 17:24:05 +00:00
|
|
|
rev = "5d3cb25e0d63356c3342fb3101810799bb651b64";
|
|
|
|
hash = "sha256-aPxEHSXfiJJXosIm7b3Pd+yFnyz43W3GXyUB5BFAF54=";
|
2022-07-27 09:04:46 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2022-04-27 20:16:55 +00:00
|
|
|
# https://github.com/PatrickF1/colored_man_pages.fish
|
2022-01-10 11:28:26 +00:00
|
|
|
{
|
|
|
|
name = "colored_man_pages";
|
2023-04-10 17:24:05 +00:00
|
|
|
src = fetchFromGitHub {
|
2022-01-10 11:28:26 +00:00
|
|
|
owner = "PatrickF1";
|
|
|
|
repo = "colored_man_pages.fish";
|
2022-05-22 21:05:13 +00:00
|
|
|
rev = "f885c2507128b70d6c41b043070a8f399988bc7a";
|
|
|
|
sha256 = "sha256-ii9gdBPlC1/P1N9xJzqomrkyDqIdTg+iCg0mwNVq2EU=";
|
2022-01-10 11:28:26 +00:00
|
|
|
};
|
|
|
|
}
|
2021-12-06 22:35:29 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
shellAliases = {
|
2022-08-02 19:01:17 +00:00
|
|
|
nrsw = "nixpkgs-switch";
|
2022-02-16 08:36:08 +00:00
|
|
|
upa = "nix flake update ~/.config/nixpkgs -v && upn";
|
2022-07-29 18:13:31 +00:00
|
|
|
upn = "$HOME/.config/nixpkgs/home/programs/nvim/update-plugins.sh";
|
2022-02-16 08:36:08 +00:00
|
|
|
ngc = "nix-collect-garbage -d && sudo nix-collect-garbage -d";
|
|
|
|
nsr = "sudo nix-store --verify --check-contents --repair";
|
|
|
|
|
2021-12-06 22:35:29 +00:00
|
|
|
j = "z";
|
|
|
|
ji = "zi";
|
|
|
|
la = "exa --long --all --group --header --group-directories-first --sort=type --icons";
|
|
|
|
lg = "exa --long --all --group --header --git";
|
|
|
|
lt = "exa --long --all --group --header --tree --level ";
|
2021-12-12 18:19:28 +00:00
|
|
|
ytdl = "ytdl_with_options";
|
|
|
|
ytdl_mp4 = "ytdl_with_options -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]'";
|
|
|
|
yti = "ytdl_with_options -F";
|
2022-04-14 14:39:35 +00:00
|
|
|
|
|
|
|
mysqld-direnv-init = "mysql_install_db --user $USER --datadir=$PWD/.direnv/mysql/data --auth-root-authentication-method=normal";
|
|
|
|
mysqld-direnv = "mysqld --datadir=$PWD/.direnv/mysql/data --bind-address=127.0.0.1 --socket=$PWD/.direnv/mysql/mysqld.sock --gdb";
|
2022-05-31 13:46:57 +00:00
|
|
|
postgres-direnv-init = "initdb --username $USER --pgdata $PWD/.direnv/postgres/data --auth trust";
|
|
|
|
postgres-direnv = "postgres -D $PWD/.direnv/postgres/data";
|
2022-04-14 14:39:35 +00:00
|
|
|
redis-direnv = "redis-server --dir $PWD/.direnv/redis --bind 127.0.0.1";
|
2021-12-06 22:35:29 +00:00
|
|
|
};
|
|
|
|
|
2021-12-12 18:19:28 +00:00
|
|
|
functions = {
|
2022-08-20 19:10:55 +00:00
|
|
|
base64decode = ''
|
|
|
|
echo "$argv" | base64 --decode
|
|
|
|
'';
|
|
|
|
|
2022-06-29 15:39:37 +00:00
|
|
|
podman = ''
|
|
|
|
fish -c "set -e SSH_AUTH_SOCK; ${config.home.profileDirectory}/bin/podman $argv"
|
|
|
|
'';
|
|
|
|
|
2021-12-28 20:56:14 +00:00
|
|
|
upp = ''
|
2022-03-19 21:54:55 +00:00
|
|
|
if not test -f ./.envrc; or rg --quiet '^use flake$' ./.envrc
|
2021-12-28 20:56:14 +00:00
|
|
|
nix flake update ./ -v
|
|
|
|
else
|
2021-12-29 23:55:41 +00:00
|
|
|
nix flake update (rg --no-line-number --color never '^use flake' ./.envrc | cut -d ' ' -f 3 | xargs -I {} sh -c 'echo {}') -v
|
2021-12-28 20:56:14 +00:00
|
|
|
end
|
|
|
|
'';
|
|
|
|
|
2021-12-12 18:19:28 +00:00
|
|
|
wget-browser = ''
|
|
|
|
set user_agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15"
|
|
|
|
wget -U "$user_agent" $argv
|
|
|
|
'';
|
|
|
|
|
2021-12-29 23:55:41 +00:00
|
|
|
aria-browser = ''
|
|
|
|
set user_agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15"
|
|
|
|
aria2c -U "$user_agent" --file-allocation none -x 2 $argv
|
|
|
|
'';
|
|
|
|
|
2021-12-12 18:19:28 +00:00
|
|
|
ytdl_with_options = ''
|
2022-01-01 00:06:58 +00:00
|
|
|
yt-dlp --config-location "$HOME/.config/yt-dlp/config" --download-archive "$HOME/.config/yt-dlp/archive" $argv
|
2021-12-12 18:19:28 +00:00
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2021-12-06 22:35:29 +00:00
|
|
|
shellInit = ''
|
2021-12-27 20:24:11 +00:00
|
|
|
# Disable greeting
|
|
|
|
set fish_greeting
|
|
|
|
|
2022-01-05 09:52:59 +00:00
|
|
|
if test -d "$HOME/.bin"
|
|
|
|
set -gx PATH "$HOME/.bin" $PATH
|
2021-12-06 22:35:29 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
# Custom Scripts
|
|
|
|
if test -d "$HOME/.config/fish/custom-scripts"
|
|
|
|
for custom_script in $HOME/.config/fish/custom-scripts/*.fish
|
|
|
|
source "$custom_script"
|
|
|
|
end
|
|
|
|
end
|
2022-03-02 22:31:45 +00:00
|
|
|
|
|
|
|
# Plugin: done
|
|
|
|
set -g __done_min_cmd_duration 10000
|
2021-12-06 22:35:29 +00:00
|
|
|
'';
|
|
|
|
};
|
2022-12-20 16:56:47 +00:00
|
|
|
|
|
|
|
xdg.configFile."fish/conf.d" = {
|
|
|
|
source = ../config/fish;
|
|
|
|
recursive = true;
|
|
|
|
};
|
2021-12-06 22:35:29 +00:00
|
|
|
}
|