はじめに
https://kichijojipm.connpass.com/event/382650/
私の部下であるmozumasuがTerminal Night #2に登壇するとのことで、メルカリオフィスに初行ってきた。ターミナルオタクによる、濃厚なイベントだったので、まとめていきたいと思う。(間違えてるところがあればリプください)
モテるターミナル WezTermの機能に迫る
- WezTermの特徴と設定
- WezTermは言語Luaを採用し、if分岐などのロジックによる柔軟なカスタマイズが可能
- ホットリロード機能により、設定変更が即時反映される
- キーバインドにモードを持たせ、用途ごとに操作体系を切り替えられる
- ペイン分割やウィンドウ管理機能が充実し、tmuxに近い操作感を提供
- カスタマイズ事例とコミュニティ文化
- タブ幅・文字サイズ・色・閉じるボタンなど細部までカスタマイズ可能
- プロセスごとの色分けや条件付き見た目変更も設定できる
- 設定事例は「Show your wezterms #628」やGitHub Discussionsで共有されており、人気設定は「いいね」順で参照可能
- OSSキャッチアップとして、GitHubコード検索やDeepL翻訳の活用が良い
- 主な機能と活用例
- ペイン分割はキーバインドで自在に操作可能。独自モードでサイズ変更も可能
- コピーモードやサーチモードなど、Vimライクな操作性を実現
- コマンドパレットでレイアウトやコマンドを即座に呼び出せる
- CLI連携により、AI生成テキストのペイン送信やセッション保存など自動化が可能
- ドキュメント活用とトラブルシュート
- 公式ドキュメントの「WezTerm」セクションから体系的に学習可能
- GetHelpセクションでデバッグオーバーレイやログ表示が容易
- 困った場合はAIやコミュニティの知見を活用することが推奨
- Nix活用
- Nixを導入することで、環境を汚さずキラキラなビジュアルに変更可能
- ターミナル自慢しようぜ!
SSH秘密鍵をSecure Enclaveに格納するSecretiveのススメ
- matsuuさん
- SSH鍵管理のリスクと対策
- SSH秘密鍵は通常ローカル端末の.sshディレクトリに保存される
- パスフレーズ設定やパスワードマネージャー連携でも根本的なリスク低減には限界がある
- ファイル奪取やメモリ窃取攻撃、ボルト漏洩、端末侵害など多様なリスクが存在
- ソフトウェア的な鍵はコピーが容易で、漏洩の検知が困難
- ハードウェア認証による複製不可能な運用
- Secrettive、FIDOデバイス、TPM、スマートカード等のハードウェア認証デバイスを活用し、秘密鍵を物理デバイス内に格納することで複製・漏洩リスクを大幅に低減
- 端末侵害を前提とした多層防御設計が求められる
- 実践的アドバイス
- SSH秘密鍵には必ずパスフレーズを設定し、パスワードマネージャー連携時もボルト管理を徹底
- ハードウェア認証デバイス導入による複製不可能な鍵管理を推奨
- ソフトウェア的管理だけに依存しない多層防御を心掛ける
- SecretiveによるSSH鍵管理
- SecretiveはApple製品に搭載された独立コプロセッサで、秘密鍵や指紋情報など機密データを安全に管理
- 外部からアクセスできない専用領域で高いセキュリティを実現
- SSHやgit、VSCode等から安全に鍵利用可能
- SSHエージェントフォワーディングにも対応し、多段接続が可能
- GitHubやhomebrewから容易に導入でき、UIも直感的
- FIDOデバイスによるSSH鍵管理と運用実例
- FIDOデバイスはセキュリティキー(USB/NFC)、スマートカード、スマートフォン等を含む認証用物理デバイス
- オープンSSH 8.2以降でecdsa-sk、ed25519-skの鍵種に対応。SKはFIDOデバイス連携を示す識別子
- 鍵ハンドルと物理デバイス連携
- FIDOデバイス固有のマスターキーとランダム生成データで「鍵ハンドル」を生成
- 鍵ハンドル単体では認証不可、物理デバイスが必須
- 鍵ハンドルとセキュリティキー両方が揃わないとSSH接続は成立しない
- 実践的アドバイス
- SecretiveやFIDOセキュリティキー導入を推奨
- 物理デバイスの選定と管理、オープンSSHバージョン確認を事前に行うことが重要
VSCode中心だった自分がターミナル沼に入門した話
- Genki Sanoさん
- なぜターミナルに手を出したか
- VSCode中心の環境から、あえてカスタマイズ性の高いターミナル環境の構築に挑戦
- mozumasuリスペクト
- 試行錯誤したこと
- 最初はディレクトリツリーが見れないなどの壁にぶつかる
- NeovimやLazyVimなどを導入して解決。
- 「よしなにやってくれるもの」を使いつつ、AI(Claudeなど)に壁打ちしながら環境を継ぎ足して構築
- 環境構築(沼)は時間が溶けるが「楽しい」。これを機にdotfilesも作成・公開
- 1ヶ月で仕事がどう変わったか(導入効果)
- 最初はショートカット等に慣れる時間が必要だったが、1〜2週間で適応
- 操作が軽くなった: キーボード操作で完結でき、ディレクトリ移動がしやすくなった
- 環境が軽くなった: 重いIDEを開く機会が減り、サクサク動くように
- 仕事の進め方の変化: Claude Codeの活用が進み、コンテキストスイッチの多いマネージャー業務が楽になった
- 続けていくための工夫
- 挫折しないためには、最初から完璧な環境を「作る」のではなく、使いながら「育てていく」マインドが重要
脱・コピペ!変数展開とコマンド展開でターミナル作業をスマートにする方法
- masasuzさん
- コマンドのコピペや手入力によるミスを減らすため、展開機能を積極的に活用することを推奨
- ブレース展開
- 複数パターンのコマンドやファイル名を一括生成し、作業効率とミス防止を実現
- 変数展開
- 値の再利用や動的書き換え、パターン削除、デフォルト値設定、エラーメッセージ出力など多彩な応用が可能
- コマンド展開
- $()でコマンドの実行結果を変数や文字列として利用。セキュリティグループIDやIPアドレスの取得など、一行で処理を完結できる
- プロセス置換
- コマンド出力をファイルとして扱い、バックアップやビルドタグ生成などに応用
- VSコードターミナルの利用により、ローカル作業の完結性と手軽さを享受。他ターミナルと比較しても利便性が高い
- シェル操作の限界を感じた場合は、パールなどのプログラミング言語との役割分担を推奨
- まとめ
- 展開機能の活用でコマンドライン作業の効率化・ミス防止・自動化が可能。「楽したい」「ミスを減らしたい」人にこそおすすめ
GitHubのPRをレビューするTUIを作った
- kawarimiさん
- GitHub PRのdiffをTUIで確認できるツールはすでにいくつか存在した
- diffnavやdifitを触っており、PRをパッと指定したらそのコミットごとの差分を見たかった
- GitHubのPRを見ることを前提にすればいいなと思い、gh cliの拡張機能としてgh-prismを作った
- 主要機能
- マルチパネル構成(PR概要・コミット一覧・ファイル一覧などをキーボードで切替)
- PR概要パネル(ズーム・画像表示対応)
- コミット一覧パネル(コミット選択でファイル一覧連動)
- ファイル詳細表示(行番号・折り返し等カスタマイズ)
- コメント・リアクション機能(ターミナルからコメント・承認・リジェクト可能)
- チェンジサジェスション対応(編集提案を直接送信)
- コメント送信漏れ防止(警告モーダル表示)
- マージ機能(PRのマージまで一貫して対応)
- コミットごとのレビューにより、チェック済み記録や柔軟な運用が可能。
- レビューの抜け漏れ防止と効率化を実現
Ghosttyの凄さを 技術的に深ぼってく
- kuuさん
- Ghosttyは、高速・ネイティブ・多機能なターミナルエミュレーターとしてGitHubで公開。2024年12月にv1リリース
- プラットフォーム対応:Windowsを除く各プラットフォームでネイティブ実装。特にMac OSへの注力が顕著
- レンダリング技術
- マックOSではMetal(メタルオブセンラーズ)とコアテキストAPIを併用
- mtl libraryやshadersを駆使し、背景やグリフ(文字画像)のレンダリングを効率化
- マルチスレッド構成
- メインスレッド(アプリ全体管理)
- IOスレッド(キーボード入力等の独立処理)
- レンダースレッド(画面表示専用、120fpsで高速描画)
- テキスト表示高速化
- 入力発生時にテキストを細かく分割し、コアテキストAPIでグリフ列へ変換
- グリフ列から画像生成(CPU)、まとめてGPUでレンダリング(スプライト的手法)
- 計上処理のキャッシュ再利用でパフォーマンスを最適化
- 絵文字・国旗等の特殊処理
- 国旗(JP, JM等)は複数文字をまとめて判定・変換
- 手の色や家族構成など、条件分岐が複雑で高度な先読み処理が必要
- ゲームアーキテクチャとの類似性
- スプライト的レンダリングやCPU/GPU分担など、ゲーム開発の最適化手法を積極的に導入
- まとめ
- ゲーム並みのレンダリング最適化とマルチスレッド構成により、ターミナルエミュレーターとして圧倒的なパフォーマンスを実現
推しツールは強制布教しよう
- ogadoraくん
- Nixは「宣言的で再現可能な信頼性のあるパッケージマネージャー」
- システムやソフトウェアの構成を「宣言的」に記述できるため、同じ環境を何度でも正確に再現できるのが大きな特徴
- 信頼性が高く、現場でのトラブル回避や安定運用に役立つ
- 設定管理・ロールバックの簡単さ
- Nixは設定の管理とロールバックが非常に簡単
- 設定を変更しても、コマンド一つで元に戻せる
- 設定履歴がID管理されている
- 環境を汚さずコマンド実行可能
- パスが通っていない状態でも一時的にコマンドをインストールして実行できる
- 複数パッケージの同時利用
- 複数パッケージを同時に使いたい場合は、flake.nixを設定することで実現可能
- Nixはいいぞ!!
まとめ
自分はYouTubeでターミナルを紹介しているが、今回のイベントはターミナル大好きエンジニアによる最高の会だったように感じた。自分はGhosttyとtmux兼NeoVimmerだが、それぞれのツールの良さや熱意がエグかった。
個人的に勉強になったのはmatsuuさんの鍵周りの管理方法で、面白かったのが、kawarimiさんによる、ターミナルでLTとバチバチの音楽で披露していたので、DJか!?と突っ込んでしまった。自分も機会があれば、次回LTしたいと思う。の前にNix触ってみるかな。
運営のみなさんありがとうございました!mozumasuお疲れ!






0件のコメント