KDEのデスクトップ環境がぶっ壊れた on Arch Linux
環境
症状
ログイン時に
$ exec startx /usr/bin/startkde
でGUI環境を起動する.
起動直後,数秒すると壁紙が表示されなくなり,デスクトップが真っ暗になる.
特にKDE plasma環境をアップデートしたわけでもなく,競合しそうなパッケージを導入したわけでもない.
できること
- Alt+Space によるKrunnerを通じてGUIアプリケーションの実行
- GUIアプリケーションの操作
- Alt+Tab によるカレントウィンドウの切替
- ショートカットキーによる仮想デスクトップの切替 (どの仮想デスクトップも真っ暗)
- KDE環境を切ってCUI上での操作
できないこと
- メニューバーの表示と操作
- windowキーによるメニューの表示
- デスクトップの表示 (壁紙の表示,ウィジェットの表示)
- デスクトップ上での右クリック
原因
plasmashell実行時にエラーが生じて処理がストップしてしまう.
(plasmashell実行時に一瞬だけ壁紙が表示)
$ plasmashell kf5.kcoreaddons.desktopparser: Unable to find service type for service "Plasma/PopupApplet" listed in "/home/takahiro/.local/share/plasma/plasmoids/rss_indicator//metadata.desktop" kf5.kcoreaddons.desktopparser: Unable to find service type for service "Plasma/PopupApplet" listed in "/home/takahiro/.local/share/plasma/plasmoids/rss_indicator/metadata.desktop" kf5.kcoreaddons.desktopparser: Unable to find service type for service "Plasma/PopupApplet" listed in "/home/takahiro/.local/share/plasma/plasmoids/rss_indicator/metadata.desktop" kf5.kcoreaddons.desktopparser: Unable to find service type for service "Plasma/PopupApplet" listed in "/home/takahiro/.local/share/plasma/plasmoids/rss_indicator/metadata.desktop" kf5.kcoreaddons.desktopparser: Unable to find service type for service "Plasma/PopupApplet" listed in "/home/takahiro/.local/share/plasma/plasmoids/rss_indicator//metadata.desktop" kf5.kcoreaddons.desktopparser: Unable to find service type for service "Plasma/PopupApplet" listed in "/home/takahiro/.local/share/plasma/plasmoids/rss_indicator/metadata.desktop" kf5.kcoreaddons.desktopparser: Unable to find service type for service "Plasma/PopupApplet" listed in "/home/takahiro/.local/share/plasma/plasmoids/rss_indicator/metadata.desktop" file:///home/takahiro/.local/share/plasma/plasmoids/com.github.zren.todolist/contents/ui/NoteItem.qml:324: TypeError: Cannot read property 'label' of undefined qml: main.isDesktopContainment false qml: TodoItemDelegate 1511965848725 file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:365: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:364: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:363: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:362: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/TextArea.qml:905: TypeError: Cannot read property '__selectionHandle' of null file:///usr/lib/qt/qml/QtQuick/Controls/TextArea.qml:941: TypeError: Cannot read property '__cursorHandle' of null qml: TodoItemDelegate 1511965848915 file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:365: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:364: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:363: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:362: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/TextArea.qml:905: TypeError: Cannot read property '__selectionHandle' of null file:///usr/lib/qt/qml/QtQuick/Controls/TextArea.qml:941: TypeError: Cannot read property '__cursorHandle' of null file:///home/takahiro/.local/share/plasma/plasmoids/com.github.zren.todolist/contents/ui/TodoItemDelegate.qml:90:5: QML RowLayout: Binding loop detected for property "height" qml: TodoItemDelegate 1511965848925 No metadata file in the package, expected it at: "/home/takahiro/Pictures/wallpaper/" No metadata file in the package, expected it at: "/home/takahiro/Pictures/wallpaper/" No metadata file in the package, expected it at: "/home/takahiro/Pictures/wallpaper/" trying to show an empty dialog file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:147:19: QML Loader: Binding loop detected for property "height" file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:147:19: QML Loader: Binding loop detected for property "height" No metadata file in the package, expected it at: "/home/takahiro/Pictures/wallpaper/" No metadata file in the package, expected it at: "/home/takahiro/Pictures/wallpaper/" No metadata file in the package, expected it at: "/home/takahiro/Pictures/wallpaper/" trying to show an empty dialog file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:147:19: QML Loader: Binding loop detected for property "height" file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:147:19: QML Loader: Binding loop detected for property "height" No metadata file in the package, expected it at: "/home/takahiro/Pictures/wallpaper/" No metadata file in the package, expected it at: "/home/takahiro/Pictures/wallpaper/" No metadata file in the package, expected it at: "/home/takahiro/Pictures/wallpaper/" trying to show an empty dialog file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:147:19: QML Loader: Binding loop detected for property "height" file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:147:19: QML Loader: Binding loop detected for property "height" file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/FolderItemDelegate.qml:288:17: QML Text: Binding loop detected for property "width" file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/FolderItemDelegate.qml:288:17: QML Text: Binding loop detected for property "width" file:///usr/lib/qt/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property 'width' of null Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString) file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:365: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:364: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:363: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:362: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:365: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:364: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:363: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:362: TypeError: Cannot read property 'padding' of null kf5.kcoreaddons.desktopparser: Unable to find service type for service "Plasma/PopupApplet" listed in "/home/takahiro/.local/share/plasma/plasmoids/rss_indicator//metadata.desktop" kf5.kcoreaddons.desktopparser: Unable to find service type for service "Plasma/PopupApplet" listed in "/home/takahiro/.local/share/plasma/plasmoids/rss_indicator/metadata.desktop" kf5.kcoreaddons.desktopparser: Unable to find service type for service "Plasma/PopupApplet" listed in "/home/takahiro/.local/share/plasma/plasmoids/rss_indicator/metadata.desktop" Trying to use rootObject before initialization is completed, whilst using setInitializationDelayed. Forcing completion "syntax error, unexpected MONTH" "syntax error, unexpected MONTH" Loading Calendar plugin HolidaysEventsPlugin(0x5588c39120c0) Both point size and pixel size set. Using pixel size. Both point size and pixel size set. Using pixel size. Both point size and pixel size set. Using pixel size. trying to show an empty dialog trying to show an empty dialog trying to show an empty dialog trying to show an empty dialog Both point size and pixel size set. Using pixel size. trying to show an empty dialog trying to show an empty dialog file:///usr/lib/qt/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property 'width' of null file:///usr/lib/qt/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property 'width' of null trying to show an empty dialog file:///usr/lib/qt/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property 'width' of null file:///usr/lib/qt/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property 'width' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:365: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:364: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:363: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:362: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property 'width' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:365: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:364: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:363: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:362: TypeError: Cannot read property 'padding' of null error activating kdeconnectd: QDBusError("", "") error activating kdeconnectd: QDBusError("", "") Trying to use rootObject before initialization is completed, whilst using setInitializationDelayed. Forcing completion file:///usr/lib/qt/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property 'width' of null file:///usr/lib/qt/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property 'width' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:365: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:364: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:363: TypeError: Cannot read property 'padding' of null file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:362: TypeError: Cannot read property 'padding' of null libkcups: Create-Printer-Subscriptions last error: 0 successful-ok libkcups: Get-Jobs last error: 0 successful-ok libkcups: Get-Jobs last error: 0 successful-ok couldn't load "/usr/lib/qt/plugins/discover-notifier/DiscoverPackageKitNotifier.so" because "Cannot load library /usr/lib/qt/plugins/discover-notifier/DiscoverPackageKitNotifier.so: (libpackagekitqt5.so.0: cannot open shared object file: No such file or directory)" couldn't load "/usr/lib/qt/plugins/discover-notifier/FlatpakNotifier.so" because "Cannot load library /usr/lib/qt/plugins/discover-notifier/FlatpakNotifier.so: (libflatpak.so.0: cannot open shared object file: No such file or directory)" couldn't find any notifier backend ("/usr/lib/qt/plugins") Plasma Shell startup completed file:///home/takahiro/.local/share/plasma/plasmoids/rss_indicator/contents/ui/RssSourceDelegate.qml:32:9: QML Image: Error decoding: https://dot.kde.org/favicon.ico: Unsupported image format libkcups: 6 KCrash: Attempting to start /usr/bin/plasmashell from kdeinit KCrash: Application 'plasmashell' crashing... KCrash: Attempting to start /usr/lib/drkonqi from kdeinit QSocketNotifier: Invalid socket 8 and type 'Read', disabling... QSocketNotifier: Invalid socket 11 and type 'Read', disabling... QSocketNotifier: Invalid socket 35 and type 'Read', disabling... QSocketNotifier: Invalid socket 9 and type 'Read', disabling... QSocketNotifier: Invalid socket 22 and type 'Read', disabling... QSocketNotifier: Invalid socket 36 and type 'Read', disabling... QSocketNotifier: Invalid socket 38 and type 'Read', disabling... Unable to start Dr. Konqi Re-raising signal for core dump handling.
org.cups.cupsdとplasmashellの間でコンフリクトが起きているらしい.
対策
org.cups.cupsdをdisableにすればplasmashellが動くようになるみたいだが,そうするとプリンタが使えなくなってしまう.
同じバグを議論する326289 – plasma-desktop crashed after configuring printer applet [JobModel::updateJob]の中で,デスクトップウィジェットからorg.kde.printerのエントリを消したら解決したという投稿があった.
"$HOME/.config/plasma-org.kde.plasma.desktop-appletsrc"にウィジェットの定義がされているが,書き換えてもシステムに上書きされるため,こちらのファイルは直接編集できない.
そこでデーモンを一度停め,plasmashellを実行することでウィジェットを触ることができる状態にする.
$ sudo systemctl stop org.cups.cupsd
$ plasmashell
次に下の画像のようにウィジェットにおけるPrinterの監視を無効にする.
最後にデーモンを動作するようにして再起動する.
$ sudo systemctl enable org.cups.cupsd
$ reboot
以上でデスクトップを正常に稼働しながらプリンタも利用できるようになるはず.
参考記事
[1] 326289 – plasma-desktop crashed after configuring printer applet [JobModel::updateJob]