Unity 7.4.5 をコンパイルして UI スケーリング問題を修正する
先日、北京のすごい人と飯を食って、Gnome Shell がいま現在クソかどうかという話になった…………
二人の結論は同じだった。Gnome Shell はクソである。
この「クソ」は「Gnome Shell そのもの」だけじゃなくて、どちらかというと「Gnome Shell のクソ開発者ども」を含めての話だ。

Gnome Shell は去年から Fractional Scaling、つまり非整数スケーリングをサポートすると言っていた。この機能は去年の時点でほぼできあがっていて、残りは最後の修正だけだった。当初は Gnome Shell 3.26 で出すと言っていたのに間に合わず、Gnome Shell 3.28 に先送りされた。しかも Gnome の開発者たちはブログで、自分たちの Gnome がどれほどすごいか、あらゆる機能があるか、Fractional Scaling もあるか、とドヤ顔で書いていた。
それから一年経った。Gnome Shell 3.28 Beta が出るというのに、Fractional Scaling の機能は影も形もない。
開発者がいないのか? まさか。
https://gitlab.gnome.org/GNOME/mutter/merge_requests/3 https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/5
一か月以上誰も Merge しない……Review もされない。開発者たちが何をしているのか分からない。
でも開発者たちは自分の Gnome Recipe を開発するのはすごく速い。まさに求めれば即応。なのに肝心の Feature は放ったらかし。
Gnome Shell がクソだと言えば、Bug を報告しろと言う。Bug を報告すれば、直す時間はないと言う。自分で Patch を書いて Merge Request を出せば、レビューもせず相手にしない……三四か月後にようやく相手にされたと思ったら、レビューして変数名が気に入らないと言う。
そういえば少し前に Deepin Linux のプロジェクトリーダーが Yahoo!知恵袋で「海外の Linux 開発者はユーザーをまったく相手にしていない」と書いて、高尚なオープンソース厨に蔑まれた。でも残念ながら、彼の言っていることは確かに事実だ。
今のところ、自分の要求を満たす Fractional Scaling があるデスクトップディストリビューションは Unity の Ubuntu だけ。ちなみに KDE にもあるが、モニターごとに違うスケーリングはサポートしていない。Wayland ならサポートしているが、1X と 2X しかない。
ところが最近、Ubuntu のアップデート後、この機能にも不具合が出た。
https://bugs.launchpad.net/ubuntu/+source/unity/+bug/1750273
要するに 1.5 倍スケーリングが強制的に 2x で表示される。半日調べたところ、この更新が関係していた。
https://code.launchpad.net/~azzar1/unity/round-gtk-scaling-to-closest-integer/+merge/313459
どうするか? 自分でコードをコンパイルして、このクソ問題を解決することにした。
sudo apt-get build-dep unity
bzr branch lp:unity/7.4
cd unity
次にディレクトリ内であの patch の変更を戻して再コンパイル。やる気があるなら debian/changelog の最上位バージョン番号を変えておくのを忘れずに。上書きされないように。
sudo dpkg-buildpackage -us -uc
最初は自分でコンパイルしてインストールすべきか考えたが、コンパイル・インストールの途中で Unity 自身の Python で書かれたクソインストール・テストスクリプトがエラーだらけになることが分かった。コンパイル・インストールなんてしたくない。パッケージ化したほうがよっぽど速い。

最後にビルドした deb をインストールして logout login、問題解決。コンパイルするなら Ubuntu 16.04 がいい。コードは 7.4 ブランチを取ること。7.5 は Ubuntu 17.10 以降向けだから。それに残念ながら Unity は 18.04 環境ではコンパイルに失敗する。GCC のバージョンが高すぎるのが原因らしい。ただ失敗するのは Test モジュールだけで、Test しなくても使える。この問題も誰かが見ているので、早く解決してほしい。

今日見たら Gnome Shell は Release Party まで開くらしい。新バージョンにこれといった新機能もなく、ただサボってやり過ごしただけのクソのどこが Party なのか。とりあえずどの DE が非整数スケーリングを提供するまでは、Unity 環境を使い続けることにする。
コメントは中国語の本家サイトで受け付けています。このミラーは閲覧専用です。