Skip to content

Releases: Neradoc/Circuitpython_Keyboard_Layouts

New layouts, dead keys and consumer control helper (fix)

07 Sep 17:48
Compare
Choose a tag to compare

This is a major update with breaking changes. Layouts from this update use a different class name and the keyboard_layout common base module is not compatible with past releases.

A big thank to all those who requested and tested keyboard layouts on the Adafruit discord, this repository, or the pico-ducky repository.

New Languages

A list of new languages have been added to the repository. These languages were requested and at least superficially tested by users.

  • Brazil, Czech (2 layouts), Danish, Hungarian, Italian, Portuguese, Swedish, Turkish.
  • Modified FR and DE (renamed)

Keyboard Layouts

  • The keyboard_layouts module now uses a KeyboardLayoutBase class. (Not compatible with previous versions).
  • Dead key combinations generate two presses: layout.write("ô") presses ^ then o (if relevant).
  • COMBINED_KEYS is a table where each combined character is associated with two bytes
    • The first byte is the first (dead) key's keycode, with the shift bit set is needed.
    • The second byte is the character for the second key (not its keycode), a low-ascii character.
    • The high bit of the second byte is set is the first key requires altgr.
    • The second key is assumed to not need altgr (it's space or a-z/A-Z).
  • If the layout has a way to have a character as a single key press, it's used rather than the dead key. (eg: ù on FR layout)
  • All layouts declare a KeyboardLayout class instead of a class based on the language.
    • Only the module name changes between languages
    • This makes it easier than having to "guess" the class name (even if based on the file name).
    • Importing multiple layouts is possible by namespace (keyboard_layout_win_fr.KeyboardLayout) or "import as".

Consumer Control Helper

The consumer_control_extended module brings a big list of names for the consumer controls page in the HID specs, to be used with adafruit_hid.consumer_control.

Layout Generator

The layout generator creates a layout and a keycode file from windows layout files, using XML data from https://kbdlayout.info. Examples on how to use it in the test files, in particular make_validated.sh. Documentation will need to be written. In its current form it only handles that specific format of input, and only handles languages based on the latin alphabet.

An online web-generator is available too, it uses PHP to run the generator in python from a URL, and an online version of it is available at: https://www.neradoc.me/layouts/

Fixes to win_fr and small changes

28 Aug 16:54
Compare
Choose a tag to compare

Fixes some letter in the Win FR layout.
Rework the version numbering (still in flux).
Fix Error messages in keyboard_layout.
Update the readme.

Add version numbers to the modules

14 Aug 00:07
Compare
Choose a tag to compare

Change class names to match file names for consistency (snake case to camel case) - Breaking Change.
Set the version number in each module's file, based on the tag containing the latest modification (interpreted as a date).

Use a common keyboard_layout file and add layouts

04 Aug 17:51
Compare
Choose a tag to compare

This update switches to using a common keyboard_layout.py file, that should be in adafruit_hid (and therefore removed here) at some point in the future. A couple of keyboard layouts have been added from contributions to adafruit_hid, assuming therefore that the license terms allow using it here too. They have not been tested with international keyboards.

US Dvorak from:
adafruit/Adafruit_CircuitPython_HID#60
German win_de_de from:
adafruit/Adafruit_CircuitPython_HID#73

Updated FR keyboard layouts

23 Jul 05:25
88aec02
Compare
Choose a tag to compare

The stand-in french layouts and keycodes have been updated to be probably mostly correct, but not complete, as future modifications to allow for writing "é" and other special letters are yet to come.

First release test

10 Jul 10:55
Compare
Choose a tag to compare

This is the first release. On test layout, one test keycodes, trying out the circup/bundle compatible release.

First working release

10 Jul 12:03
Compare
Choose a tag to compare

This is the first release. One test layout, one test keycodes, trying out the circup/bundle compatible release.
This was tested with circup, adding the repository in the list of repositories (with a dev version that has commands for it).
And this worked: circup install keyboard_layout_win_fr ! Well, except the dependencies part for some reason.
But almost there, right ?