AZERTY workspace binds dead on `be`: detection only matches kb_layout = "fr", and fr_keys is wrong for Belgian

Aperta Adatta ai principianti
#1,807 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
74/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
linux, lua
Ambito
desktop

Direzione di ricerca

Inizia da conf/keybindings/default.lua, in particolare dal rilevamento del layout e dal ciclo dei binding workspace intorno alle righe 16–28. Confronta la tabella dei tasti francese con i simboli XKB belgi elencati nell’issue, quindi aggiorna il rilevamento specifico del layout e i nomi dei tasti. Il lavoro è completato quando tutti e 20 i binding workspace usano tasti disponibili su AZERTY belga e i binding francesi continuano a funzionare.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement solved

Version: 2.15.1 · Layout: kb_layout = "be" (Belgian AZERTY) · Hyprland 0.56.2

Problem

conf/keybindings/default.lua:16 enables AZERTY key names only for exactly fr:

if content:match('kb_layout%s*=%s*"fr"') and not content:match('kb_variant%s*=%s*"us"') then

With kb_layout = "be", is_fr stays false, so the loop at line 28 binds literal digits. On AZERTY layouts the digits are at shift level 2, so neither SUPER + <n> nor SUPER + SHIFT + <n> ever fires — all 20 workspace binds are silently dead. hyprctl binds shows them registered on keys 1–0, they just can't be produced without SHIFT.

fr_keys is also not reusable for be

Belgian and French differ at indices 6 and 8 (/usr/share/X11/xkb/symbols/):

index fr_keys (line 22) Belgian actual
6 minus section
8 underscore exclam
be: key <AE06> {[ section,    6, asciicircum, fiveeighths ]};
    key <AE08> {[ exclam,     8, bracketleft, trademark   ]};
fr: key <AE06> {[ minus,      6, bar,         fiveeighths ]};
    key <AE08> {[ underscore, 8, backslash,   trademark   ]};

So extending the match to be alone would still leave workspaces 6 and 8 broken.

Suggested fix

Key the table on the layout rather than a boolean:

local azerty_keys = {
    fr = { "ampersand","eacute","quotedbl","apostrophe","parenleft",
           "minus","egrave","underscore","ccedilla","agrave" },
    be = { "ampersand","eacute","quotedbl","apostrophe","parenleft",
           "section","egrave","exclam","ccedilla","agrave" },
}

Workaround

In custom.lua. Hyprland dispatches every matching bind rather than the first, so the dead digit binds must be unbound, not just shadowed:

local be_keys = { "ampersand","eacute","quotedbl","apostrophe","parenleft",
                  "section","egrave","exclam","ccedilla","agrave" }
for i = 1, 10 do
    local digit = i % 10
    hl.unbind("SUPER + " .. digit)
    hl.unbind("SUPER + SHIFT + " .. digit)
    hl.bind("SUPER + " .. be_keys[i], hl.dsp.focus({ workspace = i }), {})
    hl.bind("SUPER + SHIFT + " .. be_keys[i], hl.dsp.window.move({ workspace = i }), {})
end
Lingua principale
QML
Stelle
5.1k
Fork
386
Merge medio
16h 45m
PR unite (30g)
14

Preparare l'ambiente

  • Nessun Dockerfile né file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di mylinuxforwork/dotfiles

Tutte le issue di mylinuxforwork/dotfiles

Issue simili

Altre issue su Desktop Dev

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.