ENH update tmux and add plugin dir
This commit is contained in:
parent
42d0ae5a8b
commit
6df6cc461c
|
@ -0,0 +1,41 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
cache_vals(){
|
||||||
|
echo "$1" > "$3"
|
||||||
|
echo -n "$2" >> "$3"
|
||||||
|
}
|
||||||
|
|
||||||
|
cached_eval(){
|
||||||
|
local dir
|
||||||
|
local a0
|
||||||
|
local t0
|
||||||
|
local a1
|
||||||
|
local t1
|
||||||
|
dir="/tmp/tmux_cpu_perc"
|
||||||
|
a1="$1"
|
||||||
|
t1="$2"
|
||||||
|
if [ -f "$dir" ]; then
|
||||||
|
a0="$(head -n1 "$dir")"
|
||||||
|
t0="$(tail -n+2 "$dir")"
|
||||||
|
cache_vals "$a1" "$t1" "$dir"
|
||||||
|
awk -v a1="$a1" \
|
||||||
|
-v t1="$t1" \
|
||||||
|
-v a0="$a0" \
|
||||||
|
-v t0="$t0" \
|
||||||
|
'BEGIN {print 100*(a1-a0)/(t1-t0)}'
|
||||||
|
else
|
||||||
|
cache_vals "$a1" "$t1" "$dir"
|
||||||
|
echo -n 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
get_cpu(){
|
||||||
|
grep 'cpu ' /proc/stat | \
|
||||||
|
awk '{a=($2+$4)}; {t=($2+$4+$5)} END {printf("%s %s", a, t)}'
|
||||||
|
}
|
||||||
|
|
||||||
|
cpu_percentage_format="%.2f%%"
|
||||||
|
|
||||||
|
cached_eval $(get_cpu) \
|
||||||
|
| awk -v f="$cpu_percentage_format" \
|
||||||
|
'{usage=$NF} END {printf(f, usage)}'
|
|
@ -3,17 +3,29 @@ unbind C-b
|
||||||
set -g prefix C-f
|
set -g prefix C-f
|
||||||
bind C-f send-prefix
|
bind C-f send-prefix
|
||||||
|
|
||||||
|
# actual escape key
|
||||||
|
set -sg escape-time 0
|
||||||
|
|
||||||
# reload
|
# reload
|
||||||
bind r source-file $XDG_CONFIG_HOME/tmux/tmux.conf \; display "Config Reloaded"
|
bind r source-file $XDG_CONFIG_HOME/tmux/tmux.conf \; display "Config Reloaded"
|
||||||
|
|
||||||
|
# session/client
|
||||||
|
bind q detach-client
|
||||||
|
bind l list-sessions
|
||||||
|
|
||||||
# window creation
|
# window creation
|
||||||
bind n new-window
|
bind n new-window
|
||||||
bind | split-window -v
|
bind N command-prompt -I "#{window_name}" "rename-window '%%'"
|
||||||
bind - split-window -h
|
bind S command-prompt -I "#{session_name}" "rename-session '%%'"
|
||||||
|
bind - split-window -v
|
||||||
|
bind | split-window -h
|
||||||
|
|
||||||
# window navigation
|
# window navigation
|
||||||
bind Tab next-window
|
bind -n M-Tab next-window
|
||||||
bind BTab previous-window
|
bind -n M-BTab previous-window
|
||||||
|
|
||||||
|
bind -n M-| choose-window "join-pane -h -t '%%'"
|
||||||
|
bind -n M-- choose-window "join-pane -v -t '%%'"
|
||||||
|
|
||||||
# pane navigation
|
# pane navigation
|
||||||
bind -n M-l select-pane -R
|
bind -n M-l select-pane -R
|
||||||
|
@ -21,6 +33,11 @@ bind -n M-h select-pane -L
|
||||||
bind -n M-k select-pane -U
|
bind -n M-k select-pane -U
|
||||||
bind -n M-j select-pane -D
|
bind -n M-j select-pane -D
|
||||||
bind -n M-o last-pane
|
bind -n M-o last-pane
|
||||||
|
bind o display-panes
|
||||||
|
bind H swap-pane -U
|
||||||
|
bind L swap-pane -D
|
||||||
|
|
||||||
|
set -g display-panes-time 5000
|
||||||
|
|
||||||
# pane resizing
|
# pane resizing
|
||||||
bind -r C-l resize-pane -R 2
|
bind -r C-l resize-pane -R 2
|
||||||
|
@ -28,6 +45,14 @@ bind -r C-h resize-pane -L 2
|
||||||
bind -r C-k resize-pane -U
|
bind -r C-k resize-pane -U
|
||||||
bind -r C-j resize-pane -D
|
bind -r C-j resize-pane -D
|
||||||
|
|
||||||
|
# copy-mode (vim-like)
|
||||||
|
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
||||||
|
bind-key -T copy-mode-vi r send-keys -X rectangle-toggle
|
||||||
|
|
||||||
|
# clipboard integration
|
||||||
|
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xsel -i -p && xsel -o -p | xsel -i -b"
|
||||||
|
bind-key p run "xsel -o | tmux load-buffer - ; tmux paste-buffer"
|
||||||
|
|
||||||
# pane selection (mouse)
|
# pane selection (mouse)
|
||||||
# set -g mouse utf8 on
|
# set -g mouse utf8 on
|
||||||
set -g mouse on
|
set -g mouse on
|
||||||
|
@ -35,45 +60,59 @@ set -g mouse on
|
||||||
# copy-mode
|
# copy-mode
|
||||||
bind C-c copy-mode
|
bind C-c copy-mode
|
||||||
|
|
||||||
# nested sessions
|
# theme
|
||||||
#Variables
|
|
||||||
color_status_text="color245"
|
|
||||||
color_window_off_status_bg="color238"
|
|
||||||
color_light="white" #color015
|
|
||||||
color_dark="color232" # black= color232
|
|
||||||
color_window_off_status_current_bg="color254"
|
|
||||||
|
|
||||||
# window-status-current-format and window-status-current-style control how the
|
status_sep="#[fg=#888888]|#[default]"
|
||||||
# status bar looks and the window label in it
|
|
||||||
# "root" is the default key table, and "key-table" (the variable) is set to
|
set -g status-interval 1
|
||||||
# "off" which is a different table
|
set -g status-left "#h:#S $status_sep "
|
||||||
# the if statement send the cancel command to exit copy mode if we are in
|
set -g status-left-length 32
|
||||||
# copy mode
|
set -g status-style "fg=#cccccc,bg=#444444"
|
||||||
# set prefix to None to "turn off" the root keymap
|
set -g window-status-style "fg=#9f9f9f"
|
||||||
|
set -g window-status-activity-style "fg=#9f9f9f"
|
||||||
|
set -g window-status-current-style "fg=#000000 bold,bg=#00ff00"
|
||||||
|
set -g window-status-separator " "
|
||||||
|
|
||||||
|
set -g window-status-format "#{?window_activity_flag,##,}#I-#W"
|
||||||
|
set -g window-status-current-format " #I-#W "
|
||||||
|
|
||||||
|
set -g visual-activity off
|
||||||
|
set -g monitor-activity on
|
||||||
|
|
||||||
|
set -g pane-border-style "fg=#444444"
|
||||||
|
set -g pane-active-border-style "fg=#aaaaaa"
|
||||||
|
|
||||||
|
set -g pane-border-lines heavy
|
||||||
|
|
||||||
|
set -g message-style "fg=#ffffaa,bg=#666600"
|
||||||
|
|
||||||
|
set -g pane-border-status off
|
||||||
|
|
||||||
|
set -g copy-mode-current-match-style "fg=#000000,bg=#ffffff"
|
||||||
|
set -g copy-mode-match-style "fg=#000000,bg=#aa00aa"
|
||||||
|
|
||||||
|
# pressing F12 turns the current prefix key/keymap "OFF" and allows keypresses
|
||||||
|
# to go to a nested session if running
|
||||||
bind -T root F12 \
|
bind -T root F12 \
|
||||||
set prefix None \;\
|
set prefix None \;\
|
||||||
set key-table off \;\
|
set key-table off \;\
|
||||||
set status-style "fg=$color_status_text,bg=$color_window_off_status_bg" \;\
|
set status-style "fg=#aaaaaa,bg=#666666" \;\
|
||||||
set window-status-current-format "#[fg=$color_window_off_status_bg,bg=$color_window_off_status_current_bg]$separator_powerline_right#[default] #I:#W# #[fg=$color_window_off_status_current_bg,bg=$color_window_off_status_bg]$separator_powerline_right#[default]" \;\
|
set window-status-style "fg=#777777" \;\
|
||||||
set window-status-current-style "fg=$color_dark,bold,bg=$color_window_off_status_current_bg" \;\
|
set window-status-current-style "fg=#666666 bold,bg=#999999" \;\
|
||||||
if -F '#{pane_in_mode}' 'send-keys -X cancel' \;\
|
if -F '#{pane_in_mode}' 'send-keys -X cancel' \;\
|
||||||
refresh-client -S \;\
|
refresh-client -S \;\
|
||||||
|
|
||||||
# in the "off" map, pressing F12 unsets all the stuff from above
|
|
||||||
bind -T off F12 \
|
bind -T off F12 \
|
||||||
set -u prefix \;\
|
set -u prefix \;\
|
||||||
set -u key-table \;\
|
set -u key-table \;\
|
||||||
set -u status-style \;\
|
set -u status-style \;\
|
||||||
|
set -u window-status-style \;\
|
||||||
set -u window-status-current-style \;\
|
set -u window-status-current-style \;\
|
||||||
set -u window-status-current-format \;\
|
|
||||||
refresh-client -S
|
refresh-client -S
|
||||||
|
|
||||||
# a string that shows the keymap is "off"
|
|
||||||
wg_is_keys_off="#[fg=$color_light,bg=$color_window_off_indicator]#([ $(tmux show-option -qv key-table) = 'off' ] && echo 'OFF')#[default]"
|
|
||||||
|
|
||||||
# a status indicator to the right (which shows nothing, and idk if I really care about)
|
mem_perc="free | grep Mem | awk '{ printf(\"%.2f%%\", $3/$2 * 100.0) }'"
|
||||||
# the sysstat stuff comes from a plugin (https://github.com/samoshkin/tmux-plugin-sysstat)
|
|
||||||
set -g status-right "$wg_is_keys_off #{sysstat_cpu} | #{sysstat_mem} | #{sysstat_loadavg} | $wg_user_host"
|
set -g status-right "CPU: #($XDG_CONFIG_HOME/tmux/plugins/cpu_perc) $status_sep RAM: #($mem_perc) "
|
||||||
|
|
||||||
{{- if eq .chezmoi.hostname "petrucci4prez" }}
|
{{- if eq .chezmoi.hostname "petrucci4prez" }}
|
||||||
set -g status-position top
|
set -g status-position top
|
||||||
|
|
Loading…
Reference in New Issue