Parse Windows keys

pull/39/head
Takashi Kokubun 2 years ago
parent 2ee85b8773
commit 16615e55d3
No known key found for this signature in database
GPG Key ID: 6FFC433B12EE23DD

@ -5,7 +5,7 @@ modmap:
CapsLock: Esc
Ctrl_L: Esc
# [Alt_L] [Muhenkan] [Space] [Henkan] [Kana]
# HHKB: [Alt_L] [Muhenkan] [Space] [Henkan] [KatakanaHiragana]
Alt_L: Ctrl_R # for Ctrl+Click
Muhenkan: Ctrl_L
Henkan: Shift_L
@ -15,7 +15,7 @@ modmap:
not: jetbrains-idea
remap:
# Use Windows since Alt is annoying in Electron apps (Slack, Nocturn)
KatakanaHiragana: Windows
KatakanaHiragana: Win_L
- name: Kana -> Alt
wm_class:

@ -5,11 +5,18 @@ modmap:
CapsLock: Esc
Ctrl_L: Esc
# [Alt_L] [Muhenkan] [Space] [Henkan] [Kana]
# HHKB: [Alt_L] [Muhenkan] [Space] [Henkan] [KatakanaHiragana]
Alt_L: Ctrl_R # for Ctrl+Click
Muhenkan: Ctrl_L
Henkan: Shift_L
- name: Kana -> Windows
wm_class:
not: jetbrains-idea
remap:
# Use Windows since Alt is annoying in Electron apps (Slack, Nocturn)
KatakanaHiragana: Win_L
- name: Kana -> Alt
wm_class:
only: jetbrains-idea

@ -24,6 +24,8 @@ pub fn parse_key(input: &str) -> Result<Key, Box<dyn Error>> {
"SHIFT_L" => Key::KEY_LEFTSHIFT,
"ALT_R" => Key::KEY_RIGHTALT,
"ALT_L" => Key::KEY_LEFTALT,
"WIN_R" => Key::KEY_RIGHTMETA,
"WIN_L" => Key::KEY_LEFTMETA,
_ => Key::KEY_RESERVED,
};
if key != Key::KEY_RESERVED {

@ -30,7 +30,7 @@ pub struct Keymap {
pub wm_class: Option<WMClass>,
}
// TODO: validate only either `only` or `not` is set
// TODO: Use trait to allow only either `only` or `not`
#[derive(Debug, Deserialize)]
pub struct WMClass {
#[serde(default, deserialize_with = "string_or_vec")]

Loading…
Cancel
Save