I installed Syncthing 0.8.3 (Daemon v0.12.21) on 3 Fedora 23 Linux systems.
On 2 of them (one with Cinnamon one with XFCE DE) all works perfectly. On one older laptop (with XFCE) all seems to work: after adding a device and using the default sync folder things get synced, but the GTK interface is completely empty. When I move the mouse over the empty window, the mouse pointer changes and right-clicking the menu shows up and I can edit, ignore, delete etc. So; there is something there only it is not visible!
Another thing: the web interface does not work and/or does not accept my username/pass. Syncthing comes up with http://127.0.0.1:8080/ and an authorization window.
What am I doing wrong here?
It would be great to have it working on all 3 systems… ;(
If the GTK UI does not work, just run the daemon by itself and use the web ui.
@kozec would be the best person to answer why the GTK part does not work.
Of course you cannot connect if you disable the gui. If you don’t want to autostart the browser, set the option startBrowser to false.
The config file holds an encrypted password, so setting it there in plain text does not work. The easiest way is to remove the password from the config, start syncthing and set the password in the gui.
I also checked which versions of GTK and Cairo are installed.
`[Lin@localhost ~]$ syncthing-gtk -d
/usr/lib/python2.7/site-packages/syncthing_gtk/uibuilder.py:16: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
from gi.repository import Gtk
/usr/lib/python2.7/site-packages/syncthing_gtk/notifications.py:16: PyGIWarning: Notify was imported without specifying a version first. Use gi.require_version('Notify', '0.7') before import to ensure that the right version gets loaded.
from gi.repository import Notify
/usr/lib/python2.7/site-packages/syncthing_gtk/infobox.py:8: PyGIWarning: Rsvg was imported without specifying a version first. Use gi.require_version('Rsvg', '2.0') before import to ensure that the right version gets loaded.
from gi.repository import Gtk, Gdk, GLib, GObject, Pango, Rsvg
D UIBuilder Enabled: header_bar
D UIBuilder Enabled: icons_in_menu
D UIBuilder Loading glade file /usr/share/syncthing-gtk/app.glade
D UIBuilder Enabled conditions: set([u'icons_in_menu', u'header_bar'])
D UIBuilder Removed 'property' by attribute: is_windows
D UIBuilder Removed 'property' by attribute: is_windows
D UIBuilder Allowed node icons_in_menu | old_gtk
D UIBuilder Removed 'property' by attribute: is_windows
D UIBuilder Allowed node !is_gnome | old_gtk
D UIBuilder Allowed node icons_in_menu | old_gtk
D UIBuilder Removed 'property' by attribute: old_gtk
D UIBuilder Allowed node icons_in_menu | old_gtk
D UIBuilder Allowed node icons_in_menu | old_gtk
D UIBuilder Removed 'child' by attribute: traditional_header
D UIBuilder Removed 'child' by attribute: is_windows
D UIBuilder Allowed node icons_in_menu | old_gtk
D UIBuilder Removed 'property' by attribute: is_windows
D UIBuilder Removed node traditional_header
D UIBuilder Allowed node traditional_header | icons_in_menu
I StatusIcon Using backend StatusIconGTK3 (primary)
D Daemon WebUI listens on 0.0.0.0, connecting to 127.0.0.1 instead
V Notifications Error notifications enabled
V Notifications File update notifications enabled
Syncthing-GTK started and running in notification area
V Daemon Set refresh interval to 5
(syncthing-gtk:3343): Gdk-CRITICAL **: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed
E Daemon g-io-error-quark: Could not connect to 127.0.0.1: Connection refused (39)
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/syncthing_gtk/daemon.py", line 408, in _rest_connected
con = sc.connect_to_service_finish(results)
Error: g-io-error-quark: Could not connect to 127.0.0.1: Connection refused (39)
D App Creating connect_dialog
V App Settinig connect_dialog label Starting Syncth
D InfoBox CoolComp state changed to Disconnected
D InfoBox localhost.localdomain state changed to Disconnected
D InfoBox /home/Lin/Sync/ state changed to Disconnected
D InfoBox /home/Lin/Sync/ state changed to Unknown
D InfoBox /home/Lin/Sync/ state changed to Up to Date
D InfoBox /home/Lin/Sync/ state changed to Offline
D InfoBox localhost.localdomain state changed to
I App updatecheck: disabled
V Daemon Set refresh interval to 1
V Daemon Forced to request events
(syncthing-gtk:3343): Gtk-WARNING **: Invalid icon size 24
(syncthing-gtk:3343): Gtk-WARNING **: Invalid icon size 24
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
D InfoBox CoolComp state changed to Connected
D InfoBox /home/Lin/Sync/ state changed to Up to Date
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
D InfoBox /home/Lin/Sync/ state changed to Syncing
D InfoBox /home/Lin/Sync/ state changed to Up to Date
D InfoBox CoolComp state changed to Up to Date
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
(syncthing-gtk:3343): Gtk-WARNING **: Invalid icon size 24
(syncthing-gtk:3343): Gtk-WARNING **: Invalid icon size 24
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
(syncthing-gtk:3343): Gtk-WARNING **: Invalid icon size 24
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
(syncthing-gtk:3343): Gtk-WARNING **: Invalid icon size 24
[Lin@localhost ~]$ sudo dnf list installed cairo*
[sudo] password for Lin:
Last metadata expiration check: 0:08:22 ago on Mon Mar 28 17:07:18 2016.
Installed Packages
cairo.i686 1.14.2-2.fc23 @fedora
cairo.x86_64 1.14.2-2.fc23 @koji-override-0
cairo-gobject.x86_64 1.14.2-2.fc23 @koji-override-0
cairomm.x86_64 1.12.0-1.fc23 @koji-override-0
[Lin@localhost ~]$ sudo dnf list installed gtk*
Last metadata expiration check: 0:08:30 ago on Mon Mar 28 17:07:18 2016.
Installed Packages
gtk-murrine-engine.x86_64 0.98.2-8.fc23 @fedora
gtk-unico-engine.x86_64 1.0.3-0.6.20140109bzr152.fc23 @fedora
gtk-update-icon-cache.x86_64 3.18.9-1.fc23 @updates
gtk-vnc2.x86_64 0.5.4-2.fc23 @koji-override-0
gtk-xfce-engine.x86_64 3.2.0-2.fc23 @fedora
gtk2.i686 2.24.30-1.fc23 @updates
gtk2.x86_64 2.24.30-1.fc23 @updates
gtk2-engines.i686 2.20.2-10.fc23 @fedora
gtk2-engines.x86_64 2.20.2-10.fc23 @fedora
gtk3.x86_64 3.18.9-1.fc23 @updates
gtkmm24.x86_64 2.24.4-7.fc23 @koji-override-0
gtkmm30.x86_64 3.18.0-1.fc23 @koji-override-0
gtksourceview3.x86_64 3.18.2-1.fc23 @updates
gtkspell.x86_64 2.0.16-10.fc23 @fedora
gtkspell3.x86_64 3.0.7-2.fc23 @koji-override-0
[Lin@localhost ~]$
[Lin@localhost ~]$
`
Syncthing started saving the password as a hash instead of cleartext in v0.8.0, April 2014. We stopped understanding a legacy cleartext password in the config in v0.12.0, November 2015. Possibly something else is writing an unhashed password to the config, something expecting a pre-v0.12 Syncthing, and Syncthing no longer understands this?