Fedora 42 インストール記録
前置き:
以前 Fedora 40 のインストールマニュアル を書いたことがあって、インストールと初期設定のメモ、それから「Fedora をどう使えばストレスが溜まらないか」という心得をまとめておいた。この心得は今見てもそのまま使えるし、むしろさらに使えるようになっている。
要は一言でいうとこうだ。Fedora(Gnome)を使うなら、なるべく Gnome の操作ロジックとデザイン思想に合わせて適応しろ。それが嫌なら KDE のほうがいい。
今回は Fedora 42 の記録で、前回からいくつか更新している。一部は前のバージョンからそのまま流用しているし、新しいバージョンでは不要になった操作は対応して削除してある。Gnome に関する言説や要点は Fedora 40 の記事に残してある。将来単独で抜き出すかもしれないし、まあ次の Fedora マニュアルになるころだろう。
Fedora のインストールと基本設定には科学上网の手段を用意しておくことを勧める。特にルーター側でのグローバルな方式がいい。そうでないと遅いか、そもそも繋がらないことがある。

システムインストール:
Fedora 42 のインストーラーは新しくなっていて、Web ベースで、邪悪で、信じられない。マシンの構成がしょぼすぎてメモリが少なかったりすると、Firefox が応答しなくなったとかいうダイアログが出る。Firefox が殺されたら、このいわゆるインストーラーが「接続が失われました」とか表示する。個人的には好きじゃないが、どうしようもない。
構成がそこまでよくないなら、インストール中は余計なことをせず、進捗を大人しく待つことだ。インストールの段階で突然 Firefox が殺されたと出ても焦らなくていい。しばらく待って、CPU とメモリの使用率が下がったと感じたら、そのまま再起動してみよう。もしかしたらシステムはもう入っている。落ちたのは進捗バーを表示する Web フロントエンドだけだ。
ディスクのパーティションは、問題がなければ「ディスク全体」とデフォルトのパーティション、つまり btrfs のやつを勧める。理由は前にも書いた。btrfs は問題があるとはいえ、RAID を使わなければ影響は小さいし、btrfs がもたらす新機能の利点は ext4 に残ったわずかな性能上の利点より明らかに優れている。
もちろん、重要なデータを保存する NAS のような真面目な用途のマシンで btrfs を盲目的に使うのは勧めない。ただ PC なら btrfs で十分すぎる。
swap パーティションが何をするものか分かっている場合を除いて、swap パーティションを別途設定する必要はない。今の Zram で十分だ。
基本リポジトリ設定:
Fedora 42 をインストールして初めてデスクトップに起動すると、ユーザー名を作れとかの基本設定が出る。そこに「サードパーティリポジトリを有効化」といったヒントがあるので、忘れずに有効化しよう。そうすれば flathub のリポジトリが自動で設定され、自分で設定する必要はなくなる。
Wifi に接続したらまずシステムを更新する:
sudo dnf update
攻めたいなら Testing-update で先に更新してもいい。たいてい新しいカーネルと Mesa が入ってくるので、最新チップのノートPCを使っている人には試す価値がある。そうでなければやらなくていい。
sudo dnf update --enablerepo=updates-testing --refresh
続いて rpmfusion を有効化:
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
最初のログイン時に「サードパーティソフトウェアリポジトリ」を有効化せず、flathub の有効化を逃した場合も手動で有効化できる。
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flathub にはかつて国内ミラーがあったが、そのミラーが落ちて大きな問題を引き起こしたことがある。今はまた使えるようだが、国際インターネットへのアクセスに本当に困っているのでなければ、素の flathub を使ったほうがいい。
よく使う拡張機能のインストール:
Gnome-shell の拡張機能公式サイトを開く:
初めて開くとブラウザ拡張を入れろと促されるので、「Click here to install browser extension.」をクリックして拡張をインストールすれば、よく使う拡張を入れられる。今は Firefox と Chrome に対応している。Edge は分からない、たぶん非対応。
ここで、個人的に使う価値があると思う拡張をいくつか挙げておく:
必須系:
タスクバー対応拡張。telegram などのアプリを最小化してもアイコンが見えるようになる https://extensions.gnome.org/extension/615/appindicator-support/
カフェイン拡張。PC のスリープを一時的に避けられる https://extensions.gnome.org/extension/517/caffeine/
GTK4 版のデスクトップアイコン拡張。デスクトップアイコンを表示できる(Gnome はデフォルトでデスクトップアイコンがない) https://extensions.gnome.org/extension/5263/gtk4-desktop-icons-ng-ding/
時間に応じてナイト/デイモードを自動で切り替える(壁紙の切り替えにも対応) https://extensions.gnome.org/extension/2236/night-theme-switcher/
CapsLock などのロックキーの状態を表示。デフォルトでは非表示にして、ロック状態のときだけ表示するよう設定できる https://extensions.gnome.org/extension/36/lock-keys/
PC のメモリと CPU 使用率、温度、現在の消費電力を表示できる https://extensions.gnome.org/extension/1460/vitals/
必須ではない拡張:
エッジ操作拡張。マウスを画面下端に移動すると自動で dock が出る。誤操作しやすいので、トラックパッドと win キー操作に慣れることを勧める https://extensions.gnome.org/extension/4222/hot-edge/
すりガラス効果:クラッシュや性能低下を招く可能性がある https://extensions.gnome.org/extension/3193/blur-my-shell/
ウィンドウのスマートタイル拡張:タイル使うなら最初から hyperland などの WM にすればいいのでは? https://extensions.gnome.org/extension/3733/tiling-assistant/
Just Perfection:高度にカスタマイズできる拡張。すべてのウィンドウと効果をオンオフできるが、カスタマイズ項目が多いわりに大した用途はない https://extensions.gnome.org/extension/3843/just-perfection/
旧型デスクトップアイコン拡張:新 GTK4 版ほど統合されていないが、性能は少し良い https://extensions.gnome.org/extension/2087/desktop-icons-ng-ding/
左上のトップバーで Windows 10/11 的な Dock 効果を実現できるが、見た目がすごく野暮ったい https://extensions.gnome.org/extension/5180/rocketbar/
Fcitx5 の中国語/日本語入力メソッドをインストール
理論上、Gnome のネイティブ入力メソッドは iBus のはずで、自分も試したが、残念ながらこの iBus はクソすぎる。主にクソな点は三つ:
1、入力速度が速すぎるとよく固まる。ずっと Bug が報告されていて、公式もずっと最適化しているが、何年も最適化してきたのに今でも固まる……
2、QT プログラムへの対応がイマイチで、多くの QT プログラムで入力メソッドを有効にできない。聞くな、聞いたら GTK のプログラムに変えろと言われる
3、Fedora のデフォルトパッケージでは「クラウドピンイン」が有効になっていない。これが一番抽象的で、iBus のピンインはクラウドピンイン入力に対応しているのに、Fedora がパッケージングするときに無効化している。理由は「オープンソースではなく、プライバシー問題の疑いがある」から。しかもユーザーに選択の余地を与えていない。たとえば rpmfusion でオープンな版を提供するとか。クラウド入力を使いたければ自分でコンパイルする必要がある。マジでアホすぎる……
なので総合的に判断して、すべての Gnome ユーザーには fcitx5 入力メソッドを勧める。現時点で確かに入力の最適解だからだ。
インストールも簡単:
sudo dnf install fcitx5-chinese-addons fcitx5-autostart
日本語入力メソッドが欲しければ:
sudo dnf install fcitx5-mozc
インストール後、デフォルトではログアウトしてログインし直せば入力メソッドは使えるはずだが、入力ウィンドウがちょっと醜いかもしれない。Gnome 向けの拡張を入れて美化するといい:
https://extensions.gnome.org/extension/261/kimpanel/
ログアウトしてログインし直すと、入力ウィンドウが Gnome のデフォルトスタイルに合っていて、システムに溶け込んでいるのが分かる。
Fcitx5 自体にもいろいろ設定や遊び方があるので、詳しくはネットで検索してほしい。emoji 入力や大きな辞書のインポートなど。クラウド入力を忘れずにオンにしよう。Baidu クラウドを選べる。
基本ソフトのインストール:
そろそろ基本ソフトを入れよう。ごく基礎的なものは RPM で入れ、それ以外は flatpak を使う。なるべく flatpak を使うことで、アップグレード時のトラブルを減らせる。
ロジクールマウス制御ソフト solaar をインストール(ロジクールマウスのみ対応)。ロジクール以外のマウス・キーボードなら入れなくていい
sudo dnf install solaar
Typora テキストエディタをインストール
flatpak install flathub io.typora.Typora
Typora が有料なのが嫌なら Ghostwriter を選べばいい
flatpak install flathub org.kde.ghostwriter
よく使うソフトをインストール
sudo dnf install vlc filezilla remmina easytag file-roller showtime
VLC プレイヤー、filezilla FTP ツール、remmina リモートデスクトップ、easytag 音楽 IDTag 編集ツール、file-roller は解凍ツール、showtime は新 GTK4 版の動画プレイヤー。どれも好みでインストールすればいい。
よく使うブラウザは Firefox を勧める。スクリーンショットソフトは Gnome 自身のもので十分強力だ。
ここで使えそうなツールをいくつか追加で挙げておく:
GPU Screen Recorder(GPU 情報を直接読み取る配信/録画ツール。負荷が低い)
flatpak install flathub com.dec05eba.gpu_screen_recorder
Rustdesk(向日葵や todesk 的なリモートツール。flatpak 版のダウンロードを勧める)
https://github.com/rustdesk/rustdesk/releases
WeChat Flatpak 版
flatpak install flathub com.tencent.WeChat
Steam(RPMFusion にもあるが、個人的には flatpak 版のほうがいい)
flatpak install flathub com.valvesoftware.Steam
LinuxQQ
flatpak install flathub com.qq.Discord
編集ソフト KdenLive
flatpak install flathub org.kde.kdenlive
一時メモ帳 Buffer
flatpak install flathub org.gnome.gitlab.cheywood.Buffer
あと Microsoft の二点セット:Edge と Vscode
https://www.microsoft.com/en-us/edge/download
https://code.visualstudio.com/download
そして Google の Chrome
https://www.google.com/chrome/
どれも RPM 形式をダウンロードしてインストールすればいい。
特殊な用途なら設定系の APP を入れてもいい:
sudo dnf install gnome-tweaks gnome-extensions-app dconf-editor
VA-API 動画アクセラレーションを有効化
正直、動画再生で問題が出ていないなら、これをいじるのは勧めない。
著作権の都合で Fedora は多くの動画アクセラレーション対応を外しているが、RPMFusion で戻せる:
sudo dnf install mesa-va-drivers-freeworld mesa-vdpau-drivers-freeworld
$ sudo dnf swap mesa-va-drivers mesa-va-drivers-freeworld
$ sudo dnf swap mesa-vdpau-drivers mesa-vdpau-drivers-freeworld
他のデコーダーをインストール
$ sudo dnf groupupdate multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
$ sudo dnf groupupdate sound-and-video
$ sudo dnf install @multimedia @sound-and-video ffmpeg-libs gstreamer1-plugins-{bad-\*,good-\*,base} gstreamer1-plugin-openh264 gstreamer1-libav lame\*
参考: https://kcore.org/2022/12/01/fedora37-codecs/
ちなみに mesa のバージョンが更新されるたびに、rpmfusion 側の freeworld パッケージの更新が遅れて依存関係エラーが出ることがある。数日待ってから更新すればいい。
AV1 動画サムネイル対応をインストール
sudo dnf install libheif-tools
詳細:https://plumz.me/archives/13985/
BTRFS スナップショット管理をインストール
まずツールをインストール:
sudo dnf install btrfs-assistant
あとはアプリ一覧にこのプログラムが現れる。
btrfs ファイルシステムはすべて COW(Copy on Write)なので、スナップショットとバックアップがとても簡単だ。このツールを使えば手軽にスナップショットバックアップができる。

