init: new dotfile configuration
Remove all org files using a new script to more config over, The old org file configuaration were great but required org. This new version only requires the scripts that is included in the repo. The configuration are all done but have not ported the theming system yet. Signed-off-by: Steve Beaulac <steve@sagacity.ca> Change-Id: I14cd7fe058a71c8ba9d6d35397dc8d7e6a6a6964
This commit is contained in:
@@ -0,0 +1,157 @@
|
||||
#set-option -g default-terminal 'screen-256color'
|
||||
set-option -g terminal-overrides ',xterm-256color:RGB'
|
||||
# set -g default-terminal "tmux-256color"
|
||||
set -as terminal-feature ",foot*:RGB"
|
||||
|
||||
# screen mode
|
||||
#set -g default-terminal "${TERM}"
|
||||
#set -g default-terminal "tmux-256color"
|
||||
set -ag terminal-overrides ",xterm-256color:RGB"
|
||||
|
||||
# colors
|
||||
# set -ag terminal-overrides ",xterm*:Tc"
|
||||
|
||||
# undercurl support
|
||||
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm'
|
||||
# underscore colours - needs tmux-3.0
|
||||
set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m'
|
||||
# allow terminal scrolling
|
||||
#set -g terminal-overrides 'xterm*:smcup@:rmcup@'
|
||||
|
||||
# default shell
|
||||
set -g default-shell "/usr/bin/fish"
|
||||
|
||||
# auto rename windows
|
||||
set -g automatic-rename on
|
||||
set -g allow-rename on
|
||||
|
||||
# start with window 1 (instead of 0)
|
||||
set -g base-index 1
|
||||
|
||||
# start with pane 1
|
||||
setw -g pane-base-index 1
|
||||
|
||||
# history
|
||||
set -g history-limit 5000
|
||||
|
||||
# loud or quiet?
|
||||
set -g visual-activity off
|
||||
set -g visual-bell off
|
||||
set -g visual-silence off
|
||||
set -g monitor-activity on
|
||||
set -g bell-action none
|
||||
set -g allow-passthrough on
|
||||
|
||||
#set -g bell-on-alert on
|
||||
|
||||
set -s escape-time 1
|
||||
setw -g aggressive-resize on
|
||||
set -g status-keys vi
|
||||
set-window-option -g mode-keys vi
|
||||
|
||||
set-option -g focus-events on # TODO: learn how this works
|
||||
set-option -g extended-keys on
|
||||
set-option -g set-titles on
|
||||
set-option -g detach-on-destroy off
|
||||
set-option -g renumber-windows on
|
||||
set-option -g set-clipboard on
|
||||
set-option -g set-titles-string "#S:#{pane_title}"
|
||||
|
||||
unbind C-Space
|
||||
set -g prefix C-Space
|
||||
bind C-Space send-prefix
|
||||
#unbind C-s
|
||||
unbind C-b
|
||||
#set -g prefix C-s
|
||||
#bind C-s send-prefix
|
||||
|
||||
# Reload the config.
|
||||
bind r source-file ~/.config/tmux/tmux.conf \; display "Reloaded ~/.config/tmux/tmux.conf"
|
||||
|
||||
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
||||
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel
|
||||
|
||||
bind c new-window -c "#{pane_current_path}"
|
||||
bind e run "tmux split -h /usr/bin/nvim"
|
||||
bind o display-popup -w 80% -h 80% -E /usr/bin/opencode
|
||||
bind g display-popup -w 80% -h 80% -E /usr/bin/lazygit
|
||||
|
||||
# split windows like vim
|
||||
# vim's definition of a horizontal/vertical split is reversed from tmux's
|
||||
bind v split-window -h -c "#{pane_current_path}"
|
||||
bind s split-window -v -c "#{pane_current_path}"
|
||||
|
||||
# Rotate windows
|
||||
bind -r , select-window -t :-
|
||||
bind -r . select-window -t :+
|
||||
|
||||
bind Space choose-tree
|
||||
bind -r < previous-layout
|
||||
bind -r > next-layout
|
||||
|
||||
# open man page in new window
|
||||
bind / command-prompt "split window 'exec man %%'"
|
||||
|
||||
bind B command-prompt -p "New Session:" "new-session -A -s '%%'"
|
||||
bind Tab switch-client -l
|
||||
|
||||
bind a run-shell -b "~/.local/bin/t"
|
||||
bind Enter run-shell -b "~/.local/bin/s"
|
||||
bind Q confirm kill-session
|
||||
|
||||
bind P pipe-pane -o "cat >>~/#W.log" \; display "Toggled logging to ~/#W.log"
|
||||
|
||||
# join pane
|
||||
bind-key C-h choose-window 'join-pane -h -s "%%"'
|
||||
bind-key C-v choose-window 'join-pane -s "%%"'
|
||||
|
||||
bind -r h select-pane -L
|
||||
bind -r j select-pane -D
|
||||
bind -r k select-pane -U
|
||||
bind -r l select-pane -R
|
||||
|
||||
# resize panes like vim
|
||||
# feel free to change the "1" to however many lines you want to resize by, only
|
||||
# one at a time can be slow
|
||||
bind -r H resize-pane -L 5
|
||||
bind -r L resize-pane -R 5
|
||||
bind -r J resize-pane -D 5
|
||||
bind -r K resize-pane -U 5
|
||||
|
||||
# bind : to command-prompt like vim
|
||||
# this is the default in tmux already
|
||||
# bind : command-prompt
|
||||
|
||||
# Alt+number to select window
|
||||
bind -n M-1 select-window -t 1
|
||||
bind -n M-2 select-window -t 2
|
||||
bind -n M-3 select-window -t 3
|
||||
bind -n M-4 select-window -t 4
|
||||
bind -n M-5 select-window -t 5
|
||||
bind -n M-6 select-window -t 6
|
||||
bind -n M-7 select-window -t 7
|
||||
bind -n M-8 select-window -t 8
|
||||
bind -n M-9 select-window -t 9
|
||||
|
||||
set -g @continuum-restore 'on'
|
||||
set -g status-position top
|
||||
|
||||
|
||||
# List of plugins
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||
set -g @plugin 'tmux-plugins/tmux-resurrect'
|
||||
set -g @plugin 'tmux-plugins/tmux-continuum'
|
||||
set -g @plugin 'tmux-plugins/tmux-copycat'
|
||||
set -g @plugin 'christoomey/vim-tmux-navigator'
|
||||
set -g @plugin 'sainnhe/tmux-fzf'
|
||||
set -g @plugin 'joshmedeski/tmux-fzf-url'
|
||||
set -g @plugin 'aserowy/tmux.nvim'
|
||||
|
||||
set -g status-left ""
|
||||
source-file ~/.config/tmux/theme
|
||||
#set -ag status-right '#(bash ~/.config/tmux/battery.sh) '
|
||||
|
||||
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
||||
run '~/.config/tmux/plugins/tpm/tpm'
|
||||
Reference in New Issue
Block a user