Alfredでダークモードを切り替えるWorkflowを作成する方法

AppleScriptを使って比較的簡単に実装できて、且つ利便性も高いものに「ダークモードの切り替え」が挙げられます。
Keyboard Maestroを使えばショートカットキーからの実行もできるのですが、ショートカットキーを覚える必要が出てきます。
しかし、Alfredであればシステムコマンドのように「darkmode」と入力して実行すれば、忘れることも少なそうで便利なのでは?と思いました。
というわけで、今回はAlfredでシステムコマンドのようにダークモードを切り替えられるWorkflowを作ってみます。
ダークモードを切り替えるAppleScript
まず、Workflowを作る前に、ダークモードを切り替えるAppleScriptについてです。
1日1Tipsでも紹介したことがあるのですが、下記のコードを使うと切り替えができます。
tell application "System Events"
tell appearance preferences
set dark mode to not dark mode
end tell
end tell欠点は「いまの状態がダークモードなのかライトモードなのか判別できない」ことで、トグルでの切り替えしかできないのですが、そこに関してはAppleScript側の問題なのでどうしようもなさそうです。
Workflowの作成
まずはAlfredの環境設定の[Workflows]のサイドバー下の「+」ボタンを押し、「Blank Workflow」をクリックして必要情報を入力します。
今回の場合はダークモードを切り替えるWorkflowなので、名前は「Toggle Dark Mode」としておきます。

キーワード部分の設定
黒い背景部分を右クリックして、[Inputs]→[Keyword]を選択します。
Keywordには今回「darkmode(他のでもいいですが、分かりやすいもの)」を入力して、「Argument Required」を「No Argument(引数なし)」にしておきます。
こうすることで引数なしにして、キーワードを入力したときだけWorkflowの実行ができるようになります。

あとはタイトルやサブタイトルなどの情報を入力して、「Save」を押します。
AppleScriptの設定
Keywordの右横にあるポッチをクリックして、[Actions]→[Run NSAppleScript]を選択します。
このWorkflow Onjectを使うと、AppleScript(またはAlfred用のAppleScriptであるNSAppleScript)の実行ができます。
下の画像のようなパネルが表示されるので、「– your script here」と書かれた部分にスクリプトを入力します。

今回の場合は、先ほども紹介したダークモードを切り替えるAppleScriptを入力します。
tell application "System Events"
tell appearance preferences
set dark mode to not dark mode
end tell
end tell
注意しなければいけないポイントとして、AppleScriptはインデントが重要で、それが崩れているとうまく動作しないので気をつけてください。
入力できたら「Save」を押して、完成です。
試しにAlfredの検索画面で「darkmode」と入力してWorkflowを実行して、ちゃんとダークモードが切り替わるか確認してみてください。
まとめ
今回は一例としてダークモードを切り替えてしまいましたが、AlfredからAppleScriptの実行は使えるので、色々試してみると良さそうです。

Workspacesの検索ウインドウで使えるコマンド一覧
macOS CatalinaでもQuick Lookのサードパーティー製プラグインを使う方法
連絡先.appを活用して他人のメールアドレスなどの情報を管理する方法
テキストエディタ.app起動時に表示されるダイアログボックスを非表示にする方法
単語登録機能に日常でよく使うフレーズを登録して、文章を素早く入力する方法
Google Meetをさらに便利にする便利なChrome拡張機能と、公式でサポートされるようになった機能
macOSのシステム環境設定「Siri」の設定見直し
高速なzshのプラグインマネージャー「Zplugin」の導入方法
Macで毎回使うアプリやフォルダを一気に開いて、すばやく作業環境を整えられる「Workspaces」
Alfredで複数のアプリケーションを一気に起動できるようにする
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
自宅ですぐにインターバルトレーニングを始めたいならApple Watchの「Seconds」がオススメ!HIITと相性抜群!
Visual Studio CodeのEmmetのlang属性をjaに変更する方法
Visual Studio Codeで「.html」拡張子以外のファイルでもEmmetを使えるようにする
高機能なランチャーアプリ「Alfred 4」がリリース!ダークモード対応やWorkflowが強化
Finderで選択したフォルダを特定のアプリケーションで開くAlfred Workflowの作り方
Google Chromeでいま開いているページのQRコード生成方法
BetterTouchToolでHTMLを使った表示を作成できる「Floating WebView」機能
Chrome開発者ツールを使って、CLSエラーの原因となっている場所の特定をする方法
iTerm2終了時に表示される確認ダイアログを非表示にする
Hazelを使って、ファイルダウンロードのタイミングでDownloadフォルダを自動で開くようにする