diff options
author | Vikas Kushwaha <dev@vikas.rocks> | 2024-11-21 13:30:52 +0530 |
---|---|---|
committer | Vikas Kushwaha <dev@vikas.rocks> | 2024-11-21 13:30:52 +0530 |
commit | 5c916d69d457101326803eb076a746060e3618cf (patch) | |
tree | d6fce3256eede1c1bf78fb6a1be75b9cc4b84cee /.config/tmux |
Moved from github
Diffstat (limited to '.config/tmux')
-rw-r--r-- | .config/tmux/tmux-gruvbox-dark.conf | 53 | ||||
-rw-r--r-- | .config/tmux/tmux-gruvbox-light.conf | 56 | ||||
-rw-r--r-- | .config/tmux/tmux-onedark-theme.tmux | 95 | ||||
-rw-r--r-- | .config/tmux/tmux.conf | 77 |
4 files changed, 281 insertions, 0 deletions
diff --git a/.config/tmux/tmux-gruvbox-dark.conf b/.config/tmux/tmux-gruvbox-dark.conf new file mode 100644 index 0000000..0c3a4f9 --- /dev/null +++ b/.config/tmux/tmux-gruvbox-dark.conf @@ -0,0 +1,53 @@ +## COLORSCHEME: gruvbox dark (medium) +set-option -g status "on" + +# default statusbar color +set-option -g status-style bg=colour237,fg=colour223 # bg=bg1, fg=fg1 + +# default window title colors +set-window-option -g window-status-style bg=colour214,fg=colour237 # bg=yellow, fg=bg1 + +# default window with an activity alert +set-window-option -g window-status-activity-style bg=colour237,fg=colour248 # bg=bg1, fg=fg3 + +# active window title colors +set-window-option -g window-status-current-style bg=red,fg=colour237 # fg=bg1 + +# pane border +set-option -g pane-active-border-style fg=colour250 #fg2 +set-option -g pane-border-style fg=colour237 #bg1 + +# message infos +set-option -g message-style bg=colour239,fg=colour223 # bg=bg2, fg=fg1 + +# writing commands inactive +set-option -g message-command-style bg=colour239,fg=colour223 # bg=fg3, fg=bg1 + +# pane number display +set-option -g display-panes-active-colour colour250 #fg2 +set-option -g display-panes-colour colour237 #bg1 + +# clock +set-window-option -g clock-mode-colour colour109 #blue + +# bell +set-window-option -g window-status-bell-style bg=colour167,fg=colour235 # bg=red, fg=bg + +## Theme settings mixed with colors (unfortunately, but there is no cleaner way) +set-option -g status-justify "left" +set-option -g status-left-style none +set-option -g status-left-length "80" +set-option -g status-right-style none +set-option -g status-right-length "80" +set-window-option -g window-status-separator "" + +set-option -g status-left "#[bg=colour241,fg=colour248] #S #[bg=colour237,fg=colour241,nobold,noitalics,nounderscore]" +# set-option -g status-right "#[bg=colour237,fg=colour239 nobold, nounderscore, noitalics]#[bg=colour239,fg=colour246] %Y-%m-%d %H:%M #[bg=colour239,fg=colour248,nobold,noitalics,nounderscore]#[bg=colour248,fg=colour237] #h " + +set-window-option -g window-status-current-format "#[bg=colour214,fg=colour237,nobold,noitalics,nounderscore]#[bg=colour214,fg=colour239] #I #[bg=colour214,fg=colour239,bold] #W#{?window_zoomed_flag,*Z,} #[bg=colour237,fg=colour214,nobold,noitalics,nounderscore]" +set-window-option -g window-status-format "#[bg=colour239,fg=colour237,noitalics]#[bg=colour239,fg=colour223] #I #[bg=colour239,fg=colour223] #W #[bg=colour237,fg=colour239,noitalics]" + +# vim: set ft=tmux tw=0 nowrap: + +# user configuration +set-option -g status-right "#[bg=colour237,fg=colour248 nobold, nounderscore, noitalics]#[bg=colour248,fg=colour237] #h " diff --git a/.config/tmux/tmux-gruvbox-light.conf b/.config/tmux/tmux-gruvbox-light.conf new file mode 100644 index 0000000..8761966 --- /dev/null +++ b/.config/tmux/tmux-gruvbox-light.conf @@ -0,0 +1,56 @@ +## COLORSCHEME: gruvbox light (medium) +# +# Some colors are not used by gruvbox light medium theme. +# The main idea is to find best version of colors that fit +# the spirit of gruvbox light theme with limited numbers of +# 256 color palette. + +set-option -g status "on" + +# default statusbar colors +set-option -g status-style bg=colour252,fg=colour239 # bg=notInGruvboxPallete, #fg=fg1 + +# default window title colors +set-window-option -g window-status-style bg=colour66,fg=colour229 # bg=aqua, fg=bg5 + +# default window with an activity alert +set-window-option -g window-status-activity-style bg=colour237,fg=colour241 # bg=bg1, fg=notInGruvboxPallete + +# active window title colors +set-window-option -g window-status-current-style bg=default,fg=colour237 # bg=default, fg=bg1 + +# pane border +set-option -g pane-active-border-style fg=colour241 # fg=notInGruvboxPallete +set-option -g pane-border-style fg=colour252 # bg1=notInGruvboxPallete + +# message infos (visible while writing command) +set-option -g message-style bg=colour252,fg=colour241 # bg=notInGruvboxPallete, fg=notInGruvboxPallete + +# writing commands inactive +set-option -g message-command-style bg=colour124,fg=colour241 # bg=notInGruvboxPallete, fg=notInGruvboxPallete + +# pane number display +set-option -g display-panes-active-colour colour241 # notInGruvboxPallete +set-option -g display-panes-colour colour248 # notInGruvboxPallete + +# clock +set-window-option -g clock-mode-colour colour172 # orange + +# bell +set-window-option -g window-status-bell-style bg=colour124,fg=colour229 # bg=red, fg=bg + +## Theme settings mixed with colors (unfortunately, but there is no cleaner way) +set-option -g status-justify "left" +set-option -g status-left-style none +set-option -g status-left-length "80" +set-option -g status-right-style none +set-option -g status-right-length "80" +set-window-option -g window-status-separator "" + +set-option -g status-left "#[bg=colour243,fg=colour255] #S #[bg=colour252,fg=colour243,nobold,noitalics,nounderscore]" +set-option -g status-right "#[bg=colour252,fg=colour243,nobold,nounderscore,noitalics]#[bg=colour243,fg=colour255] %Y-%m-%d %H:%M #[bg=colour243,fg=colour237,nobold,noitalics,nounderscore]#[bg=colour237,fg=colour255] #h " + +set-window-option -g window-status-current-format "#[bg=colour215,fg=colour252,nobold,noitalics,nounderscore]#[bg=colour215,fg=colour239] #I #[bg=colour215,fg=colour239,bold] #W#{?window_zoomed_flag,*Z,} #[bg=colour252,fg=colour215,nobold,noitalics,nounderscore]" +set-window-option -g window-status-format "#[bg=colour249,fg=colour252,noitalics]#[bg=colour249,fg=colour241] #I #[bg=colour249,fg=colour241] #W #[bg=colour252,fg=colour249,noitalics]" + +# vim: set ft=tmux tw=0 nowrap: diff --git a/.config/tmux/tmux-onedark-theme.tmux b/.config/tmux/tmux-onedark-theme.tmux new file mode 100644 index 0000000..8150357 --- /dev/null +++ b/.config/tmux/tmux-onedark-theme.tmux @@ -0,0 +1,95 @@ +#!/bin/bash +onedark_black="#282c34" +onedark_blue="#61afef" +onedark_yellow="#e5c07b" +onedark_red="#e06c75" +onedark_white="#aab2bf" +onedark_green="#98c379" +onedark_visual_grey="#3e4452" +onedark_comment_grey="#5c6370" + +if [ -z "$SSH_CONNECTION" ] && [ -n "$TERMUX_VERSION" ]; then + onedark_white="#dddddd" +fi + +get() { + local option=$1 + local default_value=$2 + local option_value="$(tmux show-option -gqv "$option")" + + if [ -z "$option_value" ]; then + echo "$default_value" + else + echo "$option_value" + fi +} + +set() { + local option=$1 + local value=$2 + tmux set-option -gq "$option" "$value" +} + +setw() { + local option=$1 + local value=$2 + tmux set-window-option -gq "$option" "$value" +} + +set "status" "on" +set "status-justify" "left" + +set "status-left-length" "100" +set "status-right-length" "100" +set "status-right-attr" "none" + +set "message-fg" "$onedark_white" +set "message-bg" "$onedark_black" + +set "message-command-fg" "$onedark_white" +set "message-command-bg" "$onedark_black" + +set "status-attr" "none" +set "status-left-attr" "none" + +setw "window-status-fg" "$onedark_black" +setw "window-status-bg" "$onedark_black" +setw "window-status-attr" "none" + +setw "window-status-activity-bg" "$onedark_black" +setw "window-status-activity-fg" "$onedark_black" +setw "window-status-activity-attr" "none" + +setw "window-status-separator" "" + +set "window-style" "fg=$onedark_comment_grey" +set "window-active-style" "fg=$onedark_white" + +set "pane-border-fg" "$onedark_white" +set "pane-border-bg" "$onedark_black" +set "pane-active-border-fg" "$onedark_green" +set "pane-active-border-bg" "$onedark_black" + +set "display-panes-active-colour" "$onedark_yellow" +set "display-panes-colour" "$onedark_blue" + +set "status-bg" "$onedark_black" +set "status-fg" "$onedark_white" + +set "@prefix_highlight_fg" "$onedark_black" +set "@prefix_highlight_bg" "$onedark_green" +set "@prefix_highlight_copy_mode_attr" "fg=$onedark_black,bg=$onedark_green" +set "@prefix_highlight_output_prefix" " " + +status_widgets=$(get "@onedark_widgets") +time_format=$(get "@onedark_time_format" "%R") +date_format=$(get "@onedark_date_format" "%d/%m/%Y") + +# set "status-right" "#[fg=$onedark_white,bg=$onedark_black,nounderscore,noitalics]${time_format} ${date_format} #[fg=$onedark_visual_grey,bg=$onedark_black]#[fg=$onedark_visual_grey,bg=$onedark_visual_grey]#[fg=$onedark_white, bg=$onedark_visual_grey]${status_widgets} #[fg=$onedark_green,bg=$onedark_visual_grey,nobold,nounderscore,noitalics]#[fg=$onedark_black,bg=$onedark_green,bold] #h #[fg=$onedark_yellow, bg=$onedark_green]#[fg=$onedark_red,bg=$onedark_yellow]" +set "status-left" "#[fg=$onedark_black,bg=$onedark_green,bold] #S #{prefix_highlight}#[fg=$onedark_green,bg=$onedark_black,nobold,nounderscore,noitalics]" + +set "window-status-format" "#[fg=$onedark_black,bg=$onedark_black,nobold,nounderscore,noitalics]#[fg=$onedark_white,bg=$onedark_black] #I #W #[fg=$onedark_black,bg=$onedark_black,nobold,nounderscore,noitalics]" +set "window-status-current-format" "#[fg=$onedark_black,bg=$onedark_visual_grey,nobold,nounderscore,noitalics]#[fg=$onedark_white,bg=$onedark_visual_grey,nobold] #I #W #[fg=$onedark_visual_grey,bg=$onedark_black,nobold,nounderscore,noitalics]" + +# user configuration +set "status-right" "#[bg=colour236,fg=colour248,nobold,noitalics,nounderscore]#[bg=colour248,fg=colour237] #h " diff --git a/.config/tmux/tmux.conf b/.config/tmux/tmux.conf new file mode 100644 index 0000000..cc53fde --- /dev/null +++ b/.config/tmux/tmux.conf @@ -0,0 +1,77 @@ +if-shell '[ "$COLORTERM" != "${COLORTERM#*truecolor}" ]' { + set -g default-terminal "tmux-256color" + set -ga terminal-overrides ',*256col*:Tc' + source ~/.config/tmux/tmux-gruvbox-dark.conf + # run 'bash ~/.config/tmux/tmux-onedark-theme.tmux' +} + +if-shell '[ -z "$SSH_CONNECTION" ] && [ -n "$TERMUX_VERSION" ]' { + set -g status-right "" +} + +# if-shell '[ -n "$TERMUX_VERSION" ]' { +# set -g status-right "" +# } + +if-shell '[ -z "$EDITOR" ]' 'EDITOR=vi' + +unbind C-b +set -g prefix ` +bind ` send-prefix + +set-window-option -g mode-keys vi +set -g status-keys vi +bind h select-pane -L +bind j select-pane -D +bind k select-pane -U +bind l select-pane -R +bind -r C-h resize-pane -L +bind -r C-j resize-pane -D +bind -r C-k resize-pane -U +bind -r C-l resize-pane -R +bind -r M-h resize-pane -L 5 +bind -r M-j resize-pane -D 5 +bind -r M-k resize-pane -U 5 +bind -r M-l resize-pane -R 5 + +bind -T copy-mode-vi u send -X halfpage-up +bind -T copy-mode-vi d send -X halfpage-down +bind -T copy-mode-vi i send -X cancel +bind -T copy-mode-vi V send -X select-line +bind -T copy-mode-vi v send -X rectangle-off \; send -X begin-selection +bind -T copy-mode-vi C-v send -X rectangle-on \; send -X begin-selection +bind -T copy-mode-vi p send -X copy-pipe \; paste-buffer +bind -T copy-mode-vi y send -X copy-pipe +bind -T copy-mode-vi Y send -X copy-pipe 'xclip -in -selection clipboard' +bind -T copy-mode-vi MouseDragEnd1Pane send -X begin-selection -x + +bind -r \" split-window -c '#{pane_current_path}' +bind -r % split-window -c '#{pane_current_path}' -h +bind -r c new-window -c '#{pane_current_path}' +bind -r \; last-window +bind -r J rotate-window -D +bind -r K rotate-window -U + +bind E new-window -t9 -n tmux.conf '$EDITOR ~/.config/tmux/tmux.conf' +bind R source ~/.config/tmux/tmux.conf \; display "sourced config" +bind H new-window -n tmux.help 'man tmux' +bind G new-window -t0 gotop + +set -g base-index 1 +set -g escape-time 20 +set -g mouse on +set -g display-time 0 +set -g history-limit 1000000 + +set -g lock-command vlock +# set -g lock-after-time 300 +bind Home lock-server +bind End lock-session +bind Delete lock-client + +bind -r C-u run -b 'brightness up' +bind -r C-d run -b 'brightness down' + +# if -F "#{==:#{session_windows},1}" "set status off" "set status on" + set-hook -g window-linked 'if -F "#{==:#{session_windows},1}" "set status off" "set status on"' + set-hook -g window-unlinked 'if -F "#{==:#{session_windows},1}" "set status off" "set status on"' |