2023-01-03 (Tue) [長年日記]
_ Ubuntu 22.04でのハイバネーション
Thinkpad T14をサスペンドして丸一日放置したらバッテリー残量が20%以下になってしまったため、ハイバネーションを利用することにした。
ルートパーティションを暗号化しているため、Enable Hibernation on Ubuntu 22.04 with LVM and Full Disk Encryptionを参考に以下の手順で設定を行った。
ハイバネーションの有効化
- スワップを無効化
$ sudo swapoff -a
- /etc/fstabのスワップの設定を以下のように修正(ない場合は追加)。
swapfile none swap sw 0 0
- スワップファイルを作成
sudo fallocate -l 32G /swapfile
sudo chown 0 /swapfile
sudo chmod 0600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
- 再起動後にスワップの設定を確認
$ sudo swapon -s
Filename Type Size Used Priority
/swapfile file 37748732 0 -2
- ルートパーティションのUUIDを確認
findmnt / -o UUID
- スワップファイルのオフセットを確認
$ sudo filefrag -v /swapfile |grep " 0:"| awk '{print $4}'
9932800..
- /etc/default/grubのカーネルコマンドラインに
resume
、resume_offset
を追加(最初resume=
の後のUUID=
が抜けていてハイバネーションからの復帰ができなかったので注意)
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=efa2cec1-29f1-47d2-a19b-e4722a969805 resume_offset=9932800"
-
sudo update-grub
で反映して再起動 -
sudo systemctl hibernate
でハイバネート、復帰できることを確認。
一般ユーザでのハイバネーション
sudoなしでハイバネートできるように、/etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pklaを以下の内容で作成
[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes
電源ボタンの挙動の設定
Gnomeの[設定]>[電源管理]>[電源ボタンの挙動]を[ハイバネート]に変更
メニューの[電源オフ/ログアウト]に[hibernate]を追加
- Gnomeのシェル拡張マネージャをインストール
$ sudo apt install gnome-shell-extension-manager
- シェル拡張マネージャを起動して[探す]で、Hibernate Status Buttonを追加
$ extension-manager
_ Ubuntu 22.04のibus-mozc起動時の入力モードをひらがなにする
Super+Spaceでibus-mozcを起動した時に入力モードが直接入力になっていて不便(英語キーボードだとibus-mozc上でIMEをオンにするキーを割り当てるのも難しい)なのでUbuntuのibus-mozcでひらがなをデフォルトにするを参考にひらがなになるようにした。
ただし、dpkg-buildpackageでfcitx-mozcのビルド中にエラーが発生したため、以下のように直接ibus-engine-mozcを置き換えて対処した。
$ sudo cp src/out_linux/Release/ibus_mozc /usr/lib/ibus-mozc/ibus-engine-mozc
2023-01-04 (Wed) [長年日記]
_ HiDPI/LowDPIのマルチディスプレイ環境で期待通りのスケーリングが行われない
ThinkPad T14の内蔵ディスプレイ解像度は3840x2400でディスプレイ設定の「サイズ調整」を200%にしているが、外付けディスプレイの解像度は2560x1440なので100%にしている。
GTKアプリケーションの場合は、起動したディスプレイに応じたスケーリングが行われて、もう一方のディスプレイに移動しても自動的にサイズ調整されるが、ChromeやTeams/Slackクライアントだと常にプライマリディスプレイの設定に従ってスケーリングされ、ディスプレイ間を移動してもサイズ調整が行われない。
調べたところgoogle-chrome --ozone-platform=wayland
のようにオプションでXWaylandを経由せずにWayland上で直接動かせば期待通りにスケーリングされることがわかったが、今度はibus-mozcによる日本語入力ができなくなってしまった。
どうもChromiumはtext-input-v1、Waylandはtext-input-v3と、サポートしているプロトコルのバージョンが違うせいらしい。
Chromiumのissueによると
Hi, sorry I've been busy doing other work. I didn't change code, but made some test and research. I think I can restart work on after October 4. I'm still very interested in this issue.
とのことなので時間が経てば解決するのかもしれないが、当面はXWayland経由で使うしかなさそうだ。
_ あ [--gtk-version=4フラグをつけてあげると日本語打てるようになります。 ぜひ!]
_ shugo [ありがとうございます。試してみます!]
_ shugo [google-chrome --ozone-platform=wayland --gtk-version=4で試しま..]