Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dropbox daemon errors under Sway #4185

Closed
Gastove opened this issue May 26, 2019 · 18 comments
Closed

Dropbox daemon errors under Sway #4185

Gastove opened this issue May 26, 2019 · 18 comments

Comments

@Gastove
Copy link

Gastove commented May 26, 2019

Hello!

I'm new to sway, but I'm finding it to be utterly fantastic. Thus far, I've only hit one challenge: a tiny red frowny-face at the corner of my screen any time the Dropbox daemon is running.

The daemon is, in fact, working -- as in, Dropbox is running, files are syncing. However, it appears to be erroring trying to draw icons. From Sway debug output, I see this:

2019-05-26 12:04:14 - [sway/desktop/transaction.c:280] Applying transaction 0xed51c0
2019-05-26 12:04:19 - [swaybar/tray/host.c:24] Registering Status Notifier Item ':1.68/org/ayatana/NotificationItem/dropbox_client_11006'
2019-05-26 12:04:19 - [swaybar/tray/item.c:127] :1.68/org/ayatana/NotificationItem/dropbox_client_11006 IconPixmap: No such property “IconPixmap”
2019-05-26 12:04:19 - [swaybar/tray/item.c:127] :1.68/org/ayatana/NotificationItem/dropbox_client_11006 AttentionIconPixmap: No such property “AttentionIconPixmap”
2019-05-26 12:04:19 - [swaybar/tray/item.c:127] :1.68/org/ayatana/NotificationItem/dropbox_client_11006 ItemIsMenu: No such property “ItemIsMenu”
2019-05-26 12:04:19 - [swaybar/tray/item.c:127] :1.68/org/ayatana/NotificationItem/dropbox_client_11006 IconPixmap: No such property “IconPixmap”

Looking at #3249, I had expected Dropbox would "just work." The icon does not appear at all, and that's fine with me -- I have other tools to learn about Dropbox's status, I just need it running.

I'm running Sway on Fedora 30, and building it myself from current master -- which means it's entirely possible I'm building it incorrectly.

I'd love advice on how to proceed. Have I built sway incorrectly? Is Dropbox just misbehaving? Is there any other detail I can provide to help debug? Please let me know!

Such details as I have right now:
Sway Version:

$ swaymsg -t get_version
sway version 1.1-rc1-15-ge92ac7d5 (May 25 2019, branch 'master')

Build configuration

The Meson build system
Version: 0.50.1
Source dir: /home/gastove/Code/open-source/sway
Build dir: /home/gastove/Code/open-source/sway/build
Build type: native build
Project name: sway
Project version: 1.0
Native C compiler: cc (gcc 9.1.1 "cc (GCC) 9.1.1 20190503 (Red Hat 9.1.1-1)")
Build machine cpu family: x86_64
Build machine cpu: x86_64
Dependency json-c found: YES (cached)
Dependency libpcre found: YES (cached)
Dependency wayland-server found: YES (cached)
Dependency wayland-client found: YES (cached)
Dependency wayland-cursor found: YES (cached)
Dependency wayland-egl found: YES (cached)
Dependency wayland-protocols found: YES (cached)
Dependency xkbcommon found: YES (cached)
Dependency cairo found: YES (cached)
Dependency pango found: YES (cached)
Dependency pangocairo found: YES (cached)
Dependency gdk-pixbuf-2.0 found: YES (cached)
Dependency pixman-1 found: YES (cached)
Dependency libevdev found: YES (cached)
Dependency libinput found: YES (cached)
Dependency libsystemd found: YES (cached)
Found pkg-config: /usr/bin/pkg-config (1.6.1)
Found CMake: /usr/bin/cmake (3.14.4)
Dependency libelogind found: NO (tried pkgconfig and cmake)
Dependency xcb found: YES (cached)
Library m found: YES
Library rt found: YES
Program git found: YES (/usr/bin/git)
Subproject directory not found and wlroots.wrap file not found
Subproject  subprojects/wlroots is buildable: NO (disabling)
Dependency wlroots found: YES (cached)
Fetching value of define "WLR_HAS_XWAYLAND" with dependency wlroots: 1
Dependency scdoc found: YES (cached)
Program /usr/bin/scdoc found: YES (/usr/bin/scdoc)
Program sh found: YES (/usr/bin/sh)
Configuring config.h using configuration
Program wayland-scanner found: YES (/usr/bin/wayland-scanner)
Configuring config using configuration
Configuring 00-defaults using configuration
Message:
Features:
xwayland: true
gdk-pixbuf: true
systemd: true
elogind: false
tray: true
man-pages: true

