summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-10-01Release 2.43xkeyboard-config-2.43Sergey Udaltsov2-1/+3
2024-10-01Prerelease translations updatedSergey Udaltsov18-23013/+25742
2024-10-01doc: Update changelog for 2.43Pierre Le Marre20-47/+96
2024-09-21Prerelease potfileSergey Udaltsov2-1170/+1242
Signed-off-by: Sergey Udaltsov <sergey.udaltsov@gmail.com>
2024-09-21Add +add-ruintl-layout.feature.mdDenis Kaliberov1-0/+4
2024-09-21Update base.extras.xml, ruDenis Kaliberov2-0/+169
2024-09-21Update Colemak-DH to treat `<CAPS>` as Caps LockCallum Andrew2-0/+3
2024-09-19Add changelog entry for 3l layout updatecboushehri1-0/+1
2024-09-19Add qwerty symbols to 3l layoutcboushehri1-21/+27
2024-09-19Update German keyboard according to DIN standardFeli Kramer2-9/+14
In the August 2023 revision of the DIN 2137-1 standard, some changes to the keyboard layers were made. Most importantly, the third layer of the w, t, and i keys was switched around. That was already accounted for in a previous commit. The other changes were all in "group 2" of the keyboard. Those changes are included in this commit. A summary of the changes in the standard is freely available at <https://www.dinmedia.de/de/norm/din-2137-1/353663175>, in German, under "Änderungsvermerk". Relevant for this commit are points f), g), h), and i).
2024-09-19apl(level3): Do not set group nameSamuel Jimenez1-3/+0
This is a partial layout that is meant to augment an existing layout. The group name should not be set in `apl(level3)`, otherwise it would override the original layout name.
2024-09-05meson: Add option to create non-Latin layouts listPierre Le Marre4-13/+51
New option `non-latin-layouts-list` (off by default), to produce 2 CSV files (one per main rules set): - `non-latin-layouts-base.csv` - `non-latin-layouts-evdev.csv` These files are needed by e.g. the Debian installer to automatically add a US layout in case the selected layout cannot output required Latin characters. Activate this option in our CI.
2024-09-05Add script to extract list of (non-)Latin layoutsPierre Le Marre1-0/+245
This produces a CSV file with (non-)Latin layouts by analyzing all the keysyms of each layout and check for required ones. This is more reliable than checking the language tags of layouts, because a language may have multiple scripts and the language tags may be incorrect or incomplete. Method: 1. Get layouts via `xkbregistry`. 2. For each layout, check if it has all the basic Latin letters. 3. Export the filtered layouts as CSV. Note that some layouts are “almost” Latin as they miss only a few letters. Such layouts are considered non-Latin but raise a warning.
2024-09-05tests: Add features to xkbcommon modulePierre Le Marre1-6/+110
Add various useful functions, in particular `ForeignKeymap.get_keys_levels` to iterate over all key, group, levels and get the corresponding keysyms. This provides a way to analyze available keysyms in a layout. We can then e.g. determine if a layout is “Latin” by checking it can produce all the basic letters of the Latin alphabet.
2024-09-05options: Added caps:returnPierre Le Marre3-0/+12
Added `caps:return` to make the `Caps Lock` key an additional `Return` key.
2024-09-03keycodes: Warning for indicators indexes and namesPierre Le Marre1-0/+3
These values are hardcoded in various places, e.g.: - libxkbcommon - xf86-input-evdev - xf86-input-libinput Added a warning to not modify them without synchronizing the corresponding projects.
2024-09-02triage: Add stale issues and MRs handlingPierre Le Marre2-8/+196
Previous commits attempted to use bugbot to handle stale issues and MRs, but bugbot only reacts on labels presence, it does not add them based on some conditions. The workflow is: - An issue or MR is tagged automatically as stale after some period of inactivity, unless it has the label “skip: stale triage”. - An issue or MR can be tagged manually as stale if it seems relevant to the maintainers. This is useful because the inactivity period in the previous section is quite long. - A tagged stale issue or MR is closed automatically. - When an issue or MR closed by the previous rules is re-opened, its labels related to its stale status are removed. This commit adds a pipeline dedicated to triage, that is run only when scheduled. The previous jobs are modified to run only if the pipeline is *not* scheduled.
2024-09-02ci: don't run MR pipelines in forksPeter Hutterer1-2/+4
Commit originally by Simon Ser in wayland/wayland-protocols!305. Currently our CI setup has a downside: for each push on a merge request, two pipelines are triggered. The first is triggered in the context of the forked repository, and the second is triggered in the context of the MR in the parent repository. Replace the uorkflow rules with the ones in the official docs [1], so that a branch pipeline isn't triggered when a MR exists for that branch. [1]: https://docs.gitlab.com/ee/ci/yaml/workflow.html#switch-between-branch-pipelines-and-merge-request-pipelines Part-of: <https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/merge_requests/741>
2024-08-29triage: Do not mix stalebot with bugbotPierre Le Marre1-89/+1
2024-08-28doc: Add Diktor layout changelog entryHloja Niželjska1-0/+3
2024-08-27triage: Fix Yaml listsPierre Le Marre1-14/+8
2024-08-27triage: Prefix label with bugbot::Pierre Le Marre1-10/+10
2024-08-27triage: Add policies for stale issues and MRsPierre Le Marre1-0/+102
2024-08-27Fix NEC Japanese layout having two groupsPierre Le Marre4-118/+173
According to our doc and practices, symbols should be defined only for the first group. There are still a few layouts defining simultaneously two groups. One of them is `nec_vndr/jp`, which has also a dedicated rule. This commit fixes only this layout in preparation of a refactor for `inet` rules. - Split `nec_vndr/jp(pc98)` into two sections: `pc98` and `jp`, and make the latter the default section. - Fix the rules to ensure using this layout with the model `pc98` will load *explicitly* 2 layouts, as this is the case for other models. - Make the rules match `jp` layout, not `nec_vndr/jp`. No other rule used the vendor path to match a layout. The remaining layouts with 2 groups should also be fixed someday.
2024-08-26options: Added altwin:swap_ralt_rwinPierre Le Marre2-0/+7
This option swaps right `Alt` with right `Win`. Symbols are already there, so this commit just adds the corresponding rules via the registry. Part-of: <https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/merge_requests/731>
2024-08-23rules: Fix merging explicit and implicit merge modesPierre Le Marre1-3/+30
Since c4f76b584fe10bc2037966a70efad9bc5b682a4a we merge rule sets with and without explicit merge modes (i.e. *explicit* merge mode are section starting with either `+` or `|`). This is wrong, as these are not supposed to be matched at in the same rule set. Part-of: <https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/merge_requests/729>
2024-08-23rules: Fix duplicates created by the merge scriptPierre Le Marre1-4/+7
The previous update c4f76b584fe10bc2037966a70efad9bc5b682a4a removed the initialization of a dictionary in the `merge` function, leading to duplicates, namely the files *not* starting with a rule header. While we introduced `defaultdict` previously to avoid initializing lists manually, we still need to initialize the `dict` in order to keep it in sync with `section_names`. Part-of: <https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/merge_requests/729>
2024-08-23symbols/ru: Add Diktor extra layoutHloja Niželjska2-0/+68
Diktor is an ergonomic alternative to the JCUKEN layout (see: `ru(winkeys)`), adapting Dvorak design principles for Russian. Although it is popular, there is no track of the original author. The original implementation targeted Windows. The closest to an “official” web page is: https://olegp.name/software/diktor-keyboard-layout/.
2024-08-21meson: Fix deprecationsPierre Le Marre2-2/+2
Part-of: <https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/merge_requests/728>
2024-08-21rules: Fix layout compat rulesPierre Le Marre9-157/+280
Layout compatibility rules are broken in configurations with 2 or more layouts, e.g.: - Works: - config: `--layout fi --variant basic` - symbols: `pc+fi(classic)+inet(evdev)`. `fi(basic)` is correctly remapped to `fi(classic)`. - Does not work: - config `--layout fi,us --variant basic,` - symbols: `pc+fi(basic)+us:2+inet(evdev)`. `fi(basic)` is not remapped and leads to an include error. - Does not work: - config `--layout us,fi --variant ,basic` - symbols: `pc+us:fi(basic):2+fi(classic):2+inet(evdev)`. `fi(basic)` is not remapped and leads to an include error. I initially thought merging the following rules sets to fix it: 1. `model layout[n] = symbols` 2. `model layout[n] variant[n] = symbols` but it does not work: `*` wildcard does *not* match empty values. There is another issue: using a variant will check and match *both* rules sets. In the first rule set, compat rules are only for deleted symbols files (e.g. `dev`). But when the symbols file exists, we end up with an invalid include statement (see `fi(basic)` examples above). This is because the first rules set has a catch-all rule that will always match, while we want it to match only in the second rules set. Unfortunately such rules cannot be expressed in rules files. So the solution is to append generated compatibility sections in the corresponding symbols files and remove the corresponding current rules. Section name clashes are checked and will raise an error. E.g.: currently we append the following to `symbols/de`: partial xkb_symbols "lld" { include "it(lldde)" }; If we already had a section named lld, this would produce the following error: Cannot add compatibility section in symbols/de: "lld" already exists Also: - Move symbols handling in meson into the symbols subfolder. - Sort compat layout rules. - We ensure that rules with variant take priority over rules without one. Part-of: <https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/merge_requests/728>
2024-08-19rules: Add tests for layout compat rulesPierre Le Marre5-0/+245
Part-of: <https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/merge_requests/728>
2024-08-19rules: Improve merge scriptPierre Le Marre1-26/+45
- Merge section with same header, independently of the whitespaces. - Improve Python (typing) Part-of: <https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/merge_requests/728>
2024-08-19Add option to define F13-F24twistedturtle3-0/+30
2024-07-30Update mapping (US, Symbolic)Daniele Baisero1-2/+2
Switched the Alt-Gr characters on AE11 and AE12 as it is more intuitive to have ≠ and ± next to = and +. Previous mapping: _ ± + ÷ - ≠ = × Current mapping: _ ÷ + ± - × = ≠ Part-of: <https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/merge_requests/722>
2024-07-30Add option `caps:ctrl_shifted_capslock`Han-Miru Kim3-0/+21
Make `Caps Lock` an additional `Ctrl` and `Shift + Caps Lock` the regular `Caps Lock`. Part-of: <https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/merge_requests/673>
2024-07-30Add option lv3:caps_switch_capslock_with_ctrlHelfried Wiesinger3-0/+26
Use Caps Lock key as additional 3rd lever chooser, Ctrl + Caps Lock for original Caps Lock behaviour. The 2023 DIN standard for German keyboards recommends it as an option: - https://de.wikipedia.org/wiki/E1_(Tastaturbelegung)#Feststelltaste/Umschaltsperre - https://en.wikipedia.org/wiki/Caps_Lock#Abolition Part-of: <https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/merge_requests/687>
2024-07-30symbols/de: Remove superfluous *_base variantsDario Götz1-40/+16
While adopting the `neo_base/neo` approach, each of the following variants are included in only one other variant, which is useless. - Merge `adnw_base` into `adnw` - Merge `bone_eszett_home_base` into `bone_eszett_home` - Merge `koy_base` into `koy` - Merge `neo_qwerty_base` into `neo_qwerty`
2024-07-30symbols: Remove *_base variants from sun_vndr/dePierre Le Marre1-10/+0
These have no clear use and look superfluous.
2024-07-19rules: Fix compat mappingsPierre Le Marre2-14/+24
Previously the compatibility rules where incorrect: - Lines with a comment starting by “//” where parsed incorrectly, because comments where in fact not supported. - `variantsMapping.lst` was added to rules without variant. This resulted in incorrect rules with MLVO = (model, layout), e.g. the beautiful following rules: ``` ! model layout = symbols * mao(nz(mao)) = pc+//(Delete) * ben(basic) = pc+in(ben) ``` Fixed the issue and ensure to raise an error if expectation on layout variant is broken.
2024-07-12typo: Fix fr(bre)Pierre Le Marre1-1/+1
2024-07-10Update Colemak-DH Wide ISO layout to match specificationCallum Andrew2-2/+5
Fixes #442 https://colemakmods.github.io/mod-dh/keyboards.html is the reference page for Colemak-DH layouts. Part-of: <https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/merge_requests/714>
2024-07-09Add Persian to LINGUASDanial Behzadi1-0/+1
2024-06-21Update keycodesPierre Le Marre2-0/+2
Add latest available keycodes. Part-of: <https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/merge_requests/709>
2024-06-21Add caps:digits_row_independent_lock optionAlexandre Petit9-66/+128
`Shift + Caps` locks the digits on the digits row, `Caps Lock` alone behaves as usual (Azerty layouts). The `Shift + Caps Lock` combination inverts the first two levels only. Originally designed for layouts with digits on the second level of the digits row (e.g. Azerty layouts). This allows users to have direct access to digits while keeping usual capitalization via `Caps Lock`. Also add the `FOUR_LEVEL_LOCKABLE_LEVEL2` key type, a variant of `FOUR_LEVEL_MIXED_KEYPAD` that uses `LevelFive` instead of `NumLock`, to avoid interaction with the keypad. Originally created to lock the digits on layouts with digits on the second level of the digits row (e.g. Azerty layouts).
2024-06-21geometry: Fix LSGT key label in KinesisArlen Kleinsasser2-2/+5
`<LSGT>` key on Kinesis Advantage and Advantage2 keyboards was incorrectly labeled `INS`. It only acts as `INS` with the keypad overlay. See the manual[^1]: it is called the “international key”. Page 10 confirms it should be the `<LSGT>` key. [^1]: https://kinesis-ergo.com/wp-content/uploads/kb500-user_manual.pdf
2024-06-21ci: Use latest templatesWismill1-2/+2
This should allow us to accept Gitlab private commit email. See: https://docs.gitlab.com/ee/user/profile/#use-an-automatically-generated-private-commit-email.
2024-06-18doc: Add log fragments since 2.42Pierre Le Marre3-0/+6
2024-06-18doc: Add detailed changelog for 2.42Pierre Le Marre1-0/+51
2024-06-18doc: Use towncrier to handle release notesPierre Le Marre9-1/+120
Towncrier is a utility to produce useful, summarized news files. See: - https://pypi.org/project/towncrier/ - https://towncrier.readthedocs.io Custom configuration for xkbcommon: - New fragments are located in the `changes` directory. - 5 sections: - Model: `changes/models` - Layout: `changes/layouts` - Option: `changes/options` - Miscellaneous: `changes/misc` - Build System: `changes/build` - 3 news fragments: - Breaking changes: `.breaking` - New: `.feature` - Fixes: `.bugfix` `ChangeLog` is renamed to `ChangeLog.md` because the tool requires `.md` extension to write in markdown format.
2024-06-13Require Python >=3.9 + optional strenum fallbackPierre Le Marre2-6/+17
Fallback with package `strenum` is required for Python < 3.11. Part-of: <https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/merge_requests/702>