From 58900e01a66956a1d38d0a51d489ebcb7458b3aa Mon Sep 17 00:00:00 2001 From: dimti Date: Tue, 15 Oct 2024 09:47:24 +0300 Subject: [PATCH] * use xterm for tmux light config + shell history for different tty terminals (restoring bash history for different tmux windows) --- .bashrc | 1 + .shell-history | 35 +++++++++++++++++++++++++++++++++++ .tmux.light.conf | 15 +++++---------- 3 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 .shell-history diff --git a/.bashrc b/.bashrc index d84ea44..2301759 100644 --- a/.bashrc +++ b/.bashrc @@ -20,6 +20,7 @@ test -r /etc/bashrc && . /etc/bashrc test -r ~/.shell-env && . ~/.shell-env test -r ~/.shell-aliases && . ~/.shell-aliases test -r ~/.shell-common && . ~/.shell-common +test -r ~/.shell-history && . ~/.shell-history # don't put duplicate lines in the history. See bash(1) for more options # ... or force ignoredups and ignorespace diff --git a/.shell-history b/.shell-history new file mode 100644 index 0000000..f542d9e --- /dev/null +++ b/.shell-history @@ -0,0 +1,35 @@ +# save history for multiple terminals +# create a folder to store the history +if [ ! -d "${HOME}/.bash_history_log" ]; then + mkdir "${HOME}/.bash_history_log" +fi + +# Add the tty to the history file +# Each terminal's history will be stored in +# its own file +HISTSUFFIX=`tty | sed 's/\///g;s/^dev//g'` +HISTFILE="$HOME/.bash_history_log/bash_history_$HISTSUFFIX" + +# Time stamp for the history +HISTTIMEFORMAT="%y-%m-%d %H:%M:%S " + +# don't put duplicate lines or lines starting with space in the history. +HISTCONTROL=ignoredups:ignorespace + +# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) +HISTSIZE=1000 +HISTFILESIZE=5000 + +# append to the history file, don't overwrite it +shopt -s histappend + +# Add to the history everytime the prompt is shown +PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007";history -a' + +# Search history +function searchhistory() { + grep -ri "${1}" ~/.bash_history_log/* +} +alias shistory=searchhistory + +# Thanks for that: https://dev.to/mrrcollins/saving-bash-history-across-terminals-b80 diff --git a/.tmux.light.conf b/.tmux.light.conf index cadfaf1..043462e 100644 --- a/.tmux.light.conf +++ b/.tmux.light.conf @@ -15,8 +15,7 @@ set -g @man-size '40%' set -g @man-orientation 'h' set -g @man-shell-interactive 'off' -set -g default-terminal "screen-256color" -set -ag terminal-overrides ",alacritty:RGB" +set -g default-terminal "xterm-256color" # switch panes using Alt-arrow without prefix bind -n M-Left select-pane -L @@ -27,14 +26,10 @@ bind -n M-Down select-pane -D ## Mouse On by default set -g mouse on -# PageUp/PageDown works for scrolling -bind-key -T root PPage if-shell -F "#{alternate_on}" "send-keys PPage" "copy-mode -e; send-keys PPage" -bind-key -T copy-mode-vi PPage send-keys -X page-up -bind-key -T copy-mode-vi NPage send-keys -X page-down - -# Same for the mouse scroll button -bind-key -T root WheelUpPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; copy-mode -e; send-keys -M" -bind-key -T root WheelDownPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; send-keys -M" +## Scoll for vim +bind -n WheelUpPane if "echo #{pane_current_command} | grep vim" "select-pane -t =; send-keys -N 4 Up" "select-pane -t =; copy-mode -e; send-keys -M" +bind -n WheelDownPane if "echo #{pane_current_command} | grep vim" "select-pane -t =; send-keys -N 4 Down" "select-pane -t =; send-keys -M" +# And additional scrolling things for tmux copy-mode bind-key -T copy-mode-vi WheelUpPane send-keys -X halfpage-up bind-key -T copy-mode-vi WheelDownPane send-keys -X halfpage-down