また Ubuntu をインストールしようとしている私へ
目次
- Google Chrome にダークモードを強いる
- Git とか GitHub CLI とか
- 端末エミュレータを xterm にする など
- ホームディレクトリ配下を英語にする
- Snap 版 Firefox を使わない
- NTP サーバに NICT とかを指定する
- コマンド 'foo' が見つかりません。もしかして: いらない
- 仮想マシンを利用する環境を整える
- ラップトップの内蔵キーボードを無効化する
- 外付けマウスを使っているときにトラックパッドを無効化する
- コマンドラインから音量を制御する
- NDIVIA のグラボで Wayland する
- Ctrl + Alt + Space でサスペンドする
- プロキシ環境下で Tailscaled を動かす
- DNS のキャッシュをクリアする
Google Chrome にダークモードを強いる
目を潰されないようにしましょう。
# sed -i '' -e '/Exec/s/$/--enable-features=WebUIDarkMode --force-dark-mode/' /usr/share/applications/google-chrome.desktop
Google Chrome をアップデートすると全て元に戻されてしまいがちなところが瑕です。
2023-02-08 追記
この方法だと Chrome アプリにダークモードが適用されないようです。 この問題に対応したスクリプトを Gist に置いておきます。
端末エミュレータを xterm にする など
Tek モードがときどき便利なので xterm を使っています (日本語入力できないですけど (uim))。 何はともあれインストールします。
# apt update && apt upgrade -y
# apt install xterm
リソースは Gist においてあります。 私は ~/.Xresources.d というディレクトリを掘ってその中にアプリケーションごとのリソースファイルを置いています。 Xterm 用のファイルは ~/.Xresources.d/xterm.Xresources として保存します。
そして、~/.Xresources.d 配下に配置したリソースをまとめて読み込むためのファイルを記述します。 このファイルは ~/.Xresources と名付けます。
% ed ~/.Xresources
a
#include "./.Xresources.d/xterm.Xresources"
.
w
q
設定を適用するためには xrdb(1) を利用してリソースファイルを読み込む必要があります。 これを毎回叩くのは面倒であり時間の無駄であるので、自動起動するプログラムに追加してしまいましょう。 これでログイン時にリソースファイルを読み込んでくれるようになります。
コマンドは xrdb -merge /absolute/path/to/.Xresources
また、[Ctrl]+[Alt]+[T] で起動する端末エミュレータを xterm にするには x-terminal-emulator を lxterm にしてしまえばよいです。 update-alternatives で設定できます。
# update-alternatives --config x-terminal-emulator
xterm には uxterm だったり koi8rxterm だったり lxterm だったりのバリアントがありますが、迷ったら lxterm を使っておけば問題なさそうです。 これらは環境に応じてクラスやオプションを付与する点が異なります。
ホームディレクトリ配下を英語にする
デスクトップ とか ダウンロード なんてディレクトリ名を入力したくないのです。
$ LANG=C xdg-user-dirs-gtk-update
表示されるダイアローグにて Don't ask me again にチェックを入れ Update Names します。 慎重になるなら再起動したりログインしなおしたりしましょう。
Snap 版 Firefox を使わない
詳細な方法は Ubuntu 22.04 で debパッケージ版の Mozilla Firefox を導入する方法 にあります。 読んでください。
ちなみに
上の記事もいいですが、Firefox の公式は公式でちゃんと apt 経由でインストールできるような案内を出していますよ。
NTP サーバに NICT とかを指定する
皆さんご存知のことと思いますが、情報通信研究機構 NICT が NTP サーバを公開しています。 また、インターネットマルチフィードも NTP サーバを公開しています。 これらの NTP サーバから時刻情報を受信するように設定を変更します。
Ubuntu は timesyncd を利用しているはずなので /etc/systemd/timesyncd.conf を修正すれば目的を果たせます。
# ed /etc/systemd/timesyncd.conf
/\[Time\]/a
NTP=ntp.nict.jp
FallbackNTP=ntp.jst.mfeed.ad.jp
.
w
q
コマンド 'foo' が見つかりません。もしかして: いらない
存在しないコマンドを実行しようとすると次のようなメッセージが表示されます。
$ ls- a
コマンド 'ls-' が見つかりません。もしかして:
command 'lsd' from snap lsd (0.16.0)
command 'lsh' from deb lsh-client (2.1-13)
command 'lsc' from deb livescript (1.6.1+dfsg-2)
command 'lsm' from deb lsm (1.0.4-2)
command 'ls' from deb coreutils (8.32-4.1ubuntu1)
command 'lsw' from deb suckless-tools (46-1)
他のバージョンについては 'snap info <snapname>' を確認してください。
そのようなコマンドが存在しないことだけを報告してくれれば十分であるので、これを抑制します。
$ echo 'unset command_not_found_handle' >>~/.bash_aliases
仮想マシンを利用する環境を整える
もしかしたら浮気かもしれませんね。 必要なパッケージは virt-manager をインストールすると全て芋づるにインストールされます。
# apt update && apt upgrade -y
# apt install virt-manager
KVM を利用するユーザはグループ kvm に属している必要があります。
# usermod -aG kvm mkn
ラップトップの内蔵キーボードを無効化する
外付けキーボードをそこに置きたいのです。
まずは input-utils をインストールします。
$ sudo apt install input-utils
そして内蔵キーボードに対応するイベント番号を調べます。 /proc/bus/input/devices から該当する Sysfs の記述を確認します。 以下の場合は input3 からイベント番号は 3 であることがわかります。
$ grep -C2 -i keyboard /proc/bus/input/devices
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input3
そして現在のキーマップを保存しておきます。 上で確認したイベント番号を指定します。
$ sudo input-kbd 3 | sed -ne '/^0x/p' >prev.map
全てのキーを無効にするキーマップを生成します。 255 を指定するとキーが無効になるようです。
$ sed -e 's/= *[0-9]*/= 255/' prev.map >disable.map
それぞれのキーマップを適用することでキーボードを無効化、有効化することができます。
$ sudo input-kbd -f disable.map 3 # 無効化
$ sudo input-kbd -f prev.map 3 # 有効化
ただし、この設定は再起動するとリセットされるので常に適用したい場合は適当に設定を加える必要があります。 端末エミュレータを xterm にする などを参考にしてください。
外付けマウスを使っているときにトラックパッドを無効化する
Gnome がよしなにやってくれます。
$ gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled-on-external-mouse
元に戻すには設定をリセットします。
$ gsettings reset org.gnome.desktop.peripherals.touchpad send-events
NDIVIA のグラボで Wayland する
それまで X11 を使っていて、なんか途端に動作が遅くなったなって気持ちになっていたらそういう問題が発生していたようです。 Ubuntu 24.04 のリリースを待っても良いのですが、いっそのこと Wayland を使えるようにしてしまいましょう。
今の環境では nvidia-driver-535 のドライバを利用しています。
追加のドライバー を確認してみる
この状態で Ubuntu on Wayland で起動しても llvmpipe が仕事をしてしまいます。
グラフィックを確認すると NVIDIA のグラフィックボードが使われていない
nVidia のグラボで Wayland 使うの記事に倣って udev とカーネルパラメータの設定を構成しておきます。
$ sudo ln -s /dev/null /etc/udev/rules.d/61-gdm.rules
$ sudo ed /etc/default/grub
/GRUB_CMDLINE_LINUX_DEFAULT=/s/"$/nvidia_drm.modeset=1&/
w
q
$ grub-mkconfig -o /boot/grub/grub.cfg
再起動します。
さらに libnvidia-egl-wayland1 をインストールします。 これで再起動するとちゃんと起動してくれます。
$ sudo apt install libnvidia-egl-wayland1
グラフィックを確認すると NVIDIA のグラフィックボードが使われている
謝辞
この場を借りて yude.jp の強力な協力に謝意を表します。
Ctrl + Alt + Space でサスペンドする
FreeBSD がそのようになっていますから、Ubuntu でもそのようにすると脳が喜びます。
systemctl suspend
を実行するとシステムをサスペンドすることができます。この実行には特権を必要としません。キーボードショートカットにこのコマンドを割り当ててやることで Ctrl + Alt + Space をするだけでサスペンドできます。
設定 から キーボード、キーボードショートカット にある ショートカットの表示と設定 に進み、独自のショートカット から以下のように追加しておきましょう。
Ctrl + Alt + Space に systemctl suspend
のショートカットを設定する
プロキシ環境下で Tailscaled を動かす
/etc/default/tailscaled に設定を記述すればよいです[1]。
$ sudo ed /etc/default/tailscaled
a
HTTP_PROXY="http://proxy.example.com:8080/"
HTTPS_PROXY="http://proxy.example.com:8080/"
.
w
q
DNS のキャッシュをクリアする
Ubuntu 24.04 では以下のように実行すれば良いです。
$ resolvectl flush-caches