Commit Graph
8 Commits
Author SHA1 Message Date
bjarneo e848f1df97 Merge pull request #10670 from bjarneo/fix/keyboard-layout-switches-wrong-device
Stop the layout widget switching a device nobody types on
2026-09-07 20:59:54 +02:00
Bjarne OeverliandClaude Opus 5 6ee7479879 Stop the layout widget switching a device nobody types on
Clicking the keyboard layout widget switches one device, chosen by
filtering the seat through UNTYPED_KEYBOARDS and then taking whichever
survivor sits furthest through the layout list. That filter has to
recognise every non-keyboard by name, and a laptop registers far more as
a keyboard than it lists.

On a Dell XPS 14, Hyprland reports ten keyboards and one of them is a
keyboard. The filter catches three of the other nine, leaving vendor
hotkey blocks (intel-hid-events, intel-hid-5-button-array,
dell-privacy-driver, dell-wmi-hotkeys) and two HID endpoints ahead of
at-translated-set-2-keyboard, which sorts last. Every click switches
hid-sdw:...-consumer-control instead, so the label cycles convincingly
while typing never changes. Device order is stable across polls, so it
is deterministic rather than a race, and needs no pre-existing bad state.

Switch every keyboard holding the same layout list instead, naming an
absolute index. "next" advances each device from wherever it sits, so a
seat that has already drifted apart stays drifted and merely inverts;
one index converges it in a single click, and a seat in lockstep leaves
the reading nothing to disagree about. Keyboards given their own
kb_layout hold a different list and are left alone, since an index into
this list would not mean the same layout to them.

The evdev KEY bitmap would separate these cleanly - the real keyboard
emits 167 keys, the pseudo-devices at most 19 - but hyprctl devices
reports no capability information, so the switch is taken out from
behind the name filter rather than the filter being lengthened.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-07 19:47:24 +02:00
bjarneo 7bd5bf25cd Remove the aether.nvim dependency (#4543)
* Remove the aether.nvim dependency

* Fix a blooper
2026-02-07 22:16:21 +01:00
bjarneo 0c9b38e507 Set the aether dependency using v2 directly (#4537)
* Set the aether dependency using v2 directly

* Format the object properly
2026-02-07 15:53:05 +01:00
bjarneo c289cd0730 Add vantablack theme (#4533) 2026-02-07 11:23:27 +01:00
bjarneo 62665abd0e Remove Aether nvim dependency (#3485)
This nvim theme is now standalone
2025-11-21 09:22:38 +01:00
bjarneoandDavid Heinemeier Hansson cd2a4e416b Add theme ethereal (#3464)
* Add theme Ethereal

* Update to follow the Omarchy hot reload

* Add aether to all themes

* Add a vscode theme

* Revert "Add aether to all themes"

This reverts commit 421f467e213150254ab10dbe09dd6382bf6c54eb.

* Format the kitty file

* Make available to all via migration

* Fix

* Add hot reload

* Change the background image to something of higher quality

This looks a lot better on a 6K monitor

* Highlight border color should be brighter than inactive color

* Add preview.png for new visual theme selector

* Add the ethereal nvim variant of aehter

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-11-20 11:05:07 +01:00
bjarneoandDavid Heinemeier Hansson a1b1eb5920 Add a new theme called Hackerman (#3317)
* Add a new theme called hackerman

* Update to follow the Omarchy hot reload

* Add high res wallpapers

* Add an initial vscode color scheme

* Excess CR

* Set the colorscheme name to aether

* Change the nvim plugin name back to aether

* Add hot reload

* Use a variant of aether

* Swap the starting background

* Add migration

* Add preview.png

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-11-20 10:54:17 +01:00