我几乎从不使用我的 macbook pro 上的功能键。我主要将它们用于音量、亮度等。现在我已经开始玩星际争霸 2 了,我想使用它们而不必按下 fn 键。
我想编写一个小 shell 脚本来翻转“使用所有 F1、F2 等键作为标准功能键”复选框。我在想我可以使用 defaults 命令来更改它,但我不确定要使用什么值。这样我就不必每次想玩时都改变偏好。我可以运行脚本来切换按键,甚至启动游戏。
有任何想法吗?
一个应该可以解决问题的 AppleScript——取自http://scriptbuilders.net/files/fn1.1.html,稍作修改
--Check if GUI Scripting is Enabled
tell application "System Events"
if not UI elements enabled then
set UI elements enabled to true
end if
end tell
--Enable/Disable "Use all F1, F2, etc. keys as standard function keys" option in Keyboard & Mouse Preference pane and close System Preferences
tell application "System Events"
tell application "System Preferences"
reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
click checkbox 1 of tab group 1 of window 1 of application process "System Preferences"
end tell
if application "System Preferences" is running then
tell application "System Preferences" to quit
end if
在 MacOS 10.6.4 上测试
命令是defaults write -g com.apple.keyboard.fnState
,尽管我过去在更改它时遇到过问题。我最终只使用了 AppleScript。试试看。
defaults write -g com.apple.keyboard.fnState -boolean true
编辑
详细说明,我遇到的问题是实际值已更改,但它不会主动更改系统偏好设置中的设置,fnState 也不会切换,因为该文件仅在启动/登录等时读取。另外,对另一个任务打开的配置文件进行更改听起来像是破坏文件的好方法。
您可以安装可怕的 Karabiner-Elements。
在“系统偏好设置”->“键盘偏好设置”下,确保将“使用所有 F1、F2 等键作为标准功能键”作为附加选项进行检查。
对于其他试图完成这项工作的人 - 我终于得到了我的解决方案。测试:MacOS Big Sur,11.4,2021 年 6 月。
代码基于这里: https ://github.com/MrSimonC/Toggle-Mac-Function-Keys
但为简洁起见,这里是苹果脚本文件的内容:
-- Apple Script (i.e. Use in Apple's Script Editor Application) to Toggle Function Keys / Media keys on/off
-- Tested on MacOS Big Sur (11.4) June 2021
-- Project Path: https://github.com/MrSimonC/Toggle-Mac-Function-Keys
tell application "System Preferences"
set current pane to pane "com.apple.preference.keyboard"
end tell
tell application "System Events"
if UI elements enabled then
tell application process "System Preferences"
repeat until exists tab group 1 of window "Keyboard"
delay 0.5
end repeat
click radio button "Keyboard" of tab group 1 of window "Keyboard"
click checkbox "Use F1, F2, etc. keys as standard function keys" of tab group 1 of window "Keyboard"
end tell
tell application "System Preferences" to quit
else
-- GUI scripting not enabled. Display an alert
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.security"
display dialog "UI element scripting is not enabled. Please activate this app under Privacy -> Accessibility so it can access the settings it needs."
end tell
end if
end tell
希望有人觉得它有用!