labunix's blog

labunixのラボUnix

DISPLAY環境変数が異なる環境での「XTerm*selectToClipboard」はtoggleである点に注意する。

■DISPLAY環境変数が異なる環境での「XTerm*selectToClipboard」はtoggleである点に注意する。
 通常のGnome-session上のGnome-terminalとPutty+Xming+Gnome-terminalでの動作検証

$ sudo apt-get install -y xclip
$ apropos "xclip\$"
xclip (1)            - command line interface to X selections (clipboard)
$ xclip -h 2>&1 | grep "\-selection"
      -selection   selection to access ("primary", "secondary", "clipboard" or "buffer-cut")

■クリップボードの内容を確認する方法は2種類ある。
 GUIで確認するには「xclipboard」コマンド。ただし、「:0.0」ではエラーになる。

$ env DISPLAY="0.0" xclipboard
Error: another clipboard is already running

$ env DISPLAY="localhost:10.0" xclipboard

■CUIなら安心。

$ env DISPLAY=":0.0" xclip -o -selection PRIMARY;echo
$ env DISPLAY=":0.0" xclip -o -selection CLIPBOARD;echo

$ env DISPLAY="localhost:10.0" xclip -o -selection PRIMARY;echo
$ env DISPLAY="localhost:10.0" xclip -o -selection CLIPBOARD;echo

■Gnome-Terminalでのコピペ。
 Putty+XmingでGnome-terminalを起動してのテスト。

 デフォルトでのコピペは以下の2種類。
 2種類というのは、1,2は実質同じクリップボードを利用するため。
 3はPRIMARYまたは選択と呼ばれる。

 1.範囲選択をして、Shift+Ctrl+c、Shift+Ctrl+v。
 2.範囲選択をして右クリックコピー。右クリックで貼り付け。
 3.範囲選択をして(コピー)、中クリック(ペースト)

■PRIMARY/CLIPBOARD間でのコピーは以下のようにパイプすることで出来る。

$ xclip -o -selection PRIMARY | xclip -i -selection CLIPBOARD
$ xclip -o -selection CLIPBOARD | xclip -i -selection PRIMARY

■DISPLAY環境変数が異なってもパイプできる。

$ env DISPLAY=":0.0" xclip -o -selection PRIMARY | \
  env DISPLAY="localhost:10.0" xclip -i -selection PRIMARY

■「xrdb」コマンドにDISPLAY環境変数を渡すようオプションで指定する方法もある。

$ env DISPLAY=":0.0" xrdb -query
*customization:	-color
XTerm*selectToClipboard:	true
Xpdf*fileFilterStyle:	filter_hidden_files
Xft.dpi:	96
Xft.antialias:	1
Xft.hinting:	1
Xft.hintstyle:	hintmedium
Xft.rgba:	none

$ xrdb -query -display ":0.0"
*customization:	-color
XTerm*selectToClipboard:	true
Xpdf*fileFilterStyle:	filter_hidden_files
Xft.dpi:	96
Xft.antialias:	1
Xft.hinting:	1
Xft.hintstyle:	hintmedium
Xft.rgba:	none

$ env DISPLAY="localhost:10.0" xrdb -query
$ xrdb -query -display "localhost:10.0"

■xrdbコマンドで操作するには以下のようにする。

$ cat ~/.Xresources 
XTerm*selectToClipboard: true

$ xrdb -merge ~/.Xresources
$ xrdb -query
XTerm*selectToClipboard:	true

$ xrdb -remove
$ xrdb -query

$ xrdb -merge /etc/X11/Xresources/x11-common
$ xrdb -query
*customization:	-color

■以下のtoggleであることを試す。

 「:0.0」の「XTerm*selectToClipboard」が「true」なら、
 「localhost:10.0」の「XTerm*selectToClipboard」は「false」にしないとPRIMARYとCLIPBOARDは同期しない。

 「:0.0」の「XTerm*selectToClipboard」が「false」なら、
 「localhost:10.0」の「XTerm*selectToClipboard」を「true」にしないとPRIMARYとCLIPBOARDは同期しない。

■「:0.0」ではGnome-terminalを開くと「XTerm*selectToClipboard」が「true」だと同期する。

$ echo -n "primary,";xclip -o -selection PRIMARY;echo;   echo -n "clipboard,";xclip -o -selection CLIPBOARD;echo
primary,debian
clipboard,debian

■上記設定で、「localhost:10.0」のPutty+XmingからGnome-terminalを開くと「XTerm*selectToClipboard」が「false」だと同期する。

$ echo -n "primary,";xclip -o -selection PRIMARY;echo; \
  echo -n "clipboard,";xclip -o -selection CLIPBOARD;echo
primary,debian
clipboard,debian

■上記設定で、「localhost:10.0」のPutty+XmingからGnome-terminalを開くと「XTerm*selectToClipboard」が「true」だと同期しない。

$ xrdb -query
*customization:	-color
XTerm*selectToClipboard:	true

$ echo -n "primary,";xclip -o -selection PRIMARY;echo; \
  echo -n "clipboard,";xclip -o -selection CLIPBOARD;echo
primary,debian
clipboard,

■「:0.0」ではGnome-terminalを開くと「XTerm*selectToClipboard」が「false」だと同期しない。

$ echo -n "primary,";xclip -o -selection PRIMARY;echo; \
  echo -n "clipboard,";xclip -o -selection CLIPBOARD;echo
primary,debian
clipboard,

■上記設定で、「localhost:10.0」のPutty+XmingからGnome-terminalを開くと「XTerm*selectToClipboard」が「false」だと同期しない。

$ xrdb -query
*customization:	-color
XTerm*selectToClipboard:	true

$ echo -n "primary,";xclip -o -selection PRIMARY;echo; \
  echo -n "clipboard,";xclip -o -selection CLIPBOARD;echo
primary,debian
clipboard,

■上記設定で、「localhost:10.0」のPutty+XmingからGnome-terminalを開くと「XTerm*selectToClipboard」が「true」なら同期する。

$ xrdb -remove
$ xrdb -query
$ echo -n "primary,";xclip -o -selection PRIMARY;echo; \
  echo -n "clipboard,";xclip -o -selection CLIPBOARD;echo
primary,debian
clipboard,debian