皆さん、Alfredというアプリケーションをご存知ですか?
MacOSの生産性アプリの代表格のAlfred。そのAlfredには様々な機能があります。
その中でもPowerpackという有料のライセンスを購入したら使えるWorkflowという機能。
このWorkflowを使うとルーティンとしてやってる作業がキーボード上で完結できるので、生産性が物凄い上がります。
今回はこのWorkflowを使い、今日の日付入りのScrapboxが自動で開けるようにしたいと思います!
完成のイメージ
注意
- この方法はAlfred4を基準に作成されました。
- Powerpack userではない場合、Workflow機能はご利用できません。
手順
1. 空のWorkflowを作る
AlfredのPreference(command + ,(カンマ))に入り、左側のサイドバーから「Workflows」をクリックします。
その後、左下の「+」ボタンから「Blank workflow」を選択し、空のworkflowを作ります。
2. Workflowを実行させるキーワードを設定する
先ほど作ったworkflowをクリックすると、右側に空のキャンバスが現れます。
キャンバスを右クリックし、「Inputs」→「Keyword」 を選択します。
Alfred検索窓からこのWorkflowを呼び出す時に使うキーワードを設定できます。
※「No Argument」に設定した理由
3. 実行するスクリプトを作る
同じく、キャンバスを右クリックし「Action」→「Run Script」をクリックします。
下の画像のような画面が出るので、一旦「Save」を押しましょう。
(scriptの中身を完成したら、ここに実行のためのコマンドを入力します。)
4. 今日の日付入りのScrapboxページを開くPython Scriptを作成する]
python scriptを書く時に、こちらのWorkflow libraryがよく使われます。
https://github.com/deanishe/alfred-workflow
今回のworkflowもこのライブラリを活用して作ります。
4-1. Workflowにlibraryをインストール
作成中のworkflowを右クリックして「Open in terminal」クリックします。
現れたターミナルwindowに、以下のコマンドを打ち、実行させます
pip install --target=. Alfred-Workflow
下記のようなMessageが出たら、インストール完了です。
Collecting Alfred-Workflow
Using cached Alfred-Workflow-1.40.0.tar.gz (92 kB)
Using legacy 'setup.py install' for Alfred-Workflow, since package 'wheel' is not installed.
Installing collected packages: Alfred-Workflow
Running setup.py install for Alfred-Workflow ... done
Successfully installed Alfred-Workflow-1.40.0
確認のため、「Open in terminal」と同じ方法で、「Open in Finder」をクリックします。
すると、このようにライブラリがインストールできたことを確認できます。
4-2. 実行するPythonファイルを作成
cotEditor(テキストエディターならなんでもOK)から新しい.py
ファイルを作成します。
今回はファイル名はtodays_diary.py
にします。
空のファイルができたら、先ほどライブラリをインストールしたフォルダにtodays_diary.py
を置きます。
以下のようになればOKです。
4-3. Python Scriptの中身を入力する
todays_diary.py
の中身を入力します。
今回は**「yyyy/mm/dd 作業ログ
というタイトル形式を持つページがGoogle Chromeで開く」**コードを作成します。
# encoding utf-8
import sys
import webbrowser
from datetime import date, timedelta
from workflow import web, Workflow
def main(wf):
project = 'my-project'#scrapboxプロジェクト名
url1 = 'https://scrapbox.io/'
url2 = '_%E4%BD%9C%E6%A5%AD%E3%83%AD%E3%82%B0'#'_作業ログ'のutf-8 coding ver.
td = date.today()
url_date = td.strftime("%Y/%m/%d")#日付を'yyyy/mm/dd'形式に変更
url = url1 + project + '/' + url_date + url2
chrome_path = 'open -a /Applications/Google\ Chrome.app %s'#Google Chromeで開くためのパス設定
webbrowser.get(chrome_path).open(url)
wf.send_feedback()
if __name__ == '__main__':
wf = Workflow()
sys.exit(wf.run(main))
5. キーワードとPython Script実行を繋ぐ
5-1. 「Run Script」で、todays_diary.py
の実行命令を作成
※ Python scriptの実行の方法は2つあります。
1. Languageを「/usr/bin/python」
にして、Python Scriptを直打ちする方法
2. Languageを「/bin/bash」
にして、shell script経由でPython Scriptを実行させる方法
(当該のPython Scriptファイルはworkflowのフォルダ内に入っていなきゃいけない。)
今回は2の「shell scriptを経由する方法」で進めます。
「Run Script」をダブルクリックし、下の画像のように設定してください。
/usr/bin/python todays_diary.py
5-2. キーワードとPython Script実行を繋ぐ
これで完成です。
日付ベースで作業ログや日報を書く場合、自動でフォーマットに合わせてタイトルをつけてくれるので、
かなり手間が減って生産性が上がると思います。