summarylogtreecommitdiffstats
path: root/modifiers_linux.go
blob: 4a4a8dcbc5870b729bc58ce7f78f7d9a017d66e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package hotkey

import "golang.design/x/hotkey"

// 定义Linux平台支持的修饰键映射,用整数常量替代库中缺失的ModAlt和ModWin
const (
    customModAlt = 1 << iota // 自定义alt修饰键常量
    customModWin             // 自定义win修饰键常量
)

var modifierMap = map[string]hotkey.Modifier{
    "ctrl":    hotkey.ModCtrl,
    "control": hotkey.ModCtrl,
    "shift":   hotkey.ModShift,
    "alt":     customModAlt,
    "option":  customModAlt,
    "cmd":     customModWin,
    "command": customModWin,
    "meta":    customModWin,
    "super":   customModWin,
}

// 补充解析逻辑,将自定义常量转换为库可识别的修饰键(需结合库的底层实现调整)
func parseModifier(mod string) hotkey.Modifier {
    if m, ok := modifierMap[mod]; ok {
        return m
    }
    return 0
}