How To

tmux Cheat Sheet: Shortcuts and Commands, Linux and macOS (PDF)

tmux no longer behaves the same everywhere you install it, and most cheat sheets still describe a single version. Homebrew’s tmux 3.8 turns the mouse on by default, Ubuntu 26.04’s 3.6 refuses to attach to a server started by an older release, and on Rocky Linux 10 the packaged build crashes the server on every capture-pane -p.

Original content from computingforgeeks.com - post 16604

This tmux cheat sheet covers the keyboard shortcuts for sessions, windows, panes and copy mode on Linux and macOS. It then covers the parts other sheets skip: scripting with send-keys, the system clipboard, starting tmux at boot and the error messages you’ll actually hit. Every command with output was run in October 2026 on tmux 3.8 from Homebrew on macOS, 3.6 on Ubuntu 26.04 and the 3.3a-based package on Rocky Linux 10, and the key tables come from tmux’s own list-keys -N output.

Check which tmux version you have

Install tmux from your platform’s package manager, then check the version, because three of the defaults below changed between the releases these platforms ship. On macOS it comes from Homebrew, and on Linux from the distro repositories:

brew install tmux                # macOS
sudo apt install -y tmux         # Ubuntu, Debian
sudo dnf install -y tmux         # Rocky, AlmaLinux, RHEL, Fedora

Then ask tmux what it is. The Mac printed tmux 3.8 and Ubuntu tmux 3.6 (the package is 3.6a). Rocky’s answer is the surprising one, because its package is labelled 3.3a but is really a 2023 snapshot of tmux’s development branch:

tmux -V

Rocky prints a development label instead of a release number, which is why version comparisons in scripts and configs break there:

tmux next-3.4

We started a server with no config file on each host (tmux -f /dev/null) and read the defaults back. The ones that bite people after an upgrade are in this table, and the last row is the number of default key bindings:

Defaulttmux 3.8 (Homebrew)tmux 3.6 (Ubuntu 26.04)next-3.4 (Rocky 10)
mouseonoffoff
escape-time10 ms10 ms500 ms
themedetectinvalid optioninvalid option
pane-scrollbarsoffoffinvalid option
set-clipboardexternalexternalexternal
default-terminaltmux-256colortmux-256colortmux-256color
Bindings in list-keys -N938783

Two rows explain most upgrade complaints. With the mouse on, a plain drag in 3.8 selects inside tmux instead of your terminal, so hold Shift (Option in iTerm2) to use the terminal’s own selection, or put set -g mouse off in your config. The 500 ms escape delay on Rocky is the old default that makes Esc feel slow in Vim and Neovim, which is why set -sg escape-time 10 still belongs in a config you share with RHEL-family servers.

Learn the prefix and the core shortcuts

Every tmux shortcut starts with the prefix, Ctrl+b by default (shown by tmux as C-b): press it, let go, then press the key. C-b ? lists every binding inside tmux, and C-b / describes one key, so you never have to leave the terminal to look one up. Sessions are the top level, and these are the commands you’ll type most:

Command or keyWhat it does
tmux new -s workStart a session named work
tmux new -A -s workAttach to work, or create it if missing
tmux lsList sessions
tmux attach -t workAttach to a session
C-b dDetach, leaving everything running
C-b sChoose a session from a list
C-b $Rename the current session
tmux kill-session -t workEnd one session; tmux kill-server ends all

Windows are the tabs inside a session, shown in the status bar along the bottom, and each one holds a full-screen shell until you split it:

KeyWhat it does
C-b cCreate a window
C-b ,Rename the window
C-b n / C-b pNext or previous window
C-b 0 to C-b 9Jump to a window by number
C-b wChoose a window from a tree of sessions and windows
C-b lLast window you used
C-b &Kill the window (asks first)
C-b .Move the window to another index

Panes split a window, and the split keys are the most misremembered part of tmux because the names describe the line, not the panes. tmux’s own descriptions say C-b % splits “horizontally” and C-b " splits “vertically”. Yet % gives you two panes side by side, and " stacks them. Learn the result, not the word:

KeyWhat it does
C-b %Split into left and right panes
C-b "Split into top and bottom panes
C-b Up/Down/Left/RightMove to the pane in that direction
C-b o, C-b ;Next pane; previously active pane
C-b zZoom the pane to full window and back
C-b xKill the pane (asks first)
C-b !Break the pane out into its own window
C-b { / C-b }Swap with the pane above or below
C-b qShow pane numbers
C-b SpaceCycle through the preset layouts
C-b M-1 to C-b M-5Even-horizontal, even-vertical, main-horizontal, main-vertical, tiled
C-b C-arrowResize by one cell (M-arrow by five)
C-b ESpread panes out evenly

