Dotfiles commit (try to keep under 50 characters)
Multi-line description of commit, feel free to be detailed. [Ticket: X] ~ ~ ".git/COMMIT_EDITMSG" 14L, 297C
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
# Deactivate the default virtualenv prompt so that we can add our own
|
||||
set --global --export VIRTUAL_ENV_DISABLE_PROMPT 1
|
||||
|
||||
# Whether or not is a fresh session
|
||||
set --global _pure_fresh_session true
|
||||
|
||||
set --global _pure_root (status current-filename | string replace --regex '/[^/]+$' '' | string replace --regex '/[^/]+$' '')
|
||||
|
||||
# Register `_pure_prompt_new_line` as an event handler for `fish_prompt`
|
||||
for fpath in $fish_function_path
|
||||
test -e $fpath/_pure_prompt_new_line.fish && source $fpath/_pure_prompt_new_line.fish
|
||||
end
|
||||
|
||||
function _pure \
|
||||
--description 'Display branding for pure prompt'
|
||||
|
||||
printf "%s %s" \
|
||||
(set_color $pure_color_warning)$pure_symbol_prompt$pure_symbol_reverse_prompt$pure_symbol_prompt \
|
||||
(set_color $pure_color_primary)"pure"(set_color normal)
|
||||
end
|
||||
|
||||
function _pure_install --on-event pure_install \
|
||||
--description 'Fisher handler when pure prompt is installed'
|
||||
|
||||
source $_pure_root/conf.d/pure.fish
|
||||
|
||||
printf "Now using: %s %s\n" \
|
||||
(_pure) \
|
||||
(set_color --bold $pure_color_success)$pure_version(set_color normal)
|
||||
end
|
||||
|
||||
# Fisher emit an event for all files under conf.d/.
|
||||
# We listen to the event when the new conf.d/_pure_init.fish is sourced,
|
||||
# to read old `pure_version` before sourcing conf.d/pure.fish happens.
|
||||
function _pure_update --on-event _pure_init_update \
|
||||
--description 'Fisher handler pure prompt is updated'
|
||||
|
||||
set --local previous_version $pure_version
|
||||
source $_pure_root/conf.d/pure.fish
|
||||
|
||||
printf "Updating: %s %s → %s\n\t%s\n" \
|
||||
(_pure) \
|
||||
(set_color $pure_color_info)$previous_version(set_color normal) \
|
||||
(set_color --bold $pure_color_success)$pure_version(set_color normal) \
|
||||
" 📖 release notes: "(set_color $pure_color_info)"https://github.com/pure-fish/pure/releases/tag/v$pure_version"(set_color normal)
|
||||
end
|
||||
|
||||
function _pure_uninstall --on-event pure_uninstall \
|
||||
--description 'Fisher handler pure prompt is uninstalled'
|
||||
|
||||
rm -f $_pure_root/conf.d/pure.fish
|
||||
|
||||
# erase existing fish_prompt and fish_title to default
|
||||
functions --erase fish_prompt
|
||||
functions --erase fish_title
|
||||
|
||||
# restore fish_prompt and fish_title to default
|
||||
# reload them into active session
|
||||
# To remain compatible with both single-binary fish and traditional installations
|
||||
# https://github.com/fish-shell/fish-shell/issues/11429#issuecomment-2834407208
|
||||
if status list-files functions/fish_prompt.fish >/dev/null # standalone binary Fish ≥4.1.2
|
||||
status get-file functions/fish_prompt.fish \
|
||||
| tee $__fish_config_dir/functions/fish_prompt.fish \
|
||||
| source
|
||||
status get-file functions/fish_title.fish \
|
||||
| tee $__fish_config_dir/functions/fish_title.fish \
|
||||
| source
|
||||
else # traditional installation
|
||||
cat $__fish_data_dir/functions/fish_prompt.fish \
|
||||
| tee $__fish_config_dir/functions/fish_prompt.fish \
|
||||
| source
|
||||
cat $__fish_data_dir/functions/fish_title.fish \
|
||||
| tee $__fish_config_dir/functions/fish_title.fish \
|
||||
| source
|
||||
end
|
||||
|
||||
# delete _pure* files
|
||||
for file in $_pure_root/{functions,conf.d}/_pure_*
|
||||
rm -f $file
|
||||
end
|
||||
|
||||
# erase _pure* variables
|
||||
set --names \
|
||||
| string replace --filter --regex '(^_?pure)' 'set --erase $1' \
|
||||
| source
|
||||
# erase _pure* functions
|
||||
functions --names --all \
|
||||
| string replace --filter --regex '(^_?pure)' 'functions --erase $1' \
|
||||
| source
|
||||
end
|
||||
@@ -0,0 +1,4 @@
|
||||
# alias.fish
|
||||
|
||||
set -x EDITOR nvim
|
||||
set -x VISUAL nvim
|
||||
@@ -0,0 +1,340 @@
|
||||
# MIT License
|
||||
|
||||
# Copyright (c) 2016 Francisco Lourenço & Daniel Wehner
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
|
||||
# The above copyright notice and this permission notice shall be included in all
|
||||
# copies or substantial portions of the Software.
|
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
if not status is-interactive
|
||||
exit
|
||||
end
|
||||
|
||||
set -g __done_version 1.19.1
|
||||
|
||||
function __done_run_powershell_script
|
||||
set -l powershell_exe (command --search "powershell.exe")
|
||||
|
||||
if test $status -ne 0
|
||||
and command --search wslvar
|
||||
|
||||
set -l powershell_exe (wslpath (wslvar windir)/System32/WindowsPowerShell/v1.0/powershell.exe)
|
||||
end
|
||||
|
||||
if string length --quiet "$powershell_exe"
|
||||
and test -x "$powershell_exe"
|
||||
|
||||
set cmd (string escape $argv)
|
||||
|
||||
eval "$powershell_exe -Command $cmd"
|
||||
end
|
||||
end
|
||||
|
||||
function __done_windows_notification -a title -a message
|
||||
if test "$__done_notify_sound" -eq 1
|
||||
set soundopt "<audio silent=\"false\" src=\"ms-winsoundevent:Notification.Default\" />"
|
||||
else
|
||||
set soundopt "<audio silent=\"true\" />"
|
||||
end
|
||||
|
||||
__done_run_powershell_script "
|
||||
[Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom.XmlDocument, ContentType = WindowsRuntime] | Out-Null
|
||||
[Windows.UI.Notifications.ToastNotification, Windows.UI.Notifications, ContentType = WindowsRuntime] | Out-Null
|
||||
|
||||
\$toast_xml_source = @\"
|
||||
<toast>
|
||||
$soundopt
|
||||
<visual>
|
||||
<binding template=\"ToastText02\">
|
||||
<text id=\"1\">$title</text>
|
||||
<text id=\"2\">$message</text>
|
||||
</binding>
|
||||
</visual>
|
||||
</toast>
|
||||
\"@
|
||||
|
||||
\$toast_xml = New-Object Windows.Data.Xml.Dom.XmlDocument
|
||||
\$toast_xml.loadXml(\$toast_xml_source)
|
||||
|
||||
\$toast = New-Object Windows.UI.Notifications.ToastNotification \$toast_xml
|
||||
|
||||
[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier(\"fish\").Show(\$toast)
|
||||
"
|
||||
end
|
||||
|
||||
function __done_get_focused_window_id
|
||||
if type -q lsappinfo
|
||||
lsappinfo info -only bundleID (lsappinfo front | string replace 'ASN:0x0-' '0x') | cut -d '"' -f4
|
||||
else if test -n "$SWAYSOCK"
|
||||
and type -q jq
|
||||
swaymsg --type get_tree | jq '.. | objects | select(.focused == true) | .id'
|
||||
else if test -n "$HYPRLAND_INSTANCE_SIGNATURE"
|
||||
hyprctl activewindow | awk '/^\tpid: / {print $2}'
|
||||
else if begin
|
||||
test "$XDG_SESSION_DESKTOP" = gnome; and type -q gdbus
|
||||
end
|
||||
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval 'global.display.focus_window.get_id()'
|
||||
else if type -q xprop
|
||||
and test -n "$DISPLAY"
|
||||
# Test that the X server at $DISPLAY is running
|
||||
and xprop -grammar >/dev/null 2>&1
|
||||
xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2
|
||||
else if uname -a | string match --quiet --ignore-case --regex microsoft
|
||||
__done_run_powershell_script '
|
||||
Add-Type @"
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
public class WindowsCompat {
|
||||
[DllImport("user32.dll")]
|
||||
public static extern IntPtr GetForegroundWindow();
|
||||
}
|
||||
"@
|
||||
[WindowsCompat]::GetForegroundWindow()
|
||||
'
|
||||
else if set -q __done_allow_nongraphical
|
||||
echo 12345 # dummy value
|
||||
end
|
||||
end
|
||||
|
||||
function __done_is_tmux_window_active
|
||||
set -q fish_pid; or set -l fish_pid %self
|
||||
|
||||
# find the outermost process within tmux
|
||||
# ppid != "tmux" -> pid = ppid
|
||||
# ppid == "tmux" -> break
|
||||
set tmux_fish_pid $fish_pid
|
||||
while set tmux_fish_ppid (ps -o ppid= -p $tmux_fish_pid | string trim)
|
||||
# remove leading hyphen so that basename does not treat it as an argument (e.g. -fish), and return only
|
||||
# the actual command and not its arguments so that basename finds the correct command name.
|
||||
# (e.g. '/usr/bin/tmux' from command '/usr/bin/tmux new-session -c /some/start/dir')
|
||||
and ! string match -q "tmux*" (basename (ps -o command= -p $tmux_fish_ppid | string replace -r '^-' '' | string split ' ')[1])
|
||||
set tmux_fish_pid $tmux_fish_ppid
|
||||
end
|
||||
|
||||
# tmux session attached and window is active -> no notification
|
||||
# all other combinations -> send notification
|
||||
tmux list-panes -a -F "#{session_attached} #{window_active} #{pane_pid}" | string match -q "1 1 $tmux_fish_pid"
|
||||
end
|
||||
|
||||
function __done_is_screen_window_active
|
||||
string match --quiet --regex "$STY\s+\(Attached" (screen -ls)
|
||||
end
|
||||
|
||||
function __done_is_process_window_focused
|
||||
# Return false if the window is not focused
|
||||
|
||||
if set -q __done_allow_nongraphical
|
||||
return 1
|
||||
end
|
||||
|
||||
if set -q __done_kitty_remote_control
|
||||
kitty @ --password="$__done_kitty_remote_control_password" ls | jq -e ".[].tabs[] | select(any(.windows[]; .is_self)) | .is_focused" >/dev/null
|
||||
return $status
|
||||
end
|
||||
|
||||
set __done_focused_window_id (__done_get_focused_window_id)
|
||||
if test "$__done_sway_ignore_visible" -eq 1
|
||||
and test -n "$SWAYSOCK"
|
||||
string match --quiet --regex "^true" (swaymsg -t get_tree | jq ".. | objects | select(.id == "$__done_initial_window_id") | .visible")
|
||||
return $status
|
||||
else if test -n "$HYPRLAND_INSTANCE_SIGNATURE"
|
||||
set window_pid (hyprctl activewindow | awk '/^\tpid: / {print $2}')
|
||||
if test -n "$window_pid"
|
||||
and test $__done_initial_window_id -eq $window_pid
|
||||
return $status
|
||||
else
|
||||
return 1
|
||||
end
|
||||
else if test "$__done_initial_window_id" != "$__done_focused_window_id"
|
||||
return 1
|
||||
end
|
||||
# If inside a tmux session, check if the tmux window is focused
|
||||
if type -q tmux
|
||||
and test -n "$TMUX"
|
||||
__done_is_tmux_window_active
|
||||
return $status
|
||||
end
|
||||
|
||||
# If inside a screen session, check if the screen window is focused
|
||||
if type -q screen
|
||||
and test -n "$STY"
|
||||
__done_is_screen_window_active
|
||||
return $status
|
||||
end
|
||||
|
||||
return 0
|
||||
end
|
||||
|
||||
function __done_humanize_duration -a milliseconds
|
||||
set -l seconds (math --scale=0 "$milliseconds/1000" % 60)
|
||||
set -l minutes (math --scale=0 "$milliseconds/60000" % 60)
|
||||
set -l hours (math --scale=0 "$milliseconds/3600000")
|
||||
|
||||
if test $hours -gt 0
|
||||
printf '%s' $hours'h '
|
||||
end
|
||||
if test $minutes -gt 0
|
||||
printf '%s' $minutes'm '
|
||||
end
|
||||
if test $seconds -gt 0
|
||||
printf '%s' $seconds's'
|
||||
end
|
||||
end
|
||||
|
||||
# verify that the system has graphical capabilities before initializing
|
||||
if test -z "$SSH_CLIENT" # not over ssh
|
||||
and count (__done_get_focused_window_id) >/dev/null # is able to get window id
|
||||
set __done_enabled
|
||||
end
|
||||
|
||||
if set -q __done_allow_nongraphical
|
||||
and set -q __done_notification_command
|
||||
set __done_enabled
|
||||
end
|
||||
|
||||
if set -q __done_enabled
|
||||
set -g __done_initial_window_id ''
|
||||
set -q __done_min_cmd_duration; or set -g __done_min_cmd_duration 5000
|
||||
set -q __done_exclude; or set -g __done_exclude '^git (?!push|pull|fetch)'
|
||||
set -q __done_notify_sound; or set -g __done_notify_sound 0
|
||||
set -q __done_sway_ignore_visible; or set -g __done_sway_ignore_visible 0
|
||||
set -q __done_tmux_pane_format; or set -g __done_tmux_pane_format '[#{window_index}]'
|
||||
set -q __done_notification_duration; or set -g __done_notification_duration 3000
|
||||
|
||||
function __done_started --on-event fish_preexec
|
||||
set __done_initial_window_id (__done_get_focused_window_id)
|
||||
end
|
||||
|
||||
function __done_ended --on-event fish_postexec
|
||||
set -l exit_status $status
|
||||
|
||||
# backwards compatibility for fish < v3.0
|
||||
set -q cmd_duration; or set -l cmd_duration $CMD_DURATION
|
||||
|
||||
if test $cmd_duration
|
||||
and test $cmd_duration -gt $__done_min_cmd_duration # longer than notify_duration
|
||||
and not __done_is_process_window_focused # process pane or window not focused
|
||||
|
||||
# don't notify if command matches exclude list
|
||||
for pattern in $__done_exclude
|
||||
if string match -qr $pattern $argv[1]
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
# Store duration of last command
|
||||
set -l humanized_duration (__done_humanize_duration "$cmd_duration")
|
||||
|
||||
set -l title "Done in $humanized_duration"
|
||||
set -l wd (string replace --regex "^$HOME" "~" (pwd))
|
||||
set -l message "$wd/ $argv[1]"
|
||||
set -l sender $__done_initial_window_id
|
||||
|
||||
if test $exit_status -ne 0
|
||||
set title "Failed ($exit_status) after $humanized_duration"
|
||||
end
|
||||
|
||||
if test -n "$TMUX_PANE"
|
||||
set message (tmux lsw -F"$__done_tmux_pane_format" -f '#{==:#{pane_id},'$TMUX_PANE'}')" $message"
|
||||
end
|
||||
|
||||
if set -q __done_notification_command
|
||||
eval $__done_notification_command
|
||||
if test "$__done_notify_sound" -eq 1
|
||||
echo -e "\a" # bell sound
|
||||
end
|
||||
else if set -q KITTY_WINDOW_ID
|
||||
printf "\x1b]99;i=done:d=0;$title\x1b\\"
|
||||
printf "\x1b]99;i=done:d=1:p=body;$message\x1b\\"
|
||||
else if type -q terminal-notifier # https://github.com/julienXX/terminal-notifier
|
||||
if test "$__done_notify_sound" -eq 1
|
||||
# pipe message into terminal-notifier to avoid escaping issues (https://github.com/julienXX/terminal-notifier/issues/134). fixes #140
|
||||
echo "$message" | terminal-notifier -title "$title" -sender "$__done_initial_window_id" -sound default
|
||||
else
|
||||
echo "$message" | terminal-notifier -title "$title" -sender "$__done_initial_window_id"
|
||||
end
|
||||
|
||||
else if type -q osascript # AppleScript
|
||||
# escape double quotes that might exist in the message and break osascript. fixes #133
|
||||
set -l message (string replace --all '"' '\"' "$message")
|
||||
set -l title (string replace --all '"' '\"' "$title")
|
||||
|
||||
osascript -e "display notification \"$message\" with title \"$title\""
|
||||
if test "$__done_notify_sound" -eq 1
|
||||
osascript -e "display notification \"$message\" with title \"$title\" sound name \"Glass\""
|
||||
else
|
||||
osascript -e "display notification \"$message\" with title \"$title\""
|
||||
end
|
||||
|
||||
else if type -q notify-send # Linux notify-send
|
||||
# set urgency to normal
|
||||
set -l urgency normal
|
||||
|
||||
# use user-defined urgency if set
|
||||
if set -q __done_notification_urgency_level
|
||||
set urgency "$__done_notification_urgency_level"
|
||||
end
|
||||
# override user-defined urgency level if non-zero exitstatus
|
||||
if test $exit_status -ne 0
|
||||
set urgency critical
|
||||
if set -q __done_notification_urgency_level_failure
|
||||
set urgency "$__done_notification_urgency_level_failure"
|
||||
end
|
||||
end
|
||||
|
||||
notify-send --hint=int:transient:1 --urgency=$urgency --icon=utilities-terminal --app-name=fish --expire-time=$__done_notification_duration "$title" "$message"
|
||||
|
||||
if test "$__done_notify_sound" -eq 1
|
||||
echo -e "\a" # bell sound
|
||||
end
|
||||
|
||||
else if type -q notify-desktop # Linux notify-desktop
|
||||
set -l urgency
|
||||
if test $exit_status -ne 0
|
||||
set urgency "--urgency=critical"
|
||||
end
|
||||
notify-desktop $urgency --icon=utilities-terminal --app-name=fish "$title" "$message"
|
||||
if test "$__done_notify_sound" -eq 1
|
||||
echo -e "\a" # bell sound
|
||||
end
|
||||
|
||||
else if uname -a | string match --quiet --ignore-case --regex microsoft
|
||||
__done_windows_notification "$title" "$message"
|
||||
|
||||
else # anything else
|
||||
echo -e "\a" # bell sound
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function __done_uninstall -e done_uninstall
|
||||
# Erase all __done_* functions
|
||||
functions -e __done_ended
|
||||
functions -e __done_started
|
||||
functions -e __done_get_focused_window_id
|
||||
functions -e __done_is_tmux_window_active
|
||||
functions -e __done_is_screen_window_active
|
||||
functions -e __done_is_process_window_focused
|
||||
functions -e __done_windows_notification
|
||||
functions -e __done_run_powershell_script
|
||||
functions -e __done_humanize_duration
|
||||
|
||||
# Erase __done variables
|
||||
set -e __done_version
|
||||
end
|
||||
@@ -0,0 +1,124 @@
|
||||
set --global pure_version 4.18.0 # For bug report and tag-after-merge workflow
|
||||
|
||||
# Base colors
|
||||
_pure_set_default pure_color_primary blue
|
||||
_pure_set_default pure_color_info cyan
|
||||
_pure_set_default pure_color_mute brblack
|
||||
_pure_set_default pure_color_success magenta
|
||||
_pure_set_default pure_color_normal normal
|
||||
_pure_set_default pure_color_danger red
|
||||
_pure_set_default pure_color_light white
|
||||
_pure_set_default pure_color_warning yellow
|
||||
_pure_set_default pure_color_dark black
|
||||
|
||||
# Prompt
|
||||
_pure_set_default pure_symbol_prompt "❯"
|
||||
_pure_set_default pure_symbol_reverse_prompt "❮" # used for VI mode
|
||||
_pure_set_default pure_color_prompt_on_error pure_color_danger
|
||||
_pure_set_default pure_color_prompt_on_success pure_color_success
|
||||
|
||||
# Current Working Directory
|
||||
_pure_set_default pure_color_current_directory pure_color_primary
|
||||
_pure_set_default pure_shorten_prompt_current_directory_length 0
|
||||
_pure_set_default pure_truncate_prompt_current_directory_keeps -1
|
||||
|
||||
# Git
|
||||
_pure_set_default pure_enable_git true
|
||||
_pure_set_default pure_symbol_git_unpulled_commits "⇣"
|
||||
_pure_set_default pure_symbol_git_unpushed_commits "⇡"
|
||||
_pure_set_default pure_symbol_git_dirty "*"
|
||||
_pure_set_default pure_symbol_git_stash "≡"
|
||||
_pure_set_default pure_color_git_unpulled_commits pure_color_info
|
||||
_pure_set_default pure_color_git_unpushed_commits pure_color_info
|
||||
_pure_set_default pure_color_git_branch pure_color_mute
|
||||
_pure_set_default pure_color_git_dirty pure_color_mute
|
||||
_pure_set_default pure_color_git_stash pure_color_info
|
||||
_pure_set_default pure_show_numbered_git_indicator false
|
||||
|
||||
# Remote info (user@hostname) for SSH and containers (Docker/LXC)
|
||||
_pure_set_default pure_color_hostname pure_color_mute
|
||||
_pure_set_default pure_color_at_sign pure_color_mute
|
||||
_pure_set_default pure_color_username_normal pure_color_mute
|
||||
_pure_set_default pure_color_username_root pure_color_light
|
||||
|
||||
# Number of running jobs
|
||||
_pure_set_default pure_show_jobs false
|
||||
_pure_set_default pure_color_jobs pure_color_normal
|
||||
|
||||
# Show system time
|
||||
_pure_set_default pure_show_system_time false
|
||||
_pure_set_default pure_system_time_format '+%T' # 12 hour time: '+%I:%M:%S %p'
|
||||
_pure_set_default pure_color_system_time pure_color_mute
|
||||
|
||||
# Nix build environment
|
||||
_pure_set_default pure_enable_nixdevshell false
|
||||
_pure_set_default pure_symbol_nixdevshell_prefix "❄️" # otherwise nerdfonts: '' or ''
|
||||
_pure_set_default pure_color_nixdevshell_prefix pure_color_info
|
||||
_pure_set_default pure_color_nixdevshell_symbol pure_color_mute
|
||||
|
||||
# env for Python
|
||||
_pure_set_default pure_enable_virtualenv true
|
||||
_pure_set_default pure_symbol_virtualenv_prefix "" # 🐍
|
||||
_pure_set_default pure_color_virtualenv pure_color_mute
|
||||
|
||||
# AWS profile name
|
||||
_pure_set_default pure_enable_aws_profile true
|
||||
_pure_set_default pure_symbol_aws_profile_prefix "" # ☁️
|
||||
_pure_set_default pure_color_aws_profile pure_color_warning
|
||||
|
||||
# Print current working directory at the beginning of prompt
|
||||
# true (default): current directory, git, user@hostname (ssh-only), command duration
|
||||
# false: user@hostname (ssh-only), current directory, git, command duration
|
||||
_pure_set_default pure_begin_prompt_with_current_directory true
|
||||
|
||||
# Show exit code of last command as a separate prompt character (cf. https://github.com/sindresorhus/pure/wiki/Customizations,-hacks-and-tweaks#show-exit-code-of-last-command-as-a-separate-prompt-character)
|
||||
# false - single prompt character, default
|
||||
# true - separate prompt character
|
||||
_pure_set_default pure_separate_prompt_on_error false
|
||||
|
||||
# Prefix the prompt with a list of exit statuses ($pipestatus) if at least one is non-zero
|
||||
_pure_set_default pure_show_exit_status false
|
||||
_pure_set_default pure_convert_exit_status_to_signal false
|
||||
_pure_set_default pure_symbol_exit_status_prefix "|"
|
||||
_pure_set_default pure_symbol_exit_status_separator "|"
|
||||
_pure_set_default pure_color_exit_status pure_color_danger
|
||||
|
||||
# Max execution time of a process before its run time is shown when it exits
|
||||
_pure_set_default pure_threshold_command_duration 5
|
||||
_pure_set_default pure_show_subsecond_command_duration false
|
||||
_pure_set_default pure_color_command_duration pure_color_warning
|
||||
|
||||
# VI mode indicator
|
||||
# true (default): indicate a non-insert mode by reversing the prompt symbol (❮)
|
||||
# false: indicate vi mode with [I], [N], [V]
|
||||
_pure_set_default pure_reverse_prompt_symbol_in_vimode true
|
||||
|
||||
# Title
|
||||
_pure_set_default pure_symbol_title_bar_separator -
|
||||
_pure_set_default pure_shorten_window_title_current_directory_length 0
|
||||
_pure_set_default pure_truncate_window_title_current_directory_keeps -1
|
||||
|
||||
# Check for new release on startup
|
||||
_pure_set_default pure_check_for_new_release false
|
||||
|
||||
# Prefix prompt when logged in as root
|
||||
_pure_set_default pure_show_prefix_root_prompt false
|
||||
_pure_set_default pure_symbol_prefix_root_prompt "#"
|
||||
_pure_set_default pure_color_prefix_root_prompt pure_color_danger
|
||||
|
||||
# Compact mode
|
||||
_pure_set_default pure_enable_single_line_prompt false
|
||||
|
||||
# Detect when running in container (e.g. docker, podman, LXC/LXD)
|
||||
_pure_set_default pure_enable_container_detection true
|
||||
_pure_set_default pure_symbol_container_prefix "" # suggestion: '🐋' or '📦'
|
||||
|
||||
# Detect when running in SSH
|
||||
_pure_set_default pure_symbol_ssh_prefix "" # suggestion: 'ssh:/' or '🔗🔐🔒🌐'
|
||||
|
||||
# Display Kubernetes/k8s context and namespace
|
||||
_pure_set_default pure_enable_k8s false
|
||||
_pure_set_default pure_symbol_k8s_prefix "☸" # ☸️
|
||||
_pure_set_default pure_color_k8s_prefix pure_color_info
|
||||
_pure_set_default pure_color_k8s_context pure_color_success
|
||||
_pure_set_default pure_color_k8s_namespace pure_color_primary
|
||||
Reference in New Issue
Block a user