しばらく先の私に向けた戦記を残しておきます。NixOS で Immersed を完動させることが最終目的です。(NixOS 以外のユーザが読まれてもあまり意味が無いかもしれません。)
Immersed のLinux版(例: Immersed-x86_64.AppImage
)を実行するには、appimage-run
(AppImage を実行)が要ります。
$ 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.0
(libthai 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
」です。
ということでchannel
をnixpkgs-unstable
に向ければ良さそうです。pkgs.glibc
を宣言したいところですが、実は nix-shell でchannel:nixpkgs-unstable
の環境に入ればpkgs.glibc
の宣言は不要になります。(デフォルトの環境に含まれている様子。)
したがって、このエラーはshell.nix
(nix-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.
結論、Immersed は Wayland に対応していません!(ドン!!)
コンポジタで Xwayland(pkgs.xwayland
の宣言は不要)を有効(例: disable
を解除)にし、xwininfo(xorg.xwininfo
)を起動してから Immersed のウィンドウをマウスホバーしてみます。するとマウスポインタが「+」に変化したと思います。
その意味は Xwayland 経由で(期待通りに)起動されているということになります(泣)残念ながらチェックメイトです。
ちなみに Wine(wineWowPackages.waylandFull
)+ Winetricks(winetricks
)では、アプリケーションの実行段階から雲行きが怪しい雰囲気です。よく忘れてしまうので、ついでに頻出のコマンドを控えておきます。
# .exe形式の実行
$ wine プログラム名.exe
# .msi形式の実行
$ wine msiexec /i プログラム名.msi
# Wine本体の設定(Windowsのバージョンなど)
$ winecfg
# Wineからインストールしたアプリケーション(~/.wine/drive_c/)をアンインストール
$ wine uninstaller
一筋の光が公式より「Wayland は将来的にサポート予定」とのことです。いつになるのか分かりませんが、そのときが来たらこの続きから着手しようかなと思います。