This strip everything that isn't the key we come for, Shift and Abc.
Signed-off-by: Willow Barraco <contact@willowbarraco.fr>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
most compose layouts are more minimalistic don't have space/backspace/enter anymore, pressing
a key will close the layout anyway. All layouts retain an Abc button
, even though tapping any non-key will close the layout just as well.
Some compose layouts have added modifiers (ctrl, alt, super) in the
bottom row
This is basically the same as the old 'full' layout, the new 'full'
layout removed some keys to reduce width. But on bigger devices like
tablets the old full layout was fine.
No need to have all layouts in the layers anymore, all layouts can be
accessed through Cmp + space / Cmp + layout switch button. Users are
encouraged to set `-l` and/or `--landscape-layers` to set their own
preference.
- The full layout now squashes less keys in a row, to accomplish this
the semicolon/colon, equal/plus and alt keys had to be sacrificed
from the full layout (they're on the special/symbols layout still).
- The half-keys in the simple layout are removed, giving a bit more
space.
- The default total keyboard height has been slightly enlarged (10px)
- The compose key moved down, it was too close to the 'a' (accidental
presses). The tab key moved to the top-right.
- The spacing between the buttons is slightly larger (aesthetic only)
- The key for layer switching is now labelled more consistently with an icon, and indicates direction of switching with an arrow
- An extra "index" layout was added that can be activated by pressing
Compose + the next/prev layout button. It has a key for each layout,
even those not specified at start. This special layout does not appear
in the normal layer cycling.
- The "Abc" key on secondary layers returns to the last alphabetical layout
- The compose layouts automatically hide when the user presses the space
where there are no keys, no need to explicitly press the "Abc" key.
Add a new parameter `--landscape-layers` as well as an environment
variable `WVKBD_LANDSCAPE_LAYERS` that allows the user to override the
default set of layers in landscape mode. This complements the existing
`-l` parameter and `WVKBD_LAYERS` environment variable, which do the
equivalent for non-landscape mode.
Furthermore, add documentation for the new switch. Move the `-l`
parameter to the bottom so we don't have to realign all parameters and
so all layer-related parameters are grouped together.
The user can optionally override the list of keyboard layers compiled
into the executable. Right now this only works for non-landscape mode
though.
Pull out the logic to parse the list of keyboard layers so that we can
reuse it to also optionally override layers in landscape mode.
To get a list of available layers for the -l option.
Signed-off-by: Emmanuel LE TRONG <emmanuel.le-trong@cnrs-orleans.fr>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
- shift (or capslock) switch to the previous layer in the defined order
- control, alt or compose resets the view to the first layer
related fix: compose key resets on layer switch (doesn't stick now)
Previously wvkbd would commit an (usually) unchanged surface at the
framerate of the compositor, this only commits the buffer when we render
something new.
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
Switch to using signalfds because using the signal syscall was causing
problems without the frame callbacks (the change in the next commit), I
think this is because it would end up with multiple tasks polling the
same wayland file descriptor.
Previously this would exit after the second SIGPIPE signal. I checked
with earboxer on irc, and confirmed that handling all occurrences is the
correct behavior.
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
If there are more layers in one orientation than the other this can
cause wvkbd to overshoot the end of the layer list when switching
layers. It also means that switching layers after rotating will jump to
the next layer in the list, which is somewhat unexpected.
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
Since layer_surface_configure was changed to only call kbd_resize when
an output dimension changed, kbd_resize doesn't get called if the
keyboard was hidden and is being shown again, meaning it doesn't tell
the compositor about the scale.
This causes it to only output the top-right quarter of the keybaord
stretched to the entire window size after a SIGUSR1 + SIGUSR2 cycle with
the display scale set to 2.
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
Most displays are in landscape mode by default, so checking to see if
it's rotated will produce the exact opposite of the expected results.
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>