From f81a21ec84d070e7082f79dd0acfcd87bd309c96 Mon Sep 17 00:00:00 2001
From: Daylight <33833751+daylight-pro@users.noreply.github.com>
Date: Tue, 11 Nov 2025 16:26:01 +0900
Subject: [PATCH 1/5] =?UTF-8?q?=E8=A8=AD=E5=AE=9A=E8=BF=BD=E5=8A=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../keyball44/keymaps/via_daylight/config.h | 24 +++---
.../keyball44/keymaps/via_daylight/keymap.c | 73 +++++++++++++++----
.../keyball44/keymaps/via_daylight/rules.mk | 2 +
3 files changed, 76 insertions(+), 23 deletions(-)
diff --git a/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/config.h b/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/config.h
index 04e3a5b4fd9..3ed5f7b1ec3 100644
--- a/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/config.h
+++ b/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/config.h
@@ -21,16 +21,16 @@ along with this program. If not, see .
#pragma once
#ifdef RGBLIGHT_ENABLE
-//# define RGBLIGHT_EFFECT_BREATHING
-//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
-//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-//# define RGBLIGHT_EFFECT_SNAKE
-//# define RGBLIGHT_EFFECT_KNIGHT
-//# define RGBLIGHT_EFFECT_CHRISTMAS
-# define RGBLIGHT_EFFECT_STATIC_GRADIENT
-//# define RGBLIGHT_EFFECT_RGB_TEST
-//# define RGBLIGHT_EFFECT_ALTERNATING
-//# define RGBLIGHT_EFFECT_TWINKLE
+// # define RGBLIGHT_EFFECT_BREATHING
+// # define RGBLIGHT_EFFECT_RAINBOW_MOOD
+// # define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// # define RGBLIGHT_EFFECT_SNAKE
+// # define RGBLIGHT_EFFECT_KNIGHT
+// # define RGBLIGHT_EFFECT_CHRISTMAS
+#define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// # define RGBLIGHT_EFFECT_RGB_TEST
+// # define RGBLIGHT_EFFECT_ALTERNATING
+// # define RGBLIGHT_EFFECT_TWINKLE
#endif
#define TAP_CODE_DELAY 5
@@ -38,3 +38,7 @@ along with this program. If not, see .
#define POINTING_DEVICE_AUTO_MOUSE_ENABLE
#define AUTO_MOUSE_DEFAULT_LAYER 1
+
+#define TAPPING_TERM 150
+#define PERMISSIVE_HOLD
+#define TAPPING_FORCE_HOLD
\ No newline at end of file
diff --git a/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/keymap.c b/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/keymap.c
index 09fe5374ff2..c0d59fd4998 100644
--- a/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/keymap.c
+++ b/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/keymap.c
@@ -24,10 +24,10 @@ along with this program. If not, see .
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// keymap for default (VIA)
[0] = LAYOUT_universal(
- KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_DEL ,
- KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , S(KC_7) ,
- KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_INT1 ,
- KC_LALT,KC_LGUI,LCTL_T(KC_LNG2) ,LT(1,KC_SPC),LT(3,KC_LNG1), KC_BSPC,LT(2,KC_ENT), RCTL_T(KC_LNG2), KC_RALT , KC_PSCR
+ KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS ,
+ KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT ,
+ KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , MO(4) ,
+ KC_LALT,KC_LGUI,LCTL_T(KC_LNG2) ,LT(1,KC_SPC),MO(3), KC_BSPC,LT(2,KC_ENT), KC_J, KC_RALT , KC_PSCR
),
[1] = LAYOUT_universal(
@@ -53,19 +53,66 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
// clang-format on
-layer_state_t layer_state_set_user(layer_state_t state) {
- // Auto enable scroll mode when the highest layer is 3
- keyball_set_scroll_mode(get_highest_layer(state) == 3);
- return state;
+layer_state_t layer_state_set_user(layer_state_t state)
+{
+ // Auto enable scroll mode when the highest layer is 3
+ keyball_set_scroll_mode(get_highest_layer(state) == 3);
+ return state;
+}
+
+void register_space(void)
+{
+ register_code(KC_SPC);
+}
+
+void unregister_space(void)
+{
+ unregister_code(KC_SPC);
+}
+
+enum key_state sym_spc_state = RELEASED;
+uint16_t sym_spc_pressed_timer;
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record)
+{
+ switch (keycode)
+ {
+ case SYM_SPC:
+ if (record->event.pressed)
+ {
+ sym_spc_pressed_timer = timer_read();
+ sym_spc_state = PRESSED;
+ }
+ else
+ {
+ if (sym_spc_state == HOLDEN)
+ {
+ unregister_space();
+ }
+ sym_spc_state = RELEASED;
+ }
+ break;
+ }
+ return true;
+}
+
+void matrix_scan_user(void)
+{
+ if (sym_spc_state == PRESSED && timer_elapsed(sym_spc_pressed_timer) > TAPPING_TERM)
+ {
+ register_space();
+ sym_spc_state = HOLDEN;
+ }
}
#ifdef OLED_ENABLE
-# include "lib/oledkit/oledkit.h"
+#include "lib/oledkit/oledkit.h"
-void oledkit_render_info_user(void) {
- keyball_oled_render_keyinfo();
- keyball_oled_render_ballinfo();
- keyball_oled_render_layerinfo();
+void oledkit_render_info_user(void)
+{
+ keyball_oled_render_keyinfo();
+ keyball_oled_render_ballinfo();
+ keyball_oled_render_layerinfo();
}
#endif
diff --git a/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/rules.mk b/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/rules.mk
index d80df3fa49a..84e037863dd 100644
--- a/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/rules.mk
+++ b/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/rules.mk
@@ -3,3 +3,5 @@ RGBLIGHT_ENABLE = yes
OLED_ENABLE = yes
VIA_ENABLE = yes
+
+EXTRAKEY_ENABLE = yes
\ No newline at end of file
From 02f5a717efff8953a306f273bc4cc8cd736261b5 Mon Sep 17 00:00:00 2001
From: Daylight <33833751+daylight-pro@users.noreply.github.com>
Date: Tue, 11 Nov 2025 16:31:55 +0900
Subject: [PATCH 2/5] =?UTF-8?q?workflow=E8=BF=BD=E5=8A=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.github/workflows/build-all.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/build-all.yml b/.github/workflows/build-all.yml
index 5142a0ef47a..d8c27cb8345 100644
--- a/.github/workflows/build-all.yml
+++ b/.github/workflows/build-all.yml
@@ -40,6 +40,8 @@ jobs:
keymap: via_Left
- keyboard: keyball46
keymap: via_Both
+ - keyboard: keyball44
+ keymap: via_daylight
uses: ./.github/workflows/build-firmware.yml
with:
From 80bdfe640d008572f721bade40a5c076793498f5 Mon Sep 17 00:00:00 2001
From: Daylight <33833751+daylight-pro@users.noreply.github.com>
Date: Tue, 11 Nov 2025 16:37:38 +0900
Subject: [PATCH 3/5] =?UTF-8?q?=E4=BF=AE=E6=AD=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../keyball/keyball44/keymaps/via_daylight/keymap.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/keymap.c b/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/keymap.c
index c0d59fd4998..6438fd0e8f8 100644
--- a/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/keymap.c
+++ b/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/keymap.c
@@ -60,6 +60,13 @@ layer_state_t layer_state_set_user(layer_state_t state)
return state;
}
+enum key_state
+{
+ RELEASED,
+ PRESSED,
+ HOLDEN
+};
+
void register_space(void)
{
register_code(KC_SPC);
From e836b10a712ee8133b2ebdbe371314866f96b4c8 Mon Sep 17 00:00:00 2001
From: Daylight <33833751+daylight-pro@users.noreply.github.com>
Date: Tue, 11 Nov 2025 16:40:47 +0900
Subject: [PATCH 4/5] =?UTF-8?q?=E4=BF=AE=E6=AD=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../keyboards/keyball/keyball44/keymaps/via_daylight/keymap.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/keymap.c b/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/keymap.c
index 6438fd0e8f8..3ea618aaca6 100644
--- a/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/keymap.c
+++ b/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/keymap.c
@@ -19,6 +19,7 @@ along with this program. If not, see .
#include QMK_KEYBOARD_H
#include "quantum.h"
+#include SYM_SPC LT(1, KC_SPC)
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
From 58becc11045d47303970adbcafbc970ee8a9d095 Mon Sep 17 00:00:00 2001
From: Daylight <33833751+daylight-pro@users.noreply.github.com>
Date: Tue, 11 Nov 2025 16:50:48 +0900
Subject: [PATCH 5/5] =?UTF-8?q?=E4=BF=AE=E6=AD=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../keyboards/keyball/keyball44/keymaps/via_daylight/keymap.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/keymap.c b/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/keymap.c
index 3ea618aaca6..b6c2c5012f5 100644
--- a/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/keymap.c
+++ b/qmk_firmware/keyboards/keyball/keyball44/keymaps/via_daylight/keymap.c
@@ -19,7 +19,7 @@ along with this program. If not, see .
#include QMK_KEYBOARD_H
#include "quantum.h"
-#include SYM_SPC LT(1, KC_SPC)
+#define SYM_SPC LT(1, KC_SPC)
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS ,
KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT ,
KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , MO(4) ,
- KC_LALT,KC_LGUI,LCTL_T(KC_LNG2) ,LT(1,KC_SPC),MO(3), KC_BSPC,LT(2,KC_ENT), KC_J, KC_RALT , KC_PSCR
+ KC_LALT,KC_LGUI,LCTL_T(KC_LNG2) ,SYM_SPC,MO(3), KC_BSPC,LT(2,KC_ENT), KC_J, KC_RALT , KC_PSCR
),
[1] = LAYOUT_universal(