The remaining keys open tools rather than move around, and four of them are worth learning on day one:

  • C-b : opens the command prompt, where any tmux command works without the tmux prefix
  • C-b C opens an interactive editor for every option
  • C-b ~ shows recent messages, which is where config errors land
  • C-b < and C-b > open the window and pane menus

Older cheat sheets list < and > as pane navigation. tmux’s own key notes call them “Display window menu” and “Display pane menu”, so treat the old advice as wrong.

Use floating panes and the new 3.7 and 3.8 keys

The Mac’s 3.8 has six default bindings that the 3.6 package Ubuntu 26.04 ships and Rocky’s build both lack. C-b * and floating panes arrived in 3.7, and 3.8 completed them and added the other five, so a 3.7 build (Ubuntu 26.10 ships one) has * but not the rest. These lines are from list-keys -N on the Mac:

C-b Tab     Switch to a window
C-b *       New floating pane
C-b @       Toggle pane between floating and tiled
C-b T       Change the pane title
C-b g       Move a floating pane
C-b BTab    Switch to a session

Floating panes are the big addition, and three of the new keys work together to manage them:

  • C-b * opens a pane that floats over the layout and keeps running
  • C-b @ turns a floating pane into a tiled one, and back
  • C-b g enters a move mode: the arrows snap the floating pane to an edge, 1 to 4 to a corner, and 0 makes it fill the window

C-b Tab and C-b BTab (Shift+Tab) are fast switchers for windows and sessions, and C-b T names a pane. 3.8 also changed the default colours to follow your terminal’s light or dark theme, so set -s theme terminal is the line to add if the new contrast bothers you.

Scroll and copy text in copy mode

tmux keeps its own scrollback, so your terminal’s scroll wheel or trackpad only works inside tmux when the mouse is on. The keyboard way in is C-b [ (or C-b PageUp, which enters copy mode and scrolls up in one go), and q leaves it. Copy mode uses emacs keys unless your EDITOR or VISUAL mentions vi, and our clean 3.8 server reported mode-keys emacs. These are the default bindings in each mode, read from list-keys:

Actionemacs mode (default)vi mode (set -g mode-keys vi)
Start selectingC-SpaceSpace
Select the whole lineV
Toggle rectangle selectionRv
Copy and leave copy modeM-w or C-wEnter
Search down / upC-s / C-r/ / ?
Next / previous search matchn / Nn / N
Leave copy modeqq or Escape to clear

Copying puts the text in a tmux paste buffer, and C-b ] pastes the newest one into the current pane. C-b = picks from a list of older buffers, and C-b # lists them. Getting that text into your system clipboard is a separate step, covered next.

Copy to the system clipboard on macOS and Linux

By default a tmux copy stays inside tmux. Since tmux 3.2, the cleanest fix is copy-command: every default copy binding pipes the selection to it. On macOS that command is pbcopy, and we tested it on the Mac in a throwaway session (tmux -L cp -f /dev/null new -d -s cp -x 80 -y 10), putting a line in copy mode, copying it with the default binding and reading the clipboard back:

tmux -L cp set -s copy-command pbcopy; tmux -L cp send-keys -t cp 'printf "second-copy\n"' Enter; sleep 1; tmux -L cp copy-mode -t cp; tmux -L cp send-keys -t cp -X search-backward 'second-copy'; tmux -L cp send-keys -t cp -X select-line; tmux -L cp send-keys -t cp -X copy-pipe-and-cancel; sleep 1; pbpaste

pbpaste returned the copied line, so copy-pipe-and-cancel with no argument used copy-command, which is exactly what Enter and M-w run when you copy by hand:

second-copy

Put the matching line in ~/.tmux.conf for each platform. We only tested the macOS line. The Linux lines call the standard wl-clipboard and xclip tools, and the tmux clipboard guide covers the OSC 52 side:

  • macOS: set -s copy-command 'pbcopy'
  • Linux on Wayland (Ubuntu 26.04 desktop): set -s copy-command 'wl-copy' from the wl-clipboard package
  • Linux on X11: set -s copy-command 'xclip -selection clipboard'
  • Over SSH: nothing to add, because the default set-clipboard external already sends copies to your local terminal as an OSC 52 escape code; use set -s set-clipboard on on the outer tmux when you nest tmux in tmux

