# [tmuxrc][tmuxrc_repo] ![Tmux](https://img.shields.io/badge/tmux-v3.3-brightgreen) ![Fzf](https://img.shields.io/badge/fzf-v0.35-green) **tmuxrc** is a collection of [RUNCOM][RUNCOM] & Plugins dedicated to the terminal multiplexer [Tmux][TMUX_repo]. - I use this configuration with my custom [bash environment][bashrc_repo] to always work in Tmux locally and in SSH sessions. ---- ## Features - Plugins (included as submodules): - [tpm][tpm]: Plugin Manager. - [tmux-prefix-highlight][tmux-prefix-highlight]: highlights when you press tmux prefix key. - [tmux-menus][tmux-menus]: Popup menus. - [extrakto][extrakto]: select, copy/insert/complete text without a mouse (prefix Tab). - [tmux-sidebar][tmux-sidebar]: directory tree for the current path. - Prefix rebinded to `Ctrl+x` (`Ctrl+w` for remote/ssh sessions). - Toggle Sync mode for visible panes with `Prefix-a`. - Toggle Zoom current Pane with `Prefix-Z`. Next & Previous: `Prefix-e`,`Prefix-z`. - Open a popup session changer with `Prefix-Ctrl+j`. - Open a popup Scratch session with `Prefix-Ctrl+g`. - Nice status (display current command) & color theme with true colors. - Compatible with my environment config: [bashrc][bashrc_repo]. - Check more in the conf file … ## Requirements - [Tmux][TMUX_repo] 3.3+: - libevent 2.x (apt or [build][libevent_repo]) - ncurses (apt or [build][ncurses_repo]) - [Gitmux][gitmux_repo] - [Fzf][fzf_repo] 0.35+ for `fzf-tmux` - exa for the tmux-sidebar: `sudo apt install exa` ### Recommended - bash 5+ - bash_completion - My environment config: [bashrc][bashrc_repo] ## Installation ### [Tmux][TMUX_repo] - With APT: ```bash # check version with apt sudo apt show -a tmux 2> /dev/null | grep Version: # if your apt repositories deliver at least 3.3, you can install it sudo apt install tmux ``` - Or build & install: ```bash mkdir -p $HOME/Builds && cd $HOME/Builds wget https://github.com/tmux/tmux/releases/download/3.3a/tmux-3.3a.tar.gz tar -zxf tmux-*.tar.gz cd tmux-*/ ./configure make && sudo make install ``` ### [Gitmux][gitmux_repo] - Copy it manually to /usr/local/bin: https://github.com/arl/gitmux/releases - Or you need `jq` to parse the latest release in cli: ```bash # for linux_amd64 sudo apt install jq _RELEASES=$(curl -s https://api.github.com/repos/arl/gitmux/releases/latest) _URL=$(echo "$_RELEASES" | jq -r '.assets[] | select( .name | match("linux_amd64")) | .browser_download_url') wget -c -nv "$_URL" -O - | sudo tar --no-same-owner -xzv -C /usr/local/bin gitmux ``` ### [Fzf][fzf_repo] - With APT: ```bash # check version with apt sudo apt show -a fzf 2> /dev/null | grep Version: # if your apt repositories deliver at least 0.35, you can install it sudo apt install fzf ``` - Or build & install: ```bash mkdir -p $HOME/Builds && cd $HOME/Builds git clone --depth 1 https://github.com/junegunn/fzf.git cd fzf sudo ./install --all --no-bash --no-zsh --no-fish sudo cp shell/completion.bash /etc/bash_completion.d/fzf sudo cp bin/* /usr/local/bin/ ``` ### [tmuxrc][tmuxrc_repo] ```bash # backup current files mkdir -p $HOME/.backups cp -r --backup=t {"$HOME"/.tmux/,"$HOME"/.tmux.conf,"$HOME"/.config/tmux/} $HOME/.backups/ rm -Rf "$HOME"/.tmux/ "$HOME"/.tmux.conf "$HOME"/.config/tmux/ # install mkdir -p $HOME/.config cd $HOME/.config git clone --depth=1 --recurse-submodules https://git.tkapias.net/tkapias/tmuxrc tmux cp tmux/gitmux.conf $HOME/.config/ ``` ## Configuration ### SSH/Remote If you install this configuration on a remote system, you will need another prefix than on the local tmux (ctrl+x). You can change the prefix to ctrl+w on the remote system like this: ```bash sed -i -e 's/C-x/C-w/g' -e 's/Ctrl-x/Ctrl-w/g' $HOME/.config/tmux/tmux.conf ``` ---- [//]: # (LINKS) [tmuxrc_repo]: https://git.tkapias.net/tkapias/tmuxrc [TMUX_repo]: https://github.com/tmux/tmux [bashrc_repo]: https://git.tkapias.net/tkapias/bashrc [RUNCOM]: https://en.wikipedia.org/wiki/RUNCOM [libevent_repo]: https://github.com/libevent/libevent/releases/latest [ncurses_repo]: https://invisible-mirror.net/archives/ncurses/ [gitmux_repo]: https://github.com/arl/gitmux [fzf_repo]: https://github.com/junegunn/fzf.git [tpm]: https://github.com/tmux-plugins/tpm [tmux-prefix-highlight]: https://github.com/tmux-plugins/tmux-prefix-highlight [tmux-menus]: https://github.com/jaclu/tmux-menus [extrakto]: https://github.com/laktak/extrakto [tmux-sidebar]: https://github.com/tmux-plugins/tmux-sidebar