🚅

爆速!デスクトップアプリの切り替え!(Mac対象)

2022/05/27に公開

どうも、日々さらなる効率性を追い求めて走り回る者です。
デスクトップアプリの切り替え手法で、自分の中でこれが最適だなと落ち着いてきたのでご紹介します。

まず、動画のようにデスクトップアプリの切り替えをジェスチャで拡げて、クリックで選択している方はいますか?

↓それがこのようにほとんど指を動かさずに、高速に切り替えることが出来ます

設定方法

hammerspoonのダウンロード

今回は、hammerspoonというツールを使用します。
以下リンクから最新verをダウンロードしてください。
https://github.com/Hammerspoon/hammerspoon/releases/latest

Assetsの一番上の項目です(スクショした時のverと異なる可能性があります)

中身を、アプリケーションフォルダに移動させてください

以上で、ダウンロードは終わりです。

設定ファイルを書く

以下の箇所に、ファイルを作成してください。
もしかしたら、自分で作成しなくてもhammerspoonのアプリを初回起動すると自動で作られるかもしれません(うろ覚えです)。

~/.hammerspoon/init.lua

一旦、init.luaの中身を以下のように修正します。

function toggleApp(appName, key)
  hs.hotkey.bind({"option"}, key, function()
    local app = hs.application.get(appName)
    if app == nil then
      hs.application.launchOrFocus("/Applications/" .. appName .. ".app")
    elseif app:isFrontmost() then
      app:hide()
    else
      hs.application.launchOrFocus("/Applications/" .. appName .. ".app")
    end
  end)
end

toggleApp("kitty", "space")
toggleApp("Slack", "h")
toggleApp("Google Chrome", "j")
toggleApp("Typora", "k")
toggleApp("Todoist", "l")

scriptは以下の記事を参考にしています。(自分はただ共通化のメソッドにしただけ)
https://tech.gunosy.io/entry/kitty_hammerspoon

luaを触ったことがない方でも簡単なスクリプトなので理解出来ると思います。
toggleAppというメソッドに以下を与えて実行しています。

第一引数 => アプリ名, 第二引数 => キー

なので、適宜設定したいアプリ名とキーを引数に入れてください。自分は5つしか設定していませんが、キーの数だけ設定可能です。
また、二行目に指定してある通り、optionを押しながらの操作となります。(optionが気に食わなければ、ここもよしなに変更してください)

hs.hotkey.bind({"option"}, key, function()

参考までに、自分は以下のように役割を持たせています。

space

最も頻繁に使用するアプリ
自分は、エディタがvimなのでterminalにしている(kitty使用)。

h, j, k, l

そのほかのアプリ
冒頭に貼った動画の通り、キーボードのホームポジションから離れないため最小限の動きで押せる
自分の場合↓

  • h => Slack
    みんな大好きチャット
  • j => Google Chrome
    みんな大好きWebブラウザ
  • k => Typora
    お気に入りのMarkdownメモ帳
  • l => Todoist
    お一人TODOボード

アプリ名について

単純に、アプリケーションフォルダにあるファイル名をそのままコピペで問題ないです。
Android StudioVSCode、何でも指定しちゃいましょう。

いざ、実行

hammerspoonを実行すると、以下のようなwindowになると思います。
もし、実行中にinit.luaを修正して反映させたい場合は、右上にある「Reload config」を押してください。

何かエラーが出た場合は、エラー文に従って戦ってください🥊

お疲れ様でした

慣れるまで苦戦するかもですが、慣れたら手足のようにアプリを切り替えられます。
エンジニア以外の職種の方にもぜひオススメです。

これからも生産性を上げる活動をしますので、一緒に怠惰な手の動きを目指しましょう🍖

ちなみに、今回のファイルはgithubのdotfilesにも上げておりますので何かの参考になれば幸いです。
https://github.com/Yokoi-K/dotfiles/blob/main/.hammerspoon/init.lua

Discussion