macOSでディスプレイ1枚で作業する技術

今まで、自宅・職場では外部ディスプレイを使って作業をしてましたが最近は[Roost](http://amzn.to/2t8cCYz)を使い始めて、家でも外でもRoostと外部キーボード、マウスで仕事するようになりました。これで肩の痛みが激減したので下を向いて作業する時間が多いと首の筋肉に引っ張られて肩が凝るみたいですね。

![C8iJtzRWsAIF0tV.jpg-large.jpeg](https://qiita-image-store.s3.amazonaws.com/0/28262/a89fca41-fb25-1cca-5a75-11f83d9d11c8.jpeg)

ここできになるのはディスプレイ1枚だと画面切り替え大変じゃないのってところなのですが、以前 [@reoring](https://twitter.com/reoring) さんに教えてもらって自分にすごいフィットしたので共有しておきます。あまりmacのデスクトップについての記事がないような。

## [追記2020/11/16]
macOS 11.0 Big Sur(Intel) で動作確認できました。Total Spaces2をBig Surより前から使っている場合は最新版(v2.9.6~)を再インストールする必要があります。

## TL;DR
* [デスクトップを10画面作成する](#デスクトップを10画面作成する)
* [ショートカットキー(ctrl+数字)をアクティブにする](#デスクトップへのショートカットキーをアクティブにする)
* [各アプリケーションをデスクトップに割り当てる(個別、全体)](#アプリケーションをデスクトップに割り当てる)
* [TotalSpaces2でトランジションをオフにする](#トランジションのアニメーションをオフにする)

![](https://i.gyazo.com/29a087f9f4af10833475b2cfc8bed87a.gif)
ショートカットキーでアプリをバシバシ変えれます

## はじめに、macOSの全体画面がつらい、デスクトップきりかえがつらい
まずディスプレイ1枚でやろうとしたときの問題として、デスクトップを複数立ち上げたり、全体画面化を使っていると切り替えがとても面倒(指3本スワイプでやるやつ)。あれがつらいのは、全体画面化したタイミングによってデスクトップの並びの前後が変わってしまうこと、Safariは2つめ、Terminalはそのよこ、次にエディタ。基本的に順序を覚えておかないといけなくなると脳内リソースを常に使い続けるのでつらい。でもそれを嫌ってデスクトップ1つだけで作業するとしても`⌘+tab`切り替えの連打でこれも変化する並びを覚える、または目視で確認する必要があるので脳にやさしくない。どこにどのアプリがあるかを意識しないといけなくて、アプリがどこにいったか迷子になることで生産性がさがります。(特に疲れている時はウィンドウ探すだけでめっちゃ時間かかる)。ではどうするか。

## アプリケーションをデスクトップに割り当てる
あまり知られていないけど、macOSはアプリケーションをデスクトップに割り当てることができる。Dockでアプリケーションを右クリックして、オプション > 割当先。`このデスクトップ`に割り当てをすると、アプリケーション起動時に必ず割り当てたデスクトップで立ち上がる。

**Safariをデスクトップ1に割り当てると, Safariは必ずデスクトップ1で立ち上がる。**


<img width="524" alt="Dock" src="https://qiita-image-store.s3.amazonaws.com/0/28262/b6572b08-e4f3-3f98-5643-fdb2d0cbef8e.png">

次に、macOSではあるデスクトップに移動するとそのデスクトップの1番最前にあるアプリケーションが起動する仕様になってる。これを利用して、
**1デスクトップ1アプリで設定にすると、そのデスクトップに行くと設定しているアプリケーションをアクティブに操作することができる。**
これが肝です。

この設定をすることで、全体画面にすることなくそのアプリだけが操作できるデスクトップを作り出すことができる。

*もし全体画面のようにツールバーやDockを非表示にしたい場合は、システム環境設定の 一般 > メニューバーを自動的に隠す/表示をオンにし、Dock > Dockを自動的に隠す/表示をオンにすると画面いっぱい使うことができる。*

ちなみに、`すべてのデスクトップ`に設定すると、どのデスクトップにいってもアプリケーションのウィンドウが付いてきます。これは各デスクトップにFinderのウィンドウが散らばるのを防ぎます。

## デスクトップを増やして、ショートカット割り当て
#### デスクトップを10画面作成する

  <img width="524" alt="全画面_2017_07_11_10_24.png" src="https://qiita-image-store.s3.amazonaws.com/0/28262/9e0b808d-d653-f299-4781-da9930b176d8.png">
 
#### デスクトップへのショートカットキーをアクティブにする
システム環境設定 > キーボード > ショートカットキー > Mission Controll に行くとデスクトップを10画面出している状態だとデスクトップ1~10へ切り替えが表示されるのでチェックを入れる。(*デスクトップを出していないとショートカットに現れないので不思議*)。デスクトップを10にしてるのはキーボードショートカットで数字が1~0まであるからです。好みであれば、少なくても多くてもいいです。

  <img width="524" alt="キーボードショートカット" src="https://d2mxuefqeaa7sj.cloudfront.net/s_BD4E63BB32AAA31A718A69C6C7829513155215711C345A534FBB0C4E4B45D721_1481766658986___Effective_Mac__Mac__-_Paper.jpg">


これでアプリケーションの割り当てと、キーボードショートカットを設定できました。**例えば、エディタをデスクトップ3に割り当ててた場合`ctrl+3`を押すとデスクトップ3に遷移しエディタがアクティブになります。**

#### スペースの自動並び替えをoffにする
Mission Control で"最新の使用状況に基づいて作業スペースを自動的に並べ替える"をオフにする必要があります。これにチェックが入っていると自動で意図せずデスクトップの並び順が変わってしまいます。(これって前はデフォルトの設定がオフがだった気がするけど最近のmacOSだとオンになってた。)

<img width="524" alt="Mission_Control_と_macOSでディスプレイ1枚で作業する技術_-_Qiita.png" src="https://qiita-image-store.s3.amazonaws.com/0/28262/d87cd8d8-2e34-0e9e-c19d-f3a920d914b4.png">


## TotalSpaces2を使う(推奨)

### トランジションのアニメーションをオフにする
遷移するときのトランジションのアニメーションがちょっと遅いのがきになるのでこれをオフにするために[TotalSpaces2](https://totalspaces.binaryage.com)を入れます。インストール時に設定が必要なので[こちら](https://totalspaces.binaryage.com/installing-mojave)を参照してください。手短に言えば、再起動で⌘+R押しっぱなしで、masOS Utilsを開いて、ターミナルを起動し`csrutil disable`するといいです。この設定は自己責任でおねがいします。

TotalSpacesを起動し、トランジションをオフにします
<img width="524" alt="トランジションオフ" src="https://qiita-image-store.s3.amazonaws.com/0/28262/f39d8be0-bbd2-71e6-241d-0cd27f71ca1a.jpeg">

### Appsで割り当てをまとめて設定する
Appsタブでは[Dockで割り当てる](#アプリケーションをデスクトップに割り当てる)代わりにまとめて設定できます。

<img width="528" alt="Apps" src="https://qiita-image-store.s3.amazonaws.com/0/28262/8e68e4e0-309f-11b9-71d4-d9dd01ec07f1.jpeg">
設定サンプル

アプリ                | デスクトップ   
------------------ | ---------- 
 Safari             | 1          
Atom               | 2          
RubyMine | 2          
PhpStorm     | 2          
PyCharm     | 2          
iTerm2             | 3          
Postico             | 4          
SequelPro             | 4          
Paw             | 4          
Github Desktop       | 4          
Chrome             | 5          
Slack              | 9          
iTunes             | 10         
Finder             | All spaces 
Skitch             | All spaces 
1Password          | All spaces 

これが自分が使っている設定です。メインブラウザのSafariは1, エディタ系は2, ターミナルは3, 開発ツールは4, Chromeは5, 6~8は自由に使うスペース、9はSlack, iTunesは10, FinderやSkitchなど他のアプリと合わせて使うものはAll。2つのアプリケーションを並べて使いたい時は空いているスペースにアプリケーションを持って行くようにしています。これは割り当ててる対応表覚えるというよりは、1つのデスクトップに複数のアプリケーションがたくさんある状態を防ぐのと、どんなときでも`ctrl+1`を押せばSafariが開くという安心感を得るだけでも効果があります。

## まとめ
![](https://i.gyazo.com/29a087f9f4af10833475b2cfc8bed87a.gif)
再掲: ショートカットキーでアプリをバシバシ変えれます


以上の設定を行うことでディスプレイ1枚でもアプリケーションの切り替えコストが低くなって作業しやすくなります。普段`⌘+tab`で遷移もよくやってるけど`ctrl+1`にSafariが必ずいる、`ctrl+9`にSlackが必ずいる、というのが安心感あって使いやすくなりました。

これで外部ディスプレイに依存していた
* 外部ディスプレイ使わないと首、肩が凝る、はRoostで解決
* 外部ディスプレイ使わない画面の作業スペースが狭い、はデスクトップの機能をうまく使う

の2点で解決しました。

以上、普段外部ディスプレイ使わないでMacのみで作業してる方、外出先での作業が多い方にはおすすめですー。

よかったらTwitterフォローしてください🙋‍♀️[@saboyutaka](https://twitter.com/saboyutaka)


## あわせてよみたい
[Effective Mac 勉強会(Macの便利な使い方講座) on Dropbox paper](https://paper.dropbox.com/doc/Effective-Mac-Mac-ec4qEn9JCZbbLFtWn8wFL)、いつしか知り合いのMacユーザーにむけて書いた資料です。きょうみがあればどうぞ。

ちょっと上級者向け
[macOS カーソル強制バインディングのすすめ](http://qiita.com/saboyutaka/items/489ed2ffe4c1187b65a7)