1
0

feat: initial commit; NixOS Era

This commit is contained in:
2025-11-20 22:13:05 +01:00
commit 8d0bddf680
46 changed files with 2044 additions and 0 deletions

76
pkgs/fish/prompt.fish Normal file
View File

@@ -0,0 +1,76 @@
function fish_mode_prompt; end
function fish_prompt
set -l command_status $status;
set -l duration '';
begin
[ $CMD_DURATION -gt 700 ]; and set -l seconds \
"$(round -p 2 (math $CMD_DURATION / 1000 % 60))s";
[ $CMD_DURATION -gt 60000 ]; and set -l minutes \
"$(round (math $CMD_DURATION / 60000))m";
[ $CMD_DURATION -gt 700 ]; and set duration (string join '' -- \
(set_color normal) \
'took ' \
(set_color yellow) \
(string join ' ' -- $minutes $seconds) \
);
end
set -l mode
begin
function color_and_wrap -a color char
string join '' -- (set_color --bold $color) "[$char]"
functions -e color_and_wrap
end
set -l indicator \
(switch $fish_bind_mode
case default; color_and_wrap red 'N'
case insert; color_and_wrap cyan 'I'
case replace_one; color_and_wrap green 'R'
case visual; color_and_wrap brmagenta 'V'
case '*'; color_and_wrap red '?'
end)
set mode (string join '' -- $indicator (set_color normal) ' ')
end
set -l nix_shell
begin
set -l packages (string split ' ' -- $FISH_NIX_PACKAGES)
if [ -n "$IN_NIX_SHELL" ]
set nix_shell "$(set_color brblue) "
set -ql packages[1]; and set nix_shell "$nix_shell($packages[1]";
set -ql packages[2]; and set nix_shell "$nix_shell, $packages[2]";
set -ql packages[3]; and not set -ql packages[4]; and set nix_shell "$nix_shell, $packages[3]";
set -ql packages[4]; and set nix_shell "$nix_shell, +$(math (count $packages) - 2) more"
set -ql packages[1]; set nix_shell "$nix_shell) "
end
end
set -l cursor_color (set_color green)
[ $command_status -ne 0 ]; and set -l cursor_color (set_color red)
set -l pwd (string join '' -- \
$cursor_color \
(prompt_pwd -D 2 -d 1) \
(set_color normal) \
);
[ (fish_vcs_prompt) ]; and set -l git (string join '' -- \
(set_color yellow) \
' 󰘬 ' \
(string sub -s 3 -e -1 -- (fish_vcs_prompt)) \
' ' \
);
[ $command_status -ne 0 ]; and set -l last_status "[$command_status]";
[ -n $duration ]; and echo $duration
string join '' -- $mode $nix_shell $pwd $git $cursor_color $last_status '|> '
end