Tools Tech

元mac使いがUbuntuで理想の作業環境に近づけるためにやったこと

投稿日:

はじめに

最近は、WSL2上でIDEを立ち上げて開発しているのですが、動作が重たかったので、そもそもUbuntuを直接使ったほうが軽いのではないかと思い、Ubuntu上での開発環境構築をやってみました。結果として、まずまずの環境を手に入れることはできたのですが、理想の環境に近づけるには非常に苦労したので、この記事にまとめたいと思います。

Ubuntuのインストール

マシンにUbuntuをインストールします。参考までに、今回使用するマシンの情報を載せておきます。

  • HP Spectre x360 Convertible 14-ea0xxx
  • CPU: Intel Core i7-1165G7 @ 2.80GHz
  • RAM: 16GB

買ったもの

今回は外付けSSDにインストールするため、こちらの高速なSSDを購入しました。

このSSDの特徴は、USB 3.2 Gen2に対応していて、理論値1050MB/secでの読み書きができる点です。付属のType-CコードもしくはType-A変換アダプタを使ってPCと接続するのですが、Type-A変換アダプタを使っても十分使えました。
ちなみに上位モデルでUSB 3.2 Gen 2×2 に対応もありますが、PC側が対応していなかったため購入しませんでした。(USB 4ではUSB 3.2 Gen 2×2に対応していないので注意! 割と普及していない規格のようです)。PC側のUSBポートの仕様を確認してから購入しましょう!

また、インストールメディア用にMicro SDも購入しました。(書き込むイメージは3.2GBだったので、実際には4GBでも十分だと思います)

こちらは手元のUSB 2.0のSDカードリーダーを使って、SDカードからブートさせることができ、特に問題もありませんでした。ちなみに本体のSDカードスロットからはブートできませんでした。
SDカードではなく、USBメモリ等でも問題ありません。

インストールメディアの作成

まず、Ubuntuのインストールイメージをダウンロードします。今回はUbuntu 22.04 LTS日本語Remixを使用しました。日本語Remixでは、はじめから日本語環境が整っている他、日本語に関係するバグFIXなどが行われています。

Ubuntu Desktop 日本語Remixのダウンロード
https://www.ubuntulinux.jp/download/ja-remix

次に、SDカードにイメージを書き込みます。こちらはRufusを使用しました。

Rufus
https://rufus.ie/ja/

Rufusに先ほどダウンロードしたISOファイルを読ませて、「スタート」するだけで書き込みできます。

インストールメディアの起動

Windowsの[設定]→[回復]から再起動すると、回復メニューが立ち上がり、そこからUSBからブートすることができました。Ubuntuのイントール自体は、基本的に画面に沿って進めていけば完了となります。インストール先のディスクだけは絶対に間違えないようにしてください!

また、その他のオプションとして「グラフィックスとWi-Fiハードウェアと追加のメディアフォーマットのサードパーティ製ソフトウェアをインストールする」にチェックを入れました。私の環境ではセキュアブート用のパスワードを設定する必要がありました。
インストール完了後、MOKの登録画面が立ち上がったので、 Enroll MOK を選択して進めます。この際に、上で設定したセキュアブート用パスワードが必要になります。
詳細はこちらのサイトが参考になりました。

インストール完了後はインストールメディアを外し、外付けSSDだけでUbuntuが立ち上がります。私の環境では、SSDを挿していればUbuntu、そうでなければ内蔵のWindowsが立ち上がるようになりました。
ちなみに、タッチパネル・Webカメラ・マイク・WiFiなどは、インストール後何もしなくても使えました。

キーボード・トラックパッド周りのカスタマイズ

ここからは、Desktopの操作感をmac風にカスタムして、理想の環境を目指します。

kinto.shのインストール

