こんにちは。CTOの馬場です。

ArchLinuxクライアントPCことはじめと利用プロダクトまとめ - インフラエンジニアway - Powered by HEARTBEATS から1年半が経過し、そろそろArchLinuxのクライアントPCで仕事を始めて2年近くなります。

最近もまだ「Macやめてみて、その後どうですか?」とよく聞かれるので、現状を共有します。

結論としては特に問題なく普通に暮らしています。

macOSとLinuxを並行利用しているので、 だいぶツールが揃ってきました。

健康のためにお勧めのキーカスタマイズ

macではKarabiner-Elements、 ArchLinuxではxkeysnailを使ってキーをカスタマイズしています。

Ctrl + f / b / n / p / a のようなemacs風カーソル操作を実現している他に、 スペースの左のキーを 「単体押し→英字入力モードに変更」 「他のキーと組み合わせ→コマンド(macOS) / Alt(ArchLinux)扱い」 としています。

Macbookの場合は英数キーを単体で押すと英数キーになり、 英数キーとwを同時に押すと コマンド+w と同じになります。 Thinkpad X1 Carbon + ArchLinux の場合は無変換キーを単体で押すと無変換になり、 無変換キーとwを同時に押すと Alt+w と同じになります。

こうすることで、左手親指の腹の負担がかなり減り快適になりました。 ArchLinuxではもともとxremapを利用していましたが、この設定がうまくできずxkeysnailに乗り換えました。 (ちなみにわたしはかな入力なのでJISキーボード派です)

このキー設定、もの凄くお勧めなので、 ぜひみなさん試してみてください。

Karabiner-Elementsの設定は、 .config/karabiner/assets/complex_modifications/command-eisu.json に以下のファイルを配置します。


{
    "title": "Custom Modification",
    "rules": [
        {
            "description": "英数を単体で押したときに、英数キーを送信する。それ以外はコマンドを送信する",
            "manipulators": [
                {
                    "type": "basic",
                    "from": {
                        "key_code": "japanese_eisuu",
                        "modifiers": { "optional": [ "any" ] }
                    },
                    "parameters": {
                        "basic.to_if_held_down_threshold_milliseconds": 50
                    },
                    "to": [ { "key_code": "left_command", "lazy": true } ],
                    "to_if_held_down": [ { "key_code": "left_command" } ],
                    "to_if_alone": [ { "key_code": "japanese_eisuu" } ]
                }
            ]
        }
    ]
}

xkeysnailは以下のように設定します。


from xkeysnail.transform import define_multipurpose_modmap

define_multipurpose_modmap({
    Key.MUHENKAN: [Key.MUHENKAN, Key.LEFT_ALT],
})

利用ツールたち

ArchLinuxではもともとLTS Kernelで使っていましたが、 そんなにトラブらないし新しいほうが安全で速いことが期待できるので Latest Kernelを使っています。

ウィルスチェックアプリケーションがうまく動かず、WaylandをやめてX.orgにしました。

ターミナルはgnome-terminalを使っていましたが、 tmux 利用時の ambiguous width character関連の処理がうまくいかず terminatorに変えました。

エディタはvimからneovimに移行しました。 特に理由はありません。

ドキュメントビューワは devdocs.io を使っています。 特別インストールなどせず、オフライン参照もできて便利です。

MarkdownからスライドPDF生成はMarpit + VS Codeを利用することが増えました。 VS Code拡張になっているのは便利でいいですね。

弊社はG Suite / Google Driveに全面移行したので、 どうしても手元に同期したいファイルはInsyncで同期しています。 macOSであればGoogle Drive File Streamが使えますが、 動作が微妙に不安定な気がして(要検証)、Insyncを利用することにしています。

ジャンル Mac Linux
Hardware MacBook Thinkpad X1 Carbon
OS macOS ArchLinux (Latest kernel) [NEW!]
Window Manager - GNOME + X.org [NEW!]
IME Google日本語入力 Mozc + Fcitx
ターミナル iTerm2 terminator [NEW!]
ディスク暗号化 FileVault dm-crypt + LUKS
ランチャ Alfred albert
クリップボードマネージャ Alfred copyq
ウィンドウをタイル配置 Divvy gTile (gnome extensions)
タスクトレイにアイコンを表示する - TopIcons Plus (gnome extensions)
VM VirtualBox VirtualBox
Docker Docker for Mac Docker
エディタ1 neovim [NEW!] neovim [NEW!]
エディタ2 VS Code VS Code
仕事用ブラウザ Google Chrome Google Chrome
個人用ブラウザ Google Chrome Canary Chromium [NEW!]
ドキュメントビューワ [devdocs.io](https://devdocs.io/) [NEW!] [devdocs.io](https://devdocs.io/) [NEW!]
画像表示 Preview.app evince
PDF表示 Preview.app evince
PDF校正時のコメント書き込み Adobe Reader [NEW!] Windows on VirtualBox の Adobe Reader [NEW!]
クリップボードの画像から画像ファイル作成 Preview.app GIMP
Office Office365 Windows on VirtualBox の Office365
OpenVPN Tunnelbrick networkmanager-openvpn
ターミナルからアプリで開く open xdg-open
ターミナルからクリップボード pbcopy / pbpaste xsel
MarkdownからスライドPDF生成 Marpit + VS Code [NEW!] Marpit + VS Code [NEW!]
全体的なフォント ヒラギノ Noto
ターミナルフォント/等幅フォント Cica [NEW!] Cica [NEW!]
カレンダー なし(ブラウザ) [NEW!] なし(ブラウザ) [NEW!]
キーボードモディファイヤ [NEW!] Karabiner-Elements xkeysnail
Google Driveとの同期 [NEW!] Insync Insync

まとめ

仕事道具を自由にいじれるのは素晴らしい

株式会社ハートビーツのインフラエンジニアから、ちょっとした情報をお届けします。