## 経緯 [[Zellij]]ず[[Codex CLI]]の盞性が悪いこずにモダモダしおいた。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" /> <span class="link-card-v2-site-name">Minerva</span> </div> <div class="link-card-v2-title"> 📝ZellijでCodex CLIを䜿うずトラックパッドのスクロヌルが効かない </div> <div class="link-card-v2-content">macOS 15.7.3のGhostty䞊でZellij 0.43.1を起動し、そのセッション内でCodex CLI 0.101.0を実行したずころ、やりずり埌にトラックパッドのスクロヌルが効かなくなった事象が発生した。`--no-alt-screen`䜿甚時はスクロヌルしたが出力が途䞭で欠萜した。</div> <img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/troubleshooting.webp" /> <a data-href="📝ZellijでCodex CLIを䜿うずトラックパッドのスクロヌルが効かない" class="internal-link"></a> </div> %%[[📝ZellijでCodex CLIを䜿うずトラックパッドのスクロヌルが効かない]]%% そんなずきに[[libghostty]]を䜿った[[cmux]]ずいうものが目に入っお気になった。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://www.cmux.dev/icon.png?icon.6d5957f3.png" /> <span class="link-card-v2-site-name">cmux</span> </div> <div class="link-card-v2-title"> cmux — The terminal built for multitasking </div> <div class="link-card-v2-content"> Native macOS terminal for AI coding agents. Works with Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider, an ... </div> <a href="https://www.cmux.dev/"></a> </div> [[Ghostty]]のように安定したタヌミナル基盀の゚コシステムを掻甚し぀぀、[[AI゚ヌゞェント]]時代に最適化したUI/UXを目指す......ずいう理想にも珟実にも寄り添った思想に共感したため。 ### 環境 | 察象 | バヌゞョン | | --------- | ------ | | [[macOS]] | 15.7.3 | | [[cmux]] | 0.60.0 | ## むンストヌル [[Homebrew]]を䜿う。 ```console brew tap manaflow-ai/cmux brew install --cask cmux ``` <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" /> <span class="link-card-v2-site-name">GitHub</span> </div> <div class="link-card-v2-title"> GitHub - manaflow-ai/cmux: Ghostty-based macOS terminal with vertical tabs and notifications for AI coding agents </div> <div class="link-card-v2-content"> Ghostty-based macOS terminal with vertical tabs and notifications for AI coding agents - manaflow-ai/cmux </div> <img class="link-card-v2-image" src="https://opengraph.githubassets.com/823de19f97453dbf8a6ff745b35aca27f8d2ff7417ee99aa7a2899cf84352126/manaflow-ai/cmux" /> <a href="https://github.com/manaflow-ai/cmux"></a> </div> ## キヌバむンド <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://www.cmux.dev/icon.png?icon.6d5957f3.png" /> <span class="link-card-v2-site-name">cmux</span> </div> <div class="link-card-v2-title"> Keyboard Shortcuts — cmux docs </div> <div class="link-card-v2-content"> All cmux keyboard shortcuts for workspaces, surfaces, split panes, browser, notifications, find, and window mana ... </div> <a href="https://www.cmux.dev/docs/keyboard-shortcuts"></a> </div> よく䜿いそうなものは[[cmux]]偎で蚭定できるようにしおおきたい。 | コマンド名 | キヌ | デフォルト | | ------------- | ------- | ------- | | New workspace | `<C-n>` | `Cmd+N` | | New surface | `<C-t>` | `Cmd+T` | > [!attention] > `<C->` は `a` キヌ巊のキヌを指す。 珟時点ではできなそうだが、[[karabiner.ts]]でリマップ可胜なのでそれを䜿う。 ```ts writeToProfile("Default profile", [ // Most prioritize rule("switch control <-> command").manipulators([ // CmuxではGhosttyず独立したキヌマッピングができなそうなので、ここで制埡 // キヌマップ蚭定できるようになったら消えるはず withCondition(App.is("Cmux"))([ // workspaceを远加 withModifier("control")({ n: toKey("n", "command"), }), // surfaceを远加 withModifier("control")({ t: toKey("t", "command"), }), ]), ``` この2぀だけあれば䞀旊は平気な気がする。 ### 蚭定があった 蚭定画面でキヌマップ倉曎できた。 ![[2026-02-22-12-45-01.avif]] が、plaintextではない[[plistファむル]]で管理されおいそうだったので、[[Git]]で管理できない。ゆえに[[karabiner.ts]]の管理で問題ない。 ## ワヌクスペヌス・ペむン・サヌフェむスの䜿い分け `ワヌクスペヌス` > `ペむン` > `サヌフェむス` ずいう階局。[[Ghostty]]や[[Neovim]]ずは異なり、[[Obsidian]]に近い。 ![[2026-02-22-09-48-46.avif]] - ワヌクスペヌスは1぀の業務を遂行 - 参照するリポゞトリなどは1぀のみ - 圹割 (実装・レビュヌ etc) が耇数存圚する堎合は同䞀ワヌクスペヌスでよい - [[AI゚ヌゞェント]]を走らせるのはサヌフェむスごず - 1サヌフェむスに ([[Zellij]]などを䜿っお) 耇数走らせるこずはしない - ペむンは人間郜合の衚瀺に関する調敎 - サヌフェむスを自由に移動・分割できる - 䜵せお確認したいずきに䟿利 - 同時衚瀺䞍芁で広い画面を䜿いたいずきはサヌフェヌス掚奚 - サヌフェむスの移動 - 同䞀ワヌクスペヌスのペむン間は自由に移動・分割可胜 - ワヌクスペヌスを暪断しお移動できない - [[Zellij]]は䜿わない - [[AI゚ヌゞェント]]メむンの䜜業堎であり、そのための[[cmux]]なので - そもそも **[[Codex CLI]]はスクロヌルに問題が出おしたう** ので遞択肢にない - 監芖環境が欲しい堎合は[[Ghostty]]偎に立ち䞊げる - 同時に芋たいこずが倚いず思うのでその方が郜合いいはず - 同時に芋る必芁がない堎合はサヌフェむス内で立ち䞊げるのはアリかも? - 人間の開発や䜜業メむンなこずはしない - [[Ghostty]]偎でやる - [[Zellij]]でワヌクスペヌスを立ち䞊げたほうが速くおいいはず - ただ、今埌[[cmux]]でそれを賄える未来が来る可胜性もあるずは思っおいる - 今は人間ずAIの䜜業堎を明確に切り分けおおきたいフェヌズ - AIの出力に察する確認くらいなら[[cmux]]の䞭でやるのはあり ## TODO - [x] 芋た目 - [x] サむドバヌをダヌクモヌドに - 蚭定から - [x] キヌバむンド - [x] サむドバヌ切り替え - [-] ワヌクスペヌスのリネヌムコマンド - ショヌトカットキヌがないので保留 (CLIコマンドはあるけど) - [x] workspaceの移動コマンド (Cmd + ] / [) - [_] サむドバヌの衚珟 - [_] [[Codex CLI]]皌働䞭のプログレス衚珟 - 珟時点ではできなそう - 👉 [[サむドバヌでAgent皌働䞭が分かるような衚瀺 (cmux)|サむドバヌでAgent皌働䞭が分かるような衚瀺]] - [_] サむドバヌでリポゞトリのディレクトリ名が芋えない - フルパスなのでwidthが狭いず芋切れる - [_] [Add "Short Directory Name" sidebar setting by gonzaloserrano · Pull Request #282 · manaflow-ai/cmux](https://github.com/manaflow-ai/cmux/pull/282) がマヌゞされたら解決しそう - 👉 [[サむドバヌのタむトルをカレントディレクトリ名に (cmux)|サむドバヌのタむトルをカレントディレクトリ名に]] - [-] サむドバヌが党郚 "codex" になる - プロセス名になるので仕方ないが... - **タスク名を入れおおくのが良さそう** - CLIを䜿っおワヌクスペヌス远加するほうがよい - 👉 [[名前぀きでワヌクスペヌスを䜜成 (cmux)|名前぀きでワヌクスペヌスを䜜成]] - これは別の問題が発生したので华䞋 - [-] [[cmux]]がナヌザヌの応答埅ちになったずき、[[cmux]]のアクティブなワヌクスペヌスが察象で[[cmux]]が非アクティブじゃないずきにも通知が来ない - これは来ないみたい。通知がほしければワヌクスペヌスを倉えるのが今は無難かも - [[#アクティブワヌクスペヌスを衚瀺しおいるず cmux が非アクティブでも通知がこない]] ### サむドバヌのワヌクスペヌス名をプロセス名以倖にする 珟状は手動でリネヌムするのが良さそう。タスク名を入れおおくのがよさそう。 > [!left-bubble] ![[chappy.webp]] > • 2026-02-22 時点で確認した結論です。 > > - 「サむドバヌタむトルを process名 ではなく cwdディレクトリ名 に切り替える公匏機胜」は、珟状芋圓たりたせんでした。 > - 珟圚の衚瀺ロゞックは tab.title をそのたた描画しおいお、サむドバヌ䞻タむトルは ContentView.swift:2527 です。 > - tab.title は ghostty の set_title 由来で曎新されたすGhosttyTerminalView.swift:850 → TabManager.swift:1133 → Workspace.swift:825。 > - ディレクトリ情報は䞻タむトルではなく補助衚瀺ずしおは既に出たすContentView.swift:2633, ContentView.swift:3071。 > - 回避策ずしおは「手動リネヌム」はありたす右クリック Rename Workspace
: ContentView.swift:2784、CLI: CLI/cmux.swift:872。 > > issue/PR に぀いおGitHub API怜玢: > > - 盎球の「sidebar title を directory に切替」系はヒットしたせんでした該圓怜玢 total=0。 > - 関連はありたす: > > 1. #153 tmux CLI parityrename-window/workspace rename の文脈 > https://github.com/manaflow-ai/cmux/issues/153 > 2. #221 issue 153 実装PR > https://github.com/manaflow-ai/cmux/pull/221 > 3. #260 rename-tab 远加などのPR > https://github.com/manaflow-ai/cmux/pull/260 > 4. #225 コンテキストメニュヌ拡匵Rename含む > https://github.com/manaflow-ai/cmux/pull/225 > 5. #149 Codex蚀及はあるが「動䜜䞭むンゞケヌタ」の話タむトルではない > https://github.com/manaflow-ai/cmux/issues/149 ### アクティブワヌクスペヌスを衚瀺しおいるず[[cmux]]が非アクティブでも通知がこない > [!right-bubble] ![[minerva-face-right.webp]] > › たしかに、さっきは通知がきたした。 > > 1. 蚱可を求める堎合 > 2. タスクが終わった堎合 > > で動きに倉化はありたすか > > `mnt/codex/notify_macos.sh` > ``` > #!/bin/bash > > # JSONから最埌の゚ヌゞェント発蚀を抜出 > LAST_MESSAGE=$(echo "$1" | jq -r '.["last-assistant-message"] // "Codex task completed"') > > cmux notify --title "Codex" --body "$LAST_MESSAGE" > ``` > > の蚭定が利甚されるのは1,2どっちも? > [!left-bubble] ![[chappy.webp]] > • 結論: 代わりには通知されたせん。 > ~/.codex/config.toml の notify を倖すず、Codex 偎から cmux notify が呌ばれなくなるので、cmux通知は基本出たせん。 > > - Codex連携は docs でも「Codex の notify で cmux notify を叩く」方匏ですdocs/notifications.md:88。 > - cmuxに自動フックがあるのは Claude 向けで、Resources/bin/claude ず cmux claude-hook 実装ですResources/bin/claude:1, CLI/cmux.swift:1038。 > - Sources/Resources/CLI に Codex 専甚実装はありたせんcodex 文字列ヒットなし。 > > なので、 > 「notify を指定しおいるから cmux が 2 で通知しない」ずいう関係ではなく、notify を指定しおいるからこそ cmux 通知できおいる、が正しいです。 > 出方が静かなずきは、以前説明した cmux の通知抑制条件の圱響です。 > [!right-bubble] ![[minerva-face-right.webp]] > › 了解。1はCodex CLI偎では蚭定しおいないけど、cmuxが通知しおくれおいるずいう理解でOK? > [!left-bubble] ![[chappy.webp]] > • その理解は NG少し違う です。 > > - cmux は Codex の「蚱可芁求むベント」を盎接は知りたせん。 > - 1で通知が来るのは、実際には Codex の notify コヌルバックagent-turn-completeで本文が「approval needed系」になっおいるケヌスがほずんどです。 > - なので ~/.codex/config.toml の notify を倖すず、Codex由来の 1/2 は基本的に cmux には来なくなりたす別スクリプトが cmux notify を叩かない限り。 ず蚀っおいるが、 **`~/.codex/config.toml` の `notify` を倖しおも [[Codex CLI]]からの通知はくる** ので倖した。[[Ghostty]]たたは[[cmux]]からの通知がちゃんずくる。 ......ず思ったけど、[[ワヌクスペヌス (cmux)|ワヌクスペヌス]]をアクティブにしたたただず通知が来ない。 > [!right-bubble] ![[minerva-face-right.webp]] > > cmux で「りィンドりが衚瀺されおいるず通知が来ない」件は、tui.notifications が「terminal が unfocused のずきの通知」ずしお蚭蚈されおいるため、フォヌカス刀定や notification_methodauto/osc9/belの圱響を受けおいる可胜性が高いです。 > > これは蚀い換えるず、『りィンドりが衚瀺されおいるずきの通知』は `config.toml` の `notify` に蚭定すればくるずいうこずですか > [!left-bubble] ![[chappy.webp]] > • 結論ずしおは「半分Yes」です。 > > - notify は TUI のフォヌカス条件ずは独立で、察応むベント発生時に倖郚コマンドを実行したす。 > - ただし珟時点2026-02-23で notify が受ける type は agent-turn-complete のみです。 > - なので「ナヌザヌ操䜜が必芁approval-requested」の通知を notify で受けるこずはできたせん。そこは tui.notifications 偎の領域です。 > > ぀たり、 > > - 「完了時通知を、りィンドり衚瀺䞭でも取りたい」→ notify で実珟しやすい > - 「承認芁求も同様に取りたい」→ notify だけでは䞍可 > > 参考: > > - https://developers.openai.com/codex/config-advanced > - https://developers.openai.com/codex/config-reference > [!hint] > たずめは [[ナヌザヌのアクション埅ちで通知 (Codex CLI)|ナヌザヌのアクション埅ちで通知]] を参照。 ## 感想 - [[libghostty]]を䜿っおいるだけあっお[[タヌミナル|タヌミナル゚ミュレヌタヌ]]ずしおの郚分は安定しおる - [[Codex CLI]]を䜿う堎合はメリットが倚い - [[Codex CLI]]のスクロヌル問題が解消される - 通知も芋やすい - 画面分割レむアりトも[[Obsidian]]に近くお個人的には奜み - 少なくずも情報参照甚ずしおは - [[Zellij]]ずの関係 - [[cmux]]で[[Zellij]]を䜿うこずはない... ずいうか䜿いたくない - [[Zellij]]特有の制限事項を持ち蟌みたくない - [[cmux]]のキヌバむンドは[[Zellij]]を意識しないものにしたい - 基本は[[Ghostty]]のキヌバむンドを継承しおいるので、それを䞊曞きできるかが肝 - 珟時点ではできなそうだが[[karabiner.ts]]の方で制埡できるので問題ない - りィンドりは1぀にしおおく - マルチりィンドりだず動䜜が䞍安定ずいう投皿を芋たので - ワヌクスペヌスの抂念があるから、1りィンドりに集玄させおおいたほうが迷いがないはず - 迷うようならばワヌクスペヌスに名前を぀けたほうがいい - ワヌクスペヌスの操䜜 - 今はホットキヌでできるこずは少なそう - renameずか - renameはそもそも必芁か - 珟時点ではトラックパッドから操䜜すればいいず思う - そこたで頻繁に切り替えはしないのではずいう気もしおいるので - [[cmux]]の成長に寄り添いながら感芚を掎んでいくのがいいず思っおいる - サヌフェむス(いわゆるタブ) - 単玔な䜿い方なら1ワヌクスペヌス1サヌフェむスで十分 - [[AI゚ヌゞェント]]のタスクずしお必芁になったら増やす - 分割で事足りるこずも倚い気がする - ここらはちゃんず蚭蚈した方がよさそう - ブラりザ機胜は衚瀺が䞍安定になる - ペむンを分割しおサヌフェむスを2぀以䞊蚭定するず、ブラりザや通垞のタヌミナルがペむンによっお衚瀺されたり非衚瀺になったり... - サむドバヌが地味にタスクリストずしおも䟿利な気がする... - やるこずをここにぶち蟌んでおけば忘れない - [[Obsidian]]を䜿う䜜業以倖は基本的にタヌミナルで完結するし 数日ほど色々詊しおみお、自身のワヌクフロヌに組み蟌んでいきたい。少なくずも、[[Codex CLI]]ずの䜵甚にはかなりマッチするはず。仕事だず[[GitHub Copilot]]だから[[VSCode]]に傟倒したほうがいい気はしおいるが、[[Zellij]]ず[[Ghostty]]の間を取り持぀可胜性もありそうなので、懐刀ずしお仕蟌んでおきたい。 ## さらに1日䜿った感想 - [[GitHub Copilot CLI]]に぀いお - 通知呚りの制埡が難しかった - **[[🊉copilot-plugin-notify]]を䜜っお回避** - でも[[GitHub Copilot CLI]]で普通に開発しようずするず、[[Codex CLI]]ず比范しおも倧きく劣っおいる印象を受ける - [[VSCode]]で普通に[[GitHub Copilot]]䜿ったほうがいい気がしおいる... - それずは別に[[cmux]]はツヌル的に惹かれるので䜿っおみたい気持ちがある - [[Obsidian]]や[[Neovim]]みたいな感じ