2024-07-04 01:14:24 +02:00
|
|
|
{ pkgs, ... }:
|
2024-06-13 15:38:40 +02:00
|
|
|
{
|
2024-07-04 01:14:24 +02:00
|
|
|
environment.systemPackages = [ pkgs.fish ];
|
|
|
|
programs.fish.enable = true;
|
|
|
|
users.users.krizej.shell = pkgs.fish;
|
2024-06-13 15:38:40 +02:00
|
|
|
|
2024-07-04 01:14:24 +02:00
|
|
|
programs.fish.promptInit = ''
|
|
|
|
${pkgs.any-nix-shell}/bin/any-nix-shell fish --info-right | source
|
|
|
|
'';
|
|
|
|
|
|
|
|
home-manager.users.krizej.programs.fish = {
|
|
|
|
enable = true;
|
|
|
|
|
|
|
|
shellAliases = {
|
|
|
|
"ls" = "eza -lhs type";
|
|
|
|
"cp" = "cp -v";
|
|
|
|
"mv" = "mv -v";
|
|
|
|
"ytmp3" = "yt-dlp -o '%(title)s.%(ext)s' -x --audio-format mp3";
|
|
|
|
"myip" = "curl ifconfig.me";
|
|
|
|
};
|
|
|
|
|
|
|
|
shellAbbrs = {
|
|
|
|
"2clip" = "xclip -selection clipboard";
|
|
|
|
};
|
|
|
|
|
|
|
|
functions = {
|
|
|
|
"fish_greeting" = "fortune";
|
|
|
|
"fish_prompt" = ''
|
|
|
|
# name: Informative Vcs
|
|
|
|
# author: Mariusz Smykula <mariuszs at gmail.com>
|
|
|
|
|
|
|
|
# function fish_prompt --description 'Write out the prompt'
|
|
|
|
set -l last_pipestatus $pipestatus
|
|
|
|
set -lx __fish_last_status $status # Export for __fish_print_pipestatus.
|
|
|
|
|
|
|
|
if not set -q __fish_git_prompt_show_informative_status
|
|
|
|
set -g __fish_git_prompt_show_informative_status 1
|
|
|
|
end
|
|
|
|
if not set -q __fish_git_prompt_hide_untrackedfiles
|
|
|
|
set -g __fish_git_prompt_hide_untrackedfiles 1
|
|
|
|
end
|
|
|
|
if not set -q __fish_git_prompt_color_branch
|
|
|
|
set -g __fish_git_prompt_color_branch magenta --bold
|
|
|
|
end
|
|
|
|
if not set -q __fish_git_prompt_showupstream
|
|
|
|
set -g __fish_git_prompt_showupstream informative
|
|
|
|
end
|
|
|
|
if not set -q __fish_git_prompt_color_dirtystate
|
|
|
|
set -g __fish_git_prompt_color_dirtystate blue
|
|
|
|
end
|
|
|
|
if not set -q __fish_git_prompt_color_stagedstate
|
|
|
|
set -g __fish_git_prompt_color_stagedstate yellow
|
|
|
|
end
|
|
|
|
if not set -q __fish_git_prompt_color_invalidstate
|
|
|
|
set -g __fish_git_prompt_color_invalidstate red
|
|
|
|
end
|
|
|
|
if not set -q __fish_git_prompt_color_untrackedfiles
|
|
|
|
set -g __fish_git_prompt_color_untrackedfiles $fish_color_normal
|
|
|
|
end
|
|
|
|
if not set -q __fish_git_prompt_color_cleanstate
|
|
|
|
set -g __fish_git_prompt_color_cleanstate green --bold
|
|
|
|
end
|
|
|
|
|
|
|
|
set -l color_cwd
|
|
|
|
set -l suffix
|
|
|
|
if functions -q fish_is_root_user; and fish_is_root_user
|
|
|
|
if set -q fish_color_cwd_root
|
|
|
|
set color_cwd $fish_color_cwd_root
|
|
|
|
else
|
|
|
|
set color_cwd $fish_color_cwd
|
|
|
|
end
|
|
|
|
set suffix '#'
|
|
|
|
else
|
|
|
|
set color_cwd $fish_color_cwd
|
|
|
|
set suffix '$'
|
|
|
|
end
|
|
|
|
|
|
|
|
# PWD
|
|
|
|
set_color $color_cwd
|
|
|
|
echo -n (prompt_pwd)
|
|
|
|
set_color normal
|
|
|
|
|
|
|
|
printf '%s ' (fish_vcs_prompt)
|
|
|
|
|
|
|
|
set -l status_color (set_color $fish_color_status)
|
|
|
|
set -l statusb_color (set_color --bold $fish_color_status)
|
|
|
|
set -l prompt_status (__fish_print_pipestatus "[" "]" "|" "$status_color" "$statusb_color" $last_pipestatus)
|
|
|
|
echo -n $prompt_status
|
|
|
|
set_color normal
|
2024-06-18 01:04:32 +02:00
|
|
|
|
2024-07-04 01:14:24 +02:00
|
|
|
echo -n "$suffix "
|
|
|
|
# end
|
|
|
|
'';
|
|
|
|
};
|
2024-06-13 15:38:40 +02:00
|
|
|
};
|
|
|
|
}
|