NixOSにImmersedを導入する

November 11, 2023

しばらく先の私に向けた戦記を残しておきます。NixOSImmersed を完動させることが最終目的です。(NixOS 以外のユーザが読まれてもあまり意味が無いかもしれません。)

Immersed のLinux版(例: Immersed-x86_64.AppImage)を実行するには、appimage-runAppImage を実行)が要ります。

$ nix-shell -p appimage-run

取得した AppImage にユーザの実行権限を付与します。

$ chmod --verbose u+x Immersed-x86_64.AppImag
mode of 'Immersed-x86_64.AppImage' changed from 0644 (rw-r--r--) to 0744 (rwxr--r--)

実行するとエラー(libthai.so.0が見つからない)が出ると思います。

$ appimage-run Immersed-x86_64.AppImage
Immersed: error while loading shared libraries: libthai.so.0: cannot open shared object file: No such file or directory

そのため、環境変数「LD_LIBRARY_PATH」にlibthai.so.0libthai Library)のあるパスを通します。(以下、バージョンは読み替えてください。)

$ export LD_LIBRARY_PATH=/nix/store/hashcode-libthai-0.1.29/lib

リラン。先ほどのエラーは解消されましたが、新たなエラー(GLIBC_2.38が見つからない)が出ると思います。

$ appimage-run Immersed-x86_64.AppImage
ps: /usr/lib/libc.so.6: version `GLIBC_2.38' not found (required by ps)
ps: /usr/lib/libc.so.6: version `GLIBC_2.38' not found (required by /nix/store/hashcode-procps-3.3.17/lib/libprocps.so.8

glibc のバージョン2.38が見つからないようです。現時点においてnix packagesのstable版(23.05)は「Version: 2.37-45」に対し、unstable版は「Version: 2.38-23」です。

ということでchannelnixpkgs-unstableに向ければ良さそうです。pkgs.glibcを宣言したいところですが、実は nix-shellchannel:nixpkgs-unstableの環境に入ればpkgs.glibcの宣言は不要になります。(デフォルトの環境に含まれている様子。)

したがって、このエラーはshell.nixnix-shell)を経由することで解決します。であれば、初回のエラーをもう少しスマートに解消(組込)してみます。

# pkgs.appimage-runの宣言を忘れずに。

shellHook = ''
  export LD_LIBRARY_PATH=${pkgs.libthai}/lib
''

これでめでたく Immersed のウィンドウ(GUI)を起動できると思います。

$ appimage-run Immersed-x86_64.AppImage
Immersed-x86_64.AppImage installed in /home/username/.cache/appimage-run/hashcode

あとは画面の案内通りに接続先情報を入力すれば、接続先側にコンピュータがホスト名で追加されると思います。

X11 ユーザは恐らくこれで完了かと思います。お疲れ様でした。

Wayland ユーザは居残りです。不穏なメッセージが表示されたかと思います。

Wayland Window System is detected. Currently we only support
X11. Please consider to use X Window System for now.

結論、ImmersedWayland に対応していません!(ドン!!)

コンポジタで Xwaylandpkgs.xwaylandの宣言は不要)を有効(例: disableを解除)にし、xwininfoxorg.xwininfo)を起動してから Immersed のウィンドウをマウスホバーしてみます。するとマウスポインタが「+」に変化したと思います。

その意味は Xwayland 経由で(期待通りに)起動されているということになります(泣)残念ながらチェックメイトです。

ちなみに WinewineWowPackages.waylandFull)+ Winetrickswinetricks)では、アプリケーションの実行段階から雲行きが怪しい雰囲気です。よく忘れてしまうので、ついでに頻出のコマンドを控えておきます。

# .exe形式の実行
$ wine プログラム名.exe

# .msi形式の実行
$ wine msiexec /i プログラム名.msi

# Wine本体の設定(Windowsのバージョンなど)
$ winecfg

# Wineからインストールしたアプリケーション(~/.wine/drive_c/)をアンインストール
$ wine uninstaller

一筋の光が公式より「Wayland は将来的にサポート予定」とのことです。いつになるのか分かりませんが、そのときが来たらこの続きから着手しようかなと思います。