kinto.shはLinuxでmac風のキーバインドを使えるようにするソフトウェアです。
まず、kinto.shをインストールする前に、ディスプレイサーバをWayland→Xorgに変更します。(kinto.shが内部的に依存しているXkeysnailがWayland未対応のため)
変更するには、Ubuntuのログイン画面の右下に表示される歯車マークからXorgを選択します。

次に、kinto.shをインストールするため、公式リポジトリをcloneして setup.py を実行します。

kinto.shが依存しているXkeysnailのバージョンが古いため、アップデートしておきます。

kinto.shをRestartして、表示されるXkeysnailのバージョンが最新になっていることを確認してください。
ちなみに、kinto.shを使っていると、ログイン画面でキーボードが反応しなくなることがあります。その場合は、スクリーンキーボードを使ってください。

JISキーボード対応

タブ移動のショートカットキーがJISキーボードでうまく動きませんでした。JISキーボードを使っていてもUS配列で認識するようで、 「{」は「}」、「}」は「\」と認識されます。そのため、config.pyを次のように修正しました。
(config.pyは、kinto.shの[Edit]->[Kinto Config (shortcuts)]で開けます)

この設定はアプリケーションごとに複数あるので、すべて探して同じように設定します。

変換・無変換キーでIMEを有効/無効を切り替える

変換キーで有効、無変換キーで無効に設定します。

  1. mozc プロパティを開く
  2. [キー設定の選択]の編集を開く
  3. 入力キーが「henkan」のコマンドを「IME有効化」に変更する。(複数行あるので全て変更する)
  4. 入力キーが「muhenkan」のコマンドを「IME無効化」に変更する。(複数行あるので全て変更する)

CapsLockをCtrlにする

MacのJISキーボードでは、WindowsのCapsLockキーの位置に、controlキーがあります。この操作感を再現するために設定します。この設定は何故かkinto.shではうまく設定できなかったので、Gnome Tweaksを使って設定します。
まず、Gnome Tweaksをインストールします。

インストールできたら、gnome-tweaksを起動します。

[キーボードとマウス]->[追加のレイアウトオプション]を開き、次の項目にチェックを入れます。

  • Caps Lock behavior
    • Caps Lockを無効にする
  • Ctrl position
    • Caps LockをCtrlとして扱う

また、mozcキー設定で、 「eisu」となっている行を全て削除してください。(変換・無変換キーの設定と同じやり方です。)

バックスラッシュでアンダースコアを入力する

LinuxでJISキーボードを使うと、アンダースコアを入力するためにシフトキーを押す必要がありますが、Macでは不要です。こちらもkinto.shでは何故かうまく設定できなかったので、Xmodmapで設定します。
~/.Xmodmap ファイルを作成し、以下の内容にします。

以下のコマンドを実行すると、反映されます。

この状態でも良いですが、この変更は一時的なもので、起動時やサスペンドから復帰したときに毎回実行する必要があります。これを解消するにはこちらの記事を参考に、起動時・サスペンスから復帰したときに上記コマンドを実行させます。

 

Waylandでは使えていたトラックパッドジェスチャーをXorgでも使う

ディスプレイサーバをXorgに変更すると、3本指ジェスチャーなどが効かなくなってしまいます。これをXorgでも使えるようにします。

まず、gnome-shell-extension-managerをインストールします。

アプリケーション一覧に「Extension Manager」が追加されるため、開きます。

次に、Gesture Improvementsをインストールするため、[探す]タブで検索し、インストールします。
インストールが完了すると、[追加済]タブに表示されるため、有効化します。これだけで3本指ジェスチャーがXorgでも使えるようになります。

他にジェスチャーを追加するには、Gesture Improvementsの設定を開きます。私の場合、Chromeの戻る/進むをトラックパッドでやりたかったので、次のように設定しました。

  • Gesturesタブ
    • 4-finger gestures for workspace switchingをオン
      (デスクトップの切り替えが4本指になります)
  • App Gesturesタブ
    • Enable application specific gesturesをオン
    • [+] からGoogle Chromeを追加
      (ブラウザの戻る/進むが3本指で出来るようになります)

