仕事場で使っている Ubuntu デスクトップ機には、「 Window manager warning 」がログを埋め尽くし、 GNOME Shell がヘロヘロになる、と言う長年の持病が存在します。決定的な解決策は見つかりませんが、現実的な改善策をいくつか試してみます。
Window manager warning
Lenovo ThinkCentreに廉価ビデオカードNvidia GT218を載せ、デュアルモニタで仕事機メインとして使っているUbuntu 18.04デスクトップには長年の持病があり、起動ログイン後から次のような警告メッセージがログを埋め尽くして、レスポンスが悪くなります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ tail -f /var/log/syslog Mar 14 16:36:51 WS-0300u org.gnome.Shell.desktop[2174]: Window manager warning: Overwriting existing binding of keysym ff09 with keysym ff09 (keycode 17). Mar 14 16:36:51 WS-0300u org.gnome.Shell.desktop[2174]: Window manager warning: Overwriting existing binding of keysym 73 with keysym 73 (keycode 27). Mar 14 16:36:51 WS-0300u org.gnome.Shell.desktop[2174]: Window manager warning: Overwriting existing binding of keysym ff09 with keysym ff09 (keycode 17). Mar 14 16:36:52 WS-0300u org.gnome.Shell.desktop[2174]: Window manager warning: Overwriting existing binding of keysym 73 with keysym 73 (keycode 27). Mar 14 16:36:52 WS-0300u org.gnome.Shell.desktop[2174]: Window manager warning: Overwriting existing binding of keysym ff09 with keysym ff09 (keycode 17). Mar 14 16:36:52 WS-0300u org.gnome.Shell.desktop[2174]: Window manager warning: Overwriting existing binding of keysym 73 with keysym 73 (keycode 27). Mar 14 16:36:52 WS-0300u org.gnome.Shell.desktop[2174]: Window manager warning: Overwriting existing binding of keysym 3d with keysym 2d (keycode 14). Mar 14 16:36:52 WS-0300u org.gnome.Shell.desktop[2174]: Window manager warning: Overwriting existing binding of keysym ff09 with keysym ff09 (keycode 17). Mar 14 16:36:53 WS-0300u org.gnome.Shell.desktop[2174]: Window manager warning: Overwriting existing binding of keysym 73 with keysym 73 (keycode 27). Mar 14 16:36:53 WS-0300u org.gnome.Shell.desktop[2174]: Window manager warning: Overwriting existing binding of keysym ff09 with keysym ff09 (keycode 17). Mar 14 16:37:05 WS-0300u org.gnome.Shell.desktop[2174]: Window manager warning: Overwriting existing binding of keysym 73 with keysym 73 (keycode 27). Mar 14 16:37:05 WS-0300u org.gnome.Shell.desktop[2174]: Window manager warning: Overwriting existing binding of keysym 3d with keysym 2d (keycode 14). Mar 14 16:37:05 WS-0300u org.gnome.Shell.desktop[2174]: Window manager warning: Overwriting existing binding of keysym ff09 with keysym ff09 (keycode 17). Mar 14 16:37:05 WS-0300u org.gnome.Shell.desktop[2174]: Window manager warning: Overwriting existing binding of keysym 73 with keysym 73 (keycode 27). Mar 14 16:37:05 WS-0300u org.gnome.Shell.desktop[2174]: Window manager warning: Overwriting existing binding of keysym ff09 with keysym ff09 (keycode 17). |
グラフィック関連のハードウェアとシステムの概要な次の通りで、ドライバはnouveauを使用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
$ uname -a Linux WS-0300u 4.15.0-52-generic #56-Ubuntu SMP Tue Jun 4 22:49:08 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.6 LTS Release: 18.04 Codename: bionic $ gnome-shell --version GNOME Shell 3.28.4 $ sudo lshw -C display *-display 詳細: VGA compatible controller 製品: GT218 [GeForce G210] ベンダー: NVIDIA Corporation 物理ID: 0 バス情報: pci@0000:01:00.0 バージョン: a2 幅: 64 bits クロック: 33MHz 性能: pm msi pciexpress vga_controller bus_master cap_list rom 設定: driver=nouveau latency=0 リソース: irq:28 メモリー:fa000000-faffffff メモリー:c0000000-cfffffff メモリー:d0000000-d1ffffff IOポート:e000(サイズ=128) メモリー:c0000-dffff $ modinfo --version kmod version 24 -XZ -ZLIB -EXPERIMENTAL $ lspci -k | grep -A 2 -i "VGA" 01:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce G210] (rev a2) Kernel driver in use: nouveau Kernel modules: nvidiafb, nouveau |
暫定対策はGNOME Shellのリセット
発作のように止まらない警告を止めるために、いつも次の要領でGNOME Shellをリセットしています。
Alt+F2 キーでプロンプトを出して「 r 」と入力。

