タイル型ウィンドウマネージャーの魅力に触れよう。Swayで始める超快適デスクトップ生活
■ タイル型ウィンドウマネージャーとは デスクトップ版のUbuntuはもちろん、WindowsでもmacOSでも、アプリケーションはウィンドウの中に表示される。そしてデスクトップ上には複数のウィンドウが「浮かんで」おり、それらは自由に移動したり、ウィンドウ同士を重ね合わせることができる。こうしたウィンドウシステムは非常に直感的に操作できるため、現在のデスクトップ環境において、主流のインターフェイスとなっているのはご存知の通りだ。 【画像】Ubuntuデスクトップの例。ウィンドウを自由に重ねることができるが、無駄な領域も生まれてしまう GUIのウィンドウシステムにおいて、ウィンドウの挙動や外観などを管理しているソフトウェアを、「ウィンドウマネージャー」と呼ぶ。ウィンドウマネージャーにはさまざまな実装が存在するのだが、その中でもウィンドウを重ね合わせるタイプのウィンドウマネージャーは、「スタック型」や「コンポジット型」に分類されている。 多くの人が使い慣れているスタック型やコンポジット型のウィンドウマネージャーだが、欠点もある。それは自由にウィンドウを配置できてしまうために、無駄な領域が生まれてしまうところだ。 これに対し、ウィンドウを重ね合わせず、デスクトップ全体にウィンドウを「敷き詰める」タイプのウィンドウマネージャーが存在する。これを「タイル型」ウィンドウマネージャーと呼ぶ。 タイル型では、デスクトップ上に開いているウィンドウが1つだけであれば、そのウィンドウを自動的に最大化して表示する。新しいウィンドウが開かれると、各ウィンドウの大きさや配置を調整し、すべてのウィンドウを隙間なくデスクトップ上に敷き詰められるようにする。この再配置やリサイズは自動的に行なわれる。タイル型のウィンドウマネージャーは、デスクトップ全体を、無駄なく効率的に使えるのだ。またウィンドウが別のウィンドウの下に隠れ、行方不明になってしまうこともない。 WindowsやmacOSでは、ウィンドウマネージャーはOSの機能の一部だ。そのためウィンドウマネージャーだけを別のものに入れ替えるということは、通常想定されていない。だがこうしたコンポーネントすらも、自由に入れ替えられるのがLinuxのいいところだ。今回はUbuntuデスクトップのウィンドウマネージャーをタイル型に入れ替え、一味違ったデスクトップを体験してみよう。 ここまで聞いて、「一般的なデスクトップ環境とは違いすぎて使いにくそう」や「マニア向け」のように思ったかもしれない。だがWindows 1.0を思い出してほしい。Windows 1.0ではウィンドウを重ね合わせることはできず、全員がタイル型のインターフェイスを使っていたはずだ。ゲームにおいても、「ドラゴンクエスト」がスタック型のウィンドウシステムを採用する前は、マップとステータスを分割表示するような、タイル型のインターフェイスが主流だった。こちらも初期の「ウルティマ」や「ウィザードリィ」を思い出してみてほしい。 「いや、昔の話やん……?」と思ったかもしれない。だが実は、現代的なOSでもタイル型のウィンドウ表示はサポートされている。Windowsでは、Windows 7から「Aeroスナップ(現在ではスナップと呼称)」が実装された。ウィンドウをデスクトップの端に押しつけることで、自動的に整列表示させる機能だ。 Ubuntuにもこれとよく似た「タイリングアシスト」機能が用意されているし、macOSに至ってはSequoiaで、つまり2024年になって、ついにこれと同等のタイル機能が新規に実装されている。 またウィンドウシステムではないが、開発者の中には、ターミナルやテキストエディタのウィンドウを分割して使っている人も多いはずだ。こうしたペイン分割も、一種のタイルだと言えるだろう。そう、タイルは古臭いどころが、現在でもさまざまな場所で利用されている、超便利インターフェイスなのだ。 ■ Ubuntu Sway Remixをインストールしよう Linuxで使えるタイル型ウィンドウマネージャーにはさまざまな実装がある。ぱっと思いつくものでは、「awesome」、「xmonad」、「ratpoison」、「i3」、「bspwm」あたりが有名だろうか。 第33回でも解説したが、GUIを表示するためのディスプレイサーバーには、古くから使われてきたX Window Systemと、Xに代わって登場したWaylandの2種類がある。Xは非常に古いプロトコルで、現代的な事情にそぐわなかったり、非効率な部分があるため、今時のモダンなLinuxデスクトップでは、Waylandを利用するケースが増えてきている。UbuntuでもXとWaylandを切り替えられるものの、デフォルトではWaylandが使われる。そのため、せっかくならばWaylandに対応したウィンドウマネージャーを使いたいところだ。 そこで今回は、「Sway」というウィンドウマネージャーを紹介しよう。SwayはWaylandコンポジターとして実装されているため、当然Waylandにネイティブ対応している。逆に、Xにセッションを切り替えることはできないのだが、とりあえず問題にはならないだろう。Swayは「i3」というタイル型ウィンドウマネージャーの影響を受けて開発されており、i3のWayland向けの代替実装とも言えるウィンドウマネージャーだ。なんとi3の設定ファイルをそのまま流用することもできる。 SwayはUbuntuにパッケージが用意されているため、APTを使ってインストールできる。だがウィンドウマネージャーを自分で入れかえるよりも、もっと簡単な方法がある。それがRemixを使うことだ。 第9回でも少し触れたが、Ubuntuには「Remix」と呼ばれる、デフォルトの構成などを変更した非公式派生版が存在する。そして最初からSwayがインストールされているRemixが、Ubuntu Sway Remixだ。一般的なUbuntuのインストールメディアと同様に、Sway RemixもLiveセッションが利用できる。つまりインストールする前に、Swayの動作を体験することもできるわけだ。 ダウンロードページから、最新のUbuntu Sway 24.10のISOファイルをダウンロードしよう。USBメモリへの書き込みや起動の方法は、通常のUbuntuと同様だ。 Ubuntu Sway Remixをインストールメディアから起動すると、ウェルカムメッセージとともに、以下のようなウィンドウが表示される。「Run Calamaes Installer」をクリックすると、インストーラが起動する。またここで「Quit」をクリックすると、ライブセッションでSwayの動作を体験できるので、インストール前に一度は試してみるといいだろう。 Ubuntu Swayのインストーラは、本家Ubuntuとは異なるものの、やっていることはほとんど同じため「見れば分かる」だろう。インストーラが起動したら、まず最初に言語を選択する。デフォルトでは英語になっているため、プルダウンをクリックして「日本語」を選択しよう。 続いてロケーションを設定する。言語に日本語を選択した場合、地域、タイムゾーン、言語やロケールも日本になっているため、特に変更する必要はないだろう。 続いてキーボードモデルを選択する。ここも言語に日本語を選択した場合、デフォルトで「Japanese」となっているので、特に問題ないだろう……と言いたいところなのだが、日本語キーボードを選択しているにもかかわらず、英語キーボードとして扱われてしまう。左下のテキストボックスで入力をテストしてみると、「Shift+2」で「@」が入力されてしまうはずだ。そのためここでは、いったん無視してそのまま進めてしまおう。インストール後に日本語キーボードに変更する方法は後述する。ちなみにドイツ語など、他のレイアウトはきちんと反映された。 インストール先のストレージと、パーティション構成を設定できる。ここではPC(実際は仮想マシンだが)全体をUbuntu Swayで占有する前提で、「ディスクの消去」を選択した。手動で複雑なパーティションレイアウトを作ることもできるが、本記事では割愛する。 初期ユーザーのアカウントを設定する。ユーザー名、アカウント名、ホスト名、パスワードを入力しよう。 最後に、インストールの概要が表示される。間違いがないか確認して「インストール」をクリックしよう。 インストールの最終確認のダイアログが表示される。ここから先に進むと引き返すことはできないため、(特にストレージを初期化して構わないかなどの)問題がないことを確認した上で進めよう。 インストール中はスライドショーが表示される。スライドショーを眺めながら、完了までしばらく待とう。 これでインストールは完了だ。「今すぐ再起動」にチェックを入れた状態で「実行」をクリックすると、ライブセッションは終了してPCが再起動する。 ■ Swayの基本操作 インストールしたUbuntu Swayを起動してみよう。まず以下のようなログイン画面が表示される。白黒のテキスト画面が表示されるため「インストールに失敗したか!?」と思うかもしれないが、これで正常だ。ユーザー名とパスワードを入力してログインしよう。 ログインすると、ライブセッション時と同じウィンドウが表示される。そのため「起動するメディアを間違えたかな?」と思いがちだが(筆者はいつも思う)、これも仕様だ。右下の「Autostart」のチェックを外した上で、「Quit」をクリックして閉じてしまおう。 それではSwayの基本的な操作方法を紹介しよう。タイル型ウィンドウマネージャーは、基本的にキーボードで操作する。そのためショートカットキーのバインドを覚える必要がある。そこでまずはキーボードから「Super+Shift+?」を押そう。デスクトップに主な操作のチートシートが表示されるので、軽く一読しておくとよい。 なおチートシートを呼び出すキー自体を忘れてしまった場合は、デスクトップのトップバーにある「i」のアイコンをクリックすることでも、チートシートを呼び出せる。このように100%キーボードのみで操作しなければならないわけではなく、マウスも併用できるため安心してほしい。 まずSuper+dでランチャーを表示しよう。ここから任意のアプリケーションを起動できる。Ubuntu Swayにはファイルマネージャーとして「PCManFM」がインストールされている。まずはこれを起動してみよう。 このように、開いているウィンドウが1つだけの場合、自動的にデスクトップ全体を使って表示される。この状態でSuper+Enterを押して、ターミナルを起動してみよう。Ubuntu Swayの標準ターミナルは「Foot」だ。 PCManFMのウィンドウが自動的に半分にリサイズされ、空いたスペースにターミナルが起動する。このように、自動的にウィンドウのサイズと位置を調整し、デスクトップ全体を無駄なく使えるのがタイル型のメリットだ。Super+カーソルキーで、アクティブなウィンドウを切り替えられる。現在アクティブなウィンドウは、周囲に緑色のフチが表示されるので、一目で区別できるはずだ。 ウィンドウの位置や大きさを、自分で決めたい場合もあるだろう。Super+Shift+カーソルキーで、アクティブなウィンドウの位置を変更できる。 Super+rを押すと、ウィンドウのリサイズモードに入る。この状態でカーソルキーを押すと、ウィンドウのサイズを調整できる。調整が終わったらEnterキーを押そう。 基本はこのような感じだ。さすがにすべての操作をここで説明することはできないため、実際に動かしながらタイルの挙動を体験してみてほしい。筆者が、「とりあえずこれだけ覚えておけば安心」と思ったキーを表にしておいたので、まずはここから始めてみよう。 ■ キーボードを日本語配列に変更する 前述した通り、インストール時にキーボードの配列で日本語を選択していても、英語配列のままとなってしまう。これを正しく日本語配列に変更しよう。Swayでは、キーボードの配列はホームディレクトリ内の設定ファイルで変更できる。「~/.config/sway/config.d」ディレクトリ内に、「XX-keyboard.conf.example」という設定のサンプルが用意されているので、まずこのファイル名を「jp-keyboard.conf」に変更しよう。 $ cd .config/sway/config.d $ mv XX-keyboard.conf.example jp-keyboard.conf このファイルの内容は以下のようになっている(#で始まるコメント行は省略している)。 input * { xkb_options grp:caps_toggle,grp_led:caps xkb_layout "us,de" xkb_variant "," } テキストエディタで、「xkb_layout」の部分を以下のように「jp」に書き換えよう。 input * { xkb_options grp:caps_toggle,grp_led:caps xkb_layout "jp" xkb_variant "," } Swayのデスクトップ上でSuper+Shift+cを押して設定をリロードすれば、キーボードが日本語配列になっているはずだ。 また上記のファイルの「xkb_options」には、キーボードレイアウトに関するオプションを指定できる。たとえば以下のように「ctrl:nocaps」を指定すると、Aの左隣という一等地に居座っている小文字が入力できなくなる呪いのキーを、Ctrlキーとして使えるようになるため非常に便利だ。 xkb_options ctrl:nocaps ■ 日本語入力の設定 デフォルト状態のUbuntu Swayでは、日本語の入力ができない。さすがにそれは不便なので、日本語が入力できるように設定を行なおう。まずは「fcitx5-mozc」パッケージをインストールする。 $ sudo apt install -U -y fcitx5-mozc 「GTK_IM_MODULE」と「QT_IM_MODULE」という2つの環境変数を設定する必要がある。systemdのユーザーインスタンスによって起動された環境では、ホームディレクトリ以下の「~/.config/environment.d」以下に、拡張子がconfのファイルを作成することで、環境変数を設定できる。このファイルの中には、「環境変数名=設定したい値」を行単位で列挙しよう。 $ mkdir ~/.config/environment.d $ cat >> ~/.config/environment.d/fcitx5.conf <<EOF GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx EOF 最後に、以下のコマンドを実行して、Fcitx5を自動起動する設定を行なう。「~/.config/sway/config.d」以下に「fcitx5.conf」というファイルを作成し、fcitx5コマンドを実行する設定を記述する。 $ cat >> ~/.config/sway/config.d/fcitx5.conf <<EOF exec fcitx5 -r -d EOF ここまでができたら、Ubuntu Swayを再起動してみよう。Ctrl+Spaceか、半角/全角キーで日本語入力が可能になるはずだ。 ■ タイル型ウィンドウマネージャーで快適なデスクトップライフを ここまでの設定ができれば、とりあえず普段使いできる状態にはなったはずだ。こういうものはとにかく慣れなので、ぜひ実際に手を動かしてみてほしい。 また先ほど設定例をいくつか紹介したが、Swayの設定は、「~/.config/sway/config」というファイルで行なわれる。「man 5 sway」に目を通した上で、このファイルを起点にSwayの設定を見てみるのも面白いだろう。 君だけの最強のタイル型デスクトップを構築して、来たるべき(20数回目くらいの)Linuxデスクトップ元年に備えよう!
PC Watch,Ubuntu Japanese Team/日本仮想化技術株式会社 水野源