Ubuntu Weekly Recipe

第903回コンテナ時代の端末ソフトウェアPtyxisを活用しよう!

Ubuntu 25.10から、Ubuntu標準の新しい端末ソフトウェアとしてPtyxis(てぃくしす⁠⁠」が採用されました。これまでのGNOME端末に比べると、インターフェースがよりモダンになり、かゆいところに手が届く細かい機能も増えています。今回はこのPtyxisについて紹介しましょう。

図1 初心者向けの端末ソフトウェアという観点で考えると、初見で名前が読めない以外の大きな欠点が見当たらない「Ptyxis」

コンテナ時代の端末ソフトウェア

Ubuntuで最初からインストールされている端末ソフトウェアはこれまでGNOME端末でした[1]。Ubuntuの最初のリリースである4.10からインストールされており、20年以上標準の端末ソフトウェアとして君臨し続けました。

そのGNOME端末は、Ubuntu 25.10で新しい標準端末であるPtyxisに置き換わりました[2]。これは単純にUbuntuに最初からインストールされる端末ソフトウェアがPtyxisになるというだけです。引き続きGNOME端末もgnome-terminalパッケージをインストールすれば利用できます[3]

そんな経緯を踏まえてのPtyxisの特徴は次のとおりです。

  • コンテナでの作業を意識した機能設計
  • GNOME HIGに準拠したインターフェース
  • ダークモードやカラーパレットなどのカスタマイズ可能なテーマ
  • sudoセッションやSSH接続状態を検知して視覚的に表示
  • プレビュー付きのタブセレクターや、ピン留め、セッション保存が可能なタブ機能
  • カスタマイズ可能なショートカット
  • GPUアクセラレーションに対応したレンダリング
  • スクロールバッファーの暗号化

最初の項目を除いて、現代的な端末ソフトウェアであればだいたい備わっている機能ではあります。よって好みの端末ソフトウェアを置き換えるほどのものではないのですが、こだわりがなければUbuntuに最初から入っているPtyxisを使い慣れてしまうと良いでしょう[4]

ちなみに従来のソフトウェアではタブ機能(やそれに相当する機能)は、⁠視覚的な分離」を目的としていました。Ptyxisはさらに一歩進んで、作業環境の分離を目指しています。具体的にはタブごとにcgroupが別になっています。これによりタブ上で動くソフトウェアの管理が楽になります。そのためタブ単位で割り当てるリソースを変更したり、プロセスを止めることが可能になります。

$ systemd-cgls | grep -A3 ptyxis-spawn
│   │ │ ├─ptyxis-spawn-ed084a0c-b625-4153-9c06-7f590b94be00.scope
│   │ │ │ ├─78058 /usr/bin/bash
│   │ │ │ ├─82694 nvim
│   │ │ │ └─82695 nvim --embed
│   │ │ ├─ptyxis-spawn-a7db0e3c-842d-4d7e-aca6-4415f8be3caf.scope
│   │ │ │ ├─82607 /usr/bin/bash
│   │ │ │ └─82648 vim
│   │ │ ├─evolution-calendar-factory.service

上記の例では、それぞれのタブはptyxis-spawnと名前が付けられたscopeユニットとして作られています。そして、その下でタブ内のプロセスが動いているのです。

たとえば、あるタブではビルドスクリプトを、別のタブでは何らかのローカルLLMを動かしているとしましょう。このときビルドスクリプトを終わらせるために、ローカルLLMのタブで動いている各種プロセスのリソース使用量を調整することも、このscopeユニットを指定することでかんたんに行えるのです。

それでは基本的な使い方を見ていきましょう。

タブの管理機能

Ptyxis(UI上は「ターミナル」という名前になる)は、起動した時点では単一ウィンドウの状態です。ここからのタブの操作はGNOME端末と同じです。

  • Shift-Ctrl-T:新規タブの作成
  • Alt-1Alt-2:タブの選択
  • Ctrl-PageUpCtrl-PageDown:隣のタブへの移動
  • Shift-Ctrl-W:タブを閉じる

GNOME端末に対するPtyxis固有の機能のひとつが閉じたタブの復元もできることです。Shift-Ctrl-Alt-Tを入力すると、直前に閉じたタブをカレントディレクトリの状態を維持したまま復元できます。ただしタブの中で動かしていたプロセスは復元できないため注意してください。

もうひとつの機能がタブの一覧表示です。右上の弁当ボックスのアイコンを押すかShift-Ctrl-Oを入力すると、現在動かしているタブをプレビュー付きで一覧表示できます。これにより切り替えたいタブをカーソルキーやマウスでわかりやすく選択できます。

図2 Ptyxisはタブをプレビュー付きで一覧表示できる

さらにPtyxisにはタブのピン留めができます。FirefoxやChromeと同じ機能だと思えば良いでしょう。タブのタイトルを右クリックして、⁠タブをピン留め」を選んでください。ピン留めしたタブは、タブメニューの左端にまとまって表示されます。

図3 左の小さいアイコンになるピン留めされたタブ

ただしピン留めされたタブはタイトルが表示されず、タブプレビューも表示されなくなる点に注意が必要です。メインで使う作業用のタブのような使い方になるでしょう。たとえばローカルマシンはbyobuやtmux、Zellijなどのターミナルマルチプレクサを動かしてピン留めしておいて、リモートマシンはピン留めせず、アクセス先をタイトルに表示させるような使い方が考えられます。

また、Ptyxisはセッションの保存にも対応しています。これは具体的に何かと言うと、Ptyxisを終了した時点でのタブの状態と、タブごとのカレントディレクトリを保存しておき、次回起動時に自動復旧する仕組みです。

図4 設定画面の「振る舞い」から「セッションを復元」を有効化する

システムの再起動後など、環境を復元したい場合に便利です。

タブとは直接関係ないのですが、Shift-Ctrl-Tを入力するとタブのスクロールバックを検索できます。

これらのキーボード・ショートカットは、設定画面から変更可能です。

見た目や挙動の変更

Ptyxisは次の状態を検知すると、タブやウィンドウの色を変更します。

  1. sudoプログラムなどを利用して、管理者権限でコマンドを実行した時
  2. 別のリモートマシンにSSHログインした時

これらは利用者に注意喚起すべき状況であると伝えるのが目的です。ただしバックグラウンドに移動しているときには色は変わりません。タイトルの文字列は変わるのでそれで判断してください。

バックグラウンドのタブで実行していた管理者権限のコマンドが終了したら、タブのタイトルの下にオレンジの線が入ります。少しわかりにくいですが、apt installが完了したかどうかを知るぐらいには使えるでしょう。

図5 バックグラウンドの管理者権限コマンドが完了すると、タブタイトルの下部にオレンジ色の線が表示される

ちなみにPtyxisはバックグラウンドのタブでコマンドが完了したら、通知メッセージを送る仕組みもあるようなのですが、こちらは発生条件がわかりませんでした。試した環境がUbuntu 26.04 LTSだったため、たまたま何か動かない状態になっていた可能性があります。同様にタブにコマンドの進捗状況を示す機能も動作しませんでした。

Ptyxisには他にもカラーパレットの選択によって、気軽にカラーテーマを変更できます。

図6 カラーパレットの選択。Ubuntu以外を選ぶとUbuntuパレットが見えなくなる。Ubuntuに戻したい場合は、右上の「パレットをすべて表示」を選ぼう

Ubuntuのカラーテーマは、人によってはとても見づらいので、ここから好みの色に切り替えると良いでしょう。自作も可能です。

カラーテーマはプロファイルに紐付きます。プロファイルはタブに紐付けられるため、タブごとにカラーテーマを変えることも可能です。ただしタブのプロファイルは「タブの作成時」にしか指定できません。ウィンドウ左上の新規タブを開くボタンの右にあるプルダウンメニューから、プロファイルを指定してください。

ちなみに以下のコマンドで背景の透明度を変更できることになっていましたが、Ubuntu 26.04 LTSでは設定が反映されませんでした。

$ gsettings set org.gnome.Ptyxis.Profile:/org/gnome/Ptyxis/Profiles/$PTYXIS_PROFILE/ opacity .85

コンテナ機能との連携

Ptyxisはコンテナ機能との連携を謳っています。これは何かと言うと、PodmanやDistroboxのようなローカルの開発環境構築に適したコンテナ環境を気軽に作れる仕組みです。

Distroboxについては第899回のDistroboxを使えば、他のディストリビューションの最新パッケージをUbuntuでも気軽に試せるでも紹介しましたので、それベースに説明しましょう。まずDistroboxでUbuntu 24.04 LTS環境を構築しておきます。

$ sudo apt install -y distrobox
$ distrobox create --name noble --image ubuntu:24.04

これであとはPtyxisから、⁠noble」環境のタブを開けるのです。ウィンドウ左上の新規タブを開くボタンの右にあるプルダウンメニューを開くと次のように表示されます。

図7 ⁠コンテナ」の下に作成したコンテナ環境である「noble」が表示される

あとはこれを選択すれば、noble環境のタブになるdistrobox enter nobleを実行したタブが開く)わけです。

