Sync files between two bazzite installs

I beeen trying to get a bidirectional sync working between my deck and main pc (emulation configs saves etc) when i had my deck on steamos and my main system on Garuda I used syncthing. But for some reason this has caused allot of issues on bazzite . for example now syncthing doesn't want to load . Anyone know have to fix this or a good alternative for syncing my files? I tried resilio sync and found it more difficult to acomplish what I need, not to mention its propitery and has no simple GUI application.
No description
22 Replies
zany130
zany130OP•3mo ago
i think the problem may be that syncthing GTK is not really maintained anymore (seems like theres been no updates in two years) but it seems to be the only syncthing client that supports limiting how many cores get allocated to the app, and I need that for the steam deck not to get overwhelmed and hang running syncthing GTK in a terminal gives me
flatpak run me.kozec.syncthingtk

** (syncthing-gtk:2): WARNING **: 16:52:10.325: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.325: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.325: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.325: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.325: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.325: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.325: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.325: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.325: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.326: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.326: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.326: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.326: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.326: expected enumeration type void, but got PyGLibOptionArg instead
I StatusIcon Using backend StatusIconGTK3 (primary)
I App
I App Syncthing-GTK started and running in notification area

(syncthing-gtk:2): Gtk-CRITICAL **: 16:52:10.495: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
E HTTP g-tls-error-quark: Peer failed to perform TLS handshake: The TLS connection was non-properly terminated. (3)
Traceback (most recent call last):
File "/app/lib/python3.11/site-packages/syncthing_gtk/http.py", line 47, in _connected
self._connection = self.connect_to_service_finish(results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gi.repository.GLib.GError: g-tls-error-quark: Peer failed to perform TLS handshake: The TLS connection was non-properly terminated. (3)
Traceback (most recent call last):
File "/app/lib/python3.11/site-packages/syncthing_gtk/http.py", line 47, in _connected
self._connection = self.connect_to_service_finish(results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gi.repository.GLib.GError: g-tls-error-quark: Peer failed to perform TLS handshake: The TLS connection was non-properly terminated. (3)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/app/lib/python3.11/site-packages/syncthing_gtk/http.py", line 54, in _connected
self._error(e)
File "/app/lib/python3.11/site-packages/syncthing_gtk/http.py", line 199, in _error
self._error_callback(exception, self._command, *self._callback_data)
File "/app/lib/python3.11/site-packages/syncthing_gtk/daemon.py", line 752, in _syncthing_cb_config_error
self.emit("connection-error", Daemon.TLS_UNSUPPORTED, exception.message, exception)
^^^^^^^^^^^^^^^^^
AttributeError: 'TLSUnsupportedException' object has no attribute 'message'
flatpak run me.kozec.syncthingtk

** (syncthing-gtk:2): WARNING **: 16:52:10.325: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.325: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.325: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.325: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.325: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.325: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.325: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.325: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.325: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.326: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.326: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.326: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.326: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:2): WARNING **: 16:52:10.326: expected enumeration type void, but got PyGLibOptionArg instead
I StatusIcon Using backend StatusIconGTK3 (primary)
I App
I App Syncthing-GTK started and running in notification area

(syncthing-gtk:2): Gtk-CRITICAL **: 16:52:10.495: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
E HTTP g-tls-error-quark: Peer failed to perform TLS handshake: The TLS connection was non-properly terminated. (3)
Traceback (most recent call last):
File "/app/lib/python3.11/site-packages/syncthing_gtk/http.py", line 47, in _connected
self._connection = self.connect_to_service_finish(results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gi.repository.GLib.GError: g-tls-error-quark: Peer failed to perform TLS handshake: The TLS connection was non-properly terminated. (3)
Traceback (most recent call last):
File "/app/lib/python3.11/site-packages/syncthing_gtk/http.py", line 47, in _connected
self._connection = self.connect_to_service_finish(results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gi.repository.GLib.GError: g-tls-error-quark: Peer failed to perform TLS handshake: The TLS connection was non-properly terminated. (3)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/app/lib/python3.11/site-packages/syncthing_gtk/http.py", line 54, in _connected
self._error(e)
File "/app/lib/python3.11/site-packages/syncthing_gtk/http.py", line 199, in _error
self._error_callback(exception, self._command, *self._callback_data)
File "/app/lib/python3.11/site-packages/syncthing_gtk/daemon.py", line 752, in _syncthing_cb_config_error
self.emit("connection-error", Daemon.TLS_UNSUPPORTED, exception.message, exception)
^^^^^^^^^^^^^^^^^
AttributeError: 'TLSUnsupportedException' object has no attribute 'message'
DevilFish303
DevilFish303•3mo ago
is that the flatpak version? i recommend overlaying the rpm, have you given that a try?
zany130
zany130OP•3mo ago
let me try of syncthing GTK? wouldnt it be better in a distrobox? though I guess if i am allready conncerend with performance with it flatpaked, it will perform even worse in a container no?
DevilFish303
DevilFish303•3mo ago
distrobox can work as long as the folder in question is mounted and visible to the container. Performance is hard to say, there may be overhead, but whether or not you can tell, only way to find out is to try it
zany130
zany130OP•3mo ago
well syncthing running through a flatpak already brings my steam deck to its knees and hangs for several minutes. hmm can't find a rpm of syncthing-gtk according to the github it should be in the main fedora repos
DevilFish303
DevilFish303•3mo ago
oh def overlay the rpm then i have the rpm installed on steam deck and i see no impact to battery performance whatsoever
zany130
zany130OP•3mo ago
i think the rpm might of been removed. the github also mentions a arch package in the communinty repo and it seems that was droped since syncthing-gtk is no longer maintained prob better of using a diffrent syncthing client which rpm did you install ? i can't find any sthincthing clients in the fedora repos just the base syncthing pacakge
DevilFish303
DevilFish303•3mo ago
ill have to take a look in my steam deck install when i get the chance
Aru
Aru•3mo ago
syncthingy flatpak, it also supports a systemd service to start it automatically on boot
Aru
Aru•3mo ago
Flathub - Apps for Linux
Install SyncThingy on Linux | Flathub
SyncThingy = Syncthing + simple tray indicator
zany130
zany130OP•3mo ago
wasn't the whole problem I was running into because of flatpak? I was using the syncthing-gtk flatpak .
zany130
zany130OP•3mo ago
oh this one inegrates with dolphin and the rest of kde but a repo needs to be added https://martchus.github.io/syncthingtray/#intro-section
Syncthing Tray
A GUI integration
zany130
zany130OP•3mo ago
there is a flatpak but it missings the kde features so i got syncthing-gtk to work in an arch distrobox on my deck but for some reson on my main pc it does not see my external drives what the hell it wos working but after rebooting I started getting the same error again and even stranger this only happens on my deck not my main pc
syncthing-gtk

(syncthing-gtk:63370): Gtk-WARNING **: 19:27:13.761: Locale not supported by C library.
Using the fallback 'C' locale.

** (syncthing-gtk:63370): WARNING **: 19:27:13.910: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.910: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead
I StatusIcon Using backend StatusIconGTK3 (primary)

(syncthing-gtk:63370): Gtk-CRITICAL **: 19:27:14.111: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
E HTTP g-tls-error-quark: Peer failed to perform TLS handshake: The TLS connection was non-properly terminated. (3)
Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/syncthing_gtk/http.py", line 47, in _connected
self._connection = self.connect_to_service_finish(results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gi.repository.GLib.GError: g-tls-error-quark: Peer failed to perform TLS handshake: The TLS connection was non-properly terminated. (3)
Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/syncthing_gtk/http.py", line 47, in _connected
self._connection = self.connect_to_service_finish(results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gi.repository.GLib.GError: g-tls-error-quark: Peer failed to perform TLS handshake: The TLS connection was non-properly terminated. (3)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/syncthing_gtk/http.py", line 54, in _connected
self._error(e)
File "/usr/lib/python3.12/site-packages/syncthing_gtk/http.py", line 199, in _error
self._error_callback(exception, self._command, *self._callback_data)
File "/usr/lib/python3.12/site-packages/syncthing_gtk/daemon.py", line 752, in _syncthing_cb_config_error
self.emit("connection-error", Daemon.TLS_UNSUPPORTED, exception.message, exception)
^^^^^^^^^^^^^^^^^
AttributeError: 'TLSUnsupportedException' object has no attribute 'message'
syncthing-gtk

(syncthing-gtk:63370): Gtk-WARNING **: 19:27:13.761: Locale not supported by C library.
Using the fallback 'C' locale.

** (syncthing-gtk:63370): WARNING **: 19:27:13.910: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.910: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead

** (syncthing-gtk:63370): WARNING **: 19:27:13.911: expected enumeration type void, but got PyGLibOptionArg instead
I StatusIcon Using backend StatusIconGTK3 (primary)

(syncthing-gtk:63370): Gtk-CRITICAL **: 19:27:14.111: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
E HTTP g-tls-error-quark: Peer failed to perform TLS handshake: The TLS connection was non-properly terminated. (3)
Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/syncthing_gtk/http.py", line 47, in _connected
self._connection = self.connect_to_service_finish(results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gi.repository.GLib.GError: g-tls-error-quark: Peer failed to perform TLS handshake: The TLS connection was non-properly terminated. (3)
Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/syncthing_gtk/http.py", line 47, in _connected
self._connection = self.connect_to_service_finish(results)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gi.repository.GLib.GError: g-tls-error-quark: Peer failed to perform TLS handshake: The TLS connection was non-properly terminated. (3)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/syncthing_gtk/http.py", line 54, in _connected
self._error(e)
File "/usr/lib/python3.12/site-packages/syncthing_gtk/http.py", line 199, in _error
self._error_callback(exception, self._command, *self._callback_data)
File "/usr/lib/python3.12/site-packages/syncthing_gtk/daemon.py", line 752, in _syncthing_cb_config_error
self.emit("connection-error", Daemon.TLS_UNSUPPORTED, exception.message, exception)
^^^^^^^^^^^^^^^^^
AttributeError: 'TLSUnsupportedException' object has no attribute 'message'
figured it out the problem was decky. Specfically the syncthing decky plugin I forgot to update it to use syncthing GTK (I had previously set it up with syncthingy) and that was causing the issue apperently anddddd it broke again after a reboot 😒
Aru
Aru•3mo ago
i stopped using syncthing gtk and swapped to syncthingy due to issues with gtk
zany130
zany130OP•3mo ago
Sync thingy is also no longer supported on the decky plugin https://github.com/SteamDeckHomebrew/decky-plugin-database/pull/557
GitHub
Update decky-syncthing to 0.2.1 by theCapypara · Pull Request #557 ...
decky-syncthing (Syncthing) Update to 0.2.0 This adds the following to the plugin: Services are now started, stopped & enabled via Systemd (user mode) Existing Systemd user services can be...
zany130
zany130OP•3mo ago
That and the fact that sync thingy was causing my deck to freeze
Aru
Aru•3mo ago
oh, i don't use the decky plugin at all
zany130
zany130OP•3mo ago
It's just so weird GTK works flawlessly on one bazzite install and and on the the other (deck) it doesn't At least not consistently think i may know why achtually for some reason on my main system syncthing is using port 8081, but on the deck it is using port 8080. port 8080 is the same port used by decky so thats causing a conflict on the deck depending which one runs first thats why it spradicly works the problem now is I can't figure out how to change the port if I change it from the webui syncthing-gtk can't connect and if I change it in syncthing-gtk the webui complains the the ip addres can't have a : in it
2024-08-25 21:30:05: Skipping malformed listener URL "127.0.0.1:8384": parse "127.0.0.1:8384": first path segment in URL cannot contain colon
2024-08-25 21:30:05: Skipping malformed listener URL "127.0.0.1:8384": parse "127.0.0.1:8384": first path segment in URL cannot contain colon
Screw it guess I'm switching to this. Have to figure out now how to a the repo to rpm-ostree.... Got syncthing-gtk working on my deck Makes no sense but https has to be disabled in syncthing when running on the deck. Otherwise it conflicts with decky even if you change it to a different port Again my main PC (which also has decky with the exact same plugins in fact I'm syncing the decky folder between both machines with syncthing) does not have this issue I can use https no problem. As long as syncthing is running in a different port that's enough for it to not to conflict with decky I rebooted the deck multiple times to make sure it was not a fluke and sure enough it works as long as I disable https in syncthing I have absolutely no idea how 1. Just the fact of using https conflicts with decky regardless of port 2. This only happens on a steam deck. On my other device https and decky work find
DevilFish303
DevilFish303•3mo ago
ah yeah so my mistake, i got myself mixed up, i use the standalone tar.gz installation, there is no rpm to overlay, i extract syncthing to /usr/local, manually edit the systemd serivce and run it as my current user, its very manual and requires reading syncthings docs
zany130
zany130OP•3mo ago
why not use the brew package? noticed the syncthing binary included with syncthing gtk is pretty old so I just brew install syncthing and pointed syncthing gtk to that syncthing binary also i don't like plain syncthing it has no desktop notfications or anything thats why I am trying to use a client (and what I also don't like about resilio) syncthing tray looks really cool and it integrates fully with KDE and dolphin but you need to add a OBS repo which doesn't sound like a good idea on immutable distros like bazzite syncthing-gtk is a good middle ground that can be flatpaked what I might do is just do a custom image with syncthing tray included
DevilFish303
DevilFish303•3mo ago
its because of an automation script i wrote on my end back when i was on regular steamos, slightly modified to work on bazzite, it just works for me, i don’t feel like breaking it. Feel free to use whatever works for you.
zany130
zany130OP•3mo ago
ah ok anyway solution is to using the syncthing GTK flatpak. the port has to be changed in the webui to 8384 so it dosn't confilict with decky. For some reason on my steamdeck I had to take it a step further and disable HTTPS for syncthing and decky not to conflict. Also the syncthing version packged with the syncthing GTK flatpak is old so it is probably better to use the brew syncthing package with brew install syncthing then just point syncthing GTK to to /home/linuxbrew/.linuxbrew/opt/syncthing/bin/syncthing
Want results from more Discord servers?
Add your server