デフォルトの btrfs インストールは二つのボリュームに分かれてマウントされる。一つはルートディレクトリ root、もう一つはユーザーディレクトリ home で、どちらも独立してスナップショットバックアップと復元ができる。このツールでの操作はとても簡単だ。
このツールは自動バックアップとスナップショットにも対応しているが、勧めない。スナップショットのせいで flatpak のプログラムが遅くなり、再起動して復元が必要になることがある。
仮想マシンの選択:Gnome Box
Linux の仮想マシンには多くの選択肢がある。有名な virtualbox、vmware、それに Gnome 標準の Gnome-box だ。
次に Gnome-box が自分の選択になった理由を話す。まず virtualbox や vmware などを使うと、secure boot をオフにしないとカーネルモジュールのコンパイルに失敗する。カーネル更新のたびに手動で署名するか、使わないかの二択になる。
一方 Gnome-box は KVM ベースなので、当然この制限を受けない。
システムに入っていなければインストール:
sudo dnf install gnome-boxes
それに理論上 KVM の性能は Virtualbox などより優れているので、なおさら KVM を使うべきだ。ただ現在 KVM 最大の問題は Windows のエミュレーションがイマイチなこと。エミュレーション自体は可能だが、やはりグラフィック性能のドライバーが満たせない。ここでは QXL などの 2D アクセラレーションドライバーで Windows を動かすことを勧める。本格的な 3D 性能が必要なら、GPU パススルーしかない。
Linux のエミュレーションなら性能はとてもいい。

