kozec / syncthing-gtk Goto Github PK
View Code? Open in Web Editor NEWGTK3 & python based GUI for Syncthing
License: GNU General Public License v2.0
GTK3 & python based GUI for Syncthing
License: GNU General Public License v2.0
Please add an option to notify about file-changes after the whole sync is done. Now (0.4.1-1) after each individual downloaded file a notification is send. This is really annoying when doing an initial sync ;)
Thank you for giving us the option to disable the notifications, but a few notifications (as said after full sync) are really convenient
From the syncthing 0.10 changelog: "Rename Repository -> Folder, Node -> Device"
Syncthing-gtk 0.4 still uses "Repository ID", global and local repository, "Master Repo", etc. for the local repo - screenshot: http://i.imgur.com/VQT2Tms.png
Also, to be consistent with the syncthing webui, "path" should be renamed to "folder path".
Just spotted while watching a transfer...
The Upload/Download Rate shown in Syncthing GTK/Linux is totally bogus. I see values of only a few kBps ("random" numbers between 7 through 57) while Syncthing GTK on Windows shows me a average of almost about 20MBps (and that's a whole lot closer to the increase in sync percentage at each update in relation to the overall size). Also, the associated amount of data it shows next to the transfer speed is totally bogus. Once it reaches 2GB it reverts to negative figures (i.e. the current sync job just stopped at "0 Bps (-255777153 B)") goes up to about negative 8 billion before it reverts to zero - int32 overflow?). However, seems it's also not really correct on Windows as it shows only "19.13 MBps (1.83 GB)" downloaded while it was actually 7.76GB worth of data. Having added another 10GB of data just now ... now the box (in Windows, receiving side) remains frozen (top/left - doesn't update speeds nor sizes).
What strikes me as well ... why is the box of the other peer not changing? On the sending side (where the data was dropped into the "repo") it updates the percentage in the top/right box, but the box of the peer to where it sync steadily shows rate/size at "0 bps (0 B)". On the receiving side it's about the same. The top/right box updates data (though that doesn't seem to work reliable - see paragraph above), but the rate/size in the box of the peer that is sending stays steadily at "0 bps (0 B)".
Unless I miss something here, the box(es) of the peer(s) to where a sync is going (sending side) as well the box(es) of the peer(s) from where a sync is coming from (receiving side) should update the rate and size (that's actually what I am fighting with at the latest revision of my C# port - I have a rough prototype up and running that needs a lot of refinement until it's "production usage" ready, currently dealing with filling stats into the UI).
The figures shown inside the "repo" boxes on the left is correct ... it reflects the correct amount of data and correct count of files (though I haven't tried to see if it would also go negative at some file count).
Edit: the "added yet another 10GB" sync finished ... now STGTK/Linux shows "0 bps (-1567673409 B)" at the "Upload Rate" in the top/right box. The figures in the "repo" box is correct ... 18.48GB and 41 files". STGTK/Windows didn't update the figures in the top/right box, they stayed "frozen" at the last values displayed (Download Rate 19.13 MBps (1.83GB) / Upload Rate 19.13 MBps (2.04MB). The "repo" is showing correct figures though. /Edit
In the "about" dialog, clicking on Credits
or License
does nothing.
using this as TODO so I don't forget about it
Being a good citizen, and copying stuff from the forums:
cx_Freeze: Python error in main script
Traceback (most recent call last):
File "c:\Python27\lib\site-packages\cx_Freeze\initscripts\Console.py, line 27, in <module>
File "scripts/syncthing-gtk-exe.py", line 42, in <module>
File "c:\syncthing-gui\syncthing_gtk\app.py, line 67, in __init__
File "c:\syncthing-gui\syncthing_gtk\configuration.py", line 66, in __init__
File "c:\syncthing-gui\syncthing_gtk\windows.py", line 145, in save
File "c:\syncthing-gui\syncthing_gtk\windows.py", line 155, in _store
Type Error: object of type 'NoneType' has no len()
On a fresh install of Linux Mint (17.1 at the time of writing) the "Start Syncthing-GTK when I login to my desktop" option does not stick when checked. Reason being: by default the ~/.config/autostart directory does not exist out-of-the-box in Linux Mint. Best practice would be to check if the directory exists and simply create it in case it doesn't. EDIT: Syncthing-GTK installed from Andrew's WebUpd8 PPA.
On another note, Syncthing-GTK somehow doesn't seem to update the syncthing binary. My openSUSE system was still at 0.10.9 - manually updated meanwhile - while Windows had already happily updated to 0.10.11. Any chance something went wrong with the "Updated URL for Syncthing updater" change in v0.5.2?
Chocolatey is a package manager like apt-get for Windows. Since v0.5 add support for Windows, I think that it would be a great idea to add a Chocolatey Package for this program.
I only found Python as a dependecy, the others will have to be included in the installer.
Using v0.5.6 on Windows 8.1.
The setup wizard prompts whether the WebUI should listen locally or on all interfaces. The selected options are saved as expected into the config.xml:
<gui enabled="true" tls="false"><address>0.0.0.0:8080</address><user>myuser</user><password>mypass</password></gui>
However syncthing-gtk tries to connect to 0.0.0.0:8080 which obviously does not work.
Changing the config.xml to only listen locally, but still with username / password:
<gui enabled="true" tls="false"><address>127.0.0.1:8080</address><user>myuser</user><password>mypass</password></gui>
Results in a 403 forbidden error.
The only workaround solution appears to be to revert the configuration to be local only with no authentication.
<gui enabled="true" tls="false"><address>127.0.0.1:8080</address></gui>
Just happened after Syncthing-GTK updated the binary to 0.10.13 (pulled from ~/.xsession.errors):
E Daemon Could not connect to 127.0.0.1: Connection refused
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/syncthing_gtk/daemon.py", line 376, in _rest_connected
con = sc.connect_to_service_finish(results)
GError: Could not connect to 127.0.0.1: Connection refused
I App Updatecheck: needs_upgrade = True
E Daemon Could not connect to 127.0.0.1: Connection refused
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/syncthing_gtk/daemon.py", line 376, in _rest_connected
con = sc.connect_to_service_finish(results)
GError: Could not connect to 127.0.0.1: Connection refused
I App updatecheck: too soon
I App Failed to create UPnP port mapping
In short, Syncthing-GTK just throws the "Failed to create UPnP port mapping" error. Also, the "cannot connect" to 127.0.0.1 (localhost) can't be ... the interface is up and there are no firewall rules in place.
There was no such error with 0.10.12 (Windows or Linux); the only problem was the "bootstrap" which calmh now fixed in .13 (causing issues with Chrome when accessing the WebUI).
EDIT: I am not sure at this point from where the problem comes from ... I'm getting the same error message in Syncthing's own WebUI displayed, so it could well be that it's actually Syncthing that's suddenly having an issue.
At any rate, I'll downgrade to 0.10.11 for the time being and disable "Auto Update" until this bug is resolved. If any tests are needed don't hesitate to contact me. /EDIT
when I start syncthing-gtk 5.2 via .desktop in ~/.config/autostart at login, it doesn't open the window, just the application in the background, as I expect it
but in at least Ubuntu 14.04.1 und LinuxMint 17 Mate it does open the window, which is kind of annoying to have to click it away at any login
Small bug in 0.5.6 (Windows, at least) ... the "box" for the "local node" (top/right box) doesn't show the Version of the syncthing daemon. Works fine in the info boxes of the other nodes below.
Hi,
I installed the release 0.5.2 from here https://github.com/syncthing/syncthing-gtk/releases/tag/v0.5.2
After running C:\Program Files\SyncthingGTK\syncthing-gtk.exe I get the following error-panels:
Starting Syncthing daemon
and:
Connection to daemon failed. Check your configuration and try again.
Error message: Invalid HTTP response
What can I do to get it work?
Greetings,
merlinuwe
Hi kozec,
is there any reason why syncthing-gui does not yet have the new Syncthing Logo?
If the only reason is that you have not yet had the time to do so, I would be happy to change this.
Cheers
jay
ubuntu 14.04, syncthing-gtk recently upgraded the deamon to v0.10.14
if I load web ui (in either chrome, chromium or firefox) it keeps refreshing ad eternum and almost max's out cpu usage in my laptop and uses 2 full cores on my desktop, I'm not sure what the deamon is doing but it seems to be stuck in loading the UI and not necessarily scanning the folders.
If I run the daemon by itself from shell I have no problems.
I think this only happens if no other node are connected as I have synced stuff with this daemon version and don't recall encountering this issue.
I am running Manjaro Linux (Arch-Distribution), so I have disabled the auto-update feature of syncthing-gtk disabled. Although disabling this feature I get the following error message:
Edit: Just found, that syncthing itself has an update-feature, which I did not disable (I'm using syncthing-bin from the AUR, which has the self-update-feature enabled)
Here are some things that I noticed:
If I start as a fresh user, there is no syncthing configuration in .config/syncthing/. The setup wizard detects this and proceeds with finding the syncthing binary, the WebUI setup and the RSA key generation. However, the "Save Settings" step fails with the following error in the UI:
At this point, the console is spammed with the following error message in an endless loop:
syncthing-gtk: Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/syncthing_gtk/wizard.py", line 597, in save_settings
config = file(self.parent.st_configfile, "r").read()
IOError: [Errno 2] No such file or directory: u'/home/lenz/.config/syncthing/config.xml'
I can only abort this by clicking "Quit".
Looking at the code, the "save_settings" function indeed tries to open the config file for reading before actually writing it. Instead of failing, it should rather write out a new configuration file containing the values the user just entered. Isn't that what this wizard is all about?
How to repeat: Simply delete "~/.config/syncthing" and start the wizard.
I'm using Syncthing GUI in Ubuntu and the indicator doesn't display the sync status (I also tried it under GNOME Shell and the result was the same). Shouldn't the Syncthing GUI tray icon / Ubuntu AppIndicator icon change when syncing like with e.g. Dropbox?
Also, the indicator menu always says "Idle", even when syncing.
Quoting @nbonacchi from #56
the only reason I open the web UI is because it gives me more accurate readings of the state of my shared folders gtk will show "Idle" on the shared folders column while web UI will show "up to date", also nodes that disconnect keep their 'status' e.g. "Syncing ##%" while the web UI tells me the node is "Disconnected", I believe if I restart gtk it will display the correct info so maybe its some sort of refresh problem? (also the color of the appindicator icon does not refresh to gray when no node is connected unless I restart the app)....
(just as note to myself so I don't forget about it)
Hi there,
very nice work. :) Thank you for sharing it. I would like to contribute a little bit to the repo and I thought I start with some small nuts and bolts, like changing the GtkMenu to a GtkPopover, since you have <property name="use-popover">True</property>
written in app.glade.
But then again, it states <requires lib="gtk+" version="3.10"/>
and so I think you are using GTK 3.10 and not GTK 3.12, which would be required for a change to Popovers.
So which version of GTK would you like your Project to be in? Could you clarify this also in README.md, please? Thank you in advance.
Additionally, I am currently using GNOME with GTK 3.14, so if I make changes, I cannot say how this affects the appearance under Unity or Windows. Do you have any suggestions how I should proceed?
Cheers
Jay
Users shoud be able to manipulate syncronization from their file managers.
I wrote simple integration script for Caja (MATE file manager).
For now it can only add/remove folders to syncthing and show emblems on added folders:
What do you guys think? Maybe there's something else implemented already?
When a new file is added on a remote node, it gives a notification saying 0 files have been modified on the remote device, instead of either no notification, or a notification saying [filename] has been added.
somasis/cicero:~/ % syncthing-gtk -d
Traceback (most recent call last):
File "/usr/lib64/python2.7/site-packages/syncthing_gtk/app.py", line 112, in do_startup
self.setup_widgets()
File "/usr/lib64/python2.7/site-packages/syncthing_gtk/app.py", line 198, in setup_widgets
self.builder.add_from_file(os.path.join(self.gladepath, "app.glade"))
GLib.Error: g-file-error-quark: Failed to open file './app.glade': No such file or directory (4)
Syncthing-GTK started and running in notification area
Looking in the syncthing_gtk/app.py, the relevant variables:
def __init__(self, gladepath="/usr/share/syncthing-gtk",
...and, in /usr/share/syncthing-gtk
:
-rw-r--r-- 1 root root 32025 Dec 21 01:07 app.glade
app.glade
also contains everything it should (didn't paste the whole file, since it seemed excessive):
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk+" version="3.10"/>
<!-- Main window -->
<object class="GtkWindow" id="window">
<property name="default-width">900</property>
<property name="default-height">600</property>
<signal name="delete-event" handler="cb_delete_event" swapped="no"/>
<property name="icon">icons/st-logo-128.png</property>
<!-- Window content -->
<child>
<object class="GtkBox" id="content">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<!-- Traditional header -->
<child>
<object class="GtkBox" id="bar_the_hell">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">horizontal</property>
<property name="border_width">6</property>
<property name="spacing">6</property>
<child>
<object class="GtkMenuButton" id="left-menu-button">
<property name="visible">True</property>
<property name="valign">center</property>
<property name="image">syncthing-image_the_hell</property>
<property name="popup">app-menu-icons</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
So I'm unsure what would be causing this error.
Bug: Shortcut (in the "Start Menu") is created with the wrong icon resource path. Syncthing GTK installs into "C:\Program Files (x86)" on 64-Bit Windows Editions. The path to the icon resource in the shortcut reads "%ProgramFiles%\SyncthingGTK\icons\st-logo-128.ico" (that would be the case for a x64 program) where it should actually be "%ProgramFiles(x86)%\SyncthingGTK\icons\st-logo-128.ico". I think that's the installers fault - it needs to differentiate between 32-Bit and 64-Bit OS versions.
Reproduce: Right-click the Syncthing GTK shortcut -> Properties -> Change Icon. Throws an error message about the .ico not being found due to wrong path.
https://discourse.syncthing.net/t/syncthing-gtk-gui-for-syncthing-now-with-inotify-support/709/35
Bug: windows 7: For whatever reason I can't figure out the "repo" (left side) and "host" (top/right where there's also the status of the annouce server shown) section within the main windows is always collapsed. On Linux, the repo and the host are always expanded.
Reproduce: Just open the Syncthing GTK window and all "panes" inside the window should be collapsed.
https://discourse.syncthing.net/t/syncthing-gtk-gui-for-syncthing-now-with-inotify-support/709/35
Bug: On Windows 7 and Windows 8, using the native Windows decorations, the Syncthing-GTK window is always placed on top/left of the screen and slightly out of the screen. Doesn't happen when using the internal window decoration, in that case the windows is pixel-perfect aligned with the top/left of the screen (that's what I tend to use to "unify" the look between Linux and Windows).
Repropduce: Just restore the Syncthing GTK window from the tray icon.
https://discourse.syncthing.net/t/syncthing-gtk-gui-for-syncthing-now-with-inotify-support/709/35
Syncthing is licensed under GPLv3, and this software depends on syncthing. Maybe you should also license under GPLv3 to be compliant?
I use syncthing-gtk for several computers with Windows 7 and Ubuntu Gnome. I found out that the process syncthing consumes considerably more CPU when using syncthing-gtk. Without syncthing-gtk, the CPU utilization of syncthing is far more better. The behaviour is documented here: https://discourse.syncthing.net/t/high-cpu-load-idle-when-using-syncthing-gtk/1580
I have a connection to daemon failed message. It asks me to check my configuration and try again.
More Info:
Server response:
'HTTP/1.0 401 Unauthorized
Access-Control-Allow-Origin: *
Content-Type: text/plain; charset=utf-8
Www-Authenticate: Basic realm="Authorization Required"
Date: Sun, 04 Jan 2015 05:23:40 GMT
Content-Length: 15
Not Authorized
'
I recieve this message upon opening the App in Ubuntu 14.04 and using the WebUpd8 PPA to install.
I can still use the application if I go to http://localhost:8080
Sorry to come around the corner with another findings (already started the base work on Syncthing-Sharp for Windows as promised, so bear with me for the time being) ...
Both problems relate to Windows (Windows 7 and Windows 8.1) ...
Hi!
The Windows installer is great.
Any chance we could have something similarly easy for the Mac?
https://github.com/syncthing/syncthing/tree/master/etc/macosx-launchd
https://github.com/syncthing/syncthing-mac
Thanks!
M ;-)
I turned on the "Monitor filesystem for changes" function, but it does not seem to have any effect
neither on Arch with Gnome nor LinuxMint 17.1 Mate
any idea why it's not triggering the sync? does it trigger sync for anybody yet? or do I miss something?
Hi,
Tried on Fedora 20 64bit and got the following error. Not sure what to do next. Need advice.
--------- start of error -------------------
pv@localhost syncthing-gui-0.4.2$ ./syncthing-gtk.py
Traceback (most recent call last):
File "./syncthing-gtk.py", line 21, in
"./icons"
TypeError: run() takes exactly 2 arguments (1 given)
--------- end of error --------------------
... somehow
(another not-a-bug-just-todo)
I think this is great.
This is all I would ever need.
Some feedback (not criticism, just feedback), regardless, as I have started working on C# version, but GTK is obviously much more portable, and you are far ahead of me.
Suggestions + Ideas of what I wanted to implement:
Bugs:
If you have any issues, or need any help or features from my side, let me know.
And if easy, would be nice to also indicate Syncthing version (low priority because we can see elsewhere in the UI)
Thanks!
Hi,
at first: You really made a cool tool.
Here are my issues:
In the path is a "l" missing: C:\Program Fies\Syncthing\syncthing.exe
Typo in "Syncthing Daemon Settings": Incoimg --> Incoming
Why Do You Often Write Texts With Leading Caps? ;-)
Display Daemon Ouput -> Display daemon output
I found the application once without the typical windows window (border) running.
Greetings,
merlinuwe
It would be nice to have desktop notifications, when a sync is done. Otherwise the GUI is great !
Hello,
I maintain Syncthing GTK in the main WebUpd8 PPA for Ubuntu 14.04 and 14.10 and before each update, I test the package to make sure it works. The latest Syncthing GTK 0.5.4 fails to start with the following error:
Traceback (most recent call last):
File "/usr/bin/syncthing-gtk", line 18, in <module>
App(".", "./icons").run(sys.argv)
File "/usr/lib/python2.7/dist-packages/syncthing_gtk/app.py", line 69, in __init__
self.setup_commandline()
File "/usr/lib/python2.7/dist-packages/syncthing_gtk/app.py", line 165, in setup_commandline
aso("window", b"w", "Display window (don't start minimized)")
File "/usr/lib/python2.7/dist-packages/syncthing_gtk/app.py", line 162, in aso
self.add_main_option(lname, sname, GLib.OptionFlags.IN_MAIN,
AttributeError: 'App' object has no attribute 'add_main_option'
Tested on Ubuntu 14.10 64bit.
Bug: "Anon Data Collection" doesn't stick on Windows. The checkmark remains checked at all times. Unchecking and restarting Syncthing GTK shows it checked again.
Reproduce: Try to uncheck the anonymous data submit option and either go back into the pref screen or restart and go back into the pref screen ... will show as checked.
https://discourse.syncthing.net/t/syncthing-gtk-gui-for-syncthing-now-with-inotify-support/709/35
The default value in configuration.py of minimize_on_start is false. So syncthing-gtk start not minimized.
But in the help I found that there is only the option of command line -w that "Display window (don't start minimized)" but there isn't the option for start minimized.
So I guess that at the beginning the minimize_on_start variable had to be set true and not false.
Or at least I think it can be useful to add an option for start syncthing gtk minimized without edit the config.json
If you try to upload a package with chocolatey_update.py
, the packaging part will fail, since the .nuspec
file doesn't support HTML tags that are included in release notes.
There are two solutions for this :
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.