@fredlackey/devutils 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/package.json +1 -1
- package/src/commands/install.js +374 -36
- package/src/installs/adobe-creative-cloud.js +527 -25
- package/src/installs/adobe-creative-cloud.md +605 -0
- package/src/installs/appcleaner.js +303 -26
- package/src/installs/appcleaner.md +699 -0
- package/src/installs/apt-transport-https.js +390 -0
- package/src/installs/apt-transport-https.md +678 -0
- package/src/installs/atomicparsley.js +624 -26
- package/src/installs/atomicparsley.md +795 -0
- package/src/installs/aws-cli.js +779 -26
- package/src/installs/aws-cli.md +727 -0
- package/src/installs/balena-etcher.js +688 -26
- package/src/installs/balena-etcher.md +761 -0
- package/src/installs/bambu-studio.js +912 -26
- package/src/installs/bambu-studio.md +780 -0
- package/src/installs/bash-completion.js +554 -23
- package/src/installs/bash-completion.md +833 -0
- package/src/installs/bash.js +399 -26
- package/src/installs/bash.md +993 -0
- package/src/installs/beyond-compare.js +585 -26
- package/src/installs/beyond-compare.md +813 -0
- package/src/installs/build-essential.js +511 -26
- package/src/installs/build-essential.md +977 -0
- package/src/installs/ca-certificates.js +618 -0
- package/src/installs/ca-certificates.md +937 -0
- package/src/installs/caffeine.js +490 -26
- package/src/installs/caffeine.md +839 -0
- package/src/installs/camtasia.js +577 -25
- package/src/installs/camtasia.md +762 -0
- package/src/installs/chatgpt.js +458 -26
- package/src/installs/chatgpt.md +814 -0
- package/src/installs/chocolatey.js +447 -0
- package/src/installs/chocolatey.md +661 -0
- package/src/installs/chrome-canary.js +472 -26
- package/src/installs/chrome-canary.md +641 -0
- package/src/installs/chromium.js +645 -26
- package/src/installs/chromium.md +838 -0
- package/src/installs/claude-code.js +558 -26
- package/src/installs/claude-code.md +1173 -0
- package/src/installs/curl.js +361 -26
- package/src/installs/curl.md +714 -0
- package/src/installs/cursor.js +561 -26
- package/src/installs/cursor.md +970 -0
- package/src/installs/dbschema.js +674 -26
- package/src/installs/dbschema.md +925 -0
- package/src/installs/dependencies.md +435 -0
- package/src/installs/development-tools.js +600 -0
- package/src/installs/development-tools.md +977 -0
- package/src/installs/docker.js +1010 -25
- package/src/installs/docker.md +1109 -0
- package/src/installs/drawio.js +1001 -26
- package/src/installs/drawio.md +795 -0
- package/src/installs/elmedia-player.js +328 -25
- package/src/installs/elmedia-player.md +556 -0
- package/src/installs/ffmpeg.js +870 -25
- package/src/installs/ffmpeg.md +852 -0
- package/src/installs/file.js +464 -0
- package/src/installs/file.md +987 -0
- package/src/installs/gemini-cli.js +793 -26
- package/src/installs/gemini-cli.md +1153 -0
- package/src/installs/git.js +382 -26
- package/src/installs/git.md +907 -0
- package/src/installs/gitego.js +931 -26
- package/src/installs/gitego.md +1172 -0
- package/src/installs/go.js +913 -26
- package/src/installs/go.md +958 -0
- package/src/installs/google-chrome.js +801 -25
- package/src/installs/google-chrome.md +862 -0
- package/src/installs/gpg.js +412 -73
- package/src/installs/gpg.md +1056 -0
- package/src/installs/homebrew.js +1015 -26
- package/src/installs/homebrew.md +988 -0
- package/src/installs/imageoptim.js +950 -26
- package/src/installs/imageoptim.md +1119 -0
- package/src/installs/installers.json +2297 -0
- package/src/installs/jq.js +382 -26
- package/src/installs/jq.md +809 -0
- package/src/installs/keyboard-maestro.js +701 -26
- package/src/installs/keyboard-maestro.md +825 -0
- package/src/installs/latex.js +771 -26
- package/src/installs/latex.md +1095 -0
- package/src/installs/lftp.js +338 -26
- package/src/installs/lftp.md +907 -0
- package/src/installs/lsb-release.js +346 -0
- package/src/installs/lsb-release.md +814 -0
- package/src/installs/messenger.js +829 -26
- package/src/installs/messenger.md +900 -0
- package/src/installs/microsoft-office.js +550 -26
- package/src/installs/microsoft-office.md +760 -0
- package/src/installs/microsoft-teams.js +782 -25
- package/src/installs/microsoft-teams.md +886 -0
- package/src/installs/node.js +886 -26
- package/src/installs/node.md +1153 -0
- package/src/installs/nordpass.js +698 -26
- package/src/installs/nordpass.md +921 -0
- package/src/installs/nvm.js +977 -26
- package/src/installs/nvm.md +1057 -0
- package/src/installs/openssh.js +734 -64
- package/src/installs/openssh.md +1056 -0
- package/src/installs/pandoc.js +644 -26
- package/src/installs/pandoc.md +1036 -0
- package/src/installs/pinentry.js +492 -26
- package/src/installs/pinentry.md +1142 -0
- package/src/installs/pngyu.js +851 -26
- package/src/installs/pngyu.md +896 -0
- package/src/installs/postman.js +781 -26
- package/src/installs/postman.md +940 -0
- package/src/installs/procps.js +425 -0
- package/src/installs/procps.md +851 -0
- package/src/installs/safari-tech-preview.js +355 -25
- package/src/installs/safari-tech-preview.md +533 -0
- package/src/installs/sfnt2woff.js +640 -26
- package/src/installs/sfnt2woff.md +795 -0
- package/src/installs/shellcheck.js +463 -26
- package/src/installs/shellcheck.md +1005 -0
- package/src/installs/slack.js +722 -25
- package/src/installs/slack.md +865 -0
- package/src/installs/snagit.js +566 -25
- package/src/installs/snagit.md +844 -0
- package/src/installs/software-properties-common.js +372 -0
- package/src/installs/software-properties-common.md +805 -0
- package/src/installs/spotify.js +858 -25
- package/src/installs/spotify.md +901 -0
- package/src/installs/studio-3t.js +803 -26
- package/src/installs/studio-3t.md +918 -0
- package/src/installs/sublime-text.js +780 -25
- package/src/installs/sublime-text.md +914 -0
- package/src/installs/superwhisper.js +687 -25
- package/src/installs/superwhisper.md +630 -0
- package/src/installs/tailscale.js +727 -26
- package/src/installs/tailscale.md +1100 -0
- package/src/installs/tar.js +389 -0
- package/src/installs/tar.md +946 -0
- package/src/installs/termius.js +780 -26
- package/src/installs/termius.md +844 -0
- package/src/installs/terraform.js +761 -26
- package/src/installs/terraform.md +899 -0
- package/src/installs/tidal.js +752 -25
- package/src/installs/tidal.md +864 -0
- package/src/installs/tmux.js +328 -26
- package/src/installs/tmux.md +1030 -0
- package/src/installs/tree.js +393 -26
- package/src/installs/tree.md +833 -0
- package/src/installs/unzip.js +460 -0
- package/src/installs/unzip.md +879 -0
- package/src/installs/vim.js +403 -26
- package/src/installs/vim.md +1040 -0
- package/src/installs/vlc.js +803 -26
- package/src/installs/vlc.md +927 -0
- package/src/installs/vscode.js +825 -26
- package/src/installs/vscode.md +1002 -0
- package/src/installs/wget.js +415 -0
- package/src/installs/wget.md +791 -0
- package/src/installs/whatsapp.js +710 -25
- package/src/installs/whatsapp.md +854 -0
- package/src/installs/winpty.js +352 -0
- package/src/installs/winpty.md +620 -0
- package/src/installs/woff2.js +535 -26
- package/src/installs/woff2.md +977 -0
- package/src/installs/wsl.js +572 -0
- package/src/installs/wsl.md +699 -0
- package/src/installs/xcode-clt.js +520 -0
- package/src/installs/xcode-clt.md +351 -0
- package/src/installs/xcode.js +542 -26
- package/src/installs/xcode.md +573 -0
- package/src/installs/yarn.js +806 -26
- package/src/installs/yarn.md +1074 -0
- package/src/installs/yq.js +636 -26
- package/src/installs/yq.md +944 -0
- package/src/installs/yt-dlp.js +683 -26
- package/src/installs/yt-dlp.md +946 -0
- package/src/installs/yum-utils.js +297 -0
- package/src/installs/yum-utils.md +648 -0
- package/src/installs/zoom.js +740 -25
- package/src/installs/zoom.md +884 -0
- package/src/scripts/README.md +567 -45
- package/src/scripts/STATUS.md +208 -0
- package/src/scripts/afk.js +395 -7
- package/src/scripts/backup-all.js +731 -9
- package/src/scripts/backup-source.js +711 -8
- package/src/scripts/brewd.js +373 -7
- package/src/scripts/brewi.js +505 -9
- package/src/scripts/brewr.js +512 -9
- package/src/scripts/brews.js +462 -9
- package/src/scripts/brewu.js +488 -7
- package/src/scripts/c.js +185 -7
- package/src/scripts/ccurl.js +325 -8
- package/src/scripts/certbot-crontab-init.js +488 -8
- package/src/scripts/certbot-init.js +641 -9
- package/src/scripts/ch.js +339 -7
- package/src/scripts/claude-danger.js +253 -8
- package/src/scripts/clean-dev.js +419 -8
- package/src/scripts/clear-dns-cache.js +525 -7
- package/src/scripts/clone.js +417 -7
- package/src/scripts/code-all.js +420 -7
- package/src/scripts/count-files.js +195 -8
- package/src/scripts/count-folders.js +195 -8
- package/src/scripts/count.js +248 -8
- package/src/scripts/d.js +203 -7
- package/src/scripts/datauri.js +373 -8
- package/src/scripts/delete-files.js +363 -7
- package/src/scripts/docker-clean.js +410 -8
- package/src/scripts/dp.js +426 -7
- package/src/scripts/e.js +375 -9
- package/src/scripts/empty-trash.js +497 -7
- package/src/scripts/evm.js +428 -9
- package/src/scripts/fetch-github-repos.js +441 -10
- package/src/scripts/get-channel.js +329 -8
- package/src/scripts/get-course.js +384 -11
- package/src/scripts/get-dependencies.js +290 -9
- package/src/scripts/get-folder.js +783 -10
- package/src/scripts/get-tunes.js +411 -10
- package/src/scripts/get-video.js +352 -9
- package/src/scripts/git-backup.js +561 -9
- package/src/scripts/git-clone.js +477 -9
- package/src/scripts/git-pup.js +303 -7
- package/src/scripts/git-push.js +380 -8
- package/src/scripts/h.js +607 -9
- package/src/scripts/hide-desktop-icons.js +483 -7
- package/src/scripts/hide-hidden-files.js +522 -7
- package/src/scripts/install-dependencies-from.js +440 -9
- package/src/scripts/ips.js +647 -10
- package/src/scripts/iso.js +354 -8
- package/src/scripts/killni.js +561 -7
- package/src/scripts/ll.js +451 -8
- package/src/scripts/local-ip.js +310 -8
- package/src/scripts/m.js +508 -8
- package/src/scripts/map.js +293 -8
- package/src/scripts/mkd.js +287 -7
- package/src/scripts/ncu-update-all.js +441 -8
- package/src/scripts/nginx-init.js +702 -12
- package/src/scripts/npmi.js +366 -7
- package/src/scripts/o.js +495 -8
- package/src/scripts/org-by-date.js +321 -7
- package/src/scripts/p.js +208 -7
- package/src/scripts/packages.js +313 -8
- package/src/scripts/path.js +209 -7
- package/src/scripts/ports.js +582 -8
- package/src/scripts/q.js +290 -8
- package/src/scripts/refresh-files.js +378 -10
- package/src/scripts/remove-smaller-files.js +500 -8
- package/src/scripts/rename-files-with-date.js +517 -9
- package/src/scripts/resize-image.js +523 -9
- package/src/scripts/rm-safe.js +653 -8
- package/src/scripts/s.js +525 -9
- package/src/scripts/set-git-public.js +349 -7
- package/src/scripts/show-desktop-icons.js +459 -7
- package/src/scripts/show-hidden-files.js +456 -7
- package/src/scripts/tpa.js +265 -8
- package/src/scripts/tpo.js +264 -7
- package/src/scripts/u.js +489 -7
- package/src/scripts/vpush.js +422 -8
- package/src/scripts/y.js +267 -7
- package/src/utils/common/os.js +94 -2
- package/src/utils/ubuntu/apt.js +13 -7
- package/src/utils/windows/choco.js +82 -26
- package/src/utils/windows/winget.js +89 -27
|
@@ -0,0 +1,1030 @@
|
|
|
1
|
+
# Installing tmux
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
tmux is a terminal multiplexer that allows you to create, access, and control multiple terminal sessions from a single screen. Originally developed by Nicholas Marriott and first released in 2007, tmux has become an essential tool for developers, system administrators, and power users who work extensively in the command line.
|
|
6
|
+
|
|
7
|
+
tmux enables you to:
|
|
8
|
+
|
|
9
|
+
- Run multiple terminal sessions within a single window
|
|
10
|
+
- Detach from sessions and reattach later (even from a different computer)
|
|
11
|
+
- Split your terminal into multiple panes for side-by-side work
|
|
12
|
+
- Keep processes running after disconnecting from SSH
|
|
13
|
+
- Share terminal sessions with other users
|
|
14
|
+
- Create persistent workspaces that survive terminal crashes
|
|
15
|
+
|
|
16
|
+
The current stable version is tmux 3.6a. This guide documents tmux installation procedures for all platforms supported by DevUtils CLI.
|
|
17
|
+
|
|
18
|
+
## Dependencies
|
|
19
|
+
|
|
20
|
+
### macOS (Homebrew)
|
|
21
|
+
- **Required:**
|
|
22
|
+
- Homebrew - Install via `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"` or `dev install homebrew`
|
|
23
|
+
- **Optional:** None
|
|
24
|
+
- **Auto-installed by Homebrew:**
|
|
25
|
+
- libevent - Event notification library (installed automatically as tmux dependency)
|
|
26
|
+
- ncurses - Terminal handling library (installed automatically as tmux dependency)
|
|
27
|
+
- utf8proc - Unicode processing library (installed automatically as tmux dependency)
|
|
28
|
+
|
|
29
|
+
### Ubuntu (APT/Snap)
|
|
30
|
+
- **Required:** None (tmux is available in default repositories)
|
|
31
|
+
- **Optional:** None
|
|
32
|
+
- **Auto-installed by APT:**
|
|
33
|
+
- libevent-2.1-7 - Event notification library (installed automatically as tmux dependency)
|
|
34
|
+
- libtinfo6 - Terminal handling library (installed automatically as tmux dependency)
|
|
35
|
+
- libc6 - Standard C library (installed automatically as tmux dependency)
|
|
36
|
+
|
|
37
|
+
### Raspberry Pi OS (APT/Snap)
|
|
38
|
+
- **Required:** None (tmux is available in default repositories)
|
|
39
|
+
- **Optional:** None
|
|
40
|
+
- **Auto-installed by APT:**
|
|
41
|
+
- libevent-2.1-7 - Event notification library (installed automatically as tmux dependency)
|
|
42
|
+
- libtinfo6 - Terminal handling library (installed automatically as tmux dependency)
|
|
43
|
+
- libc6 - Standard C library (installed automatically as tmux dependency)
|
|
44
|
+
|
|
45
|
+
### Amazon Linux (DNF/YUM)
|
|
46
|
+
- **Required:** None (tmux is available in default repositories)
|
|
47
|
+
- **Optional:** None
|
|
48
|
+
- **Auto-installed by DNF/YUM:**
|
|
49
|
+
- libevent - Event notification library (installed automatically as tmux dependency)
|
|
50
|
+
- ncurses-libs - Terminal handling library (installed automatically as tmux dependency)
|
|
51
|
+
|
|
52
|
+
### Windows (Chocolatey/winget)
|
|
53
|
+
- **Required:** WSL 2 with Ubuntu distribution is required, as tmux does not run natively on Windows
|
|
54
|
+
- Install WSL via PowerShell (as Administrator): `wsl --install`
|
|
55
|
+
- After WSL is installed, follow Ubuntu installation instructions within WSL environment
|
|
56
|
+
- **Optional:** None
|
|
57
|
+
- **Auto-installed:** None (installation not supported on native Windows)
|
|
58
|
+
|
|
59
|
+
### Git Bash (Manual/Portable)
|
|
60
|
+
- **Required (for manual MSYS2 method):**
|
|
61
|
+
- Git for Windows - Download from https://git-scm.com/download/win
|
|
62
|
+
- MSYS2 - Download and install from https://www.msys2.org/
|
|
63
|
+
- tmux binaries from MSYS2 - Install via `pacman -Sy --noconfirm tmux` in MSYS2 terminal
|
|
64
|
+
- msys-event DLLs - Copy from MSYS2 `/usr/bin/msys-event*.dll` to Git Bash `/usr/bin/` directory
|
|
65
|
+
- **Optional:** None
|
|
66
|
+
- **Auto-installed:** None (installation not supported via automated script; requires manual copying of binaries)
|
|
67
|
+
|
|
68
|
+
**Note:** The automated installer script does not support Windows or Git Bash. For these platforms, manual installation via WSL (Windows) or MSYS2 binary copying (Git Bash) is required. See platform-specific sections below for detailed instructions.
|
|
69
|
+
|
|
70
|
+
## Prerequisites
|
|
71
|
+
|
|
72
|
+
Before installing tmux on any platform, ensure:
|
|
73
|
+
|
|
74
|
+
1. **Internet connectivity** - Required to download tmux packages
|
|
75
|
+
2. **Administrative privileges** - Required for system-wide installation
|
|
76
|
+
3. **Terminal access** - Required to run installation commands
|
|
77
|
+
|
|
78
|
+
## Platform-Specific Installation
|
|
79
|
+
|
|
80
|
+
### macOS (Homebrew)
|
|
81
|
+
|
|
82
|
+
#### Prerequisites
|
|
83
|
+
|
|
84
|
+
- macOS 10.15 (Catalina) or later (macOS 14 Sonoma or later recommended)
|
|
85
|
+
- Homebrew package manager installed
|
|
86
|
+
- Command line access via Terminal.app or iTerm2
|
|
87
|
+
|
|
88
|
+
If Homebrew is not installed, install it first:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
#### Installation Steps
|
|
95
|
+
|
|
96
|
+
Run the following command to install tmux:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
brew install --quiet tmux
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
The `--quiet` flag suppresses non-essential output, making the installation suitable for automation and scripts.
|
|
103
|
+
|
|
104
|
+
Homebrew automatically installs the required dependencies (libevent, ncurses, and utf8proc) as part of the installation process.
|
|
105
|
+
|
|
106
|
+
#### Verification
|
|
107
|
+
|
|
108
|
+
Confirm the installation succeeded:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
tmux -V
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Expected output (version numbers may vary):
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
tmux 3.6a
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Verify the Homebrew version is being used:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
which tmux
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Expected output for Apple Silicon Macs:
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
/opt/homebrew/bin/tmux
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Expected output for Intel Macs:
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
/usr/local/bin/tmux
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
#### Troubleshooting
|
|
139
|
+
|
|
140
|
+
**Problem**: `tmux: command not found` after installation
|
|
141
|
+
|
|
142
|
+
**Solution**: Ensure Homebrew's bin directory is in your PATH:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrc
|
|
146
|
+
source ~/.zshrc
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
For Intel Macs, use `/usr/local/bin` instead of `/opt/homebrew/bin`.
|
|
150
|
+
|
|
151
|
+
**Problem**: `brew: command not found`
|
|
152
|
+
|
|
153
|
+
**Solution**: Homebrew is not installed or not in PATH. Install Homebrew first:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
**Problem**: Outdated version of tmux
|
|
160
|
+
|
|
161
|
+
**Solution**: Update Homebrew and upgrade tmux:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
brew update && brew upgrade tmux
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**Problem**: Permission errors during installation
|
|
168
|
+
|
|
169
|
+
**Solution**: Homebrew should not require sudo. If you encounter permission errors, fix Homebrew permissions:
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
sudo chown -R $(whoami) /opt/homebrew
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
### Ubuntu/Debian (APT)
|
|
178
|
+
|
|
179
|
+
#### Prerequisites
|
|
180
|
+
|
|
181
|
+
- Ubuntu 20.04 LTS or later, or Debian 11 (Bullseye) or later
|
|
182
|
+
- sudo privileges
|
|
183
|
+
- Internet connectivity
|
|
184
|
+
|
|
185
|
+
Ubuntu and Debian include tmux in their default repositories. The repository version is stable and well-tested, though it may not be the absolute latest release.
|
|
186
|
+
|
|
187
|
+
#### Installation Steps
|
|
188
|
+
|
|
189
|
+
Run the following commands to install tmux:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
193
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tmux
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
The `DEBIAN_FRONTEND=noninteractive` environment variable ensures no interactive prompts appear during installation, making this suitable for scripts and automation. The `-y` flag automatically confirms the installation.
|
|
197
|
+
|
|
198
|
+
#### Verification
|
|
199
|
+
|
|
200
|
+
Confirm the installation succeeded:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
tmux -V
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Expected output (version numbers may vary based on your distribution):
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
tmux 3.4
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Verify the installation location:
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
which tmux
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Expected output:
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
/usr/bin/tmux
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
#### Troubleshooting
|
|
225
|
+
|
|
226
|
+
**Problem**: `E: Unable to locate package tmux`
|
|
227
|
+
|
|
228
|
+
**Solution**: Update your package lists first:
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
**Problem**: Older version of tmux than expected
|
|
235
|
+
|
|
236
|
+
**Solution**: Ubuntu and Debian repositories prioritize stability over bleeding-edge versions. If you need the latest version, build from source. First, install the build dependencies:
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y git automake build-essential libevent-dev libncurses5-dev bison pkg-config
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
Then build tmux:
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
git clone https://github.com/tmux/tmux.git
|
|
246
|
+
cd tmux
|
|
247
|
+
sh autogen.sh
|
|
248
|
+
./configure && make
|
|
249
|
+
sudo make install
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
**Problem**: `tmux: need UTF-8 locale` error
|
|
253
|
+
|
|
254
|
+
**Solution**: Ensure your locale is set correctly:
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y locales
|
|
258
|
+
sudo locale-gen en_US.UTF-8
|
|
259
|
+
export LANG=en_US.UTF-8
|
|
260
|
+
export LC_ALL=en_US.UTF-8
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
**Problem**: Package conflicts or broken dependencies
|
|
264
|
+
|
|
265
|
+
**Solution**: Fix broken packages before installing:
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -f
|
|
269
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tmux
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
### Raspberry Pi OS (APT)
|
|
275
|
+
|
|
276
|
+
#### Prerequisites
|
|
277
|
+
|
|
278
|
+
- Raspberry Pi OS (Bookworm or Bullseye recommended)
|
|
279
|
+
- Raspberry Pi 3B+ or later (any model supported by Raspberry Pi OS)
|
|
280
|
+
- sudo privileges
|
|
281
|
+
- Internet connectivity
|
|
282
|
+
|
|
283
|
+
Raspberry Pi OS is based on Debian, so tmux installation follows the Debian/APT method. tmux is available in the default repositories and works on both 32-bit (armhf) and 64-bit (arm64) architectures.
|
|
284
|
+
|
|
285
|
+
#### Installation Steps
|
|
286
|
+
|
|
287
|
+
First, verify your architecture:
|
|
288
|
+
|
|
289
|
+
```bash
|
|
290
|
+
uname -m
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
- `aarch64` = 64-bit ARM
|
|
294
|
+
- `armv7l` = 32-bit ARM
|
|
295
|
+
|
|
296
|
+
Install tmux using APT:
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
300
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tmux
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
The installation command is identical for both 32-bit and 64-bit Raspberry Pi OS.
|
|
304
|
+
|
|
305
|
+
#### Verification
|
|
306
|
+
|
|
307
|
+
Confirm the installation succeeded:
|
|
308
|
+
|
|
309
|
+
```bash
|
|
310
|
+
tmux -V
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
Expected output (version numbers may vary):
|
|
314
|
+
|
|
315
|
+
```
|
|
316
|
+
tmux 3.3a
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
Note: Raspberry Pi OS repositories may contain a slightly older version than Ubuntu or Homebrew. This is expected and the version provided is fully functional.
|
|
320
|
+
|
|
321
|
+
Verify the installation location:
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
which tmux
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
Expected output:
|
|
328
|
+
|
|
329
|
+
```
|
|
330
|
+
/usr/bin/tmux
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
#### Troubleshooting
|
|
334
|
+
|
|
335
|
+
**Problem**: Installation is slow
|
|
336
|
+
|
|
337
|
+
**Solution**: Raspberry Pi SD cards can be slow. Use a high-quality SD card (Class 10 or A1/A2 rated) or boot from USB/SSD for better performance.
|
|
338
|
+
|
|
339
|
+
**Problem**: `E: Unable to fetch some archives`
|
|
340
|
+
|
|
341
|
+
**Solution**: Network connectivity issues. Check your internet connection and retry:
|
|
342
|
+
|
|
343
|
+
```bash
|
|
344
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
345
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tmux
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
**Problem**: `tmux: invalid LC_ALL, LC_CTYPE or LANG` error
|
|
349
|
+
|
|
350
|
+
**Solution**: Reconfigure your locales:
|
|
351
|
+
|
|
352
|
+
```bash
|
|
353
|
+
sudo dpkg-reconfigure locales
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
If the error persists, set the locale manually:
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
echo 'export LANG=en_US.UTF-8' >> ~/.bashrc
|
|
360
|
+
echo 'export LC_ALL=en_US.UTF-8' >> ~/.bashrc
|
|
361
|
+
source ~/.bashrc
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
**Problem**: tmux version is very old
|
|
365
|
+
|
|
366
|
+
**Solution**: Ensure your Raspberry Pi OS is up to date:
|
|
367
|
+
|
|
368
|
+
```bash
|
|
369
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
370
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y
|
|
371
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tmux
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
### Amazon Linux (DNF/YUM)
|
|
377
|
+
|
|
378
|
+
#### Prerequisites
|
|
379
|
+
|
|
380
|
+
- Amazon Linux 2023 (AL2023) or Amazon Linux 2 (AL2)
|
|
381
|
+
- sudo privileges
|
|
382
|
+
- EC2 instance or compatible environment
|
|
383
|
+
|
|
384
|
+
Amazon Linux 2023 uses DNF as the default package manager. Amazon Linux 2 uses YUM. tmux is included in the default Amazon Linux repositories.
|
|
385
|
+
|
|
386
|
+
**Important**: Amazon Linux 2 reaches end of support on June 30, 2026. Migrate to Amazon Linux 2023 for long-term support.
|
|
387
|
+
|
|
388
|
+
#### Installation Steps
|
|
389
|
+
|
|
390
|
+
**For Amazon Linux 2023 (AL2023):**
|
|
391
|
+
|
|
392
|
+
```bash
|
|
393
|
+
sudo dnf install -y tmux
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
**For Amazon Linux 2 (AL2):**
|
|
397
|
+
|
|
398
|
+
```bash
|
|
399
|
+
sudo yum install -y tmux
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
The `-y` flag automatically confirms installation, enabling non-interactive execution suitable for automation and scripts.
|
|
403
|
+
|
|
404
|
+
#### Verification
|
|
405
|
+
|
|
406
|
+
Confirm the installation succeeded:
|
|
407
|
+
|
|
408
|
+
```bash
|
|
409
|
+
tmux -V
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
Expected output (version numbers may vary):
|
|
413
|
+
|
|
414
|
+
```
|
|
415
|
+
tmux 3.2a
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
Verify the installation location:
|
|
419
|
+
|
|
420
|
+
```bash
|
|
421
|
+
which tmux
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
Expected output:
|
|
425
|
+
|
|
426
|
+
```
|
|
427
|
+
/usr/bin/tmux
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
#### Troubleshooting
|
|
431
|
+
|
|
432
|
+
**Problem**: `No match for argument: tmux`
|
|
433
|
+
|
|
434
|
+
**Solution**: Update the package cache and retry:
|
|
435
|
+
|
|
436
|
+
```bash
|
|
437
|
+
# For AL2023
|
|
438
|
+
sudo dnf makecache
|
|
439
|
+
sudo dnf install -y tmux
|
|
440
|
+
|
|
441
|
+
# For AL2
|
|
442
|
+
sudo yum makecache
|
|
443
|
+
sudo yum install -y tmux
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
**Problem**: tmux version is older than expected
|
|
447
|
+
|
|
448
|
+
**Solution**: Amazon's repositories prioritize stability over bleeding-edge versions. If you need the latest version, build from source:
|
|
449
|
+
|
|
450
|
+
```bash
|
|
451
|
+
# Install dependencies
|
|
452
|
+
sudo dnf install -y git automake gcc make libevent-devel ncurses-devel bison pkg-config
|
|
453
|
+
|
|
454
|
+
# Build tmux
|
|
455
|
+
git clone https://github.com/tmux/tmux.git
|
|
456
|
+
cd tmux
|
|
457
|
+
sh autogen.sh
|
|
458
|
+
./configure && make
|
|
459
|
+
sudo make install
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
For Amazon Linux 2, replace `dnf` with `yum` in the dependency installation command.
|
|
463
|
+
|
|
464
|
+
**Problem**: `Cannot find a valid baseurl for repo`
|
|
465
|
+
|
|
466
|
+
**Solution**: Network or repository configuration issue. Check connectivity:
|
|
467
|
+
|
|
468
|
+
```bash
|
|
469
|
+
# For AL2023
|
|
470
|
+
sudo dnf check-update
|
|
471
|
+
|
|
472
|
+
# For AL2
|
|
473
|
+
sudo yum check-update
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
**Problem**: Permission denied errors
|
|
477
|
+
|
|
478
|
+
**Solution**: Ensure you are using sudo:
|
|
479
|
+
|
|
480
|
+
```bash
|
|
481
|
+
sudo dnf install -y tmux
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
---
|
|
485
|
+
|
|
486
|
+
### Windows (WSL Recommended)
|
|
487
|
+
|
|
488
|
+
#### Prerequisites
|
|
489
|
+
|
|
490
|
+
- Windows 10 version 2004 or higher (Build 19041+), or Windows 11
|
|
491
|
+
- Administrator access to install WSL
|
|
492
|
+
- WSL 2 with Ubuntu distribution
|
|
493
|
+
|
|
494
|
+
**Important**: tmux is a Unix-native application and does not run natively on Windows. The recommended approach is to use Windows Subsystem for Linux (WSL), which provides a full Linux environment where tmux runs properly.
|
|
495
|
+
|
|
496
|
+
Native Windows alternatives like Cygwin or MSYS2 can run tmux, but WSL provides better integration and performance.
|
|
497
|
+
|
|
498
|
+
#### Installation Steps
|
|
499
|
+
|
|
500
|
+
**Step 1: Install WSL with Ubuntu**
|
|
501
|
+
|
|
502
|
+
Open PowerShell as Administrator and run:
|
|
503
|
+
|
|
504
|
+
```powershell
|
|
505
|
+
wsl --install
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
This command installs WSL 2 with Ubuntu as the default distribution. Restart your computer when prompted.
|
|
509
|
+
|
|
510
|
+
**Step 2: Set up Ubuntu**
|
|
511
|
+
|
|
512
|
+
After restart, Ubuntu will launch automatically. Complete the initial setup by creating a username and password.
|
|
513
|
+
|
|
514
|
+
**Step 3: Install tmux in WSL Ubuntu**
|
|
515
|
+
|
|
516
|
+
Open Ubuntu (from Start Menu or Windows Terminal) and run:
|
|
517
|
+
|
|
518
|
+
```bash
|
|
519
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
520
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tmux
|
|
521
|
+
```
|
|
522
|
+
|
|
523
|
+
#### Verification
|
|
524
|
+
|
|
525
|
+
Confirm the installation succeeded within WSL:
|
|
526
|
+
|
|
527
|
+
```bash
|
|
528
|
+
tmux -V
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
Expected output (version numbers may vary):
|
|
532
|
+
|
|
533
|
+
```
|
|
534
|
+
tmux 3.4
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
Start a tmux session to verify it works:
|
|
538
|
+
|
|
539
|
+
```bash
|
|
540
|
+
tmux new-session -s test
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
Press `Ctrl+b` then `d` to detach from the session.
|
|
544
|
+
|
|
545
|
+
#### Troubleshooting
|
|
546
|
+
|
|
547
|
+
**Problem**: `wsl --install` fails or WSL not available
|
|
548
|
+
|
|
549
|
+
**Solution**: Enable WSL manually:
|
|
550
|
+
|
|
551
|
+
```powershell
|
|
552
|
+
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
|
|
553
|
+
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
Restart your computer, then set WSL 2 as default:
|
|
557
|
+
|
|
558
|
+
```powershell
|
|
559
|
+
wsl --set-default-version 2
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
**Problem**: Ubuntu not installed with WSL
|
|
563
|
+
|
|
564
|
+
**Solution**: Install Ubuntu manually:
|
|
565
|
+
|
|
566
|
+
```powershell
|
|
567
|
+
wsl --install -d Ubuntu
|
|
568
|
+
```
|
|
569
|
+
|
|
570
|
+
**Problem**: tmux sessions not persisting after closing Windows Terminal
|
|
571
|
+
|
|
572
|
+
**Solution**: tmux sessions run inside WSL, which may shut down when no terminals are open. Keep WSL running in the background, or reattach to existing sessions:
|
|
573
|
+
|
|
574
|
+
```bash
|
|
575
|
+
tmux attach-session -t test
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
**Problem**: Display issues or terminal not rendering correctly
|
|
579
|
+
|
|
580
|
+
**Solution**: Windows Terminal provides the best tmux experience. Install it from the Microsoft Store or via winget:
|
|
581
|
+
|
|
582
|
+
```powershell
|
|
583
|
+
winget install --id Microsoft.WindowsTerminal --silent --accept-package-agreements --accept-source-agreements
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
---
|
|
587
|
+
|
|
588
|
+
### WSL (Ubuntu)
|
|
589
|
+
|
|
590
|
+
#### Prerequisites
|
|
591
|
+
|
|
592
|
+
- Windows 10 version 2004 or higher, or Windows 11
|
|
593
|
+
- WSL 2 enabled with Ubuntu distribution installed
|
|
594
|
+
- sudo privileges within WSL
|
|
595
|
+
|
|
596
|
+
WSL runs Ubuntu (or another Linux distribution) within Windows. tmux must be installed within WSL, as it does not share binaries with Windows.
|
|
597
|
+
|
|
598
|
+
#### Installation Steps
|
|
599
|
+
|
|
600
|
+
Open your WSL Ubuntu terminal and run:
|
|
601
|
+
|
|
602
|
+
```bash
|
|
603
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
604
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tmux
|
|
605
|
+
```
|
|
606
|
+
|
|
607
|
+
The `DEBIAN_FRONTEND=noninteractive` environment variable ensures no interactive prompts appear during installation.
|
|
608
|
+
|
|
609
|
+
#### Verification
|
|
610
|
+
|
|
611
|
+
Confirm the installation succeeded:
|
|
612
|
+
|
|
613
|
+
```bash
|
|
614
|
+
tmux -V
|
|
615
|
+
```
|
|
616
|
+
|
|
617
|
+
Expected output (version numbers may vary):
|
|
618
|
+
|
|
619
|
+
```
|
|
620
|
+
tmux 3.4
|
|
621
|
+
```
|
|
622
|
+
|
|
623
|
+
Verify the installation location:
|
|
624
|
+
|
|
625
|
+
```bash
|
|
626
|
+
which tmux
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
Expected output:
|
|
630
|
+
|
|
631
|
+
```
|
|
632
|
+
/usr/bin/tmux
|
|
633
|
+
```
|
|
634
|
+
|
|
635
|
+
Test tmux by creating a new session:
|
|
636
|
+
|
|
637
|
+
```bash
|
|
638
|
+
tmux new-session -s test
|
|
639
|
+
```
|
|
640
|
+
|
|
641
|
+
#### Troubleshooting
|
|
642
|
+
|
|
643
|
+
**Problem**: `Cannot connect to server` error when running tmux
|
|
644
|
+
|
|
645
|
+
**Solution**: The tmux server may not be running. This can happen if the `/tmp` directory has permission issues. Check permissions:
|
|
646
|
+
|
|
647
|
+
```bash
|
|
648
|
+
ls -la /tmp
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
If needed, fix permissions:
|
|
652
|
+
|
|
653
|
+
```bash
|
|
654
|
+
sudo chmod 1777 /tmp
|
|
655
|
+
```
|
|
656
|
+
|
|
657
|
+
**Problem**: tmux not persisting between WSL sessions
|
|
658
|
+
|
|
659
|
+
**Solution**: WSL may terminate background processes when all terminals are closed. Enable systemd in WSL to keep services running:
|
|
660
|
+
|
|
661
|
+
```bash
|
|
662
|
+
echo -e "[boot]\nsystemd=true" | sudo tee /etc/wsl.conf
|
|
663
|
+
```
|
|
664
|
+
|
|
665
|
+
Then restart WSL from PowerShell:
|
|
666
|
+
|
|
667
|
+
```powershell
|
|
668
|
+
wsl --shutdown
|
|
669
|
+
```
|
|
670
|
+
|
|
671
|
+
**Problem**: Copy/paste not working in tmux
|
|
672
|
+
|
|
673
|
+
**Solution**: Enable mouse mode and configure clipboard integration. Add to your `~/.tmux.conf`:
|
|
674
|
+
|
|
675
|
+
```bash
|
|
676
|
+
set -g mouse on
|
|
677
|
+
set -g set-clipboard on
|
|
678
|
+
```
|
|
679
|
+
|
|
680
|
+
**Problem**: Colors not displaying correctly
|
|
681
|
+
|
|
682
|
+
**Solution**: Ensure your terminal supports 256 colors. Add to your `~/.bashrc`:
|
|
683
|
+
|
|
684
|
+
```bash
|
|
685
|
+
export TERM=xterm-256color
|
|
686
|
+
```
|
|
687
|
+
|
|
688
|
+
Then reload:
|
|
689
|
+
|
|
690
|
+
```bash
|
|
691
|
+
source ~/.bashrc
|
|
692
|
+
```
|
|
693
|
+
|
|
694
|
+
---
|
|
695
|
+
|
|
696
|
+
### Git Bash (MSYS2 Method)
|
|
697
|
+
|
|
698
|
+
#### Prerequisites
|
|
699
|
+
|
|
700
|
+
- Windows 10 or Windows 11 (64-bit)
|
|
701
|
+
- Git for Windows installed (provides Git Bash)
|
|
702
|
+
- MSYS2 installed for obtaining tmux binaries
|
|
703
|
+
- Administrator access
|
|
704
|
+
|
|
705
|
+
**Important**: Git Bash is a minimal MSYS2 environment bundled with Git for Windows. It does not include tmux by default, but you can add tmux by copying binaries from a full MSYS2 installation. tmux only works with the MinTTY terminal (git-bash.exe), not with cmd.exe or PowerShell-based Git prompts.
|
|
706
|
+
|
|
707
|
+
#### Installation Steps
|
|
708
|
+
|
|
709
|
+
**Step 1: Install MSYS2**
|
|
710
|
+
|
|
711
|
+
Download and install MSYS2 from https://www.msys2.org/. Run the installer and complete the setup.
|
|
712
|
+
|
|
713
|
+
**Step 2: Install tmux in MSYS2**
|
|
714
|
+
|
|
715
|
+
Open the MSYS2 MSYS terminal and run:
|
|
716
|
+
|
|
717
|
+
```bash
|
|
718
|
+
pacman -Sy --noconfirm tmux
|
|
719
|
+
```
|
|
720
|
+
|
|
721
|
+
The `--noconfirm` flag enables non-interactive installation without prompts.
|
|
722
|
+
|
|
723
|
+
**Step 3: Copy tmux binaries to Git Bash**
|
|
724
|
+
|
|
725
|
+
Copy the tmux executable and required DLLs from MSYS2 to Git for Windows:
|
|
726
|
+
|
|
727
|
+
```bash
|
|
728
|
+
# Run these commands in MSYS2 terminal
|
|
729
|
+
cp /usr/bin/tmux.exe "/c/Program Files/Git/usr/bin/"
|
|
730
|
+
cp /usr/bin/msys-event*.dll "/c/Program Files/Git/usr/bin/"
|
|
731
|
+
```
|
|
732
|
+
|
|
733
|
+
Note: If your Git installation is in a different location, adjust the path accordingly.
|
|
734
|
+
|
|
735
|
+
**Step 4: Verify the copy**
|
|
736
|
+
|
|
737
|
+
Close and reopen Git Bash, then run:
|
|
738
|
+
|
|
739
|
+
```bash
|
|
740
|
+
tmux -V
|
|
741
|
+
```
|
|
742
|
+
|
|
743
|
+
#### Verification
|
|
744
|
+
|
|
745
|
+
Confirm tmux is accessible in Git Bash:
|
|
746
|
+
|
|
747
|
+
```bash
|
|
748
|
+
tmux -V
|
|
749
|
+
```
|
|
750
|
+
|
|
751
|
+
Expected output (version numbers may vary):
|
|
752
|
+
|
|
753
|
+
```
|
|
754
|
+
tmux 3.6a
|
|
755
|
+
```
|
|
756
|
+
|
|
757
|
+
Start a tmux session to verify it works:
|
|
758
|
+
|
|
759
|
+
```bash
|
|
760
|
+
tmux new-session -s test
|
|
761
|
+
```
|
|
762
|
+
|
|
763
|
+
#### Troubleshooting
|
|
764
|
+
|
|
765
|
+
**Problem**: `open terminal failed: not a terminal` error
|
|
766
|
+
|
|
767
|
+
**Solution**: tmux requires the MinTTY terminal. Launch Git Bash using `git-bash.exe` (the MinTTY-based terminal), not `bash.exe` or Git from cmd/PowerShell. Look for "Git Bash" in the Start Menu.
|
|
768
|
+
|
|
769
|
+
**Problem**: `tmux.exe - System Error: The code execution cannot proceed because msys-event-2-1-7.dll was not found`
|
|
770
|
+
|
|
771
|
+
**Solution**: Copy the missing DLL files from MSYS2. The exact DLL names may vary by version:
|
|
772
|
+
|
|
773
|
+
```bash
|
|
774
|
+
# In MSYS2 terminal, list event DLLs
|
|
775
|
+
ls /usr/bin/msys-event*.dll
|
|
776
|
+
|
|
777
|
+
# Copy all event DLLs
|
|
778
|
+
cp /usr/bin/msys-event*.dll "/c/Program Files/Git/usr/bin/"
|
|
779
|
+
```
|
|
780
|
+
|
|
781
|
+
**Problem**: `tmux: command not found` after copying files
|
|
782
|
+
|
|
783
|
+
**Solution**: Ensure you copied to the correct directory and restart Git Bash:
|
|
784
|
+
|
|
785
|
+
```bash
|
|
786
|
+
# Verify tmux exists
|
|
787
|
+
ls "/c/Program Files/Git/usr/bin/tmux.exe"
|
|
788
|
+
```
|
|
789
|
+
|
|
790
|
+
If the file exists, close all Git Bash windows and reopen.
|
|
791
|
+
|
|
792
|
+
**Problem**: tmux works but displays incorrectly
|
|
793
|
+
|
|
794
|
+
**Solution**: Set the TERM variable in your `~/.bashrc`:
|
|
795
|
+
|
|
796
|
+
```bash
|
|
797
|
+
echo 'export TERM=xterm-256color' >> ~/.bashrc
|
|
798
|
+
source ~/.bashrc
|
|
799
|
+
```
|
|
800
|
+
|
|
801
|
+
**Problem**: Copy/paste not working
|
|
802
|
+
|
|
803
|
+
**Solution**: MinTTY handles copy/paste differently. Use `Ctrl+Insert` to copy and `Shift+Insert` to paste, or enable mouse support in tmux:
|
|
804
|
+
|
|
805
|
+
```bash
|
|
806
|
+
echo 'set -g mouse on' >> ~/.tmux.conf
|
|
807
|
+
```
|
|
808
|
+
|
|
809
|
+
---
|
|
810
|
+
|
|
811
|
+
## Post-Installation Configuration
|
|
812
|
+
|
|
813
|
+
After installing tmux on any platform, consider these configurations to enhance your workflow.
|
|
814
|
+
|
|
815
|
+
### Create a Configuration File
|
|
816
|
+
|
|
817
|
+
tmux reads configuration from `~/.tmux.conf`. Create this file to customize tmux behavior:
|
|
818
|
+
|
|
819
|
+
```bash
|
|
820
|
+
touch ~/.tmux.conf
|
|
821
|
+
```
|
|
822
|
+
|
|
823
|
+
### Common Configuration Options
|
|
824
|
+
|
|
825
|
+
Add these settings to `~/.tmux.conf` for a better experience:
|
|
826
|
+
|
|
827
|
+
```bash
|
|
828
|
+
# Enable mouse support
|
|
829
|
+
set -g mouse on
|
|
830
|
+
|
|
831
|
+
# Set prefix key to Ctrl+a (more ergonomic than default Ctrl+b)
|
|
832
|
+
unbind C-b
|
|
833
|
+
set -g prefix C-a
|
|
834
|
+
bind C-a send-prefix
|
|
835
|
+
|
|
836
|
+
# Start window numbering at 1 (easier to reach)
|
|
837
|
+
set -g base-index 1
|
|
838
|
+
setw -g pane-base-index 1
|
|
839
|
+
|
|
840
|
+
# Enable 256 color support
|
|
841
|
+
set -g default-terminal "screen-256color"
|
|
842
|
+
|
|
843
|
+
# Increase scrollback buffer size
|
|
844
|
+
set -g history-limit 10000
|
|
845
|
+
|
|
846
|
+
# Reduce escape time for faster command sequences
|
|
847
|
+
set -sg escape-time 10
|
|
848
|
+
|
|
849
|
+
# Enable focus events for terminals that support it
|
|
850
|
+
set -g focus-events on
|
|
851
|
+
|
|
852
|
+
# Reload configuration with prefix + r
|
|
853
|
+
bind r source-file ~/.tmux.conf \; display-message "Config reloaded"
|
|
854
|
+
```
|
|
855
|
+
|
|
856
|
+
### Reload Configuration
|
|
857
|
+
|
|
858
|
+
After editing `~/.tmux.conf`, reload without restarting tmux:
|
|
859
|
+
|
|
860
|
+
```bash
|
|
861
|
+
tmux source-file ~/.tmux.conf
|
|
862
|
+
```
|
|
863
|
+
|
|
864
|
+
Or, if you added the keybinding above, press `prefix + r`.
|
|
865
|
+
|
|
866
|
+
### Basic tmux Commands
|
|
867
|
+
|
|
868
|
+
Start a new session:
|
|
869
|
+
|
|
870
|
+
```bash
|
|
871
|
+
tmux new-session -s mysession
|
|
872
|
+
```
|
|
873
|
+
|
|
874
|
+
List sessions:
|
|
875
|
+
|
|
876
|
+
```bash
|
|
877
|
+
tmux list-sessions
|
|
878
|
+
```
|
|
879
|
+
|
|
880
|
+
Attach to an existing session:
|
|
881
|
+
|
|
882
|
+
```bash
|
|
883
|
+
tmux attach-session -t mysession
|
|
884
|
+
```
|
|
885
|
+
|
|
886
|
+
Detach from a session (from within tmux):
|
|
887
|
+
|
|
888
|
+
Press `Ctrl+b` then `d`
|
|
889
|
+
|
|
890
|
+
Kill a session:
|
|
891
|
+
|
|
892
|
+
```bash
|
|
893
|
+
tmux kill-session -t mysession
|
|
894
|
+
```
|
|
895
|
+
|
|
896
|
+
---
|
|
897
|
+
|
|
898
|
+
## Common Issues
|
|
899
|
+
|
|
900
|
+
### Issue: "no server running on /tmp/tmux-1000/default"
|
|
901
|
+
|
|
902
|
+
**Symptoms**: tmux commands fail with "no server running" error
|
|
903
|
+
|
|
904
|
+
**Solutions**:
|
|
905
|
+
|
|
906
|
+
- Start a new tmux session:
|
|
907
|
+
|
|
908
|
+
```bash
|
|
909
|
+
tmux new-session
|
|
910
|
+
```
|
|
911
|
+
|
|
912
|
+
- Check if the tmux socket directory exists and has correct permissions:
|
|
913
|
+
|
|
914
|
+
```bash
|
|
915
|
+
ls -la /tmp/tmux-$(id -u)
|
|
916
|
+
```
|
|
917
|
+
|
|
918
|
+
- If permissions are wrong, fix them:
|
|
919
|
+
|
|
920
|
+
```bash
|
|
921
|
+
chmod 700 /tmp/tmux-$(id -u)
|
|
922
|
+
```
|
|
923
|
+
|
|
924
|
+
### Issue: "terminal not suitable" or "open terminal failed"
|
|
925
|
+
|
|
926
|
+
**Symptoms**: tmux refuses to start with terminal-related errors
|
|
927
|
+
|
|
928
|
+
**Solutions**:
|
|
929
|
+
|
|
930
|
+
- Ensure you are running tmux from a proper terminal emulator, not from a script or non-interactive shell
|
|
931
|
+
|
|
932
|
+
- Set the TERM variable:
|
|
933
|
+
|
|
934
|
+
```bash
|
|
935
|
+
export TERM=xterm-256color
|
|
936
|
+
tmux
|
|
937
|
+
```
|
|
938
|
+
|
|
939
|
+
- On Windows Git Bash, use MinTTY (git-bash.exe), not cmd.exe or PowerShell
|
|
940
|
+
|
|
941
|
+
### Issue: Colors not displaying correctly
|
|
942
|
+
|
|
943
|
+
**Symptoms**: tmux shows wrong colors or no colors
|
|
944
|
+
|
|
945
|
+
**Solutions**:
|
|
946
|
+
|
|
947
|
+
- Set 256-color terminal in your shell profile:
|
|
948
|
+
|
|
949
|
+
```bash
|
|
950
|
+
export TERM=xterm-256color
|
|
951
|
+
```
|
|
952
|
+
|
|
953
|
+
- Add to `~/.tmux.conf`:
|
|
954
|
+
|
|
955
|
+
```bash
|
|
956
|
+
set -g default-terminal "screen-256color"
|
|
957
|
+
```
|
|
958
|
+
|
|
959
|
+
### Issue: tmux session lost after SSH disconnect
|
|
960
|
+
|
|
961
|
+
**Symptoms**: Cannot reattach to tmux sessions after network interruption
|
|
962
|
+
|
|
963
|
+
**Solutions**:
|
|
964
|
+
|
|
965
|
+
- Ensure you detached properly before disconnecting. If the connection was interrupted, the session should still exist
|
|
966
|
+
|
|
967
|
+
- List existing sessions:
|
|
968
|
+
|
|
969
|
+
```bash
|
|
970
|
+
tmux list-sessions
|
|
971
|
+
```
|
|
972
|
+
|
|
973
|
+
- Reattach to the session:
|
|
974
|
+
|
|
975
|
+
```bash
|
|
976
|
+
tmux attach-session -t 0
|
|
977
|
+
```
|
|
978
|
+
|
|
979
|
+
- If sessions appear stale, kill and recreate:
|
|
980
|
+
|
|
981
|
+
```bash
|
|
982
|
+
tmux kill-server
|
|
983
|
+
tmux new-session
|
|
984
|
+
```
|
|
985
|
+
|
|
986
|
+
### Issue: Keys not working correctly (especially on macOS)
|
|
987
|
+
|
|
988
|
+
**Symptoms**: Function keys, Home, End, or other special keys not working
|
|
989
|
+
|
|
990
|
+
**Solutions**:
|
|
991
|
+
|
|
992
|
+
- Add to `~/.tmux.conf`:
|
|
993
|
+
|
|
994
|
+
```bash
|
|
995
|
+
set-window-option -g xterm-keys on
|
|
996
|
+
```
|
|
997
|
+
|
|
998
|
+
- For macOS Terminal.app, enable "Use Option as Meta key" in Terminal preferences
|
|
999
|
+
|
|
1000
|
+
### Issue: "sessions should be nested with care" warning
|
|
1001
|
+
|
|
1002
|
+
**Symptoms**: Warning appears when starting tmux inside an existing tmux session
|
|
1003
|
+
|
|
1004
|
+
**Solutions**:
|
|
1005
|
+
|
|
1006
|
+
- This is a safety warning to prevent accidental nesting. If you intentionally want nested sessions, use:
|
|
1007
|
+
|
|
1008
|
+
```bash
|
|
1009
|
+
tmux new-session -t mysession
|
|
1010
|
+
```
|
|
1011
|
+
|
|
1012
|
+
- To disable the warning, unset the TMUX variable (not recommended for beginners):
|
|
1013
|
+
|
|
1014
|
+
```bash
|
|
1015
|
+
unset TMUX
|
|
1016
|
+
tmux
|
|
1017
|
+
```
|
|
1018
|
+
|
|
1019
|
+
---
|
|
1020
|
+
|
|
1021
|
+
## References
|
|
1022
|
+
|
|
1023
|
+
- [tmux Official GitHub Repository](https://github.com/tmux/tmux)
|
|
1024
|
+
- [tmux Official Wiki](https://github.com/tmux/tmux/wiki)
|
|
1025
|
+
- [tmux Installation Guide](https://github.com/tmux/tmux/wiki/Installing)
|
|
1026
|
+
- [tmux Manual Page](https://man7.org/linux/man-pages/man1/tmux.1.html)
|
|
1027
|
+
- [Homebrew tmux Formula](https://formulae.brew.sh/formula/tmux)
|
|
1028
|
+
- [MSYS2 tmux Package](https://packages.msys2.org/packages/tmux)
|
|
1029
|
+
- [Ubuntu tmux Package](https://packages.ubuntu.com/search?keywords=tmux)
|
|
1030
|
+
- [Microsoft WSL Documentation](https://learn.microsoft.com/en-us/windows/wsl/)
|