Open14

また Ubuntu をインストールしようとしている私へ

KusaReMKNKusaReMKN

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 に置いておきます。

KusaReMKNKusaReMKN

Git とか GitHub CLI とか

一応記事もあるんですけど……

Git のインストール
# add-apt-repository ppa:git-core/ppa
# apt update && apt upgrade -y
# apt install git

GitHub CLI は公式がインストール方法を載せているので、コピペしましょう。

KusaReMKNKusaReMKN

端末エミュレータを 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 を使っておけば問題なさそうです。 これらは環境に応じてクラスやオプションを付与する点が異なります。

KusaReMKNKusaReMKN

ホームディレクトリ配下を英語にする

デスクトップ とか ダウンロード なんてディレクトリ名を入力したくないのです。

$ LANG=C xdg-user-dirs-gtk-update

表示されるダイアローグにて Don't ask me again にチェックを入れ Update Names します。 慎重になるなら再起動したりログインしなおしたりしましょう。

KusaReMKNKusaReMKN

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
KusaReMKNKusaReMKN

コマンド '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
KusaReMKNKusaReMKN

仮想マシンを利用する環境を整える

もしかしたら浮気かもしれませんね。 必要なパッケージは virt-manager をインストールすると全て芋づるにインストールされます。

# apt update && apt upgrade -y
# apt install virt-manager

KVM を利用するユーザはグループ kvm に属している必要があります。

# usermod -aG kvm mkn
KusaReMKNKusaReMKN

ラップトップの内蔵キーボードを無効化する

外付けキーボードをそこに置きたいのです。

まずは 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 にする などを参考にしてください。

KusaReMKNKusaReMKN

外付けマウスを使っているときにトラックパッドを無効化する

Gnome がよしなにやってくれます。

$ gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled-on-external-mouse

元に戻すには設定をリセットします。

$ gsettings reset org.gnome.desktop.peripherals.touchpad send-events
KusaReMKNKusaReMKN

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 の強力な協力に謝意を表します。

KusaReMKNKusaReMKN

Ctrl + Alt + Space でサスペンドする

FreeBSD がそのようになっていますから、Ubuntu でもそのようにすると脳が喜びます。

systemctl suspend を実行するとシステムをサスペンドすることができます。この実行には特権を必要としません。キーボードショートカットにこのコマンドを割り当ててやることで Ctrl + Alt + Space をするだけでサスペンドできます。

設定 から キーボードキーボードショートカット にある ショートカットの表示と設定 に進み、独自のショートカット から以下のように追加しておきましょう。

独自のショートカットを設定
Ctrl + Alt + Space に systemctl suspend のショートカットを設定する