Build targets in project: 17
Found ninja-1.9.0 at /usr/bin/ninja

Sway Bar Configuration
Here's the MWE bar configuration I've been debugging with.

bar {
    position bottom
    status_command while date +'%Y-%m-%d %l:%M:%S %p'; do sleep 1; done
}

Thanks very much!

@emersion
Copy link
Member

Looks like we can't find an icon for the app. I wonder if this is something you can debug with d-feet.

@Gastove
Copy link
Author

Gastove commented May 27, 2019

@emersion I'm game to try. Any guidance on what I'm looking for?

@emersion
Copy link
Member

emersion commented Jun 1, 2019

I'm not sure, I don't know d-feet well. Maybe it can't show an object from an object ID.

@Gastove
Copy link
Author

Gastove commented Jun 1, 2019

So far, d-feet is... really an experience. If I run it as an unprivileged user, it doesn't have enough perms to view Dropbox proc info; if I run it as root, it can't find all its libraries and explodes. I'll keep digging as I can, but thus far progress is slow.

@emersion
Copy link
Member

emersion commented Jun 1, 2019

Maybe dbus-monitor could help

@Gastove
Copy link
Author

Gastove commented Jun 1, 2019

dbus-monitor sure has a lot to say about the icon that can't be found:

method call time=1559425949.010589 sender=:1.4 -> destination=:1.55 serial=106 path=/org/ayatana/NotificationItem/dropbox_client_23254; interface=org.freedesktop.DBus.Properties; member=Get
   string "org.kde.StatusNotifierItem"
   string "IconPixmap"
method call time=1559425949.010600 sender=:1.4 -> destination=:1.55 serial=107 path=/org/ayatana/NotificationItem/dropbox_client_23254; interface=org.freedesktop.DBus.Properties; member=Get
   string "org.kde.StatusNotifierItem"
   string "IconThemePath"
error time=1559425949.010756 sender=:1.55 -> destination=:1.4 error_name=org.freedesktop.DBus.Error.InvalidArgs reply_serial=106
   string "No such property “IconPixmap”"
method return time=1559425949.011371 sender=:1.55 -> destination=:1.4 serial=52 reply_serial=105
   variant       string "dropboxstatus-busy"
method return time=1559425949.011392 sender=:1.55 -> destination=:1.4 serial=53 reply_serial=107
   variant       string "/home/rdonaldson/.dropbox-dist/dropbox-lnx.x86_64-73.4.118/images"
signal time=1559425949.510283 sender=:1.55 -> destination=(null destination) serial=54 path=/org/ayatana/NotificationItem/dropbox_client_23254; interface=org.kde.StatusNotifierItem; member=NewIcon
method call time=1559425949.510378 sender=:1.4 -> destination=:1.55 serial=108 path=/org/ayatana/NotificationItem/dropbox_client_23254; interface=org.freedesktop.DBus.Properties; member=Get
   string "org.kde.StatusNotifierItem"
   string "IconName"
method call time=1559425949.510405 sender=:1.4 -> destination=:1.55 serial=109 path=/org/ayatana/NotificationItem/dropbox_client_23254; interface=org.freedesktop.DBus.Properties; member=Get
   string "org.kde.StatusNotifierItem"
   string "IconPixmap"
method call time=1559425949.510425 sender=:1.4 -> destination=:1.55 serial=110 path=/org/ayatana/NotificationItem/dropbox_client_23254; interface=org.freedesktop.DBus.Properties; member=Get
   string "org.kde.StatusNotifierItem"
   string "IconThemePath"
method return time=1559425949.510901 sender=:1.55 -> destination=:1.4 serial=55 reply_serial=108
   variant       string "dropboxstatus-busy2"
error time=1559425949.510938 sender=:1.55 -> destination=:1.4 error_name=org.freedesktop.DBus.Error.InvalidArgs reply_serial=109
   string "No such property “IconPixmap”"
method return time=1559425949.511496 sender=:1.55 -> destination=:1.4 serial=57 reply_serial=110
   variant       string "/home/rdonaldson/.dropbox-dist/dropbox-lnx.x86_64-73.4.118/images"
