Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • W weston
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 316
    • Issues 316
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 119
    • Merge requests 119
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • wayland
  • weston
  • Issues
  • #347

Closed
Open
Created Jan 23, 2020 by Sebastian Wick@swick

Support per-keyboard xkb configs

Currently key events from different keyboard devices get merged into a single stream of events with a single xkb config (i.e. wl_keyboard on a single seat).

This prevents the user from configuring a per-keyboard xkb config (e.g. German keyboard with German and US layout + US keyboard with US and Dvorak layout).

It also prevents keyboards with more interesting non-standard layouts to load a special xkb config for that particular device (e.g. Chromebook keyboards with the function-key row replaced with media-keys). Those devices have the udev property XKB_FIXED_MODEL set to a specific xkb model.

Changing the wl_keyboard's xkb config depending on which device the event originated from can lead to inconsistent xkb state !292 (comment 319923). An alternative would be to (ab)use the wl_seat interface to provide another wl_keyboard and have that follow the real wl_seat. A similar problem arises from the virtual-keyboard protocol wayland-protocols!11 (comment 381524).

Edited Jan 23, 2020 by Sebastian Wick
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking