summarylogtreecommitdiffstats
path: root/modifiers_linux.go
blob: 7e4fa6427168c2ed1474905e6b00cf2e32e1a631 (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
30
31
32
33
34
35
package hotkey

import "golang.design/x/hotkey"

// modifierMap 定义 Linux 平台支持的修饰键映射
// 注意:Linux 下使用 Mod1 代表 Alt,Mod4 代表 Super/Win
var modifierMap = map[string]hotkey.Modifier{
	"ctrl":    hotkey.ModCtrl,
	"control": hotkey.ModCtrl,
	"shift":   hotkey.ModShift,
	"alt":     hotkey.Mod1,
	"option":  hotkey.Mod1,
	"meta":    hotkey.Mod1,
	"super":   hotkey.Mod4,
	"cmd":     hotkey.Mod4,
	"command": hotkey.Mod4,
	"win":     hotkey.Mod4,
}

// platformKeys 定义 Linux 平台特定的按键映射(用于补充 keyMap)
var platformKeys = map[string]hotkey.Key{}

// 定义 Linux 平台支持的修饰键常量(备用)
const (
	customModAlt = 1 << iota // 自定义 alt 修饰键常量
	customModWin             // 自定义 win 修饰键常量
)

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