なぜThink Padを選んだのか?
前まではAsusのラップトップを使ってWinsows11とArch Linuxをデュアルブートしていましたが、Corei3 の2コア4スレッドのマシンでは流石に力不足を感じたのでもう少しパワーのあるマシンが欲しくなったので、
新しいラップトップのマシンとしてThinkPad E14 Gen5を買いました。
理由としてはLinuxを動かすならThink Pad! と言えそうなくらいArch Wiki 等に情報がたくさんあることや、数少ないUS配列のラップトップの候補だからです。(他だとDELLかApple(mac)くらい)
このマシンはm.2 ssdを二枚載せることができるので、デフォルトで載っている方をWindows11用にして、もう一方にはLinuxを入れてデュアルブート構成で使うことにしました。
ちなみにWindowsのライセンスは普通のHomeです、一瞬Proライセンスも考えたけどやっぱり高いな〜とおもってやめました。
Arch Linuxをインストールする
まずこのマシンでややこしいのがM.2(NVme)の規格が通常の2280ではなく一回り小さな2242サイズであることと、スペースの問題から片面実装であるものが必要であった点です。
それっぽいのをamazonで調べるとThinkPadユーザーの方々がTransend製のものを使ってらっしゃるようなので、自分もそちらの512GBのものを購入しました。
ThinkPadは公式から保守マニュアルが用意されているので裏蓋を開けてssdを追加すること自体は特に問題なく行うことができました。
あと、前のAsusのマシンのUEFIの画面はアメリカンメガトレンド丸出しのFキーと矢印キーで操作するなものでしたけど、今回のものはかなり高機能でGUIでマウスも使えるものでした。最近は多いのかな?
ディスクの暗号化
別のpcでArch Linux のインストールメディアから起動するためにはセキュアブートを無効化する必要があります。
しかし、いざUEFIメニューからセキュアブートを無効化するとWindowsが起動できなくなってしまいました。
前使っていたAsusのマシンではこんなことなかったのですけどね...
色々調べてWindows側から暗号化を無効化しました。
Pro版ではBitLockerがあることは知っていたのですが、Homeでも暗号化があるのですね...
いざinstall
最近は全部自分で作業しなければならないこれまでのスタイルに加えてTUIのインストラーであるArch install
があるみたいですが、今回もこれまで通り手動でインストールしました。
DEはwaylandのコンポジッターであるSwayを入れてフルスタックなDE(Gnome,Kde,Xfecなど)は入れないことにしました。
ハマった点
Arch LinuxのインストールもDEの構成も初めてではないのでメモ書きをもとに出来たのですが、オーディオ関係がややこしかったですね...
1: オーディオ
参考:
- pipewire: Arch Wiki
- pipewire: Gentoo Wiki
- UbuntuにPipeWireを入れて見る
- Fedora34 「音がならない!」で困ったら
- arch wiki alsa
alsa-util
を入れた。これまではpulsaudio
を入れていたが、今回はpipewire
を入れました。pulseaudio
との互換性からpipewire-pluse
も追加でインストールしました。
しかし、音が出ませんでした!(出力先がダミーになってしまう!)
alsamixer
を起動しようとすると、サウンドカードが見つからない!と出てしまいました。
そこで症状でググると以下のフォーラムを発見しました。
Archlinux cannot find my sound card.
ここでは
We're gonna need some more info to go on, have you explicitly installed PulseAudio? If not you're using ALSA.
How do you know it can't find your sound card, are you saying this just because there's no audio playing or some other reason?
What's the output of lspci | grep -i audio?
It maybe possible you need either (or both of) alsa-firmware or sof-firmware via this link
とあったのでalsa-firmware
とsof-firmware
を一個づつインストールして試したら、sof-firmware
を入れたことでサウンドカードが認識されてちゃんと音が出ました。
無事音が出るようになったので以下を~/.config/sway/config
に以下を書き込んでF1
でミュート/ミュート解除,F2
で音量downF3
で音量upできるようにしました。
# vluem control by F1(mute/unmute ) F2(down) ,f3(up) ,alt + f1(mute)
bindsym F1 exec pactl -- set-sink-mute @DEFAULT_SINK@ toggle
bindsym F2 exec pactl -- set-sink-volume @DEFAULT_SINK@ -5%
bindsym F3 exec pactl -- set-sink-volume @DEFAULT_SINK@ +5%
2: Polkit
インストール中というよりもしばらく使ってからですが...
Arch WikiのPolkitの記事を読むと、KDE,GNOMEのようなフルスタックなDEをインストールする場合は勝手に設定されていることがほとんどですが、Swayの場合は自分で設定することが必要です。
グラフィカル環境を使っている場合、グラフィカルな認証エージェントをインストールし、(xinitrc を使うなどして) ログイン時に自動で実行されるようにしてください。
Cinnamon、Deepin、GNOME、GNOME Flashback、KDE、LXDE、LXQt、MATE、theShell、Xfce には初めから認証エージェントが入っています。
他のデスクトップ環境を使っているときは、以下の実装からどれか一つを選ぶ必要があります:
polkit
としてpolkit-gnome
を自動で起動するようにするには~/.config/sway/config
に
# polkit
exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
を書いて自動で起動するようにする必要がある。
この設定でDropboxのクライアントは普通に動いたのですが、root権が必要なGUIアプリの場合、polkit-gnome
を入れてSwayのコンフィグから自動起動するようにしてもpasswordを入力するwindowは出ても起動には失敗して起動できませんでした。
$ ps aux | grep polkit
を調べるとpolkit
,polkit-gnome
共にちゃんと起動してることは確認できました。
CLIでpasswordを要するコマンド例えばdocker
のデーモンを起動する
$ systemctl start docker.service
はpasswd用のwindowが出てパスワード入力 -> 無事デーモンが起動するのに...
症状でググった結果同じような症状を発見しました。
結論としてはxorg-xhost
が必要とのことです。というのもpolkit
が入っていてもwayland自体は対応しないためです。
$ sudo pacman -S xorg-xhost
これでok!
特にハマったりはしませんでしたが、毎回似たような設定のやり方を忘れたので備忘録として書いて置きます。
デフォルトでは~/.config/sway/config
に以下のように設定すればトラックパッドでクリックができます。
# tap to click for lap tocp touch pad
input type:touchpad {
tap enabled
natural_scroll enabled
}
またThinkPad特有の赤色のトラックポイントはデフォルトでは加速度が考慮されて使いにくく感じたので
# for thinkpad track point
input type:pointer {
accel_profile flat
pointer_accel 0.3
scroll_factor 0.5
}
と設定して加速度が考慮されないようにしました。
まあトラックポイントはあんま使っていないのですが...
インストールしたツール
ここではインストールしているツールについて軽く紹介します。
1: ログインマネージャー
これまではコンソールから手動でSwayを起動していましたが、現在はRust製のTUIのログインマネージャlemursを使っています。
シンプルかつ軽量で気に入っています。
2: バッテリー管理
まずtlpをインストールしてデーモンを設定します。
$ sudo pacman -S tlp
$ sudo systemctl enable tlp.service
電源に繋がっていない場合にCPUのクロックの制限をかけたりすれば、バッテリー持ちを良くすることが可能です。
一時期前のAsusのラップトップでは設定していましたが今は設定してないです。
ThinkPad E14 Gen5の場合ではtpacpi-batをインストールすることでバッテリーの充電のしきい値を設定できます。
設定はArch Wikiの記事を参考にしました。
$ sudo pacman -S tpacpi-bat # install
以下のコマンドで現在のしきい値を見ることができます。
$ sudo tpacpi-bat -g ST 1 # 充電を開始するパーセンテージ
$ sudo tpacpi-bat -g SP 1 # 充電を終了するパーセンテージ
ここでは充電を80%で終了し、70%以下にまで減った場合に充電を開始するように設定しました。
$ sudo tpacpi-bat -s ST 70 # 充電を開始するパーセンテージ
$ sudo tpacpi-bat -s SP 80 # 充電を終了するパーセンテージ
3: ディスプレイのlock
参考:
- arch wiki セッションをロック
swaylock
のフォークのswaylock-effects
を使っています。
$ sudo pacman -S swaylock-effects # install
インストールをしたあとで.bashrc
に適当なエイリアスを設定すればok!
# for lock screen
alias lock='swaylock \
--screenshots \
--clock \
--indicator \
--indicator-radius 100 \
--indicator-thickness 7 \
--effect-blur 7x5 \
--effect-vignette 0.5:0.5 \
--ring-color bb00cc \
--key-hl-color 880033 \
--line-color 00000000 \
--inside-color 00000088 \
--separator-color 00000000 \
--grace 2 \
--fade-in 1'
これまでは、netctl
を使っていたのですが、iwctl
を試しに使ってみたらこっちの方が便利に感じたのでこっちに変えました。
5: ファイルマネージャ
thunar
を使っています。というのもXfce環境を長いことを使っていて使い慣れているからです。
シンプルかつ必要十分という印象です。
6: 日本語入力
自分は設定言語は英語にして、そこに日本語入力を追加する形で運用しています。
日本語入力にはfcitx5-mozc
を使っています。
特に強いこだわりがあるわけではないので初めてArch Linuxをインストールしたときと同じものを使っています。
Xfce terminal
を使っています。これもXfceデスクトップを長いこと使って使い慣れているためです。
一回Wezterm
も試したのですが、設定をLuaで書いていくスタイルは気に入ったのですが、日本語入力関係の設定の不具合を直せず結局Xfce terminal
に戻ってきました。
8: エディタ
普段はエディタはNeovim
を使っています。LSPやファイラーも設定して快適な環境です
。
しかし、Gitのブランチの様子を見るのにはVsCodeの拡張が便利だったりするのでVsCodeも入れていいます。
9: バー
waybar
を使っていいます。バッテリー残量、Wifi,インプットメソッド等が見れて便利です。
$ sudo pacman -S waybar # intall
まずデフォルトの設定は/etc/xdg/waybar
にあるので~/.config/
にコピーします。
$ cp -r /etc/xdg/waybar ~/.config/
このままではデフォルトのsway-bar
が表示されたままで、waybar
は表示されないので~/.config/sway/config
の項目bar
を以下のように編集しました。
bar {
#position top
# When the status_command prints a new line to stdout, swaybar updates.
# The default just shows the current date and time.
#status_command while date +'%Y-%m-%d %I:%M:%S %p'; do sleep 1; done
swaybar_command waybar
colors {
#statusline #ffffff
#background #323232
#inactive_workspace #32323200 #32323200 #5c5c5c
}
}
ここで重要なのはstatud_command
,position top
をコメントアウトして、swaybar_command waybar
を追加することです。
この設定を終えた後で,Super + Shift + C(デフォルトの設定)で~/.config/sway/config
を再読込すると上部にbarが表示される。
しかし、私の環境では絵文字が文字化けしてしまいました。
これは、awesome-font
を入れることで解決できました[2]。
$ sudo pacman -S ttf-font-awesome
デフォルトではたくさん表示されてごちゃごちゃしているので、設定ファイル~/.config/waybar/config
のを編集して必要なものみを表示するように変更しました。
今回は"height","width","modules-left","modules-center","modules-right"のみを以下のように編集しました。
"height": 10, // Waybar height (to be removed for auto height)
"width": 1912, // Waybar width
"spacing": 2, // Gaps between modules (4px)
"modules-left": ["sway/workspaces", "sway/mode", "sway/scratchpad"],
"modules-center": ["sway/window"],
"modules-right": ["idle_inhibitor", "pulseaudio", "network", "backlight", "sway/language", "battery", "clock", "tray"],
デフォルトの配色は自分好みではないので~/.config/waybar/style.css
を編集して好みの色になるようにしました。
10: ランチャー
rofi-lbon-wayland-only
を使っています。
これはrofi
のwayland
対応版です。
元々はXfce
のランチャーを使っていて、流石に変えたいなと思っていたので rofi-lbon-wayland
を使っていたのですが途中で挙動がおかしくなったので rofi-lbon-wayland-only
に変えました。
$ yay -S rofi-lbonn-wayland # install
まず、デフォルトの設定ファイルを生成するために以下のコマンドを実行します。
$ rofi -dump-config > ~/.config/rofi/config.rasi
設定箇所はたくさんありますが、今回はconfiguration {}
のうち以下の部分を設定しました。
configuration {
modes: "window,drun,run,ssh";
font: "hack 20";
icon-theme: "Papirus";
combi-modes: "window,drun,run";
}
また、ショートカットキーで起動するようにするため~/.config/sway/config
に以下を書き足しました。
bindsym $mod+z exec rofi -show drun