Ubuntu 24.10 インストール Hyprlandなど
UbuntuをインストールしてHyprlandを設定するなどしたので、引っ掛かりポイントを思い出してメモする。
私は今回がLinuxのデスクトップのインストールは初めてなのでなにか間違いがあるかも。
Ubuntu 24.10にインストールする方法は公式に用意されている。
ただし、これではgitの最新版より古いバージョンが入る。
確か0.41系が入った覚えがある。
Hyprlandはまだまだ開発が活発で新しいバージョンで不具合が修正されていたりするので、新しいバージョンを入れたい。
現時点で最新版は0.44.1。
Hyprlandの最新版を入れるためには自分でソースからビルドすることになるが、依存するパッケージが色々あったりビルドする順番が重要みたいで、一度自分で一通りビルドしてみたものの起動するとクラッシュする実行ファイルが出来上がってしまった。
Ubuntu 24.10上で最新版のソースをダウンロードしてビルドを走らせるスクリプトが以下のリポジトリで公開されているのでありがたく使わせてもらった。
こちらのスクリプトでビルドすると問題なく動くものがビルドできてたいへん助かっている。
ディスプレイマネージャーをUbuntuのデフォルトのgdmのままにしていると、exec-onceで起動するものがクラッシュしたりして動かなかった。
具体的には以下が動かなかった:
- Hyprshot
- mpvpaper
ディスプレイマネージャーをSDDMに変更した。
SDDMのログイン画面のテーマがデフォルトだとあれなのでWeb上で公開されているテーマを使おうとしたが、Qt5ベースのSDDMテーマが動かなかった。
Qt6ベースのテーマであるsimple-sddm-2を利用して解消。
NVIDIAのGPU対応
https://wiki.hyprland.org/Nvidia/ でインストールするように言われているもののうち足りないものを入れる。
ドライバとかはUbuntuのインストール時に入っていたので、足りなかったlibnvidia-egl-gbm1
だけ追加でインストール。
mkinitcpioの設定ファイルに書き込むように言われているが、Ubuntuがmkinitcpioベースではない?みたいなので次のファイルに記述を追加する:
/etc/initramfs-tools/modules
nvidia nvidia_modeset nvidia_uvm nvidia_drm
他に以下の設定を追加する:
/etc/modprobe.d/nvidia.conf
options nvidia-drm modeset=1 fbdev=1
options nvidia NVreg_PreserveVideoMemoryAllocations=1
/etc/default/grub
のGRUB_CMDLINE_LINUX=
の行を編集する:
GRUB_CMDLINE_LINUX="rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 rcutree.rcu_idle_gp_delay=1 "
grubを変更したので以下を叩いておく:
sudo update-grub
画面共有について
xdg-desktop-portal-wlrとxdg-desktop-portal-hyprlandを使える。
wlrの方は安定しているが、ウィンドウごとの共有ができずスクリーンごとの共有しかできないようだ。
xdg-desktop-portal-hyprlandはソースコードからビルドする必要があるうえに、OBSとの組み合わせでうまく動かないことがある。
xdg-desktop-portal-hyprlandでOBSで共有しようとすると共有を開始した瞬間でキャプチャがフリーズして止まってしまうことがある。
ログを見てみると、以下のようなエラーが出ているようだ。
[LOG] [screencopy/pipewire] Out of buffers
.config/hypr/xdph.conf
の設定でキャプチャフレームレートを30fpsにすると多少は改善した。
screencopy {
max_fps = 30
}
その上で、画面が固まった場合にOBS上でそのソースを表示非表示を切り替えると、動き出すようにはなるので一旦それをワークアラウンドとしてwlrではなくhyprlandを使っていく。
関連してそうなバグ: https://github.com/hyprwm/xdg-desktop-portal-hyprland/issues/239
ワークアラウンドについて:https://github.com/hyprwm/xdg-desktop-portal-hyprland/issues/220#issuecomment-2227471077
解決できていない問題として、Xwayland経由のQtアプリと思われる?ものが色がおかしい。
例えばkritaのウィンドウはSupport Kritaのハートマークが本来赤いべきところが青い。
QnapのQsyncのアプリも青いバーがオレンジになっている。
総じてrチャンネルとbチャンネルがフリップしている模様。
過去にもHyprlandでスクリーン共有時とかにrチャンネルとbチャンネルがフリップする問題があり、それがバグ修正されているようなので、まだ似たような問題が残っているのかもしれない。
Waylandの問題としてBlenderのキーバインドがおかしい。
テキスト入力欄では日本語キーボードで入力ができるが、ショートカットの入力には日本語キーボードにある記号周りを受け付けてくれない。
具体的にはカメラを移動するのに使えるCtrl + `
の`
が反応せず。
これは昔からある問題のようで、以下のIssueでトラックされてそう。
上記Issueでは4.4のデイリービルドに修正を入れてみたとのことだが、残念ながら私の環境では4.4の該当ビルドをいれても解決しなかった。
Hyprlandのワークスペースを使いやすくするためにhyprpm経由で以下のプラグインを入れた。
前者はワークスペースの移動時のプレビューを出してくれるやつ。
私はトグルをWin + Tab
に設定した。
後者はワークスペースをモニターごとに個別に番号を1から降ってくれるやつ。
Hyprlandのデフォルトのワークスペースの番号はすべてのモニターで共通なので、マルチモニターでワークスペースを使う場合にどのモニターでどの番号のワークスペースを使ったか覚えておく必要があり挙動が微妙だった。
同様のことをやるプラグインにhyprsomeとsplit-monitor-workspaceがあるが、上記プラグインがそれらの後継として新しいようなので入れた。
firefoxで右クリックしてメニューを出すとフリーズするというよくわからない問題があった。
色々探すとpipewireの周りでエラーが起こってそう。
これは自分のhyprlandの設定ファイルでexec-onceでwireplumberを起動していたのが問題だった。
wireplumberをsystemctl経由で起動するようにしたら何も問題なくなった。
systemctl --user enable wireplumber