fix(sway): use the us(dvorak) variant, not a "dvorak" layout
Dvorak is a variant of the "us" XKB layout, not a layout of its own: there is no symbols/dvorak file, so "dvorak" fails to compile. In the greetd/cage greeter the keymap comes solely from XKB_DEFAULT_*, so the failure left the greeter with no keymap and therefore no keyboard input at all (mouse unaffected). Split it into XKB_DEFAULT_LAYOUT=us + XKB_DEFAULT_VARIANT=dvorak. The same mistake in the Sway session (home/sway.nix) was masked: the default us keymap compiled and the failing override was silently dropped, so the session ran QWERTY despite the dvorak setting. Use xkb_variant there too so it is actually Dvorak. console.keyMap = "dvorak" (workstation.nix) is unaffected -- that is a kbd console map, a separate subsystem where "dvorak" is valid. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -26,7 +26,13 @@
|
||||
# Launcher: sway-launcher-desktop running inside a floating foot window.
|
||||
menu = "${pkgs.foot}/bin/foot --app-id=launcher ${pkgs.sway-launcher-desktop}/bin/sway-launcher-desktop";
|
||||
|
||||
input."type:keyboard".xkb_layout = "dvorak";
|
||||
# Dvorak is a variant of the "us" layout, not a standalone layout --
|
||||
# `xkb_layout = "dvorak"` fails to compile (no symbols/dvorak) and wlroots
|
||||
# silently falls back to QWERTY. Use the variant.
|
||||
input."type:keyboard" = {
|
||||
xkb_layout = "us";
|
||||
xkb_variant = "dvorak";
|
||||
};
|
||||
|
||||
window.commands = [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user