HHKBのFWアップデート

私はHHKB Professional HYBRID Type-S(日本語配列)を使っているのですが、初期FWの場合、Ubuntuで変換・無変換・¥が反応しないというバグがあるため、アップデートが必要でした。
(PFUからはAndroidで発生するバグと公表されていますが、Ubuntuでも発生しました。)

こちらからキーマップ変更ツールと最新FWをダウンロードして、アップデートを行いました。ちなみに、この作業にはWindowsかmacOSが必要です。

開発環境のセットアップ

ここからは開発環境を構築します。

docker

基本的には、以下リンクの手順に従ってインストールすれば問題ありません。docker desktopがLinuxにも提供されていますが、私の場合ホットリロードが効かないという謎現象が起きたので、以下リンクの通り従来どおりのインストール方法がオススメです。

Docker Engine インストール(Ubuntu 向け)
https://matsuand.github.io/docs.docker.jp.onthefly/engine/install/ubuntu/

また、sudoなしにdockerコマンドを使いたかったため、こちらの設定も行いました。
続けて、docker composeもこちらを参考にインストールします。

おまけ(docker desktopのアンインストール)

私は間違ってdocker desktopをインストールしてしまったため、docker engineをインストールする前にアンインストールする必要がありました。こちらを参考にしてアンインストールしたあと、docker contextの修正が必要だったので、その方法を載せておきます。

IDE

VSCodeやJetBrainsのIDEは、Ubuntu Softwareからインストールできます。アプリケーション一覧にも表示されて便利なのでオススメです。

JetBrainsのキーマップ

ある程度kinto.sh側でJetBrainsのキーマップが定義されているので、JetBrains側のキーマップ設定はGNOMEのままで良いのですが、一部対応できていないものもあるので、その点のみ設定します。(タブ移動、戻る/進む、Optimize Importsなど)
以下に設定したキーマップのXMLファイルを載せておきます。

 

さいごに

とても苦労して設定したのですが、macを買えば設定せずともすぐに使い始められるので、macが早く欲しいなと思いました。

おすすめ書籍

Ubuntu はじめる&楽しむ 100%活用ガイド[Ubuntu 18.04LTS 日本語Remix対応] Ubuntuスタートアップバイブル

blog-page_footer_336




blog-page_footer_336




-Tools, Tech
-,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

【Unity】Raycastを利用して接地判定を行う

1 はじめに2 今回やりたいこと3 色々な接地判定4 Rayとは5 接地判定6 ジャンプのコードを記述7 さいごに8 おすすめ書籍 はじめに こんにちはsuzukiです。久しぶりにunityを触り色々 ...

Firestoreのルール設定とdumpやrestoreが簡単に行えるfsrpl

1 はじめに2 Firestoreのルール設定2.1 全て許可2.2 本番環境でのルール設定例3 fsrpl3.1 fsrplとは3.2 インストール3.3 秘密鍵3.4 copy3.5 開発環境から ...

【Unity】Animatorを利用するための基本知識

1 はじめに2 Animator3 Stateの追加4 Transitionの追加5 パラメーターの作成6 さいごに7 おすすめ書籍 はじめに こんにちはsuzukiです。今回はunityのanima ...

ReactNative入門

1 はじめに2 そもそもReact Nativeとは3 JSXとは3.1 JSXに値を埋め込む3.2 属性の値を設定する3.3 関数でJSXを作る4 コンポーネントとは4.1 再利用性4.2 新規コン ...

MLKitで使えるTensorflow Liteについて調べてみた

1 はじめに2 そもそもTensorflowとは3 そしてTensorflow Liteとは4 Tensorflowの環境構築4.1 pyenv, pyenv-virtualenvをインストール4.2 ...

フォロー

blog-page_side_responsive

2022年6月
 1234
567891011
12131415161718
19202122232425
2627282930  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。