CHUWI MiniBook X(10.51 inch, 1200*1920px)のように画素密度の高い画面ではスケーリング値を125%にすると見やすくなるとともにタッチスクリーン操作がしやすくなります。出荷時のWindows 11は150%になっています。これをLinux でもやってみましょう。

環境

  • Ubuntu 23.10 / GNOME Shell 45.1
  • Arch Linux / GNOME Shell 45.1
  • CHUWI MiniBook X N100
    画素密度: 215ppi
    画素ピッチ: 0.118mm
    総画素数: 2,304,000ピクセル
    スペック: 10.51インチ(1920×1200)

構築

Waylandで分数スケーリング(Fractional Scaling)の有効化

  • Ubuntuではデフォルトで有効になっています。
  • Arch Linuxで分数スケーリングを有効にするには以下を実行します。
    gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
    再ログインすると設定画面のディスプレイからスケーリング値(100%, 125%, 150%, 175%, 200%, 225%)を選択できるようになります。

FirefoxをWaylandモードで起動

  • Ubuntu のFirefox はWaylandモードで起動します。
  • Arch Linux でFirefox をWaylandモードで起動するには以下の設定をします。
    ~/.bash_profile
    if [ "$XDG_SESSION_TYPE" = "wayland" ]; then
    export MOZ_ENABLE_WAYLAND=1
    fi
  • Firefoxの動作モードを確認するにはabout:supportを開いてウィンドウプロトコルの値を確認します。
  • FirefoxはWayland環境において動作上の問題がなさそうです。

Google ChromeをWayland モードで起動

  • Linux でスケーリング値を125%にするとGoogle Chrome の文字がぼやけてしまいます。これはGoogle CromeがWaylandモードではなくXWaylandモードで起動されているためです。以下のコマンドによりWaylandモードで起動すると文字がくっきりと描画されます。
    google-chrome-stable --enable-features=UseOzonePlatform --ozone-platform=wayland
  • Wayland モードはGoogle Chromeの画面からでも有効にできます。chrome:flagsを開いて、Preferred Ozone platformwaylandまたはAutoを指定します。

Google ChromeをWayland モードで起動した際のIME入力

  • Waylandモードで起動した場合、text inputプロトコルの実装仕様バージョンの差異に起因してIME入力ができなくなります。IMEを有効にするには--gtk-version=4を指定します。chrome:flags画面から指定できないので以下のコマンドで起動します。
    google-chrome-stable --enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4
  • Arch Linux の場合は以下のファイルに記述することで起動時のフラグを指定できます。
    ~/.config/chrome-flags.conf
    # --enable-features=UseOzonePlatform
    # --ozone-platform=wayland
    --gtk-version=4
  • Ubuntu の場合はローカルにGTK4用の.desktopファイルを作ります。
    cp /usr/share/applications/google-chrome.desktop ~/.local/share/applications/
    ~/.local/share/applications/google-chrome.desktop
    [Desktop Entry]
    Name=Google Chrome GTK4
    Exec=/usr/bin/google-chrome-stable %U --gtk-version=4

    [Desktop Action new-window]
    Exec=/usr/bin/google-chrome-stable --gtk-version=4

    [Desktop Action new-private-window]
    Exec=/usr/bin/google-chrome-stable --incognito --gtk-version=4

Google Chrome のIMEポップアップの位置修正

  • GTKバージョン指定でIMEのポップアップは表示されますが、IMEのポップアップの表示位置がずれてしまいます。これを修正するにはGNOME Shellの拡張機能であるInput Method Panelを導入します。
    https://extensions.gnome.org/extension/261/kimpanel/

Visual Studio CodeのWaylandモード起動

  • Visual Studio Code(Electronアプリケーション)をWaylandモードで起動するには--enable-features=WaylandWindowDecorations--ozone-platform-hint=autoを指定します。
    code --enable-features=WaylandWindowDecorations --ozone-platform-hint=auto
  • Arch Linux であれば以下のファイルでフラグを指定できます。
    ~/.config/code-flags.conf
    --enable-features=WaylandWindowDecorations
    --ozone-platform-hint=auto
  • ただし、Electronの実装によりGTK4モードにすることはできないためIME入力できません。引き継き調査が必要です。

Code Server

  • Code Server(Visual Studio CodeのWeb版)はブラウザがWaylandモードとGTK4モードに対応していればよいので問題ありません。PWA化することによりアプリケーションとして起動できます。