20

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

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

有任何想法吗?

4

4 回答 4

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

于 2010-09-09T22:57:03.677 回答
5

命令是defaults write -g com.apple.keyboard.fnState,尽管我过去在更改它时遇到过问题。我最终只使用了 AppleScript。试试看。

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

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

于 2010-08-31T18:50:17.160 回答
3

您可以安装可怕的 Karabiner-Elements

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

  • 打开 KeyRemap4MacBook 首选项。
  • 导航到“通过模式”选项。
  • 选中“更改 Fn+Escape 以切换“通过模式”
  • 打开“更改 F1..F19 键”并检查“Macbook Pro”或“Macbook Air”选项,选择正确的 Mac 类型。
于 2013-07-03T11:49:43.343 回答
1

对于其他试图完成这项工作的人 - 我终于得到了我的解决方案。测试: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

希望有人觉得它有用!

于 2021-06-14T12:29:56.260 回答