x11ポートフォワード
先ずはx11forwordingでLinuxアプリケーションをWindows上で起動してみます。
ちなみにLinuxをクライント、Windowsをサーバーと表現しています。
ご注意願います…
クライアントの設定変更
先ずはsshの設定を変更します。
nano等のエディタで「/etc/ssh/sshd_config」を以下の様に編集します。
【変更前】
84 #AllowAgentForwarding yes
85 #AllowTcpForwarding yes
86 #GatewayPorts no
87 #X11Forwarding no
88 #X11DisplayOffset 10
89 #X11UseLocalhost yes
90 #PermitTTY yes
【変更後】
84 #AllowAgentForwarding yes
85 AllowTcpForwarding yes
86 #GatewayPorts no
87 X11Forwarding yes
88 X11DisplayOffset 10
89 X11UseLocalhost yes
90 #PermitTTY yes
次に、x11forwordingに必要なパッケージをインストールします。
必要なパッケージは「xorg-xauth」と「xorg-xhost」です。
以下のコマンドを実行して、インストールしてください。
pacman -S xorg-xauth xorg-xhost
また、テスト用として「xeyes」をインストールします。
pacman -Ss xorg-xeyes
ここで、ArchLinuxを一旦再起動します。
再起動している間に、サーバー側の設定をします。
サーバーの設定
今回はXサーバーとして「VcXsrv」を使用します。
インストール方法はこちらを参照してください。
次にターミナルソフトの設定を変更します。
最近のターミナルソフトにはx11forwordingの設定があるかと思います。
x11forwordingの設定をディスプレイ番号?10で有効にします。
これはクライアント側の「X11DisplayOffset 10」に紐付いています。
最後にXサーバーを起動します。
起動時にディスプレイ番号のテキストボックスがあるのでそこに「10」を入力します。
(初期値は「-1」になっています)
後はデフォルトのままで問題ありません。
xeyesの起動
ターミナルソフトからArchLinuxにログインします。
確認のため以下のコマンドを実行してください。
echo $DISPLAY
これで以下の様に表示されれば、OKです。
localhost:10.0
ターミナルソフトによって多少表示される内容が異なる場合があるかもしれません。
(例えば…「:10」「127.0.0.1:10.0」「:10.0」など…)
特に気にしなくても大丈夫です。
もし、何も出ない場合は、ターミナルソフトの設定や、ArchLinuxを再起動してみてください。
では…「xeyes」を起動してみます。
以下のコマンドを実行してみてください。
xeyes
どうでしょう?Windows上に目玉が出てくれば成功です。
デスクトップまるごとx11forwording
今度はデスクトップまるごとx11forwordingしてみます。
セッションを開始するコマンドを実行すれば、デスクトップを持ってこれます。
LXDEの場合
まずは軽量なデスクトップ環境(LXDE)を使用します。
クライアント側で作業してください。
LXDEのインストール
以下のコマンドを実行して、LXDEをインストールします。
(「じゃあ、初めっからGNOMEなんて入れないで、LXDEにすれば良いじゃん!」というツッコミは無しで…)
pacman -S lxde
実行
以下のコマンドを実行すれば、デスクトップまるごと持ってこれます。
lxsession
簡単でした…
GNOMEの場合
Xorgセッションの場合
以下のコマンドで、デスクトップまるごと持ってこれます。
gnome-session
Classicセッションの場合
以下のコマンドで、デスクトップまるごと持ってこれます。
export XDG_CURRENT_DESKTOP=GNOME-Classic:GNOME
export GNOME_SHELL_SESSION_MODE=classic
exec gnome-session --session=gnome-classic