Compare commits

..

8 Commits

Author SHA1 Message Date
dependabot[bot]
378187d437 chore(deps): bump lodash-es and langium in /docs
Bumps [lodash-es](https://github.com/lodash/lodash) and [langium](https://github.com/eclipse-langium/langium/tree/HEAD/packages/langium). These dependencies needed to be updated together.

Updates `lodash-es` from 4.17.23 to 4.18.1
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.23...4.18.1)

Updates `langium` from 4.2.1 to 4.2.2
- [Release notes](https://github.com/eclipse-langium/langium/releases)
- [Changelog](https://github.com/eclipse-langium/langium/blob/main/packages/langium/CHANGELOG.md)
- [Commits](https://github.com/eclipse-langium/langium/commits/HEAD/packages/langium)

---
updated-dependencies:
- dependency-name: lodash-es
  dependency-version: 4.18.1
  dependency-type: indirect
- dependency-name: langium
  dependency-version: 4.2.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-08 08:03:59 +00:00
snoyer
8a44ef109a feat(behaviors): add &out OUT_NONE (#3235)
Allow manually setting the preferred transport to `ZMK_TRANSPORT_NONE` with the `&out` behavior to prevent the keyboard from sending any output.
2026-03-31 00:52:27 -04:00
eden
3538843a09 fix(display): add serial VCOM inversion for Nice! View (#3294)
Adds serial VCOM inversion command settings for the Nice! View
shield, which fixes the DC biased state the LCD was previously
in when using this shield
2026-03-31 00:36:53 -04:00
dependabot[bot]
c62da0e166 chore(deps): bump actions/cache from 4 to 5 (#3315)
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  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-29 22:55:19 -07:00
dependabot[bot]
327cbb587b chore(deps): bump actions/upload-artifact from 4 to 7 (#3316)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...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-29 22:54:53 -07:00
dependabot[bot]
bab8eb06c1 chore(deps): bump actions/setup-node from 4 to 6 (#3093)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '6'
  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-29 16:13:17 -07:00
dependabot[bot]
ed9626d8d1 chore(deps): bump actions/checkout from 5 to 6 (#3291)
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  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-29 16:08:35 -07:00
Cem Aksoylar
3e64a5dccd chore(deps): npm update on docs (#3314) 2026-03-29 15:54:45 -07:00
25 changed files with 1745 additions and 1615 deletions

View File

@@ -21,7 +21,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Find test directories
id: test-dirs
run: |
@@ -38,9 +38,9 @@ jobs:
image: docker.io/zmkfirmware/zmk-build-arm:4.1
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Cache west modules
uses: actions/cache@v4
uses: actions/cache@v5
env:
cache-name: cache-zephyr-modules
with:
@@ -72,7 +72,7 @@ jobs:
run: BSIM_COMPONENTS_PATH="${GITHUB_WORKSPACE}/tools/bsim/components" BSIM_OUT_PATH="${GITHUB_WORKSPACE}/tools/bsim" ./run-ble-test.sh tests/ble/${{ matrix.test }}
- name: Archive artifacts
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: "${{ matrix.test }}-log-files"
path: app/build/**/*.log

View File

@@ -33,7 +33,7 @@ jobs:
has_valid_build_matrix: ${{ steps.fetch.outputs.has_valid_build_matrix }}
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Fetch Build Matrix
id: fetch
@@ -67,7 +67,7 @@ jobs:
curl -fsSL https://deb.nodesource.com/setup_22.x | bash && apt install -y nodejs
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Create build directory
run: |
@@ -108,7 +108,7 @@ jobs:
fi
- name: Cache west modules
uses: actions/cache@v4
uses: actions/cache@v5
continue-on-error: true
env:
cache_name: cache-zephyr-${{ env.zephyr_version }}-modules
@@ -217,7 +217,7 @@ jobs:
fi
- name: Archive (${{ env.display_name }})
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: artifact-${{ env.artifact_name }}
path: ${{ env.build_dir }}/artifacts
@@ -229,7 +229,7 @@ jobs:
name: Merge Output Artifacts
steps:
- name: Merge Artifacts
uses: actions/upload-artifact/merge@v4
uses: actions/upload-artifact/merge@v7
with:
name: ${{ inputs.archive_name }}
pattern: artifact-*

View File

@@ -30,11 +30,11 @@ jobs:
include: ${{ fromJSON(needs.compile-matrix.outputs.include-list) }}
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Cache west modules
uses: actions/cache@v4
uses: actions/cache@v5
env:
cache-name: cache-zephyr-modules
with:
@@ -57,7 +57,7 @@ jobs:
- name: Export Zephyr CMake package (west zephyr-export)
run: west zephyr-export
- name: Use Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: "14.x"
- name: Install @actions/artifact
@@ -187,11 +187,11 @@ jobs:
core-include: ${{ steps.core-list.outputs.result }}
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Use Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: "14.x"
- name: Install js-yaml
@@ -218,9 +218,9 @@ jobs:
boards-include: ${{ steps.boards-list.outputs.result }}
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Use Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: "14.x"
- name: Install js-yaml
@@ -346,11 +346,11 @@ jobs:
organized-metadata: ${{ steps.organize-metadata.outputs.result }}
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Use Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: "14.x"
- name: Install js-yaml
@@ -428,7 +428,7 @@ jobs:
core-changes: ${{ steps.core-changes.outputs.result }}
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
persist-credentials: false
- uses: tj-actions/changed-files@9200e69727eb73eb060652b19946b8a2fdfb654b # pin to v45.0.8 due to https://github.com/tj-actions/changed-files/issues/2463 https://www.stepsecurity.io/blog/harden-runner-detection-tj-actions-changed-files-action-is-compromised

View File

@@ -14,7 +14,7 @@ jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: bahmutov/npm-install@v1
with:
working-directory: docs
@@ -24,7 +24,7 @@ jobs:
typecheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: bahmutov/npm-install@v1
with:
working-directory: docs

View File

@@ -20,7 +20,7 @@ jobs:
container:
image: docker.io/zmkfirmware/zmk-dev-arm:4.1
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: Install dependencies
run: pip install --break-system-packages -r app/scripts/requirements.txt
- name: West init

View File

@@ -8,7 +8,7 @@ jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: 3.x

View File

@@ -35,7 +35,7 @@ jobs:
ZMK_RELEASE_PLEASE_TOKEN: ${{ secrets.ZMK_RELEASE_PLEASE_TOKEN }}
VERSION: v${{ needs.handle-commit.outputs.major }}.${{ needs.handle-commit.outputs.minor }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: Create major.minor branch
if: ${{ needs.handle-commit.outputs.patch == '0' }}

View File

@@ -23,7 +23,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Find test directories
id: test-dirs
run: |
@@ -40,9 +40,9 @@ jobs:
image: docker.io/zmkfirmware/zmk-build-arm:4.1
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Cache west modules
uses: actions/cache@v4
uses: actions/cache@v5
env:
cache-name: cache-zephyr-modules
with:
@@ -69,7 +69,7 @@ jobs:
run: ZMK_TESTS_VERBOSE=1 west test tests/${{ matrix.test }}
- name: Archive artifacts
if: ${{ always() }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: "${{ matrix.test }}-log-files"
path: app/build/**/*.log

View File

@@ -1,40 +0,0 @@
# Copyright (c) 2020 Pete Johanson, Richard Jones
# SPDX-License-Identifier: MIT
if SHIELD_JNUMPAD
config ZMK_KEYBOARD_NAME
default "jNumpad Wireless"
endif
if ZMK_DISPLAY
config I2C
default y
config SSD1306
default y
config SSD1306_REVERSE_MODE
default y
endif # ZMK_DISPLAY
if LVGL
config LV_Z_VDB_SIZE
default 64
config LV_Z_DPI
default 148
config LV_Z_BITS_PER_PIXEL
default 1
choice LV_COLOR_DEPTH
default LV_COLOR_DEPTH_1
endchoice
endif # LVGL

View File

@@ -1,5 +0,0 @@
# Copyright (c) 2020 Pete Johanson, Richard Jones
# SPDX-License-Identifier: MIT
config SHIELD_JNUMPAD
def_bool $(shields_list_contains,jnumpad)

View File

@@ -1,7 +0,0 @@
CONFIG_ZMK_DISPLAY=y
CONFIG_ZMK_DISPLAY_STATUS_SCREEN_BUILT_IN=y
CONFIG_ZMK_DISPLAY_WORK_QUEUE_SYSTEM=y
CONFIG_ZMK_WIDGET_BATTERY_STATUS=y
CONFIG_ZMK_WIDGET_BATTERY_STATUS_SHOW_PERCENTAGE=y
CONFIG_ZMK_WIDGET_WPM_STATUS=y
CONFIG_ZMK_EXT_POWER=y

View File

@@ -1,48 +0,0 @@
/ {
chosen {
zmk,kscan = &kscan0;
zephyr,display = &oled;
};
kscan0: kscan {
compatible = "zmk,kscan-gpio-matrix";
label = "KSCAN";
diode-direction = "col2row";
row-gpios
= <&pro_micro 18 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 16 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
;
col-gpios
= <&pro_micro 9 GPIO_ACTIVE_HIGH>
, <&pro_micro 8 GPIO_ACTIVE_HIGH>
, <&pro_micro 7 GPIO_ACTIVE_HIGH>
, <&pro_micro 6 GPIO_ACTIVE_HIGH>
;
};
};
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
};
};

View File

@@ -1,73 +0,0 @@
// numpad.keymap
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/ext_power.h>
/ {
combos {
compatible = "zmk,combos";
combo_ext_pwr {
timeout-ms = <50>;
key-positions = <1 2>;
bindings = <&ext_power EP_TOG>;
};
combo_bt_prv {
timeout-ms = <50>;
key-positions = <1 3>;
bindings = <&bt BT_PRV>;
};
combo_bt_nxt {
timeout-ms = <50>;
key-positions = <1 7>;
bindings = <&bt BT_NXT>;
};
combo_reset {
timeout-ms = <50>;
key-positions = <1 15>;
bindings = <&sys_reset>;
};
combo_btclr {
timeout-ms = <50>;
key-positions = <1 16>;
bindings = <&bt BT_CLR>;
};
combo_btldr {
timeout-ms = <50>;
key-positions = <1 18>;
bindings = <&bootloader>;
};
};
};
/ {
keymap {
compatible = "zmk,keymap";
default_layer {
// ┌───┬───┬───┬───┐
// │NUM│ / │ * │ - │
// ├───┼───┼───┼───┤
// │ 7 │ 8 │ 9 │ + │
// ├───┼───┼───┼─ ─┤
// │ 4 │ 5 │ 6 │ │
// ├───┼───┼───┼───┤
// │ 1 │ 2 │ 3 │RET│
// ├───┴───┼───┼─ ─┤
// │ 0 │ . │ │
// └───────┴───┴───┘
bindings = <
&kp KP_NUM &kp KP_DIVIDE &kp KP_MULTIPLY &kp KP_MINUS
&kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_PLUS
&kp KP_N4 &kp KP_N5 &kp KP_N6 &trans
&kp KP_N1 &kp KP_N2 &kp KP_N3 &kp KP_ENTER
&kp KP_N0 &trans &kp KP_DOT &trans
>;
};
};
};

View File

@@ -1,38 +0,0 @@
/*
* Copyright (c) 2020 Pete Johanson, Richard Jones
*
* SPDX-License-Identifier: MIT
*/
#include <dt-bindings/zmk/matrix_transform.h>
#include "jnumpad.dtsi"
/ {
chosen {
zmk,kscan = &kscan0;
zephyr,display = &oled;
};
kscan0: kscan {
compatible = "zmk,kscan-gpio-matrix";
label = "KSCAN";
diode-direction = "col2row";
row-gpios
= <&pro_micro 18 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 16 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
;
col-gpios
= <&pro_micro 9 GPIO_ACTIVE_HIGH>
, <&pro_micro 8 GPIO_ACTIVE_HIGH>
, <&pro_micro 7 GPIO_ACTIVE_HIGH>
, <&pro_micro 6 GPIO_ACTIVE_HIGH>
;
};
};

View File

@@ -3,6 +3,9 @@
if SHIELD_NICE_VIEW
config LS0XX_VCOM_THREAD_PRIO
default 11
config LV_Z_VDB_SIZE
default 100

View File

@@ -12,6 +12,8 @@
reg = <0>;
width = <160>;
height = <68>;
serial-vcom-inversion;
serial-vcom-interval = <33>;
};
};

View File

@@ -1,10 +0,0 @@
# Copyright (c) 2020 Pete Johanson, Richard Jones
# SPDX-License-Identifier: MIT
if SHIELD_PSLGH
config ZMK_KEYBOARD_NAME
default "PSLGH"
endif

View File

@@ -1,5 +0,0 @@
# Copyright (c) 2020 Pete Johanson, Richard Jones
# SPDX-License-Identifier: MIT
config SHIELD_PSLGH
def_bool $(shields_list_contains,pslgh)

View File

@@ -1,29 +0,0 @@
/*
* Copyright (c) 2020 Pete Johanson, Richard Jones
*
* SPDX-License-Identifier: MIT
*/
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h>
/ {
keymap {
compatible = "zmk,keymap";
default_layer {
// -------------------
// | | | | | A | S | J | K | L |
// | UP |DOWN |ENTER| H | | | | | |
// ----------------------
bindings = <
&trans &trans &trans &trans &kp A &kp S &kp J &kp K &kp L
&trans &trans &kp RET &kp H &trans &trans &trans &trans &trans
&kp UARW &kp DARW &trans &trans &trans &trans &trans &trans &trans
>;
};
};
};

View File

@@ -1,57 +0,0 @@
/*
* Copyright (c) 2020 Pete Johanson, Richard Jones
*
* SPDX-License-Identifier: MIT
*/
#include <dt-bindings/zmk/matrix-transform.h>
/ {
chosen {
zmk,kscan = &kscan0;
};
kscan0: kscan {
compatible = "zmk,kscan-gpio-matrix";
label = "KSCAN";
diode-direction = "col2row";
row-gpios
= <&pro_micro_d 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro_d 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro_d 16 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
;
col-gpios
= <&pro_micro_a 1 GPIO_ACTIVE_HIGH>
, <&pro_micro_a 2 GPIO_ACTIVE_HIGH>
, <&pro_micro_a 0 GPIO_ACTIVE_HIGH>
, <&pro_micro_d 14 GPIO_ACTIVE_HIGH>
, <&pro_micro_d 7 GPIO_ACTIVE_HIGH>
, <&pro_micro_d 6 GPIO_ACTIVE_HIGH>
, <&pro_micro_d 5 GPIO_ACTIVE_HIGH>
, <&pro_micro_d 4 GPIO_ACTIVE_HIGH>
, <&pro_micro_d 3 GPIO_ACTIVE_HIGH>
;
};
bt_unpair_combo: bt_unpair_combo {
compatible = "zmk,bt-unpair-combo";
key-positions = <0 11>;
};
};
/*
x x
x x
r1 x
a down
k up
j enter
s r2
a h
x x
x r3
*/

View File

@@ -6,4 +6,5 @@
#define OUT_TOG 0
#define OUT_USB 1
#define OUT_BLE 2
#define OUT_BLE 2
#define OUT_NONE 3

View File

@@ -42,6 +42,11 @@ static const struct behavior_parameter_value_metadata std_values[] = {
.type = BEHAVIOR_PARAMETER_VALUE_TYPE_VALUE,
},
#endif // IS_ENABLED(CONFIG_ZMK_BLE)
{
.value = OUT_NONE,
.display_name = "No Output",
.type = BEHAVIOR_PARAMETER_VALUE_TYPE_VALUE,
},
};
static const struct behavior_parameter_metadata_set std_set = {
@@ -65,6 +70,8 @@ static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding,
return zmk_endpoint_set_preferred_transport(ZMK_TRANSPORT_USB);
case OUT_BLE:
return zmk_endpoint_set_preferred_transport(ZMK_TRANSPORT_BLE);
case OUT_NONE:
return zmk_endpoint_set_preferred_transport(ZMK_TRANSPORT_NONE);
default:
LOG_ERR("Unknown output command: %d", binding->param1);
}

View File

@@ -29,11 +29,12 @@ header, which is added at the top of the keymap file:
This allows you to reference the actions defined in this header:
| Define | Action |
| --------- | ----------------------------------------------- |
| `OUT_USB` | Prefer sending to USB |
| `OUT_BLE` | Prefer sending to the current bluetooth profile |
| `OUT_TOG` | Toggle between USB and BLE |
| Define | Action |
| ---------- | ----------------------------------------------- |
| `OUT_USB` | Prefer sending to USB |
| `OUT_BLE` | Prefer sending to the current bluetooth profile |
| `OUT_TOG` | Toggle between USB and BLE |
| `OUT_NONE` | Prevent from sending any output |
## Output Selection Behavior

2966
docs/package-lock.json generated

File diff suppressed because it is too large Load Diff