mirror of
https://github.com/gaschz/dotfiles.git
synced 2025-11-04 21:49:01 +01:00
feat: support truecolor
- Standardize capability usage with the terminfo database for portability. POSIX tput does declare only the basic options such as 'init', 'reset' and 'clear', leaving the rest unspecified, that is not ideal but hard coding escape sequences is way worse. - Set colorization options based on number of colors the terminal supports and not the TERM variable when possible. This is incomplete, terminal emulators may support or adapt more than it is advertised, but involves using DECRQSS queries and delays, as an example, 'resize' utility from XTerm uses 3 seconds as delay, this is worrisome. - Term with only '-direct' variants without ending with 256 means it only supports direct-color indexing, therefore 'tmux-direct' cannot be used, but the non-multiplexer terminal 'xterm-direct256' can.
This commit is contained in:
parent
0bae3d94b2
commit
45a0acb222
@ -19,6 +19,7 @@ if ! command -v sensors >/dev/null; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
redraw(){
|
redraw(){
|
||||||
|
# shellcheck disable=SC2312
|
||||||
stty size </dev/null 2>&1 >&2 | read -r LINES COLUMNS
|
stty size </dev/null 2>&1 >&2 | read -r LINES COLUMNS
|
||||||
tput ed home
|
tput ed home
|
||||||
}
|
}
|
||||||
@ -44,7 +45,7 @@ get_header(){
|
|||||||
if test "${sensors}" != "0"; then
|
if test "${sensors}" != "0"; then
|
||||||
sensors | grep -E -e "^(fan[1-9]+|[C|G]PU|temp[1-9]+):" |
|
sensors | grep -E -e "^(fan[1-9]+|[C|G]PU|temp[1-9]+):" |
|
||||||
grep -v -e "0 RPM" -e "+0\.0.C" |
|
grep -v -e "0 RPM" -e "+0\.0.C" |
|
||||||
tr -s "\t" " " | tr "\n" "\t" | sed "s/\s\+$/\n/"
|
tr -s "\t" " " | tr "\n" "\t" | sed "s/\s\+$/\n/" || true
|
||||||
fi
|
fi
|
||||||
printf '%s%-40s %-6s %6s %8s%s\n' "${bold}" 'Qube' 'State' 'CPU(%)' \
|
printf '%s%-40s %-6s %6s %8s%s\n' "${bold}" 'Qube' 'State' 'CPU(%)' \
|
||||||
'MEM(MiB)' "${nobold}"
|
'MEM(MiB)' "${nobold}"
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
##
|
##
|
||||||
## SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
## SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
##
|
##
|
||||||
## SPDX-License-Identifier: AGPL-3.0-or-later
|
## SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
##
|
##
|
||||||
@ -28,14 +28,14 @@ test -f ./setup.sh ||
|
|||||||
|
|
||||||
if test "${qube}" = "dom0"; then
|
if test "${qube}" = "dom0"; then
|
||||||
sh ./dotfiles/setup.sh
|
sh ./dotfiles/setup.sh
|
||||||
user_name="$(getent group qubes | awk -F "[:,]" '{print $4}')"
|
user="$(getent group qubes | awk -F "[:,]" '{print $4}')"
|
||||||
user_home="$(getent passwd "${user_name}" | awk -F ":" '{print $6}')"
|
home="$(getent passwd "${user}" | awk -F ":" '{print $6}')"
|
||||||
sudo -u "${user_name}" mkdir -pv -- "${user_home}/.cache"
|
sudo -u "${user}" mkdir -pv -- "${home}/.cache"
|
||||||
tmpdir="$(sudo -u "${user_name}" -- mktemp -d -- "${user_home}/.cache/XXXXXX")"
|
tmpdir="$(sudo -u "${user}" -- mktemp -d -- "${home}/.cache/XXXXXX")"
|
||||||
trap 'rm -rf -- "${tmpdir}"' EXIT INT HUP QUIT ABRT
|
trap 'rm -rf -- "${tmpdir}"' EXIT INT HUP QUIT ABRT
|
||||||
cp -r -- ./dotfiles "${tmpdir}"
|
cp -r -- ./dotfiles "${tmpdir}"
|
||||||
chown -R -- "${user_name}:${user_name}" "${tmpdir}"
|
chown -R -- "${user}:${user}" "${tmpdir}"
|
||||||
sudo -u "${user_name}" -- "${tmpdir}/dotfiles/setup.sh"
|
sudo -u "${user}" -- "${tmpdir}/dotfiles/setup.sh"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
## SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
## SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
##
|
##
|
||||||
## SPDX-License-Identifier: AGPL-3.0-or-later
|
## SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
@ -60,15 +60,17 @@ _reset_line() {
|
|||||||
## On pending input, assume it's been echoed and we're not in first column.
|
## On pending input, assume it's been echoed and we're not in first column.
|
||||||
## Otherwise ask the terminal for current column and read it from input.
|
## Otherwise ask the terminal for current column and read it from input.
|
||||||
if read -t 0 || {
|
if read -t 0 || {
|
||||||
IFS='[;' read -s -r -d'R' -p$'\033[6n' _ _ cur_y && [[ ${cur_y} != 1 ]]
|
# shellcheck disable=SC2154
|
||||||
|
IFS='[;' read -s -r -d'R' -p "${_t_u7}" _ _ cur_y && [[ ${cur_y} != 1 ]]
|
||||||
}
|
}
|
||||||
then
|
then
|
||||||
unset cur_y
|
unset cur_y
|
||||||
## Print line ending char with reversed video and end with newline.
|
## Print line ending char with reversed video and end with newline.
|
||||||
if test "${color_prompt-}" = "yes"; then
|
if test "${color_prompt-}" = "yes"; then
|
||||||
printf '%b' "\033[41m\033[0m\033[7m%\033[0m\n\r"
|
# shellcheck disable=SC2154
|
||||||
|
printf '%s\n\r' "${_t_sgr0}${_t_rev}%${_t_sgr0}"
|
||||||
else
|
else
|
||||||
printf '%b' "%\n\r"
|
printf '%s\n\r' "%"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -76,9 +78,11 @@ _reset_line() {
|
|||||||
_print_ec(){
|
_print_ec(){
|
||||||
test "${_ec_ps1}" = "0" && return
|
test "${_ec_ps1}" = "0" && return
|
||||||
if test "${color_prompt:-}" = "yes"; then
|
if test "${color_prompt:-}" = "yes"; then
|
||||||
printf '%b%s%b' "(\001\033[31m\002" "${_ec_ps1}" "\001\033[0m\002)"
|
# shellcheck disable=SC2154
|
||||||
|
printf '(\001%s\002%s\001%s\002)' "${_t_setaf_1}" "${_ec_ps1}" \
|
||||||
|
"${_t_sgr0}"
|
||||||
else
|
else
|
||||||
printf '%s' "(${_ec_ps1})"
|
printf '(%s)' "${_ec_ps1}"
|
||||||
fi
|
fi
|
||||||
unset _ec_ps1
|
unset _ec_ps1
|
||||||
}
|
}
|
||||||
@ -90,10 +94,10 @@ newline=$'\n'
|
|||||||
# shellcheck disable=SC2154
|
# shellcheck disable=SC2154
|
||||||
if test "${color_prompt:-}" = "yes"; then
|
if test "${color_prompt:-}" = "yes"; then
|
||||||
# shellcheck disable=SC2154
|
# shellcheck disable=SC2154
|
||||||
PS1="\$(_reset_line)\$(resize-terminal)\[\033[35m\][\[${reset_color}\]"
|
PS1="\$(_reset_line)\$(resize-terminal)\[${_t_setaf_5}\][\[${_t_sgr0}\]"
|
||||||
PS1="${PS1}${debian_chroot:+(${debian_chroot})}\[${usercolor}\]\u@\h "
|
PS1="${PS1}${debian_chroot:+(${debian_chroot})}\[${usercolor}\]\u@\h "
|
||||||
PS1="${PS1}\[${dircolor}\]\w\[${reset_color}\]\$(_git_prompt_info)"
|
PS1="${PS1}\[${dircolor}\]\w\[${_t_sgr0}\]\$(_git_prompt_info)"
|
||||||
PS1="${PS1}\[\033[35m\]]\[${reset_color}\]${newline-}\$(_print_ec)"
|
PS1="${PS1}\[${_t_setaf_5}\]]\[${_t_sgr0}\]${newline-}\$(_print_ec)"
|
||||||
PS1="${PS1}${ps1_symbol} "
|
PS1="${PS1}${ps1_symbol} "
|
||||||
else
|
else
|
||||||
PS1="\$(_reset_line)\$(resize-terminal)"
|
PS1="\$(_reset_line)\$(resize-terminal)"
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
## SPDX-FileCopyrightText: 2004 - 2022 Tim Pope <https://tpo.pe>
|
## SPDX-FileCopyrightText: 2004 - 2022 Tim Pope <https://tpo.pe>
|
||||||
## SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
## SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
##
|
##
|
||||||
## SPDX-License-Identifier: AGPL-3.0-or-later
|
## SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
@ -157,27 +157,196 @@ fi
|
|||||||
## }}}
|
## }}}
|
||||||
## }}}
|
## }}}
|
||||||
## {{{ Prompt
|
## {{{ Prompt
|
||||||
## Set ability to color terminal.
|
# shellcheck disable=SC2034
|
||||||
# shellcheck disable=2034
|
_get_term_cap(){
|
||||||
case "${TERM-}" in
|
## SGR
|
||||||
iterm|*-truecolor)
|
_t_colors="$(tput colors)" 2>/dev/null || true
|
||||||
export COLORTERM=truecolor; color_prompt=yes
|
_t_sgr0="$(tput sgr0)" 2>/dev/null || true
|
||||||
;;
|
_t_bold="$(tput bold)" 2>/dev/null || true
|
||||||
*-color|*-256color|linux*|vt100*|vt220*)
|
_t_dim="$(tput dim)" 2>/dev/null || true
|
||||||
color_prompt=yes
|
_t_sitm="$(tput sitm)" 2>/dev/null || true
|
||||||
;;
|
_t_smul="$(tput smul)" 2>/dev/null || true
|
||||||
""|dumb)
|
_t_blink="$(tput blink)" 2>/dev/null || true
|
||||||
color_prompt=no
|
_t_rev="$(tput rev)" 2>/dev/null || true
|
||||||
;;
|
_t_smso="$(tput rmso)" 2>/dev/null || true
|
||||||
*)
|
_t_invis="$(tput invis)" 2>/dev/null || true
|
||||||
color_prompt=no
|
_t_ritm="$(tput ritm)" 2>/dev/null || true
|
||||||
;;
|
_t_rmul="$(tput rmul)" 2>/dev/null || true
|
||||||
esac
|
_t_rmso="$(tput rmso)" 2>/dev/null || true
|
||||||
if test -n "${NO_COLOR-}"; then
|
_t_setaf_0="$(tput setaf 0)" 2>/dev/null || true
|
||||||
color_prompt=no
|
_t_setaf_1="$(tput setaf 1)" 2>/dev/null || true
|
||||||
fi
|
_t_setaf_2="$(tput setaf 2)" 2>/dev/null || true
|
||||||
|
_t_setaf_3="$(tput setaf 3)" 2>/dev/null || true
|
||||||
|
_t_setaf_4="$(tput setaf 4)" 2>/dev/null || true
|
||||||
|
_t_setaf_5="$(tput setaf 5)" 2>/dev/null || true
|
||||||
|
_t_setaf_6="$(tput setaf 6)" 2>/dev/null || true
|
||||||
|
_t_setaf_7="$(tput setaf 7)" 2>/dev/null || true
|
||||||
|
_t_setab_0="$(tput setab 0)" 2>/dev/null || true
|
||||||
|
_t_setab_1="$(tput setab 1)" 2>/dev/null || true
|
||||||
|
_t_setab_2="$(tput setab 2)" 2>/dev/null || true
|
||||||
|
_t_setab_3="$(tput setab 3)" 2>/dev/null || true
|
||||||
|
_t_setab_4="$(tput setab 4)" 2>/dev/null || true
|
||||||
|
_t_setab_5="$(tput setab 5)" 2>/dev/null || true
|
||||||
|
_t_setab_6="$(tput setab 6)" 2>/dev/null || true
|
||||||
|
_t_setab_7="$(tput setab 7)" 2>/dev/null || true
|
||||||
|
## Movement
|
||||||
|
_t_ed="$(tput ed)" 2>/dev/null || true
|
||||||
|
_t_el="$(tput el)" 2>/dev/null || true
|
||||||
|
_t_home="$(tput home)" 2>/dev/null || true
|
||||||
|
_t_cnorm="$(tput cnorm)" 2>/dev/null || true
|
||||||
|
_t_civis="$(tput civis)" 2>/dev/null || true
|
||||||
|
_t_smcup="$(tput smcup)" 2>/dev/null || true
|
||||||
|
_t_rmcup="$(tput rmcup)" 2>/dev/null || true
|
||||||
|
_t_sc="$(tput sc)" 2>/dev/null || true
|
||||||
|
_t_clear="$(tput clear)" 2>/dev/null || true
|
||||||
|
## Extra
|
||||||
|
_t_cub1="$(tput cub1)" 2>/dev/null || true
|
||||||
|
_t_cud1="$(tput cud1)" 2>/dev/null || true
|
||||||
|
_t_ind="$(tput ind)" 2>/dev/null || true
|
||||||
|
_t_cr="$(tput cr)" 2>/dev/null || true
|
||||||
|
_t_u7="$(tput u7)" 2>/dev/null || true
|
||||||
|
_t_u8="$(tput u8)" 2>/dev/null || true
|
||||||
|
_t_u9="$(tput u9)" 2>/dev/null || true
|
||||||
|
}
|
||||||
|
|
||||||
|
_get_color_support(){
|
||||||
|
if test -n "${NO_COLOR-}"; then
|
||||||
|
color_support=-1
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
case "${COLORTERM-}" in
|
||||||
|
truecolor|24bit)
|
||||||
|
color_support=$((1 << 24))
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
*) ;;
|
||||||
|
esac
|
||||||
|
if has tput; then
|
||||||
|
if tput RGB >/dev/null 2>&1; then
|
||||||
|
color_support=$((1 << 24))
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
color_support=${_t_colors}
|
||||||
|
if test -n "${color_support}"; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
## Color query from terminfo is relatively new, only available in ncurses
|
||||||
|
## since 2018. Below is a match based on terminfo revision 1.909 to query
|
||||||
|
## number of supported colors in case the terminfo database can't be
|
||||||
|
## queried.
|
||||||
|
case "${TERM-}" in
|
||||||
|
*?-truecolor*|*?-direct*)
|
||||||
|
## TODO: Some terminals such as iTerm should be in this list.
|
||||||
|
color_support=$((1 << 24))
|
||||||
|
;;
|
||||||
|
*?-256color*|absolute|alacritty|Apple_Terminal|domterm|iterm|iterm2|\
|
||||||
|
iTerm2.app|iTerm.app|kitty|mintty|ms-terminal|nsterm|nsterm-build309|\
|
||||||
|
nsterm-build326|nsterm-build343|nsterm-build361|nsterm-build400|\
|
||||||
|
nsterm-build440|scrt|securecrt|terminator|terminology|terminology-0.6.1|\
|
||||||
|
terminology-1.0.0|terminology-1.8.1|termite|vscode|xterm+256setaf|\
|
||||||
|
xterm.js)
|
||||||
|
color_support=256
|
||||||
|
;;
|
||||||
|
*?-88color*|rxvt-unicode)
|
||||||
|
color_support=88
|
||||||
|
;;
|
||||||
|
hpterm-color|wy370|wy370-101k|wy370-105k|wy370-EPC|wy370-nk|wy370-rv|\
|
||||||
|
wy370-vb|wy370-w|wy370-wvb|wyse370)
|
||||||
|
color_support=64
|
||||||
|
;;
|
||||||
|
d430c-dg-ccc|d430c-unix-25-ccc|d430c-unix-ccc|d430c-unix-s-ccc|\
|
||||||
|
d430c-unix-sr-ccc|d430c-unix-w-ccc|d430-dg-ccc|d430-unix-25-ccc|\
|
||||||
|
d430-unix-ccc|d430-unix-s-ccc|d430-unix-sr-ccc|d430-unix-w-ccc|dg+ccc|\
|
||||||
|
dgunix+ccc)
|
||||||
|
color_support=52
|
||||||
|
;;
|
||||||
|
*?-16color*|amiga-vnc|atari-color|atari_st-color|at-color|d430c-dg|\
|
||||||
|
d430c-unix|d430c-unix-25|d430c-unix-s|d430c-unix-sr|d430c-unix-w|d430-dg|\
|
||||||
|
d430-unix|d430-unix-25|d430-unix-s|d430-unix-sr|d430-unix-w|d470|d470-7b|\
|
||||||
|
d470c|d470c-7b|d470c-dg|d470-dg|dg+color|dg+fixed|dgmode+color|\
|
||||||
|
dgunix+fixed|hp2397|hp2397a|hp+color|ncr260wy325pp|ncr260wy325wpp|\
|
||||||
|
ncr260wy350pp|ncr260wy350wpp|nsterm-7-c|nsterm-7-c-s|nsterm-acs-c|\
|
||||||
|
nsterm-acs-c-s|nsterm-bce|nsterm+c|nsterm-c|nsterm-c-7|nsterm-c-acs|\
|
||||||
|
nsterm-c-s|nsterm-c-s-7|nsterm-c-s-acs|st52-color|tt52|tw52|\
|
||||||
|
tw52-color)
|
||||||
|
color_support=16
|
||||||
|
;;
|
||||||
|
*?-color*|color_xterm|386at|aixterm|alacritty+common|ansi|ansi80x25|\
|
||||||
|
ansi80x25-raw|ansi80x30|ansi80x43|ansi80x50|ansi80x60|ansi-emx|ansil|\
|
||||||
|
ansis|ansi.sys|ansi.sysk|ansisysk|ansi.sys-old|ansiw|arm100|arm100-am|\
|
||||||
|
arm100-w|arm100-wam|at386|aterm|att6386|beterm|bsdos-pc|bsdos-pc-nobold|\
|
||||||
|
bsdos-ppc|bterm|cons25|cons25-debian|cons25-iso8859|cons25-koi8-r|\
|
||||||
|
cons25l1|cons25r|cons25w|cons30|cons43|cons50|cons50-iso8859|\
|
||||||
|
cons50-koi8r|cons50l1|cons50r|cons60|cons60-iso|cons60-koi8r|cons60l1|\
|
||||||
|
cons60r|crt|crt-vt220|ctrm|cx|cx100|cygwin|cygwinB19|cygwinDBG|d220|\
|
||||||
|
d220-7b|d220-dg|d230|d230c|d230c-dg|d230-dg|darwin|darwin-100x37|\
|
||||||
|
darwin-112x37|darwin-128x40|darwin-128x48|darwin-144x48|darwin-160x64|\
|
||||||
|
darwin-200x64|darwin-200x75|darwin-256x96|darwin-80x25|darwin-80x30|\
|
||||||
|
darwin-90x30|darwin-b|darwin-f|darwin-f2|decansi|djgpp|djgpp204|dtterm|\
|
||||||
|
dumb-emacs-ansi|dvtm|emots|emx-base|Eterm|gnome|gnome-2007|gnome-2008|\
|
||||||
|
gnome-2012|gnome-fc5|gnome-rh62|gnome-rh72|gnome-rh80|gnome-rh90|gs6300|\
|
||||||
|
hft|hft-c|hft-c-old|hft-old|hterm|hurd|i3164|ibm3164|ibm5081|ibm5154|\
|
||||||
|
ibm6154|ibm8503|ibm8507|ibm8512|ibm8513|ibm8514|ibm8604|ibmpc3|ibmpc3r|\
|
||||||
|
interix|interix-nti|jaixterm|jfbterm|kon|kon2|konsole|konsole-base|\
|
||||||
|
konsole-linux|konsole-solaris|konsole-vt100|konsole-vt420pc|konsole-xf3x|\
|
||||||
|
konsole-xf4x|kterm|kterm-co|kvt|linux|linux2.2|linux2.6|linux2.6.26|\
|
||||||
|
linux3.0|linux-basic|linux-c|linux-c-nc|linux-koi8|linux-koi8r|linux-lat|\
|
||||||
|
linux-m1|linux-nic|linux-s|linux-vt|mgt|mgterm|minitel1|minitel1b|minix|\
|
||||||
|
minix-3.0|mintty+common|mlterm|mlterm2|mlterm3|mosh|mrxvt|ms-vt100+|\
|
||||||
|
ms-vt-utf8|mvterm|nansi.sys|nansisys|nansi.sysk|nansisysk|ncr260intan|\
|
||||||
|
ncr260intpp|ncr260intwan|ncr260intwpp|ncsa|ncsa-ns|ncsa-vt220|netbsd6|\
|
||||||
|
nsterm-7|nsterm-7-s|nsterm-acs|nsterm-acs-s|nsterm+c41|nsterm-old|\
|
||||||
|
nsterm-s|nsterm-s-7|nsterm-s-acs|ntconsole|ntconsole-100|\
|
||||||
|
ntconsole-100-nti|ntconsole-25|ntconsole-25-nti|ntconsole-25-w|\
|
||||||
|
ntconsole-25-w-vt|ntconsole-35|ntconsole-35-nti|ntconsole-35-w|\
|
||||||
|
ntconsole-50|ntconsole-50-nti|ntconsole-50-w|ntconsole-60|\
|
||||||
|
ntconsole-60-nti|ntconsole-60-w|ntconsole-w|ntconsole-w-vt|nxterm|old-st|\
|
||||||
|
opennt|opennt-100|opennt-100-nti|opennt-25|opennt-25-nti|opennt-25-w|\
|
||||||
|
opennt-25-w-vt|opennt-35|opennt-35-nti|opennt-35-w|opennt-50|\
|
||||||
|
opennt-50-nti|opennt-50-w|opennt-60|opennt-60-nti|opennt-60-w|opennt-nti|\
|
||||||
|
opennt-w|opennt-w-vt|pc3|pc3-bold|pc3r|pcansi|pcansi-25|pcansi25|\
|
||||||
|
pcansi-33|pcansi33|pcansi-43|pcansi43|pccon|pccon0|pc-minix|putty|\
|
||||||
|
putty-m1|putty-noapp|putty-sco|putty-screen|putty-vt100|qansi|qansi-g|\
|
||||||
|
qansi-m|qansi-t|qansi-w|qnx|qnx4|qnxm|qnxt|qnxt2|qnxt4|qnxw|rxvt|\
|
||||||
|
rxvt-cygwin|rxvt-cygwin-native|rxvt-xpm|scoansi|scoansi-new|scoansi-old|\
|
||||||
|
screen|screen4|screen5|screen-base|screen-bce|screen-bce.Eterm|\
|
||||||
|
screen-bce.gnome|screen-bce.konsole|screen-bce.linux|screen-bce.mrxvt|\
|
||||||
|
screen-bce.rxvt|screen-bce.xterm-new|screen.Eterm|screen.gnome|\
|
||||||
|
screen.konsole|screen.linux|screen.linux-m1|screen.linux-s|\
|
||||||
|
screen.minitel1|screen.minitel1b|screen.mlterm|screen.mrxvt|screen.putty|\
|
||||||
|
screen.putty-m1|screen.rxvt|screen-s|screen.teraterm|screen.vte|screen-w|\
|
||||||
|
screen.xterm-new|screen.xterm-xfree86|simpleterm|st|st-0.6|st-0.7|st-0.8|\
|
||||||
|
stterm|tek4205|teken|teken-2018|teken-2022|teken-sc|teken-vt|teraterm|\
|
||||||
|
teraterm2.3|teraterm4.59|teraterm4.97|ti928|ti928-8|ti_ansi|tmux|tw100|\
|
||||||
|
uwin|vt100+|vte|vte-2007|vte-2008|vte-2012|vte-2014|vte-2017|vte-2018|\
|
||||||
|
vtnt|vt-utf8|vv100|vwmterm|wsvt25|wsvt25m|wy350|wy350-vb|wy350-w|\
|
||||||
|
wy350-wvb|wyse350|wyse350-vb|wyse350-w|wyse350-wvb|xfce|xiterm|xnuppc|\
|
||||||
|
xnuppc-100x37|xnuppc-112x37|xnuppc-128x40|xnuppc-128x48|xnuppc-144x48|\
|
||||||
|
xnuppc-160x64|xnuppc-200x64|xnuppc-200x75|xnuppc-256x96|xnuppc-80x25|\
|
||||||
|
xnuppc-80x30|xnuppc-90x30|xnuppc-b|xnuppc+c|xnuppc-f|xnuppc-f2|xterm|\
|
||||||
|
xterm1|xterm-1002|xterm-1003|xterm-1005|xterm-1006|xterm-8bit|\
|
||||||
|
xterm-basic|xtermc|xterm-debian|xterm-hp|xterm-new|xterm-nic|xterm-noapp|\
|
||||||
|
xterm+nofkeys|xterm-p370|xterm-p371|xterm-sco|xterms-sun|xterm-sun|\
|
||||||
|
xterm-utf8|xterm-vt220|xterm-x10mouse|xterm-x11hilite|xterm-x11mouse|\
|
||||||
|
xterm-xf86-v32|xterm-xf86-v33|xterm-xf86-v333|xterm-xf86-v40|\
|
||||||
|
xterm-xf86-v43|xterm-xf86-v44|xterm-xfree86|xterm-xi|xwsh)
|
||||||
|
color_support=8
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
color_support=-1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
_get_term_cap
|
||||||
|
_get_color_support
|
||||||
|
case "${color_support}" in
|
||||||
|
$((1 << 24))) export COLORTERM=truecolor; color_prompt=yes;;
|
||||||
|
[1-9]*) color_prompt=yes;;
|
||||||
|
*) color_prompt=no;;
|
||||||
|
esac
|
||||||
|
|
||||||
## Colorise "ls" output.
|
|
||||||
if test "${color_prompt-}" = "yes"; then
|
if test "${color_prompt-}" = "yes"; then
|
||||||
if has dircolors; then
|
if has dircolors; then
|
||||||
## Use dircolors if available.
|
## Use dircolors if available.
|
||||||
@ -192,7 +361,8 @@ if test "${color_prompt-}" = "yes"; then
|
|||||||
## Fix bold on some terminals.
|
## Fix bold on some terminals.
|
||||||
case "${TERM-}" in
|
case "${TERM-}" in
|
||||||
xterm*|screen*)
|
xterm*|screen*)
|
||||||
LS_COLORS="$(printf '%s\n' "${LS_COLORS}" | sed -e 's/01;3/00;9/g')"
|
LS_COLORS="$(printf '%s' "${LS_COLORS}" |
|
||||||
|
sed -e 's/01;3\([0-9]\)/00;9\1/g')"
|
||||||
;;
|
;;
|
||||||
*) ;;
|
*) ;;
|
||||||
esac
|
esac
|
||||||
@ -203,22 +373,21 @@ if test "${color_prompt-}" = "yes"; then
|
|||||||
export CLICOLOR CLICOLOR_FORCE LSCOLORS
|
export CLICOLOR CLICOLOR_FORCE LSCOLORS
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## Set gcc colors.
|
|
||||||
GCC_COLORS="error=00;31:warning=01;35:note=01;36:caret=01;32:locus=01"
|
GCC_COLORS="error=00;31:warning=01;35:note=01;36:caret=01;32:locus=01"
|
||||||
GCC_COLORS="${GCC_COLORS}:quote=01"
|
GCC_COLORS="${GCC_COLORS}:quote=01"
|
||||||
export GCC_COLORS
|
export GCC_COLORS
|
||||||
|
|
||||||
## Colors for programs that uses less such as 'man'.
|
## Colors for programs that uses 'less' such as 'man'.
|
||||||
GROFF_NO_SGR=1
|
GROFF_NO_SGR=1
|
||||||
LESS_TERMCAP_mb="$(tput bold; tput setaf 2)" # begin blink
|
LESS_TERMCAP_mb="${_t_bold}${_t_setaf_2}"
|
||||||
LESS_TERMCAP_md="$(tput bold; tput setaf 6)" # begin bold
|
LESS_TERMCAP_md="${_t_bold}${_t_setaf_6}"
|
||||||
LESS_TERMCAP_me="$(tput sgr0)" # reset bold/blink
|
LESS_TERMCAP_me="${_t_sgr0}"
|
||||||
LESS_TERMCAP_so="$(tput bold; tput setaf 7; tput setab 4)" # begin rev video
|
LESS_TERMCAP_so="${_t_bold}${_t_setaf_7}${_t_setab_4}"
|
||||||
LESS_TERMCAP_se="$(tput rmso; tput sgr0)" # reset rev video
|
LESS_TERMCAP_se="${_t_rmso}${_t_sgr0}"
|
||||||
LESS_TERMCAP_us="$(tput smul; tput bold; tput setaf 2)" # begin underline
|
LESS_TERMCAP_us="${_t_smul}${_t_bold}${_t_setaf_2}"
|
||||||
LESS_TERMCAP_ue="$(tput rmul; tput sgr0)" # reset underline
|
LESS_TERMCAP_ue="${_t_rmul}${_t_sgr0}"
|
||||||
LESS_TERMCAP_mr="$(tput rev)" # revert
|
LESS_TERMCAP_mr="${_t_rev}"
|
||||||
LESS_TERMCAP_mh="$(tput dim)" # dimerize
|
LESS_TERMCAP_mh="${_t_dim}"
|
||||||
export GROFF_NO_SGR
|
export GROFF_NO_SGR
|
||||||
export LESS_TERMCAP_mb LESS_TERMCAP_md LESS_TERMCAP_me
|
export LESS_TERMCAP_mb LESS_TERMCAP_md LESS_TERMCAP_me
|
||||||
export LESS_TERMCAP_so LESS_TERMCAP_se LESS_TERMCAP_us
|
export LESS_TERMCAP_so LESS_TERMCAP_se LESS_TERMCAP_us
|
||||||
@ -246,46 +415,46 @@ _git_prompt_info(){
|
|||||||
ref="$(git describe --tags --exact-match HEAD 2>/dev/null)"
|
ref="$(git describe --tags --exact-match HEAD 2>/dev/null)"
|
||||||
test "${ref-}" || ref="$(git rev-parse HEAD 2>/dev/null | cut -c 1-7)"
|
test "${ref-}" || ref="$(git rev-parse HEAD 2>/dev/null | cut -c 1-7)"
|
||||||
test "${ref-}" || return
|
test "${ref-}" || return
|
||||||
# shellcheck disable=2039,3003
|
case "${color_support-}" in
|
||||||
case "${TERM-}" in
|
256|$((1 << 24))) branchcolor="$(printf '%b' "\033[38;5;31m")";;
|
||||||
*-256color|xterm-kitty) branchcolor=$'\033[38;5;31m' ;;
|
88) branchcolor="$(printf '%b' "\033[38;5;22m")";;
|
||||||
*-88color|rxvt-unicode) branchcolor=$'\033[38;5;22m' ;;
|
[1-9]*) branchcolor="${_t_bold}${_t_setaf_4}";;
|
||||||
*) branchcolor=$'\033[0;94m' ;;
|
*) branchcolor="";;
|
||||||
esac
|
esac
|
||||||
if test -n "${ZSH_VERSION-}"; then
|
if test -n "${ZSH_VERSION-}"; then
|
||||||
# shellcheck disable=2016
|
# shellcheck disable=2016
|
||||||
if test "${color_prompt-}" = "yes"; then
|
if test "${color_prompt-}" = "yes"; then
|
||||||
print -Pn '(%%{${branchcolor}%%}%20>...>${ref}%<<%%{\033[0m%%})'
|
print -Pn '(%%{${branchcolor}%%}%20>...>${ref}%<<%%{${_t_sgr0}%%})'
|
||||||
else
|
else
|
||||||
print -Pn '(%20>...>${ref}%<<)'
|
print -Pn '(%20>...>${ref}%<<)'
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if test "${color_prompt-}" = "yes"; then
|
if test "${color_prompt-}" = "yes"; then
|
||||||
printf '%s' "(${branchcolor}${ref}${reset_color})"
|
printf '%s' "(${branchcolor}${ref}${_t_sgr0})"
|
||||||
else
|
else
|
||||||
printf '%s' "(${ref})"
|
printf '%s' "(${ref})"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
unset ref
|
unset ref branchcolor
|
||||||
}
|
}
|
||||||
|
|
||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
reset_color="$(printf '%b' '\033[0m')"
|
case "${color_support-}" in
|
||||||
|
256|$((1 << 24)))
|
||||||
# shellcheck disable=SC2034
|
|
||||||
## Use echotc Co? Only available by default for zsh, not bash.
|
|
||||||
case "${TERM-}" in
|
|
||||||
*-256color|xterm-kitty)
|
|
||||||
usercolor="$(printf '%b' "\033[38;5;184m")"
|
usercolor="$(printf '%b' "\033[38;5;184m")"
|
||||||
dircolor="$(printf '%b' "\033[38;5;27m")"
|
dircolor="$(printf '%b' "\033[38;5;27m")"
|
||||||
;;
|
;;
|
||||||
*-88color|rxvt-unicode)
|
88)
|
||||||
usercolor="$(printf '%b' "\033[38;5;56m")"
|
usercolor="$(printf '%b' "\033[38;5;56m")"
|
||||||
dircolor="$(printf '%b' "\033[38;5;23m")"
|
dircolor="$(printf '%b' "\033[38;5;23m")"
|
||||||
;;
|
;;
|
||||||
|
[1-9]*)
|
||||||
|
usercolor="${_t_bold}${_t_setaf_3}"
|
||||||
|
dircolor="${_t_bold}${_t_setaf_4}"
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
usercolor="$(printf '%b' "\033[0;93m")"
|
usercolor=""
|
||||||
dircolor="$(printf '%b' "\033[1;34m")"
|
dircolor=""
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@ -297,16 +466,14 @@ esac
|
|||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
uid="$(id -u)"
|
uid="$(id -u)"
|
||||||
if test "${uid}" = "0"; then
|
if test "${uid}" = "0"; then
|
||||||
usercolor="$(printf '%b' "\033[0;97m")"
|
usercolor="${_t_bold}${_t_setaf_7}"
|
||||||
ps1_symbol="#"
|
ps1_symbol="#"
|
||||||
fi
|
fi
|
||||||
unset uid
|
unset uid
|
||||||
|
|
||||||
## Do not colorize this prompt, Sh fails to count the correct number of
|
|
||||||
## characters on the prompt leading to problems.
|
|
||||||
user="$(id -un)"
|
user="$(id -un)"
|
||||||
if test "${color_prompt-}" = "yes"; then
|
if test "${color_prompt-}" = "yes"; then
|
||||||
PS1="[${usercolor}${user} $(hostname -s)${reset_color}]${ps1_symbol} "
|
PS1="[${usercolor}${user} $(hostname -s)${_t_sgr0}]${ps1_symbol} "
|
||||||
else
|
else
|
||||||
PS1="${user}@$(hostname -s)${ps1_symbol} "
|
PS1="${user}@$(hostname -s)${ps1_symbol} "
|
||||||
fi
|
fi
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env zsh
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
## SPDX-FileCopyrightText: 2004 - 2022 Tim Pope <https://tpo.pe>
|
## SPDX-FileCopyrightText: 2004 - 2022 Tim Pope <https://tpo.pe>
|
||||||
## SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
## SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
##
|
##
|
||||||
## SPDX-License-Identifier: AGPL-3.0-or-later
|
## SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
@ -20,6 +20,7 @@ source "$HOME/.zprofile"
|
|||||||
source "$ENV"
|
source "$ENV"
|
||||||
## }}}
|
## }}}
|
||||||
## {{{ Options
|
## {{{ Options
|
||||||
|
PROMPT_EOL_MARK='%b%B%S%#%s%b'
|
||||||
## - Quiet
|
## - Quiet
|
||||||
setopt no_beep
|
setopt no_beep
|
||||||
## - Words
|
## - Words
|
||||||
@ -74,10 +75,10 @@ if test "${color_prompt-}" = "yes"; then
|
|||||||
[[ "${COLORTERM-}" == (24bit|truecolor) ||
|
[[ "${COLORTERM-}" == (24bit|truecolor) ||
|
||||||
"${terminfo[colors]}" -eq '16777216' ]] || zmodload zsh/nearcolor
|
"${terminfo[colors]}" -eq '16777216' ]] || zmodload zsh/nearcolor
|
||||||
|
|
||||||
PS1="\$(resize-terminal)%F{magenta}[%{$usercolor%}%n@%m%F{reset_color%}"
|
PS1="\$(resize-terminal)%F{magenta}[%{${usercolor}%}%n@%m%F{reset_color%}"
|
||||||
PS1="${PS1} %{$dircolor%}%50<...<%~%<<%F{reset_color%}\$(_git_prompt_info)"
|
PS1="${PS1} %{$dircolor%}%50<...<%~%<<%F{reset_color%}\$(_git_prompt_info)"
|
||||||
PS1="${PS1}%F{magenta}]%F{reset_color}${newline-}${ps1_symbol} "
|
PS1="${PS1}%F{magenta}]%F{reset_color}${newline-}${ps1_symbol} "
|
||||||
RPS1="%(?..(%{"$'\033[31m'"%}%?%{$reset_color%}%)%<<)"
|
RPS1="%(?..(%F{red%}%?%F{reset_color%}%)%<<)"
|
||||||
else
|
else
|
||||||
PS1="\$(resize-terminal)[%n@%M %~\$(_git_prompt_info)]${newline}"
|
PS1="\$(resize-terminal)[%n@%M %~\$(_git_prompt_info)]${newline}"
|
||||||
PS1="${PS1}${ps1_symbol} "
|
PS1="${PS1}${ps1_symbol} "
|
||||||
@ -103,7 +104,6 @@ case "${TERM-}" in
|
|||||||
precmd() {
|
precmd() {
|
||||||
_set_title "$@"
|
_set_title "$@"
|
||||||
if [ "${STY:-}" -o "${TMUX:-}" ]; then
|
if [ "${STY:-}" -o "${TMUX:-}" ]; then
|
||||||
print -Pn '\033]1;\a\033]1;@%m\a'
|
|
||||||
print -Pn '\033k@\033\\'
|
print -Pn '\033k@\033\\'
|
||||||
else
|
else
|
||||||
print -Pn '\033k@%m\033\\'
|
print -Pn '\033k@%m\033\\'
|
||||||
@ -111,17 +111,17 @@ case "${TERM-}" in
|
|||||||
}
|
}
|
||||||
preexec() {
|
preexec() {
|
||||||
_set_title "$@"
|
_set_title "$@"
|
||||||
print -n "\033k"
|
return 0
|
||||||
print -Pnr '%10>..>$1' | tr '\0-\037' '?'
|
#print -Pnr '%10>..>$1' | tr '\0-\037' '?'
|
||||||
if [ "${STY:-}" -o "${TMUX:-}" ]; then
|
#if [ "${STY:-}" -o "${TMUX:-}" ]; then
|
||||||
print -Pn '@\033\\'
|
# print -Pn '\033k@\033\\'
|
||||||
else
|
#else
|
||||||
print -Pn '@%m\033\\'
|
# print -Pn '\033k@%m\033\\'
|
||||||
fi
|
#fi
|
||||||
}
|
}
|
||||||
;;
|
;;
|
||||||
|
|
||||||
xterm*|rxvt*|Eterm*|kterm*|putty*|dtterm*|ansi*|cygwin*)
|
*?-direct*|xterm*|rxvt*|Eterm*|kterm*|putty*|dtterm*|ansi*|cygwin*)
|
||||||
precmd () { _set_title "$@" }
|
precmd () { _set_title "$@" }
|
||||||
preexec() { _set_title "$@" }
|
preexec() { _set_title "$@" }
|
||||||
;;
|
;;
|
||||||
@ -134,8 +134,8 @@ case "${TERM-}" in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
unset hostcolor hostletter hostcode dircolor usercolor usercode reset_color \
|
unset hostcolor hostletter hostcode dircolor usercolor usercode newline \
|
||||||
newline ps1_symbol
|
ps1_symbol
|
||||||
## }}}
|
## }}}
|
||||||
## {{{ Completions
|
## {{{ Completions
|
||||||
|
|
||||||
@ -224,9 +224,10 @@ if test "${color_prompt-}" = "yes"; then
|
|||||||
## Enable auto-suggestions based on the history
|
## Enable auto-suggestions based on the history
|
||||||
if test -f /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh; then
|
if test -f /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh; then
|
||||||
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=30
|
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=30
|
||||||
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=7,bg=8,underline"
|
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="standout"
|
||||||
typeset -a ZSH_AUTOSUGGEST_CLEAR_WIDGETS
|
typeset -a ZSH_AUTOSUGGEST_CLEAR_WIDGETS
|
||||||
ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=(bracketed-paste)
|
ZSH_AUTOSUGGEST_STRATEGY=(history completion)
|
||||||
|
ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=(bracketed-paste accept-line)
|
||||||
source /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh
|
source /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh
|
||||||
fi
|
fi
|
||||||
## Highlight commands as you type
|
## Highlight commands as you type
|
||||||
@ -236,7 +237,6 @@ if test "${color_prompt-}" = "yes"; then
|
|||||||
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern regexp)
|
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern regexp)
|
||||||
typeset -A ZSH_HIGHLIGHT_STYLES
|
typeset -A ZSH_HIGHLIGHT_STYLES
|
||||||
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red'
|
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red'
|
||||||
ZSH_HIGHLIGHT_STYLES[default]='fg=white'
|
|
||||||
ZSH_HIGHLIGHT_STYLES[alias]='fg=cyan'
|
ZSH_HIGHLIGHT_STYLES[alias]='fg=cyan'
|
||||||
ZSH_HIGHLIGHT_STYLES[function]='fg=cyan'
|
ZSH_HIGHLIGHT_STYLES[function]='fg=cyan'
|
||||||
ZSH_HIGHLIGHT_STYLES[builtin]='fg=green'
|
ZSH_HIGHLIGHT_STYLES[builtin]='fg=green'
|
||||||
|
|||||||
@ -14,8 +14,10 @@ if test -n "${TERM_RESIZE_DISABLE:-}"; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
test -t 0 || exit 0
|
test -t 0 || exit 0
|
||||||
|
case "${TERM-}" in
|
||||||
msg_unsupported="error: cannot resize screen: unsupported terminal emulator"
|
dumb) exit 0;;
|
||||||
|
*);;
|
||||||
|
esac
|
||||||
|
|
||||||
## If argument is provided, allow user to bypass tty check.
|
## If argument is provided, allow user to bypass tty check.
|
||||||
if test "${#}" -eq 0; then
|
if test "${#}" -eq 0; then
|
||||||
@ -46,15 +48,17 @@ if test "${#}" -eq 0; then
|
|||||||
unset term_file_active
|
unset term_file_active
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sc="$(tput sc || printf '%b' '\0337')"
|
get_caps(){
|
||||||
rc="$(tput rc || printf '%b' '\0338')"
|
sc="$(tput sc || printf '%b' '\0337')"
|
||||||
cup="$(tput cup 99999 99999 || printf '%b' '\033[99999;99999H')"
|
rc="$(tput rc || printf '%b' '\0338')"
|
||||||
csr="$(tput csr || printf '%b' '\033[r')"
|
cup="$(tput cup 99999 99999 || printf '%b' '\033[99999;99999H')"
|
||||||
gc="$(tput u7 || printf '%b' '\033[6n')"
|
csr="$(tput csr || printf '%b' '\033[r')"
|
||||||
|
gc="$(tput u7 || printf '%b' '\033[6n')"
|
||||||
|
}
|
||||||
|
|
||||||
## POSIX compliant.
|
## POSIX compliant.
|
||||||
# shellcheck disable=SC3045
|
# shellcheck disable=SC3045
|
||||||
if ! printf '%s\n' "R" | read -r -t 1 -sd R 2>/dev/null; then
|
if ! (printf '%s\n' "R" | read -r -t 1 -sd R 2>/dev/null); then
|
||||||
## Fast but depends on XTerm.
|
## Fast but depends on XTerm.
|
||||||
if has resize; then
|
if has resize; then
|
||||||
resize_cmd="$(resize)"
|
resize_cmd="$(resize)"
|
||||||
@ -62,6 +66,7 @@ if ! printf '%s\n' "R" | read -r -t 1 -sd R 2>/dev/null; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
## Slow due to heavy stty calls.
|
## Slow due to heavy stty calls.
|
||||||
|
get_caps
|
||||||
termios="$(stty -g)"
|
termios="$(stty -g)"
|
||||||
stty raw -echo min 0 time 1
|
stty raw -echo min 0 time 1
|
||||||
printf '%s' "${sc}${csr}${cup}${gc}${rc}" >/dev/tty
|
printf '%s' "${sc}${csr}${cup}${gc}${rc}" >/dev/tty
|
||||||
@ -71,7 +76,9 @@ if ! printf '%s\n' "R" | read -r -t 1 -sd R 2>/dev/null; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
msg_unsupported="error: cannot resize screen: unsupported terminal emulator"
|
||||||
## Non-POSIX compliant and fast.
|
## Non-POSIX compliant and fast.
|
||||||
|
get_caps
|
||||||
stty -echo
|
stty -echo
|
||||||
printf '%s' "${sc}${csr}${cup}${gc}${rc}" >/dev/tty
|
printf '%s' "${sc}${csr}${cup}${gc}${rc}" >/dev/tty
|
||||||
# shellcheck disable=3045,SC2034
|
# shellcheck disable=3045,SC2034
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
## tmux.conf
|
## tmux.conf
|
||||||
|
|
||||||
## SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
## SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
##
|
##
|
||||||
## SPDX-License-Identifier: AGPL-3.0-or-later
|
## SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
@ -17,7 +17,13 @@ set-option -g history-limit 10000
|
|||||||
set-option -g repeat-time 2000
|
set-option -g repeat-time 2000
|
||||||
set-option -g escape-time 50
|
set-option -g escape-time 50
|
||||||
set-option -g status-position top
|
set-option -g status-position top
|
||||||
set-option -g default-terminal tmux-256color
|
run-shell '\
|
||||||
|
colors=$(tput colors) || true 2>/dev/null; \
|
||||||
|
if test "$colors" -lt 256; then \
|
||||||
|
tmux set-option -g default-terminal tmux; \
|
||||||
|
elif test "$colors" -ge 256; then \
|
||||||
|
tmux set-option -g default-terminal tmux-256color; \
|
||||||
|
fi'
|
||||||
set-option -g display-panes-time 2000
|
set-option -g display-panes-time 2000
|
||||||
set-option -g display-time 2000
|
set-option -g display-time 2000
|
||||||
set-option -g focus-events on
|
set-option -g focus-events on
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
" SPDX-FileCopyrightText: 2004 - 2022 Tim Pope <https://tpo.pe>
|
" SPDX-FileCopyrightText: 2004 - 2022 Tim Pope <https://tpo.pe>
|
||||||
" SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
" SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
"
|
"
|
||||||
" SPDX-License-Identifier: Vim
|
" SPDX-License-Identifier: Vim
|
||||||
"
|
"
|
||||||
@ -556,6 +556,9 @@ if (&t_Co > 2 || has('gui_running')) && has('syntax')
|
|||||||
endif
|
endif
|
||||||
if has('vim_starting')
|
if has('vim_starting')
|
||||||
set list
|
set list
|
||||||
|
if has('termguicolors') && &t_Co > 256
|
||||||
|
setglobal termguicolors
|
||||||
|
endif
|
||||||
if !exists('g:colors_name')
|
if !exists('g:colors_name')
|
||||||
colorscheme vividchalk
|
colorscheme vividchalk
|
||||||
endif
|
endif
|
||||||
|
|||||||
@ -1,15 +1,14 @@
|
|||||||
! ~/.Xresources
|
! ~/.Xresources
|
||||||
|
! vim:set foldmethod=expr foldexpr=getline(v\:lnum)=~'^!##'?'>1'\:'=':
|
||||||
! SPDX-FileCopyrightText: 2004 - 2016 Tim Pope <https://tpo.pe>
|
! SPDX-FileCopyrightText: 2004 - 2016 Tim Pope <https://tpo.pe>
|
||||||
! SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
! SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
!
|
!
|
||||||
! SPDX-License-Identifier: AGPL-3.0-or-later
|
! SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
!
|
||||||
! Credits: https://github.com/tpope/dotfiles/blob/master/.Xresources
|
! Credits: https://github.com/tpope/dotfiles/blob/master/.Xresources
|
||||||
! vim:set foldmethod=expr foldexpr=getline(v\:lnum)=~'^!##'?'>1'\:'=':
|
|
||||||
|
|
||||||
*international: true
|
*international: true
|
||||||
*customization: -color
|
*customization: -color
|
||||||
|
|
||||||
!## TERMINAL COMMON
|
!## TERMINAL COMMON
|
||||||
#ifndef FIXED
|
#ifndef FIXED
|
||||||
@ -24,100 +23,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
! http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html
|
|
||||||
! https://en.wikipedia.org/wiki/X11_color_names
|
|
||||||
! https://upload.wikimedia.org/wikipedia/commons/1/15/Xterm_256color_chart.svg
|
|
||||||
! RGB to HEX https://unix.stackexchange.com/a/269085
|
|
||||||
! https://misc.flogisoft.com/bash/tip_colors_and_formatting
|
|
||||||
! https://stackoverflow.com/questions/5947742/how-to-change-the-output-color-of-echo-in-linux
|
|
||||||
! https://unix.stackexchange.com/questions/124407/what-color-codes-can-i-use-in-my-bash-ps1-prompt
|
|
||||||
|
|
||||||
! name dark light
|
|
||||||
! black 0 8
|
|
||||||
! red 1 9
|
|
||||||
! green 2 10
|
|
||||||
! yellow 3 11
|
|
||||||
! blue 4 12
|
|
||||||
! purple 5 13
|
|
||||||
! cyan 6 14
|
|
||||||
! white 7 15
|
|
||||||
|
|
||||||
! Tpope colors
|
|
||||||
*color0: #000000
|
|
||||||
*color1: #aa0000
|
|
||||||
*color2: #00aa00
|
|
||||||
*color3: #aa5522
|
|
||||||
*color4: #0000ee
|
|
||||||
*color5: #aa00aa
|
|
||||||
*color6: #00aaaa
|
|
||||||
*color7: #aaaaaa
|
|
||||||
*color8: #555555
|
|
||||||
*color9: #ff4444
|
|
||||||
*color10: #44ff44
|
|
||||||
*color11: #ffff00
|
|
||||||
*color12: #5c5cff
|
|
||||||
*color13: #ff00ff
|
|
||||||
*color14: #00ffff
|
|
||||||
*color15: #ffffff
|
|
||||||
*colorBD: #ffffff
|
|
||||||
|
|
||||||
! *.cursorColor: #ffffff
|
|
||||||
|
|
||||||
! *color0: #000000
|
|
||||||
! *color1: #aa0000
|
|
||||||
! *color2: #00aa00
|
|
||||||
! *color3: #aa5522
|
|
||||||
! *color4: #0000ee
|
|
||||||
! *color5: #aa00aa
|
|
||||||
! *color6: #00aaaa
|
|
||||||
! *color7: #aaaaaa
|
|
||||||
! *color8: #555555
|
|
||||||
! *color9: #ff4444
|
|
||||||
! *color10: #44ff44
|
|
||||||
! *color11: #ffff00
|
|
||||||
! *color12: #5c5cff
|
|
||||||
! *color13: #ff00ff
|
|
||||||
! *color14: #00ffff
|
|
||||||
! *color15: #ffffff
|
|
||||||
! *colorBD: #ffffff
|
|
||||||
|
|
||||||
! ! Black / Grey
|
|
||||||
! *.color0: #000000
|
|
||||||
! ! *.color8: #808080
|
|
||||||
! *.color8: #767676
|
|
||||||
|
|
||||||
! ! Red / Bright Red
|
|
||||||
! *.color1: #800000
|
|
||||||
! *.color9: #FF0000
|
|
||||||
|
|
||||||
! ! Green + Bright Green
|
|
||||||
! ! *.color2: #008000
|
|
||||||
! *.color2: #00af00
|
|
||||||
! *.color10: #00ff00
|
|
||||||
|
|
||||||
! ! Yellow (Orange) + Bright Yellow (Yellow)
|
|
||||||
! *.color3: #808000
|
|
||||||
! *.color11: #ffff00
|
|
||||||
|
|
||||||
! ! Blue + Bright Blue
|
|
||||||
! *.color4: #000080
|
|
||||||
! *.color12: #0000ff
|
|
||||||
|
|
||||||
! ! Magenta (Purple) + Bright Magenta
|
|
||||||
! ! *.color5: #800080
|
|
||||||
! *.color5: #af00d7
|
|
||||||
! *.color13: #0000ff
|
|
||||||
|
|
||||||
! ! Cyan (Aqua) + Bright Cyan
|
|
||||||
! ! *.color6: #800080
|
|
||||||
! *.color6: #008b8b
|
|
||||||
! ! *.color14: #ff00ff
|
|
||||||
! *.color14: #00d7ff
|
|
||||||
|
|
||||||
! ! Light Grey (Selection) + White (Current Line)
|
|
||||||
! *.color7: #c0c0c0
|
|
||||||
! *.color15: #ffffff
|
|
||||||
|
|
||||||
!## [U]XTERM
|
!## [U]XTERM
|
||||||
*.selectToClipboard: true
|
*.selectToClipboard: true
|
||||||
*.VT100saveLines: 4096
|
*.VT100saveLines: 4096
|
||||||
@ -129,16 +34,20 @@
|
|||||||
*.VT100.background: black
|
*.VT100.background: black
|
||||||
*.foreground: white
|
*.foreground: white
|
||||||
*.VT100.foreground: white
|
*.VT100.foreground: white
|
||||||
*.termName: xterm-256color
|
*.termName: xterm-direct256
|
||||||
*.ttyModes: start ^- stop ^-
|
*.ttyModes: start ^- stop ^-
|
||||||
*.boldMode: false
|
*.boldMode: false
|
||||||
*.allowBoldFonts: false
|
*.allowBoldFonts: false
|
||||||
|
*.colorMode: true
|
||||||
|
*.dynamicColors: true
|
||||||
|
*.colorBDMode: false
|
||||||
|
*.colorULMode: false
|
||||||
|
*.underline: false
|
||||||
*.VT100.geometry: 80x24
|
*.VT100.geometry: 80x24
|
||||||
*.VT100.scaleHeight: 1.1
|
*.VT100.scaleHeight: 1.1
|
||||||
! For some reason, '*scrollBar' was not working on Fedora.
|
! For some reason, '*scrollBar' was not working on Fedora.
|
||||||
XTerm*.scrollBar: false
|
XTerm*.scrollBar: false
|
||||||
UXTerm*.scrollBar: false
|
UXTerm*.scrollBar: false
|
||||||
*.colorBDMode: true
|
|
||||||
*.visualBell: false
|
*.visualBell: false
|
||||||
*.eightBitInput: false
|
*.eightBitInput: false
|
||||||
*.modifyCursorKeys: 2
|
*.modifyCursorKeys: 2
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user