1
0

Compare commits

...

4 Commits

Author SHA1 Message Date
Joel Challis
5629ecf5ff Add bootloadHID support to qmk flash (#26053) 2026-03-10 23:33:14 +00:00
Peter Cock
01e30d407c [Docs] Show how to flip semicolon and colon (#26030)
* Show how to flip semicolon and colon

* Apply whitespace suggestions from code review

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Match line-wrapping

Co-authored-by: Joel Challis <git@zvecr.com>

---------

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2026-03-09 19:41:03 -07:00
dependabot[bot]
acdc8a1374 Bump actions/download-artifact from 7 to 8 (#26038)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-10 01:50:49 +00:00
dependabot[bot]
d73c91f19b Bump actions/upload-artifact from 6 to 7 (#26037)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-10 01:50:37 +00:00
4 changed files with 23 additions and 6 deletions

View File

@@ -85,7 +85,7 @@ jobs:
fetch-depth: 0
- name: Download firmwares
uses: actions/download-artifact@v7
uses: actions/download-artifact@v8
with:
pattern: firmware-*
path: .

View File

@@ -60,7 +60,7 @@ jobs:
echo "targets=$(jq -c 'keys' targets.json)" >> $GITHUB_OUTPUT
- name: Upload targets json
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: targets-${{ inputs.keymap }}
path: targets.json
@@ -88,7 +88,7 @@ jobs:
run: pip3 install -r requirements-dev.txt
- name: Get target definitions
uses: actions/download-artifact@v7
uses: actions/download-artifact@v8
with:
name: targets-${{ inputs.keymap }}
path: .
@@ -113,7 +113,7 @@ jobs:
qmk mass-compile -t -j $NCPUS -e DUMP_CI_METADATA=yes $targets || touch .failed
- name: Upload binaries
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: firmware-${{ inputs.keymap }}-${{ matrix.target }}
if-no-files-found: ignore
@@ -140,14 +140,14 @@ jobs:
uses: actions/checkout@v6
- name: Download firmwares
uses: actions/download-artifact@v7
uses: actions/download-artifact@v8
with:
pattern: firmware-${{ inputs.keymap }}-*
path: .
merge-multiple: true
- name: Upload all firmwares
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: firmware-${{ inputs.keymap }}
if-no-files-found: ignore

View File

@@ -47,6 +47,17 @@ const key_override_t *key_overrides[] = {
};
```
This second example inverts or swaps semicolon and colon on ANSI and many other layouts. That means pressing the key alone sends `shift` + `semicolon` giving `colon` (`S(KP_SCLN)` aka `KC_COLN`), but when pressing the key with shift, the shift modifier is suppressed (see `suppressed_mods` below), sending only `semicolon` (`KC_SCLN`):
```c
const key_override_t semicolon_colon_key_override = ko_make_basic(MOD_MASK_SHIFT, KC_COLN, KC_SCLN);
// This globally defines all key overrides to be used
const key_override_t *key_overrides[] = {
&semicolon_colon_key_override
};
```
## Intermediate Difficulty Examples {#intermediate-difficulty-examples}
### Media Controls & Screen Brightness {#media-controls-amp-screen-brightness}

View File

@@ -136,6 +136,10 @@ def _find_serial_port(vid, pid):
return None
def _flash_bootloadhid(file):
cli.run(['bootloadHID', '-r', file], capture_output=False)
def _flash_caterina(details, file):
port = _find_serial_port(details[0], details[1])
if port:
@@ -218,6 +222,8 @@ def flasher(mcu, file):
time.sleep(1)
if bl == 'atmel-dfu':
_flash_atmel_dfu(details, file)
elif bl == 'bootloadhid':
_flash_bootloadhid(file)
elif bl == 'caterina':
if _flash_caterina(details, file):
return (True, "The Caterina bootloader was found but is not writable. Check 'qmk doctor' output for advice.")