diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..939dd57 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "tmux/.tmux/plugins/tpm"] + path = tmux/.tmux/plugins/tpm + url = https://github.com/tmux-plugins/tpm.git diff --git a/tmux/.tmux.conf b/tmux/.tmux.conf new file mode 100644 index 0000000..b0e11bb --- /dev/null +++ b/tmux/.tmux.conf @@ -0,0 +1,199 @@ +set -g default-terminal "screen-256color" + +## Vim user config + +#Prefix is Ctrl-a +unbind C-b +set -g prefix C-space +bind C-space send-prefix + + +# C-space C-space will swap to last used window +bind-key C-space last-window + +set -sg escape-time 1 +#set -g base-index 1 +#setw -g pane-base-index 1 + +#Mouse works as expected +set -g mouse on +#setw -g mode-mouse on +#set -g mouse-select-pane on +#set -g mouse-resize-pane on +#set -g mouse-select-window on + +set -g monitor-activity on +set -g visual-activity on + +setw -g mode-keys vi +set -g history-limit 10000 + +# y and p as in vim +bind Escape copy-mode +unbind p +bind p paste-buffer +#bind -t vi-copy 'v' begin-selection +#bind -t vi-copy 'y' copy-selection +#bind -t vi-copy 'Space' halfpage-down +#bind -t vi-copy 'Bspace' halfpage-up +bind-key -T copy-mode-vi 'v' send -X begin-selection +bind-key -T copy-mode-vi 'y' send -X copy-selection +bind-key -T copy-mode-vi 'Space' send -X halfpage-down +bind-key -T copy-mode-vi 'Bspace' send -X halfpage-up + +# Remap previous window +bind b previous-window + +# extra commands for interacting with the ICCCM clipboard +bind C-c run "tmux save-buffer - | xclip -i -sel clipboard" +bind C-v run "tmux set-buffer \"$(xclip -o -sel clipboard)\"; tmux paste-buffer" + +# easy-to-remember split pane commands +bind | split-window -h +bind - split-window -v +unbind '"' +unbind % + +# # moving between panes with vim movement keys +# bind h select-pane -L +# bind j select-pane -D +# bind k select-pane -U +# bind l select-pane -R +# Smart pane switching with awareness of Vim splits. +# See: https://github.com/christoomey/vim-tmux-navigator +is_vim="ps -o state= -o comm= -t '#{pane_tty}' \ + | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'" +bind-key -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L" +bind-key -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D" +bind-key -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U" +bind-key -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R" +bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l" +bind-key -T copy-mode-vi C-h select-pane -L +bind-key -T copy-mode-vi C-j select-pane -D +bind-key -T copy-mode-vi C-k select-pane -U +bind-key -T copy-mode-vi C-l select-pane -R +bind-key -T copy-mode-vi C-\ select-pane -l + +# moving between windows with vim movement keys +bind -r C-h select-window -t :- +bind -r C-l select-window -t :+ + +# resize panes with vim movement keys +bind -r H resize-pane -L 5 +bind -r J resize-pane -D 5 +bind -r K resize-pane -U 5 +bind -r L resize-pane -R 5 + +###################### +### DESIGN CHANGES ### +###################### + +# panes +set -g pane-border-fg black +set -g pane-active-border-fg brightred + +## Status bar design +# status line +# set -g status-utf8 on +set -g status-justify left +set -g status-bg default +set -g status-fg colour12 +set -g status-interval 2 + +# messaging +set -g message-fg black +set -g message-bg yellow +set -g message-command-fg blue +set -g message-command-bg black + +#window mode +setw -g mode-bg colour6 +setw -g mode-fg colour0 + +# window status +setw -g window-status-format " #F#I:#W#F " +setw -g window-status-current-format " #F#I:#W#F " +setw -g window-status-format "#[fg=magenta]#[bg=black] #I #[bg=cyan]#[fg=colour8] #W " +setw -g window-status-current-format "#[bg=brightmagenta]#[fg=colour8] #I #[fg=colour8]#[bg=colour14] #W " +setw -g window-status-current-bg colour0 +setw -g window-status-current-fg colour11 +setw -g window-status-current-attr dim +setw -g window-status-bg green +setw -g window-status-fg black +setw -g window-status-attr reverse + +# Info on left (I don't have a session display for now) +set -g status-left '' + +# loud or quiet? +set-option -g visual-activity off +set-option -g visual-bell off +set-option -g visual-silence off +set-window-option -g monitor-activity off +set-option -g bell-action none + +set -g default-terminal "screen-256color" + +# The modes { +setw -g clock-mode-colour colour135 +setw -g mode-attr bold +setw -g mode-fg colour196 +setw -g mode-bg colour238 + +# } +# The panes { + +set -g pane-border-bg colour235 +set -g pane-border-fg colour238 +set -g pane-active-border-bg colour236 +set -g pane-active-border-fg colour51 + +# } +# The statusbar { + +set -g status-position bottom +set -g status-bg colour234 +set -g status-fg colour137 +set -g status-attr dim +set -g status-left '#[fg=colour81,bg=colour241,bold] #S ' +set -g status-right '#[fg=colour233,bg=colour241,bold] %d/%m #[fg=colour233,bg=colour245,bold] %H:%M:%S ' +set -g status-right-length 50 +set -g status-left-length 20 + +setw -g window-status-current-fg colour81 +setw -g window-status-current-bg colour238 +setw -g window-status-current-attr bold +setw -g window-status-current-format ' #I#[fg=colour250]:#[fg=colour255]#W#[fg=colour50]#F ' + +setw -g window-status-fg colour138 +setw -g window-status-bg colour235 +setw -g window-status-attr none +setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F ' + +setw -g window-status-bell-attr bold +setw -g window-status-bell-fg colour255 +setw -g window-status-bell-bg colour1 + +# } +# The messages { + +set -g message-attr bold +set -g message-fg colour232 +set -g message-bg colour166 + +# } + + +## Plugins +# Supports `github_username/repo` or full git repo URLs +set -g @tpm_plugins 'tmux-plugins/tpm' +set -g @tpm_plugins 'tmux-plugins/tmux-sensible' +# tmux-plugins/tmux-resurrect \ +# tmux-plugins/tmux-continuum \ + +## tmux-continuum: automatic restore +#set -g @continuum-restore 'on' + + +# Keep this line at the very bottom of tmux.conf. +run-shell '~/.tmux/plugins/tpm/tpm' diff --git a/tmux/.tmux/plugins/tpm b/tmux/.tmux/plugins/tpm new file mode 160000 index 0000000..108f76b --- /dev/null +++ b/tmux/.tmux/plugins/tpm @@ -0,0 +1 @@ +Subproject commit 108f76b628a0df927df142036f1fdec829a5ff00 diff --git a/tmux/.tmuxp/bopytex.yml b/tmux/.tmuxp/bopytex.yml new file mode 100644 index 0000000..dc7e3db --- /dev/null +++ b/tmux/.tmuxp/bopytex.yml @@ -0,0 +1,19 @@ +session_name: bopytex +start_directory: ~/scripts/Bopytex/ + + +windows: + - window_name: Editor + focus: true + panes: + - nvim + - window_name: Server + layout: main-vertical + panes: + - git fetch && git status + - tig + - window_name: Testing + layout: main-vertical + panes: + - source ~/.venv/bopytex/bin/activate.fish + - source ~/.venv/bopytex/bin/activate.fish diff --git a/tmux/.tmuxp/enseignement.yml b/tmux/.tmuxp/enseignement.yml new file mode 100644 index 0000000..057c59a --- /dev/null +++ b/tmux/.tmuxp/enseignement.yml @@ -0,0 +1,19 @@ +session_name: enseignement +start_directory: ~/Cours/2020-2021/Contenus/ +shell_command_before: source config.fish + +windows: + - window_name: Editor + focus: true + panes: + - nvim + - window_name: Commands + layout: tiled + panes: + - git status + - blank + - vifm . . + - window_name: Notes + focus: true + panes: + - cd ../Notes diff --git a/tmux/.tmuxp/mail.yml b/tmux/.tmuxp/mail.yml new file mode 100644 index 0000000..39adfd1 --- /dev/null +++ b/tmux/.tmuxp/mail.yml @@ -0,0 +1,16 @@ +session_name: mail + +windows: + - window_name: Opytex + focus: true + panes: + - neomutt + - window_name: Bjb + panes: + - neomutt -F ~/.config/mutt/benjamin.jm.bertrand@gmail.com.muttrc + - window_name: lafrite26 + panes: + - neomutt -F ~/.config/mutt/lafrite26@gmail.com.muttrc + - window_name: tools + panes: + - blank diff --git a/tmux/.tmuxp/mapytex.yml b/tmux/.tmuxp/mapytex.yml new file mode 100644 index 0000000..d108c35 --- /dev/null +++ b/tmux/.tmuxp/mapytex.yml @@ -0,0 +1,19 @@ +session_name: mapytex +start_directory: ~/scripts/Mapytex/ + + +windows: + - window_name: Editor + focus: true + panes: + - nvim + - window_name: Server + layout: main-vertical + panes: + - git fetch && git status + - tig + - window_name: Testing + layout: main-vertical + panes: + - source ~/.venv/mapytex/bin/activate.fish + - source ~/.venv/mapytex/bin/activate.fish diff --git a/tmux/.tmuxp/viescopytex.yml b/tmux/.tmuxp/viescopytex.yml new file mode 100644 index 0000000..5aec9d0 --- /dev/null +++ b/tmux/.tmuxp/viescopytex.yml @@ -0,0 +1,20 @@ +session_name: viescopytex +start_directory: ~/scripts/viescopytex/ +shell_command_before: source venv/bin/activate.fish + + +windows: + - window_name: Editor + focus: true + panes: + - vim -c NERDTree + - window_name: Server + layout: main-vertical + panes: + - git fetch && git status + - tig + - window_name: Testing + layout: main-vertical + panes: + - blank + - blank