Linuxを日常的に使う実験ブログ

Void LinuxでWaylandコンポジタhikariを使ってみる(導入編)

 2022-08-28

 2024-02-22

 Void Linux

こんにちは。今回のテーマは「Void LinuxでWaylandコンポジタhikariを使ってみる(導入編)」です。今回はVoid LinuxをUEFI + GPT環境にインストールして最小環境を構築するで構築した最小環境のVoid Linuxにhikariを導入して動かすところまでやってみたいと思います。hikariを導入した環境をより実用的にするのはカスタマイズ編で書きたいと思います。

hikariって何?

hikariとはBSDで盛んに開発されているWaylandコンポジタ(兼、ウィンドウマネージャ)です。WaylandコンポジタについてはWaylandとは?をご覧ください。特徴としてはスタック型のウィンドウマネージャでありながらi3やSwayのようなタイル型ウィンドウマネージャのような感覚で使用できる使用感とカスタマイズ性の高さを有しています。マウス操作よりもキーボードを主体に操作をしたい方や、タイル型ウィンドウマネージャにはちょっと抵抗がある方にも親しみやすいと思います。

筆者のVoid + hikari環境

筆者のVoid + hikari環境

hikariの公式ページはこちらです。

準備

hikariに限らず、sway等のwaylandコンポジタの導入には必要な準備なのですが、シートと呼ばれるハードウェアデバイスのコレクションへのアクセスが必要となります。今回はelogindとpolkitを用いてアクセスします。尚、代替手法としてはseatdを用いる方法があります。今回は以下のパッケージを導入します。

  • dbus
  • elogind
  • polkit

以下コマンドでパッケージをインストールします。

sudo xbps-install \
dbus \
elogind \
polkit

dbusサービスを有効化しましょう。Void Linuxはサービス管理にrunitを使用していますのでSystemdの方式とは少し異なります。以下のコマンドでサービスを有効化しましょう。

sudo ln -s /etc/sv/dbus /var/service/

ここまで準備できたらシステムを再起動しましょう。dbusが有効になります。

必要なパッケージの導入

ではhikariの導入に必要な以下のパッケージを導入していきます。今回はターミナルエミュレータとしてfootを、ランチャーとしてbemenuを導入します。いずれもWaylandプロトコルに対応したアプリケーションです。

  • hikari
  • xorg-fotns
  • mesa-dri
  • xorg-server-xwayland
  • bemenu
  • foot

以下コマンドでパッケージをインストールします。

sudo xbps-install \
hikari \
xorg-fonts \
mesa-dri \
xorg-server-xwayland \
bemenu \
foot

設定ファイルの編集

デフォルトの設定ファイルは/etc/hikari/hikari.confにありますので、まずはコピーして使いましょう。

mkdir -p ~/.config/hikari
cp /etc/hikari/hikari.conf ~/.config/hikari/

では設定ファイルであるhikari.confファイルを編集しましょう。ここではデスクトップ環境で必須な端末とランチャーのみショートカットを設定します。もし他にもショートカットで行いたいアクションがあればactionsに登録をして、キーバインドを設定すればOKです。

~/.config/hikari/hikari.conf

... 中略

actions {
  terminal = "foot"
  menu = "bemenu-run"
}

bindings {
  keyboard {
    ... 省略

    "L+return" = action-terminal
    "LS+m" = action-menu

    ... 省略
  }
}

これでSuper + Shift + mでbemenuが起動します。また、Super + Returnでfootが起動します。

キーボードレイアウト設定

キーボードレイアウトに関してはhikari.confファイルで設定することもできますが、XKB_DEFAULT_LAYOUT環境変数の設定がhikariのキーボードレイアウトに反映されますので、今回は環境変数を設定します。この設定は後述する起動スクリプト内で行うことにします。

起動スクリプトの設定

hikariの起動には起動スクリプトを用いることにしました。もともとXorgサーバーもディスプレイマネージャを使用せずstartxコマンドで起動していたので、コマンド起動に慣れているというのが理由です。

今回はホームディレクトリに以下のような起動スクリプトstart_hikariを設置しました。環境変数とhikari起動前に起動したいアプリケーションはこのファイルに書くことにしました。尚、waybar等のhikari起動後に自動起動したいアプリケーションは~/.config/hikari/autostartファイルに記載します。

start_hikari

#!/bin/bash

# emvronment variable settings
export XKB_DEFAULT_LAYOUT="jp"
export MOZ_ENABLE_WAYLAND=1
export WLR_NO_HARDWARE_CURSORS=1 #virtualbox用

# launch applications settings

# exec wayland compositor
exec hikari

環境変数の解説ですが、XKB_DEFAULT_LAYOUTはキーボードレイアウト用、MOZ_ENABLE_WAYLANDはFirefoxをWayland用に起動するための変数、WLR_NO_HARDWARE_CURSORSはバーチャル環境などでカーソルが消えてしまう対策として設定する変数です。

作成したstart_hikariスクリプトに実行権を付与しておきましょう。

chmod +x ./start_hikari

hikariの起動

ここまで準備できたのでhikariを起動してみましょう。ログインしたコンソール上で以下のようにスクリプトを実行します。

./start_hikari

無事に起動するとデフォルトの壁紙が表示されます。以下の図はfootとbemenuを起動させたたところです。hikariはCTL + SUPER + ALT + qで終了できます。

カスタマイズ前のhikariの画面

カスタマイズ前のhikariの画面

最後に

今回はWaylandコンポジタhikariをVoid Linux上で最低限動かせる状態まで設定していきました。この状態ではまだまだデスクトップ環境としては使い勝手が悪く、日本語環境も構築されていません。次回はより実用的なデスクトップ環境になるようにカスタマイズしていきたいと思います。