OmarchyでGoogle Chromeを使ってWebアプリを起動する

OmarchyでGoogleカレンダーのショートカットを Ctrl + Shift + C で起動できるようにキーバインドを設定した。 ブラウザはChromiumを使っている。

基本的にはChromiumを使って個人のGoogleアカウントでGmailやGoogleカレンダーを利用している。 でも、ショートカットキーでカレンダーを起動するときは仕事のスケジュールを確認したいとき。 会社のGoogle Workspaceのカレンダーを最初に表示したかった。

URLでアカウントを指定できる

先に結論を書くと、GoogleカレンダーはURLでアカウントを指定できる。

https://calendar.google.com/ にアクセスすると /calendar/u/0/r というパスにリダイレクトされる。 複数のGoogleアカウントでログインしている場合、u/0 の部分がアカウントのインデックスになっている。 右上のアカウント切り替えで別のアカウントに切り替えると /calendar/u/1/r のようにパスが変わる。

つまり以下のように設定すれば、2番目にログインしているアカウントのカレンダーを開くことができる。

1
bindd = SUPER SHIFT, C, Calendar, exec, omarchy-launch-webapp "https://calendar.google.com/calendar/u/1/r"

Gmailも同じ構造なので、以下のように設定できる。

1
bindd = SUPER SHIFT, E, Email, exec, omarchy-launch-webapp "https://mail.google.com/mail/u/1/#inbox"

これで解決。以下は試行錯誤の記録。

chrome-launch-webappコマンドを作った

最初は別のアプローチを考えた。 普段はChromiumを使っているが、カレンダーやメールだけはGoogle Chromeを使う。 Google Chromeには会社のGoogle Workspaceだけでログインしておけば、ショートカットキー経由でカレンダーを開いたときにデフォルトで仕事のカレンダーが表示されるはず。

omarchy-launch-webappの仕組み

Omarchyでは Setup -> keybindings から以下のように設定できる。

1
bindd = SUPER SHIFT, C, Calendar, exec, omarchy-launch-webapp "https://calendar.google.com"

omarchy-launch-webapp~/.local/share/omarchy/bin/omarchy-launch-webapp にあるスクリプト。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#!/bin/bash

browser=$(xdg-settings get default-web-browser)

case $browser in
google-chrome* | brave-browser* | microsoft-edge* | opera* | vivaldi* | helium*) ;;
*) browser="chromium.desktop" ;;
esac

exec setsid uwsm-app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$browser 2>/dev/null | head -1) --app="$1" "${@:2}"

デフォルトのブラウザを取得して、--app オプション付きで指定されたURLを開いている。

chrome-launch-webappを作成

~/.local/bin/chrome-launch-webapp というコマンドを作った。

1
2
3
4
5
#!/bin/bash

browser=google-chrome.desktop

exec setsid uwsm-app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$browser 2>/dev/null | head -1) --app="$1" "${@:2}"

あとはkeybindingsを以下のように変える。

1
bindd = SUPER SHIFT, C, Calendar, exec, chrome-launch-webapp "https://calendar.google.com"

これでGoogle Chromeからカレンダーを起動できるようになった。

最後に

chrome-launch-webappを作る必要はなかったけど、少しOmarchyへの理解が進んだので無駄ではないはず。

カテゴリ

comments powered by Disqus