ヨセミテのグレースケールで切り替えるには?

I prefer greyscale over inverting color when working in low light plus in general as its less strain on the eyes. But its too many clicks to toggle the settings. I am aware that to invert display color the shortcut is Cmd+Alt+Ctrl+8. And open Accessibility options with Cmd+Alt+F5, but there is no grayscale in the options. Right now, I open Accessibility via spotlight, then choose display & toggle the check box. I am wondering of there is any shortcut key for that? If not, is it possible to make a keyboard shortcut.

5
ru de
あなたができるようには見えません。キーボードショートカット領域(システム環境設定の「キーボード」の下)を覗いてみましたが、キーバインドで画面のグレースケールを調整する方法はないようです。 :(
追加された 著者 Augustas,

4 答え

次のAppleScriptコードの例では、OS X Yosemiteの[システム環境設定]の[アクセシビリティ]で[グレースケールを使用]チェックボックスの状態(10.10.4でテスト)を切り替えます。 「グレースケールを使用」チェックボックスの位置とその状態を切り替えます。

tell application "System Preferences"
    reveal anchor "Seeing_Display" of pane id "com.apple.preference.universalaccess"
    tell application "System Events" to tell front window of application process "System Preferences"
        with timeout of 5 seconds
            repeat until (exists checkbox "Use grayscale")
                delay 0.1
            end repeat
            click checkbox "Use grayscale"
        end timeout
    end tell
    quit
end tell

次の問題はそれをどのように実行したいかです。サードパーティ製ユーティリティを使用せずにキーボードショートカットを使用するようにAutomatorを介してサービスとして設定することを取り巻く問題は、ショートカットキーコンボを受け取るすべてのアプリケーションがそうする許可を必要とすることです。すべてのアプリケーションではなくFinderそれで、私は第三者のユーティリティなしでそれをUsers Scriptフォルダの中にスクリプトとして保存して、そしてそれからAppleメニューバーの中のScriptメニューまたはアプリケーションとしてそれにアクセスすることになるでしょう。

アップルメニューバーのスクリプトメニューの設定は、スクリプトエディタの環境設定にあります。 「グレースケールを使用」チェックボックスの状態を切り替えるには、マウスを2回クリックするだけです。一方はスクリプトメニューをクリックし、もう一方はスクリプト名をクリックします。

アプリケーションとしてそれをDockに配置することができ、それからあなたは「Use greyscale」チェックボックスの状態を切り替えたいときはいつでもマウスのシングルクリックです。

In either of these two cases you'll have to give permission under Accessibility on the Privacy tab of Security & Privacy in System Preferences in order to run it successfully.


ちなみに、 FastScripts のようなプログラムを使用する場合は、スクリプトエディタに保存されている .scpt としての例 AppleScript コードを作成しない> Automator サービスをコメントに記載されている回避策を使用して、 FastScript設定にキーボードショートカットを割り当てることができます。

FastScriptsの開発者と提携していません。満足しているユーザーです。

2
追加された
@qbektrix、はい、セキュリティの観点からすると、それはより安全な方法です。ところで、アイコンが気に入らない場合は、アプリケーションバンドル内の "applet.icns"ファイルを置き換えるか、サードパーティ製ユーティリティを使用して別のアイコンを割り当てることでアイコンを変更できます。手動で行う場合は、「different_name.icns」ファイルから名前を変更しても、.icnsファイルは同じ名前にする必要があります。アプリケーションバンドルを右クリックして[パッケージの内容を表示]を選択し、[目次/リソース/]に移動します。新しい.icnsファイルを表示するために killall Finderkillall Dock を実行するか、ログアウト/ログインサイクルを実行することをお勧めします。
追加された 著者 user3439894,
グレースケールのスクリプトをAutomatorアプリケーションとして保存し、そのアプリケーションを起動するだけのAutomatorサービスを作成することで、「すべてのアプリケーションに許可が必要になる」問題を回避することができました。私はサービスにキーボードショートカットを与え、そしてアプリケーションは私のコンピュータを制御する許可を得ます。編集:ちょうど第二の答えに同じことをすることを推奨するリンクがあることに気づいた!だから彼らに称賛を。彼らはまた彼らのスクリプトに0.5秒の遅れを持っています - 私もそれが必要だとわかりました。
追加された 著者 PRDeving,
解決策をどうもありがとう。アプリケーションとしてドックに保存します。スクリプトエディタ全体ではなく、その1つのアプリに制御を与える方が安全だと思います。答えてくれてありがとう。
追加された 著者 camelccc,

これに関する古い Appleディスカッションを見つけ、質問に回答したユーザーが投稿しましたグレースケールをオン/オフするAppleScriptファイル。 OS X Yosemiteで動作するように元のコードを修正しました。

「スクリプトエディタ」を開き、新しい文書に以下を貼り付けます。

tell application "System Preferences" to activate
delay 1

tell application "System Events"
tell process "System Preferences"
click the menu item "Accessibility" of the menu "View" of menu bar 1
delay 0.5
click the checkbox "Use grayscale" of window "Accessibility"
end tell
end tell
tell application "System Preferences" to quit

ハンマーをクリックしてコンパイルしてから保存しますが、保存ダイアログの「ファイル形式」のところで「アプリケーション」を選択します。

このコードを実行する前に、下の図のように[ユーザー補助]の[表示]が選択されていることを確認してください。それが終わったら、システム環境設定を終了できます。

Make sure that before running this,

アプリの初回実行時にクラッシュし、ユーザー補助機能を使用してアプリにコンピューターの制御を許可するかどうかをOS Xが確認します。アクセスを許可し、アプリを終了して再起動します。

時々これはうまくいかず、エラーメッセージを出してクラッシュします。このような場合は、再起動するだけで問題なく動作します。

EDIT: This may help with making it a keyboard shortcut: Link

2
追加された
特にあなたのAppleScriptに関する1つの問題はあなたがアクセシビリティ設定が開かれるときそれがディスプレイ上にあるだろうと仮定しているけれどもそれはそれが最後に選択されたものの上にあるようにはならないかもしれない。例として、それが最後にズームであった場合、それはズームに対して開き、エラーとなります。「AppleScriptエラーシステムイベントはエラーを取得しました。」ウィンドウの「グレースケールを使用」チェックボックスを取得できません。 ""
追加された 著者 user3439894,
ありがとう@ user3439894、私はAppleScriptがあまり良くない
追加された 著者 Manea Florin,
@CreeperzEdge、答えてくれてありがとう。キーボードショートカットを作成するためのリンクは本当に役に立ちました。
追加された 著者 camelccc,

私は@CreeperzEdge answerからのスクリプトを使用しましたが、それは私のコンピュータ上で少し遅延がありました。そのスクリプトを少し変更しました。

tell application "System Preferences" to reveal anchor "Seeing_Display" of pane id "com.apple.preference.universalaccess"
tell application "System Preferences"
    activate
    tell application "System Events" to tell process "System Preferences"
        click the checkbox "Use grayscale" of window "Accessibility"
    end tell
end tell

tell application "System Preferences" to quit

どういうわけか

tell application "System Preferences" to reveal anchor "Seeing_Display" of pane id "com.apple.preference.universalaccess"

より速いです

tell application "System Preferences"
    activate
    reveal anchor "Seeing_Display" of pane id "com.apple.preference.universalaccess"
end tell

私は他人の経験に興味があるでしょう。

2
追加された
どのようにしてこれを考え出したのかわかりませんが、 delay 1 の行を必要とせずに、ソリューションはより速く動作します。私はそれをアプリケーションとして保存しました Automatorサービス経由のショートカット
追加された 著者 Blair Conrad,

私はそれを私のために働かせるために得るのに1秒の遅れが必要であることがわかりました。

tell application "System Preferences"
    activate
    reveal anchor "Seeing_Display" of pane "com.apple.preference.universalaccess"
    delay 1
    tell application "System Events" to tell process "System Preferences"
        click the checkbox "Use grayscale" of window "Accessibility"
    end tell
end tell
tell application "System Preferences" to quit
1
追加された