目次

MobaXterm

概要

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の端末名を「デスクトップ」などの日本語にしている場合にはどうなるかわからない。1)

今、仮に、Windowsの端末名が、古い伝統に則り2)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と抱き合わせになる形なので、ここに記しておく。

入手

Pulse Audioは本来はソースからbuildして利用すべきなのだろうけれど、Windows用のバイナリが配布されているので、ここではそれを利用する。 ここから1.1とやや古いバージョンのバイナリーがダウンロード可能である。 頑張って最新の機能やセキュリティを追いかけたい向きは、ソースからビルドして利用すればいいだろう。

バイナリーは特にパッケージの形であったりはしないので、適当なところに展開する。

当方は、C:\Program Files (x86)\PulseAudio に展開したが、管理者権限が~とうるさいので、C:\Users\<ユーザ名>\PulseAudio とかでもいいだろう。

ただ、後でサービス化することを念頭に置いていたので面倒でも、標準のパスに置いた方がいいかと思ったのでそうしてある。 別にそこまでこだわる必要もないかもしれないのだが。

どうせ、KeyHac は C:\Users\<ユーザ名>\keyhacの下に展開してあるのだし。

設定

設定ファイルは、パッケージを展開したところにある etc\pulseの下にある。 このうち、default.padaemon.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の利用

NSSMthe Non-Sucking Service Managerの略で、非サービスのアプリケーションをWindowsのサービス化してくれるサービスである。

Windows標準のscとの違いは、非サービスのアプリも対象であることだろう。

NSSMによるサービスへの登録

NSSM.EXEを、C:\Windows\System32などにコピーしたら、管理者として実行している、コマンドプロンプトやPowerShellなどのコマンドラインから、以下のように起動する。

C:\Windows\System32> NSSM install <サービス名>

すると、ダイアログがポップアップするので、コマンドラインおよび引数、起動方法などを設定し、installして終了する。

メインタブ 詳細タブ

1)
そういう名前を付けたことがないので。
2)
かつて伊藤忠テクノソリューションズからSun4などを買ったときについてくるマニュアルでは、端末名の例としてvenusが使われていて、そこら中に venusという端末が転がっていた、という伝統(都市伝説?)。