Mac の BetterTouchTool 〜爆速効率化編: Jupyter Notebook, Memo〜 

#1 Jupyter notebook の起動と終了
Python を書きたいが Jupyter Notebook の起動がめんどくさい，ということに悩んでいたので自動化して解決しました．

##1.1 前提

Terminal からの Jupyter notebook の起動を前提とします．

Terminal の起動は Automator でショートカットキーを作成しておきます．
僕の場合は，出力の段階で ⌥ + ⌘ + > (shift + .)です．shift は space キーを押下することで実行します．所謂親指シフトです．

まぁ，何でもよいでしょう．楽なものを設定すれば良いと思います．「基本的なことを組み合わせる」ことを大切に思っているので，(1.2節と一連の動作にしてもよいのですが，) Terminal の起動のプロセスは分離してあります．

そして，Macbook に Touch Bar が搭載されていることが前提です．BetterTouchTool を使って Touch bar をカスタマイズします．BetterTouchTool の基本操作の説明は省略します．



##1.2 実行

BetterTouchTool で Terminal のショートカットを初めて設定する場合は，アプリ一覧の列の下の＋ボタンから追加します．タッチバーの「トリガー」として，以下を設定します．

```
英数キー　→　jupyter　→　半角スペース　→　notebook　→　↩ (enter)
```

英数キーも問題なく登録できます．出力がなく表示上は空欄になるので「登録できるのかな？」と不安になりますが，問題ありません．注意点としては，英数キーを登録した（し直した）あとで，もし直後の文字の「現在のキーボードレイアウトに自動調整し」にチェックが入っていたら外しておきましょう（僕の場合はチェックが入っていたことが原因でその文字の出力がうまくいきませんでした）．

実際の設定はこんな感じです．長すぎてパソコンの縦の長さに収まっていませんね．

<img width= 100%  alt="jupyter fig 1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/844184/f1554550-aac3-9e09-2c21-edbb22f1a6a8.png">
<img width= 100%  alt="jupyter fig 2.png]" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/844184/f37d4144-fff6-fd99-7429-d2c325742925.png">

同様に終了のトリガーとして，

```
英数キー　→ ^ (control) + C　→　y　→　↩ (enter)
```

も登録します．これで Jupyter Notebook の起動と終了が自動化できました．写真にあるように，`gnuplot`と`pip install`などのコマンドを同様に設定すると，より楽になるでしょう．



#2 Website を Bookmark しながら タイトルとリンクをメモにコピーする

僕はメモアプリの中では Notes.app が便利で主に使っています．OneNote や Evernote，カウントメモ，しおり系のアプリなどいろいろ試しましたが，結局主力は純正アプリです．様々な情報をフォルダ分けして記録したり，Python や Latex で参考にした記事を保存しておいてその下に重要事項をメモしたりします．

このときブックマークとリンクのメモを膨大な数するのですが，結構面倒くさいんですよね（笑）．面倒くさいことは自動化・効率化しちゃいましょう．

##1.1 事前準備
Safari の Bookmark で保存するフォルダ Useful Websites (名前は何でもよいです) を作成しておきます．一回そのフォルダに保存すれば次回以降もそこに保存されるようになります．



##1.2 実行

これまた長いですが，こんな感じです．1行目でBookmarkしてページタイトルをメモにコピーし，2行目でリンクをメモにコピーしています．最後にSafariに戻って終了です．

ブラウザや遅延時間などを環境に合わせて変えることももちろん可能です．

```
⌘D　→　次のアクションの遅延：0.05秒　→　⌘C　→　起動 Notes.app　→　⌘V　→　↩ (enter)　→　起動 Safari.app　→　↩ (enter)　→
⌘L　→　⌘C　→　起動 Notes.app　→　次のアクションの遅延：0.01秒　→　⌘K　→　⌘V　→　↩ (enter)　→　↩ (enter)　→　↩ (enter)　→
起動 Safari.app　→　esc　→　次のアクションの遅延：0.01秒　→　esc
```

重要な点としては，保存したいメモのページを選択しておく必要があることです．メモを新規作成してタイトルを書くか，既存のメモのタイトルを左クリックして enter キーを押すだけです．だから，このトリガーが威力を最も発揮するのは，あるテーマに関して色々なサイトを見て回ったとき，それらをまとめてメモしたい時，ということになります．
実際の設定は以下です．一枚目の7行目の「起動 Safari.app」が2枚めの1行目です．使うとどんな感じの挙動になるのかは，ご自分でやってみて下さい．目にも留まらぬ速さで，一瞬で保存されます．



<img width= 100%  alt="safari_fig_1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/844184/d9e57dab-82e0-efa3-629a-75372405e742.png">
<img width= 100%  alt="safari_fig_2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/844184/ae42af1e-3c1b-c91b-0c36-16b85cd201b4.png">


ちなみに，僕は「Notes.app を起動」のトリガーを常に Touch bar に表示させてあります．だから，なにかリンクの下に注釈を記録しておきたいときは，それを押してメモに戻れば良いです．

#3 まとめ

BetterTouchToolは非常に便利なツールで，Touch Bar で人生が変わったと言っても過言ではありません．何かと批判を受けることも多かった Touch Bar ですが，この革命的発明がもっと広まってほしいです．この記事でその便利さが少しでも伝われば幸いです．

最後までお読みいただきありがとうございました．

# 4 追記
## 4.1 BetterTouchTool による Jupyter lab (notebook) の起動

だいぶ前からもっと楽な方法を使ってテキスト入力しているので，Jupyter notebook の後継である Jupyter lab を例に記しておこうと思います．

まず，アクション設定のメニュー選択欄で検索窓に insert の頭の ins と打ち込みます．すると「カスタムテキストの挿入/入力/貼り付け」が出てくるので クリックか Enter で決定します．あとはアプリの説明に従って入力したいテキスト，今は "jupyter lab" を書いて終わりです．

オプションで貼り付けにするかキーボード式の入力にするか選べます．貼り付けが出来ない状況もごくたまに存在するので，その場合は「入力してテキストを挿入する」を選びます．

<img width= 100%  alt="スクリーンショット 2021-09-11 21.50.43.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/844184/50c9ac5f-212f-d99b-afb9-477ab1142e04.jpeg">
<img width= 100%  alt="スクリーンショット 2021-09-11 21.55.33.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/844184/8c571e75-ee7d-40f0-7a39-5434ec11beba.jpeg">

## 4.2 Website を Bookmark しながら タイトルとリンクをメモにコピーする

Safari で ⌘ D の後にブックマークするフォルダにフォーカスしてしまう場合は，直後に Tab キーを挟んで下さい．

また現在のデフォルトブラウザは Firefox にしていますが，
アドレスバーからのエスケープ (⌘L＋⌘Cの直後) は Esc キーではなく F6 キーにしてください．