Tmux is a “terminal multiplexer” that allows you
to have multiples window terminals in a single terminal. And our beloved
Ansible can help install and setup tmux
.
You need first install Tmux’s package. Among the several ways, we’ll just use the standard and offical package. This works for most of the operating systems.
- name: Install tmux
package:
name: tmux
state: present
tags: tmux
With just that you have a working tmux
. But let’s make it fancier.
tmux
and it’s pretty simple to install. You basically just have to clone the Git
repo and call it in your tmux config file.- name: Clone TPM repository
git:
repo: 'https://github.com/tmux-plugins/tpm.git'
dest: /home/willian/.tmux/plugins/tpm
become: true
become_user: willian
tags: tmux
.tmux.conf
in your home folder with the following
content:set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-copycat'
set -g @plugin 'tmux-plugins/tmux-pain-control'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'seebi/tmux-colors-solarized'
set -g @colors-solarized 'dark'
run '~/.tmux/plugins/tpm/tpm'
prefix
+ I
(Ctrl + B + I by default) to install all the
plugins.tmux
to start by default with every terminal you open, add this
to your .bashrc
.if [[ -z "$TMUX" ]]; then
ID=$(/usr/bin/tmux ls | grep -vm1 attached | cut -d: -f1)
if [[ -z "${ID}" ]]; then
/usr/bin/tmux new-session
else
/usr/bin/tmux attach-session -t "${ID}"
fi
fi
Steps 2. and 4. can be automated with Ansible too. See Ansible’s file module for further information.
Done. :) Feedback is always welcome, so feel free to comment any tweaks you do in your system.