2021/03/26
自分の環境で使っている小物ツール類
冷蔵庫に入れないと食べ物が腐るぐらいに暖かくなってきました。
今回は弊社の栗山が「自分の環境で使っている小物ツール類」というテーマで話しました。
人の使っているPCの仕事環境を少し覗くことはあっても、それがどういうポリシーのもとどのようなツールを使って運用されているのか、それだけで推量するのはなかなか難しいことです。
それぞれ自分の使いやすい設定やツールなどがあるのでしょうが、情報共有をしてみることで知見も広がると思いますし、色々教えていただきたいので、そのきっかけになればとまずは自分の環境と使っている小物ツールを紹介してみようと思います。
Windows も macOS も両方使わないと感覚がわからなくなってしまうため、突然の問い合わせにもスムーズに対応できるように、普段から両方触るようにしています。
端末としては、Windows と macOS を使っていますが、実際にコーディングなどの作業をする時にはPCからオフィスにある Linux 環境に SSH で接続して操作しています。
モバイル端末についても iOS と Android 両方とも持ち歩くようにしており、メイン機は iOS を使っています。
端末エミュレーターです。
昔は PuTTY を使っていたのですが、Windows 10 あたりから GDI まわりが追従できない状態が続き、さらにフォークも乱立してきて何を追えばいいのか判断しにくい、また、動作もGDI関連で安定もしていないような状況だったので、WSL Terminal に移行することにしました。
日本語の、主に Unicode
WSL Terminal 自体が PuTTY のコードベースを元に開発されているため、XTerm, ANSI などのエスケープシーケンスは従来通り動作するのでその点は問題ありません。
Google Chrome
ブラウザは Google Chrome を主に使っていて、Google アカウントごとに、ログイン情報なども必要な端末で同期しています。
案件ごとに隔離が必要な場合はそれごとにプロファイルを作っています。その結果、どんどんプロファイルが増殖するということが起きていて、何かいい解決方法がないか知りたいものです…。
拡張機能は大体これらを使っています。
あと他に使っているのは Chrome の Beta 版 でしょうか。Beta 版は現行の Chrome より一つ先のバージョンになるのですが、先に触っておくことで今後の準備ができるという理由で使用しています。
Dropbox
オンラインストレージサービスです。私の場合は無料プランで利用しています。
便利なのですが、少し前からでデバイス制限が3台までになってしまったので、今後どうするかは悩み中です。
Googleドライブはまだ Apple シリコンに対応していないため移行するわけにもいかず、、困っています。
Thunderbird
Mozilla が開発したメールソフトです。
普段は Emacs 上の Wanderlust でメールを読んでいるのですが、添付ファイルや HTML メール読む時はこちらを使います。 検索もこっちの方が便利なケースがあったり。
Wireshark
パケットをキャプチャするのに使う GUI ツールです。
T-Clock
Windows の画面右下に時計がありますが、その時計で秒を出すためのツールです。プロジェクトのリリースの時など、秒単位でしっかり見ておかなければいけないケースがあるのでそのために入れています。
Alt-IME
左右 Alt キーの空打ちで IME を OFF/ON するツールです。
前提として、Windows も Mac も同じ環境で使いたいというのがあって、両方とも US キーボードを使っているのですが、そうすると、かなキーと無変換キーがありません。日本語入力の ON と OFF を切り替えようと思ったら、どことどこのキーを一緒に押さないといけないとかその度に考えるのが結構煩わしいです。
これを入れておけば今のモードがどうであれ、右 Alt 空打ちすれば日本語入力状態になるので考える手間が省けます。
Emacs (for Windows)
テキストエディタです。GUI 環境ではここ2, 3年で使うようになりました。
「テキストファイルの編集」を各環境で同じようにできるようにするために入れています。 フォントなどは固有の設定が必要です。主に雑多なメモ書きを置いています。コンフリクトを防ぎつつ、他の環境で書いたメモを随時参照できるように、オートセーブにした上で
のようにファイル名を分けて書いています。こうすると走り書きなどを随時他の環境に移動しても確認できるようになります。
Google 日本語入力
昔は ATOK を使っていたのですが、アップデートがうまくできない不具合が長らく続いていたのでこちらに乗り換えました。
辞書同期できなかったり、変換候補がいまいちだったりするのですが、Mac と Windows 共に使える IME が他にないので仕方なく使っている感じです。
ホットコーナーを設定していて、右下と左下にカーソルを合わせるとでスクリーンセーバを制御できるようにしています(右下が開始、左下が無効)。
Windows で作業しながら横に Mac を置いておき、常時点いた状態でたまに様子を確認したいとき、カーソルを左下に合わせてスクリーンセーバーにならないようにとか、そういう使い方です。
・キーボード
と設定。
また、 次に出てくるKarabiner-Elements の用途の問題で、
・トラックパッド
を登録。
こうすることで、クリック音が気にならず、しかも指を滑らせるだけでドラッグまでできます。
Karabiner-Elements
左右コマンドの単体押しで日本語入力の ON/OFF を制御するために使用しています。
MenuMeters
Mac のメニューバーのところにCPU やメモリ、ネットワークI/O とかをグラフで表示してくれるツールです。
Witch
コマンドタブでのアプリケーション選択を、ウィンドウ単位で選択できるようにするソフトウェアです。
有料なのですが、Mac 標準のコマンドタブだとアプリケーションレベルでの選択肢になるところを、これだと同じような形をウィンドウ単位で可能にします。
Moom
複数ディスプレイを繋いだ時の画面レイアウトを記憶させることができます。
iTerm2
ターミナルのエミュレーターです。
フォントは Ricty ベースで調整。背景は半透明にして使用。
brew cask
GUI アプリをインストールするのに、普通ならサイトからディスクイメージをダウンロードしてインストールするという手順を踏まなければなりませんが、これを使えばその手間が省けます。
ターミナルからこんな感じで、
コマンドを叩くだけで全部やってくれるので便利です。
helm というインクリメンタルにいろんなものの絞り込みするツールを入れています。
zsh
Unix のコマンドシェルです。
ヒストリーの共有を有効にすると、GNU screen と合わせて使用することでかなり便利になります。
GNU screen
仮想端末を複数持って常駐してくれるソフトウェアです。
アタッチ、デタッチができるので、回線が切断されうる状況でも、長時間実行し途中で中断されたくないコマンドを安心して打つことができます。
ターミナルマルチプレクサというジャンルのもので、同じような仮想端末マネージャに tmux があって、そちらの方がモダンな感じがするのですが、違う画面サイズのものを複数同時に扱えないようなのでこちらを使っています。
できるだけ、パッと見の情報量を増やしたいので色数を256色(一部24bits)出せる環境にしています。
Mosh
SSH 接続を抽象化して、仮想的に繋ぎっぱなしにするものです。
SSH は TCP 接続なので、モバイル環境で接続を切り替えたりローミングしたりした時などに一旦接続が切れてしまいますが、Mosh を使うと SSH 接続した上で、仮想的なネットワークを用意するので、場所を移動して上流ネットワークが変わっても論理的な接続は切れないようにしてくれます。
Mosh 層で入力をバッファリングすることができるので、ネットワーク遅延が大きいような環境でもそこそこ軽快にコマンドラインな対応が可能になります。
GNU screen と Mosh を使った、コマンド実行環境を常時維持する仕組みというのが、様々な環境からできるだけ臨機応変に対応できるようにする方法の肝です。
peco
これも helm と同じようにいろんなものをコマンドライン上でインクリメンタルに絞り込むためのツールです。
というところで使用しています。
カスタマイズすると色々なことができてさらに便利です。
以上が私の作業環境と使っている小物ツールになります。
試行錯誤の最中ではありますが、まだまだ改善点も多いです。こんなツールがあるとか、もっと快適に仕事ができるようになる方法があれば教えてください。
今回は弊社の栗山が「自分の環境で使っている小物ツール類」というテーマで話しました。
人の使っているPCの仕事環境を少し覗くことはあっても、それがどういうポリシーのもとどのようなツールを使って運用されているのか、それだけで推量するのはなかなか難しいことです。
それぞれ自分の使いやすい設定やツールなどがあるのでしょうが、情報共有をしてみることで知見も広がると思いますし、色々教えていただきたいので、そのきっかけになればとまずは自分の環境と使っている小物ツールを紹介してみようと思います。
使用端末
GUI 環境は、オフィスで使用するものは Windows のデスクトップ。自宅では持ち運び可能な Mac のノートブックを使っています。特にこだわりがあるわけではなく、たまたまこういう組み合わせになっているだけです。Windows も macOS も両方使わないと感覚がわからなくなってしまうため、突然の問い合わせにもスムーズに対応できるように、普段から両方触るようにしています。
端末としては、Windows と macOS を使っていますが、実際にコーディングなどの作業をする時にはPCからオフィスにある Linux 環境に SSH で接続して操作しています。
モバイル端末についても iOS と Android 両方とも持ち歩くようにしており、メイン機は iOS を使っています。
Windows
WSL Terminal (wsltty)端末エミュレーターです。
昔は PuTTY を使っていたのですが、Windows 10 あたりから GDI まわりが追従できない状態が続き、さらにフォークも乱立してきて何を追えばいいのか判断しにくい、また、動作もGDI関連で安定もしていないような状況だったので、WSL Terminal に移行することにしました。
日本語の、主に Unicode
East_Asian_Width
の Ambiguous な文字の描画がいまいちだったりしますが、ちゃんとフォントの設定をすれば絵文字もそこそこ出るし、フォントリンクを使えば MS Gothic, Segoe UI Emoji 含めてかなりの文字種を網羅できます。WSL Terminal 自体が PuTTY のコードベースを元に開発されているため、XTerm, ANSI などのエスケープシーケンスは従来通り動作するのでその点は問題ありません。
Google Chrome
ブラウザは Google Chrome を主に使っていて、Google アカウントごとに、ログイン情報なども必要な端末で同期しています。
案件ごとに隔離が必要な場合はそれごとにプロファイルを作っています。その結果、どんどんプロファイルが増殖するということが起きていて、何かいい解決方法がないか知りたいものです…。
拡張機能は大体これらを使っています。
- EditThisCookie
- Auto Refresh Plus
- Event Merge for Google Calendar
- Gestures for Google Chrome
- Markdown Preview Plus
- Page Ruler Redux
- Tampermonkey
あと他に使っているのは Chrome の Beta 版 でしょうか。Beta 版は現行の Chrome より一つ先のバージョンになるのですが、先に触っておくことで今後の準備ができるという理由で使用しています。
Dropbox
オンラインストレージサービスです。私の場合は無料プランで利用しています。
便利なのですが、少し前からでデバイス制限が3台までになってしまったので、今後どうするかは悩み中です。
Googleドライブはまだ Apple シリコンに対応していないため移行するわけにもいかず、、困っています。
Thunderbird
Mozilla が開発したメールソフトです。
普段は Emacs 上の Wanderlust でメールを読んでいるのですが、添付ファイルや HTML メール読む時はこちらを使います。 検索もこっちの方が便利なケースがあったり。
Wireshark
パケットをキャプチャするのに使う GUI ツールです。
T-Clock
Windows の画面右下に時計がありますが、その時計で秒を出すためのツールです。プロジェクトのリリースの時など、秒単位でしっかり見ておかなければいけないケースがあるのでそのために入れています。
Alt-IME
左右 Alt キーの空打ちで IME を OFF/ON するツールです。
前提として、Windows も Mac も同じ環境で使いたいというのがあって、両方とも US キーボードを使っているのですが、そうすると、かなキーと無変換キーがありません。日本語入力の ON と OFF を切り替えようと思ったら、どことどこのキーを一緒に押さないといけないとかその度に考えるのが結構煩わしいです。
これを入れておけば今のモードがどうであれ、右 Alt 空打ちすれば日本語入力状態になるので考える手間が省けます。
Emacs (for Windows)
テキストエディタです。GUI 環境ではここ2, 3年で使うようになりました。
「テキストファイルの編集」を各環境で同じようにできるようにするために入れています。 フォントなどは固有の設定が必要です。主に雑多なメモ書きを置いています。コンフリクトを防ぎつつ、他の環境で書いたメモを随時参照できるように、オートセーブにした上で
win.md
home.md
mobile.md
のようにファイル名を分けて書いています。こうすると走り書きなどを随時他の環境に移動しても確認できるようになります。
Google 日本語入力
昔は ATOK を使っていたのですが、アップデートがうまくできない不具合が長らく続いていたのでこちらに乗り換えました。
辞書同期できなかったり、変換候補がいまいちだったりするのですが、Mac と Windows 共に使える IME が他にないので仕方なく使っている感じです。
macOS
OS 標準の設定ホットコーナーを設定していて、右下と左下にカーソルを合わせるとでスクリーンセーバを制御できるようにしています(右下が開始、左下が無効)。
Windows で作業しながら横に Mac を置いておき、常時点いた状態でたまに様子を確認したいとき、カーソルを左下に合わせてスクリーンセーバーにならないようにとか、そういう使い方です。
・キーボード
Caps Lock
を潰すためにCaps Lock : ^Control
Crontrol: ^Control
と設定。
また、 次に出てくるKarabiner-Elements の用途の問題で、
Command+[SPACE]
は IME 関係ではなく Spotlight にしています (Windows [Win] キーもそうですが、簡易電卓用途が多いです)。・トラックパッド
タップでクリック: ON
ドラッグを有効にする: ON
を登録。
こうすることで、クリック音が気にならず、しかも指を滑らせるだけでドラッグまでできます。
Karabiner-Elements
左右コマンドの単体押しで日本語入力の ON/OFF を制御するために使用しています。
MenuMeters
Mac のメニューバーのところにCPU やメモリ、ネットワークI/O とかをグラフで表示してくれるツールです。
Witch
コマンドタブでのアプリケーション選択を、ウィンドウ単位で選択できるようにするソフトウェアです。
有料なのですが、Mac 標準のコマンドタブだとアプリケーションレベルでの選択肢になるところを、これだと同じような形をウィンドウ単位で可能にします。
Moom
複数ディスプレイを繋いだ時の画面レイアウトを記憶させることができます。
iTerm2
ターミナルのエミュレーターです。
フォントは Ricty ベースで調整。背景は半透明にして使用。
Command+[key]
のいくつかを Option+[key]
相当で送るようにカスタマイズしています。brew cask
GUI アプリをインストールするのに、普通ならサイトからディスクイメージをダウンロードしてインストールするという手順を踏まなければなりませんが、これを使えばその手間が省けます。
ターミナルからこんな感じで、
brew cask install google-chrome menumeters slack iterm2 google-japanese-ime
brew cask install dropbox google-drive-file-stream firefox thunderbird moom karabiner-elements
brew cask install visual-studio-code android-studio docker microsoft-office
brew cask install vnc-viewer zoomus
コマンドを叩くだけで全部やってくれるので便利です。
Linux (Unix)
Emacshelm というインクリメンタルにいろんなものの絞り込みするツールを入れています。
zsh
Unix のコマンドシェルです。
ヒストリーの共有を有効にすると、GNU screen と合わせて使用することでかなり便利になります。
GNU screen
仮想端末を複数持って常駐してくれるソフトウェアです。
アタッチ、デタッチができるので、回線が切断されうる状況でも、長時間実行し途中で中断されたくないコマンドを安心して打つことができます。
ターミナルマルチプレクサというジャンルのもので、同じような仮想端末マネージャに tmux があって、そちらの方がモダンな感じがするのですが、違う画面サイズのものを複数同時に扱えないようなのでこちらを使っています。
できるだけ、パッと見の情報量を増やしたいので色数を256色(一部24bits)出せる環境にしています。
Mosh
SSH 接続を抽象化して、仮想的に繋ぎっぱなしにするものです。
SSH は TCP 接続なので、モバイル環境で接続を切り替えたりローミングしたりした時などに一旦接続が切れてしまいますが、Mosh を使うと SSH 接続した上で、仮想的なネットワークを用意するので、場所を移動して上流ネットワークが変わっても論理的な接続は切れないようにしてくれます。
Mosh 層で入力をバッファリングすることができるので、ネットワーク遅延が大きいような環境でもそこそこ軽快にコマンドラインな対応が可能になります。
GNU screen と Mosh を使った、コマンド実行環境を常時維持する仕組みというのが、様々な環境からできるだけ臨機応変に対応できるようにする方法の肝です。
peco
これも helm と同じようにいろんなものをコマンドライン上でインクリメンタルに絞り込むためのツールです。
- コマンドラインヒストリーのインクリメンタルな絞り込み
- 作業ディレクトリのインクリメンタルな絞り込み
というところで使用しています。
カスタマイズすると色々なことができてさらに便利です。
以上が私の作業環境と使っている小物ツールになります。
試行錯誤の最中ではありますが、まだまだ改善点も多いです。こんなツールがあるとか、もっと快適に仕事ができるようになる方法があれば教えてください。