gui modifier instead of insert

This commit is contained in:
mintey 2021-03-03 17:58:45 +02:00
parent 2ab8d0a68a
commit 620e6bdb49
1 changed files with 13 additions and 5 deletions

View File

@ -98,7 +98,7 @@ const byte specials[22] = {
17, 51, 30, 10, 20, 12, 33, 34, 9, 36, 27,
54, 18, 45, 63, 31, 47, 55, 62, 43, 61, 59
};
enum Modifier { Shift, SymbolShift, Keyset, Control, Alt };
enum Modifier { Shift, SymbolShift, Keyset, Control, Alt, Gui };
const int special_action_targets[22] = {
// - \ / '
KEY_MINUS, KEY_MINUS + MASK_ALTGR, KEY_SLASH, KEY_QUOTE,
@ -106,7 +106,7 @@ const int special_action_targets[22] = {
KEY_COMMA, KEY_1 + MASK_SHIFT, KEY_SLASH + MASK_SHIFT, KEY_PERIOD,
KEY_UP, KEY_DOWN, KEY_PAGE_UP, KEY_PAGE_DOWN,
Modifier::Shift, Modifier::SymbolShift, Modifier::Keyset,
KEY_ESC, Modifier::Control, Modifier::Alt, KEY_DELETE, KEY_INSERT,
KEY_ESC, Modifier::Control, Modifier::Alt, KEY_DELETE, Modifier::Gui,
KEY_TAB, KEY_ENTER
};
const int special_action_targets_symbol[22] = {
@ -120,7 +120,7 @@ const int special_action_targets_symbol[22] = {
0, 0
};
const byte special_action_target_types[22] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0
};
byte key_pressed = 0;
@ -135,6 +135,7 @@ bool mod_symbol_lock = false;
bool mod_control = false;
bool mod_alt = false;
bool mod_altgr = false;
bool mod_gui = false;
IntervalTimer trackball_timer;
volatile bool trackball_update = false;
@ -354,6 +355,9 @@ void key_released(byte key) {
case Modifier::Alt:
mod_alt = !mod_alt;
return;
case Modifier::Gui:
mod_gui = !mod_gui;
return;
}
}
return;
@ -433,6 +437,8 @@ void press_key(int key) {
Keyboard.press(KEY_LEFT_ALT);
if (mod_altgr)
Keyboard.press(KEY_RIGHT_ALT);
if (mod_gui)
Keyboard.press(KEY_LEFT_GUI);
// keypress
Keyboard.press(key);
@ -447,15 +453,17 @@ void press_key(int key) {
Keyboard.release(KEY_LEFT_ALT);
if (mod_altgr)
Keyboard.release(KEY_RIGHT_ALT);
if (mod_gui)
Keyboard.release(KEY_LEFT_GUI);
// clear temporary modifiers
mod_shift = mod_symbol = mod_control = mod_alt = mod_altgr = false;
mod_shift = mod_symbol = mod_control = mod_alt = mod_altgr = mod_gui = false;
}
void update_leds() {
digitalWrite(PIN_LED1, mod_shift || mod_shift_lock);
digitalWrite(PIN_LED2, mod_symbol || mod_symbol_lock);
digitalWrite(PIN_LED3, mod_control || mod_alt);
digitalWrite(PIN_LED3, mod_control || mod_alt || mod_gui);
}
int sign(int num) {