図2.Alt+F2でプロンプト呼び出し
すると一瞬「再起動中」と表示されて画面がぼやけた後、ほどなくGNOME Shellの再起動が終わると正常に戻ります。

図3.Gnomeシェル再起動中
ログイン後に自動リセット
この作業をPC再起動の度に手動で行うのも疲れるので、自動化する手法をずっと探していたのですが、ようやくこちらのフォーラムに出会いました(Great Tnx!!)。
それは上項で暫定対策したキー操作を xdotool というツールが再現してくれるものです。
1 |
$ xdotool key "Alt+F2+r" && sleep 0.5 && xdotool key "Return" |
これをログイン後しばらくしてから自動実行する仕組みには、「自動起動するアプリケーションの設定」(gnome-session-properties)を使います。アプリケーションの検索で「session」と打ち始めるとピックアップされてくるはずです。
GNOME Shellをリセットするスクリプトファイル作り、それを自動起動するプログラムとして次のように登録します。
この設定は ~/.config/autostart/ へこのように格納されています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
$ ls -l ~/.config/autostart/ -rw-rw-r-- 1 user user 309 Mar 23 11:19 dropbox.desktop -rw-rw-r-- 1 user user 125 Jun 8 2020 ignore-lid-switch-tweak.desktop -rw-rw-r-- 1 user user 374 Jan 26 2018 my-weather-indicator-autostart.desktop -rw-rw-r-- 1 user user 302 Sep 3 2019 psensor.desktop -rw-rw-r-- 1 user user 218 Jan 24 2018 remmina-applet.desktop -rw-rw-r-- 1 user user 349 Mar 23 10:45 reset_gshell.sh.desktop -rw-rw-r-- 1 user user 222 Jan 8 2020 synergy.desktop $ cat ~/.config/autostart/reset_gshell.sh.desktop [Desktop Entry] Type=Application Exec=/home/user/reset_gshell.sh Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name[ja_JP]=Reset Gnome SHELL Name=Reset Gnome SHELL Comment[ja_JP]=Reset Gnome SHELL after login to avoid continuous Window Manager Warning. Comment=Reset Gnome SHELL after login to avoid continuous Window Manager Warning. |
そして肝心の実行スクリプトはこちら。ログイン後ある程度(最低5分以上)経過していないと、リセットしてもまたしばらくすると警告メッセージが再発する傾向にあることが分かったので、効果を確かめながら sleep の待機時間を調整しました。
1 2 3 4 5 6 7 8 9 |
#!/bin/bash # RESET GNOME-SHELL to avoid Window Manager Warning... DISPLAY=:1 sleep 480 xdotool key "Alt+F2+r" sleep 1 xdotool key "Return" exit 0 |
もう1つのリセット方法
上項の自動実行について調べている際に見つけたのが、こちらの記事で紹介されているGNOME Shellリセットコマンドです。
1 |
$ busctl --user call org.gnome.Shell /org/gnome/Shell org.gnome.Shell Eval s 'Meta.restart("Restarting…")' |
先ほどのバッチファイルの中身をこの1行に置き換えてもリセット可能なのはもちろん、ssh経由でリモートから入っても、そのシステムのGNONE Shellをリセットすることが出来るので、VNCなどによる遠隔操作時に重くなってきた場合に役に立ちそうです(上述の xdotool は今いるセッションでのみ有効なのでsshでは使えず)。
dconf-editorでdash-to-dockのホットキーを無効に
最後に上述のフォーラムの別の回答で提示されていた、dash-to-dockのホットキーを無効にする方法も試してみます。
dconf-editorを開いて次のパスを辿り、
1 |
/org/gnome/shell/extensions/dash-to-dock/ |
hotkeys で始まる3つのパラメータを全てオフにするだけ。効果のほどは正直感じられないのですが、使わない機能なので害にもなりません。
ここまで対策することで警告メッセージもだいぶ減り、システムも落ち着きました。例外としては、VMwareやKVMなど仮想マシンの画面を開いて操作している間に、多少「Window manager warning」が再発することぐらい。それもGNOME Shellが重くなったりすることは無いので十分許容範囲です。