fix(linux): correct Fn hotkey mapping from Super_L to RightControl

Fn key does not generate a standard X11 keysym on Linux. The previous
mapping to Super_L (0xffeb) was incorrect and would bind the
Windows/Super key instead. Map to RightControl (0xffe4) to match the
existing fallback convention used on Windows (VK_RCONTROL) and in the
coordinator's hotkey matching logic.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
aeoformandClaude Opus 4.7 committed 2026-05-16 11:03:46 +08:00
1 parent 9cd8b9a8fc
commit f043176d19
1 file changed
+2 -2
@@ -99,7 +99,7 @@ fn trigger_to_keysym(trigger: crate::types::HotkeyTrigger) -> u32 {
crate::types::HotkeyTrigger::RightOption | crate::types::HotkeyTrigger::RightAlt => KEYSYM_ALT_R,
crate::types::HotkeyTrigger::LeftOption => KEYSYM_ALT_L,
crate::types::HotkeyTrigger::RightCommand => KEYSYM_SUPER_R,
crate::types::HotkeyTrigger::Fn => KEYSYM_SUPER_L,
crate::types::HotkeyTrigger::Fn => KEYSYM_CONTROL_R,
crate::types::HotkeyTrigger::Custom => unreachable!(),
}
}
@@ -111,7 +111,7 @@ fn trigger_name(trigger: crate::types::HotkeyTrigger) -> &'static str {
crate::types::HotkeyTrigger::RightOption | crate::types::HotkeyTrigger::RightAlt => "Alt_R",
crate::types::HotkeyTrigger::LeftOption => "Alt_L",
crate::types::HotkeyTrigger::RightCommand => "Super_R",
crate::types::HotkeyTrigger::Fn => "Super_L",
crate::types::HotkeyTrigger::Fn => "Control_R",
crate::types::HotkeyTrigger::Custom => unreachable!(),
}
}