aboutsummaryrefslogtreecommitdiff
path: root/tmux/.tmux.conf
diff options
context:
space:
mode:
authorIbrahim Mkusa <ibrahimmkusa@gmail.com>2024-07-28 23:05:45 -0400
committerIbrahim Mkusa <ibrahimmkusa@gmail.com>2024-07-28 23:05:45 -0400
commit8c4a6f932b129df4f9a63b7b2e2bcaea6f215866 (patch)
treed51cea169cae19b05025a0b26670a9a09505e8fe /tmux/.tmux.conf
Took snapshot of my main dotfiles
Diffstat (limited to 'tmux/.tmux.conf')
-rw-r--r--tmux/.tmux.conf130
1 files changed, 130 insertions, 0 deletions
diff --git a/tmux/.tmux.conf b/tmux/.tmux.conf
new file mode 100644
index 0000000..54ba909
--- /dev/null
+++ b/tmux/.tmux.conf
@@ -0,0 +1,130 @@
+# colors
+set -g default-terminal "screen-256color"
+
+# C-b is not acceptable -- Vim uses it
+set-option -g prefix C-a
+bind-key C-a last-window
+
+# Start numbering at 1
+set -g base-index 1
+
+# start with pane 1
+set -g pane-base-index 1
+
+# Allows for faster key repetition
+set -s escape-time 0
+
+# Rather than constraining window size to the maximum size of any client
+# connected to the *session*, constrain window size to the maximum size of any
+# client connected to *that window*. Much more reasonable.
+setw -g aggressive-resize on
+
+# Allows us to use C-a a <command> to send commands to a TMUX session inside
+# another TMUX session
+bind-key a send-prefix
+
+# Status Bar
+set-option -g status on # turn the status bar on
+set -g status-interval 5 # set update frequencey (default 15 seconds)
+set -g status-justify centre # center window list for clarity
+set-option -g status-position top # position the status bar at top of screen
+
+# visual notification of activity in other windows
+setw -g monitor-activity off
+set-option -g visual-bell off
+set-option -g visual-silence off
+set-option -g bell-action none
+set -g visual-activity on
+
+
+# Make mouse useful
+set -gq mouse on
+set -gq mouse-utf8 on
+# set -gq mouse on
+set -gq mouse-resize-pane on
+set -gq mouse-select-window on
+
+# Allow mouse to select which pane to use
+set -gq mouse-select-pane on
+
+# Scroll History
+# set -g history-limit 4096
+# i have 32 gigs of ram haha
+set -g history-limit 10000
+
+# unicode
+setw -gq utf8 on
+set -gq status-utf8 on
+
+# show session name, window & pane number, date and time on right side of
+# status bar
+set -g status-right-length 60
+set -g status-right "#[fg=blue]#S #I:#P #[fg=yellow]:: %d %b %Y #[fg=green]:: %R" # :: #(date -u | awk '{print $4}')::"
+
+
+# show host name and IP address on left side of status bar
+set -g status-left-length 70
+set -g status-left "#[fg=green]: #h : #[fg=blue]#(curl -4 icanhazip.com) #[fg=yellow]#(ifconfig en0 | grep 'inet ' | awk '{print \"en0 \" $2}') #(ifconfig en1 | grep 'inet ' | awk '{print \"en1 \" $2}') #[fg=red]#(ifconfig tun0 | grep 'inet ' | awk '{print \"vpn \" $2}') "
+
+
+unbind [
+bind Escape copy-mode
+unbind p
+bind p paste-buffer
+# in copy mode can use visual style copy
+# tmux version < 2.3
+# bind-key -tq vi-copy 'v' begin-selection
+# bind-key -tq vi-copy 'y' copy-selection
+
+# new way for v2.3 >
+# bind-key -T edit-mode-vi Up send-keys -X history-up
+# bind-key -T edit-mode-vi Down send-keys -X history-down
+unbind-key -T copy-mode-vi Space ; bind-key -T copy-mode-vi v send-keys -X begin-selection
+#unbind-key -T copy-mode-vi Enter ; bind-key -T copy-mode-vi y send-keys -X copy-selection
+unbind-key -T copy-mode-vi Enter ; bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xsel -i --clipboard"
+# unbind-key -T copy-mode-vi Enter ; bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
+# unbind-key -T copy-mode-vi C-v ; bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
+# unbind-key -T copy-mode-vi [ ; bind-key -T copy-mode-vi [ send-keys -X begin-selection
+# unbind-key -T copy-mode-vi ] ; bind-key -T copy-mode-vi ] send-keys -X copy-selection
+
+# auto copy tmux buffer to clipboard
+# bind-key -t vi-copy 'y' copy-pipe copy-selection 'xclip -in -selection clipboard'
+
+# use vi mode
+setw -gq mode-keys vi
+set -gq status-keys vi
+
+# splitting
+# #pane{pane_current_path} makes directory of current path default in the new
+# split or pane
+unbind %
+bind h split-window -h -c "#{pane_current_path}" # Split panes horizontal
+unbind '"'
+bind v split-window -v -c "#{pane_current_path}" # Split panes veritcally
+unbind c
+bind c new-window -c "#{pane_current_path}" # Create new window
+
+# toggle status bar visibility
+bind t set status
+
+set -s copy-command 'xsel -s'
+
+# 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'
+
+# List of plugins
+set -g @plugin 'tmux-plugins/tpm'
+set -g @plugin 'tmux-plugins/tmux-sensible'
+set -g @plugin 'tmux-plugins/tmux-open'
+set -g @plugin 'tmux-plugins/tmux-resurrect'
+set -g @plugin 'seebi/tmux-colors-solarized'
+set -g @plugin 'christoomey/vim-tmux-navigator'
+set -g @plugin 'tmux-plugins/tmux-yank'
+set -g @yank_selection_mouse 'clipboard'
+set -g @colors-solarized 'dark'
+
+# source ~/.tmuxline.conf
+# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
+run '~/.tmux/plugins/tpm/tpm'