Added chaotic AUR install script and terminal customization script
This commit is contained in:
+139
@@ -0,0 +1,139 @@
|
||||
# set prefix key to Ctrl-a
|
||||
set -g prefix C-a
|
||||
|
||||
# enable mouse mode
|
||||
set -g mouse on
|
||||
|
||||
# set default terminal to xterm-256color
|
||||
set -g default-terminal "tmux-256color"
|
||||
|
||||
# bind keys for pane navigation
|
||||
bind h select-pane -L
|
||||
bind j select-pane -D
|
||||
bind k select-pane -U
|
||||
bind l select-pane -R
|
||||
|
||||
# bind key for closing panes
|
||||
bind x kill-pane
|
||||
bind q confirm-before kill-session
|
||||
# bind key for switching between windows
|
||||
bind n next-window
|
||||
bind p previous-window
|
||||
|
||||
# cheatsheet & reload
|
||||
bind ? display-popup -h 27 -w 46 -E "echo -e '╔══════════════════════════════════════════╗\n║ Tmux Cheatsheet ║\n╠══════════════════════════════════════════╣\n║ Press Ctrl+A (prefix) then: ║\n╠══════════════════════════════════════════╣\n║ PANES ║\n║ h/j/k/l Navigate pane ║\n║ | Split horizontally ║\n║ - Split vertically ║\n║ x Kill pane ║\n║ Ctrl+S Swap pane layout ║\n╠══════════════════════════════════════════╣\n║ WINDOWS ║\n║ n Next window ║\n║ p Previous window ║\n║ q Kill session ║\n║ c New window ║\n║ , Rename window ║\n╠══════════════════════════════════════════╣\n║ GENERAL ║\n║ r Reload config ║\n║ ? This cheatsheet ║\n╚══════════════════════════════════════════╝\nPress any key to close.' && read -n 1 -s"
|
||||
bind r source-file ~/.config/tmux/tmux.conf
|
||||
|
||||
# disable terminal flow control (so C-s doesn't freeze)
|
||||
# set -g flow-control off # option not available in this tmux build
|
||||
|
||||
# bind key for toggling between horizontal and vertical split
|
||||
bind C-s swap-pane -s .-1
|
||||
|
||||
# split panes using | and -
|
||||
bind | split-window -h
|
||||
bind - split-window -v
|
||||
unbind '"'
|
||||
unbind %
|
||||
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'tmux-plugins/tmux-online-status'
|
||||
set -g @plugin 'tmux-plugins/tmux-battery'
|
||||
set -g @plugin 'tmux-plugins/tmux-cpu'
|
||||
# GitHub Dark color palette
|
||||
set -g @thm_bg "#0d1117"
|
||||
set -g @thm_surface_0 "#161b22"
|
||||
set -g @thm_overlay_0 "#30363d"
|
||||
set -g @thm_red "#f85149"
|
||||
set -g @thm_green "#3fb950"
|
||||
set -g @thm_yellow "#d29922"
|
||||
set -g @thm_blue "#58a6ff"
|
||||
set -g @thm_mauve "#bc8cff"
|
||||
set -g @thm_pink "#f778ba"
|
||||
set -g @thm_peach "#f0883e"
|
||||
set -g @thm_maroon "#ff7b72"
|
||||
set -g @thm_rosewater "#c9d1d9"
|
||||
|
||||
# Configure Online
|
||||
set -g @online_icon "ok"
|
||||
set -g @offline_icon "nok"
|
||||
|
||||
# status left look and feel
|
||||
set -g status-left-length 100
|
||||
set -g status-left ""
|
||||
set -ga status-left "#{?client_prefix,#{#[bg=#{@thm_red},fg=#{@thm_bg},bold] #S },#{#[bg=#{@thm_bg},fg=#{@thm_green}] #S }}"
|
||||
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_overlay_0},none]│"
|
||||
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_maroon}] #{pane_current_command} "
|
||||
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_overlay_0},none]│"
|
||||
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_blue}] #{=/-32/...:#{s|$USER|~|:#{b:pane_current_path}}} "
|
||||
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_overlay_0},none]#{?window_zoomed_flag,│,}"
|
||||
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_yellow}]#{?window_zoomed_flag, zoom ,}"
|
||||
|
||||
# status right look and feel
|
||||
set -g status-right-length 100
|
||||
set -g status-right ""
|
||||
set -ga status-right "#{?#{e|>=:10,#{battery_percentage}},#{#[bg=#{@thm_red},fg=#{@thm_bg}]},#{#[bg=#{@thm_bg},fg=#{@thm_pink}]}} #{battery_icon} #{battery_percentage} "
|
||||
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_overlay_0}, none]│"
|
||||
set -ga status-right "#[bg=#{@thm_bg}]#{?#{==:#{online_status},ok},#[fg=#{@thm_mauve}] on ,#[fg=#{@thm_red},bold]#[reverse] off }"
|
||||
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_overlay_0}, none]│"
|
||||
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_blue}] %a, %m-%d-%Y %I:%M %p "
|
||||
|
||||
# start indexing at 1 (not 0)
|
||||
set -g base-index 1
|
||||
setw -g pane-base-index 1
|
||||
|
||||
# misc quality-of-life
|
||||
set -sg escape-time 0
|
||||
set -g status-interval 5
|
||||
set -g renumber-windows on
|
||||
set -g focus-events on
|
||||
setw -g aggressive-resize on
|
||||
set -g set-clipboard on
|
||||
|
||||
# bootstrap tpm
|
||||
if "test ! -d ~/.config/tmux/plugins/tpm" \
|
||||
"run 'git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm && ~/.config/tmux/plugins/tpm/bin/install_plugins'"
|
||||
|
||||
# auto-install a Nerd Font if missing (for icons)
|
||||
run 'if ! fc-list :lang=en 2>/dev/null | grep -qi "nerd\\|jetbrainsmono\\|firacode\\|hack\\|iosevka\\|meslo"; then
|
||||
mkdir -p ~/.local/share/fonts
|
||||
if command -v curl >/dev/null 2>&1; then
|
||||
curl -sL "https://github.com/ryanoasis/nerd-fonts/releases/download/v3.3.0/JetBrainsMono.zip" -o /tmp/jetbrains-nerd.zip
|
||||
elif command -v wget >/dev/null 2>&1; then
|
||||
wget -q "https://github.com/ryanoasis/nerd-fonts/releases/download/v3.3.0/JetBrainsMono.zip" -O /tmp/jetbrains-nerd.zip
|
||||
fi
|
||||
if [ -f /tmp/jetbrains-nerd.zip ]; then
|
||||
unzip -qo /tmp/jetbrains-nerd.zip -d ~/.local/share/fonts/ 2>/dev/null
|
||||
rm -f /tmp/jetbrains-nerd.zip
|
||||
fc-cache -f ~/.local/share/fonts/ 2>/dev/null
|
||||
fi
|
||||
fi'
|
||||
|
||||
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
||||
run '~/.config/tmux/plugins/tpm/tpm'
|
||||
|
||||
# Configure Tmux
|
||||
set -g status-position bottom
|
||||
set -g status-style "bg=#{@thm_bg}"
|
||||
set -g status-justify "absolute-centre"
|
||||
|
||||
# pane border look and feel
|
||||
setw -g pane-border-status bottom
|
||||
setw -g pane-border-format ""
|
||||
setw -g pane-active-border-style "bg=#{@thm_bg},fg=#{@thm_overlay_0}"
|
||||
setw -g pane-border-style "bg=#{@thm_bg},fg=#{@thm_surface_0}"
|
||||
setw -g pane-border-lines single
|
||||
|
||||
# window look and feel
|
||||
set -wg automatic-rename on
|
||||
set -g automatic-rename-format "#{pane_current_command}"
|
||||
|
||||
set -g window-status-format " #I#{?#{!=:#{window_name},Window},: #W,} "
|
||||
set -g window-status-style "bg=#{@thm_bg},fg=#{@thm_rosewater}"
|
||||
set -g window-status-last-style "bg=#{@thm_bg},fg=#{@thm_peach}"
|
||||
set -g window-status-activity-style "bg=#{@thm_red},fg=#{@thm_bg}"
|
||||
set -g window-status-bell-style "bg=#{@thm_red},fg=#{@thm_bg},bold"
|
||||
set -gF window-status-separator "#[bg=#{@thm_bg},fg=#{@thm_overlay_0}]│"
|
||||
|
||||
set -g window-status-current-format " #I#{?#{!=:#{window_name},Window},: #W,} "
|
||||
set -g window-status-current-style "bg=#{@thm_peach},fg=#{@thm_bg},bold"
|
||||
Reference in New Issue
Block a user