Add support for app-defined global keyboard shortcuts

This is unfortunately not a standardized feature. There is no standards-track Wayland protocol for it, and so far it exists only via the portal mechanism. However, a cursory look suggest that the gtk, wlr, xapp, and cosmic portals don't seem to support it, while the gnome, kde and hyprland portals do.

Hype\rland has a global shortcuts protocol that I think is actually quite nice. It puts control fully in the compositor's hands: the app just says that it wants to register a shortcut, and it's up to the compositor to ask the user what the shortcut should be. The client doesn't even get/need to know what the shortcut is; the client gets events when the user presses and releases the selected shortcut keys. It maps well onto the portal's interface too.

The lack of standardization is a problem, though I guess even non-sandboxed apps can go through the portal (which would require and impl for whatever protocol I decide on; I could just depend on hyprland's portal for that particular backend, though).

Another option is to just build the portal backend directly into xfwl4, though that doesn't seem to be a common approach among compositors. The nice benefit there is that it avoids the make-work of an intermediate protocol.

Edited by Brian Tarricone