从Mac上的命令行启用/禁用Fn键

时间:2010-08-10 04:50:24

标签: macos shell defaults

我几乎没有使用我的macbook pro上的功能键。我大多只是将它们用于音量,亮度等。现在我已经开始玩星际争霸2了,我想用它们而不必按下fn键。

我想写一个小的shell脚本,它将翻转“使用所有F1,F2等键作为标准功能键”复选框。我以为我可以使用defaults命令来更改它,但我不确定要使用什么值。这样我每次想玩的时候都不需要改变首选项。我可以运行脚本,即切换键,甚至启动游戏。

有什么想法吗?

4 个答案:

答案 0 :(得分:8)

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上测试

答案 1 :(得分:3)

命令是defaults write -g com.apple.keyboard.fnState,虽然我在过去有过改变它的问题。我最后只使用AppleScript。试一试。

defaults write -g com.apple.keyboard.fnState -boolean true

编辑
详细说明,我遇到的问题是实际值已更改,但它没有主动更改“系统偏好设置”中的设置,也没有fnState切换,因为只能在启动/登录等时读取文件。此外,更改由另一个任务打开的配置文件听起来像是破坏文件的好方法。

答案 2 :(得分:2)

您可以安装awsome Keyremap4Macbook

在系统偏好设置下 - >键盘首选项,确保“将所有F1,F2等键用作标准功能键”作为必备条件进行检查。

  • 打开KeyRemap4MacBook首选项。
  • 导航至“直通模式”选项。
  • 检查'更改Fn +转义以切换“直通模式”'
  • 打开“更改F1..F19键”并选中“Macbook Pro”或“Macbook Air”选项,选择正确的mac类型。

答案 3 :(得分:0)

对于任何其他尝试进行这项工作的人 - 我终于得到了我的解决方案。测试:MacOS Big Sur,11.4,2021 年 6 月。

代码基于此处: https://github.com/MrSimonC/Toggle-Mac-Function-Keys

但为了简洁,这里是苹果脚本文件的内容:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

希望有人觉得它有用!