Created
November 14, 2021 11:51
-
-
Save limpid-kzonix/56a2ad2c3a409ffd4a6b421c8b18a39a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# : << EOF | |
# https://github.com/gpakosz/.tmux | |
# (‑●‑●)> dual licensed under the WTFPL v2 license and the MIT license, | |
# without any warranty. | |
# Copyright 2012— Gregory Pakosz (@gpakosz). | |
# /!\ do not edit this file | |
# instead, override settings in ~/.tmux.conf.local, see README.md | |
# -- general ------------------------------------------------------------------- | |
set -g default-terminal "screen-256color" # colors! | |
set-option -g default-terminal "screen-256color" | |
set-option -sa terminal-overrides ',screen-256color:RGB' | |
set-option -ga terminal-overrides ',screen-256color:Tc' | |
setw -g xterm-keys on | |
set -s escape-time 10 # faster command sequences | |
set -sg repeat-time 600 # increase repeat timeout | |
set -s focus-events on | |
set -g prefix2 C-a # GNU-Screen compatible prefix | |
bind C-a send-prefix -2 | |
set -q -g status-utf8 on # expect UTF-8 (tmux < 2.2) | |
setw -q -g utf8 on | |
set -g history-limit 5000 # boost history | |
# edit configuration | |
bind e new-window -n "~/.tmux.conf.local" "EDITOR=\${EDITOR//mvim/vim} && EDITOR=\${EDITOR//gvim/vim} && \${EDITOR:-vim} ~/.tmux.conf.local && tmux source ~/.tmux.conf && tmux display \"~/.tmux.conf sourced\"" | |
# reload configuration | |
bind r source-file ~/.tmux.conf \; display '~/.tmux.conf sourced' | |
# -- display ------------------------------------------------------------------- | |
set -g base-index 1 # start windows numbering at 1 | |
setw -g pane-base-index 1 # make pane numbering consistent with windows | |
setw -g automatic-rename on # rename window to reflect current program | |
set -g renumber-windows on # renumber windows when a window is closed | |
set -g set-titles on # set terminal title | |
set -g display-panes-time 800 # slightly longer pane indicators display time | |
set -g display-time 1000 # slightly longer status messages display time | |
set -g status-interval 10 # redraw status line every 10 seconds | |
# clear both screen and history | |
bind -n C-l send-keys C-l \; run 'sleep 0.1' \; clear-history | |
# activity | |
set -g monitor-activity on | |
set -g visual-activity off | |
# -- navigation ---------------------------------------------------------------- | |
# create session | |
bind C-c new-session | |
# find session | |
bind C-f command-prompt -p find-session 'switch-client -t %%' | |
# split current window horizontally | |
bind - split-window -v | |
# split current window vertically | |
bind _ split-window -h | |
# pane navigation | |
bind -r h select-pane -L # move left | |
bind -r j select-pane -D # move down | |
bind -r k select-pane -U # move up | |
bind -r l select-pane -R # move right | |
bind > swap-pane -D # swap current pane with the next one | |
bind < swap-pane -U # swap current pane with the previous one | |
# maximize current pane | |
bind + run 'cut -c3- ~/.tmux.conf | sh -s _maximize_pane "#{session_name}" #D' | |
# pane resizing | |
bind -r H resize-pane -L 2 | |
bind -r J resize-pane -D 2 | |
bind -r K resize-pane -U 2 | |
bind -r L resize-pane -R 2 | |
# window navigation | |
unbind n | |
unbind p | |
bind -r C-h previous-window # select previous window | |
bind -r C-l next-window # select next window | |
bind Tab last-window # move to last active window | |
# toggle mouse | |
bind m run "cut -c3- ~/.tmux.conf | sh -s _toggle_mouse" | |
# -- urlview ------------------------------------------------------------------- | |
bind U run "cut -c3- ~/.tmux.conf | sh -s _urlview #{pane_id}" | |
# -- facebook pathpicker ------------------------------------------------------- | |
bind F run "cut -c3- ~/.tmux.conf | sh -s _fpp #{pane_id}" | |
# -- list choice (tmux < 2.4) -------------------------------------------------- | |
# vi-choice is gone in tmux >= 2.4 | |
run -b 'tmux bind -t vi-choice h tree-collapse 2> /dev/null || true' | |
run -b 'tmux bind -t vi-choice l tree-expand 2> /dev/null || true' | |
run -b 'tmux bind -t vi-choice K start-of-list 2> /dev/null || true' | |
run -b 'tmux bind -t vi-choice J end-of-list 2> /dev/null || true' | |
run -b 'tmux bind -t vi-choice H tree-collapse-all 2> /dev/null || true' | |
run -b 'tmux bind -t vi-choice L tree-expand-all 2> /dev/null || true' | |
run -b 'tmux bind -t vi-choice Escape cancel 2> /dev/null || true' | |
# -- edit mode (tmux < 2.4) ---------------------------------------------------- | |
# vi-edit is gone in tmux >= 2.4 | |
run -b 'tmux bind -ct vi-edit H start-of-line 2> /dev/null || true' | |
run -b 'tmux bind -ct vi-edit L end-of-line 2> /dev/null || true' | |
run -b 'tmux bind -ct vi-edit q cancel 2> /dev/null || true' | |
run -b 'tmux bind -ct vi-edit Escape cancel 2> /dev/null || true' | |
# -- copy mode ----------------------------------------------------------------- | |
bind Enter copy-mode # enter copy mode | |
run -b 'tmux bind -t vi-copy v begin-selection 2> /dev/null || true' | |
run -b 'tmux bind -T copy-mode-vi v send -X begin-selection 2> /dev/null || true' | |
run -b 'tmux bind -t vi-copy C-v rectangle-toggle 2> /dev/null || true' | |
run -b 'tmux bind -T copy-mode-vi C-v send -X rectangle-toggle 2> /dev/null || true' | |
run -b 'tmux bind -t vi-copy y copy-selection 2> /dev/null || true' | |
run -b 'tmux bind -T copy-mode-vi y send -X copy-selection-and-cancel 2> /dev/null || true' | |
run -b 'tmux bind -t vi-copy Escape cancel 2> /dev/null || true' | |
run -b 'tmux bind -T copy-mode-vi Escape send -X cancel 2> /dev/null || true' | |
run -b 'tmux bind -t vi-copy H start-of-line 2> /dev/null || true' | |
run -b 'tmux bind -T copy-mode-vi H send -X start-of-line 2> /dev/null || true' | |
run -b 'tmux bind -t vi-copy L end-of-line 2> /dev/null || true' | |
run -b 'tmux bind -T copy-mode-vi L send -X end-of-line 2> /dev/null || true' | |
# copy to X11 clipboard | |
if -b 'command -v xsel > /dev/null 2>&1' 'bind y run -b "tmux save-buffer - | xsel -i -b"' | |
if -b '! command -v xsel > /dev/null 2>&1 && command -v xclip > /dev/null 2>&1' 'bind y run -b "tmux save-buffer - | xclip -i -selection clipboard >/dev/null 2>&1"' | |
# copy to macOS clipboard | |
if -b 'command -v pbcopy > /dev/null 2>&1' 'bind y run -b "tmux save-buffer - | pbcopy"' | |
if -b 'command -v reattach-to-user-namespace > /dev/null 2>&1' 'bind y run -b "tmux save-buffer - | reattach-to-user-namespace pbcopy"' | |
# copy to Windows clipboard | |
if -b 'command -v clip.exe > /dev/null 2>&1' 'bind y run -b "tmux save-buffer - | clip.exe"' | |
if -b '[ -c /dev/clipboard ]' 'bind y run -b "tmux save-buffer - > /dev/clipboard"' | |
# -- buffers ------------------------------------------------------------------- | |
bind b list-buffers # list paste buffers | |
bind p paste-buffer # paste from the top paste buffer | |
bind P choose-buffer # choose which buffer to paste from | |
# -- user defined overrides ---------------------------------------------------- | |
source -q ~/.tmux.conf.local | |
# -- 8< ------------------------------------------------------------------------ | |
run 'cut -c3- ~/.tmux.conf | sh -s _apply_configuration' | |
# EOF | |
# | |
# # exit the script if any statement returns a non-true return value | |
# set -e | |
# | |
# unset GREP_OPTIONS | |
# export LC_NUMERIC=C | |
# | |
# if ! printf '' | sed -E 's///' 2>/dev/null; then | |
# if printf '' | sed -r 's///' 2>/dev/null; then | |
# sed () { | |
# n=$#; while [ "$n" -gt 0 ]; do arg=$1; shift; case $arg in -E*) arg=-r${arg#-E};; esac; set -- "$@" "$arg"; n=$(( n - 1 )); done | |
# command sed "$@" | |
# } | |
# fi | |
# fi | |
# | |
# _uname_s=$(uname -s) | |
# | |
# _tmux_version=$(tmux -V | awk '{gsub(/[^0-9.]/, "", $2); print ($2+0) * 100}') | |
# | |
# _is_enabled() { | |
# [ x"$1" = x"true" ] || [ x"$1" = x"yes" ] || [ x"$1" = x"enabled" ] || [ x"$1" = x"1" ] | |
# } | |
# | |
# _circled() { | |
# circled_digits='⓪ ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳' | |
# if [ "$1" -le 20 ] 2>/dev/null; then | |
# i=$(( $1 + 1 )) | |
# eval set -- "$circled_digits" | |
# eval echo "\${$i}" | |
# else | |
# echo "$1" | |
# fi | |
# } | |
# | |
# _decode_unicode_escapes() { | |
# printf '%s' "$*" | perl -CS -pe 's/(\\u([0-9A-Fa-f]{1,4})|\\U([0-9A-Fa-f]{1,8}))/chr(hex($2.$3))/eg' 2>/dev/null | |
# } | |
# | |
# if command -v pkill > /dev/null 2>&1; then | |
# _pkillf() { | |
# pkill -f "$@" || true | |
# } | |
# else | |
# case "$_uname_s" in | |
# *CYGWIN*) | |
# _pkillf() { | |
# while IFS= read -r pid; do | |
# kill "$pid" || true | |
# done << EOF | |
# $(grep -Eao "$@" /proc/*/cmdline | xargs -0 | sed -E -n 's,/proc/([0-9]+)/.+$,\1,pg') | |
# EOF | |
# } | |
# ;; | |
# *) | |
# _pkillf() { | |
# while IFS= read -r pid; do | |
# kill "$pid" || true | |
# done << EOF | |
# $(ps -x -o pid= -o command= | grep -E "$@" | cut -d' ' -f1) | |
# EOF | |
# } | |
# ;; | |
# esac | |
# fi | |
# | |
# _maximize_pane() { | |
# current_session=${1:-$(tmux display -p '#{session_name}')} | |
# current_pane=${2:-$(tmux display -p '#{pane_id}')} | |
# | |
# dead_panes=$(tmux list-panes -s -t "$current_session" -F '#{pane_dead} #{pane_id} #{pane_start_command}' | grep -E -o '^1 %.+maximized.+$' || true) | |
# restore=$(printf "%s" "$dead_panes" | sed -n -E -e "s/^1 $current_pane .+maximized.+'(%[0-9]+)'\"?$/tmux swap-pane -s \1 -t $current_pane \; kill-pane -t $current_pane/p"\ | |
# -e "s/^1 (%[0-9]+) .+maximized.+'$current_pane'\"?$/tmux swap-pane -s \1 -t $current_pane \; kill-pane -t \1/p") | |
# | |
# if [ -z "$restore" ]; then | |
# [ "$(tmux list-panes -t "$current_session:" | wc -l | sed 's/^ *//g')" -eq 1 ] && tmux display "Can't maximize with only one pane" && return | |
# current_pane_height=$(tmux display -t "$current_pane" -p "#{pane_height}") | |
# info=$(tmux new-window -t "$current_session:" -F "#{session_name}:#{window_index}.#{pane_id}" -P "maximized... 2>/dev/null & tmux setw -t \"$current_session:\" remain-on-exit on; printf \"\\033[\$(tput lines);0fPane has been maximized, press <prefix>+ to restore\n\" '$current_pane'") | |
# session_window=${info%.*} | |
# new_pane=${info#*.} | |
# | |
# retry=1000 | |
# while [ x"$(tmux list-panes -t "$session_window" -F '#{session_name}:#{window_index}.#{pane_id} #{pane_dead}' 2>/dev/null)" != x"$info 1" ] && [ "$retry" -ne 0 ]; do | |
# sleep 0.1 | |
# retry=$((retry - 1)) | |
# done | |
# if [ "$retry" -eq 0 ]; then | |
# tmux display 'Unable to maximize pane' | |
# fi | |
# | |
# tmux setw -t "$session_window" remain-on-exit off \; swap-pane -s "$current_pane" -t "$new_pane" | |
# else | |
# $restore || tmux kill-pane | |
# fi | |
# } | |
# | |
# _toggle_mouse() { | |
# old=$(tmux show -gv mouse) | |
# new="" | |
# | |
# if [ "$old" = "on" ]; then | |
# new="off" | |
# else | |
# new="on" | |
# fi | |
# | |
# tmux set -g mouse $new | |
# } | |
# | |
# _battery_info() { | |
# count=0 | |
# charge=0 | |
# case "$_uname_s" in | |
# *Darwin*) | |
# while IFS= read -r line; do | |
# [ -z "$line" ] && continue | |
# discharging=$(printf '%s' "$line" | grep -qi "discharging" && echo "true" || echo "false") | |
# percentage=$(printf '%s' "$line" | grep -E -o '[0-9]+%') | |
# charge=$(awk -v charge="$charge" -v percentage="${percentage%%%}" 'BEGIN { print charge + percentage / 100 }') | |
# count=$((count + 1)) | |
# done << EOF | |
# $(pmset -g batt | grep 'InternalBattery') | |
# EOF | |
# ;; | |
# *Linux*) | |
# while IFS= read -r batpath; do | |
# [ -z "$batpath" ] && continue | |
# grep -i -q device "$batpath/scope" 2> /dev/null && continue | |
# | |
# discharging=$(grep -qi "discharging" "$batpath/status" && echo "true" || echo "false") | |
# bat_capacity="$batpath/capacity" | |
# if [ -r "$bat_capacity" ]; then | |
# charge=$(awk -v charge="$charge" -v capacity="$(cat "$bat_capacity")" 'BEGIN { print charge + (capacity > 100 ? 100 : capacity) / 100 }') | |
# else | |
# bat_energy_full="$batpath/energy_full" | |
# bat_energy_now="$batpath/energy_now" | |
# if [ -r "$bat_energy_full" ] && [ -r "$bat_energy_now" ]; then | |
# charge=$(awk -v charge="$charge" -v energy_now="$(cat "$bat_energy_now")" -v energy_full="$(cat "$bat_energy_full")" 'BEGIN { print charge + energy_now / energy_full }') | |
# fi | |
# fi | |
# count=$((count + 1)) | |
# done << EOF | |
# $(find /sys/class/power_supply -maxdepth 1 -iname '*bat*') | |
# EOF | |
# ;; | |
# *CYGWIN*|*MSYS*|*MINGW*) | |
# while IFS= read -r line; do | |
# [ -z "$line" ] && continue | |
# discharging=$(printf '%s' "$line" | awk '{ s = ($1 == 1) ? "true" : "false"; print s }') | |
# charge=$(printf '%s' "$line" | awk -v charge="$charge" '{ print charge + $2 / 100 }') | |
# count=$((count + 1)) | |
# done << EOF | |
# $(wmic path Win32_Battery get BatteryStatus, EstimatedChargeRemaining 2> /dev/null | tr -d '\r' | tail -n +2 || true) | |
# EOF | |
# ;; | |
# *OpenBSD*) | |
# for batid in 0 1 2; do | |
# sysctl -n "hw.sensors.acpibat$batid.raw0" 2>&1 | grep -q 'not found' && continue | |
# discharging=$(sysctl -n "hw.sensors.acpibat$batid.raw0" | grep -q 1 && echo "true" || echo "false") | |
# if sysctl -n "hw.sensors.acpibat$batid" | grep -q amphour; then | |
# charge=$(awk -v charge="$charge" -v remaining="$(sysctl -n hw.sensors.acpibat$batid.amphour3 | cut -d' ' -f1)" -v full="$(sysctl -n hw.sensors.acpibat$batid.amphour0 | cut -d' ' -f1)" 'BEGIN { print charge + remaining / full }') | |
# else | |
# charge=$(awk -v charge="$charge" -v remaining="$(sysctl -n hw.sensors.acpibat$batid.watthour3 | cut -d' ' -f1)" -v full="$(sysctl -n hw.sensors.acpibat$batid.watthour0 | cut -d' ' -f1)" 'BEGIN { print charge + remaining / full }') | |
# fi | |
# count=$((count + 1)) | |
# done | |
# ;; | |
# esac | |
# [ "$count" -ne 0 ] && charge=$(awk -v charge="$charge" -v count="$count" 'BEGIN { print charge / count }') || true | |
# } | |
# | |
# _battery_status() { | |
# _battery_info | |
# if [ "$charge" = 0 ]; then | |
# tmux set -ug '@battery_status' | |
# return | |
# fi | |
# | |
# battery_status_charging=$1 | |
# battery_status_discharging=$2 | |
# if [ x"$discharging" = x"true" ]; then | |
# battery_status="$battery_status_discharging" | |
# else | |
# battery_status="$battery_status_charging" | |
# fi | |
# | |
# tmux set -g '@battery_status' "$battery_status" | |
# } | |
# | |
# _battery_bar() { | |
# _battery_info | |
# if [ "$charge" = 0 ]; then | |
# tmux set -ug '@battery_bar' \;\ | |
# set -ug '@battery_hbar' \;\ | |
# set -ug '@battery_vbar' \;\ | |
# set -ug '@battery_percentage' | |
# return | |
# fi | |
# | |
# battery_bar_symbol_full=$1 | |
# battery_bar_symbol_empty=$2 | |
# battery_bar_length=$3 | |
# battery_bar_palette=$4 | |
# battery_hbar_palette=$5 | |
# battery_vbar_palette=$6 | |
# | |
# if [ x"$battery_bar_length" = x"auto" ]; then | |
# columns=$(tmux -q display -p '#{client_width}' 2> /dev/null || echo 80) | |
# if [ "$columns" -ge 80 ]; then | |
# battery_bar_length=10 | |
# else | |
# battery_bar_length=5 | |
# fi | |
# fi | |
# | |
# if echo "$battery_bar_palette" | grep -q -E '^heat|gradient(,[#a-z0-9]{7,9})?$'; then | |
# # shellcheck disable=SC2086 | |
# { set -f; IFS=,; set -- $battery_bar_palette; unset IFS; set +f; } | |
# palette_style=$1 | |
# battery_bg=${2:-none} | |
# [ x"$palette_style" = x"gradient" ] && \ | |
# palette="196 202 208 214 220 226 190 154 118 82 46" | |
# [ x"$palette_style" = x"heat" ] && \ | |
# palette="243 245 247 144 143 142 184 214 208 202 196" | |
# | |
# palette=$(echo "$palette" | awk -v n="$battery_bar_length" '{ for (i = 0; i < n; ++i) printf $(1 + (i * NF / n))" " }') | |
# eval set -- "$palette" | |
# | |
# full=$(awk "BEGIN { printf \"%.0f\", ($charge) * $battery_bar_length }") | |
# battery_bar="#[bg=$battery_bg]" | |
# # shellcheck disable=SC2046 | |
# [ "$full" -gt 0 ] && \ | |
# battery_bar="$battery_bar$(printf "#[fg=colour%s]$battery_bar_symbol_full" $(echo "$palette" | cut -d' ' -f1-"$full"))" | |
# # shellcheck disable=SC2046 | |
# empty=$((battery_bar_length - full)) | |
# # shellcheck disable=SC2046 | |
# [ "$empty" -gt 0 ] && \ | |
# battery_bar="$battery_bar$(printf "#[fg=colour%s]$battery_bar_symbol_empty" $(echo "$palette" | cut -d' ' -f$((full + 1))-$((full + empty))))" | |
# eval battery_bar="$battery_bar#[fg=colour\${$((full == 0 ? 1 : full))}]" | |
# elif echo "$battery_bar_palette" | grep -q -E '^(([#a-z0-9]{7,9}|none),?){3}$'; then | |
# # shellcheck disable=SC2086 | |
# { set -f; IFS=,; set -- $battery_bar_palette; unset IFS; set +f; } | |
# battery_full_fg=$1 | |
# battery_empty_fg=$2 | |
# battery_bg=$3 | |
# | |
# full=$(awk "BEGIN { printf \"%.0f\", ($charge) * $battery_bar_length }") | |
# [ x"$battery_bg" != x"none" ] && \ | |
# battery_bar="#[bg=$battery_bg]" | |
# #shellcheck disable=SC2046 | |
# [ "$full" -gt 0 ] && \ | |
# battery_bar="$battery_bar#[fg=$battery_full_fg]$(printf "%0.s$battery_bar_symbol_full" $(seq 1 "$full"))" | |
# empty=$((battery_bar_length - full)) | |
# #shellcheck disable=SC2046 | |
# [ "$empty" -gt 0 ] && \ | |
# battery_bar="$battery_bar#[fg=$battery_empty_fg]$(printf "%0.s$battery_bar_symbol_empty" $(seq 1 "$empty"))" && \ | |
# battery_bar="$battery_bar#[fg=$battery_empty_fg]" | |
# fi | |
# | |
# if echo "$battery_hbar_palette" | grep -q -E '^heat|gradient(,[#a-z0-9]{7,9})?$'; then | |
# # shellcheck disable=SC2086 | |
# { set -f; IFS=,; set -- $battery_hbar_palette; unset IFS; set +f; } | |
# palette_style=$1 | |
# [ x"$palette_style" = x"gradient" ] && \ | |
# palette="196 202 208 214 220 226 190 154 118 82 46" | |
# [ x"$palette_style" = x"heat" ] && \ | |
# palette="233 234 235 237 239 241 243 245 247 144 143 142 184 214 208 202 196" | |
# | |
# palette=$(echo "$palette" | awk -v n="$battery_bar_length" '{ for (i = 0; i < n; ++i) printf $(1 + (i * NF / n))" " }') | |
# eval set -- "$palette" | |
# | |
# full=$(awk "BEGIN { printf \"%.0f\", ($charge) * $battery_bar_length }") | |
# eval battery_hbar_fg="colour\${$((full == 0 ? 1 : full))}" | |
# elif echo "$battery_hbar_palette" | grep -q -E '^([#a-z0-9]{7,9},?){3}$'; then | |
# # shellcheck disable=SC2086 | |
# { set -f; IFS=,; set -- $battery_hbar_palette; unset IFS; set +f; } | |
# | |
# # shellcheck disable=SC2046 | |
# eval $(awk "BEGIN { printf \"battery_hbar_fg=$%d\", (($charge) - 0.001) * $# + 1 }") | |
# fi | |
# | |
# eval set -- "▏ ▎ ▍ ▌ ▋ ▊ ▉ █" | |
# # shellcheck disable=SC2046 | |
# eval $(awk "BEGIN { printf \"battery_hbar_symbol=$%d\", ($charge) * ($# - 1) + 1 }") | |
# battery_hbar="#[fg=${battery_hbar_fg?}]${battery_hbar_symbol?}" | |
# | |
# if echo "$battery_vbar_palette" | grep -q -E '^heat|gradient(,[#a-z0-9]{7,9})?$'; then | |
# # shellcheck disable=SC2086 | |
# { set -f; IFS=,; set -- $battery_vbar_palette; unset IFS; set +f; } | |
# palette_style=$1 | |
# [ x"$palette_style" = x"gradient" ] && \ | |
# palette="196 202 208 214 220 226 190 154 118 82 46" | |
# [ x"$palette_style" = x"heat" ] && \ | |
# palette="233 234 235 237 239 241 243 245 247 144 143 142 184 214 208 202 196" | |
# | |
# palette=$(echo "$palette" | awk -v n="$battery_bar_length" '{ for (i = 0; i < n; ++i) printf $(1 + (i * NF / n))" " }') | |
# eval set -- "$palette" | |
# | |
# full=$(awk "BEGIN { printf \"%.0f\", ($charge) * $battery_bar_length }") | |
# eval battery_vbar_fg="colour\${$((full == 0 ? 1 : full))}" | |
# elif echo "$battery_vbar_palette" | grep -q -E '^([#a-z0-9]{7,9},?){3}$'; then | |
# # shellcheck disable=SC2086 | |
# { set -f; IFS=,; set -- $battery_vbar_palette; unset IFS; set +f; } | |
# | |
# # shellcheck disable=SC2046 | |
# eval $(awk "BEGIN { printf \"battery_vbar_fg=$%d\", (($charge) - 0.001) * $# + 1 }") | |
# fi | |
# | |
# eval set -- "▁ ▂ ▃ ▄ ▅ ▆ ▇ █" | |
# # shellcheck disable=SC2046 | |
# eval $(awk "BEGIN { printf \"battery_vbar_symbol=$%d\", ($charge) * ($# - 1) + 1 }") | |
# battery_vbar="#[fg=${battery_vbar_fg?}]${battery_vbar_symbol?}" | |
# | |
# battery_percentage="$(awk "BEGIN { printf \"%.0f%%\", ($charge) * 100 }")" | |
# | |
# tmux set -g '@battery_status' "$battery_status" \;\ | |
# set -g '@battery_bar' "$battery_bar" \;\ | |
# set -g '@battery_hbar' "$battery_hbar" \;\ | |
# set -g '@battery_vbar' "$battery_vbar" \;\ | |
# set -g '@battery_percentage' "$battery_percentage" | |
# } | |
# | |
# _tty_info() { | |
# tty="${1##/dev/}" | |
# case "$_uname_s" in | |
# *CYGWIN*) | |
# ps -al | tail -n +2 | awk -v tty="$tty" ' | |
# ((/ssh/ && !/-W/) || !/ssh/) && $5 == tty { | |
# user[$1] = $6; parent[$1] = $2; child[$2] = $1 | |
# } | |
# END { | |
# for (i in parent) | |
# { | |
# j = i | |
# while (parent[j]) | |
# j = parent[j] | |
# | |
# if (!(i in child) && j != 1) | |
# { | |
# file = "/proc/" i "/cmdline"; getline command < file; close(file) | |
# gsub(/\0/, " ", command) | |
# "id -un " user[i] | getline username | |
# print i":"username":"command | |
# exit | |
# } | |
# } | |
# } | |
# ' | |
# ;; | |
# *) | |
# ps -t "$tty" -o user=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -o pid= -o ppid= -o command= | awk ' | |
# NR > 1 && ((/ssh/ && !/-W/) || !/ssh/) { | |
# user[$2] = $1; parent[$2] = $3; child[$3] = $2; pid=$2; $1 = $2 = $3 = ""; command[pid] = substr($0,4) | |
# } | |
# END { | |
# for (i in parent) | |
# { | |
# j = i | |
# while (parent[j]) | |
# j = parent[j] | |
# | |
# if (!(i in child) && j != 1) | |
# { | |
# print i":"user[i]":"command[i] | |
# exit | |
# } | |
# } | |
# } | |
# ' | |
# ;; | |
# esac | |
# } | |
# | |
# _ssh_or_mosh_args() { | |
# case "$1" in | |
# *ssh*) | |
# args=$(printf '%s' "$1" | perl -n -e 'print if s/(.*?)\bssh\b\s+(.*)/\2/') | |
# ;; | |
# *mosh-client*) | |
# args=$(printf '%s' "$1" | sed -E -e 's/.*mosh-client -# (.*)\|.*$/\1/' -e 's/-[^ ]*//g' -e 's/\d:\d//g') | |
# ;; | |
# esac | |
# | |
# printf '%s' "$args" | |
# } | |
# | |
# _username() { | |
# tty=${1:-$(tmux display -p '#{pane_tty}')} | |
# ssh_only=$2 | |
# | |
# tty_info=$(_tty_info "$tty") | |
# command=${tty_info#*:} | |
# command=${command#*:} | |
# | |
# ssh_or_mosh_args=$(_ssh_or_mosh_args "$command") | |
# if [ -n "$ssh_or_mosh_args" ]; then | |
# # shellcheck disable=SC2086 | |
# username=$(ssh -G $ssh_or_mosh_args 2>/dev/null | awk '/^user / { print $2; exit }') | |
# # shellcheck disable=SC2086 | |
# [ -z "$username" ] && username=$(ssh -T -o ControlPath=none -o ProxyCommand="sh -c 'echo %%username%% %r >&2'" $ssh_or_mosh_args 2>&1 | awk '/^%username% / { print $2; exit }') | |
# else | |
# if ! _is_enabled "$ssh_only"; then | |
# username=${tty_info#*:} | |
# username=${username%%:*} | |
# fi | |
# fi | |
# | |
# printf '%s\n' "$username" | |
# } | |
# | |
# _hostname() { | |
# tty=${1:-$(tmux display -p '#{pane_tty}')} | |
# ssh_only=$2 | |
# full=$3 | |
# h_or_H=$4 | |
# | |
# tty_info=$(_tty_info "$tty") | |
# command=${tty_info#*:} | |
# command=${command#*:} | |
# | |
# ssh_or_mosh_args=$(_ssh_or_mosh_args "$command") | |
# if [ -n "$ssh_or_mosh_args" ]; then | |
# # shellcheck disable=SC2086 | |
# hostname=$(ssh -G $ssh_or_mosh_args 2>/dev/null | awk '/^hostname / { print $2; exit }') | |
# # shellcheck disable=SC2086 | |
# [ -z "$hostname" ] && hostname=$(ssh -T -o ControlPath=none -o ProxyCommand="sh -c 'echo %%hostname%% %h >&2'" $ssh_or_mosh_args 2>&1 | awk '/^%hostname% / { print $2; exit }') | |
# | |
# if ! _is_enabled "$full"; then | |
# case "$hostname" in | |
# *[a-z-].*) | |
# hostname=${hostname%%.*} | |
# ;; | |
# 127.0.0.1) | |
# hostname="localhost" | |
# ;; | |
# esac | |
# fi | |
# else | |
# if ! _is_enabled "$ssh_only"; then | |
# hostname="$h_or_H" | |
# fi | |
# fi | |
# | |
# printf '%s\n' "$hostname" | |
# } | |
# | |
# _root() { | |
# tty=${1:-$(tmux display -p '#{pane_tty}')} | |
# root=$2 | |
# | |
# username=$(_username "$tty" false) | |
# | |
# [ x"$username" = x"root" ] && echo "$root" | |
# } | |
# | |
# _uptime() { | |
# case "$_uname_s" in | |
# *Darwin*|*FreeBSD*) | |
# boot=$(sysctl -q -n kern.boottime | awk -F'[ ,:]+' '{ print $4 }') | |
# now=$(date +%s) | |
# ;; | |
# *Linux*|*CYGWIN*|*MSYS*|*MINGW*) | |
# boot=0 | |
# now=$(cut -d' ' -f1 < /proc/uptime) | |
# ;; | |
# *OpenBSD*) | |
# boot=$(sysctl -n kern.boottime) | |
# now=$(date +%s) | |
# esac | |
# # shellcheck disable=SC1004 | |
# awk -v boot="$boot" -v now="$now" ' | |
# BEGIN { | |
# uptime = now - boot | |
# y = int(uptime / 31536000) | |
# dy = int(uptime / 86400) % 365 | |
# d = int(uptime / 86400) | |
# h = int(uptime / 3600) % 24 | |
# m = int(uptime / 60) % 60 | |
# s = int(uptime) % 60 | |
# | |
# system("tmux set -g @uptime_y " y + 0 " \\; " \ | |
# "set -g @uptime_dy " dy + 0 " \\; " \ | |
# "set -g @uptime_d " d + 0 " \\; " \ | |
# "set -g @uptime_h " h + 0 " \\; " \ | |
# "set -g @uptime_m " m + 0 " \\; " \ | |
# "set -g @uptime_s " s + 0) | |
# }' | |
# } | |
# | |
# _loadavg() { | |
# case "$_uname_s" in | |
# *Darwin*|*FreeBSD*) | |
# tmux set -g @loadavg "$(sysctl -q -n vm.loadavg | cut -d' ' -f2)" | |
# ;; | |
# *Linux*|*CYGWIN*) | |
# tmux set -g @loadavg "$(cut -d' ' -f1 < /proc/loadavg)" | |
# ;; | |
# *OpenBSD*) | |
# tmux set -g @loadavg "$(sysctl -q -n vm.loadavg | cut -d' ' -f1)" | |
# ;; | |
# esac | |
# } | |
# | |
# _split_window_ssh() { | |
# tty=${1:-$(tmux display -p '#{pane_tty}')} | |
# shift | |
# | |
# tty_info=$(_tty_info "$tty") | |
# command=${tty_info#*:} | |
# command=${command#*:} | |
# | |
# case "$command" in | |
# *mosh-client*) | |
# # shellcheck disable=SC2046 | |
# tmux split-window "$@" mosh $(echo "$command" | sed -E -e 's/.*mosh-client -# (.*)\|.*$/\1/') | |
# ;; | |
# *ssh*) | |
# # shellcheck disable=SC2046 | |
# tmux split-window "$@" $(echo "$command" | sed -e 's/;/\\;/g') | |
# ;; | |
# *) | |
# tmux split-window "$@" | |
# esac | |
# } | |
# | |
# _split_window() { | |
# _split_window_ssh "$@" | |
# } | |
# | |
# _apply_overrides() { | |
# tmux_conf_theme_24b_colour=${tmux_conf_theme_24b_colour:-false} | |
# tmux_conf_24b_colour=${tmux_conf_24b_colour:-$tmux_conf_theme_24b_colour} | |
# if _is_enabled "$tmux_conf_24b_colour"; then | |
# case "$TERM" in | |
# screen-*|tmux-*) | |
# ;; | |
# *) | |
# tmux set-option -ga terminal-overrides ",*256col*:Tc" | |
# ;; | |
# esac | |
# fi | |
# } | |
# | |
# _apply_bindings() { | |
# cfg=$(mktemp) && trap 'rm -f $cfg*' EXIT | |
# | |
# tmux list-keys | grep -vF 'tmux.conf.local' | grep -E 'new-window|split(-|_)window|new-session|copy-selection|copy-pipe' > "$cfg" | |
# | |
# # tmux 3.0 doesn't include 02254d1e5c881be95fd2fc37b4c4209640b6b266 and the | |
# # output of list-keys can be truncated | |
# perl -p -i -e "s/'#\{\?window_zoomed_flag,Unzoom,Zoom\}' 'z' \{resize-pane -$/'#{?window_zoomed_flag,Unzoom,Zoom}' 'z' {resize-pane -Z}\"/g" "$cfg" | |
# | |
# perl -p -i -e " | |
# s/\bnew-window\b([^;}\n]*?)(?:\s+-c\s+((?:\\\\\")?|\"?|'?)#\{pane_current_path\}\2)/new-window\1/g | |
# ; | |
# s/\brun-shell\b\s+(\"|')cut\s+-c3-\s+~\/\.tmux\.conf\s+\|\s+sh\s+-s\s+_split_window\s+#\{pane_tty\}([^\n\1]*)(\s+-c\s+((?:\\\\\")?|\"?|'?)#\{pane_current_path\}\4)([^\n\1]*)\1/run-shell \1cut -c3- ~\/.tmux.conf | sh -s _split_window #{pane_tty}\2\5\1/g | |
# ; | |
# s/\brun-shell\b(\s+((?:\\\\\")?|\"?|'?)cut\s+-c3-\s+~\/\.tmux\.conf\s+\|\s+sh\s+-s\s+_split_window\s+((?:\\\\\")?|\"?|'?)#\{pane_tty\}\3)(.*?)\2/split-window\4/g | |
# ; | |
# s/\bsplit-window\b([^;}\n]*?)(?:\s+-c\s+((?:\\\\\")?|\"?|'?)#\{pane_current_path\}\2)/split-window\1/g" \ | |
# "$cfg" | |
# | |
# tmux_conf_new_window_retain_current_path=${tmux_conf_new_window_retain_current_path:-false} | |
# if _is_enabled "$tmux_conf_new_window_retain_current_path"; then | |
# perl -p -i -e " | |
# s/\bnew-window\b(?!\s+-)/{$&}/g if /\bdisplay-menu\b/ | |
# ; | |
# s/\bnew-window\b/new-window -c '#\{pane_current_path\}'/g" \ | |
# "$cfg" | |
# fi | |
# | |
# perl -p -i -e " | |
# s/\bsplit-window\b((?:(?:[ \t]+-[bdfhIvP])|(?:[ \t]+-[celtF][ \t]+(?!\bssh\b)[^\s]+))*)?(?:\s+(\bssh\b))((?:(?:[ \t]+-[bdfhIvP])|(?:[ \t]+-[celtF][ \t]+(?!\bssh\b)[^\s]+))*)?/run-shell 'cut -c3- ~\/\.tmux\.conf | sh -s _split_window_ssh #\{pane_tty\}\1'/g if /\bsplit-window\b((?:(?:[ \t]+-[bdfhIvP])|(?:[ \t]+-[celtF][ \t]+(?!ssh)[^\s]+))*)?(?:\s+(ssh))((?:(?:[ \t]+-[bdfhIvP])|(?:[ \t]+-[celtF][ \t]+(?!ssh)[^\s]+))*)?/"\ | |
# "$cfg" | |
# | |
# tmux_conf_new_pane_retain_current_path=${tmux_conf_new_pane_retain_current_path:-true} | |
# tmux_conf_new_pane_reconnect_ssh=${tmux_conf_new_pane_reconnect_ssh:-false} | |
# if _is_enabled "$tmux_conf_new_pane_reconnect_ssh"; then | |
# perl -p -i -e "s/\bsplit-window\b([^;}\n\"]*)/run-shell 'cut -c3- ~\/\.tmux\.conf | sh -s _split_window #\{pane_tty\}\1'/g" "$cfg" | |
# fi | |
# | |
# if _is_enabled "$tmux_conf_new_pane_retain_current_path"; then | |
# perl -p -i -e " | |
# s/\bsplit-window\b(?!\s+-)/{$&}/g if /\bdisplay-menu\b/ | |
# ; | |
# s/\bsplit-window\b/split-window -c '#{pane_current_path}'\1/g | |
# ; | |
# s/\brun-shell\b\s+'cut\s+-c3-\s+~\/\.tmux\.conf\s+\|\s+sh\s+-s\s+_split_window(_ssh)?\s+#\{pane_tty\}([^}\n']*)'/run-shell 'cut -c3- ~\/.tmux.conf | sh -s _split_window\1 #\{pane_tty\} -c \\\\\"#\{pane_current_path\}\\\\\"\2'/g if /\bdisplay-menu\b/ | |
# ; | |
# s/\brun-shell\b\s+'cut\s+-c3-\s+~\/\.tmux\.conf\s+\|\s+sh\s+-s\s+_split_window(_ssh)?\s+#\{pane_tty\}([^}\n']*)'/run-shell 'cut -c3- ~\/.tmux.conf | sh -s _split_window\1 #\{pane_tty\} -c \"#\{pane_current_path\}\"\2'/g" \ | |
# "$cfg" | |
# fi | |
# | |
# tmux_conf_new_session_prompt=${tmux_conf_new_session_prompt:-false} | |
# if _is_enabled "$tmux_conf_new_session_prompt"; then | |
# perl -p -i \ | |
# -e "s/(?<!command-prompt -p )\b(new-session)\b(?!\s+-)/{$&}/g if /\bdisplay-menu\b/" \ | |
# -e ';' \ | |
# -e "s/(?<!\bcommand-prompt -p )\bnew-session\b(?! -s)/command-prompt -p new-session 'new-session -s \"%%\"'/g" \ | |
# "$cfg" | |
# else | |
# perl -p -i -e "s/\bcommand-prompt\s+-p\s+new-session\s+'new-session\s+-s\s+\"%%\"'/new-session/g" "$cfg" | |
# fi | |
# | |
# tmux_conf_copy_to_os_clipboard=${tmux_conf_copy_to_os_clipboard:-false} | |
# command -v xsel > /dev/null 2>&1 && command='xsel -i -b' | |
# ! command -v xsel > /dev/null 2>&1 && command -v xclip > /dev/null 2>&1 && command='xclip -i -selection clipboard > \/dev\/null 2>\&1' | |
# command -v pbcopy > /dev/null 2>&1 && command='pbcopy' | |
# command -v reattach-to-user-namespace > /dev/null 2>&1 && command='reattach-to-user-namespace pbcopy' | |
# command -v clip.exe > /dev/null 2>&1 && command='clip\.exe' | |
# [ -c /dev/clipboard ] && command='cat > \/dev\/clipboard' | |
# | |
# if [ -n "$command" ]; then | |
# if _is_enabled "$tmux_conf_copy_to_os_clipboard"; then | |
# perl -p -i -e "s/(?!.*?$command)\bcopy-(?:selection|pipe)(-and-cancel)?\b/copy-pipe\1 '$command'/g" "$cfg" | |
# else | |
# if [ $_tmux_version -ge 320 ]; then | |
# perl -p -i -e "s/\bcopy-pipe(-and-cancel)?\b\s+(\"|')?$command\2?/copy-pipe\1/g" "$cfg" | |
# else | |
# perl -p -i -e "s/\bcopy-pipe(-and-cancel)?\b\s+(\"|')?$command\2?/copy-selection\1/g" "$cfg" | |
# fi | |
# fi | |
# fi | |
# | |
# # until tmux >= 3.0, output of tmux list-keys can't be consumed back by tmux source-file without applying some escapings | |
# awk < "$cfg" \ | |
# '{i = $2 == "-T" ? 4 : 5; gsub(/^[;]$/, "\\\\&", $i); gsub(/^[$"#~]$/, "'"'"'&'"'"'", $i); gsub(/^['"'"']$/, "\"&\"", $i); print}' > "$cfg.in" | |
# | |
# # ignore bindings with errors | |
# if ! tmux source-file "$cfg.in"; then | |
# verbose_flag=$(tmux source-file -v /dev/null 2> /dev/null && printf -- '-v' || true) | |
# while ! out=$(tmux source-file "$verbose_flag" "$cfg.in"); do | |
# line=$(printf "%s" "$out" | tail -1 | cut -d':' -f2) | |
# perl -n -i -e "if ($. != $line) { print }" "$cfg.in" | |
# done | |
# fi | |
# } | |
# | |
# _apply_theme() { | |
# | |
# # -- default theme ----------------------------------------------------- | |
# | |
# tmux_conf_theme_colour_1=${tmux_conf_theme_colour_1:-#080808} # dark gray | |
# tmux_conf_theme_colour_2=${tmux_conf_theme_colour_2:-#303030} # gray | |
# tmux_conf_theme_colour_3=${tmux_conf_theme_colour_3:-#8a8a8a} # light gray | |
# tmux_conf_theme_colour_4=${tmux_conf_theme_colour_4:-#00afff} # light blue | |
# tmux_conf_theme_colour_5=${tmux_conf_theme_colour_5:-#ffff00} # yellow | |
# tmux_conf_theme_colour_6=${tmux_conf_theme_colour_6:-#080808} # dark gray | |
# tmux_conf_theme_colour_7=${tmux_conf_theme_colour_7:-#e4e4e4} # white | |
# tmux_conf_theme_colour_8=${tmux_conf_theme_colour_8:-#080808} # dark gray | |
# tmux_conf_theme_colour_9=${tmux_conf_theme_colour_9:-#ffff00} # yellow | |
# tmux_conf_theme_colour_10=${tmux_conf_theme_colour_10:-#ff00af} # pink | |
# tmux_conf_theme_colour_11=${tmux_conf_theme_colour_11:-#5fff00} # green | |
# tmux_conf_theme_colour_12=${tmux_conf_theme_colour_12:-#8a8a8a} # light gray | |
# tmux_conf_theme_colour_13=${tmux_conf_theme_colour_13:-#e4e4e4} # white | |
# tmux_conf_theme_colour_14=${tmux_conf_theme_colour_14:-#080808} # dark gray | |
# tmux_conf_theme_colour_15=${tmux_conf_theme_colour_15:-#080808} # dark gray | |
# tmux_conf_theme_colour_16=${tmux_conf_theme_colour_16:-#d70000} # red | |
# tmux_conf_theme_colour_17=${tmux_conf_theme_colour_17:-#e4e4e4} # white | |
# | |
# # -- panes ------------------------------------------------------------- | |
# | |
# tmux_conf_theme_window_fg=${tmux_conf_theme_window_fg:-default} | |
# tmux_conf_theme_window_bg=${tmux_conf_theme_window_bg:-default} | |
# tmux_conf_theme_highlight_focused_pane=${tmux_conf_theme_highlight_focused_pane:-false} | |
# tmux_conf_theme_focused_pane_fg=${tmux_conf_theme_focused_pane_fg:-default} | |
# tmux_conf_theme_focused_pane_bg=${tmux_conf_theme_focused_pane_bg:-$tmux_conf_theme_colour_2} | |
# | |
# window_style="fg=$tmux_conf_theme_window_fg,bg=$tmux_conf_theme_window_bg" | |
# if _is_enabled "$tmux_conf_theme_highlight_focused_pane"; then | |
# window_active_style="fg=$tmux_conf_theme_focused_pane_fg,bg=$tmux_conf_theme_focused_pane_bg" | |
# else | |
# window_active_style="default" | |
# fi | |
# | |
# tmux_conf_theme_pane_border_style=${tmux_conf_theme_pane_border_style:-thin} | |
# tmux_conf_theme_pane_border=${tmux_conf_theme_pane_border:-$tmux_conf_theme_colour_2} | |
# tmux_conf_theme_pane_active_border=${tmux_conf_theme_pane_active_border:-$tmux_conf_theme_colour_4} | |
# tmux_conf_theme_pane_border_fg=${tmux_conf_theme_pane_border_fg:-$tmux_conf_theme_pane_border} | |
# tmux_conf_theme_pane_active_border_fg=${tmux_conf_theme_pane_active_border_fg:-$tmux_conf_theme_pane_active_border} | |
# case "$tmux_conf_theme_pane_border_style" in | |
# fat) | |
# tmux_conf_theme_pane_border_bg=${tmux_conf_theme_pane_border_bg:-$tmux_conf_theme_pane_border_fg} | |
# tmux_conf_theme_pane_active_border_bg=${tmux_conf_theme_pane_active_border_bg:-$tmux_conf_theme_pane_active_border_fg} | |
# ;; | |
# thin|*) | |
# tmux_conf_theme_pane_border_bg=${tmux_conf_theme_pane_border_bg:-default} | |
# tmux_conf_theme_pane_active_border_bg=${tmux_conf_theme_pane_active_border_bg:-default} | |
# ;; | |
# esac | |
# | |
# tmux_conf_theme_pane_indicator=${tmux_conf_theme_pane_indicator:-$tmux_conf_theme_colour_4} | |
# tmux_conf_theme_pane_active_indicator=${tmux_conf_theme_pane_active_indicator:-$tmux_conf_theme_colour_4} | |
# | |
# # -- status line ------------------------------------------------------- | |
# | |
# tmux_conf_theme_left_separator_main=$(_decode_unicode_escapes "${tmux_conf_theme_left_separator_main-}") | |
# tmux_conf_theme_left_separator_sub=$(_decode_unicode_escapes "${tmux_conf_theme_left_separator_sub-|}") | |
# tmux_conf_theme_right_separator_main=$(_decode_unicode_escapes "${tmux_conf_theme_right_separator_main-}") | |
# tmux_conf_theme_right_separator_sub=$(_decode_unicode_escapes "${tmux_conf_theme_right_separator_sub-|}") | |
# | |
# tmux_conf_theme_message_fg=${tmux_conf_theme_message_fg:-$tmux_conf_theme_colour_1} | |
# tmux_conf_theme_message_bg=${tmux_conf_theme_message_bg:-$tmux_conf_theme_colour_5} | |
# tmux_conf_theme_message_attr=${tmux_conf_theme_message_attr:-bold} | |
# | |
# tmux_conf_theme_message_command_fg=${tmux_conf_theme_message_command_fg:-$tmux_conf_theme_colour_5} | |
# tmux_conf_theme_message_command_bg=${tmux_conf_theme_message_command_bg:-$tmux_conf_theme_colour_1} | |
# tmux_conf_theme_message_command_attr=${tmux_conf_theme_message_command_attr:-bold} | |
# | |
# tmux_conf_theme_mode_fg=${tmux_conf_theme_mode_fg:-$tmux_conf_theme_colour_1} | |
# tmux_conf_theme_mode_bg=${tmux_conf_theme_mode_bg:-$tmux_conf_theme_colour_5} | |
# tmux_conf_theme_mode_attr=${tmux_conf_theme_mode_attr:-bold} | |
# | |
# tmux_conf_theme_status_fg=${tmux_conf_theme_status_fg:-$tmux_conf_theme_colour_3} | |
# tmux_conf_theme_status_bg=${tmux_conf_theme_status_bg:-$tmux_conf_theme_colour_1} | |
# tmux_conf_theme_status_attr=${tmux_conf_theme_status_attr:-none} | |
# | |
# tmux_conf_theme_terminal_title=${tmux_conf_theme_terminal_title:-#h ❐ #S ● #I #W} | |
# | |
# tmux_conf_theme_terminal_title=$(echo "$tmux_conf_theme_terminal_title" | sed \ | |
# -e 's%#{circled_window_index}%#(cut -c3- ~/.tmux.conf | sh -s _circled #I)%g' \ | |
# -e 's%#{circled_session_name}%#(cut -c3- ~/.tmux.conf | sh -s _circled #S)%g' \ | |
# -e 's%#{username}%#(cut -c3- ~/.tmux.conf | sh -s _username #{pane_tty} false #D)%g' \ | |
# -e 's%#{hostname}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} false false #h #D)%g' \ | |
# -e 's%#{hostname_full}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} false true #H #D)%g' \ | |
# -e 's%#{username_ssh}%#(cut -c3- ~/.tmux.conf | sh -s _username #{pane_tty} true #D)%g' \ | |
# -e 's%#{hostname_ssh}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} true false #h #D)%g' \ | |
# -e 's%#{hostname_full_ssh}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} true true #H #D)%g') | |
# | |
# tmux_conf_theme_window_status_fg=${tmux_conf_theme_window_status_fg:-$tmux_conf_theme_colour_3} | |
# tmux_conf_theme_window_status_bg=${tmux_conf_theme_window_status_bg:-$tmux_conf_theme_colour_1} | |
# tmux_conf_theme_window_status_attr=${tmux_conf_theme_window_status_attr:-none} | |
# tmux_conf_theme_window_status_format=${tmux_conf_theme_window_status_format:-#I #W} | |
# | |
# tmux_conf_theme_window_status_current_fg=${tmux_conf_theme_window_status_current_fg:-$tmux_conf_theme_colour_1} | |
# tmux_conf_theme_window_status_current_bg=${tmux_conf_theme_window_status_current_bg:-$tmux_conf_theme_colour_4} | |
# tmux_conf_theme_window_status_current_attr=${tmux_conf_theme_window_status_current_attr:-bold} | |
# tmux_conf_theme_window_status_current_format=${tmux_conf_theme_window_status_current_format:-#I #W} | |
# | |
# tmux_conf_theme_window_status_activity_fg=${tmux_conf_theme_window_status_activity_fg:-default} | |
# tmux_conf_theme_window_status_activity_bg=${tmux_conf_theme_window_status_activity_bg:-default} | |
# tmux_conf_theme_window_status_activity_attr=${tmux_conf_theme_window_status_activity_attr:-underscore} | |
# | |
# tmux_conf_theme_window_status_bell_fg=${tmux_conf_theme_window_status_bell_fg:-$tmux_conf_theme_colour_5} | |
# tmux_conf_theme_window_status_bell_bg=${tmux_conf_theme_window_status_bell_bg:-default} | |
# tmux_conf_theme_window_status_bell_attr=${tmux_conf_theme_window_status_bell_attr:-blink,bold} | |
# | |
# tmux_conf_theme_window_status_last_fg=${tmux_conf_theme_window_status_last_fg:-$tmux_conf_theme_colour_4} | |
# tmux_conf_theme_window_status_last_bg=${tmux_conf_theme_window_status_last_bg:-default} | |
# tmux_conf_theme_window_status_last_attr=${tmux_conf_theme_window_status_last_attr:-none} | |
# | |
# if [ x"$tmux_conf_theme_window_status_bg" = x"$tmux_conf_theme_status_bg" ] || [ x"$tmux_conf_theme_window_status_bg" = x"default" ]; then | |
# spacer='' | |
# spacer_current=' ' | |
# else | |
# spacer=' ' | |
# spacer_current=' ' | |
# fi | |
# if [ x"$tmux_conf_theme_window_status_last_bg" = x"$tmux_conf_theme_status_bg" ] || [ x"$tmux_conf_theme_window_status_last_bg" = x"default" ] ; then | |
# spacer_last='' | |
# else | |
# spacer_last=' ' | |
# fi | |
# if [ x"$tmux_conf_theme_window_status_activity_bg" = x"$tmux_conf_theme_status_bg" ] || [ x"$tmux_conf_theme_window_status_activity_bg" = x"default" ] ; then | |
# spacer_activity='' | |
# spacer_last_activity="$spacer_last" | |
# else | |
# spacer_activity=' ' | |
# spacer_last_activity=' ' | |
# fi | |
# if [ x"$tmux_conf_theme_window_status_bell_bg" = x"$tmux_conf_theme_status_bg" ] || [ x"$tmux_conf_theme_window_status_bell_bg" = x"default" ] ; then | |
# spacer_bell='' | |
# spacer_last_bell="$spacer_last" | |
# spacer_activity_bell="$spacer_activity" | |
# spacer_last_activity_bell="$spacer_last_activity" | |
# else | |
# spacer_bell=' ' | |
# spacer_last_bell=' ' | |
# spacer_activity_bell=' ' | |
# spacer_last_activity_bell=' ' | |
# fi | |
# spacer="#{?window_last_flag,#{?window_activity_flag,#{?window_bell_flag,$spacer_last_activity_bell,$spacer_last_activity},#{?window_bell_flag,$spacer_last_bell,$spacer_last}},#{?window_activity_flag,#{?window_bell_flag,$spacer_activity_bell,$spacer_activity},#{?window_bell_flag,$spacer_bell,$spacer}}}" | |
# if [ x"$(tmux show -g -v status-justify)" = x"right" ]; then | |
# if [ -z "$tmux_conf_theme_right_separator_main" ]; then | |
# window_status_separator=' ' | |
# else | |
# window_status_separator='' | |
# fi | |
# tmux_conf_theme_window_status_format="#[fg=$tmux_conf_theme_window_status_bg,bg=$tmux_conf_theme_status_bg,none]#{?window_last_flag,$(printf "$tmux_conf_theme_window_status_last_bg" | perl -n -e "s/.+/#[fg=$&]/; print if !/default/"),}#{?window_activity_flag,$(printf "$tmux_conf_theme_window_status_activity_bg" | perl -n -e "s/.+/#[fg=$&]/; print if !/default/"),}#{?window_bell_flag,$(printf "$tmux_conf_theme_window_status_bell_bg" | perl -n -e "s/.+/#[fg=$&]/; print if !/default/"),}$tmux_conf_theme_right_separator_main#[fg=$tmux_conf_theme_window_status_fg,bg=$tmux_conf_theme_window_status_bg,$tmux_conf_theme_window_status_attr]#{?window_last_flag,$(printf "$tmux_conf_theme_window_status_last_fg" | perl -n -e "s/.+/#[fg=$&]/; print if !/default/"),}#{?window_last_flag,$(printf "$tmux_conf_theme_window_status_last_bg" | perl -n -e "s/.+/#[bg=$&]/; print if !/default/"),}#{?window_activity_flag,$(printf "$tmux_conf_theme_window_status_activity_fg" | perl -n -e "s/.+/#[fg=$&]/; print if !/default/"),}#{?window_activity_flag,$(printf "$tmux_conf_theme_window_status_activity_bg" | perl -n -e "s/.+/#[bg=$&]/; print if !/default/"),}#{?window_bell_flag,$(printf "$tmux_conf_theme_window_status_bell_fg" | perl -n -e "s/.+/#[fg=$&]/; print if !/default/"),}#{?window_bell_flag,$(printf "$tmux_conf_theme_window_status_bell_bg" | perl -n -e "s/.+/#[bg=$&]/; print if !/default/"),}$spacer$(printf "$tmux_conf_theme_window_status_last_attr" | perl -n -e 'print "#{?window_last_flag,#[none],}" if !/default/ ; s/([a-z]+),?/#{?window_last_flag,#[\1],}/g; print if !/default/')$(printf "$tmux_conf_theme_window_status_activity_attr" | perl -n -e 'print "#{?window_activity_flag?,#[none],}" if !/default/ ; s/([a-z]+),?/#{?window_activity_flag,#[\1],}/g; print if !/default/')$(printf "$tmux_conf_theme_window_status_bell_attr" | perl -n -e 'print "#{?window_bell_flag,#[none],}" if !/default/ ; s/([a-z]+),?/#{?window_bell_flag,#[\1],}/g; print if !/default/')$tmux_conf_theme_window_status_format#[none]$spacer#[fg=$tmux_conf_theme_status_bg,bg=$tmux_conf_theme_window_status_bg]#{?window_last_flag,$(printf "$tmux_conf_theme_window_status_last_bg" | perl -n -e "s/.+/#[bg=$&]/; print if !/default/"),}#{?window_activity_flag,$(printf "$tmux_conf_theme_window_status_activity_bg" | perl -n -e "s/.+/#[bg=$&]/; print if !/default/"),}#{?window_bell_flag,$(printf "$tmux_conf_theme_window_status_bell_bg" | perl -n -e "s/.+/#[bg=$&]/; print if !/default/"),}#[none]$tmux_conf_theme_right_separator_main" | |
# tmux_conf_theme_window_status_current_format="#[fg=$tmux_conf_theme_window_status_current_bg,bg=$tmux_conf_theme_status_bg,none]$tmux_conf_theme_right_separator_main#[fg=$tmux_conf_theme_window_status_current_fg,bg=$tmux_conf_theme_window_status_current_bg,$tmux_conf_theme_window_status_current_attr]$spacer_current$tmux_conf_theme_window_status_current_format$spacer_current#[fg=$tmux_conf_theme_status_bg,bg=$tmux_conf_theme_window_status_current_bg,none]$tmux_conf_theme_right_separator_main" | |
# else | |
# if [ -z "$tmux_conf_theme_left_separator_main" ]; then | |
# window_status_separator=' ' | |
# else | |
# window_status_separator='' | |
# fi | |
# tmux_conf_theme_window_status_format="#[fg=$tmux_conf_theme_status_bg,bg=$tmux_conf_theme_window_status_bg,none]#{?window_last_flag,$(printf "$tmux_conf_theme_window_status_last_bg" | perl -n -e "s/.+/#[bg=$&]/; print if !/default/"),}#{?window_activity_flag,$(printf "$tmux_conf_theme_window_status_activity_bg" | perl -n -e "s/.+/#[bg=$&]/; print if !/default/"),}#{?window_bell_flag,$(printf "$tmux_conf_theme_window_status_bell_bg" | perl -n -e "s/.+/#[bg=$&]/; print if !/default/"),}$tmux_conf_theme_left_separator_main#[fg=$tmux_conf_theme_window_status_fg,bg=$tmux_conf_theme_window_status_bg,$tmux_conf_theme_window_status_attr]#{?window_last_flag,$(printf "$tmux_conf_theme_window_status_last_fg" | perl -n -e "s/.+/#[fg=$&]/; print if !/default/"),}#{?window_last_flag,$(printf "$tmux_conf_theme_window_status_last_bg" | perl -n -e "s/.+/#[bg=$&]/; print if !/default/"),}#{?window_activity_flag,$(printf "$tmux_conf_theme_window_status_activity_fg" | perl -n -e "s/.+/#[fg=$&]/; print if !/default/"),}#{?window_activity_flag,$(printf "$tmux_conf_theme_window_status_activity_bg" | perl -n -e "s/.+/#[bg=$&]/; print if !/default/"),}#{?window_bell_flag,$(printf "$tmux_conf_theme_window_status_bell_fg" | perl -n -e "s/.+/#[fg=$&]/; print if !/default/"),}#{?window_bell_flag,$(printf "$tmux_conf_theme_window_status_bell_bg" | perl -n -e "s/.+/#[bg=$&]/; print if !/default/"),}$spacer$(printf "$tmux_conf_theme_window_status_last_attr" | perl -n -e 'print "#{?window_last_flag,#[none],}" if !/default/ ; s/([a-z]+),?/#{?window_last_flag,#[\1],}/g; print if !/default/')$(printf "$tmux_conf_theme_window_status_activity_attr" | perl -n -e 'print "#{?window_activity_flag,#[none],}" if !/default/ ; s/([a-z]+),?/#{?window_activity_flag,#[\1],}/g; print if !/default/')$(printf "$tmux_conf_theme_window_status_bell_attr" | perl -n -e 'print "#{?window_bell_flag,#[none],}" if /!default/ ; s/([a-z]+),?/#{?window_bell_flag,#[\1],}/g; print if !/default/')$tmux_conf_theme_window_status_format#[none]$spacer#[fg=$tmux_conf_theme_window_status_bg,bg=$tmux_conf_theme_status_bg]#{?window_last_flag,$(printf "$tmux_conf_theme_window_status_last_bg" | perl -n -e "s/.+/#[fg=$&]/; print if !/default/"),}#{?window_activity_flag,$(printf "$tmux_conf_theme_window_status_activity_bg" | perl -n -e "s/.+/#[fg=$&]/; print if !/default/"),}#{?window_bell_flag,$(printf "$tmux_conf_theme_window_status_bell_bg" | perl -n -e "s/.+/#[fg=$&]/; print if !/default/"),}$tmux_conf_theme_left_separator_main" | |
# tmux_conf_theme_window_status_current_format="#[fg=$tmux_conf_theme_status_bg,bg=$tmux_conf_theme_window_status_current_bg,none]$tmux_conf_theme_left_separator_main#[fg=$tmux_conf_theme_window_status_current_fg,bg=$tmux_conf_theme_window_status_current_bg,$tmux_conf_theme_window_status_current_attr]$spacer_current$tmux_conf_theme_window_status_current_format$spacer_current#[fg=$tmux_conf_theme_window_status_current_bg,bg=$tmux_conf_theme_status_bg]$tmux_conf_theme_left_separator_main" | |
# fi | |
# | |
# tmux_conf_theme_window_status_format=$(echo "$tmux_conf_theme_window_status_format" | sed \ | |
# -e 's%#{circled_window_index}%#(cut -c3- ~/.tmux.conf | sh -s _circled #I)%g' \ | |
# -e 's%#{circled_session_name}%#(cut -c3- ~/.tmux.conf | sh -s _circled #S)%g' \ | |
# -e 's%#{username}%#(cut -c3- ~/.tmux.conf | sh -s _username #{pane_tty} false #D)%g' \ | |
# -e 's%#{hostname}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} false false #h #D)%g' \ | |
# -e 's%#{hostname_full}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} false true #H #D)%g' \ | |
# -e 's%#{username_ssh}%#(cut -c3- ~/.tmux.conf | sh -s _username #{pane_tty} true #D)%g' \ | |
# -e 's%#{hostname_ssh}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} true false #h #D)%g' \ | |
# -e 's%#{hostname_full_ssh}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} true true #H #D)%g') | |
# tmux_conf_theme_window_status_current_format=$(echo "$tmux_conf_theme_window_status_current_format" | sed \ | |
# -e 's%#{circled_window_index}%#(cut -c3- ~/.tmux.conf | sh -s _circled #I)%g' \ | |
# -e 's%#{circled_session_name}%#(cut -c3- ~/.tmux.conf | sh -s _circled #S)%g' \ | |
# -e 's%#{username}%#(cut -c3- ~/.tmux.conf | sh -s _username #{pane_tty} false #D)%g' \ | |
# -e 's%#{hostname}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} false false #h #D)%g' \ | |
# -e 's%#{hostname_full}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} false true #H #D)%g' \ | |
# -e 's%#{username_ssh}%#(cut -c3- ~/.tmux.conf | sh -s _username #{pane_tty} true #D)%g' \ | |
# -e 's%#{hostname_ssh}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} true false #h #D)%g' \ | |
# -e 's%#{hostname_full_ssh}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} true true #H #D)%g') | |
# | |
# # -- indicators | |
# | |
# tmux_conf_theme_pairing=${tmux_conf_theme_pairing:-⚇} # U+2687 | |
# tmux_conf_theme_pairing_fg=${tmux_conf_theme_pairing_fg:-none} | |
# tmux_conf_theme_pairing_bg=${tmux_conf_theme_pairing_bg:-none} | |
# tmux_conf_theme_pairing_attr=${tmux_conf_theme_pairing_attr:-none} | |
# | |
# tmux_conf_theme_prefix=${tmux_conf_theme_prefix:-⌨} # U+2328 | |
# tmux_conf_theme_prefix_fg=${tmux_conf_theme_prefix_fg:-none} | |
# tmux_conf_theme_prefix_bg=${tmux_conf_theme_prefix_bg:-none} | |
# tmux_conf_theme_prefix_attr=${tmux_conf_theme_prefix_attr:-none} | |
# | |
# tmux_conf_theme_mouse=${tmux_conf_theme_mouse:-↗} # U+2197 | |
# tmux_conf_theme_mouse_fg=${tmux_conf_theme_mouse_fg:-none} | |
# tmux_conf_theme_mouse_bg=${tmux_conf_theme_mouse_bg:-none} | |
# tmux_conf_theme_mouse_attr=${tmux_conf_theme_mouse_attr:-none} | |
# | |
# tmux_conf_theme_root=${tmux_conf_theme_root:-!} | |
# tmux_conf_theme_root_fg=${tmux_conf_theme_root_fg:-none} | |
# tmux_conf_theme_root_bg=${tmux_conf_theme_root_bg:-none} | |
# tmux_conf_theme_root_attr=${tmux_conf_theme_root_attr:-bold,blink} | |
# | |
# tmux_conf_theme_synchronized=${tmux_conf_theme_synchronized:-⚏} # U+268F | |
# tmux_conf_theme_synchronized_fg=${tmux_conf_theme_synchronized_fg:-none} | |
# tmux_conf_theme_synchronized_bg=${tmux_conf_theme_synchronized_bg:-none} | |
# tmux_conf_theme_synchronized_attr=${tmux_conf_theme_synchronized_attr:-none} | |
# | |
# # -- status-left style | |
# | |
# tmux_conf_theme_status_left=${tmux_conf_theme_status_left-' ❐ #S | ↑#{?uptime_y, #{uptime_y}y,}#{?uptime_d, #{uptime_d}d,}#{?uptime_h, #{uptime_h}h,}#{?uptime_m, #{uptime_m}m,} '} | |
# tmux_conf_theme_status_left_fg=${tmux_conf_theme_status_left_fg:-$tmux_conf_theme_colour_6,$tmux_conf_theme_colour_7,$tmux_conf_theme_colour_8} | |
# tmux_conf_theme_status_left_bg=${tmux_conf_theme_status_left_bg:-$tmux_conf_theme_colour_9,$tmux_conf_theme_colour_10,$tmux_conf_theme_colour_11} | |
# tmux_conf_theme_status_left_attr=${tmux_conf_theme_status_left_attr:-bold,none,none} | |
# | |
# if [ -n "$tmux_conf_theme_status_left" ]; then | |
# status_left=$(echo "$tmux_conf_theme_status_left" | sed \ | |
# -e "s/#{pairing}/#[fg=$tmux_conf_theme_pairing_fg]#[bg=$tmux_conf_theme_pairing_bg]#[$tmux_conf_theme_pairing_attr]#{?session_many_attached,$tmux_conf_theme_pairing ,}/g" \ | |
# -e "s/#{prefix}/#[fg=$tmux_conf_theme_prefix_fg]#[bg=$tmux_conf_theme_prefix_bg]#[$tmux_conf_theme_prefix_attr]#{?client_prefix,$tmux_conf_theme_prefix ,$(printf "$tmux_conf_theme_prefix" | sed -e 's/./ /g') }/g" \ | |
# -e "s/#{mouse}/#[fg=$tmux_conf_theme_mouse_fg]#[bg=$tmux_conf_theme_mouse_bg]#[$tmux_conf_theme_mouse_attr]#{?mouse,$tmux_conf_theme_mouse ,$(printf "$tmux_conf_theme_mouse" | sed -e 's/./ /g') }/g" \ | |
# -e "s%#{synchronized}%#[fg=$tmux_conf_theme_synchronized_fg]#[bg=$tmux_conf_theme_synchronized_bg]#[$tmux_conf_theme_synchronized_attr]#{?pane_synchronized,$tmux_conf_theme_synchronized ,}%g" \ | |
# -e 's%#{circled_session_name}%#(cut -c3- ~/.tmux.conf | sh -s _circled #S)%g') | |
# | |
# if [ -n "$(tmux display -p '#{version}')" ]; then | |
# status_left=$(echo "$status_left" | sed \ | |
# -e "s%#{root}%#[fg=$tmux_conf_theme_root_fg]#[bg=$tmux_conf_theme_root_bg]#[$tmux_conf_theme_root_attr]#{?#{==:#(cut -c3- ~/.tmux.conf | sh -s _username #{pane_tty} #D),root},$tmux_conf_theme_root,}#[inherit]%g") | |
# else | |
# status_left=$(echo "$status_left" | sed \ | |
# -e "s%#{root}%#[fg=$tmux_conf_theme_root_fg]#[bg=$tmux_conf_theme_root_bg]#[$tmux_conf_theme_root_attr]#(cut -c3- ~/.tmux.conf | sh -s _root #{pane_tty} $tmux_conf_theme_root #D)#[inherit]%g") | |
# fi | |
# | |
# status_left=$(printf '%s' "$status_left" | awk \ | |
# -v status_bg="$tmux_conf_theme_status_bg" \ | |
# -v fg_="$tmux_conf_theme_status_left_fg" \ | |
# -v bg_="$tmux_conf_theme_status_left_bg" \ | |
# -v attr_="$tmux_conf_theme_status_left_attr" \ | |
# -v mainsep="$tmux_conf_theme_left_separator_main" \ | |
# -v subsep="$tmux_conf_theme_left_separator_sub" ' | |
# function subsplit(s, l, i, a, r) | |
# { | |
# l = split(s, a, ",") | |
# for (i = 1; i <= l; ++i) | |
# { | |
# o = split(a[i], _, "(") - 1 | |
# c = split(a[i], _, ")") - 1 | |
# open += o - c | |
# o_ = split(a[i], _, "{") - 1 | |
# c_ = split(a[i], _, "}") - 1 | |
# open_ += o_ - c_ | |
# o__ = split(a[i], _, "[") - 1 | |
# c__ = split(a[i], _, "]") - 1 | |
# open__ += o__ - c__ | |
# | |
# if (i == l) | |
# r = sprintf("%s%s", r, a[i]) | |
# else if (open || open_ || open__) | |
# r = sprintf("%s%s,", r, a[i]) | |
# else | |
# r = sprintf("%s%s#[fg=%s,bg=%s,%s]%s", r, a[i], fg[j], bg[j], attr[j], subsep) | |
# } | |
# | |
# gsub(/#\[inherit\]/, sprintf("#[default]#[fg=%s,bg=%s,%s]", fg[j], bg[j], attr[j]), r) | |
# return r | |
# } | |
# BEGIN { | |
# FS = "|" | |
# l1 = split(fg_, fg, ",") | |
# l2 = split(bg_, bg, ",") | |
# l3 = split(attr_, attr, ",") | |
# l = l1 < l2 ? (l1 < l3 ? l1 : l3) : (l2 < l3 ? l2 : l3) | |
# } | |
# { | |
# for (i = j = 1; i <= NF; ++i) | |
# { | |
# if (open || open_ || open__) | |
# printf "|%s", subsplit($i) | |
# else | |
# { | |
# if (i > 1) | |
# printf "#[fg=%s,bg=%s,none]%s#[fg=%s,bg=%s,%s]%s", bg[j_], bg[j], mainsep, fg[j], bg[j], attr[j], subsplit($i) | |
# else | |
# printf "#[fg=%s,bg=%s,%s]%s", fg[j], bg[j], attr[j], subsplit($i) | |
# } | |
# | |
# if (!open && !open_ && !open__) | |
# { | |
# j_ = j | |
# j = j % l + 1 | |
# } | |
# } | |
# printf "#[fg=%s,bg=%s,none]%s", bg[j_], status_bg, mainsep | |
# }') | |
# fi | |
# | |
# status_left="$status_left " | |
# | |
# # -- status-right style | |
# | |
# tmux_conf_theme_status_right=${tmux_conf_theme_status_right-' #{prefix}#{mouse}#{pairing}#{synchronized}#{?battery_status, #{battery_status},}#{?battery_bar, #{battery_bar},}#{?battery_percentage, #{battery_percentage},} , %R , %d %b | #{username}#{root} | #{hostname} '} | |
# tmux_conf_theme_status_right_fg=${tmux_conf_theme_status_right_fg:-$tmux_conf_theme_colour_12,$tmux_conf_theme_colour_13,$tmux_conf_theme_colour_14} | |
# tmux_conf_theme_status_right_bg=${tmux_conf_theme_status_right_bg:-$tmux_conf_theme_colour_15,$tmux_conf_theme_colour_16,$tmux_conf_theme_colour_17} | |
# tmux_conf_theme_status_right_attr=${tmux_conf_theme_status_right_attr:-none,none,bold} | |
# | |
# if [ -n "$tmux_conf_theme_status_right" ]; then | |
# status_right=$(echo "$tmux_conf_theme_status_right" | sed \ | |
# -e "s/#{pairing}/#[fg=$tmux_conf_theme_pairing_fg]#[bg=$tmux_conf_theme_pairing_bg]#[$tmux_conf_theme_pairing_attr]#{?session_many_attached,$tmux_conf_theme_pairing ,}/g" \ | |
# -e "s/#{prefix}/#[fg=$tmux_conf_theme_prefix_fg]#[bg=$tmux_conf_theme_prefix_bg]#[$tmux_conf_theme_prefix_attr]#{?client_prefix,$tmux_conf_theme_prefix ,$(printf "$tmux_conf_theme_prefix" | sed -e 's/./ /g') }/g" \ | |
# -e "s/#{mouse}/#[fg=$tmux_conf_theme_mouse_fg]#[bg=$tmux_conf_theme_mouse_bg]#[$tmux_conf_theme_mouse_attr]#{?mouse,$tmux_conf_theme_mouse ,$(printf "$tmux_conf_theme_mouse" | sed -e 's/./ /g') }/g" \ | |
# -e "s%#{synchronized}%#[fg=$tmux_conf_theme_synchronized_fg]#[bg=$tmux_conf_theme_synchronized_bg]#[$tmux_conf_theme_synchronized_attr]#{?pane_synchronized,$tmux_conf_theme_synchronized ,}%g" \ | |
# -e 's%#{circled_session_name}%#(cut -c3- ~/.tmux.conf | sh -s _circled #S)%g') | |
# | |
# if [ -n "$(tmux display -p '#{version}')" ]; then | |
# status_right=$(echo "$status_right" | sed \ | |
# -e "s%#{root}%#[fg=$tmux_conf_theme_root_fg]#[bg=$tmux_conf_theme_root_bg]#[$tmux_conf_theme_root_attr]#{?#{==:#(cut -c3- ~/.tmux.conf | sh -s _username #{pane_tty} #D),root},$tmux_conf_theme_root,}#[inherit]%g") | |
# else | |
# status_right=$(echo "$status_right" | sed \ | |
# -e "s%#{root}%#[fg=$tmux_conf_theme_root_fg]#[bg=$tmux_conf_theme_root_bg]#[$tmux_conf_theme_root_attr]#(cut -c3- ~/.tmux.conf | sh -s _root #{pane_tty} $tmux_conf_theme_root #D)#[inherit]%g") | |
# fi | |
# | |
# status_right=$(printf '%s' "$status_right" | awk \ | |
# -v status_bg="$tmux_conf_theme_status_bg" \ | |
# -v fg_="$tmux_conf_theme_status_right_fg" \ | |
# -v bg_="$tmux_conf_theme_status_right_bg" \ | |
# -v attr_="$tmux_conf_theme_status_right_attr" \ | |
# -v mainsep="$tmux_conf_theme_right_separator_main" \ | |
# -v subsep="$tmux_conf_theme_right_separator_sub" ' | |
# function subsplit(s, l, i, a, r) | |
# { | |
# l = split(s, a, ",") | |
# for (i = 1; i <= l; ++i) | |
# { | |
# o = split(a[i], _, "(") - 1 | |
# c = split(a[i], _, ")") - 1 | |
# open += o - c | |
# o_ = split(a[i], _, "{") - 1 | |
# c_ = split(a[i], _, "}") - 1 | |
# open_ += o_ - c_ | |
# o__ = split(a[i], _, "[") - 1 | |
# c__ = split(a[i], _, "]") - 1 | |
# open__ += o__ - c__ | |
# | |
# if (i == l) | |
# r = sprintf("%s%s", r, a[i]) | |
# else if (open || open_ || open__) | |
# r = sprintf("%s%s,", r, a[i]) | |
# else | |
# r = sprintf("%s%s#[fg=%s,bg=%s,%s]%s", r, a[i], fg[j], bg[j], attr[j], subsep) | |
# } | |
# | |
# gsub(/#\[inherit\]/, sprintf("#[default]#[fg=%s,bg=%s,%s]", fg[j], bg[j], attr[j]), r) | |
# return r | |
# } | |
# BEGIN { | |
# FS = "|" | |
# l1 = split(fg_, fg, ",") | |
# l2 = split(bg_, bg, ",") | |
# l3 = split(attr_, attr, ",") | |
# l = l1 < l2 ? (l1 < l3 ? l1 : l3) : (l2 < l3 ? l2 : l3) | |
# } | |
# { | |
# for (i = j = 1; i <= NF; ++i) | |
# { | |
# if (open_ || open || open__) | |
# printf "|%s", subsplit($i) | |
# else | |
# printf "#[fg=%s,bg=%s,none]%s#[fg=%s,bg=%s,%s]%s", bg[j], (i == 1) ? status_bg : bg[j_], mainsep, fg[j], bg[j], attr[j], subsplit($i) | |
# | |
# if (!open && !open_ && !open__) | |
# { | |
# j_ = j | |
# j = j % l + 1 | |
# } | |
# } | |
# }') | |
# fi | |
# | |
# # -- variables | |
# | |
# tmux_conf_battery_bar_symbol_full=$(_decode_unicode_escapes "${tmux_conf_battery_bar_symbol_full:-◼}") | |
# tmux_conf_battery_bar_symbol_empty=$(_decode_unicode_escapes "${tmux_conf_battery_bar_symbol_empty:-◻}") | |
# tmux_conf_battery_bar_length=${tmux_conf_battery_bar_length:-auto} | |
# tmux_conf_battery_bar_palette=${tmux_conf_battery_bar_palette:-gradient} | |
# tmux_conf_battery_hbar_palette=${tmux_conf_battery_hbar_palette:-gradient} | |
# tmux_conf_battery_vbar_palette=${tmux_conf_battery_vbar_palette:-gradient} | |
# tmux_conf_battery_status_charging=$(_decode_unicode_escapes "${tmux_conf_battery_status_charging:-↑}") # U+2191 | |
# tmux_conf_battery_status_discharging=$(_decode_unicode_escapes "${tmux_conf_battery_status_discharging:-↓}") # U+2193 | |
# | |
# _pkillf 'cut -c3- ~/\.tmux\.conf \| sh -s _battery_bar' | |
# _battery_info | |
# if [ "$charge" != 0 ]; then | |
# case "$status_left $status_right" in | |
# *'#{battery_'*|*'#{?battery_'*) | |
# status_left=$(echo "$status_left" | sed -E \ | |
# -e 's/#\{(\?)?battery_bar/#\{\1@battery_bar/g' \ | |
# -e 's/#\{(\?)?battery_hbar/#\{\1@battery_hbar/g' \ | |
# -e 's/#\{(\?)?battery_vbar/#\{\1@battery_vbar/g' \ | |
# -e 's/#\{(\?)?battery_status/#\{\1@battery_status/g' \ | |
# -e 's/#\{(\?)?battery_percentage/#\{\1@battery_percentage/g') | |
# status_right=$(echo "$status_right" | sed -E \ | |
# -e 's/#\{(\?)?battery_bar/#\{\1@battery_bar/g' \ | |
# -e 's/#\{(\?)?battery_hbar/#\{\1@battery_hbar/g' \ | |
# -e 's/#\{(\?)?battery_vbar/#\{\1@battery_vbar/g' \ | |
# -e 's/#\{(\?)?battery_status/#\{\1@battery_status/g' \ | |
# -e 's/#\{(\?)?battery_percentage/#\{\1@battery_percentage/g') | |
# status_right="#(echo; nice cut -c3- ~/.tmux.conf | sh -s _battery_status \"$tmux_conf_battery_status_charging\" \"$tmux_conf_battery_status_discharging\")$status_right" | |
# interval=60 | |
# if [ $_tmux_version -ge 320 ]; then | |
# tmux run -b "trap 'exit 0' TERM; while :; do nice cut -c3- ~/.tmux.conf | sh -s _battery_bar \"$tmux_conf_battery_bar_symbol_full\" \"$tmux_conf_battery_bar_symbol_empty\" \"$tmux_conf_battery_bar_length\" \"$tmux_conf_battery_bar_palette\" \"$tmux_conf_battery_hbar_palette\" \"$tmux_conf_battery_vbar_palette\"; sleep $interval; done" | |
# elif [ $_tmux_version -gt 240 ]; then | |
# status_right="#(echo; while :; do nice cut -c3- ~/.tmux.conf | sh -s _battery_bar \"$tmux_conf_battery_bar_symbol_full\" \"$tmux_conf_battery_bar_symbol_empty\" \"$tmux_conf_battery_bar_length\" \"$tmux_conf_battery_bar_palette\" \"$tmux_conf_battery_hbar_palette\" \"$tmux_conf_battery_vbar_palette\"; sleep $interval; done)$status_right" | |
# else | |
# status_right="#(nice cut -c3- ~/.tmux.conf | sh -s _battery_bar \"$tmux_conf_battery_bar_symbol_full\" \"$tmux_conf_battery_bar_symbol_empty\" \"$tmux_conf_battery_bar_length\" \"$tmux_conf_battery_bar_palette\" \"$tmux_conf_battery_hbar_palette\" \"$tmux_conf_battery_vbar_palette\")$status_right" | |
# fi | |
# ;; | |
# esac | |
# fi | |
# | |
# case "$status_left $status_right" in | |
# *'#{username}'*|*'#{hostname}'*|*'#{hostname_full}'*|*'#{username_ssh}'*|*'#{hostname_ssh}'*|*'#{hostname_full_ssh}'*) | |
# status_left=$(echo "$status_left" | sed \ | |
# -e 's%#{username}%#(cut -c3- ~/.tmux.conf | sh -s _username #{pane_tty} false #D)%g' \ | |
# -e 's%#{hostname}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} false false #h #D)%g' \ | |
# -e 's%#{hostname_full}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} false true #H #D)%g' \ | |
# -e 's%#{username_ssh}%#(cut -c3- ~/.tmux.conf | sh -s _username #{pane_tty} true #D)%g' \ | |
# -e 's%#{hostname_ssh}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} true false #h #D)%g' \ | |
# -e 's%#{hostname_full_ssh}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} true true #H #D)%g') | |
# status_right=$(echo "$status_right" | sed \ | |
# -e 's%#{username}%#(cut -c3- ~/.tmux.conf | sh -s _username #{pane_tty} false #D)%g' \ | |
# -e 's%#{hostname}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} false false #h #D)%g' \ | |
# -e 's%#{hostname_full}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} false true #H #D)%g' \ | |
# -e 's%#{username_ssh}%#(cut -c3- ~/.tmux.conf | sh -s _username #{pane_tty} true #D)%g' \ | |
# -e 's%#{hostname_ssh}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} true false #h #D)%g' \ | |
# -e 's%#{hostname_full_ssh}%#(cut -c3- ~/.tmux.conf | sh -s _hostname #{pane_tty} true true #H #D)%g') | |
# ;; | |
# esac | |
# | |
# _pkillf 'cut -c3- ~/\.tmux\.conf \| sh -s _uptime' | |
# case "$status_left $status_right" in | |
# *'#{uptime_'*|*'#{?uptime_'*) | |
# status_left=$(echo "$status_left" | sed -E \ | |
# -e 's/#\{(\?)?uptime_y/#\{\1@uptime_y/g' \ | |
# -e 's/#\{(\?)?uptime_d/#\{\1@uptime_d/g' \ | |
# -e '/@uptime_y/ s/@uptime_d/@uptime_dy/g' \ | |
# -e 's/#\{(\?)?uptime_h/#\{\1@uptime_h/g' \ | |
# -e 's/#\{(\?)?uptime_m/#\{\1@uptime_m/g' \ | |
# -e 's/#\{(\?)?uptime_s/#\{\1@uptime_s/g') | |
# status_right=$(echo "$status_right" | sed -E \ | |
# -e 's/#\{(\?)?uptime_y/#\{\1@uptime_y/g' \ | |
# -e 's/#\{(\?)?uptime_d/#\{\1@uptime_d/g' \ | |
# -e '/@uptime_y/ s/@uptime_d/@uptime_dy/g' \ | |
# -e 's/#\{(\?)?uptime_h/#\{\1@uptime_h/g' \ | |
# -e 's/#\{(\?)?uptime_m/#\{\1@uptime_m/g' \ | |
# -e 's/#\{(\?)?uptime_s/#\{\1@uptime_s/g') | |
# interval=60 | |
# case "$status_left $status_right" in | |
# *'#{@uptime_s}'*) | |
# interval=$(tmux show -gv status-interval) | |
# ;; | |
# esac | |
# if [ $_tmux_version -ge 320 ]; then | |
# tmux run -b "trap 'exit 0' TERM; while :; do nice cut -c3- ~/.tmux.conf | sh -s _uptime; sleep $interval; done" | |
# elif [ $_tmux_version -gt 240 ]; then | |
# status_right="#(echo; while :; do nice cut -c3- ~/.tmux.conf | sh -s _uptime; sleep $interval; done)$status_right" | |
# else | |
# status_right="#(nice cut -c3- ~/.tmux.conf | sh -s _uptime)$status_right" | |
# fi | |
# ;; | |
# esac | |
# | |
# _pkillf 'cut -c3- ~/\.tmux\.conf \| sh -s _loadavg' | |
# case "$status_left $status_right" in | |
# *'#{loadavg'*|*'#{?loadavg'*) | |
# status_left=$(echo "$status_left" | sed -E \ | |
# -e 's/#\{(\?)?loadavg/#\{\1@loadavg/g') | |
# status_right=$(echo "$status_right" | sed -E \ | |
# -e 's/#\{(\?)?loadavg/#\{\1@loadavg/g') | |
# interval=$(tmux show -gv status-interval) | |
# if [ $_tmux_version -ge 320 ]; then | |
# tmux run -b "trap 'exit 0' TERM; while :; do nice cut -c3- ~/.tmux.conf | sh -s _loadavg; sleep $interval; done" | |
# elif [ $_tmux_version -gt 240 ]; then | |
# status_right="#(echo; while :; do nice cut -c3- ~/.tmux.conf | sh -s _loadavg; sleep $interval; done)$status_right" | |
# else | |
# status_right="#(nice cut -c3- ~/.tmux.conf | sh -s _loadavg)$status_right" | |
# fi | |
# ;; | |
# esac | |
# | |
# # -- clock ------------------------------------------------------------- | |
# | |
# tmux_conf_theme_clock_colour=${tmux_conf_theme_clock_colour:-$tmux_conf_theme_colour_4} | |
# tmux_conf_theme_clock_style=${tmux_conf_theme_clock_style:-24} | |
# | |
# # -- custom variables --------------------------------------------------- | |
# | |
# if [ -f ~/.tmux.conf.local ] && [ x"$(cut -c3- ~/.tmux.conf.local | sh 2>/dev/null -s printf probe)" = x"probe" ]; then | |
# replacements=$(perl -n -e 'print if s!^#\s+([^()\s]+)\s*\(\)\s*{\s*\n!s%#\\\{\1\\\}%#(cut -c3- ~/.tmux.conf.local | sh -s \1)%g; !p' < ~/.tmux.conf.local) | |
# status_left=$(echo "$status_left" | perl -p -e "$replacements" || echo "$status_left") | |
# status_right=$(echo "$status_right" | perl -p -e "$replacements" || echo "$status_right") | |
# fi | |
# | |
# # ----------------------------------------------------------------------- | |
# | |
# tmux setw -g window-style "$window_style" \; setw -g window-active-style "$window_active_style" \;\ | |
# setw -g pane-border-style "fg=$tmux_conf_theme_pane_border_fg,bg=$tmux_conf_theme_pane_border_bg" \; set -g pane-active-border-style "fg=$tmux_conf_theme_pane_active_border_fg,bg=$tmux_conf_theme_pane_active_border_bg" \;\ | |
# set -g display-panes-colour "$tmux_conf_theme_pane_indicator" \; set -g display-panes-active-colour "$tmux_conf_theme_pane_active_indicator" \;\ | |
# set -g message-style "fg=$tmux_conf_theme_message_fg,bg=$tmux_conf_theme_message_bg,$tmux_conf_theme_message_attr" \;\ | |
# set -g message-command-style "fg=$tmux_conf_theme_message_command_fg,bg=$tmux_conf_theme_message_command_bg,$tmux_conf_theme_message_command_attr" \;\ | |
# setw -g mode-style "fg=$tmux_conf_theme_mode_fg,bg=$tmux_conf_theme_mode_bg,$tmux_conf_theme_mode_attr" \;\ | |
# set -g status-style "fg=$tmux_conf_theme_status_fg,bg=$tmux_conf_theme_status_bg,$tmux_conf_theme_status_attr" \;\ | |
# set -g status-left-style "fg=$tmux_conf_theme_status_fg,bg=$tmux_conf_theme_status_bg,$tmux_conf_theme_status_attr" \;\ | |
# set -g status-right-style "fg=$tmux_conf_theme_status_fg,bg=$tmux_conf_theme_status_bg,$tmux_conf_theme_status_attr" \;\ | |
# set -g set-titles-string "$(_decode_unicode_escapes "$tmux_conf_theme_terminal_title")" \;\ | |
# setw -g window-status-style "fg=$tmux_conf_theme_window_status_fg,bg=$tmux_conf_theme_window_status_bg,$tmux_conf_theme_window_status_attr" \;\ | |
# setw -g window-status-format "$(_decode_unicode_escapes "$tmux_conf_theme_window_status_format")" \;\ | |
# setw -g window-status-current-style "fg=$tmux_conf_theme_window_status_current_fg,bg=$tmux_conf_theme_window_status_current_bg,$tmux_conf_theme_window_status_current_attr" \;\ | |
# setw -g window-status-current-format "$(_decode_unicode_escapes "$tmux_conf_theme_window_status_current_format")" \;\ | |
# setw -g window-status-activity-style "fg=$tmux_conf_theme_window_status_activity_fg,bg=$tmux_conf_theme_window_status_activity_bg,$tmux_conf_theme_window_status_activity_attr" \;\ | |
# setw -g window-status-bell-style "fg=$tmux_conf_theme_window_status_bell_fg,bg=$tmux_conf_theme_window_status_bell_bg,$tmux_conf_theme_window_status_bell_attr" \;\ | |
# setw -g window-status-last-style "fg=$tmux_conf_theme_window_status_last_fg,bg=$tmux_conf_theme_window_status_last_bg,$tmux_conf_theme_window_status_last_attr" \;\ | |
# setw -g window-status-separator "$window_status_separator" \;\ | |
# set -g status-left-length 1000 \; set -g status-left "$(_decode_unicode_escapes "$status_left")" \;\ | |
# set -g status-right-length 1000 \; set -g status-right "$(_decode_unicode_escapes "$status_right")" \;\ | |
# setw -g clock-mode-colour "$tmux_conf_theme_clock_colour" \;\ | |
# setw -g clock-mode-style "$tmux_conf_theme_clock_style" | |
# } | |
# | |
# __apply_plugins() { | |
# window_active="$1" | |
# tmux_conf_update_plugins_on_launch="$2" | |
# tmux_conf_update_plugins_on_reload="$3" | |
# | |
# TMUX_PLUGIN_MANAGER_PATH=${TMUX_PLUGIN_MANAGER_PATH:-~/.tmux/plugins} | |
# if [ ! -d "$TMUX_PLUGIN_MANAGER_PATH/tpm" ]; then | |
# install_tpm=true | |
# tmux display 'Installing tpm and plugins...' | |
# git clone --depth 1 https://github.com/tmux-plugins/tpm "$TMUX_PLUGIN_MANAGER_PATH/tpm" | |
# elif { [ -z "$window_active" ] && _is_enabled "$tmux_conf_update_plugins_on_launch"; } || { [ -n "$window_active" ] && _is_enabled "$tmux_conf_update_plugins_on_reload"; }; then | |
# update_tpm=true | |
# tmux display 'Updating tpm and plugins...' | |
# (cd "$TMUX_PLUGIN_MANAGER_PATH/tpm" && git checkout -q master && git reset -q --hard HEAD && git pull -q origin master) | |
# fi | |
# if [ x"$install_tpm" = x"true" ] || [ x"$update_tpm" = x"true" ]; then | |
# perl -0777 -p -i -e 's/git clone --recursive/git clone --recursive --depth 1 --shallow-submodules/g | |
# ;s/(install_plugin "\$plugin")\n(\s+)done/\1&\n\2done\n\2wait/g' "$TMUX_PLUGIN_MANAGER_PATH/tpm/scripts/install_plugins.sh" | |
# perl -p -i -e 's/git submodule update --init --recursive/git submodule update --init --recursive --depth 1/g' "$TMUX_PLUGIN_MANAGER_PATH/tpm/scripts/update_plugin.sh" | |
# tmux set-environment -g TMUX_PLUGIN_MANAGER_PATH "$TMUX_PLUGIN_MANAGER_PATH" | |
# fi | |
# if [ x"$update_tpm" = x"true" ]; then | |
# "$TMUX_PLUGIN_MANAGER_PATH/tpm/bin/update_plugins" all >/dev/null 2>&1 | |
# tmux display 'Done updating tpm and plugins...' | |
# elif [ x"$install_tpm" = x"true" ]; then | |
# "$TMUX_PLUGIN_MANAGER_PATH/tpm/bin/install_plugins" >/dev/null 2>&1 | |
# tmux display 'Done installing tpm and plugins...' | |
# fi | |
# "$TMUX_PLUGIN_MANAGER_PATH/tpm/tpm" | |
# if [ -z "$window_active" ] && [ $_tmux_version -lt 240 ]; then | |
# tmux run -b "sleep $(expr $(tmux display -p '#{display-time}') / 500) && tmux set display-time 3000 \; display 'This configuration will soon require tmux 2.4+' \; set -u display-time" | |
# fi | |
# } | |
# | |
# _apply_plugins() { | |
# tmux_conf_update_plugins_on_launch=${tmux_conf_update_plugins_on_launch:-true} | |
# tmux_conf_update_plugins_on_reload=${tmux_conf_update_plugins_on_reload:-true} | |
# if [ -n "$(tmux show -gv '@plugin')" ] || [ -n "$(tmux show -gv '@tpm_plugins')" ]; then | |
# tmux run -b "cut -c3- ~/.tmux.conf | sh -s __apply_plugins \"$window_active\" \"$tmux_conf_update_plugins_on_launch\" \"$tmux_conf_update_plugins_on_reload\"" | |
# elif [ -z "$window_active" ]; then | |
# if [ $_tmux_version -lt 240 ]; then | |
# tmux run -b 'tmux set display-time 3000 \; display "This configuration will soon require tmux 2.4+" \; set -u display-time' | |
# fi | |
# fi | |
# } | |
# | |
# _apply_configuration() { | |
# | |
# window_active="$(tmux display -p '#{window_active}' 2>/dev/null || true)" | |
# if [ -z "$window_active" ]; then | |
# if ! command -v perl > /dev/null 2>&1; then | |
# tmux run -b 'tmux set display-time 3000 \; display "This configuration requires perl" \; set -u display-time \; run "sleep 3" \; kill-server' | |
# return | |
# fi | |
# if ! command -v sed > /dev/null 2>&1; then | |
# tmux run -b 'tmux set display-time 3000 \; display "This configuration requires sed" \; set -u display-time \; run "sleep 3" \; kill-server' | |
# return | |
# fi | |
# if ! command -v awk > /dev/null 2>&1; then | |
# tmux run -b 'tmux set display-time 3000 \; display "This configuration requires awk" \; set -u display-time \; run "sleep 3" \; kill-server' | |
# return | |
# fi | |
# if [ $_tmux_version -lt 230 ]; then | |
# tmux run -b 'tmux set display-time 3000 \; display "This configuration requires tmux 2.3+" \; set -u display-time \; run "sleep 3" \; kill-server' | |
# return | |
# fi | |
# fi | |
# | |
# # see https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard | |
# if command -v reattach-to-user-namespace > /dev/null 2>&1; then | |
# default_shell="$(tmux show -gv default-shell)" | |
# case "$default_shell" in | |
# *fish) | |
# tmux set -g default-command "reattach-to-user-namespace -l $default_shell" | |
# ;; | |
# *sh) | |
# tmux set -g default-command "exec $default_shell... 2> /dev/null & reattach-to-user-namespace -l $default_shell" | |
# ;; | |
# esac | |
# fi | |
# | |
# case "$_uname_s" in | |
# *CYGWIN*|*MSYS*) | |
# # prevent Cygwin and MSYS2 from cd-ing into home directory when evaluating /etc/profile | |
# tmux setenv -g CHERE_INVOKING 1 | |
# ;; | |
# esac | |
# | |
# _apply_overrides | |
# _apply_theme& | |
# _apply_bindings& | |
# | |
# # shellcheck disable=SC2046 | |
# tmux setenv -gu tmux_conf_dummy $(printenv | grep -E -o '^tmux_conf_[^=]+' | awk '{printf "; setenv -gu %s", $0}') | |
# wait | |
# | |
# _apply_plugins | |
# } | |
# | |
# _urlview() { | |
# tmux capture-pane -J -S - -E - -b "urlview-$1" -t "$1" | |
# tmux split-window "tmux show-buffer -b urlview-$1 | urlview || true; tmux delete-buffer -b urlview-$1" | |
# } | |
# | |
# _fpp() { | |
# tmux capture-pane -J -S - -E - -b "fpp-$1" -t "$1" | |
# tmux split-window "tmux show-buffer -b fpp-$1 | fpp || true; tmux delete-buffer -b fpp-$1" | |
# } | |
# | |
# "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# : << EOF | |
# https://github.com/gpakosz/.tmux | |
# (‑●‑●)> dual licensed under the WTFPL v2 license and the MIT license, | |
# without any warranty. | |
# Copyright 2012— Gregory Pakosz (@gpakosz). | |
# -- navigation ---------------------------------------------------------------- | |
# if you're running tmux within iTerm2 | |
# - and tmux is 1.9 or 1.9a | |
# - and iTerm2 is configured to let option key act as +Esc | |
# - and iTerm2 is configured to send [1;9A -> [1;9D for option + arrow keys | |
# then uncomment the following line to make Meta + arrow keys mapping work | |
#set -ga terminal-overrides "*:kUP3=\e[1;9A,*:kDN3=\e[1;9B,*:kRIT3=\e[1;9C,*:kLFT3=\e[1;9D" | |
# -- windows & pane creation --------------------------------------------------- | |
# new window retains current path, possible values are: | |
# - true | |
# - false (default) | |
tmux_conf_new_window_retain_current_path=true | |
# new pane retains current path, possible values are: | |
# - true (default) | |
# - false | |
tmux_conf_new_pane_retain_current_path=true | |
# new pane tries to reconnect ssh sessions (experimental), possible values are: | |
# - true | |
# - false (default) | |
tmux_conf_new_pane_reconnect_ssh=true | |
# prompt for session name when creating a new session, possible values are: | |
# - true | |
# - false (default) | |
tmux_conf_new_session_prompt=true | |
# -- display ------------------------------------------------------------------- | |
# RGB 24-bit colour support (tmux >= 2.2), possible values are: | |
# - true | |
# - false (default) | |
tmux_conf_24b_colour=true | |
# default theme | |
tmux_conf_theme_colour_1="#080808" # dark gray | |
tmux_conf_theme_colour_2="#21222c" # gray | |
tmux_conf_theme_colour_3="#8a8a8a" # light gray | |
tmux_conf_theme_colour_4="#f8f8f2" # light blue | |
tmux_conf_theme_colour_5="#8be9fd" # yellow | |
tmux_conf_theme_colour_6="#6272a4" # dark gray | |
tmux_conf_theme_colour_7="#f8f8f2" # white | |
tmux_conf_theme_colour_8="#6272a4" # dark gray | |
tmux_conf_theme_colour_9="#ffb86c" # yellow | |
tmux_conf_theme_colour_10="#bd93f9" # pink | |
tmux_conf_theme_colour_11="#50fa7b" # green | |
tmux_conf_theme_colour_12="#8a8a8a" # light gray | |
tmux_conf_theme_colour_13="#e4e4e4" # white | |
tmux_conf_theme_colour_14="#6272a4" # dark gray | |
tmux_conf_theme_colour_15="#44475a" # dark gray | |
tmux_conf_theme_colour_16="#ff5555" # red | |
tmux_conf_theme_colour_17="#f8f8f2" # white | |
# default theme (ansi) | |
#tmux_conf_theme_colour_1="colour0" | |
#tmux_conf_theme_colour_2="colour8" | |
#tmux_conf_theme_colour_3="colour8" | |
#tmux_conf_theme_colour_4="colour14" | |
#tmux_conf_theme_colour_5="colour11" | |
#tmux_conf_theme_colour_6="colour0" | |
#tmux_conf_theme_colour_7="colour15" | |
#tmux_conf_theme_colour_8="colour0" | |
#tmux_conf_theme_colour_9="colour11" | |
#tmux_conf_theme_colour_10="colour13" | |
#tmux_conf_theme_colour_11="colour10" | |
#tmux_conf_theme_colour_12="colour8" | |
#tmux_conf_theme_colour_13="colour15" | |
#tmux_conf_theme_colour_14="colour0" | |
#tmux_conf_theme_colour_15="colour0" | |
#tmux_conf_theme_colour_16="colour1" | |
#tmux_conf_theme_colour_17="colour15" | |
# window style | |
tmux_conf_theme_window_fg="default" | |
tmux_conf_theme_window_bg="default" | |
# highlight focused pane (tmux >= 2.1), possible values are: | |
# - true | |
# - false (default) | |
tmux_conf_theme_highlight_focused_pane=true | |
# focused pane colours: | |
tmux_conf_theme_focused_pane_bg="$tmux_conf_theme_colour_2" | |
# pane border style, possible values are: | |
# - thin (default) | |
# - fat | |
tmux_conf_theme_pane_border_style=thin | |
# pane borders colours: | |
tmux_conf_theme_pane_border="$tmux_conf_theme_colour_2" | |
tmux_conf_theme_pane_active_border="$tmux_conf_theme_colour_4" | |
# pane indicator colours (when you hit <prefix> + q) | |
tmux_conf_theme_pane_indicator="$tmux_conf_theme_colour_4" | |
tmux_conf_theme_pane_active_indicator="$tmux_conf_theme_colour_4" | |
# status line style | |
tmux_conf_theme_message_fg="$tmux_conf_theme_colour_1" | |
tmux_conf_theme_message_bg="$tmux_conf_theme_colour_5" | |
tmux_conf_theme_message_attr="bold" | |
# status line command style (<prefix> : Escape) | |
tmux_conf_theme_message_command_fg="$tmux_conf_theme_colour_5" | |
tmux_conf_theme_message_command_bg="$tmux_conf_theme_colour_1" | |
tmux_conf_theme_message_command_attr="bold" | |
# window modes style | |
tmux_conf_theme_mode_fg="$tmux_conf_theme_colour_1" | |
tmux_conf_theme_mode_bg="$tmux_conf_theme_colour_5" | |
tmux_conf_theme_mode_attr="bold" | |
# status line style | |
tmux_conf_theme_status_fg="$tmux_conf_theme_colour_3" | |
tmux_conf_theme_status_bg="$tmux_conf_theme_colour_1" | |
tmux_conf_theme_status_attr="bold" | |
# terminal title | |
# - built-in variables are: | |
# - #{circled_window_index} | |
# - #{circled_session_name} | |
# - #{hostname} | |
# - #{hostname_ssh} | |
# - #{hostname_full} | |
# - #{hostname_full_ssh} | |
# - #{username} | |
# - #{username_ssh} | |
tmux_conf_theme_terminal_title="#h ❐ #S ● #I #W" | |
# window status style | |
# - built-in variables are: | |
# - #{circled_window_index} | |
# - #{circled_session_name} | |
# - #{hostname} | |
# - #{hostname_ssh} | |
# - #{hostname_full} | |
# - #{hostname_full_ssh} | |
# - #{username} | |
# - #{username_ssh} | |
tmux_conf_theme_window_status_fg="$tmux_conf_theme_colour_3" | |
tmux_conf_theme_window_status_bg="$tmux_conf_theme_colour_1" | |
tmux_conf_theme_window_status_attr="none" | |
tmux_conf_theme_window_status_format="#I #W" | |
#tmux_conf_theme_window_status_format="#{circled_window_index} #W" | |
tmux_conf_theme_window_status_format="#I #W#{?window_bell_flag,🔔,}#{?window_zoomed_flag,🔍,}" | |
# window current status style | |
# - built-in variables are: | |
# - #{circled_window_index} | |
# - #{circled_session_name} | |
# - #{hostname} | |
# - #{hostname_ssh} | |
# - #{hostname_full} | |
# - #{hostname_full_ssh} | |
# - #{username} | |
# - #{username_ssh} | |
tmux_conf_theme_window_status_current_fg="$tmux_conf_theme_colour_1" | |
tmux_conf_theme_window_status_current_bg="$tmux_conf_theme_colour_4" | |
tmux_conf_theme_window_status_current_attr="bold" | |
tmux_conf_theme_window_status_current_format="#I #W" | |
tmux_conf_theme_window_status_current_format="#{circled_window_index} #W" | |
tmux_conf_theme_window_status_current_format="#I #W#{?window_zoomed_flag,🔍,}" | |
# window activity status style | |
tmux_conf_theme_window_status_activity_fg="default" | |
tmux_conf_theme_window_status_activity_bg="default" | |
tmux_conf_theme_window_status_activity_attr="underscore" | |
# window bell status style | |
tmux_conf_theme_window_status_bell_fg="$tmux_conf_theme_colour_5" | |
tmux_conf_theme_window_status_bell_bg="default" | |
tmux_conf_theme_window_status_bell_attr="blink,bold" | |
# window last status style | |
tmux_conf_theme_window_status_last_fg="$tmux_conf_theme_colour_4" | |
tmux_conf_theme_window_status_last_bg="$tmux_conf_theme_colour_2" | |
tmux_conf_theme_window_status_last_attr="none" | |
# status left/right sections separators | |
tmux_conf_theme_left_separator_main='' # /!\ you don't need to install Powerline | |
tmux_conf_theme_left_separator_sub='\uE0B1' # '\uE0B1' you only need fonts patched with | |
tmux_conf_theme_right_separator_main='' # Powerline symbols or the standalone | |
tmux_conf_theme_right_separator_sub='\uE0B3' # '\uE0B3' # PowerlineSymbols.otf font, see README.md | |
# status left/right content: | |
# - separate main sections with "|" | |
# - separate subsections with "," | |
# - built-in variables are: | |
# - #{circled_session_name} | |
# - #{hostname_ssh} | |
# - #{hostname} | |
# - #{hostname_full} | |
# - #{hostname_full_ssh} | |
# - #{loadavg} | |
# - #{mouse} | |
# - #{pairing} | |
# - #{prefix} | |
# - #{root} | |
# - #{synchronized} | |
# - #{uptime_y} | |
# - #{uptime_d} (modulo 365 when #{uptime_y} is used) | |
# - #{uptime_h} | |
# - #{uptime_m} | |
# - #{uptime_s} | |
# - #{username} | |
# - #{username_ssh} | |
tmux_conf_theme_status_left=" #{circled_session_name} | #{?uptime_y, #{uptime_y}y,}#{?uptime_d, #{uptime_d}d,}#{?uptime_h, #{uptime_h}h,}#{?uptime_m, #{uptime_m}m,} | #{online} |" | |
tmux_conf_theme_status_right=" #{prefix}#{mouse}#{pairing}#{synchronized} , %R , %d %b | #{username}#{root} | #{hostname} " | |
# status left style | |
tmux_conf_theme_status_left_fg="$tmux_conf_theme_colour_1,$tmux_conf_theme_colour_1,$tmux_conf_theme_colour_7" | |
tmux_conf_theme_status_left_bg="$tmux_conf_theme_colour_7,$tmux_conf_theme_colour_16,$tmux_conf_theme_colour_15" | |
tmux_conf_theme_status_left_attr="bold,none,none" | |
# status right style | |
tmux_conf_theme_status_right_fg="$tmux_conf_theme_colour_12,$tmux_conf_theme_colour_1,$tmux_conf_theme_colour_1" | |
tmux_conf_theme_status_right_bg="$tmux_conf_theme_colour_15,$tmux_conf_theme_colour_11,$tmux_conf_theme_colour_17" | |
tmux_conf_theme_status_right_attr="none,none,bold" | |
# pairing indicator | |
tmux_conf_theme_pairing="⚇" # U+2687 | |
tmux_conf_theme_pairing_fg="none" | |
tmux_conf_theme_pairing_bg="none" | |
tmux_conf_theme_pairing_attr="none" | |
# prefix indicator | |
tmux_conf_theme_prefix="🕹" # U+2328 | |
tmux_conf_theme_prefix_fg="#ff5555" | |
tmux_conf_theme_prefix_bg="none" | |
tmux_conf_theme_prefix_attr="none" | |
# mouse indicator | |
tmux_conf_theme_mouse="🖱" # U+2197 | |
tmux_conf_theme_mouse_fg="none" | |
tmux_conf_theme_mouse_bg="none" | |
tmux_conf_theme_mouse_attr="none" | |
# root indicator | |
tmux_conf_theme_root="🔐" | |
tmux_conf_theme_root_fg="none" | |
tmux_conf_theme_root_bg="none" | |
tmux_conf_theme_root_attr="bold,blink" | |
# synchronized indicator | |
tmux_conf_theme_synchronized="⚏" # U+268F | |
tmux_conf_theme_synchronized_fg="none" | |
tmux_conf_theme_synchronized_bg="none" | |
tmux_conf_theme_synchronized_attr="none" | |
# battery bar symbols | |
tmux_conf_battery_bar_symbol_full="◼" | |
tmux_conf_battery_bar_symbol_empty="◻" | |
#tmux_conf_battery_bar_symbol_full="♥" | |
#tmux_conf_battery_bar_symbol_empty="·" | |
# battery bar length (in number of symbols), possible values are: | |
# - auto | |
# - a number, e.g. 5 | |
tmux_conf_battery_bar_length="auto" | |
# battery bar palette, possible values are: | |
# - gradient (default) | |
# - heat | |
# - "colour_full_fg,colour_empty_fg,colour_bg" | |
tmux_conf_battery_bar_palette="gradient" | |
#tmux_conf_battery_bar_palette="#d70000,#e4e4e4,#000000" # red, white, black | |
# battery hbar palette, possible values are: | |
# - gradient (default) | |
# - heat | |
# - "colour_low,colour_half,colour_full" | |
tmux_conf_battery_hbar_palette="gradient" | |
#tmux_conf_battery_hbar_palette="#d70000,#ff5f00,#5fff00" # red, orange, green | |
# battery vbar palette, possible values are: | |
# - gradient (default) | |
# - heat | |
# - "colour_low,colour_half,colour_full" | |
tmux_conf_battery_vbar_palette="gradient" | |
#tmux_conf_battery_vbar_palette="#d70000,#ff5f00,#5fff00" # red, orange, green | |
# symbols used to indicate whether battery is charging or discharging | |
tmux_conf_battery_status_charging="↑" # U+2191 | |
tmux_conf_battery_status_discharging="↓" # U+2193 | |
#tmux_conf_battery_status_charging="🔌" # U+1F50C | |
#tmux_conf_battery_status_discharging="🔋" # U+1F50B | |
# clock style (when you hit <prefix> + t) | |
# you may want to use %I:%M %p in place of %R in tmux_conf_theme_status_right | |
tmux_conf_theme_clock_colour="$tmux_conf_theme_colour_4" | |
tmux_conf_theme_clock_style="24" | |
# -- clipboard ----------------------------------------------------------------- | |
# in copy mode, copying selection also copies to the OS clipboard | |
# - true | |
# - false (default) | |
# on macOS, this requires installing reattach-to-user-namespace, see README.md | |
# on Linux, this requires xsel or xclip | |
tmux_conf_copy_to_os_clipboard=true | |
# -- user customizations ------------------------------------------------------- | |
# this is the place to override or undo settings | |
# increase history size | |
set -g history-limit 10000 | |
# start with mouse mode enabled | |
set -g mouse on | |
# force Vi mode | |
# really you should export VISUAL or EDITOR environment variable, see manual | |
#set -g status-keys vi | |
#set -g mode-keys vi | |
# replace C-b by C-a instead of using both prefixes | |
# set -gu prefix2 | |
# unbind C-a | |
# unbind C-b | |
# set -g prefix C-a | |
# bind C-a send-prefix | |
# move status line to top | |
#set -g status-position top | |
# -- tpm ----------------------------------------------------------------------- | |
# while I don't use tpm myself, many people requested official support so here | |
# is a seamless integration that automatically installs plugins in parallel | |
# whenever a plugin introduces a variable to be used in 'status-left' or | |
# 'status-right', you can use it in 'tmux_conf_theme_status_left' and | |
# 'tmux_conf_theme_status_right' variables. | |
# by default, launching tmux will update tpm and all plugins | |
# - true (default) | |
# - false | |
tmux_conf_update_plugins_on_launch=true | |
# by default, reloading the configuration will update tpm and all plugins | |
# - true (default) | |
# - false | |
tmux_conf_update_plugins_on_reload=true | |
# /!\ do not add set -g @plugin 'tmux-plugins/tpm' | |
# /!\ do not add run '~/.tmux/plugins/tpm/tpm' | |
# to enable a plugin, use the 'set -g @plugin' syntax: | |
# visit https://github.com/tmux-plugins for available plugins | |
set -g @plugin 'tmux-plugins/tmux-copycat' | |
set -g @plugin 'tmux-plugins/tmux-continuum' | |
set -g @plugin 'tmux-plugins/tmux-sensible' | |
set -g @plugin 'tmux-plugins/tmux-open' | |
set -g @plugin 'tmux-plugins/tmux-yank' | |
# for left | |
set -g @dracula-show-left-sep | |
# for right symbol (can set any symbol you like as seperator) | |
set -g @dracula-show-right-sep | |
set -g @continuum-restore 'on' | |
# -- custom variables ---------------------------------------------------------- | |
# to define a custom #{foo} variable, define a POSIX shell function between the | |
# '# EOF' and the '# "$@"' lines. Please note that the opening brace { character | |
# must be on the same line as the function name otherwise the parse won't detect | |
# it. | |
# | |
# then, use #{foo} in e.g. the 'tmux_conf_theme_status_left' or the | |
# 'tmux_conf_theme_status_right' variables. | |
# # /!\ do not remove the following line | |
# EOF | |
# | |
# # /!\ do not "uncomment" the functions: the leading "# " characters are needed | |
# | |
# weather() { | |
# curl -m 1 wttr.in?format=3 2>/dev/null | |
# sleep 900 # sleep for 15 minutes, throttle network requests whatever the value of status-interval | |
# } | |
# | |
# online() { | |
# ping -c 1 1.1.1.1 >/dev/null 2>&1 && printf '✔' || printf '✘' | |
# } | |
# | |
# "$@" | |
# # /!\ do not remove the previous line |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Start configuration added by Zim install {{{ | |
# | |
# User configuration sourced by interactive shells | |
# | |
# ----------------- | |
# Zsh configuration | |
# ----------------- | |
# | |
# History | |
# | |
# Remove older command from the history if a duplicate is to be added. | |
setopt HIST_IGNORE_ALL_DUPS | |
# | |
# Input/output | |
# | |
# Set editor default keymap to emacs (`-e`) or vi (`-v`) | |
bindkey -v | |
# Prompt for spelling correction of commands. | |
#setopt CORRECT | |
# Customize spelling correction prompt. | |
SPROMPT='zsh: correct %F{red}%R%f to %F{green}%r%f [nyae]? ' | |
# Remove path separator from WORDCHARS. | |
WORDCHARS=${WORDCHARS//[\/]} | |
# ----------------- | |
# Zim configuration | |
# ----------------- | |
# Use degit instead of git as the default tool to install and update modules. | |
#zstyle ':zim:zmodule' use 'degit' | |
# -------------------- | |
# Module configuration | |
# -------------------- | |
# | |
# completion | |
# | |
# Set a custom path for the completion dump file. | |
# If none is provided, the default ${ZDOTDIR:-${HOME}}/.zcompdump is used. | |
zstyle ':zim:completion' dumpfile "${ZDOTDIR:-${HOME}}/.zcompdump-${ZSH_VERSION}" | |
# | |
# git | |
# | |
# Set a custom prefix for the generated aliases. The default prefix is 'G'. | |
zstyle ':zim:git' aliases-prefix 'g' | |
# | |
# input | |
# | |
# Append `../` to your input for each `.` you type after an initial `..` | |
zstyle ':zim:input' double-dot-expand yes | |
# | |
# termtitle | |
# | |
# Set a custom terminal title format using prompt expansion escape sequences. | |
# See http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Simple-Prompt-Escapes | |
# If none is provided, the default '%n@%m: %~' is used. | |
zstyle ':zim:termtitle' format '%1~' | |
# | |
# zsh-autosuggestions | |
# | |
# Customize the style that the suggestions are shown with. | |
# See https://github.com/zsh-users/zsh-autosuggestions/blob/master/README.md#suggestion-highlight-style | |
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=242' | |
# | |
# zsh-syntax-highlighting | |
# | |
# Set what highlighters will be used. | |
# See https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters.md | |
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern cursor) | |
# Customize the main highlighter styles. | |
# See https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters/main.md#how-to-tweak-it | |
#typeset -A ZSH_HIGHLIGHT_STYLES | |
#ZSH_HIGHLIGHT_STYLES[comment]='fg=242' | |
# ------------------ | |
# Initialize modules | |
# ------------------ | |
if [[ ! ${ZIM_HOME}/init.zsh -nt ${ZDOTDIR:-${HOME}}/.zimrc ]]; then | |
# Update static initialization script if it does not exist or it's outdated, before sourcing it | |
source ${ZIM_HOME}/zimfw.zsh init -q | |
fi | |
source ${ZIM_HOME}/init.zsh | |
# ------------------------------ | |
# Post-init module configuration | |
# ------------------------------ | |
# | |
# zsh-history-substring-search | |
# | |
# Bind ^[[A/^[[B manually so up/down works both before and after zle-line-init | |
bindkey '^[[A' history-substring-search-up | |
bindkey '^[[B' history-substring-search-down | |
# Bind up and down keys | |
zmodload -F zsh/terminfo +p:terminfo | |
if [[ -n ${terminfo[kcuu1]} && -n ${terminfo[kcud1]} ]]; then | |
bindkey ${terminfo[kcuu1]} history-substring-search-up | |
bindkey ${terminfo[kcud1]} history-substring-search-down | |
fi | |
bindkey '^P' history-substring-search-up | |
bindkey '^N' history-substring-search-down | |
bindkey -M vicmd 'k' history-substring-search-up | |
bindkey -M vicmd 'j' history-substring-search-down | |
# }}} End configuration added by Zim install | |
# If you come from bash you might have to change your $PATH. | |
# export PATH=$HOME/bin:/usr/local/bin:$PATH | |
# Path to your oh-my-zsh installation. | |
export ZSH="/home/limpidkzonix/.oh-my-zsh" | |
# Set name of the theme to load --- if set to "random", it will | |
# load a random theme each time oh-my-zsh is loaded, in which case, | |
# to know which specific one was loaded, run: echo $RANDOM_THEME | |
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes | |
ZSH_THEME="robbyrussell" | |
# Set list of themes to pick from when loading at random | |
# Setting this variable when ZSH_THEME=random will cause zsh to load | |
# a theme from this variable instead of looking in $ZSH/themes/ | |
# If set to an empty array, this variable will have no effect. | |
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) | |
# Uncomment the following line to use case-sensitive completion. | |
# CASE_SENSITIVE="true" | |
# Uncomment the following line to use hyphen-insensitive completion. | |
# Case-sensitive completion must be off. _ and - will be interchangeable. | |
# HYPHEN_INSENSITIVE="true" | |
# Uncomment the following line to disable bi-weekly auto-update checks. | |
# DISABLE_AUTO_UPDATE="true" | |
# Uncomment the following line to automatically update without prompting. | |
# DISABLE_UPDATE_PROMPT="true" | |
# Uncomment the following line to change how often to auto-update (in days). | |
# export UPDATE_ZSH_DAYS=13 | |
# Uncomment the following line if pasting URLs and other text is messed up. | |
# DISABLE_MAGIC_FUNCTIONS="true" | |
# Uncomment the following line to disable colors in ls. | |
# DISABLE_LS_COLORS="true" | |
# Uncomment the following line to disable auto-setting terminal title. | |
# DISABLE_AUTO_TITLE="true" | |
# Uncomment the following line to enable command auto-correction. | |
# ENABLE_CORRECTION="true" | |
# Uncomment the following line to display red dots whilst waiting for completion. | |
# Caution: this setting can cause issues with multiline prompts (zsh 5.7.1 and newer seem to work) | |
# See https://github.com/ohmyzsh/ohmyzsh/issues/5765 | |
# COMPLETION_WAITING_DOTS="true" | |
# Uncomment the following line if you want to disable marking untracked files | |
# under VCS as dirty. This makes repository status check for large repositories | |
# much, much faster. | |
# DISABLE_UNTRACKED_FILES_DIRTY="true" | |
# Uncomment the following line if you want to change the command execution time | |
# stamp shown in the history command output. | |
# You can set one of the optional three formats: | |
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" | |
# or set a custom format using the strftime function format specifications, | |
# see 'man strftime' for details. | |
# HIST_STAMPS="mm/dd/yyyy" | |
# Would you like to use another custom folder than $ZSH/custom? | |
# ZSH_CUSTOM=/path/to/new-custom-folder | |
# Which plugins would you like to load? | |
# Standard plugins can be found in $ZSH/plugins/ | |
# Custom plugins may be added to $ZSH_CUSTOM/plugins/ | |
# Example format: plugins=(rails git textmate ruby lighthouse) | |
# Add wisely, as too many plugins slow down shell startup. | |
plugins=(git docker sublime vscode node scala zsh-syntax-highlighting) | |
source $ZSH/oh-my-zsh.sh | |
# User configuration | |
if [[ -z $IDEA ]]; then | |
if [[ $DISPLAY ]]; then | |
[[ $- != *i* ]] && return | |
if [[ -z "$TMUX" ]] ;then | |
ID="$( tmux ls | grep -vm1 attached | cut -d: -f1 )" | |
if [[ -z "$ID" ]] ;then | |
tmux new-session | |
else | |
tmux attach-session -t "$ID" | |
fi | |
fi | |
fi | |
fi | |
# User configuration | |
# export MANPATH="/usr/local/man:$MANPATH" | |
# You may need to manually set your language environment | |
# export LANG=en_US.UTF-8 | |
# Preferred editor for local and remote sessions | |
# if [[ -n $SSH_CONNECTION ]]; then | |
# export EDITOR='vim' | |
# else | |
# export EDITOR='mvim' | |
# fi | |
# Compilation flags | |
# export ARCHFLAGS="-arch x86_6" | |
# Set personal aliases, overriding those provided by oh-my-zsh libs, | |
# plugins, and themes. Aliases can be placed here, though oh-my-zsh | |
# users are encouraged to define aliases within the ZSH_CUSTOM folder. | |
# For a full list of active aliases, run `alias`. | |
# | |
# Example aliases | |
alias zshconfig="vim ~/.zshrc" | |
alias ohmyzsh="vim ~/.oh-my-zsh" | |
alias chmox="chmod +x" | |
alias dev="cd ~/KzonixProjects" | |
alias kzp="cd ~/GithubProjects/Kzonix" | |
alias lkzp="cd ~/GithubProjects/LimpidKzonix" | |
alias docs="cd ~/Documents" | |
alias kz="cd ~/GithubProjects/Kzonix/kzonix" | |
alias update="$HOME/.update_script.sh" | |
alias lsa="exa -la" | |
alias lsda="lsd -la" | |
# docker aliases | |
alias d="docker" | |
alias dps="docker ps" | |
alias dsls="docker service ls" | |
alias dp="docker system prune -f" | |
#Custom exports | |
export PATH="$HOME/.cargo/bin:$PATH" | |
export PATH="$HOME/.nimble/bin:$PATH" | |
export PATH="$HOME/.local/share/coursier/bin:$PATH" | |
export PATH="$HOME/.local/bin:$PATH" | |
source <(kubectl completion zsh) | |
[ -f ~/.kubectl_aliases ] && source ~/.kubectl_aliases | |
function kubectl() { echo "+ kubectl $@">&2; command kubectl $@; } | |
complete -F __start_kubectl k | |
#Rust/cargo | |
source $HOME/.cargo/env | |
#Startship.rs | |
eval "$(starship init zsh)" | |
# >>> NVIM | |
export NVM_DIR="$HOME/.config/nvm" | |
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm | |
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion | |
# Conda | |
eval "$(/home/limpidkzonix/.miniconda3/bin/conda shell.zsh hook)" | |
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!! | |
export SDKMAN_DIR="/home/limpidkzonix/.sdkman" | |
[[ -s "/home/limpidkzonix/.sdkman/bin/sdkman-init.sh" ]] && source "/home/limpidkzonix/.sdkman/bin/sdkman-init.sh" | |
# >>> Rust & Cargo | |
. "$HOME/.cargo/env" | |
export PATH="$HOME/Applications/lite-xl/bin:$PATH" | |
source "$HOME/.antigen/antigen.zsh" | |
antigen use oh-my-zsh | |
antigen apply | |
### Added by Zinit's installer | |
if [[ ! -f $HOME/.zinit/bin/zinit.zsh ]]; then | |
print -P "%F{33}▓▒░ %F{220}Installing %F{33}DHARMA%F{220} Initiative Plugin Manager (%F{33}zdharma/zinit%F{220})…%f" | |
command mkdir -p "$HOME/.zinit" && command chmod g-rwX "$HOME/.zinit" | |
command git clone https://github.com/zdharma/zinit "$HOME/.zinit/bin" && \ | |
print -P "%F{33}▓▒░ %F{34}Installation successful.%f%b" || \ | |
print -P "%F{160}▓▒░ The clone has failed.%f%b" | |
fi | |
source "$HOME/.zinit/bin/zinit.zsh" | |
autoload -Uz _zinit | |
(( ${+_comps} )) && _comps[zinit]=_zinit | |
# Load a few important annexes, without Turbo | |
# (this is currently required for annexes) | |
zinit light-mode for \ | |
zinit-zsh/z-a-rust \ | |
zinit-zsh/z-a-as-monitor \ | |
zinit-zsh/z-a-patch-dl \ | |
zinit-zsh/z-a-bin-gem-node | |
zinit load jonmosco/kube-ps1 | |
zinit wait lucid light-mode for \ | |
atinit"zicompinit; zicdreplay" \ | |
zdharma/fast-syntax-highlighting \ | |
atload"_zsh_autosuggest_start" \ | |
zsh-users/zsh-autosuggestions \ | |
blockf atpull'zinit creinstall -q .' \ | |
zsh-users/zsh-completions | |
### End of Zinit's installer chunk | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment