Skip to content

RomainSabathe/qmk_dz60

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Layers

Base

base_layer

AZERTY (tap on CHG_LAY)

azerty_layer

Programmer (hold HLD_PGRM)

programmer_layer

Colemak Programmer (while in Colemak mode, hold HLD_PGRM)

programmer_layer

Keypad (hold HLD_KPD)

keypad_layer

Media (hold HLD_MED)

media_layer

Other (hold CHG_LAY)

other_layer

Instructions

Generating keymap.c and flashing the keyboard

  • Clone the repo and run make. Make sure python3 is installed.
  • When prompted, put the keyboard into bootloader mode. There are several ways of doing this:
    • A button has been mapped to trigger the bootloader mode (on this config, it's CHG_LAY+top_right_key; see the BTLDR button on this layout).
    • Unplug the keyboard, press and hold CTLR+B and plug it back in.
    • If none of the above methods work, you need to short the RESET pin on the ATmega chip. See Resources. Use a clipper or a staple to connect pin 13 and 43.
  • Congrats! That should be it.

How to update layers.json

  • Use Keyboard Layout Editor to mimic the keyboard configuration. Note: this website doesn't seem to support quteBrowser.
  • Insert a character at the bottom of the key for a normal tap and at the top for a Shift+tap.
  • When finished,
    1. Copy the permalink and add it to static/layers.json under a "URL" key.
    2. Download the layout as a JSON and copy/paste it in static/layers.json under the layout key.

Tips

When hacking around, we can get a lot of keyboard-layout.json files laying around in the Downloads folder (I'm currently at 33 and counting). A quick way to parse the content of the latest downloaded file is to use this command:

xclip -selection clipboard ~/Downloads/keyboard-layout\ $(ls -lastr ~/Downloads | tail -n 3 | awk '/keyboard/ { print $11 }')

This assumes that each keyboard-layout file has the following structure: keyboard-layout (33).json (and 33 is dynamic).

How to update the list of supported keys

  • Make your way around the ugly app/keycode_mapper.py.

Specificities

Shift as a dedicated layer

In this implementation, Shift is not used in a standard manner. Instead of sending a "SHIFT" message, it changes layer entirely.
On the one hand, this allows to define completely new keys. For instance, we can define a key where { is the behaviour in lowercase, and ( is the behaviour in upper case. Try finding that key on a normal keyboard,... it doesn't exist!
But on the other hand, it can also cause unexpected behaviours like:

  • In software like Gimp or Google Presentations, holding Shift and clicking on multiple objects to select them all won't work. It's as is Shift is not pressed.
  • If used in combination with other layers (like the PGRM layer), the keyboard can sometimes get stuck in "Shift" layer. Hitting Ctrl+w to close 1 tab in your browser will actually close the entire browser, as if Ctrl+Shift+w had been pressed.

These two things alone are fairly cumbersome so I might drop the idea of "Shift as a layer" in the future.

[WIP] "Magic key" to change between layouts

  • how it works (held --> uses the "other" layer, tapped --> switch to colemak)
  • how it's implemented: process_record_user. see the QMK documentation

Backlog

  • Azerty on the magic key?

Resources

Dependencies (Linux)

  • Sending Unicode characters requires IBus to be running on your system. Make sure it is running all the time!
  • One dependency I was lacking was PyGObject (pip install PyGObject --user)
  • QMK requires the installation for pycairo, for this, ensure that:

About

My keymaps for the DZ60 PCB.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published