Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/SixArm/tmux-conf
tmux configuration files with annotations
https://github.com/SixArm/tmux-conf
dotfiles iac tmux
Last synced: about 2 months ago
JSON representation
tmux configuration files with annotations
- Host: GitHub
- URL: https://github.com/SixArm/tmux-conf
- Owner: SixArm
- Created: 2014-11-30T04:26:15.000Z (about 10 years ago)
- Default Branch: main
- Last Pushed: 2023-09-15T19:30:40.000Z (over 1 year ago)
- Last Synced: 2024-08-01T13:36:23.250Z (5 months ago)
- Topics: dotfiles, iac, tmux
- Homepage:
- Size: 40 KB
- Stars: 34
- Watchers: 5
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# tmux-conf
These are our tmux configuration files with annoations. We welcome feedback and pull requests.
* You can read the files to learn what they do, and we annotate the files to help explain.
* You can copy/paste any items that you like, from these files to your own `tmux.conf` file.
* You can source these files in your own `tmux.conf` file.
## How to install
You can copy these files anywhere you like.
We prefer to copy them to a user's home config directory:
```sh
$HOME/.config/tmux
```Install
```sh
git clone https://github.com/SixArm/tmux-conf.git
mkdir -p $HOME/.config/tmux
cp -R tmux-conf/sources $HOME/.config/tmux
```## How to source these files
You can edit your own `.tmux.conf` file, which is typically at `~/.tmux.conf`, and add lines to it.
If you want a perfectly clean setup, then use this line first:
```tmux
source $HOME/.config/tmux/unbind-all-keys.conf
```If you want to set variables so you know the version and platform, then add these:
```tmux
source $HOME/.config/tmux/version.conf
source $HOME/.config/tmux/platform.conf
```If you want version-specific settings, then add any of them, such as:
```tmux
source $HOME/.config/tmux/version-specific/3.3/mouse.conf
source $HOME/.config/tmux/version-specific/3.3/status-style-is-black-on-white.conf
```If you want platform-specific settings for macOS, then add any of them, such as:
```tmux
source $HOME/.config/tmux/platform-specific/darwin/tmux.conf
```If you want any more settings, then add their respective lines:
```tmux
source $HOME/.config/tmux/base-index-pane-number-is-1.conf
source $HOME/.config/tmux/mouse.conf
source $HOME/.config/tmux/prefix-is-control-a.conf
source $HOME/.config/tmux/select-window-via-meta-number.conf
source $HOME/.config/tmux/select-layout-via-brackets.conf
source $HOME/.config/tmux/select-pane-via-hjkl.conf
source $HOME/.config/tmux/shell.conf
source $HOME/.config/tmux/split-window.conf
source $HOME/.config/tmux/status-via-powerline.conf
source $HOME/.config/tmux/switch-session-via-name.conf
source $HOME/.config/tmux/zoom-via-plus-minus.conf
```## Version-specific settings
See the directory `version-specific`.
We use version-specific files to help us run tmux on many systems,
including systems where we can't easily upgrade tmux ourselves.For example, when we use version 3.0 then we want to set the mouse like this:
```tmux
set -g mouse on
```## Platform-specific settings
See the directory. `platform-specific`.
We use platform-specific files to help us run tmux on many systems.
For example, when we use the macOS platform a.k.a. Darwin,
then we want this setting:```tmux
# After copying to a tmux buffer, hit y again to copy to clipboard.
bind y run "tmux save-buffer - | reattach-to-user-namespace pbcopy"
```## Suppress warnings
If you want, you can use `set -q` to suppress warnings from nonexistent options. This which has been supported since tmux 1.7.
For example the option `mouse-utf8` exists in tmux 2.0 but does not exist in tmux 3.0, so you can set the optiona and suppress warnings like this:
```tmux
set -q mouse-utf8 on
```## Primer
A good tmux primer:
* http://tangosource.com/blog/a-tmux-crash-course-tips-and-tweaks/
## Notation
Keys:
* C-x means press the control key and x key
* M-x means press the alt key and x key
What is a session, a window, a pane?
* A session is a set of windows.
* A window is a single screen covered with panes.
* A pane is a part of a window that runs a specific command, e.g. a shell.
## Use SSH to help with window naming
If you want to use SSH and have each new SSH window cause its own window naming,
then add this to your tmux config file, typically `~/.tmux.conf`:```tmux
set-option -g allow-rename on
```And add code like this to your SSH config file, typically `~/.ssh/config`:
```ssh
Host *
PermitLocalCommand yes
LocalCommand if [[ $TERM == screen* ]]; then printf "\033k%h\033\\"; fi
```When we sign in to a server, The code runs a command to print the server's
local hostname with an escape sequence that triggers tmux to set the window title.
If we open the list of windows (ctrl-a w) we see each window's server name.
This is also the reason why I have automatic window renaming turned off.Note: The allow-rename option was added in tmux 1.6 and with default on. The allow-rename default changed after tmux 2.7 from on to off. If allow-rename is off, then the SSH code to rename each window will not have any effect
Credits:
* http://www.unwiredcouch.com/2013/11/15/my-tmux-setup.html
* https://www.reddit.com/user/moobarmoobar/
## See also
* http://blog.hawkhost.com/2010/07/02/tmux-%E2%80%93-the-terminal-multiplexer-part-2/
* https://wiki.archlinux.org/index.php/Tmux
## Thanks
Thanks to many people on the net for providing tmux conf files,
and blogging about how to set tmux and its related tools.* https://gist.github.com/andreyvit/2921703
* https://github.com/terryma/dotfiles/blob/master/.tmux.conf
* http://www.mindfuzz.net/?p=178
* http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/
* http://www.unwiredcouch.com/2013/11/15/my-tmux-setup.html
* http://stackoverflow.com/questions/35016458
* http://stackoverflow.com/users/5353461/tom-hale
* https://github.com/HaleTom## Key bindings
The command key bindings also with our preferred bindings in brackets.
```txt
C-b Send the prefix key through to the application. [we prefer C-a]
C-o Rotate the panes in the current window forwards.
C-z Suspend the tmux client.
! Break the current pane out of the window.
" Split the current pane into two, top and bottom.
# List all paste buffers.
$ Rename the current session.
| [%] Split the current pane into two, left and right.
_ Split the current pane into two, top and bottom.
& Kill the current window.
' Prompt for a window index to select.
, Rename the current window.
n/a [-] Delete the most recently copied buffer of text.
. Prompt for an index to move the current window.
0 to 9 Select windows 0 to 9.
; [:] Enter the tmux command prompt.
n/a [;] Move to the previously active pane.
= Choose which buffer to paste interactively from a list.
+ Change a pane to a window. [custom]
- Change a window to a pane. [custom]
? List all key bindings.
D Choose a client to detach.
[ Enter copy mode to copy text or view the history.
] Paste the most recently copied buffer of text.
c Create a new window.
d Detach the current client.
f Prompt to search for text in open windows.
i Display some information about the current window.
l Move to the previously selected window.
n Change to the next window.
o Select the next pane in the current window.
p Change to the previous window.
q Briefly display pane indexes.
r Force redraw of the attached client.
s Select a new session for the attached client interactively.
L Switch the attached client back to the last session.
t Show the time.
w Choose the current window interactively.
x Kill the current pane.
{ Swap the current pane with the previous pane.
} Swap the current pane with the next pane.
~ Show previous messages from tmux, if any.
Page Up Enter copy mode and scroll one page up.
↑ ↓ ← → Change to the pane up, down, left, right of the current pane.
M-1 to M-5 Arrange panes in one of the five preset layouts: even-
horizontal, even-vertical, main-horizontal, main-
vertical, or tiled.
M-n Move to the next window with a bell or activity marker.
M-o Rotate the panes in the current window backwards.
M-p Move to the previous window with a bell or activity
marker.
C-↑ C-↓
C-←, C-→
Resize the current pane in steps of one cell.
M-↑, M-↓
M-←, M-→
Resize the current pane in steps of five cells.
```## Tracking
* Package: sixarm.com/tmux-conf
* Version: 5.1.0
* Created: 2014-11-29
* Updated: 2020-03-20
* Contact: Joel Parker Henderson ([email protected])
* License: GPL