====== MobaXterm ======
===== 概要 =====
[[https://mobaxterm.mobatek.net|MobaXterm]] はタブ型の端末ソフトで、SSH端末機能や、Xサーバ機能を内包した多機能端末である。
===== TIPS =====
==== Xサーバーの設定について ====
バージョン20.6において、XサーバーのOpenGLアクセラレーションがONになっていると、PC-6001VXは動かない。
==== WSL2環境におけるDISPLAYの設定について ====
WSL2環境下において、起動するたびに172.16.0.0/12 のプライベートアドレスのいずれかが割り当てられるためIPアドレスは不定となる。
ホスト側になる Windowsに関しても同様であるため、環境変数DISPLAYは都度設定しなおす必要がある。
=== IPアドレスの取得 ===
WSL2環境のホスト名は、Windowsの端末名を利用しているので、これを利用して、ホストのIPアドレスを取得する方法を以下に示す。
なお、Windowsの端末名を「デスクトップ」などの日本語にしている場合にはどうなるかわからない。((そういう名前を付けたことがないので。))
今、仮に、Windowsの端末名が、古い伝統に則り((かつて伊藤忠テクノソリューションズからSun4などを買ったときについてくるマニュアルでは、端末名の例として''venus''が使われていて、そこら中に ''venus''という端末が転がっていた、という伝統(都市伝説?)。))、''venus'' だったとする。
''~/.bashrc''などに、以下の行を追加する。
if [ -z "${HOSTNAME}" ]; then
HOSTNAME=venus
fi
DISPLAY=`dig +short ${HOSTNAME}|head -n 1`:0 export DISPLAY
これにより、毎回、DISPLAYを手動で設定する必要がなくなる。
なお、Xサーバの設定を On Demandにしていると、都度、アクセス許可を求められるので、注意。
===== Pulse Audio =====
Linux環境で広く音を鳴らすためのサービスとして用いられている PulseAudioであるが、残念ながら、MobaXtermには統合されていない。
このため、MobaXtermとは別途、PulseAudioサーバを立ち上げておかなければならない。
本来は別のソフトであり、別途まとめるべき内容だが、運用上はMobaXtermと抱き合わせになる形なので、ここに記しておく。
==== 入手 ====
[[https://www.freedesktop.org/wiki/Software/PulseAudio/|Pulse Audio]]は本来はソースからbuildして利用すべきなのだろうけれど、Windows用のバイナリが配布されているので、ここではそれを利用する。
[[http://bosmans.ch/pulseaudio/pulseaudio-1.1.zip|ここ]]から1.1とやや古いバージョンのバイナリーがダウンロード可能である。
頑張って最新の機能やセキュリティを追いかけたい向きは、ソースからビルドして利用すればいいだろう。
バイナリーは特にパッケージの形であったりはしないので、適当なところに展開する。
当方は、''C:\Program Files (x86)\PulseAudio'' に展開したが、管理者権限が~とうるさいので、''C:\Users\<ユーザ名>\PulseAudio'' とかでもいいだろう。
ただ、後でサービス化することを念頭に置いていたので面倒でも、標準のパスに置いた方がいいかと思ったのでそうしてある。
別にそこまでこだわる必要もないかもしれないのだが。
どうせ、KeyHac は ''C:\Users\<ユーザ名>\keyhac''の下に展開してあるのだし。
==== 設定 ====
設定ファイルは、パッケージを展開したところにある ''etc\pulse''の下にある。
このうち、''default.pa''と''daemon.conf''の二つを修正する必要がある。
''default.pa''
43行目に''record=0''を追記、61行目のコメントマークを削除して、接続許可するIPを範囲指定する。
...
39 ### Load audio drivers statically
40 ### (it's probably better to not load these drivers manually, but instead
41 ### use module-udev-detect -- see below -- for doing this automatically)
42 load-module module-waveout sink_name=output source_name=input record=0
43 #load-module module-null-sink
44
...
59 ### here if you plan to use paprefs)
60 #load-module module-esound-protocol-tcp
61 load-module module-native-protocol-tcp auth-ip-acl=127.0.0.0/8;172.16.0.0/12;192.168.0.0/24
62
...
''daemon.conf''
39行目のコメントマークを外して、値を''-1''に変更。
39 exit-idle-time = -1
=== UNIX側の設定 ===
一般的には、環境変数''PULSE_SERVER''に、PulseAudioサーバを運用している端末名またはIPアドレスを設定する。
ここでは、WSL2環境において、自動的に取得する方法を記す。
基本的には、Xサーバに対する''DISPLAY''と同様である。
if [ -z "${HOSTNAME}" ]; then
HOSTNAME=venus
fi
PULSE_SEVER=`dig +short ${HOSTNAME}|head -n 1` export PULSE_SERVER
==== サービス化 ====
Windows版の Pulse Audio 1.1は、残念ながら Windowsのサービスとして構築されていないため、都度、手動で実行してやる必要があり利便性が低い。
MobaXtermに統合されていれば、MobaXtermの起動とともに使用可能となり便利なのだが、そうはなっていない。
そこで、ここにWindowsのサービスとして起動する方法を記す。
=== NSSMの利用 ===
[[https://nssm.cc/|NSSM]]は**the Non-Sucking Service Manager**の略で、非サービスのアプリケーションをWindowsのサービス化してくれるサービスである。
Windows標準のscとの違いは、非サービスのアプリも対象であることだろう。
== NSSMによるサービスへの登録 ==
''NSSM.EXE''を、''C:\Windows\System32''などにコピーしたら、管理者として実行している、コマンドプロンプトやPowerShellなどのコマンドラインから、以下のように起動する。
C:\Windows\System32> NSSM install <サービス名>
すると、ダイアログがポップアップするので、コマンドラインおよび引数、起動方法などを設定し、installして終了する。
{{:nssm:メインタブ.png?600|メインタブ}}
{{:nssm:詳細タブ.png?600|詳細タブ}}