-
libgnomekbd/xklavier aren't a good fit to have the keyboard input story that we want since they rely on implementation details of the XKB protocol to provide users with a means to switch keyboard layouts. Of note here is a) their reliance on XKB groups, of which there can be only up to 4, to specify the layouts the user is able to switch between and b) their reliance on XKB options to specify the keybinding to switch layouts which is a restricted set and falls outside the regular GNOME desktop wide keybindings management as it's implemented entirely on the X server side. This commit introduces the use of a shared GSettings schema from gsettings-desktop-schemas which will be the storage for our new concept of "input sources". We only handle XKB layouts as input sources for now. We do it using roughly the same method that setxkbmap(1) uses which should allow the users that want to specify their own XKB features (except layout) to still do so outside of GNOME (e.g. in a session startup script). https://bugzilla.gnome.org/show_bug.cgi?id=676102
b6e011ad