Enerccio / ewlc

Wayland compositor library - extended
MIT License
20 stars 3 forks source link

Provide API for accessing and configuring input devices #14

Closed Enerccio closed 7 years ago

Enerccio commented 7 years ago

Issue by Cloudef Thursday Feb 26, 2015 at 10:34 GMT Originally opened as https://github.com/Cloudef/wlc/issues/6


Multiple keyboards with different layouts and rules is useful. So may be other device specific configuration (like disabling touchpad and so on).

Enerccio commented 7 years ago

Comment by wasamasa Thursday Feb 26, 2015 at 10:50 GMT


The general idea is that hacks like detecting a plugged in keyboard and setting keyboard options for the currently plugged one with a script are very brittle and hard to pull off correctly.

Xorg offers you to set XKB options both generally and for matching devices, with that functionality one can have keyboard-specific options that just work. It appears as if all keyboard input is matched against the device information and specified options.

Own config.

Enerccio commented 7 years ago

Comment by Cloudef Tuesday Aug 25, 2015 at 20:26 GMT


For now I exposed libinput devices in wlc.h, this probably makes most sense. But I keep this issue open if there are problems.

Enerccio commented 7 years ago

Comment by Cloudef Tuesday Aug 25, 2015 at 20:27 GMT


I also exposed xkb_keymap and xkb_state, however no multiple keyboards yet nor layout configuration ...

Enerccio commented 7 years ago

Comment by wasamasa Monday Oct 10, 2016 at 14:52 GMT


I've handed in an enhancement request for libinput: https://bugs.freedesktop.org/show_bug.cgi?id=98194

Enerccio commented 7 years ago

Comment by iv597 Wednesday Oct 19, 2016 at 03:01 GMT


Yep, I'm considering moving to Sway from AwesomeWM on Xorg, but I use dvorak - software on my laptop's internal keyboard, and hardware on my ErgoDox EZ. It took some fighting with xorg.conf, but it was doable. I see no real way of doing this in any wayland compositor I've looked into so far, short of using an XKB toggle key (maybe the AppMenu key? That annoying thing bound to Fn+RCtrl on my laptop internal board?)

Enerccio commented 7 years ago

Comment by Earnestly Wednesday Oct 19, 2016 at 12:50 GMT


All of those Xkb* options are exposed via environment variables which xkbcommon uses, e.g. XKB_DEFAULT_LAYOUT, XKB_DEFAULT_OPTIONS, XKB_DEFAULT_VARIANT, etc.

They all accept the same format and arguments as the xorg.conf.

Enerccio commented 7 years ago

Comment by wasamasa Thursday Feb 02, 2017 at 08:25 GMT


@iv597 I finally solved this in a global manner by writing my own hwdb rules that match per device, that way I only need to enable a compose key rule in Xorg (with setxkbmap or a config option) and Wayland (with XKB_DEFAULT_OPTIONS). In other words, I'm inclined to close this issue, but won't as there's a linked one that cannot be solved this way.

Relevant commit: https://github.com/wasamasa/dotfiles/commit/ca0825125ba0f026cafa3f4351a84eeaea25b410