pushbulletとtaskerを使ってKLWPでホーム画面切り替え
【こちらは前サイトからの移植記事になります。】
仕事中とプライベートでホーム画面振り分けをしている私が、家で仕事しても振り分けができるようにした方法。
「どこで仕事してもこれまでのアクションを増やさずにホーム画面を仕事用に変えたい」という怠惰な願いを新しいアプリを増やしてしまったけど解決しました。労力はかかったが、出勤時/退勤時の行動は増やさずに振り分けることができたので大満足。(ここの労力は特に気にしない)
流れは説明するけど、条件が特殊過ぎて他に使う人もいなさそうだしドヤって流れを説明するだけだから。もっと詳しい説明が必要なら連絡くれ。
ちなみにこれまで
解決策を披露する前に、これまでの識別方法。
- 出社
- スマホが会社のwifi拾う
- KLWPにて会社のwifiかどうかでホーム画面振り分け。
と、いう感じでKLWPだけで完結してたわけね。
しかし、リモートワーク導入でそれができなくなったわけです。
ちなみに仕事用のホーム画面には仕事でしか使わないアプリをワンタップで開けるようにしている。あと、スケジュールをforで30回回して鬼のようにスケジュールを把握している。スケジュールは、サイボウズのスケジュールをgoogleカレンダーに同期してくれるアプリを使っている。
使うもの
- KLWP
- tasker
- pushbullet←新しく追加したアプリ
- 社用PC
GPSもwifiも違う、bluetoothも繋がらない……。同じものはPCのみ。
まず、必ずするアクション、これは「ネット環境で社用PCを立ち上げる」。うん、IT企業だからね。PCを立ち上げない日は仕事してない。
大まかな流れ
出勤時の設定
- PCを立ち上げる
- スタートアップタスクがpushbulletでスマホにプッシュ通知
- taskerでプッシュ通知をトリガーにKLWPに変数を渡す
- KLWPで変数をチェックしてホーム画面振り分け
退勤時の設定
- PCの新しく作ったボタンをクリック
- shellで通知を送ってシャットダウン
- taskerでプッシュ通知をトリガーにKLWPに変数を渡す
- KLWPで変数をチェックしてホーム画面振り分け
これまではホーム画面からタイムカードにアクセスしてたから、taskerで勝手に開くようにしたのでホーム画面が切り替わるタイミングとPCを立ち上げるタイミングは前後することになるけどアクションは増えてないのでOK、むしろタイムカードが自動で表示されるから1タップ分アクションが減ったのです。
用意したもの
pushbullet
スマホの通知をPCに表示してくれたり、PCからスマホにSMSを送ったりできるアプリ。PCはchrome拡張機能、スマホはアプリをインストール。
その中のAPIを使うので、PCの設定画面からアクセストークンを取得した。APIは、PCの黒い画面(ターミナルやコマンドプロンプトなど)を使う。社用PCにはcurlを入れていたので、アクセストークンと取る以外にAPI利用時の作業はなかった。
PC
PCを自動したら自動的にpushbulletのAPIを送信するように、スタートアップディレクトリ(大体ココ→C:\Users\ユーザー名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)にシェルコマンドを書いたファイルを置く。ここに置いたファイルはPC起動時に動くようになっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#!/bin/sh curl --header 'Access-Token: [アクセストークン]' \ --header 'Content-Type: application/json' \ --data-binary '{"body":"start work!!","title":"arrival","type":"note","device_iden":"[機種のiden]"}' \ --request POST \ https://api.pushbullet.com/v2/pushes sleep 2s curl --header 'Access-Token: [アクセストークン]' \ --request DELETE \ https://api.pushbullet.com/v2/pushes |
「ファイル名.sh」という拡張子です。書いてある内容としては、「APIを使ってスマホに通知を送り、2秒待って通知を消す」というものです。
また、機種のidenを指定しなければPCとスマホ両方に通知が届きます。機種のidenは、同じくAPIのデバイスページ(https://api.pushbullet.com/v2/devices)を見ると調べられます。このURLにアクセスすると、IDとパスワードを求められますが、IDとパスワード両方にアクセストークンを入れることによってjsonを確認できます。
tasker
taskerでは、pushbulletの通知があったことをトリガーにして、変数%Ofiiceの値を1にセットし、セットした変数をKLWPに渡すというタスクを設定。(退勤時の流れはここで%Officeに0をセットさせる以外は同じ)
・profile
appにpushbulletを指定、titleには.shファイルの中で指定したtitle、textには.shファイルの中で指定したbodyを指定。
・task
変数をセットしてKLWPに渡す。途中のURLはタイムカード用のURLです。
KLWP
br()機能で、taskerから受け取った値によってホーム画面を切り替える。
退勤用の設定
別のシェルスクリプトを作成。デスクトップにおいておき、スタートボタンからのシャットダウンの代わりにダブルクリックしたら通知の送信、削除、PCのシャットダウンまで一括で行ってくれるシェルスクリプトです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#!/bin/sh curl --header 'Access-Token: [アクセストークン]' \ --header 'Content-Type: application/json' \ --data-binary '{"body":"end work!?","title":"finish","type":"note","device_iden":"[機種のiden]"}' \ --request POST \ https://api.pushbullet.com/v2/pushes sleep 2s curl --header 'Access-Token: [アクセストークン]' \ --request DELETE \ https://api.pushbullet.com/v2/pushes sleep 1s shutdown -s -t 0 |
このほか、taskerの設定を出勤と同じ流れで追加する。変数が変わる程度ですね。
というわけで
できたー!
できたできたー!
shell使うとか、たぶん今の仕事じゃなかったら考えもしなかったかも………。
何はともあれ、出社してもしなくても、仕事を始めたらホーム画面が仕事用に切り替わるようになりました。