スクリプトを介して「すべてのF1、F2を標準キーとして使用する」を切り替えます


25

「すべてのF1、F2を標準キーとして使用する」設定を頻繁に切り替え、スクリプト(またはキーボードショートカット)を使用して自動化したい。出来ますか?私は正しい議論をGoogleに試みましたdefaults write ...が、失敗しました。

fn設定


更新:最終的にここでの回答に基づいてhttps://github.com/jkbrzt/macos-fn-toggleを作成しました。

アップデートII:現在、https://github.com/Pyroh/Fluorもあります。これは、アクティブなアプリケーションに応じてキーボードのfnキーの動作を自動的に変更できる本当に素晴らしいメニューバーアプリです。

回答:


25
tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events" to tell process "System Preferences"
    click checkbox 1 of tab group 1 of window 1
end tell
quit application "System Preferences"

を使用することもできdefaults write -g com.apple.keyboard.fnState -bool trueますが、ログアウトして再度ログインせずに変更を適用する方法がわかりません。


4
このスクリプトをAutomatorを使用するアプリとしてパックして、Spotlightからすばやく実行できるようにしました:github.com/jkbr/macos-fn-toggle
Jakub Roztocil

@jkbr githubのアプリは、私が探していた種類のものです。ありがとう!
mdwhatcott

1
AppleScript Editorからスクリプトをアプリケーションとして保存することもできます。スクリプトをAppleScript Editorに貼り付け、⌘Sを押して、形式をアプリケーションに設定するだけです。
Lri

さらに別の方法として、オートマトンで新しい「サービス」を作成し、「Applescriptを実行」コマンドを追加し、それを言うところに貼り付けます(*スクリプトはここにあります*)。保存すると、すべてのアプリケーションのサービスメニューにfnが含まれます:)
スパイダー14年

2
Mavericksでは、「AppleScript Editorは支援アクセスを許可されていません。」のようなエラーを受け取ります。そのため、[プライバシー]タブの[セキュリティとプライバシー]に移動し、[アクセス可能性]を選択して、アプリで有効にする必要があります。ロックを解除するには、管理者パスワードを入力する必要があります。

9

スクリプトについては知りませんが、便利なリバースエンジニアリングとグーグルで、既存のAppleScript GUIが気に入らなかったので、これを作りました。

https://github.com/nelsonjchen/fntoggle

コンパイルされたバイナリ(PATHに投げ込むか、それが何であるかわからない場合/usr/local/bin/):https : //github.com/nelsonjchen/fntoggle/releases

またはshを実行して、何でも(ControlPlane、Automator など)から呼び出します。fntoggle onfntoggle off

このスクリプトでは、GUIアクセシビリティをオンにする必要はありません。また、ログアウトして再度ログインする必要もありません。


これはまだSierraで機能しますか?ここで働いていません。
ウォーレンP

@WarrenPこの問題は啓発的かもしれません。github.com/nelsonjchen/fntoggle/issues/4
crazysim

4

以下で現在の状態を読むことができます。(Fキーの場合は1、メディア/輝度などの場合は0)

defaults read "Apple Global Domain" "com.apple.keyboard.fnState"

書き込むことはできますが、再起動するまで変更されません。(代わりにDockとFinderを殺してみましたが、運はありません)

defaults write "Apple Global Domain" "com.apple.keyboard.fnState" "1" ## F1 F2 etc
defaults write "Apple Global Domain" "com.apple.keyboard.fnState" "0" ## Brightness/Media

このplistファイルを読み取るものについてより多くの知識を持っている人は、このplistを読み取るものをすべて強制終了して再起動するスクリプトを作成し、変更を確認する必要があると考えています。


おかげで、それが正しいキーです。ただし、直接変更しても動作は変わらないようです。
ヤクブロズトシル14

再起動しても助けにならない
ダニエル

1

実際、スポットライトなどを使用してアプリを実行する必要はありません。私の意見では、最良の方法は次のとおりです。

  1. Automatorで新しいサービスを作成する
  2. ドラッグ:「Appleスクリプトを実行
  3. [選択されたサービス受信]:入力なしを選択します
  4. この他の回答からこのコードを貼り付けます

    tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
    end tell
    tell application "System Events" to tell process "System Preferences"
    click checkbox 1 of tab group 1 of window 1
    end tell
    quit application "System Preferences" 
  5. 「yourname」として保存

  6. システム環境設定→キーボード→ショートカットを開きます
  7. 左側のメニューで「サービス」を選択します
  8. 右側で、[全般]まで下にスクロールし、サービスに一意のホットキーを割り当てます。cmd+ shift + Lを選択します

  9. それでおしまい!それほど高速でも何でもありませんが、アプリを実行したり、自分で環境設定に移動したりする必要はありません。

補遺:EL Capitanでは、Automatorがフォーカスされている場合にのみ機能します。そうでない場合(たとえば、キーボードショートカットからスクリプトを呼び出す場合)、「アクション「AppleScriptを実行」アクションでエラーが発生しました」メッセージが表示されます。


0

役立つかもしれないいくつかのAppleScript:AppleScriptがF1-F11キーをファンクションキーとして切り替える-MacRumorsフォーラム


Ask Differentへようこそ!これを回答として投稿しました。これは、尋ねられた質問に直接回答するもののみです。異なる質問に対する回答は、単なるリンク以上のものである必要があります。リンクを含めることはできますが、回答に要約または抜粋してください。アイデアは、答えを独立させることです。詳細については、よくある質問をご覧ください。ありがとう。
ネイサングリーンスタイン

0

すべての答えを考えて、ヨセミテに次のソリューションを適用しました。

Automatorを使用して、次のコードでアプリを作成しました。

tell application "System Preferences"
reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events" to tell process "System Preferences"
click checkbox 1 of tab group 1 of window 1
end tell
quit application "System Preferences"

保存して、アプリケーションに追加します。「AppleScript Editorは支援アクセスを許可されていません。」を回避するには、[システム環境設定]-> [セキュリティとプライバシー]-> [プライバシータップ]-> [アクセシビリティエントリ]に移動して、アプリを追加します。

私のようにショートカットが必要な場合は、AutomatorでLaunch Appを使用して新しいApple Scriptを作成し、アプリを選択します。次に、[システム環境設定]-> [キーボード]-> [ショートカット]タブ-> [サービス]エントリに戻り、リストの最後で、スクリプトにショートカットを割り当てます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.