Tech Tools

元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




-Tech, Tools
-,

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

UserNotificationsの使い方について

1 はじめに2 UserNotificationsフレームワーク3 基本実装3.1 デリゲートの設定3.2 ユーザー許可3.3 デバイストークン取得後3.4 バックグラウンドで通知受信3.5 フォアグ ...

Go言語

[Go初心者]テストについて学習

1 はじめに2 テスト2.1 エラーの値を比較する2.2 エラーの型を比較する3 httptest3.1 httptestの使い方4 さいごに5 おすすめ書籍 はじめに 今回はGo言語のテストについて ...

Go言語

GoでSMF(MIDI)ファイルを読み込んでみた

1 はじめに2 MIDIとは?2.1 SMFファイルについて2.1.1 Tickと分解能2.1.2 トラックチャンク3 gomidiを使ってSMFファイルを読み込む3.1 gomidiの導入3.2 実 ...

[Unity] Terrain(地形)を使ってみた

1 はじめに2 Terrainの追加方法3 Terrainの使い方4 Create Neighbor Terrain5 Paint Terrain5.1 Raise or Lower Terrain5 ...

BLEのペアリングをWiresharkでキャプチャしながら学ぶ

1 はじめに2 ペアリングとボンディング3 暗号化はキャラクタリスティック単位4 ペアリングの流れ4.1 セキュリティリクエスト4.2 ペアリングリクエスト・レスポンス4.3 Passkeyの検証5 ...

フォロー

blog-page_side_responsive

2022年6月
 1234
567891011
12131415161718
19202122232425
2627282930  

アプリ情報

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