*wayland.txt*	For Vim バージョン 9.1.  Last change: 2025 Nov 25


		  VIM リファレンスマニュアル	by Bram Moolenaar


Wayland プロトコルのサポート				*wayland*

1. Wayland の役立つ情報		|wayland-useful|
2. Wayland セレクション		|wayland-selections|

==============================================================================
1. Wayland の役立つ情報					*wayland-useful*

							*wayland-seat*
Wayland のクリップボードなどの機能を使用するには、シートが必要である。Wayland
シートは、キーボード、ポインター、タッチデバイスで構成される。使用するシートは
'wlseat' オプションで設定できる。これは、同じ Wayland セッションで複数の
Wayland シートを使用する場合にのみ役立つ。これが何を意味するのか分からないので
あれば、それはおそらくあなたにとって問題ではないだろう。

							*wayland-gui*
|gui-wayland| を参照。GUI 使用時、Vim はクリップボードへのアクセスに GTK など
のツールキットを使用し、Wayland 経由ではアクセスしない。これは |v:clipmethod|
変数で確認できる。GUI 実行時にはこの変数は "none" になる。

Wayland のコマンド:
							*:wlrestore* *:wl*
:wl[restore] [display]	Wayland コンポジタへの接続を再初期化する。Wayland コン
			ポジタの再起動後も Vim を screen/tmux セッションで実行
			し続ける場合に便利である。

			[display] は、環境変数 $WAYLAND_DISPLAY の形式（例:
			"wayland-0"）で指定する必要がある。[display] を省略し
			た場合は、このコマンドの前回実行時に使用された値と同じ
			値を使用して接続を再初期化する。
			値が指定されていない場合は、環境変数 $WAYLAND_DISPLAY
			の値が使用される。また、|v:clipmethod| も更新される。
			{Vimが |+wayland| 機能付きでコンパイルされたときのみ有
			効}

Wayland のエラー:
							*E1548*
Vim は Wayland コンポジタとの通信に失敗した。これは Wayland コンポジタのプロセ
スが強制終了したことが原因である可能性がある。再接続するには `:wlrestore` コマ
ンドを試すこと。

==============================================================================
2. Wayland セレクション					*wayland-selections*

Vim は、現在の Wayland セレクションにアクセスするための
wlr-data-control-unstable-v1 プロトコルと ext-data-control-v1 プロトコルをサ
ポートしている。これらは最適なシナリオのプロトコルである。
|wayland-focus-steal| を参照。この場合のセレクションは基本的に "clipboard" を
指す。Wayland コンポジタがこれらのプロトコルをサポートしているかどうかを確認す
るには、wayland-info コマンドを実行する。このコマンドは、あなたのシステムでは
libwayland にバンドルされているはずである: >
	wayland-info | grep -E '(ext_data_control|zwlr_data_control)'
<grep で一致するものが見つかった場合、システムにはどちらか、または両方のプロト
コルが存在する。一致するものが見つからない場合、詳細については
|wayland-focus-steal| を参照。

どちらかまたは両方のプロトコルをサポートすることが知られているコンポジタの一部:
    1. KWin (KDE)
    2. wlroots based (Sway, Labwc)
    3. Niri
    4. Hyprland
    5. Wayfire

X11 から移行する場合、通常の Waylandセレクション は X11 のクリップボードセレク
ションに相当し、プライマリ Wayland セレクションは X11 のプライマリセレクション
に相当する。これらのセレクションへのアクセスは Vim の X11 と同様で、+ レジスタ
が通常のセレクション、* レジスタがプライマリセレクションである。Note コンポジ
タがプライマリセレクションをサポートしていない可能性があることに注意。詳細は
|wayland-primary-selection| を参照。

							*wayland-persist*
X11 のカットバッファを使用する場合、Wayland にはそのような機能は存在しない。そ
のような機能をエミュレートするには、Wayland クライアントが終了した後も選択デー
タを保持するために、別のクリップボードマネージャーを使用する必要がある。

							*wayland-and-x11*
使用している Vim のバージョンが X11 と Wayland の両方のサポートでコンパイルさ
れている場合、Vim は 'clipmethod' オプションを使用してクリップボードにアクセス
するときにどちらを使用するかを決定する。

						*wayland-primary-selection*
X11 スタイルのプライマリセレクションが便利だと感じる場合、Wayland も独自のプロ
トコルでこの動作を実装している:

- プライマリセレクションプロトコルは最も広くサポートされているが、使用するには
  フォーカスが必要である。|wayland-focus-steal| を参照。

- システムで利用可能なデータ制御プロトコル (ext プロトコルや wlr プロトコルな
  ど) を使用している場合は、プライマリセレクションもサポートされる。ただし、
  wlr-data-control プロトコルのバージョン 1 (プロトコル名の 'v1' とは異なる)
  を使用している場合は、プライマリセレクションプロトコルがフォールバックとして
  使用される。

					*wayland-focus-steal* *wayland-gnome*
Wayland で GNOME デスクトップ環境を使用している場合、この記事の執筆時点では、
Vim などの外部クライアントがフォーカスされていない状態でクリップボードにアクセ
スしたり、クリップボードを変更したりする手段はない。この場合のフォーカスされて
いるの意味は、クライアントが何らかの入力イベント (ウィンドウがフォーカスされて
いるなど) を受信したことを意味する。これは、wlr-data-control-unstable-v1 プロ
トコルと ext-data-control-v1 プロトコルによって解決される。Wayland コンポジタ
が上記のプロトコルをサポートしていない場合は、上記の説明が適用される。

この問題を解決するため、Vim は一時的に透明なトップレベルサーフェスを作成するこ
とで、クリップボードにアクセスするためにフォーカスを取得する方法を実装してい
る。これはデフォルトでは無効になっているが、'wlsteal' オプションで有効にでき
る。さらに、キーボード付きのシート、'wlseat' を参照、および xdg-shell プロトコ
ルが利用可能である必要がある。加えて Vim は |+wayland_focus_steal| 機能を使用
してコンパイルする必要がある。

Note この方法は、フォーカスを奪取することによるいくつかの副作用を引き起こす可
能性があることに注意。例えば、デスクトップ環境に現在開いているアプリを表示する
タスクバーがある場合、Vim がフォーカスを奪取しようとすると、ウィンドウを開いて
すぐに閉じたかのように「ちらつく」ことがある。
さらに、フルスクリーンモードの場合、作成されたサーフェスがフォーカスを取得しな
いため、このフォーカス奪取は機能しない。この場合、Vim は一時的にフリーズしたよ
うに見える。詳細については、'wltimeoutlen' を参照。

 vim:tw=78:ts=8:noet:ft=help:norl:
