From 8c31b4976fe10fa683b14f8e57dbcf20022c6476 Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Tue, 2 Oct 2018 20:12:15 -0400 Subject: [PATCH 1/5] zshrc: Improve keymap setup. Move the keymap setup to a shell function and add a wrapper around reset which reconfigures the keymap after resetting the terminal. --- COPYING.WTFPL2 | 13 +++++++ zshrc | 92 ++++++++++++++++++++++++++------------------------ 2 files changed, 60 insertions(+), 45 deletions(-) create mode 100644 COPYING.WTFPL2 diff --git a/COPYING.WTFPL2 b/COPYING.WTFPL2 new file mode 100644 index 0000000..d23841b --- /dev/null +++ b/COPYING.WTFPL2 @@ -0,0 +1,13 @@ + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 Sam Hocevar + 22 rue de Plaisance, 75014 Paris, France + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/zshrc b/zshrc index 10edaa9..af977aa 100644 --- a/zshrc +++ b/zshrc @@ -1,11 +1,10 @@ -# Configuration for interactive shells. +# Copyright © 2009-2011, 2017-2018 Nick Bowler # -# Copyright (C) 2009 Nick Bowler +# Default configuration for interactive zsh. # -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without any warranty. +# License WTFPL2: Do What The Fuck You Want To Public License, version 2. +# This is free software: you are free to do what the fuck you want to. +# There is NO WARRANTY, to the extent permitted by law. # Default shell options setopt EXTENDED_GLOB @@ -16,46 +15,49 @@ if [[ -n $HOME ]]; then fi HISTSIZE=10000 -bindkey -e - -case $TERM in -rxvt*) - if [[ $TERM =~ '^rxvt-unicode' ]]; then - [[ -z $COLORTERM ]] && export COLORTERM='rxvt-xpm' - [[ -z $COLORFGBG ]] && export COLORFGBG='15;default;0' - fi - - bindkey '\e[3~' delete-char - bindkey '\e[8~' end-of-line - bindkey '\e[7~' beginning-of-line -;; -screen*|linux|cygwin) - bindkey '\e[3~' delete-char - bindkey '\e[4~' end-of-line - bindkey '\e[1~' beginning-of-line - bindkey '\eOM' accept-line -;; -xterm*) - bindkey '\e[3~' delete-char - bindkey '\e[F' end-of-line - bindkey '\e[H' beginning-of-line - bindkey '\eOH' beginning-of-line - bindkey '\eOF' end-of-line -;; -cons25) - bindkey '^?' delete-char - bindkey '\e[F' end-of-line - bindkey '\e[H' beginning-of-line -;; -esac +reset_keymap() { + local k del home end + + case $# in + 0) : ;; + *) export KEYMAP=$1 ;; + esac + + case $TERM in + rxvt*) + del=('\e[3~') home=('\e[7~') end=('\e[8~') ;; + screen*|linux|cygwin) + del=('\e[3~') home=('\e[1~') end=('\e[4~') ;; + cons25) + del=('^?') home=('\e[H') end=('\e[F') ;; + xterm*) + del=('\e[3~') + home=('\e[1~' '\e[H' '\e[OH') + end=('\e[4~' '\e[F' '\e[OF') + ;; + esac + + bindkey -e + for k in "${del[@]}"; do bindkey "$k" delete-char; done + for k in "${home[@]}"; do bindkey "$k" beginning-of-line; done + for k in "${end[@]}"; do bindkey "$k" end-of-line; done + + stty stop '' + case $KEYMAP in + colemak) + bindkey '^R' history-incremental-search-forward + bindkey '^P' history-incremental-search-backward + stty eof '^S' ;; + *) + stty eof '^D' ;; + esac +} +reset_keymap -# Keymap-specific bindings -case $KEYMAP in -colemak) - bindkey '^R' history-incremental-search-forward - bindkey '^P' history-incremental-search-backward - ;; -esac +reset() { + command reset + reset_keymap +} # Set the xterm title case $TERM in -- 2.43.2 From 53fe1d7c0394106f8fb7c2bbb8fd780ee9031ba7 Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Sat, 24 Dec 2022 00:13:04 -0500 Subject: [PATCH 2/5] zprofile: Consider user .dircolors if it exists. Newer coreutils-shipped DIR_COLORS has awful and nearly-unreadable default "light black on black" colour options. So change the dircolors sequence a bit to prefer ~/.dircolors if it exists. --- zprofile | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/zprofile b/zprofile index 223baa4..fee77bc 100644 --- a/zprofile +++ b/zprofile @@ -1,5 +1,11 @@ -# Load environment settings from profile.env, which is created by env-update -# from the files in /etc/env.d +# Copyright © 2009-2011, 2022 Nick Bowler +# +# Default configuration for zsh login shells. +# +# License WTFPL2: Do What The Fuck You Want To Public License, version 2. +# This is free software: you are free to do what the fuck you want to. +# There is NO WARRANTY, to the extent permitted by law. + if [[ -e /etc/profile.env ]]; then source /etc/profile.env fi @@ -26,7 +32,7 @@ set -$shopts unset sh shopts # Setup colours -eval `dircolors --sh` +eval `{ dircolors --sh $HOME/.dircolors || dircolors --sh; } 2>/dev/null` if [[ -n "$LS_COLORS" && -z "$COLORTERM" ]]; then export COLORTERM="ansi" fi -- 2.43.2 From 3a5461e0c4d4954f70456ad1861972c59cb317a2 Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Thu, 28 Sep 2023 21:03:33 -0400 Subject: [PATCH 3/5] Add Gentoo ccache wrappers to default PATH. --- zprofile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/zprofile b/zprofile index fee77bc..106edaa 100644 --- a/zprofile +++ b/zprofile @@ -11,7 +11,9 @@ if [[ -e /etc/profile.env ]]; then fi # Default path -path_front {,/usr,/usr/local}{/bin,/sbin} $HOME/bin +path_front {,/usr,/usr/local}{/bin,/sbin} +[[ -d /usr/lib/ccache/bin ]] && path_front /usr/lib/ccache/bin +path_front $HOME/bin # Default user settings export EDITOR=${EDITOR:-=vim} -- 2.43.2 From 744b0530e56447528d22d88d53523abe049f0b91 Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Thu, 23 May 2024 22:40:08 -0400 Subject: [PATCH 4/5] Set NO_COLOR=1 I came across https://no-color.org/ which suggests that setting NO_COLOR=1 in the environment may be a good first defense against the trend of programs spewing rainbow vomit all over the terminal. --- zprofile | 1 + 1 file changed, 1 insertion(+) diff --git a/zprofile b/zprofile index 106edaa..d4eb861 100644 --- a/zprofile +++ b/zprofile @@ -34,6 +34,7 @@ set -$shopts unset sh shopts # Setup colours +export NO_COLOR=1 eval `{ dircolors --sh $HOME/.dircolors || dircolors --sh; } 2>/dev/null` if [[ -n "$LS_COLORS" && -z "$COLORTERM" ]]; then export COLORTERM="ansi" -- 2.43.2 From 00fdd3a6bfe0a15f548a3585e71475da5297ae96 Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Tue, 28 May 2024 22:32:14 -0400 Subject: [PATCH 5/5] Set LESSCOLOR=no Disable more silly rainbow vomit, this time in what appears to be a Gentoo script that does not respect NO_COLOR. --- zprofile | 1 + 1 file changed, 1 insertion(+) diff --git a/zprofile b/zprofile index d4eb861..a84abbe 100644 --- a/zprofile +++ b/zprofile @@ -34,6 +34,7 @@ set -$shopts unset sh shopts # Setup colours +export LESSCOLOR=no export NO_COLOR=1 eval `{ dircolors --sh $HOME/.dircolors || dircolors --sh; } 2>/dev/null` if [[ -n "$LS_COLORS" && -z "$COLORTERM" ]]; then -- 2.43.2