aboutsummaryrefslogtreecommitdiff
path: root/etc/tmux
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2022-05-12 12:01:54 -0300
committerEuAndreh <eu@euandre.org>2022-05-12 12:01:54 -0300
commit90eaebabcaaea74237f34cf05709625345f276cc (patch)
tree349e7609d20ecfb6567652a7e28595cec9647eb0 /etc/tmux
parent.usr/etc/i3/config: WIP setup extra bindings (diff)
downloaddotfiles-90eaebabcaaea74237f34cf05709625345f276cc.tar.gz
dotfiles-90eaebabcaaea74237f34cf05709625345f276cc.tar.xz
Move Git repository into ~/.usr/.git/
Diffstat (limited to 'etc/tmux')
-rw-r--r--etc/tmux/tmux.conf81
1 files changed, 81 insertions, 0 deletions
diff --git a/etc/tmux/tmux.conf b/etc/tmux/tmux.conf
new file mode 100644
index 0000000..dd718ca
--- /dev/null
+++ b/etc/tmux/tmux.conf
@@ -0,0 +1,81 @@
+# Use personal prefix over "C-b"
+unbind C-b
+set -g prefix C-v
+
+# Turn on mouse mode
+# https://groups.google.com/forum/#!msg/tmux-users/TRwPgEOVqho/Ck_oth_SDgAJ
+# https://github.com/tmux/tmux/blob/310f0a960ca64fa3809545badc629c0c166c6cd2/CHANGES#L12
+set -g mouse on
+
+# Bind "C-x r" to reload the configuration file
+bind-key r source-file $XDG_CONFIG_HOME/tmux/tmux.conf \; display-message "$XDG_CONFIG_HOME/tmux.conf reloaded"
+
+# Holy answer that properly implements copying from tmux!
+# https://unix.stackexchange.com/a/349020/276661
+bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe "xclip -selection clipboard -i" \;
+bind-key y send-keys -X copy-pipe "xclip -selection clipboard -i" \; display-message "Copied system clipboard! Hooray! Long-live tmux!"
+
+# Moving around panes
+bind-key -n M-h select-pane -L
+bind-key -n M-j select-pane -D
+bind-key -n M-k select-pane -U
+bind-key -n M-l select-pane -R
+
+# Resizing panes
+bind-key -n M-H resize-pane -L 5
+bind-key -n M-J resize-pane -D 5
+bind-key -n M-K resize-pane -U 5
+bind-key -n M-L resize-pane -R 5
+
+# Reorder windows
+bind-key -n C-S-Left swap-window -t -1\; select-window -t -1
+bind-key -n C-S-Right swap-window -t +1\; select-window -t +1
+#
+# To change the number of a window, use: PREFIX-., and pick a new unused number
+#
+
+# Join windows
+bind-key -n C-S-M-Left join-pane -s :-0 -t :-1
+bind-key -n C-S-M-Right join-pane -s :-0 -t :+1
+
+# "M m" to actually clear the pane history
+bind -n M-m send-keys -R \; clear-history
+
+# Keybinding to activate pane typing sync
+# https://stackoverflow.com/questions/25909964/tmux-how-to-toggle-on-and-off-options-with-the-same-key
+bind-key b setw synchronize-panes \; display-message "synchronize-panes toggle"
+
+setw -g mode-keys vi # Move around with vi keys
+set-option -g status-key "vi" # Use vi mode for status bar command (like after typing "C-x [" one can search with "/")
+set-option -g status-bg "#666666" # Status bar background color
+set-option -g status-fg "#aaaaaa" # Status bar foreground color
+set-option -g status-left-length 50 # session name in status bar length =[annex]= part
+set-option -g history-limit 150000 # How many lines of history to keep
+set-option -g status-right ""
+
+# Set the panes initial index value to 1 instead of 0
+# 0 is too far from ` ;)
+set -g base-index 1
+set-window-option -g pane-base-index 1
+
+# Automatically set window title
+set-window-option -g automatic-rename on
+set-option -g set-titles on
+
+# Set "correct term"
+# https://wiki.archlinux.org/index.php/Tmux
+set -g default-terminal screen-256color
+
+# No delay for escape key press
+# https://mutelight.org/practical-tmux#faster-command-sequences
+set -sg escape-time 0
+
+# Display pane numbers for longer
+# https://unix.stackexchange.com/questions/307696/how-to-increase-tmux-pane-numbers-display-time-ctrl-b-q
+set -g display-panes-time 2500
+
+bind-key t resize-pane -x 80
+
+bind -n M-r attach-session -t . -c '#{pane_current_path}' \; display-message "CWD for session updated to #{pane_current_path}!"
+
+bind-key u capture-pane \; save-buffer /tmp/tmux-urlscan-buffer \; new-window -n "urlscan" '$SHELL -c "urlscan < /tmp/tmux-urlscan-buffer"'