The keyboard mapping for Hackberry is good... too good i might say. But that, doesn't mean that meets the needs of everybody. Zitao thought of that and added some custom firmware to the keyboard which can be re-mapped with Vial software, which is awesome! I mean, the possibilities are endless. You can map almost 4 virtual keys to any physical button of this small keyboard, by tapping, holding, double-tapping etc.
Anyway... i made a new layer that contained some keys i wanted to have on hand, which you can see here and also download the .vil file for VIAL.
I also made a BASH script, that just displays the key mapping in ASCII, which you can have in hand if and when forget a key and want a reference to see where it is. You can see a preview below.
You can either download the script for here or just copy/paste it from below.
#!/bin/bash
script="${0##*/}"
DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
#title : Zitao :: Hackberry Pi Keyboard Mapping
#description : List of keyboard layout for Hackberry Pi Q20
#author : XQTR :: http://cp737.net
#date : 2024/10/21
#version : 1.0
#usage : Make executable and run
#notes : For Hackberry Pi visit: https://github.com/ZitaoTech/Hackberry-Pi_Zero
#LAYER0
#LAYER0Layer 0
#LAYER0+----+----+----+----+ +------+ +---+----+----+----+
#LAYER0|P:CAPS |LGUI | |LEFT | |P:ESC |P:TAB |
#LAYER0|H:L.MOUSE| | |MOUSE | |H:F4 |H:R.MOUSE|
#LAYER0+----+----+----+----+-+--+---+++---+----+----+----+
#LAYER0|Q |W |E |R |T |Y |U |I |O |P |
#LAYER0| | | | | | | | | | |
#LAYER0+----+----+----+----+----+----+----+----+----+----+
#LAYER0|A |S |D |F |G |H |J |K |L |BKSP|
#LAYER0| | | | | | | | | | |
#LAYER0+----+----+----+----+----+----+----+----+----+----+
#LAYER0|SHFT|Z |X |C |V |B |N |M |$ |ENTR|
#LAYER0| | | | | | | | | | |
#LAYER0+----+----++---+-+--+----+----+--+-+---++----+----+
#LAYER0 |CTRL |ALT |SPACE |HOLD |HOLD |
#LAYER0 | | | |LAY.1|LAY.2|
#LAYER0 +-----+-----+---------------+-----+-----+
#LAYER0
#LAYER1
#LAYER1Layer 1
#LAYER1+----+----+----+----+ +------+ +---+----+----+----+
#LAYER1|CAPS |EXEC | |RIGHT | |PAGE UP |PAGE DOWN|
#LAYER1| | | |MOUSE | | | |
#LAYER1+----+----+----+----+-+--+---+++---+----+----+----+
#LAYER1|# |1 |2 |3 |( |) |_ |- |+ |@ |
#LAYER1| | | | | | | | | | |
#LAYER1+----+----+----+----+----+----+----+----+----+----+
#LAYER1|* |4 |5 |6 |/ |: |; |' |" |DEL |
#LAYER1| | | | | | | | | | |
#LAYER1+----+----+----+----+----+----+----+----+----+----+
#LAYER1|SHFT|7 |8 |9 |? |! |, |. |; |ENTR|
#LAYER1| | | | | | | | | | |
#LAYER1+----+----++---+-+--+----+----+--+-+---++----+----+
#LAYER1 |CTRL |0 |SPACE |HOLD |HOLD |
#LAYER1 | | | |LAY.1|LAY.2|
#LAYER1 +-----+-----+---------------+-----+-----+
#LAYER1
#LAYER2
#LAYER2Layer 2
#LAYER2+----+----+----+----+ +------+ +---+----+----+----+
#LAYER2|F1 | | | | | | |
#LAYER2| | | | | | | |
#LAYER2+----+----+----+----+-+--+---+++---+----+----+----+
#LAYER2|| |CURS| | |[ |] |< |> || |= |
#LAYER2| | UP | | | | | | | | |
#LAYER2+----+----+----+----+----+----+----+----+----+----+
#LAYER2|CURS|CURS|CURS| |\ |& |{ |} |^ |BKSP|
#LAYER2|LEFT|DOWN|RIGT| | | | | | | |
#LAYER2+----+----+----+----+----+----+----+----+----+----+
#LAYER2|SHFT| | | |BL- |TOGL|BL+ |~ |$ |ENTR|
#LAYER2| | | | | |BL | | | | |
#LAYER2+----+----++---+-+--+----+----+--+-+---++----+----+
#LAYER2 |CTRL |ALT |SPACE |HOLD |HOLD |
#LAYER2 | | | |LAY.1|LAY.2|
#LAYER2 +-----+-----+---------------+-----+-----+
#LAYER2
#LAYER3
#LAYER3Layer 3 / XQTR
#LAYER3+----+----+----+----+ +------+ +---+----+----+----+
#LAYER3|MOUSE |H:LAY 4 | |MOUSE | |PAGE UP |PAGE DOWN|
#LAYER3|RIGHT |DT:SCRL.L| |RIGHT | | | |
#LAYER3+----+----+----+----+-+--+---+++---+----+----+----+
#LAYER3|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F10 |F11 |F12 |
#LAYER3| | | | | | | | | | |
#LAYER3+----+----+----+----+----+----+----+----+----+----+
#LAYER3|HOME|CURS|END |INS |MWHE|F8 |F9 |BRGT|VOL+|BKSP|
#LAYER3| | UP | | | UP | | | UP | | |
#LAYER3+----+----+----+----+----+----+----+----+----+----+
#LAYER3|CURS|CURS|CURS|DEL |MWHE| | |BRGT|VOL-|ENTR|
#LAYER3|LEFT|DOWN|RIGT| |DOWN| | |DOWN| | |
#LAYER3+----+----++---+-+--+----+----+--+-+---++----+----+
#LAYER3 |CTRL |ALT |SHIFT |ALT |CTRL |
#LAYER3 | | | | | |
#LAYER3 +-----+-----+---------------+-----+-----+
#LAYER3
clear
key="0"
while :
do
case $key in
0) cat $DIR/$script | grep "#LAYER0" | sed 's/#LAYER0//g' | sed '$ d';;
1) cat $DIR/$script | grep "#LAYER1" | sed 's/#LAYER1//g' | sed '$ d';;
2) cat $DIR/$script | grep "#LAYER2" | sed 's/#LAYER2//g' | sed '$ d';;
3) cat $DIR/$script | grep "#LAYER3" | sed 's/#LAYER3//g' | sed '$ d';;
*) exit;;
esac
read -n1 -p"Select Layer (0/1/2/3) Any other key to quit:" key
clear
done