The SSH case depends on your terminal, not on tmux (our terminal emulator comparison covers the options). Ghostty, kitty, WezTerm and iTerm2 (with clipboard access allowed in its settings) accept OSC 52, while GNOME Terminal and Ptyxis, the default terminal on Ubuntu 26.04, do not, so copy-over-SSH silently does nothing there.

Script tmux sessions with send-keys and capture-pane

Everything you do with keys can be done from a script, which is how people build dev layouts, run long jobs on servers and drive tools such as Claude Code inside tmux. This creates a detached session with a named window, splits it and lists the panes, and the -x and -y flags give it a size because there is no terminal to measure:

tmux -L demo -f /dev/null new -d -s demo -n build -x 120 -y 30; tmux -L demo split-window -h -t demo:build; tmux -L demo list-panes -t demo:build -F '#{pane_index} #{pane_id} #{pane_current_command} #{pane_width}x#{pane_height}'

Ubuntu reported two panes side by side with one column lost to the divider. The command column reads tmux because the panes were listed before their shells had finished starting; Rocky’s run showed bash there:

0 %0 tmux 60x30
1 %1 tmux 59x30

Targets read session:window.pane, so demo:build.0 is the left pane. Send a command to it and read the screen back with capture-pane -p, which prints to stdout:

tmux -L demo send-keys -t demo:build.0 'echo hello from pane 0; tmux -V' Enter; sleep 1; tmux -L demo capture-pane -p -t demo:build.0 | grep -v '^$'

The first line is the command echoed before the shell’s prompt was ready, then the real prompt and the output. Allow a moment between send-keys and capture-pane, because the keys are typed into the pane like a person would type them:

echo hello from pane 0; tmux -V
josphat@web01:~$ echo hello from pane 0; tmux -V
hello from pane 0
tmux 3.6
josphat@web01:~$

A fixed sleep is guesswork for anything slower. wait-for lets a script block until the pane signals it is done, so the job decides when it’s finished instead of your timer:

tmux -L demo send-keys -t demo:build.1 'sleep 2; tmux wait-for -S job-done' Enter; time tmux -L demo wait-for job-done; echo finished

The wait ended two seconds later, the moment the pane ran wait-for -S:

real	0m2.011s
user	0m0.002s
sys	0m0.001s
finished

Clean up a test server with tmux -L demo kill-server when you are done, because a detached server keeps running until you stop it. A few more patterns round out scripting, and each came from the same lab session. Keep in mind that scripts run without a terminal, so anything that attaches will fail there:

  • tmux new -d -s demo on an existing name fails with duplicate session: demo (exit 1)
  • tmux new -A -d -s demo on an existing name tries to attach and fails in a script with open terminal failed: not a terminal, so test with tmux has-session -t demo instead
  • tmux display-message 'hi' with no client attached exits 0 and shows nothing, so print with display -p
  • tmux pipe-pane -o 'cat >> /tmp/pane.log' logs everything a pane prints to a file (use an absolute path, since a relative one resolves against the server’s directory)

