Tag: Wayland

Wayland desktopでキーバインドをOS横断に寄せる設計メモ

Wayland desktopでキーバインドをOS横断に寄せる設計メモ

目的

macOS、Windows、Linux で、アプリ起動、ウィンドウ移動、タイル配置、仮想デスクトップ移動の操作感を近づけたい。 ただし Linux Wayland では、X11 時代のように外部プロセスから任意ウィンドウを横断操作する前提にしていない。

Wayland では compositor が入力とウィンドウ管理の権限境界になる。 このため、キーボードの低レイヤ変換とウィンドウ操作を分ける。

一旦考えた基本方針

  • CapsLock/Ctrl や layer 的なキー変換は keyd に寄せる
  • アプリ起動、ウィンドウ移動、最大化、タイル配置は compositor / window manager 側に寄せる
  • KDE Plasma Wayland では KWin global shortcut と .desktop entry を使う
  • labwc では ~/.config/labwc/rc.xml の native action を使う
  • package install、service enable、設定配置は Ansible などの構成管理に寄せる

keyd は「キーを別のキーとして見せる」層に留める。 アプリ起動やウィンドウ制御まで keyd でやろうとすると、Wayland の compositor 境界を迂回する設計になりやすい。

責務分離

領域Linuxでの担当理由
CapsLockをCtrlにするkeydsession / compositor 非依存にしたい
Hyper風の修飾キーkeyd または keyboard firmware入力層で完結させたい
アプリ起動.desktop entry / compositor shortcutdesktop environment の仕組みに乗せる
ウィンドウのhalf snapKWin / labwc native actionWayland では compositor が正規の管理者
物理ディスプレイ間移動KWin / labwc native actionmonitor layout を compositor が持つ
同一アプリ内のwindow cyclecompositor native action外部プロセスで window list を触らない

KDE Plasma Wayland

KDE Plasma Wayland では、KWin の global shortcut と .desktop entry を中心にする。

Read more...