From 903e81aad458975c6a9c54d8dde5e02c9e0f104b Mon Sep 17 00:00:00 2001 From: Shaun Reed Date: Sat, 16 Jul 2022 10:28:31 -0400 Subject: [PATCH] Update tmux configs + Plugins for tmux + Ranger plugins --- .config/powerline-shell/powerline-shell | 1 + .config/ranger/plugins/__init__.py | 0 .config/ranger/plugins/ranger_devicons | 1 + .gitignore | 1 + .gitmodules | 15 +++ .tmux.conf | 166 ++++++++++++++++++++++++ .tmux/plugins/tmux-better-mouse-mode | 1 + .tmux/plugins/tmux-yank | 1 + .tmux/plugins/tpm | 1 + 9 files changed, 187 insertions(+) create mode 160000 .config/powerline-shell/powerline-shell create mode 100644 .config/ranger/plugins/__init__.py create mode 160000 .config/ranger/plugins/ranger_devicons create mode 100644 .tmux.conf create mode 160000 .tmux/plugins/tmux-better-mouse-mode create mode 160000 .tmux/plugins/tmux-yank create mode 160000 .tmux/plugins/tpm diff --git a/.config/powerline-shell/powerline-shell b/.config/powerline-shell/powerline-shell new file mode 160000 index 0000000..a9b8c9b --- /dev/null +++ b/.config/powerline-shell/powerline-shell @@ -0,0 +1 @@ +Subproject commit a9b8c9bb39dbfb7ec3c639e497b5a76fa6dcb8cc diff --git a/.config/ranger/plugins/__init__.py b/.config/ranger/plugins/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/.config/ranger/plugins/ranger_devicons b/.config/ranger/plugins/ranger_devicons new file mode 160000 index 0000000..1fa1d0f --- /dev/null +++ b/.config/ranger/plugins/ranger_devicons @@ -0,0 +1 @@ +Subproject commit 1fa1d0f29047979b9ffd541eb330756ac4b348ab diff --git a/.gitignore b/.gitignore index 8d9bf64..cf5d1fd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.idea/ .config/Code/Backups/* .config/Code/*Cache*/* .config/Code/Coo* diff --git a/.gitmodules b/.gitmodules index 56f3bd7..cee573f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -23,3 +23,18 @@ [submodule ".vim/bundle/ale"] path = .vim/bundle/ale url = https://github.com/dense-analysis/ale +[submodule ".tmux/plugins/tpm"] + path = .tmux/plugins/tpm + url = https://github.com/tmux-plugins/tpm.git +[submodule ".tmux/plugins/tmux-yank"] + path = .tmux/plugins/tmux-yank + url = https://github.com/tmux-plugins/tmux-yank +[submodule ".tmux/plugins/tmux-better-mouse-mode"] + path = .tmux/plugins/tmux-better-mouse-mode + url = https://github.com/NHDaly/tmux-better-mouse-mode +[submodule ".config/ranger/plugins/ranger_devicons"] + path = .config/ranger/plugins/ranger_devicons + url = https://github.com/alexanderjeurissen/ranger_devicons +[submodule ".config/powerline-shell/powerline-shell"] + path = .config/powerline-shell/powerline-shell + url = https://github.com/b-ryan/powerline-shell diff --git a/.tmux.conf b/.tmux.conf new file mode 100644 index 0000000..3405b01 --- /dev/null +++ b/.tmux.conf @@ -0,0 +1,166 @@ +############################################################################### +## Author: Shaun Reed | Contact: shaunrd0@gmail.com | URL: www.shaunreed.com ## +## ## +## A custom tmux multiplexer config / layout created for Manjaro i3 ## +##+ Inspired by vim-powerline: https://github.com/Lokaltog/powerline ## +## ## +## This config created and tested with Powerline Consolas ## +##+ https://github.com/Lokaltog/powerline-fonts ## +##+ Some symbols may require Font Awesome 5 Free Solid ## +## ## +############################################################################### +# .tmux.conf +# +# If symbols or powerline layout fail to appear... +#+ Check your terminal emulator font settings include these fonts +#+ Check that required fonts are installed +# +# Note: The use of 256colours in this file allows for portable color definitions between platforms and applications +#+ Changing to a different color interpretation may result in some apps displaying colors differently than others +#+ Vim plugin 'Colorizer' does not reflect the actual 256colour values +#+ See https://jonasjacek.github.io/colors/ for a full list of 256colours + +# Settings for terminal text selection / copy options +# + Source: https://www.seanh.cc/2020/12/27/copy-and-paste-in-tmux/ +# + Depends: https://github.com/tmux-plugins/tmux-yank#linux +set -g mouse on +# These bindings are for X Windows only. If you're using a different +# window system you have to replace the `xsel` commands with something +# else. See https://github.com/tmux/tmux/wiki/Clipboard#available-tools +bind -T copy-mode DoubleClick1Pane select-pane \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i" +bind -T copy-mode-vi DoubleClick1Pane select-pane \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i" +bind -n DoubleClick1Pane select-pane \; copy-mode -M \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i" +bind -T copy-mode TripleClick1Pane select-pane \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i" +bind -T copy-mode-vi TripleClick1Pane select-pane \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i" +bind -n TripleClick1Pane select-pane \; copy-mode -M \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i" +bind -n MouseDown2Pane run "tmux set-buffer -b primary_selection \"$(xsel -o)\"; tmux paste-buffer -b primary_selection; tmux delete-buffer -b primary_selection" +set -g @plugin 'tmux-plugins/tpm' +set -g @plugin 'tmux-plugins/tmux-yank' +set -g @yank_action 'copy-pipe-no-clear' +bind -T copy-mode C-c send -X copy-pipe-no-clear "xsel -i --clipboard" +bind -T copy-mode-vi C-c send -X copy-pipe-no-clear "xsel -i --clipboard" + +set-option -s set-clipboard external +bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i" + +# remap shortcut prefix from 'C-b' to 'C-z' +unbind C-b +set-option -g prefix C-z +bind-key C-z send-prefix + +# Reload tmux.conf in this session +bind r source-file ~/.tmux.conf + +bind h split-window -h +bind v split-window -v + +# switch panes using Alt-arrow without prefix +bind -n M-Left select-pane -L +bind -n M-Right select-pane -R +bind -n M-Up select-pane -U +bind -n M-Down select-pane -D + +set-option -g status-position top +# Can't use theme plugin without risk of repo update overwriting data? +#source-file "${HOME}/.tmux-themepack/powerline/double/green.tmuxtheme" + +# Status update interval +set -g status-interval 1 + +# Basic status bar colors +set -g status-style fg=colour240,bg=colour233 + +#set -g status-left "#[fg=colour233,bg=colour100,bold] #S #[fg=colour100,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour208]#[fg=colour240,bg=colour208] #{git_remote} #{git_flags} #[fg=colour208,bg=colour233,nobold]" + +# Tmux Git +#let -g status-left "#[fg=colour233,bg=colour100,bold] #S #[fg=colour100,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour208]#[fg=colour240,bg=colour208] #{git_remote} #{git_flags} #[fg=colour208,bg=colour233,nobold]" + +# Left side of status bar +set -g status-left-style bg=colour233,fg=colour243 +set -g status-left-length 40 +# Note: No bold required, no BG reveal produced by symbol gaps on left side +#+ Font: Powerline Consolas +set -g status-left "#[fg=colour233,bg=colour100,bold] #S #[fg=colour100,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #(hostname) #[fg=colour235,bg=colour233]#[fg=colour240,bg=colour233]" + +# Right side of status bar +set -g status-right-style bg=colour233,fg=colour243 +set -g status-right-length 150 +# Hide right bar entirely +#set -g status-right "" + +# Note: Powerline font requires alternate of bold on right side +# Corrects gap on right of character that reveals BG color +#+ Font: Powerline Consolas +#set -g status-right "#[fg=colour235,bg=colour233,bold]#[fg=colour240,bg=colour235,nobold] %H:%M:%S #[fg=colour240,bg=colour235,bold]#[fg=colour233,bg=colour240,nobold] %d-%b-%y #[fg=colour100,bg=colour240,bold]#[fg=colour233,bg=colour100,bold] #H " +set -g status-right "#[fg=colour235,bg=colour233,bold]#[fg=colour240,bg=colour235,nobold] %H:%M:%S #[fg=colour240,bg=colour235,bold]#[fg=colour233,bg=colour240,nobold] %d-%b-%y #[fg=colour100,bg=colour240,bold]#[fg=colour233,bg=colour100,bold] #(/home/kapper/go/bin/gitux #{pane_current_path}) " + +# Simple Git +#set -g status-right "#[fg=colour235,bg=colour233] #{simple_git_status} #[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour100,bg=colour240]#[fg=colour233,bg=colour100,bold] #H " + +# Tmux Git +#set -g status-right "#[fg=colour208,bg=colour233]#[fg=colour235,bg=colour208] #{git_upstream} #{git_branch} #[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour100,bg=colour240]#[fg=colour233,bg=colour100,bold] #H " + +# Window status +set -g window-status-format '#(/home/kapper/go/bin/gitmux #{pane_current_path})' +# set -g window-status-format " #I:#W#F (TMUX OTHER STATUS) #(pwd | sed -e "s|.*/\(.*/.*\)|\1|") " +set -g window-status-current-format '#(/home/kapper/go/bin/gitmux #{pane_current_path})' +#set -g window-status-current-format "#[fg=colour255,bg=colour233]#[fg=colour100,nobold] #(whoami)@#H #[fg=colour255,bg=colour233,nobold]" +# #{pane_current_path} + +# Current window status +set -g window-status-current-style bg=colour233,fg=colour100 + +# Window with activity status +set -g window-status-activity-style bg=colour233,fg=colour245 + +# Window separator +set -g window-status-separator "" + +# Window status alignment +set -g status-justify centre + +# Pane border +set -g pane-border-style bg=default,fg=colour238 + +# Active pane border +set -g pane-active-border-style bg=default,fg=colour100 + +# Pane number indicator +set -g display-panes-colour colour233 +set -g display-panes-active-colour colour245 + +# Clock mode +set -g clock-mode-colour colour100 +set -g clock-mode-style 24 + +# Message +set -g message-style bg=colour100,fg=black + +# Command message +set -g message-command-style bg=colour233,fg=black + +# Tmux Git status bar settings +# (Un)comment source-file to enable / disable +# source-file "$HOME/.tmux-gitbar/tmux-gitbar.tmux" +set -g default-terminal "screen-256color" + +# Mode +set -g mode-style bg=colour100,fg=colour235 + +# List of plugins and their settings +set -g @plugin 'tmux-plugins/tpm' + +set -g @plugin 'nhdaly/tmux-better-mouse-mode' +set -g @scroll-speed-num-lines-per-scroll 2 + +#set -g @plugin 'tmux-plugins/tmux-sensible' +#set -g @plugin 'kristijanhusak/tmux-simple-git-status' + +# Other examples: +# set -g @plugin 'github_username/plugin_name' +# set -g @plugin 'git@github.com/user/plugin' +# set -g @plugin 'git@bitbucket.com/user/plugin' + +# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) +run -b '~/.tmux/plugins/tpm/tpm' + diff --git a/.tmux/plugins/tmux-better-mouse-mode b/.tmux/plugins/tmux-better-mouse-mode new file mode 160000 index 0000000..aa59077 --- /dev/null +++ b/.tmux/plugins/tmux-better-mouse-mode @@ -0,0 +1 @@ +Subproject commit aa59077c635ab21b251bd8cb4dc24c415e64a58e diff --git a/.tmux/plugins/tmux-yank b/.tmux/plugins/tmux-yank new file mode 160000 index 0000000..1b1a436 --- /dev/null +++ b/.tmux/plugins/tmux-yank @@ -0,0 +1 @@ +Subproject commit 1b1a436e19f095ae8f825243dbe29800a8acd25c diff --git a/.tmux/plugins/tpm b/.tmux/plugins/tpm new file mode 160000 index 0000000..26d9ace --- /dev/null +++ b/.tmux/plugins/tpm @@ -0,0 +1 @@ +Subproject commit 26d9ace1b47f4591b2afdf333442a498311b6ace