Saved layouts also changed in 3.8. list-windows on Ubuntu printed the classic compact layout string f09b,120x30,0,0{60x30,0,0,0,59x30,61,0,1}. The Mac’s 3.8 printed a JSON object starting {"V":2,"L":{"t":"h",... for the same two-pane split, so a layout saved on a 3.8 Mac is not something to paste into an older server’s select-layout.

Work around the capture-pane crash on Rocky Linux 10

On Rocky Linux 10.2, capture-pane -p killed the tmux server every time we ran it, which takes every session on that server with it. A fresh server with nothing in it was enough:

tmux -L c1 -f /dev/null new -d -s c1; tmux -L c1 capture-pane -p -t c1 | head -3; echo "exit=${PIPESTATUS[0]}"; tmux -L c1 ls; echo "ls exit=$?"

The client reports the crash and the server is gone afterwards:

server exited unexpectedly
exit=1
no server running on /tmp/tmux-1000/c1
ls exit=1

coredumpctl logged a SIGABRT core for /usr/bin/tmux each time, across different pane sizes and line ranges. The installed package, tmux-3.3a-13.20250207gitb202a2f.el10, was still the newest in Rocky’s BaseOS repository on our test day, and CentOS Stream 10 already carries a 3.3a-14 build whose changelog lists a capture-pane crash fix. Capturing into a buffer with capture-pane -b did not crash, but save-buffer then returned leftover memory, so do not trust that route either. pipe-pane worked, because it records the pane’s output stream instead of reading the screen:

rm -f /tmp/c7.log; tmux -L c7 -f /dev/null new -d -s c7; tmux -L c7 pipe-pane -t c7 -o 'cat >> /tmp/c7.log'; sleep 1; tmux -L c7 send-keys -t c7 'echo hi from rocky; uname -r' Enter; sleep 1; tr -d '\r' < /tmp/c7.log | sed 's/\x1b\[[0-9;?]*[a-zA-Z]//g' | grep -v '^$'; tmux -L c7 ls

The log holds the prompt, the command and its output, and the server is still alive at the end. The tr and sed steps strip the carriage returns and escape codes that a raw pane stream contains, and tmux -L c7 kill-server removes the test server afterwards:

[josphat@web02 ~]$ echo hi from rocky; uname -r
hi from rocky
6.12.0-211.67.1.el10_2.x86_64
[josphat@web02 ~]$
c7: 1 windows (created Wed Oct 21 23:57:28 2026)

If your automation depends on capture-pane, check rpm -q tmux before you trust it on a RHEL 10 family box, and test once with a throwaway -L socket so a crash only kills the test server.

Start tmux at boot with systemd

A tmux session that starts at boot gives you a place to reattach after a reboot without logging in first. Rocky Linux 10 ships a ready-made tmux@.service for this, but in our test it failed with SELinux enforcing:

sudo systemctl enable --now tmux@"$USER"

The enable succeeded but the start did not, which is the confusing part, because the unit is now enabled and will fail again at every boot:

Created symlink '/etc/systemd/system/multi-user.target.wants/tmux@josphat.service' β†’ '/usr/lib/systemd/system/tmux@.service'.
Job for tmux@josphat.service failed because the control process exited with error code.
See "systemctl status tmux@josphat.service" and "journalctl -xeu tmux@josphat.service" for details.

The journal recorded exit status 203/EXEC with Unable to locate executable '/usr/bin/tmux': Permission denied, and /usr/bin/tmux carries the screen_exec_t SELinux label. The audit log names the denial. Note --input-logs: without it, ausearch in a script waits on stdin instead of reading the log:

sudo systemctl start tmux@"$USER"; sleep 1; sudo ausearch --input-logs -m avc,user_avc -c '(tmux)' -ts recent 2>&1 | grep -E 'denied|no matches' | tail -2

The start fails again. -ts recent covers the last ten minutes, so you see one denial per failed start in that window (two in our run), each showing systemd itself (init_t) being refused permission to execute a file labelled screen_exec_t:

Job for tmux@josphat.service failed because the control process exited with error code.
See "systemctl status tmux@josphat.service" and "journalctl -xeu tmux@josphat.service" for details.
type=AVC msg=audit(1792629030.596:1067): avc:  denied  { execute } for  pid=4385 comm="(tmux)" name="tmux" dev="sda4" ino=2177 scontext=system_u:system_r:init_t:s0 tcontext=system_u:object_r:screen_exec_t:s0 tclass=file permissive=0
type=AVC msg=audit(1792629035.764:1095): avc:  denied  { execute } for  pid=4444 comm="(tmux)" name="tmux" dev="sda4" ino=2177 scontext=system_u:system_r:init_t:s0 tcontext=system_u:object_r:screen_exec_t:s0 tclass=file permissive=0

With SELinux switched to permissive for a moment the unit went active, and back in enforcing mode it failed again, so this is a policy gap between the package and the SELinux rules rather than anything you set up wrong. Don’t turn SELinux off for this. Undo the failed unit with sudo systemctl disable --now tmux@"$USER"; sudo systemctl reset-failed tmux@"$USER", then use a per-user unit, which avoids the problem and works the same on Ubuntu. Create it in your own account:

mkdir -p ~/.config/systemd/user && vim ~/.config/systemd/user/tmux.service

Type=forking matches how tmux new-session -d behaves, starting the server and returning straight away:

[Unit]
Description=tmux main session

[Service]
Type=forking
ExecStart=/usr/bin/tmux new-session -d -s main
ExecStop=/usr/bin/tmux kill-session -t main

[Install]
WantedBy=default.target

Run the next command from a plain shell with no tmux server already running for your user; tmux ls should first print either no server running or error connecting ... (No such file or directory), both explained in the errors section. If one is running, new-session -d just adds a session to it and exits, systemd then treats the unit as finished and runs ExecStop, so the unit ends up inactive and the session it created is killed again; the packaged unit showed the same inactive result in our lab while another server was up. Lingering keeps your user manager running without a login, which is what makes the unit start at boot:

sudo loginctl enable-linger "$USER"; systemctl --user daemon-reload; systemctl --user enable --now tmux.service; systemctl --user is-active tmux.service; tmux ls

It came up on both distros, Rocky with SELinux still enforcing, and after a full reboot of both servers tmux ls showed the session again without anyone logging in:

Created symlink '/home/josphat/.config/systemd/user/default.target.wants/tmux.service' β†’ '/home/josphat/.config/systemd/user/tmux.service'.
active
main: 1 windows (created Wed Oct 21 23:58:56 2026)

For more on user units and lingering, see our systemctl cheat sheet. The session is empty after each boot, because a unit restores the server, not your windows and running programs; plugins such as tmux-resurrect exist for that, and we didn’t test them here.

Run tmux over SSH and inside another tmux

The usual setup is tmux on the server, so a dropped SSH connection never kills your work. Connect with ssh -t server tmux new -A -s main: -t forces a terminal for the remote command, and new -A attaches if the session exists and creates it if not. Without -t, the remote tmux has no terminal and prints open terminal failed: not a terminal.

If you also run tmux locally, you are now nesting one tmux inside another, and tmux protects you from doing it by accident. Running tmux new or tmux attach from inside a tmux pane prints this and refuses:

sessions should be nested with care, unset $TMUX to force

Over SSH the check doesn’t fire, because $TMUX is not passed to the remote shell, so you get two status bars and one prefix. C-b C-b sends the prefix through to the inner tmux, and many people set a different prefix on servers (set -g prefix C-a in the remote config) so each layer has its own key. To land in tmux with one word, add a separate alias in ~/.ssh/config, such as Host server-tmux with the server’s HostName, RequestTTY yes and RemoteCommand tmux new -A -s main. Keep it separate, because ssh refuses to run a command on a host that has RemoteCommand set, which would break rsync, Ansible and ssh host uptime against your normal alias; our SSH config guide covers host entries in general.

If you want the long-form version of these habits, tmux 3: Productive Mouse-Free Development (paid link) by Brian Hogan (Pragmatic Bookshelf, 2025) is the book we’d pick. It is short, it covers configuration, pair sessions and scripting, and it predates the 3.8 keys and floating panes covered above.

Fix the errors tmux prints

These came from the three lab machines. Most tmux errors come from the client finding the wrong server, no server, or a server it can’t talk to, so read them as a question about which socket you’re using.

Error: “open terminal failed: not a terminal”

There are two causes. The common one is a command with no terminal attached, such as ssh server tmux attach without -t, a cron job or a script, so use ssh -t or do not attach from scripts. The second hits after upgrading: a tmux 3.6 client can’t attach to a server that an older tmux started. We started a server with tmux 3.4 on Ubuntu and attached over a real terminal with the distro’s 3.6:

tmux -L up attach -t keep

It failed even though a terminal was there, while the 3.4 client attached to the same server and a 3.6 client attached to a 3.6 server without trouble:

open terminal failed: not a terminal
exit=1

This is the one Ubuntu 24.04 to 26.04 upgraders hit, because their old server keeps running through the upgrade. Only attaching is broken: the new client still listed the old server’s sessions, and its tmux kill-server stopped the 3.4 server cleanly, but the new client cannot open those sessions. Debian’s package notes describe attaching through the old server’s own binary under /proc as an emergency route, which we did not test, and they warn that the new client may hang against the old server. If you cannot use that route, treat the sessions as lost: kill the server and start a new session. We reproduced this against a 3.4 server. tmux has used protocol version 8 since 2014. That means the “protocol version mismatch” error that older guides describe is not what you will see.

Error: “no server running on /tmp/tmux-1000/default”

No tmux server is listening on that socket, usually because the last session ended. tmux ls printed this after kill-server and exited 1. Start one with tmux new -s main. If you use -L NAME or -S PATH, every command has to use the same name, because each name is a separate server.

Error: “error connecting to /tmp/tmux-1000/default (No such file or directory)”

The socket file is missing. Either no server ever started, or something deleted the socket from /tmp while the server kept running, which is what we simulated with rm. If pgrep -a tmux still shows the server, send it kill -USR1 <server pid> and it recreates the socket; tmux ls worked again straight after that in our test.

Error: “directory /tmp/tmux-1000 has unsafe permissions”

tmux refuses to use a socket directory that other users can write to. We triggered it with chmod 777 and fixed it with chmod 700 /tmp/tmux-$(id -u). A shared TMUX_TMPDIR or a cleanup script that resets permissions are the usual causes.

Error: “missing or unsuitable terminal: xterm-ghostty”

The machine running tmux has no terminfo entry for the terminal you connect from, which happens with newer terminals such as Ghostty or kitty over SSH. Neither Ubuntu 26.04 nor Rocky 10 had xterm-ghostty, and both refused to start a session with that TERM. Run infocmp -x xterm-ghostty | ssh server -- tic -x - from a machine that has the entry (the one running Ghostty) to copy it across, or connect with TERM=xterm-256color.

Error: “sessions should be nested with care, unset $TMUX to force”

You ran tmux inside tmux. Switch sessions with C-b s or tmux switch-client -t NAME instead, or detach first. Unset TMUX only when you mean to nest.

Error: “server exited unexpectedly”

The server crashed. On Rocky Linux 10’s package, capture-pane -p does this every time, as the section above shows; elsewhere, check coredumpctl list for a core and report it upstream.

Error: “error connecting to … (File name too long)”

Unix socket paths are limited to about 104 bytes on macOS, and our first Mac run put the socket under a long TMUX_TMPDIR and got this for every command. Point TMUX_TMPDIR at a short directory such as /tmp.

Move an old .tmux.conf to current tmux

Old configs fail harder than they look. We loaded a config with four lines copied from a 2015-era guide plus a valid set -g mouse on at the end. tmux new -d started without a word, but the mouse stayed off on Ubuntu and Rocky, because a line that fails to parse (here the old bind -t syntax) stops tmux from applying any of the file. This is the test file we used:

printf 'setw -g mode-mouse on\nset -g status-utf8 on\nbind -t vi-copy v begin-selection\nset -g window-status-current-bg red\nset -g mouse on\n' > /tmp/old.conf

source-file on a running server shows the line that broke it:

tmux -L old2 -f /dev/null new -d -s o2; tmux -L old2 source-file /tmp/old.conf; echo "exit=$?"; tmux -L old2 kill-server

All three versions reported the same line:

/tmp/old.conf:3: command bind-key: unknown flag -t
exit=1

Run tmux source-file ~/.tmux.conf after every edit for the same reason, and replace these old forms with the current ones (the tmux customization guide has a full modern config):

Old lineCurrent equivalent
setw -g mode-mouse on, mouse-select-paneset -g mouse on (already on in 3.8)
set -g utf8 on, status-utf8 onremove; UTF-8 is detected automatically
bind -t vi-copy v begin-selectionbind -T copy-mode-vi v send -X begin-selection
set -g window-status-current-bg redset -g window-status-current-style bg=red
reattach-to-user-namespace pbcopyset -s copy-command pbcopy
terminal-overrides ",xterm-256color:Tc"set -as terminal-features ",xterm-256color:RGB"
display-panes -bdisplay-panes (-b was removed in 3.8)

Unknown options behave differently from parse errors. A config with set -g theme terminal followed by set -g mouse on still turned the mouse on under Rocky’s build, but every reload printed /tmp/new.conf:1: invalid option: theme and source-file exited 1. Add q to newer options (set -gq, or set -sq theme terminal for a server option like theme), which suppresses errors for unknown options. set -gq ran silently with exit 0 on Rocky, which is what lets one shared config load cleanly on an older build. For installing tmux itself on more distros, our tmux install guide covers the package names.

Keep reading

Fix β€œapt-key is deprecated. Manage keyring files in trusted.gpg.d instead” Debian Fix β€œapt-key is deprecated. Manage keyring files in trusted.gpg.d instead” Best Terminal Shell Prompts for Zsh, Bash and Fish Featured Best Terminal Shell Prompts for Zsh, Bash and Fish Linux Terminal Shortcuts Cheat Sheet (Bash and zsh) Cheat Sheets Linux Terminal Shortcuts Cheat Sheet (Bash and zsh) Install lazygit on Linux: Ubuntu, Debian, Fedora and Arch Git Install lazygit on Linux: Ubuntu, Debian, Fedora and Arch Linux Commands Cheat Sheet for Ubuntu and Rocky Linux (PDF) Cheat Sheets Linux Commands Cheat Sheet for Ubuntu and Rocky Linux (PDF) Using Emacs on Linux and macOS – emac Commands examples Featured Using Emacs on Linux and macOS – emac Commands examples

Leave a Comment

Press ESC to close