Implement libinput device configuration

We need to defer config application to the first manage_start event
using a should_manage flag so that all *_support events have arrived
before we try applying the configs

This commit also has two other fixes
- fixes a potential use-after-free by telling InputDevice when a
 LibinputDevice is .removed.
- fix logFn (removed "if (scope != .default) return;")

I used kwm to help figure out the manage pattern for the input config.
Link to kwm: https://github.com/kewuaa/kwm
This commit is contained in:
Ben Buhse 2026-02-10 20:06:17 -06:00
commit 296f875993
No known key found for this signature in database
GPG key ID: 7916ACFCD38FD0B4
5 changed files with 184 additions and 22 deletions

View file

@ -10,14 +10,20 @@ SPDX-License-Identifier: GPL-3.0-or-later
These are in rough order of my priority, though no promises I do them in this order.
- [ ] Support `None` modifier for keybinds (needed for media/brightness keys)
- [ ] Support per-host config using properties (maybe also per-output?)
- [ ] Add input configuration, i.e. pointer acceleration and that type of thing
- [ ] Support a basic bar
- [ ] Support starting programs at WM launch
- [ ] Support overriding config location
- [ ] Add support for multimedia/brightness keys (this might not be neccesary)
- [ ] Support window rules (float/tags/SSD by app-id/title)
- [ ] Support switch handling (e.g. lid close)
- [ ] Support multiple seats
- [ ] Support clipping floating windows on edge of/between outputs
- [ ] Support keybind modes (e.g. passthrough)
- [ ] Support `focus-follows-cursor` granularity (`normal` vs `always`)
- [ ] Support solid `background-color` fallback (no wallpaper)
- [x] Support changeable primary ratio
- [x] Support changeable primary count
- [x] Support multiple outputs