|Martchus 37893f77cb Fix compilation with Qt >= 5.14.0||1 day ago|
|cli||1 week ago|
|connector||1 week ago|
|fileitemactionplugin||1 week ago|
|libsyncthing||1 week ago|
|model||1 week ago|
|plasmoid||1 week ago|
|scripts||1 year ago|
|testhelper||3 months ago|
|tray||1 week ago|
|widgets||1 day ago|
|.gitignore||3 months ago|
|.gitmodules||1 year ago|
|CMakeLists.txt||1 week ago|
|LICENSE||3 years ago|
|README.md||2 weeks ago|
Checkout the official forum thread for discussions and announcement of new features.
Issues can be created on GitHub but please read the "Known bugs" and "Planned features" sections in this document before.
The Qt Widgets based version basically works under Wayland but there are positioning issues (see known bugs section).
If you can confirm it works under other desktop environments, please add it to the list.
The tray is still under development; the following features are under construction or planned:
The screenshots might not be up-to-date.
To create hotkeys, you can use the same approach as for any other
application. Just make it invoke the
syncthingctl application with
the arguments for the desired action.
--webui to the
syncthingtray arguments to trigger the web UI.
Syncthing Tray ensures that no second instance will be spawned if it is already
running and just trigger the web UI.
Use of systemd can be explicitely enabled/disabled by adding
-DSYSTEMD_SUPPORT=ON/OFF to the CMake arguments. There will be no hard
dependency to systemd in any case.
With systemd support the tray can start and stop the systemd unit of Syncthing. It will also take the unit status into account when connecting to the local instance. So connection attempts can be prevented when Syncthing isn't running anyways. However, those features are optional. To use them they must be enabled in the settings dialog first.
Note that this only works when starting Syncthing as user service. This is described in the Arch Wiki.
See the release section on GitHub.
The application depends on c++utilities and qtutilities and is built the same way as these libaries. For basic instructions checkout the README file of c++utilities. For building this straight, see the section below. There's also documentation about various build variables which can be passed to CMake to influence the build.
The following Qt 5 modules are requried (version 5.6 or newer): core network dbus gui widgets svg webenginewidgets/webkitwidgets
The built-in web view is optional (see section "Select Qt module for WebView").
To build the plugin for Dolphin integration KIO is also requried. Additionally, the Dolphin plugin requires Qt 5.8 or newer. To skip
building the plugin, add
-DNO_FILE_ITEM_ACTION_PLUGIN:BOOL=ON to the CMake arguments.
To build the Plasmoid for the Plasma 5 desktop, the Qt 5 module QML and the KF5 module
Plasma are required as well. Additionally, the Plasmoid requires Qt 5.8 or newer. To skip
building the Plasmoid, add
-DNO_PLASMOID:BOOL=ON to the CMake arguments.
It is also possible to build only the CLI (syncthingctl) by adding
-DNO_FILE_ITEM_ACTION_PLUGIN:BOOL=ON to the CMake arguments. Then only the Qt modules core,
network and dbus are required.
To get rid of systemd support, add
-DENABLE_SYSTEMD_SUPPORT_BY_DEFAULT to the CMake arguments.
In this case the Qt module D-Bus is not required anymore. Note that there is no hard dependency
to systemd in any case.
Building the testsuite requires CppUnit and Qt 5.8 or higher.
cd $SOURCES git clone https://github.com/Martchus/cpp-utilities.git c++utilities git clone https://github.com/Martchus/qtutilities.git git clone https://github.com/Martchus/syncthingtray.git git clone https://github.com/Martchus/subdirs.git
cd $BUILD_DIR cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX="/install/prefix" \ $SOURCES/subdirs/syncthingtray make install -j$(nproc)
-DWEBVIEW_PROVIDER:STRING=webkit/webengine/noneto the CMake arguments to use either Qt WebKit (works with 'revived' version as well), Qt WebEngine or no web view at all. If no web view is used, the Syncthing web UI is opened in the default web browser. Otherwise the user can choose between the built-in web view and the web browser.
If the Dolphin integration or the Plasmoid don't work, check whether the files for those components have been installed in the right directories.
For instance, under Tumbleweed it looks like this for the Plasmoid:
/usr/lib64/qt5/plugins/plasma/applets/libsyncthingplasmoid.so /usr/share/kservices5/plasma-applet-martchus.syncthingplasmoid.desktop /usr/share/plasma/plasmoids/martchus.syncthingplasmoid/contents/ui/*.qml /usr/share/plasma/plasmoids/martchus.syncthingplasmoid/metadata.desktop /usr/share/plasma/plasmoids/martchus.syncthingplasmoid/metadata.json
The files for the Dolphin integration look like this under Tumbleweed:
The directory the
*.so file needs to be installed to seems to differ from distribution to
distribution. The right directory for your distribution can be queried from qmake using
qmake-qt5 -query QT_INSTALL_PLUGINS. In doubt, just look where other Qt 5 plugins are stored.
Actually the build system should be able to do that query automatically. It is also possible to
specify the directory manually, e.g. for Tumbleweed one would add
-DQT_PLUGIN_DIR=/usr/lib64/qt5/plugins to the CMake arguments.
Also be sure that the version of the plasma framework the plasmoid was built against is not newer
than the version actually installed on the system. That can for instance easily happen when using
tumbleweed-cli for sticking to a previous snapshot but having the lastest version of the plasmoid
from my home repository installed.
If the Plasmoid still won't load, checkout the log of
Also consider using strace to find out at which paths the shell is looking for
For a development setup of the KDE integration, continue reading the subsequent section.
Currently translations for English and German are available. Further translations can be added quite easily:
syncthingctlcurrently does not support translations.
The contained backend libraries (which provide connecting to Syncthing, data models and more) are written for internal use whithin the components contained by this repository.
Hence those libraries do not provide a stable ABI/API. If you like to use them to develop Syncthing integration or tooling with Qt and C++, it makes most sense to contribute it as an additional component directly to this repository. Then I will be able to take it into account when changeing the API.
Since the Dolphin integration and the Plasmoid are plugins, testing and debugging requires a few extra steps. See Testing and debugging Dolphin/KIO plugin with Qt Creator and Testing and debugging Plasma 5 plasmoid with Qt Creator.
The following bugs are caused by dependencies and hence tracked externally. For bugs of Syncthing Tray itself, checkout the issues on GitHub.