🪶 smug — 의존성 없는 미니멀 tmux 세션 매니저 (프리셋에 없는 레이아웃까지)
smug는 Go 단일 바이너리 tmux 세션 매니저다. 설치·기본 config부터, tmux 표준 프리셋에 없는 커스텀 레이아웃을 layout 문자열로 고정하는 법, smug가 하는 일과 안 하는 일(프로그래머블 제어는 tmuxp)까지 실전 정리.
smug는 Go 단일 바이너리 tmux 세션 매니저다. 설치·기본 config부터, tmux 표준 프리셋에 없는 커스텀 레이아웃을 layout 문자열로 고정하는 법, smug가 하는 일과 안 하는 일(프로그래머블 제어는 tmuxp)까지 실전 정리.
계정을 만들고(useradd) 고치고(usermod) 지우고(userdel), 그룹·sudo 권한을 붙이는 표준 흐름. /etc/passwd·shadow·group 파일이 실제로 무엇을 담는지, Debian과 RHEL의 adduser 차이까지.
터미널 화면이 반반으로 나뉘면 Ghostty split·tmux pane·tmux 세션 셋 중 하나. list-clients로 계층을 특정하고 그 계층 키로 닫는다.
AI 코딩 에이전트를 여러 개 굴릴 때 working/blocked/done을 자동 감지하는 법. 전용 멀티플렉서(herdr)와 훅 기반 tmux 플러그인을 비교하고, tmux에 익숙한 사람에게 왜 후자가 맞는지 정리.
tmux 플러그인엔 런타임도 SDK도 없다. TPM이 실행하는 .tmux 셸 스크립트가 tmux CLI를 호출하는 게 전부. 진입 스크립트 구조·설정형/상호작용형·hooks·배포까지.
여러 줄 vim.notify가 hit-enter 프롬프트를 띄우는 이유와 cmdheight로 없애는 방법.
심링크도 복사도 없이 홈 디렉터리 자체를 git 워크트리로 삼는 bare git 방식과, 그 위에 템플릿·암호화를 얹은 yadm. init --bare + config 알리아스 셋업, showUntrackedFiles·checkout 충돌 같은 함정, 심링크·chezmoi와의 위치까지.
터미널·git이 ~/Desktop 하위를 Operation not permitted로 거부하는 TCC 권한 리셋의 진단과 복구.
LC_ALL=C에서 grep이 한글 문자 범위를 바이트로 쪼개 오탐하는 이유와 코드포인트 비교 해법.
흩어진 설정을 git 한곳에 모으고(심링크), 설치까지 선언적으로(Brewfile) 만든 뒤, 머신마다 갈리는 값을 어떻게 처리하느냐(런타임 분기 vs chezmoi 렌더)에서 방식이 갈린다 — 이 블로그의 dotfiles 글을 그 순서로 큐레이션. init 파일 이해·direnv·SSH 분리·새 맥 셋업은 결이 다른 축이라 부록으로 분리.