CygwinのX ServerとWindows間でコピー&ペーストを実現する方法

ず〜と、CygwinのX ServerはWindows上のアプリとの間でコピー&ペーストができないと思っていたのですが、同僚の方から以下のようにすると可能だよ教えて頂きました。

  • こんな感じで、X Serverの起動オプションに『-clipboard』を追加する
@echo off
SET REMOTE_HOST=<ここに接続先のサーバ名を指定>
SET DISPLAY=<任意のディスプレイ番号を『:1』、『:2』、『:3』などと指定>

SET CYGWIN_ROOT=

SET PATH=.;%CYGWIN_ROOT%\bin;%CYGWIN_ROOT%\usr\X11R6\bin;%PATH%

SET XAPPLRESDIR=/usr/X11R6/lib/X11/app-defaults
SET XCMSDB=/usr/X11R6/lib/X11/Xcms.txt
SET XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
SET XNLSPATH=/usr/X11R6/lib/X11/locale

if not exist %CYGWIN_ROOT%\tmp\.X11-unix\X0 goto CLEANUP-FINISH
attrib -s %CYGWIN_ROOT%\tmp\.X11-unix\X0
del %CYGWIN_ROOT%\tmp\.X11-unix\X0

:CLEANUP-FINISH
if exist %CYGWIN_ROOT%\tmp\.X11-unix rmdir %CYGWIN_ROOT%\tmp\.X11-unix

echo startxdmcp.bat - Starting on Windows NT/2000/XP
run XWin %DISPLAY% -query %REMOTE_HOST% -nodecoration -lesspointer -clipboard
  • 上記手順を実施してもダメな場合は、Linux側のGDM定義ファイル(/etc/gdm/gdm.conf)を変更する
# To try to kill all clients started at greeter time or in the Init script.
# does not always work, only if those clients have a window of their own.
#KillInitClients=true                    <= 元々はこっちでした
KillInitClients=false                    <= false へ変更しました
LogDir=/var/log/gdm

注)私の場合は、Ubuntu Linuxで確認しました。

  • 例えば、UbuntuからWindowsのノートパッドへのコピー&ペーストや



  • WindowsのノートパッドからUbuntuへのコピー&ペーストが可能となります!


ちなみにちょっと調べた限りでは、Cygwin側に起動オプションを追加しただけで、SPARCSolaris 8とのコピー&ペーストが可能なことが確認できました。(^o^)v
う〜ん、素晴らしい。これで私は商用のPC X Serverを購入する必要性がなくなりました。(^o^)/