signal time=1559425949.701666 sender=:1.55 -> destination=(null destination) serial=58 path=/org/ayatana/NotificationItem/dropbox_client_23254; interface=org.kde.StatusNotifierItem; member=NewIcon
method call time=1559425949.702137 sender=:1.4 -> destination=:1.55 serial=111 path=/org/ayatana/NotificationItem/dropbox_client_23254; interface=org.freedesktop.DBus.Properties; member=Get
   string "org.kde.StatusNotifierItem"
   string "IconName"
method call time=1559425949.702158 sender=:1.4 -> destination=:1.55 serial=112 path=/org/ayatana/NotificationItem/dropbox_client_23254; interface=org.freedesktop.DBus.Properties; member=Get
   string "org.kde.StatusNotifierItem"
   string "IconPixmap"
method call time=1559425949.702168 sender=:1.4 -> destination=:1.55 serial=113 path=/org/ayatana/NotificationItem/dropbox_client_23254; interface=org.freedesktop.DBus.Properties; member=Get
   string "org.kde.StatusNotifierItem"
   string "IconThemePath"
error time=1559425949.702338 sender=:1.55 -> destination=:1.4 error_name=org.freedesktop.DBus.Error.InvalidArgs reply_serial=112
   string "No such property “IconPixmap”"
method return time=1559425949.703365 sender=:1.55 -> destination=:1.4 serial=60 reply_serial=111
   variant       string "dropboxstatus-idle"
method return time=1559425949.703386 sender=:1.55 -> destination=:1.4 serial=61 reply_serial=113
   variant       string "/home/rdonaldson/.dropbox-dist/dropbox-lnx.x86_64-73.4.118/images"

@Gastove
Copy link
Author

Gastove commented Jun 1, 2019

It does appear to have found the right base path; that dropbox-dist folder does have all the images needed:

$ exa -T .dropbox-dist/dropbox-lnx.x86_64-73.4.118/images/
.dropbox-dist/dropbox-lnx.x86_64-73.4.118/images
├── emblems
│  ├── emblem-dropbox-app.icon
│  ├── emblem-dropbox-app.svg
│  ├── emblem-dropbox-infinite.icon
│  ├── emblem-dropbox-infinite.png
│  ├── emblem-dropbox-mixedstate.icon
│  ├── emblem-dropbox-mixedstate.png
│  ├── emblem-dropbox-selsync.icon
│  ├── emblem-dropbox-selsync.png
│  ├── emblem-dropbox-syncing.icon
│  ├── emblem-dropbox-syncing.png
│  ├── emblem-dropbox-unsyncable.icon
│  ├── emblem-dropbox-unsyncable.png
│  ├── emblem-dropbox-uptodate.icon
│  └── emblem-dropbox-uptodate.png
└── hicolor
   └── 16x16
      └── status
         ├── dropboxstatus-blank.png
         ├── dropboxstatus-busy.png
         ├── dropboxstatus-busy2.png
         ├── dropboxstatus-idle.png
         ├── dropboxstatus-logo.png
         └── dropboxstatus-x.png

@ianyfan
Copy link
Contributor

ianyfan commented Jun 8, 2019

Hello. Sorry I'm a bit late to this. If this is still an issue, could you please provide the output to busctl --user introspect <service name> <object path> org.kde.StatusNotifierItem? Thanks.

@Gastove
Copy link
Author

Gastove commented Jun 9, 2019

