vim-jp / vimdoc-ja / wayland

wayland - Vim日本語ドキュメント

メインヘルプファイルに戻る English | 日本語 | 編集
wayland.txt   For Vim バージョン 9.1.  Last change: 2025 Jun 28


                  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 を参照。

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 プロトコルが
利用可能である必要がある。

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

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