__aki_nikki__

分子分光学の研究をしている大学院生の日記です

ThinkPadを使ってみて

なぜThink Padを選んだのか?

前まではAsusのラップトップを使ってWinsows11とArch Linuxデュアルブートしていましたが、Corei3 の2コア4スレッドのマシンでは流石に力不足を感じたのでもう少しパワーのあるマシンが欲しくなったので、

新しいラップトップのマシンとしてThinkPad E14 Gen5を買いました。

理由としてはLinuxを動かすならThink Pad! と言えそうなくらいArch Wiki 等に情報がたくさんあることや、数少ないUS配列のラップトップの候補だからです。(他だとDELLApple(mac)くらい)

このマシンはm.2 ssdを二枚載せることができるので、デフォルトで載っている方をWindows11用にして、もう一方にはLinuxを入れてデュアルブート構成で使うことにしました。

ちなみにWindowsのライセンスは普通のHomeです、一瞬Proライセンスも考えたけどやっぱり高いな〜とおもってやめました。

Arch Linuxをインストールする

SSDを追加

まずこのマシンでややこしいのが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-firmwaresof-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、GNOMEGNOME Flashback、KDELXDE、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!

3: ポインティングデバイスの設定

特にハマったりはしませんでしたが、毎回似たような設定のやり方を忘れたので備忘録として書いて置きます。

デフォルトでは~/.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'

4: WiFi接続

これまでは、netctlを使っていたのですが、iwctlを試しに使ってみたらこっちの方が便利に感じたのでこっちに変えました。

5: ファイルマネージャ

thunarを使っています。というのもXfce環境を長いことを使っていて使い慣れているからです。

シンプルかつ必要十分という印象です。

6: 日本語入力

自分は設定言語は英語にして、そこに日本語入力を追加する形で運用しています。

日本語入力にはfcitx5-mozcを使っています。 特に強いこだわりがあるわけではないので初めてArch Linuxをインストールしたときと同じものを使っています。

7: ターミナルエミュレータ

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を使っています。

これはrofiwayland対応版です。

元々は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