@ianyfan I'm happy to! However, it's not totally transparent to me what variables to parse in to the command you're suggesting. In busctl list, I do see dropbox -- seems an obvious fit for <service name> -- but I'm not clear on what the <object path> should be. Any guidance? (I've tried plugging in variation of /org/ayatana/NotificationItem/dropbox_client_$pid, to no success.)

@Gastove
Copy link
Author

Gastove commented Jun 9, 2019

Oh wait here we go -- dropbox isn't the service name:

$ busctl --user list | grep dropbox
:1.44                                             11221 dropbox         gastove          :1.44         session-5.scope           5          -
:1.45                                             11221 dropbox         gastove          :1.45         session-5.scope           5          -

I didn't catch that the names are actually :1.44 and :1.45. Here's some busctl output for them; lemme know if this is what you were looking for?

gastove@croquette-localdomain  ~/ λ
$ busctl --user introspect :1.44 "/org/ayatana/NotificationItem/dropbox_client_11221" org.kde.StatusNotifierItem
NAME TYPE SIGNATURE RESULT/VALUE FLAGS

gastove@croquette-localdomain ~/ λ
$ busctl --user introspect :1.45 "/org/ayatana/NotificationItem/dropbox_client_11221" org.kde.StatusNotifierItem
NAME                       TYPE      SIGNATURE RESULT/VALUE                             FLAGS
.Scroll                    method    is        -                                        -
.SecondaryActivate         method    ii        -                                        -
.XAyatanaSecondaryActivate method    u         -                                        -
.AttentionAccessibleDesc   property  s         ""                                       emits-change
.AttentionIconName         property  s         ""                                       emits-change
.Category                  property  s         "ApplicationStatus"                      emits-change
.IconAccessibleDesc        property  s         ""                                       emits-change
.IconName                  property  s         "dropboxstatus-idle"                     emits-change
.IconThemePath             property  s         "/home/gastove/.dropbox-dist/dropbox-ln… emits-change
.Id                        property  s         "dropbox-client-11221"                   emits-change
.Menu                      property  o         "/org/ayatana/NotificationItem/dropbox_… emits-change
.Status                    property  s         "Active"                                 emits-change
.Title                     property  s         "dropbox"                                emits-change
.XAyatanaLabel             property  s         ""                                       emits-change
.XAyatanaLabelGuide        property  s         ""                                       emits-change
.XAyatanaOrderingIndex     property  u         0                                        emits-change
.NewAttentionIcon          signal    -         -                                        -
.NewIcon                   signal    -         -                                        -
.NewIconThemePath          signal    s         -                                        -
.NewStatus                 signal    s         -                                        -
.NewTitle                  signal    -         -                                        -
.XAyatanaNewLabel          signal    ss        -                                        -

@mijoharas
Copy link

Hi, one data point that might help. I have the same issue, which disappears when using waybar ( https://github.com/Alexays/Waybar ). It also fixes the issues I have around context menus showing up on the applets (though the build I'm using puts them in the center of the screen).

Happy to dig in and provide any further information if you'd like.

@ianyfan
Copy link
Contributor

ianyfan commented Jun 13, 2019

I think the problem is that the way I wrote the icon lookup for applications that supply "IconThemePath" only checks the top-level directory that is provided, when in this case, the icon is in a subdirectory instead.

@Gastove Can you check this by running busctl --user get-property <service name> <object path> org.kde.StatusNotifierItem IconThemePath?

@Gastove
Copy link
Author

Gastove commented Jun 13, 2019

@ianyfan sure thing:

$ busctl --user list | grep dropbox
:1.14                                                         2510 dropbox         rdonaldson       :1.14         session-2.scope           2          -
:1.15                                                         2510 dropbox         rdonaldson       :1.15         session-2.scope           2          -

$ busctl --user get-property :1.14 "/org/ayatana/NotificationItem/dropbox_client_2510" org.kde.
StatusNotifierItem IconThemePath
No such interface 'org.freedesktop.DBus.Properties' at object path '/org/ayatana/NotificationItem/dropbox_client_2510'

$ busctl --user get-property :1.15 "/org/ayatana/NotificationItem/dropbox_client_2510" org.kde.
StatusNotifierItem IconThemePath
s "/home/rdonaldson/.dropbox-dist/dropbox-lnx.x86_64-74.4.115/images"

@ianyfan
Copy link
Contributor

ianyfan commented Jun 15, 2019

@Gastove Try this branch: https://github.com/ianyfan/sway/tree/swaybar

@Gastove
Copy link
Author

Gastove commented Jun 17, 2019

@ianyfan That looks better! Dropbox icon appears. It isn't interactive (e.g., clicking on it does nothing), but I have no idea if I should expect clicks to work. Does this seem right to you?

@morxa
Copy link
Contributor

morxa commented Nov 21, 2019

One of the Fedora maintainers here. Is there a particular reason why this hasn't been merged?

@tbm
Copy link
Contributor

tbm commented Jan 3, 2020

another ping. @ianyfan any reason this hasn't been merged?

@ianyfan
Copy link
Contributor

ianyfan commented Mar 2, 2020

This has been fixed by #4532

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

6 participants