60 lines
1.9 KiB
Python
60 lines
1.9 KiB
Python
## Copyright (C) 2026 Solaar Contributors https://pwr-solaar.github.io/Solaar/
|
||
##
|
||
## This program is free software; you can redistribute it and/or modify
|
||
## it under the terms of the GNU General Public License as published by
|
||
## the Free Software Foundation; either version 2 of the License, or
|
||
## (at your option) any later version.
|
||
##
|
||
## This program is distributed in the hope that it will be useful,
|
||
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
## GNU General Public License for more details.
|
||
##
|
||
## You should have received a copy of the GNU General Public License along
|
||
## with this program; if not, write to the Free Software Foundation, Inc.,
|
||
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||
|
||
"""ISO QWERTZ layout (DE / CH).
|
||
|
||
ISO shape plus German label overrides (Y/Z swap, Ü/Ö/Ä/ß placement).
|
||
Adapted from OpenRGB.
|
||
"""
|
||
|
||
from __future__ import annotations
|
||
|
||
from ..layout import Layout
|
||
from ._keyboard_base import MAIN_ISO
|
||
from ._keyboard_base import build_layout
|
||
|
||
# zone_id → German label
|
||
_OVERRIDES: dict[int, str] = {
|
||
50: "^", # row 1 col 0 — caret/degree (DE keycap)
|
||
42: "ß", # row 1 col 11 — eszett
|
||
43: "´", # row 1 col 12 — acute accent
|
||
25: "Z", # row 2 col 6 — Y/Z swap
|
||
44: "Ü", # row 2 col 11
|
||
45: "+", # row 2 col 12
|
||
48: "Ö", # row 3 col 10
|
||
49: "Ä", # row 3 col 11
|
||
26: "Y", # row 4 col 2 — Y/Z swap
|
||
53: "-", # row 4 col 11
|
||
47: "#", # POUND key (row 3 col 12), between Ä and Enter
|
||
97: "<", # ISO_BACKSLASH (row 4 col 1), between Shift and Y
|
||
}
|
||
|
||
|
||
LAYOUT_FULL: Layout = build_layout(
|
||
MAIN_ISO,
|
||
include_numpad=True,
|
||
label_overrides=_OVERRIDES,
|
||
description="ISO QWERTZ (DE/CH) full-size",
|
||
)
|
||
|
||
|
||
LAYOUT_TKL: Layout = build_layout(
|
||
MAIN_ISO,
|
||
include_numpad=False,
|
||
label_overrides=_OVERRIDES,
|
||
description="ISO QWERTZ (DE/CH) tenkeyless",
|
||
)
|