何度目かわからないLinux環境構築記事です.ちなみに
このような前例があり,今回もこれらの記事には非常に助けられた.
買ったPC
転職先の会社で好きなPCを選んで良いことになったので,Linuxを入れる前提で「ThinkPad X1 Extreme Gen5」を買った.
本当はFramework を狙っていたんだけど,日本に配送してくれそうな情報が見当たらずに諦めた.System76 も割と良さそうで,こちらは日本配送できるのだが,スペックを上げるとキーボードにテンキーが付属するのが我慢できなかった.ノートPCのキーボードにテンキーは不要だ.
どうせリモートだし,ノートPCを持ち歩くシチュエーションもほとんどない気がしたのでMinisforumあたりも考えたのだが,これについては覚悟が足らなかった.
というわけでThinkPadである.
Manjaro i3 Edition
まずBIOSの設定からSecure Bootを無効化しておく.ちなみにArch LinuxはSecure Bootに対応しているらしいが,Manjaroは今の所対応する予定はない.
今回は最初からcommunityメンテナンスのi3 editionをダウンロードしてきた.
そして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を入れようとするとドツボにはまった.
ここに書かれているとおりなのだが,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"
ビルドすれば良いよという記事は多いし,過去の俺もそのようなことを書いていた.
が,最新の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の使用感には敵わない.