Saturday, 30 November 2019

macos - Aquamacs: How to Remap Capslock to Meta Key, at Application Level?


In aquamacs, how can I remap the capslock key to meta? I can remap command to control using:


(setq mac-command-modifier 'ctrl)


Is there a similar way to remap the capslock?


EDIT: I know that I can remap keys in the system preferences, but I'd really like to confine the damage to aquamacs only. Just like mapping the command key to ctrl, but for capslock.



Answer



Aside from the "Modifier Keys" System Preferences section, I don't think an application can override the behaviour of the caps lock key..


I'm fairly sure the Caps Lock key event is not passed to applications, nor can they override the toggle effect.. Maybe you could do something whereby you monitor caps lock key state, and send alt when it changes.. but this is extremely convoluted, and slightly useless (it wouldn't work if you hold the key..)


Do you really need the caps lock key in other applications?


If so, perhaps you could write an AppleScript to toggle the Caps Lock key mapping? For example, in pseudo-code:


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

Shouldn't be difficult using AppleScript, the code from this Apple support thread should be a good start:


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

No comments:

Post a Comment

How can I VLOOKUP in multiple Excel documents?

I am trying to VLOOKUP reference data with around 400 seperate Excel files. Is it possible to do this in a quick way rather than doing it m...