psmux 설치로 윈도우 tmux 대치

This commit is contained in:
Jerry Chae committed 2026-05-27 16:04:12 +09:00
1 parent ea6f515e19
commit f0e448139a
2 files changed
+20 -10

No files matched your search

+4 -2
View File
@@ -7,7 +7,7 @@
## 📂 카테고리별 지원 도구 목록
### 📁 1. 터미널 관리 & 파일 유틸리티
* **[tmux](https://github.com/tmux/tmux)** - 강력한 터미널 멀티플렉서 (세션 관리 및 화면 분할)
* **[tmux](https://github.com/tmux/tmux)** - 강력한 터미널 멀티플렉서 (세션 관리 및 화면 분할, Windows는 psmux로 설치)
* **[superfile](https://github.com/yorukot/superfile)** - 모던하고 수려한 터미널 기반 파일 관리자 (Vim 키바인딩 지원)
* **[dua](https://github.com/byron/dua-cli)** - 병렬 스캔을 지원하는 초고속 디스크 사용량 분석 도구
@@ -105,11 +105,12 @@
#### 📁 1. 터미널 관리 & 파일 유틸리티
* **tmux:**
* **tmux (Windows는 psmux 설치):**
```powershell
powershell -ExecutionPolicy Bypass -c "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; $t=\"$env:TEMP\install-tmux.ps1\"; iwr -useb 'https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-tmux.ps1' -OutFile $t; & $t"
```
> 💡 **Windows OpenSSH Server 참고:** 스크립트 가동 시 OpenSSH Server(sshd)가 미설치된 상태라면 자동으로 감지 및 백그라운드 설치 후 기동합니다. (관리자 권한이 필요할 수 있습니다.)
> 💡 **Windows tmux(psmux) 참고:** Windows 환경에서는 Rust 기반으로 빌드되어 성능이 뛰어난 네이티브 Windows 터미널 멀티플렉서인 `psmux`가 설치됩니다.
* **superfile:**
```powershell
@@ -205,6 +206,7 @@ tmux ls # 가동 중인 세션 목록 보기
> 💡 `install-tmux` 스크립트는 최적화된 커스텀 `.tmux.conf` 파일을 사용자 홈 디렉토리에 배포합니다. (기존 설정 파일이 있다면 `.tmux.conf.bak.*`로 자동 백업됩니다.)
> 💡 **Windows (PowerShell) 참고:** 윈도우 환경에서 실행할 경우, OpenSSH Server 서비스(`sshd`)가 작동하지 않거나 없을 시 Windows 선택적 기능(Optional Capability)을 통하여 무인 설치 및 구동까지 완전 자동 지원합니다.
> 💡 **Windows psmux 연동 참고:** Windows에서는 네이티브 가상 터미널 환경을 선사하는 `psmux`가 설치되며, 기존 `.tmux.conf` 파일과 높은 수준으로 호환되어 동일한 설정과 vim 키바인딩을 사용할 수 있습니다.
#### 1.2. superfile
수려하고 미려한 디자인을 선사하는 고기능 터미널 파일 관리자입니다.
+16 -8
View File
@@ -93,8 +93,8 @@ if ($tmuxCmd) {
ErrExit "winget is required. Install it from the Microsoft Store or https://learn.microsoft.com/en-us/windows/package-manager/winget/"
}
winget install --id arndawg.tmux-windows --accept-package-agreements --accept-source-agreements 2>&1 | Out-Null
Success "tmux installed via winget"
winget install psmux --accept-package-agreements --accept-source-agreements 2>&1 | Out-Null
Success "tmux (psmux) installed via winget"
}
# ────────────────────────────────────────────
@@ -117,25 +117,33 @@ if (-not $tmuxBin) {
}
}
# 3) Search common locations where winget installs tmux-windows
# 3) Search common locations where winget installs tmux / psmux
if (-not $tmuxBin) {
$searchDirs = @(
(Join-Path $env:LOCALAPPDATA 'Microsoft\WinGet\Links'),
(Join-Path $env:LOCALAPPDATA 'Programs\psmux'),
(Join-Path $env:LOCALAPPDATA 'Programs\tmux-windows'),
'C:\Program Files\psmux',
'C:\Program Files\tmux-windows',
'C:\Program Files (x86)\psmux',
'C:\Program Files (x86)\tmux-windows'
)
foreach ($dir in $searchDirs) {
if (Test-Path $dir) {
$candidate = Join-Path $dir 'tmux.exe'
if (Test-Path $candidate) { $tmuxBin = $candidate; break }
foreach ($exe in @('tmux.exe', 'psmux.exe')) {
$candidate = Join-Path $dir $exe
if (Test-Path $candidate) { $tmuxBin = $candidate; break }
}
}
if ($tmuxBin) { break }
}
# Recurse under WinGet/Packages for tmux
# Recurse under WinGet/Packages for tmux or psmux
if (-not $tmuxBin -and (Test-Path (Join-Path $env:LOCALAPPDATA 'Microsoft\WinGet\Packages'))) {
$found = Get-ChildItem -Path (Join-Path $env:LOCALAPPDATA 'Microsoft\WinGet\Packages') -Recurse -Filter 'tmux.exe' -ErrorAction SilentlyContinue | Select-Object -First 1
if ($found) { $tmuxBin = $found.FullName }
foreach ($filter in @('tmux.exe', 'psmux.exe')) {
$found = Get-ChildItem -Path (Join-Path $env:LOCALAPPDATA 'Microsoft\WinGet\Packages') -Recurse -Filter $filter -ErrorAction SilentlyContinue | Select-Object -First 1
if ($found) { $tmuxBin = $found.FullName; break }
}
}
}