psmux 설치로 윈도우 tmux 대치
This commit is contained in:
1 parent
ea6f515e19
commit
f0e448139a
2 files changed
+19
-9
No files matched your search
@@ -7,7 +7,7 @@
|
|||||||
## 📂 카테고리별 지원 도구 목록
|
## 📂 카테고리별 지원 도구 목록
|
||||||
|
|
||||||
### 📁 1. 터미널 관리 & 파일 유틸리티
|
### 📁 1. 터미널 관리 & 파일 유틸리티
|
||||||
* **[tmux](https://github.com/tmux/tmux)** - 강력한 터미널 멀티플렉서 (세션 관리 및 화면 분할)
|
* **[tmux](https://github.com/tmux/tmux)** - 강력한 터미널 멀티플렉서 (세션 관리 및 화면 분할, Windows는 psmux로 설치)
|
||||||
* **[superfile](https://github.com/yorukot/superfile)** - 모던하고 수려한 터미널 기반 파일 관리자 (Vim 키바인딩 지원)
|
* **[superfile](https://github.com/yorukot/superfile)** - 모던하고 수려한 터미널 기반 파일 관리자 (Vim 키바인딩 지원)
|
||||||
* **[dua](https://github.com/byron/dua-cli)** - 병렬 스캔을 지원하는 초고속 디스크 사용량 분석 도구
|
* **[dua](https://github.com/byron/dua-cli)** - 병렬 스캔을 지원하는 초고속 디스크 사용량 분석 도구
|
||||||
|
|
||||||
@@ -105,11 +105,12 @@
|
|||||||
|
|
||||||
#### 📁 1. 터미널 관리 & 파일 유틸리티
|
#### 📁 1. 터미널 관리 & 파일 유틸리티
|
||||||
|
|
||||||
* **tmux:**
|
* **tmux (Windows는 psmux 설치):**
|
||||||
```powershell
|
```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"
|
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 OpenSSH Server 참고:** 스크립트 가동 시 OpenSSH Server(sshd)가 미설치된 상태라면 자동으로 감지 및 백그라운드 설치 후 기동합니다. (관리자 권한이 필요할 수 있습니다.)
|
||||||
|
> 💡 **Windows tmux(psmux) 참고:** Windows 환경에서는 Rust 기반으로 빌드되어 성능이 뛰어난 네이티브 Windows 터미널 멀티플렉서인 `psmux`가 설치됩니다.
|
||||||
|
|
||||||
* **superfile:**
|
* **superfile:**
|
||||||
```powershell
|
```powershell
|
||||||
@@ -205,6 +206,7 @@ tmux ls # 가동 중인 세션 목록 보기
|
|||||||
|
|
||||||
> 💡 `install-tmux` 스크립트는 최적화된 커스텀 `.tmux.conf` 파일을 사용자 홈 디렉토리에 배포합니다. (기존 설정 파일이 있다면 `.tmux.conf.bak.*`로 자동 백업됩니다.)
|
> 💡 `install-tmux` 스크립트는 최적화된 커스텀 `.tmux.conf` 파일을 사용자 홈 디렉토리에 배포합니다. (기존 설정 파일이 있다면 `.tmux.conf.bak.*`로 자동 백업됩니다.)
|
||||||
> 💡 **Windows (PowerShell) 참고:** 윈도우 환경에서 실행할 경우, OpenSSH Server 서비스(`sshd`)가 작동하지 않거나 없을 시 Windows 선택적 기능(Optional Capability)을 통하여 무인 설치 및 구동까지 완전 자동 지원합니다.
|
> 💡 **Windows (PowerShell) 참고:** 윈도우 환경에서 실행할 경우, OpenSSH Server 서비스(`sshd`)가 작동하지 않거나 없을 시 Windows 선택적 기능(Optional Capability)을 통하여 무인 설치 및 구동까지 완전 자동 지원합니다.
|
||||||
|
> 💡 **Windows psmux 연동 참고:** Windows에서는 네이티브 가상 터미널 환경을 선사하는 `psmux`가 설치되며, 기존 `.tmux.conf` 파일과 높은 수준으로 호환되어 동일한 설정과 vim 키바인딩을 사용할 수 있습니다.
|
||||||
|
|
||||||
#### 1.2. superfile
|
#### 1.2. superfile
|
||||||
수려하고 미려한 디자인을 선사하는 고기능 터미널 파일 관리자입니다.
|
수려하고 미려한 디자인을 선사하는 고기능 터미널 파일 관리자입니다.
|
||||||
|
|||||||
+15
-7
@@ -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/"
|
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
|
winget install psmux --accept-package-agreements --accept-source-agreements 2>&1 | Out-Null
|
||||||
Success "tmux installed via winget"
|
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) {
|
if (-not $tmuxBin) {
|
||||||
$searchDirs = @(
|
$searchDirs = @(
|
||||||
(Join-Path $env:LOCALAPPDATA 'Microsoft\WinGet\Links'),
|
(Join-Path $env:LOCALAPPDATA 'Microsoft\WinGet\Links'),
|
||||||
|
(Join-Path $env:LOCALAPPDATA 'Programs\psmux'),
|
||||||
(Join-Path $env:LOCALAPPDATA 'Programs\tmux-windows'),
|
(Join-Path $env:LOCALAPPDATA 'Programs\tmux-windows'),
|
||||||
|
'C:\Program Files\psmux',
|
||||||
'C:\Program Files\tmux-windows',
|
'C:\Program Files\tmux-windows',
|
||||||
|
'C:\Program Files (x86)\psmux',
|
||||||
'C:\Program Files (x86)\tmux-windows'
|
'C:\Program Files (x86)\tmux-windows'
|
||||||
)
|
)
|
||||||
foreach ($dir in $searchDirs) {
|
foreach ($dir in $searchDirs) {
|
||||||
if (Test-Path $dir) {
|
if (Test-Path $dir) {
|
||||||
$candidate = Join-Path $dir 'tmux.exe'
|
foreach ($exe in @('tmux.exe', 'psmux.exe')) {
|
||||||
|
$candidate = Join-Path $dir $exe
|
||||||
if (Test-Path $candidate) { $tmuxBin = $candidate; break }
|
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'))) {
|
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
|
foreach ($filter in @('tmux.exe', 'psmux.exe')) {
|
||||||
if ($found) { $tmuxBin = $found.FullName }
|
$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 }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user