tmux 창 전환 직후 pane 이동이 씹힐 때 — bind -r repeat-time의 함정
prefix+C-l로 창을 넘긴 직후 vim-tmux-navigator의 bare C-l로 pane을 옮기면 창이 또 넘어간다. 범인은 Oh My Tmux!가 창 이동에 건 -r(repeat) 플래그다. -r의 진짜 의미와, 세 가지 처방을 다 재본 뒤 왜 stock이 제일 나았는지.
prefix+C-l로 창을 넘긴 직후 vim-tmux-navigator의 bare C-l로 pane을 옮기면 창이 또 넘어간다. 범인은 Oh My Tmux!가 창 이동에 건 -r(repeat) 플래그다. -r의 진짜 의미와, 세 가지 처방을 다 재본 뒤 왜 stock이 제일 나았는지.
AeroSpace의 서비스 모드(alt-shift-;)에 어떤 기능이 있고, 왜 floating 토글·레이아웃 리셋·창 대량 닫기를 메인 키맵이 아닌 별도 모드에 뒀는지 설계 철학을 vim·i3 계보와 함께 정리한다. 바인딩이 병합이 아니라 대체라는 함정도 다룬다.
display notification으로 스크립트·CLI에서 데스크톱 배너를 띄우는 법과, 에러 없이 조용히 사라질 때의 원인인 알림 귀속(attribution)을 추적하는 법.
Oh My Tmux!의 tmux_conf_24b_colour=auto가 트루컬러를 감지하는 2단 방식(COLORTERM → tput colors 폴백), 켜질 때 주입하는 낡은 Tc pseudo-capability, 그런데 TERM이 tmux-256color면 그 주입을 일부러 스킵하는 이유(정식 RGB terminfo가 이미 보장)까지 — '왜 트루컬러가 이미 잘 되지?'의 메커니즘을 한 장으로.
snacks.nvim 대시보드 헤더를 영역별로 다른 색으로 렌더링하는 방법(text 조각 배열 + 조각별 hl, 섹션 align 중앙정렬)과, 그 과정에서 부딪힌 '평면 ASCII 아트는 겹친 그림을 색으로 분리할 수 없다'는 근본 한계·우회법.
챗 창만 쓰다 사이드바를 보면 낯선 메뉴가 늘어서 있다. Projects·Artifacts·Customize·Code·Design, 그리고 Code 웹 안쪽의 Routines·Dispatch까지 — claude.ai 웹의 메뉴가 실제로 무엇을 하고 언제 무엇을 쓰면 되는지, 두 제품 표면으로 나눠 한 바퀴 돈다.
윈도우마다 갈라진 pane 두 개를 하나로 합치려다 merge 명령이 없다는 걸 발견한다. 그 부재는 버그가 아니라 설계다 — pane이 PTY에 물린 독립 프로세스이기 때문. join-pane·break-pane·swap-pane이라는 tmux의 동사가 왜 그렇게 생겼는지 정신 모델로 정리한다.
클로저·코루틴·제네릭·소유권처럼 언어에 속하지 않는 개념 11편을 하나로 묶은 학습 지도. 'C++이 발판, Go·Rust는 변주'라는 관점으로 네 축의 읽는 순서와 선행 관계를 정리한다.
값을 바꿀 수 있는가를 누가·어떻게 통제하는가. C++ const correctness를 발판으로, '기본이 가변이냐 불변이냐'와 '바인딩만 막느냐 값까지 막느냐' 두 축으로 Rust(불변 기본 + mut 옵트인)·Kotlin val·JS const·함수형 영속 자료구조를 비교한다. Kotlin val 리스트 내용이 왜 바뀌는지(바인딩 vs 값), Rust의 &T/&mut T 규칙이 데이터 레이스를 막는 지점까지 대응시킨다.
null 참조가 왜 '10억 달러 실수'인지에서 출발해, 없음(absence)을 다루는 세 모델 — 구분 없는 널(C++ 포인터·Java·Go), Option 타입(Rust·Swift), nullable 타입(Kotlin·TS·C#)을 '타입에 드러나는가'와 '언제 막히는가' 두 축으로 비교한다. C++ std::optional이 Rust Option과 같은 물건이면서 무엇이 다른지, Go의 'nil인데 nil이 아닌' 함정까지 대응시킨다.