qmk-config

qmk configs for my open-source keyboards

git clone https://9o.is/git/qmk-config.git

commit bd87ea1f020328d61d715bd7645e2109aaaa345d
parent 8f675dae88d70928496de193e4894f823f7440fd
Author: Jul <jul@9o.is>
Date:   Sun, 18 May 2025 01:26:26 -0400

add cygnus build

Diffstat:
Abuild | 22++++++++++++++++++++++
Acygnus/config.h | 17+++++++++++++++++
Acygnus/info.json | 76++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acygnus/keymaps | 2++
Acygnus/rules.mk | 7+++++++
Mflash | 52++++++++++++++++++++++++++++++++++------------------
6 files changed, 158 insertions(+), 18 deletions(-)

diff --git a/build b/build @@ -0,0 +1,22 @@ +#!/bin/bash +set -e + +path="$(dirname "$(realpath "$0")")" +qmk_path="/home/user/qmk_firmware" +model="$1" + +if [ ! -d "$path/$model" ]; then + echo "Model missing" + exit 1 +fi + +kbd="jul_$model" +kmp="default" +kbd_path="$qmk_path/keyboards/$kbd" + +[ -e $kbd_path ] || ln -s $path/$model $kbd_path +make -C $qmk_path clean $kbd:$kmp + +[ -d $path/.build ] || mkdir $path/.build +sudo cp $qmk_path/.build/$kbd\_$kmp* $path/.build + diff --git a/cygnus/config.h b/cygnus/config.h @@ -0,0 +1,17 @@ +#pragma once + +#define SOFT_SERIAL_PIN D2 +#define SPLIT_USB_DETECT +#define TAPPING_TERM 175 +#define TAPPING_TERM_PER_KEY +#define QUICK_TAP_TERM 120 +#define PERMISSIVE_HOLD +#define ACHORDION_STREAK + +// Mouse key speed and acceleration. +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_MOVE_DELTA 4 +#define MOUSEKEY_INTERVAL 16 +#define MOUSEKEY_WHEEL_DELAY 0 +#define MOUSEKEY_MAX_SPEED 10 +#define MOUSEKEY_TIME_TO_MAX 15 diff --git a/cygnus/info.json b/cygnus/info.json @@ -0,0 +1,76 @@ +{ + "keyboard_name": "cygnus", + "manufacturer": "jul", + "maintainer": "jul", + "url": "", + "bootloader": "caterina", + "processor": "atmega32u4", + "usb": { + "vid": "0x4653", + "pid": "0x0001", + "device_version": "0.0.1" + }, + "build": { + "lto": true + }, + "matrix_pins": { + "cols": [ "F4", "F5", "F6", "F7", "B1", "B3" ], + "rows": [ "D4", "C6", "D7", "E6" ] + }, + "diode_direction": "COL2ROW", + "split": { + "enabled": true + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x5_3" + }, + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + {"matrix": [0, 1], "x": 0, "y": 0.3}, + {"matrix": [0, 2], "x": 1, "y": 0.1}, + {"matrix": [0, 3], "x": 2, "y": 0}, + {"matrix": [0, 4], "x": 3, "y": 0.1}, + {"matrix": [0, 5], "x": 4, "y": 0.2}, + + {"matrix": [4, 5], "x": 8, "y": 0.2}, + {"matrix": [4, 4], "x": 9, "y": 0.1}, + {"matrix": [4, 3], "x": 10, "y": 0}, + {"matrix": [4, 2], "x": 11, "y": 0.1}, + {"matrix": [4, 1], "x": 12, "y": 0.3}, + + {"matrix": [1, 1], "x": 0, "y": 1.3}, + {"matrix": [1, 2], "x": 1, "y": 1.1}, + {"matrix": [1, 3], "x": 2, "y": 1}, + {"matrix": [1, 4], "x": 3, "y": 1.1}, + {"matrix": [1, 5], "x": 4, "y": 1.2}, + + {"matrix": [5, 5], "x": 8, "y": 1.2}, + {"matrix": [5, 4], "x": 9, "y": 1.1}, + {"matrix": [5, 3], "x": 10, "y": 1}, + {"matrix": [5, 2], "x": 11, "y": 1.1}, + {"matrix": [5, 1], "x": 12, "y": 1.3}, + + {"matrix": [2, 1], "x": 0, "y": 2.3}, + {"matrix": [2, 2], "x": 1, "y": 2.1}, + {"matrix": [2, 3], "x": 2, "y": 2}, + {"matrix": [2, 4], "x": 3, "y": 2.1}, + {"matrix": [2, 5], "x": 4, "y": 2.2}, + + {"matrix": [6, 5], "x": 8, "y": 2.2}, + {"matrix": [6, 4], "x": 9, "y": 2.1}, + {"matrix": [6, 3], "x": 10, "y": 2}, + {"matrix": [6, 2], "x": 11, "y": 2.1}, + {"matrix": [6, 1], "x": 12, "y": 2.3}, + + {"matrix": [3, 3], "x": 3, "y": 3.7}, + {"matrix": [3, 4], "x": 4, "y": 3.7}, + {"matrix": [3, 5], "x": 5, "y": 3.2, "h": 1.5}, + + {"matrix": [7, 5], "x": 7, "y": 3.2, "h": 1.5}, + {"matrix": [7, 4], "x": 8, "y": 3.7}, + {"matrix": [7, 3], "x": 9, "y": 3.7} + ] + } + } +} diff --git a/cygnus/keymaps b/cygnus/keymaps @@ -0,0 +1 @@ +../keymaps +\ No newline at end of file diff --git a/cygnus/rules.mk b/cygnus/rules.mk @@ -0,0 +1,7 @@ +BOOTLOADER = caterina +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes +TAP_DANCE_ENABLE = yes +CAPS_WORD_ENABLE = yes +KEY_OVERRIDE_ENABLE = yes +SRC += features/achordion.c diff --git a/flash b/flash @@ -1,24 +1,40 @@ #!/bin/bash set -e -KBD="jul_chocofi" -KMP="default" -DEVICE="$(ls /dev/sd*1)" -PRJ_PATH="$(dirname "$(realpath "$0")")" -QMK_HOME="/home/user/qmk_firmware" -KBD_PATH="$QMK_HOME/keyboards/$KBD" -MNT_PATH="$QMK_HOME/.build/mnt" - -if [ ! -b "$DEVICE" ]; then - echo "Device '$DEVICE' is not a block device" +path="$(dirname "$(realpath "$0")")" +model=$1 + +function flash_chocofi { + echo flashing chocofi + dev="$(ls /dev/sd*1)" + file="$path/.build/jul_chocofi_default.uf2" + mnt_path="$path/.build/mnt" + + [ -e "$file" ] || { echo 'uf2 file missing'; exit 1; } + [ -b "$dev" ] || { echo 'device missing'; exit 1; } + + mkdir -p $mnt_path + sudo mount $dev $mnt_path + sudo cp $file $mnt_path + sudo umount $mnt_path +} + +function flash_cygnus { + echo flashing cygnus + file="$path/.build/jul_cygnus_default.hex" + + [ -e "$file" ] || { echo 'hex file missing'; exit 1; } + + # qvm-copy to sys-usb + # avrdude -p m32U4 -P /dev/ttyACM0 -c avr109 -U flash:w:$file +} + +if [ $model == 'chocofi' ]; then + flash_chocofi +elif [ $model == 'cygnus' ]; then + flash_cygnus +else + echo 'unknown model' exit 1 fi -[ -e $KBD_PATH ] || ln -s $PRJ_PATH/chocofi $KBD_PATH - -make -C $QMK_HOME clean $KBD:$KMP -echo "Flashing $DEVICE" -mkdir -p $MNT_PATH -sudo mount "$DEVICE" $MNT_PATH -sudo cp $QMK_HOME/.build/$KBD\_$KMP.uf2 $MNT_PATH -sudo umount $MNT_PATH