Aquamacs:如何在应用程序级别将 Capslock 重新映射到 Meta 键?

Aquamacs:如何在应用程序级别将 Capslock 重新映射到 Meta 键?

在 aquamacs 中,如何将 capslock 键重新映射到 meta?我可以使用以下命令将命令重新映射到 control:

(setq mac 命令修饰符 'ctrl)

是否有类似的方法来重新映射大写锁定键?

编辑:我知道我可以在系统偏好设置中重新映射按键,但我真的希望将损害限制在 aquamacs 上。就像将命令键映射到 ctrl 一样,但用于 capslock。

答案1

除了“修饰键”系统偏好设置部分之外,我认为没有应用程序可以覆盖大写锁定键的行为。

我相当确定 Caps Lock 键事件不会传递给应用程序,而且它们也无法覆盖切换效果。或许您可以采取某种措施来监视大写锁定键的状态,并在其发生变化时发送 alt 键。但这非常复杂,而且有点没用(如果您按住该键,它将不起作用。)

真的在其他应用程序中需要大写锁定键吗?

如果是这样,也许你可以编写一个 AppleScript 来切换 Caps Lock 键映射?例如,在伪代码中:

loop forever:
    if frontmost application == "Aquaemacs":
        keys.capslock = "Meta"
    else:
        keys.capslock = "Default

使用 AppleScript 应该不难,代码来自此 Apple 支持帖子应该是一个好的开始:

tell application "System Preferences"
    activate
    set current pane to pane "com.apple.preference.keyboard"
end tell

tell application "System Events"

    tell application process "System Preferences"
        get properties

        click button "Modifier Keys..." of tab group 1 of window "Keyboard & Mouse"
        tell sheet 1 of window "Keyboard & Mouse"
            click pop up button 1
            click menu item "No Action" of menu 1 of pop up button 1
            delay 3
            click button "OK"
        end tell
    end tell
end tell

答案2

您可以在“系统偏好设置”窗口中将 Caps Lock 重新映射到 Control、Option 或 Command。它位于“系统偏好设置”->“键盘”->“修饰键”中... 希望这就是您要找的。

相关内容