図8 Distroboxの場合は、タブにアイコンが付く模様

さらにこのタブ上で、Ctrl-Shift-Tのように新しいタブを開くと、新しいタブもnobleのコンテナ環境になります。このようにコンテナの中の開発環境をいったりきたりしながら、開発を進めたい場合に便利です。特に最近ではコーディングエージェントをコンテナの中に閉じ込めて使う方法もありますので、それらと組み合わせて使うと便利でしょう。

Ctrl-Alt-Tで起動する端末アプリケーションを変更する

Ubuntu 24.10までは、次のコマンドを実行すればCtrl-Alt-Tで起動する端末アプリケーションを変更できました。

$ sudo update-alternatives --config x-terminal-emulator

しかしながらこの仕組みはUbuntu/Debianのみで使える方法であり、25.04からはより標準的なxdg-terminal-execで切り替えられるようになっています。

Ubuntu 25.04以降でGNOME端末・Ptyxis以外を起動したい場合は、~/.config/xdg-terminal.listに起動したい端末アプリケーションのデスクトップファイル名を記述してください。実際の例は次のファイルが参考になります。

$ cat /usr/share/xdg-terminal-exec/ubuntu-xdg-terminals.list
org.gnome.Ptyxis.desktop:new-window

コロンの後ろはセクションの指定です。

$ cat /usr/share/applications/org.gnome.Ptyxis.desktop
[Desktop Entry]
Name=Terminal
Comment=A container-oriented terminal for GNOME
Exec=ptyxis
(snip)

[Desktop Action new-window]
Name=New Window
Exec=ptyxis --new-window

[Desktop Action new-tab]
Name=New Tab
Exec=ptyxis --tab

[Desktop Action preferences]
Name=Preferences
Exec=ptyxis --preferences

ここで:new-windowの代わりに:new-tabを指定しておけば、Ctrl-Alt-Tを叩くと、都度新しいタブが開きます。

おすすめ記事

記事・ニュース一覧