- 現在のdrop-inを確認
まず二重設定を避けるため、確認します。
find ~/.config/systemd/user/org.gnome.Shell@ubuntu.service.d \
-maxdepth 1 -type f -print -exec cat {} \; 2>/dev/null
何も表示されなければ、まだユーザー側drop-inはありません。
- 4K仮想画面の設定を作成
mkdir -p ~/.config/systemd/user/org.gnome.Shell@ubuntu.service.d
以下をそのまま実行します。
cat > ~/.config/systemd/user/org.gnome.Shell@ubuntu.service.d/virtual-monitor.conf <<'EOF'
[Service]
ExecStart=
ExecStart=/usr/bin/gnome-shell --mode=ubuntu --virtual-monitor 3840x2160
EOF
ExecStart=の空行は、元の起動コマンドをいったん消すために必要です。
Ubuntu 26.04で公開されている構成例でも、systemd drop-inで既存のExecStartを消してから、gnome-shell --virtual-monitorを指定しています。
- systemdに読み込ませる
systemctl --user daemon-reload
警告が消えたことを確認します。
systemctl --user cat org.gnome.Shell@ubuntu.service
末尾に次が表示されるはずです。
# ~/.config/systemd/user/org.gnome.Shell@ubuntu.service.d/virtual-monitor.conf
[Service]
ExecStart=
ExecStart=/usr/bin/gnome-shell --mode=ubuntu --virtual-monitor 3840x2160
最終的にsystemdが認識した起動コマンドも確認します。
systemctl --user show org.gnome.Shell@ubuntu.service \
--property=ExecStart --no-pager
出力内に次があれば設定成功です。
--mode=ubuntu --virtual-monitor 3840x2160
- ログアウトして再ログイン
WaylandではGNOME Shell/Mutterが画面サーバーそのものなので、現在の端末からサービスを再起動しないでください。
特にこのunitには、
RefuseManualStop=on
Restart=no
と設定されています。したがって、次は実行しません。
systemctl --user restart org.gnome.Shell@ubuntu.service
作業中のファイルを保存して、GUIからログアウトして再ログインしてください。再起動でも構いません。
- 再ログイン後に確認
実際の起動引数:
pid=$(pgrep -n gnome-shell)
tr '\0' ' ' < "/proc/$pid/cmdline"
echo
期待値:
/usr/bin/gnome-shell --mode=ubuntu --virtual-monitor 3840x2160
続いて、
設定 → ディスプレイ
を開き、4K仮想画面が追加されているか確認します。
ログも確認できます。
journalctl --user -b \
-u org.gnome.Shell@ubuntu.service \
--no-pager | tail -n 100
元に戻す方法
画面構成がおかしくなった場合は、TTYへ移動します。
Ctrl + Alt + F3
ログインして以下を実行します。
rm ~/.config/systemd/user/org.gnome.Shell@ubuntu.service.d/virtual-monitor.conf
systemctl --user daemon-reload
reboot
なお、最初は安全確認として4KではなくFHDで試すなら、設定中の解像度だけを次に変えます。
ExecStart=/usr/bin/gnome-shell --mode=ubuntu --virtual-monitor 1920x1080
古いPCの場合、まずFHDで仮想画面の生成を確認し、成功後に3840x2160へ上げる手順も現実的です。