Gnome-box の画面がシンプルすぎて分かりにくければ、別の GUI をインストールできる:
sudo dnf install virt-manager
これで分かるようになる。
クリップボード管理 Gpaste をインストール
Linux のクリップボード管理ツールは多い。クロスプラットフォームの CopyQ があり、多くの拡張も対応しているが、自分はやはり Gpaste を一番推す。
理由も簡単で、このツールは十分安定していて、単なるプラグインで記録するのではなくバックグラウンドサービスとして動作する。しかもこのプラグインは Gnome と深く統合されているので、Gnome ユーザーなら当然第一候補だ。
インストール方法:
sudo dnf install gpaste
sudo dnf install gnome-shell-extension-gpaste
あとで拡張機能の中で gpaste の拡張を有効化するのを忘れずに。
Telegram の三つのインストール方法
Telegram はクロスプラットフォームのチャットソフトで、Fedora でのインストール方法は三つある:
1、RPMFusion 経由でインストール:
sudo dnf install telegram-desktop
この方法は Fedora の二次パッケージで、新機能の一部が失われるようだ。Beta も有効にできない。
2、Flatpak 経由でインストール:
flatpak install flathub org.telegram.desktop
3、公式サイトから直接インストール:
https://desktop.telegram.org/
Linux パッケージをダウンロードして、自分でショートカットを書く。自分はこの方法を使っていて、Beta チャンネルの自動更新を有効にできる。実行プログラムを opt ディレクトリに置き、書き込み権限を与える必要がある。
Oh-My-ZSH をインストール
sudo dnf install zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
科学上网をインストール
sudo dnf copr enable spyophobia/shadowsocks-rust
sudo dnf install shadowsocks-rust
最適化:rust ベースのスケジューラを有効化
新しい Linux カーネルは Rust 言語ベースのスケジューラを多数サポートしている。利点はマルチタスク環境を最適化し、ある程度エネルギ効率も改善できること。興味があれば試すといい。
sudo dnf copr enable bieszczaders/kernel-cachyos-addons
sudo dnf install scx-scheds
そしてデフォルトのスケジューラを変更:
sudo vim /etc/default/scx
次の二項目を設定するのを勧める:
SCX_SCHEDULER=scx_lavd
SCX_FLAGS='--autopower'
ここでの autopower は電源接続の有無に応じて自動でマッチングする。
最後にサービスを有効化するのを忘れずに:
systemctl enable scx
最適化:iwd を Wi-Fi 管理バックエンドとして使う
iwd は Intel 公式の Wi-Fi 管理モジュールで、Intel の無線 NIC ではより良い性能と安定性がある。Intel 無線 NIC のユーザーにのみ試すことを勧める。自分の NIC が Intel かどうか分からないなら、盲目的に変更しないこと。
$ sudo dnf install iwd
$ echo -e "[device]\nwifi.backend=iwd" | sudo tee /etc/NetworkManager/conf.d/10-iwd.conf
$ sudo systemctl mask wpa_supplicant
変更後は再起動で有効になる。以前追加した無線ネットワークを再追加する必要があるかもしれない。古い無線と新しい無線で名前が衝突することもあるので、古いものを削除して新しいものを追加するのを勧める。
再起動後に効果がいまいちなら、デフォルトのバックエンドに戻せる:
$ sudo rm /etc/NetworkManager/conf.d/10-iwd.conf
$ sudo systemctl unmask wpa_supplicant
参考: https://thedestitutedeveloper.blogspot.com/2021/01/enabling-iwd-on-fedora-33.html
最適化:ノートPCのバッテリー持続設定
現在 Linux でのノートPCのバッテリー最適化方法は主に TLP で、他の大多数も TLP と大差ない。
Fedora で、特に Gnome 環境なら、標準の Powertop 最適化サービスを有効にするだけで十分だと思う。
まず Powertop をインストール
sudo dnf install powertop
そしてサービスを有効化
sudo systemctl enable powertop.service
現在のマシン全体の消費電力を自分で確認できる
sudo powertop
しかも Fedora 42 ではもう power-profiles-daemon ではなく、Red Hat 系独自の Tuned をバックエンドに使っている。バッテリー持続は power-profiles-daemon よりずっと良い。設定で対応する消費電力モードを選べばいい。
最適化:フォントレンダリング
Fedora 42 は新しい Adwaita Sans と Adwaita Mono フォントを使っている。実際には他のフォントをベースに改変したもので、まだ小さな問題はあるが、以前の表示上の大部分の難題は解決されたので、最適化もずっと簡単になった。
相変わらず RGB ではなくグレースケールを使う。具体的な理由は前にも話したので繰り返さない。
直接設定ファイルを作る:
mkdir ~/.config/fontconfig/
gnome-text-editor ~/.config/fontconfig/fonts.conf
以下の設定ファイルを貼り付ける:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<!-- フォントのレンダリング方式を設定。グレースケールを使い、rgb は使わない -->
<match target="font">
<edit mode="assign" name="rgba">
<const>none</const>
</edit>
</match>
<match target="font">
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
</match>
<match target="font">
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
</match>
<!-- フォントのレンダリング方式を設定。none も slight も使える -->
<match target="font">
<edit mode="assign" name="hintstyle">
<const>hintslight</const>
</edit>
</match>
<match target="font">
<edit mode="assign" name="antialias">
<bool>true</bool>
</edit>
</match>
<!-- Emoji フォント専用の設定。表示できない問題を防ぐため。emoji フォントは none レンダリングを使えない -->
<match target="font">
<test name="family" qual="any">
<string>Noto Color Emoji</string>
</test>
<edit name="rgba" mode="assign">
<const>none</const>
</edit>
<edit name="embolden" mode="assign">
<bool>false</bool>
</edit>
<edit mode="assign" name="lcdfilter">
<const>lcddefault</const>
</edit>
<edit name="scalable" mode="assign">
<bool>true</bool>
</edit>
<edit name="embeddedbitmap" mode="assign">
<bool>true</bool>
</edit>
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
<edit name="hintstyle" mode="assign">
<const>hintslight</const>
</edit>
</match>
<!-- Default system-ui fonts -->
<match target="pattern">
<test name="family">
<string>system-ui</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>sans-serif</string>
</edit>
</match>
<!-- デフォルト emoji フォント。 -->
<match target="pattern">
<test name="family" qual="any">
<string>emoji</string>
</test>
<edit name="family" mode="prepend" binding="same">
<string>Noto Color Emoji</string>
</edit>
</match>
<!-- Apple Color Emoji フォントを置き換え。 -->
<match target="pattern">
<test name="family" qual="any">
<string>Apple Color Emoji</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>Noto Sans</string>
</edit>
</match>
<!-- Apple Color Emoji フォントを置き換え。 -->
<match target="pattern">
<test name="family" qual="any">
<string>SF Pro Icons</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>Noto Color Emoji</string>
</edit>
</match>
<!-- Apple フォントを置き換え。 -->
<match target="pattern">
<test name="family" qual="any">
<string>PingFang SC</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>Noto Sans CJK SC</string>
</edit>
</match>
<!-- Windows フォントを置き換え。 -->
<match target="pattern">
<test name="family" qual="any">
<string>Microsoft Yahei</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>Noto Sans CJK SC</string>
</edit>
</match>
<!-- MS フォントを置き換え。 -->
<match target="pattern">
<test name="family" qual="any">
<string>arial</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>Noto Sans</string>
</edit>
</match>
<!-- Appleフォントを置き換え。 -->
<match target="pattern">
<test name="family" qual="any">
<string>SF Pro</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>Noto Sans</string>
</edit>
</match>
<!-- Map fonts that are commonly used by web pages to our preferred fonts -->
<match target="pattern">
<test qual="any" name="family"><string>Liberation Sans</string></test>
<edit name="family" mode="assign" binding="same"><string>sans-serif</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>Tahoma</string></test>
<edit name="family" mode="assign" binding="same"><string>sans-serif</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>Arial</string></test>
<edit name="family" mode="assign" binding="same"><string>sans-serif</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>Liberation Mono</string></test>
<edit name="family" mode="assign" binding="same"><string>monospace</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>Droid Sans Mono</string></test>
<edit name="family" mode="assign" binding="same"><string>sans-serif</string></edit>
</match>
<!-- Default sans-serif fonts-->
<match target="pattern">
<test name="family">
<string>sans-serif</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>Noto Sans CJK SC</string>
<string>Noto Sans</string>
<string>Noto Color Emoji</string>
</edit>
</match>
<!-- Default serif fonts-->
<match target="pattern">
<test name="family">
<string>serif</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>Noto Serif CJK SC</string>
<string>Noto Serif</string>
<string>Noto Color Emoji</string>
</edit>
</match>
<!-- Default monospace fonts-->
<match target="pattern">
<test name="family">
<string>monospace</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>Noto Sans Mono</string>
<string>Noto Sans Mono CJK SC</string>
<string>Noto Color Emoji</string>
</edit>
</match>
<!-- Default font for the zh_CN locale (no fc-match pattern) -->
<match target="pattern">
<test name="lang" compare="contains">
<string>en</string>
</test>
<test name="family" compare="contains">
<string>Noto Sans CJK SC</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<!-- <string>HarmonyOS Sans SC</string>-->
<string>Noto Sans CJK SC</string>
<string>Noto Sans</string>
<string>Noto Color Emoji</string>
</edit>
</match>
<match target="pattern">
<test name="lang" compare="contains">
<string>en</string>
</test>
<test name="family" compare="contains">
<string>Noto Serif CJK SC</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>Noto Serif CJK SC</string>
<string>Noto Serif</string>
<string>Noto Color Emoji</string>
</edit>
</match>
<match target="pattern">
<test name="lang">
<string>zh-CN</string>
</test>
<test name="family">
<string>Noto Sans CJK SC</string>
</test>
</match>
<match target="pattern">
<test name="lang">
<string>zh-CN</string>
</test>
<test name="family">
<string>Noto Serif CJK SC</string>
</test>
</match>
<match target="pattern">
<test name="lang">
<string>zh-CN</string>
</test>
<test name="family">
<string>Noto Sans Mono CJK SC</string>
</test>
</match>
<match target="pattern">
<test name="lang">
<string>zh-HK</string>
</test>
<test name="family">
<string>Noto Sans CJK SC</string>
</test>
<edit name="family" binding="strong">
<string>Noto Sans CJK HK</string>
</edit>
</match>
<match target="pattern">
<test name="lang">
<string>zh-HK</string>
</test>
<test name="family">
<string>Noto Serif CJK SC</string>
</test>
<edit name="family" binding="strong">
<!-- not have HK -->
<string>Noto Serif CJK TC</string>
</edit>
</match>
<match target="pattern">
<test name="lang">
<string>zh-HK</string>
</test>
<test name="family">
<string>Noto Sans Mono CJK SC</string>
</test>
<edit name="family" binding="strong">
<string>Noto Sans Mono CJK HK</string>
</edit>
</match>
<match target="pattern">
<test name="lang">
<string>zh-TW</string>
</test>
<test name="family">
<string>Noto Sans CJK SC</string>
</test>
<edit name="family" binding="strong">
<string>Noto Sans CJK TC</string>
</edit>
</match>
<match target="pattern">
<test name="lang">
<string>zh-TW</string>
</test>
<test name="family">
<string>Noto Serif CJK SC</string>
</test>
<edit name="family" binding="strong">
<string>Noto Serif CJK TC</string>
</edit>
</match>
<match target="pattern">
<test name="lang">
<string>zh-TW</string>
</test>
<test name="family">
<string>Noto Sans Mono CJK SC</string>
</test>
<edit name="family" binding="strong">
<string>Noto Sans Mono CJK TC</string>
</edit>
</match>
<match target="pattern">
<test name="lang">
<string>ja</string>
</test>
<test name="family">
<string>Noto Sans CJK SC</string>
</test>
<edit name="family" binding="strong">
<string>Noto Sans CJK JP</string>
</edit>
</match>
<match target="pattern">
<test name="lang">
<string>ja</string>
</test>
<test name="family">
<string>Noto Serif CJK SC</string>
</test>
<edit name="family" binding="strong">
<string>Noto Serif CJK JP</string>
</edit>
</match>
<match target="pattern">
<test name="lang">
<string>ja</string>
</test>
<test name="family">
<string>Noto Sans Mono CJK SC</string>
</test>
<edit name="family" binding="strong">
<string>Noto Sans Mono CJK JP</string>
</edit>
</match>
<match target="pattern">
<test name="lang">
<string>ko</string>
</test>
<test name="family">
<string>Noto Sans CJK SC</string>
</test>
<edit name="family" binding="strong">
<string>Noto Sans CJK KR</string>
</edit>
</match>
<match target="pattern">
<test name="lang">
<string>ko</string>
</test>
<test name="family">
<string>Noto Serif CJK SC</string>
</test>
<edit name="family" binding="strong">
<string>Noto Serif CJK KR</string>
</edit>
</match>
<match target="pattern">
<test name="lang">
<string>ko</string>
</test>
<test name="family">
<string>Noto Sans Mono CJK SC</string>
</test>
<edit name="family" binding="strong">
<string>Noto Sans Mono CJK KR</string>
</edit>
</match>
<!-- Fallback fonts preference order -->
<alias>
<family>sans-serif</family>
<prefer>
<family>Noto Sans</family>
<family>Noto Sans CJK SC</family>
<family>Noto Sans CJK TC</family>
<family>Noto Sans CJK JP</family>
<family>Noto Sans CJK KR</family>
<family>Noto Color Emoji</family>
<family>Noto Emoji</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>Noto Serif</family>
<family>Noto Serif CJK SC</family>
<family>Noto Serif CJK TC</family>
<family>Noto Serif CJK JP</family>
<family>Noto Serif CJK KR</family>
<family>Noto Color Emoji</family>
<family>Noto Emoji</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Noto Sans Mono CJK SC</family>
<family>Noto Sans Mono CJK HK</family>
<family>Noto Sans Mono CJK JP</family>
<family>Noto Sans Mono CJK KR</family>
<family>Noto Color Emoji</family>
<family>Noto Emoji</family>
</prefer>
</alias>
<selectfont>
<rejectfont>
<pattern>
<patelt name="family" >
<!-- This font is causing problem with GitHub -->
<string>Nimbus Sans</string>
</patelt>
</pattern>
</rejectfont>
</selectfont>
</fontconfig>
Microsoft 系のよくあるフォントもインストールしていい。一部のサイトの css が今でもこのセットに合わせて書かれているからだ:
sudo dnf install curl cabextract xorg-x11-font-utils fontconfig -y
sudo rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
もちろん Linux 系でよくある「文泉驛」シリーズのフォントも。一部のサイトには文泉驛シリーズ向けの設定がある:
sudo dnf install "wqy-*"
あと是非「Microsoft YaHei」フォントをコピーしてシステムにインストールすることを勧める。ttf を開いてインストールを選ぶだけでいい。自分が提供した fontconfig には対応する置換設定を書いてあるが、多くの Web ページがこのフォントをハードコードしていて、一部の APP は強制的に選択する(そう、WPS のことだ)。インストールしないと、このフォントが見つからずに豆腐や文字化けが出る。
最適化:Flatpak ソフトのフォントレンダリング
フォントレンダリングを正しく設定しても、Flatpak でインストールしたソフトのフォントは依然として醜く、フォントレンダリングが正しく適用されていないように見えることに気づく。
次のコマンドを実行してみるといい
flatpak --user override --filesystem=~/.config/fontconfig:ro
flatpak プログラムに自分の fontconfig 設定を読ませる。
もちろんこれが効かないなら、対応する flatpak プログラムの設定パスを開くしかない:
~/.var/app/[プログラム名]/config
中に fontconfig ディレクトリを作り、先ほどの ~/.config/fontconfig/fonts.conf ファイルをコピーしてから、flatpak app を再起動する。
最適化:非整数スケーリングを無効化して性能向上
Fedora 42 のこのバージョンから、システムはデフォルトで「非整数スケーリング」機能を有効にし、Xwayland のスケーリングを独立制御できるようにした。Gnome が 125% や 150% などのスケーリングができないという古い問題を解決しただけでなく、スケーリングを有効にしても一部の従来の Xwayland プログラムがぼやけないようになった。
確かに良さそうだが、新たな問題も生む。Gnome の非整数スケーリングは「まず超解像度で拡大してから縮小する」ことで実現している。たとえば 150% スケーリングなら、UI をまず 300% に拡大し、それを半分に縮小して 150% にする。そのため性能への要求が高くなる。PC の構成が普通で、特に GPU がしょぼく、とんでもないクローズドソースや専用 GPU ドライバーと組み合わさると、システムを操作するときに「カクカク」した感覚が出る。
なので、画面解像度が標準的(たとえば 14 インチ 1080p、あるいは 200% で完璧にスケーリングできる)で、システム UI も「スケーリングなし」で普通に使えるなら、この機能を無効化して高い性能と滑らかな UI 応答速度を得ることを勧める。
画面がどうしてもスケーリング必須なら、なおさらフォントスケーリングを使うことを勧める。この方式のスケーリングではない。性能への影響は確実だからだ。
無効化の方法は簡単:
gsettings set org.gnome.mutter experimental-features "[]"
同時に gdm 画面のスケーリングも無効化して、ログイン後に何度も画面が暗くなるのを避けられる
sudo -u gdm dbus-launch gsettings set org.gnome.mutter experimental-features "[]"
コメントは中国語の本家サイトで受け付けています。このミラーは閲覧専用です。