From 68d999112fee94937a683b9a72dd8169790dda38 Mon Sep 17 00:00:00 2001 From: "flyingscorpio@clevo" Date: Sun, 3 Jul 2022 12:25:41 +0200 Subject: [PATCH] Add role tmux with a vim-friendly config (to check) --- playbook.yml | 1 + roles/tmux/files/tmux.conf | 52 ++++++++++++++++++++++++++++++++++++++ roles/tmux/meta/main.yml | 3 +++ roles/tmux/tasks/main.yml | 20 +++++++++++++++ 4 files changed, 76 insertions(+) create mode 100644 roles/tmux/files/tmux.conf create mode 100644 roles/tmux/meta/main.yml create mode 100644 roles/tmux/tasks/main.yml diff --git a/playbook.yml b/playbook.yml index 5de9739..a37826c 100644 --- a/playbook.yml +++ b/playbook.yml @@ -13,6 +13,7 @@ - {role: pass, tags: pass} - {role: keepass, tags: keepass} - {role: terminator, tags: terminator} + - {role: tmux, tags: tmux} - {role: neovim, tags: [neovim, nvim, vim]} - {role: ssh-agent, tags: ssh-agent} - {role: pacman, tags: [pacman, pacman.conf]} diff --git a/roles/tmux/files/tmux.conf b/roles/tmux/files/tmux.conf new file mode 100644 index 0000000..dc76ebd --- /dev/null +++ b/roles/tmux/files/tmux.conf @@ -0,0 +1,52 @@ +#Prefix is Ctrl-a +set -g prefix C-a +bind C-a send-prefix +unbind C-b + +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 monitor-activity on +set -g visual-activity on + +set -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-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 + +# 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 + +# 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 diff --git a/roles/tmux/meta/main.yml b/roles/tmux/meta/main.yml new file mode 100644 index 0000000..edef5f0 --- /dev/null +++ b/roles/tmux/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: + - role: check-sudo diff --git a/roles/tmux/tasks/main.yml b/roles/tmux/tasks/main.yml new file mode 100644 index 0000000..1eb8711 --- /dev/null +++ b/roles/tmux/tasks/main.yml @@ -0,0 +1,20 @@ +--- +- name: Install tmux (Archlinux) + become: true + pacman: + name: + - tmux + when: ansible_facts['distribution'] == 'Archlinux' + +- name: Install tmux (Debian) + become: true + apt: + name: + - tmux + when: ansible_facts['distribution'] == 'Debian' + +- name: Copy tmux config + copy: + src: tmux.conf + dest: ~/.tmux.conf + mode: 0644