GUIを一切必要とせず、コンソール上でタイル型ウィンドウマネージャーの楽しさをすべて体験できます。気に入らない点などあるでしょうか?
コンソールベースの優秀なハッカーたちは皆、複数のターミナルセッションを操作し、タイリングウィンドウマネージャー(最近ではタイリングWaylandコンポジター)を使っています。でも、コンソール上でタイリングができるんです!これって、もっとすごいと思いませんか?ターミナルをタイリングする方法を6つほど見てきました。
GNUスクリーン
それらすべての中で最古参と言えるのがGNU Screenです。昨年はバージョン5について書きましたが、先月バージョン5.0.1が登場しました。これは1980年代のGNUツールなので、ほぼすべてのOSで動作しますが、難解で使いにくいという欠点もあります。例えば、ローカルマシンで使用する場合、セッションとウィンドウを別のものとして扱います。つまり、何もないウィンドウを開くのも簡単です。シリアル回線のボーレートなども処理します。もしそれがまだ気になるのであれば、それはそれで構いませんが、ほとんどの人にとってはダイヤルトーンと同じくらい歴史のあるものです。Screenは非常に分かりにくいツールですが、その反面、簡単な入門書やチートシートなどを用意する機会も豊富です。
Ubuntu Noble の GNU 画面。チルダ、htop、および独自のマニュアルページを表示。クリックして拡大
私たちが見た Screen の簡潔な概要は、職場のコンピューターから何マイルも離れたサーバーに接続し、いくつかのコマンドを入力し、切断している間に 1 つのコマンドを実行したままにしておき、その後家に帰って自宅のコンピューターから同じ実行中のセッションに再接続するというものです。
トゥムックス
Screen のよりモダンでコンパクトな代替手段は Tmux です。複数のローカルターミナルセッションと、複数のリモートマシンへの複数のリモートセッションの両方を処理できます。外部の tmuxp セッションマネージャーを使えば、接続セット全体を保存したり、後で再読み込みしたり、切り替えたりすることができます。
Tmux は、システム モニターの「下部」、シェル、および独自のマニュアル ページを表示します (クリックして拡大)
この複雑さは、Unix 自体の哲学の一つである「worse is better(悪い方がよい)」設計の一例と言えるでしょう。つまり、Tmux は避けられないほど複雑です。使いこなすには、一連の概念も習得する必要があります。Tmux には豊富なオプションがあり、それについて解説する書籍が一冊あります。また、豊富なプラグインリストと、それらに対応するプラグインマネージャも用意されています。
屏風
しかし、助けはすぐそこにあります。Canonicalの元Ubuntuプロダクトマネージャー、ダスティン・カークランド氏がByobu(日本の屏風にちなんで名付けられた)を開発しました。Byobuは単体でもセッションを処理できますが、screen
またはがtmux
インストールされている場合は、Byobuがセッションのラッパーとして機能し、よりシンプルなキー操作と便利なステータスラインを備えた、より使いやすいフロントエンドを提供します。(私たちのテストでは、両方がインストールされている場合はデフォルトでTmuxが使用されることが確認されました。)
Byobu は Tmux の制御を少し簡単にしますが、それほどではありません。また、ステータスバーも追加します (クリックして拡大)。
業務用レベルのツールを引き続き使用したいが、より使いやすいフロントエンドが必要な場合は、これが最適です。
ゼリジ
Zellijは、モダンなタイル端末マルチプレクサです。ポルトガルのアズレジャリアにも由来する、モロッコの伝統的なセラミックタイルにちなんで名付けられました。
最新のZellijスナップ。少しだけ便利なステータスバーとカラフルなドキュメントを備えています。クリックして拡大
ZellijプログラムはRustで実装されており、ScreenやTmuxよりもはるかにシンプルで使いやすいUIを提供しています。Byobuにも十分対抗できます。一部のLinuxディストリビューション、FreeBSD、macOS向けのネイティブパッケージが用意されており、NetBSD向けの旧バージョンも存在します。ただし、一部の有名ディストリビューションは対応していません。例えば、私たちが調べた限りでは、.deb
DebianやUbuntuファミリー向けのネイティブパッケージは存在しませんが、Ubuntuユーザーはsnapパッケージをインストールできます。Flatpakはコマンドラインツールをうまく扱えないため、利用できません。snapを使いたくない場合は、RustコンパイラとCargoをインストールして自分でビルドする必要があります。
DVTM
あなたがミニマリズムに傾倒していて、大規模で複雑なプログラムと、それを簡単にするためのラッパーのアイデアに興味がある場合、または Rust アプリを構築するために snaps や重要な依存関係をインストールすることに興味がない場合、dvtm の方が適しているかもしれません。
Dvtm の上部にステータスバー、チルダ、Htop、およびマニュアルページが表示されています – クリックして拡大
Tmuxよりも小さく、シンプルで、少し使いやすいです。これは、Tmuxの機能が少ないことが一因です。TmuxとScreenはどちらも、他のマシンとのセッションの切断と再接続を処理できます。Dvtmにはこの機能は組み込まれていませんが、セッション管理が必要な場合は、同等の機能を提供するabducoというパートナープログラムと連携できます。
- /e/ OS 3.0: 少し使いにくくなり、少しプライバシーが向上
- KDE Plasma 6.4は、大幅なユーザビリティとWaylandの改善を伴って出荷されました。
- LibreOfficeが「Windowsを捨ててLinuxへ」キャンペーンに声を加える
- RHELクローンがバージョン10に到達、RockyとAlmaは異なる道を歩む
ツイン
Massimiliano Ghilardi 氏の Twin は20年以上前から存在していますが、まだバージョン1.0 に到達していません。Twin は Textmode Window Environment の略で、Ubuntu Noble のリポジトリに含まれています。他のプロジェクトと同様に、Twin は Borland TurboVision スタイルの TUI を Linux コンソール(またはターミナルエミュレータ)に提供します。
Twinは文字通り別のものです。タイリングやターミナルができるだけでなく、クリックして拡大できます。
このハゲタカの愛用ターミナルテキストエディタ「Tilde」と同様に、IBMのCUAを彷彿とさせるインターフェースを備えています。さらに、gpm
パッケージをインストールすればマウス入力もサポートします。ターミナルウィンドウをタイル状に並べられるだけでなく、重なり合ったウィンドウも処理できます。仮想マシンではマウス操作の追跡に少し苦労し、CUA風のキーボードショートカットもうまく動作しませんでしたが、大きな可能性を秘めています。
Twinが他のツールの機能を拡張し、CUAテキストエディタ、CUAファイルマネージャ、マウスとCUAキーボードUIを備えたTmuxのようなツールの機能を吸収していくのを見るのは興味深いでしょう。TildeやRanger、F2 Commanderといったファイルマネージャなど、こうしたツールは数多く存在しますが、統一されたUIが欠けています。はるか昔、Ubuntuをベースにしたテキストのみのデスクトップ「INX」が試みられましたが、Twinはまさにそこにぴったり合うでしょう。
マイクロターミナルマルチプレクサ
報酬が少ないのに、これだけの報酬は多すぎると感じ、タイルだけが欲しいという方には、このゲームmtm
がぴったりかもしれません。これはRob Kingによるゲームで、コモドール64をテーマにしたホームページが印象的です。
Mtm は名前からも性質からもマイクロですが、自分でコンパイルすれば十分に機能します – クリックして拡大
Mtm用のパッケージが見つからなかったため、ソースコードをダウンロードして自分でコンパイルする必要があります。Ubuntuでこれを行うには、ncurses
まず開発ライブラリをインストールする必要があります。
sudo apt install lib64ncurses-dev
どれが一番いいですか?
Linuxの世界ではよくあることですが、何を求めるかによって選択肢は異なります。Screenは手間がかかりますが、ほぼすべてのUnix系OSで動作します。Tmuxもほぼ同じくらい普及しており、21世紀のユーザーが想像できるあらゆる機能を備えています。どちらも少々難解ですが、Byobuは非常に役立ちます。
私たちにとって、パッケージングや依存関係に問題がなければ、Zellij が最も使いやすいです。UI がより使いやすくなっているのは大変ありがたいのですが、ごちゃごちゃしていると感じるなら、コンパクトなビューも用意されています。
もちろん、GUIレベルでタイリングを行いたいのであれば、そのようなツールは数多くあります。Arch Wikiには、そのようなツールが14個、Waylandコンポジターが12個掲載されています。TerminatorやTilixなど、一部のターミナルエミュレーターにも、何らかの形で多重化機能が組み込まれています。Rustierで、BSD、macOS、Windowsで多重化機能を使いたい場合は、Weztermが適しているかもしれません。®
ブートノート
Dustin Kirkland という名前に見覚えがあるようであれば、彼の Ask HN の質問が、Canonical が後に Unity とその統合の夢を断念するという決定に影響を与えた可能性があるようです。