会社のPCにManjaro i3 Editionを入れた

何度目かわからないLinux環境構築記事です.ちなみに

h3poteto.hatenablog.com

h3poteto.hatenablog.com

このような前例があり,今回もこれらの記事には非常に助けられた.

買ったPC

転職先の会社で好きなPCを選んで良いことになったので,Linuxを入れる前提で「ThinkPad X1 Extreme Gen5」を買った.

本当はFramework を狙っていたんだけど,日本に配送してくれそうな情報が見当たらずに諦めた.System76 も割と良さそうで,こちらは日本配送できるのだが,スペックを上げるとキーボードにテンキーが付属するのが我慢できなかった.ノートPCのキーボードにテンキーは不要だ.

どうせリモートだし,ノートPCを持ち歩くシチュエーションもほとんどない気がしたのでMinisforumあたりも考えたのだが,これについては覚悟が足らなかった.

というわけでThinkPadである.

Manjaro i3 Edition

まずBIOSの設定からSecure Bootを無効化しておく.ちなみにArch LinuxはSecure Bootに対応しているらしいが,Manjaroは今の所対応する予定はない.

forum.manjaro.org

今回は最初からcommunityメンテナンスのi3 editionをダウンロードしてきた.

https://manjaro.org/download/

そしてWindowsを削除して上からManjaroを入れる.Windows11が入っていたらしいがセットアップせずにフォーマットしてManjaroをインストールする.

自分でi3を入れると,かなり簡素なデスクトップが表示され,それをカスタマイズしていく形になるのだが,このi3 editionはそれなりに整った見た目が最初から用意されていた.まぁそれらを削除して全部自分の設定を入れるわけだが.

ちなみにインストールで迷うのは,ハードウェアのドライバを,OSSにするかProprietaryにするかだろう.今回は最初からProprietaryにした.どうせnvidiaドライバを使うのは確定なわけだしnouveauを入れるだけ無駄だ.

GPUの設定

まず,BIOSでグラフィックボードの設定をいじる.デスクトップだとあまり出会わないのだが,ノートPCだとIntelの内蔵GPUと,GeForce両方積んでいるパターンがある.この場合,ハイブリット設定になっている場合があり,これがややこしいのでGeForceのみを使うようにハイブリット設定をオフにしておく.

その上で,

$ sudo mhwd -a pci nonfree 0300

をやる.mhwdが入っていれば,あとはいい感じにnvidiaのドライバセットアップまでやってくれるので楽だ.

$ lspci -k | grep -A 2 -E "(VGA|3D)"
01:00.0 VGA compatible controller: NVIDIA Corporation GA107M [GeForce RTX 3050 Ti Mobile] (rev a1)
        Subsystem: Lenovo Device 22f8
        Kernel driver in use: nvidia

こうなれば良い.

IME

最近はibusをやめてfcitxを使っていたので,fcitxを入れる.ただ,ここでfcitx-mozcを入れてさらにemacs-mozcを入れようとするとドツボにはまった.

ain0204.hatenablog.com

ここに書かれているとおりなのだが,fcitx-mozcとmozcはコンフリクトする.依存関係としてはemacs-mozc -(depend)-> mozc <-(conflict)-> fcitx-mozc という状態になっている.で,巷の記事ではPKGBUILDを修正して

## If you will be using mozc.el on Emacs, uncomment below.
_emacs_mozc="yes"

ビルドすれば良いよという記事は多いし,過去の俺もそのようなことを書いていた.

h3poteto.hatenablog.com

が,最新のemacs-mozcはbazelでビルドされるようになっており,PKBGUILDにこのような変数は存在しない.

というわけで,今の所この2つをコンフリクトせずに入れる方法が謎のままである.

さらに,最近fcitxはWayland対応でfcitx5という新しいバージョンを出している.これは別パッケージになっているので,インストールするのは

$ yay -S fcitx5 fcitx5-im fcitx5-mozc

である.

で,emacs-mozcであるが,入れないことにした.

というかfcitxは

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

こうしておくと普通にemacsでもfcitxのままmozcが使える.なのでわざわざemacs-mozcを入れる必要がない気がして,やめた.

オーディオ関連の設定

ノートPCだと音量調節用のキーが設定されていたりするので,i3の設定に

bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ 0 && pactl set-sink-volume @DEFAULT_SINK@ +5% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ 0 && pactl set-sink-volume @DEFAULT_SINK@ -5% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status

こいうのを追加しておくとそれらのキーが使えるようになる.

pactlは

$ yay -S pulseaudio pavucontrol

として入れておく.

ディスプレイ関連の設定

同じく内蔵ディスプレイの明るさ調節ができるボタンがあったりするので,

bindsym XF86MonBrightnessUp exec xbacklight -inc 10
bindsym XF86MonBrightnessDown exec xbacklight -dec 10

としておく.

xorg-server関連でxbacklightコマンドは入っていると思うが,ない場合は

$ yay -S xorg-xbacklight

しておく.

その他

  • i3のステータスバーはpolybar
  • ファイラーはnemo
  • ターミナルはurxvt
  • ランチャーはulauncher
  • クリップボードはparcellite
  • 通知はdeadd-notification-center

こんな感じ.

Macにも一応yabaiのようなタイル型ウィンドウマネージャーを模したものはあるんだけど,やはりi3wmの使用感には敵わない.