-
Notifications
You must be signed in to change notification settings - Fork 259
Help
- Connecting an Android Device
- Generate Support Log
- Firewall Configuration
- Files and Settings
- Common Problems
- Uncommon Problems
- Detected Problems
If you have not already installed GSConnect and the KDE Connect Android app, please see the Installation page instead.
-
Open the Android App and GSConnect Preferences
-
Click Refresh in GSConnect preferences or the Android app
-
Connect to GSConnect by IP
-
Connect to Android by IP
-
Check your Firewall, Route and VPN Settings
The KDE Connect protocol requires ports 1716-1764 for TCP and UDP to be open. Auto-discovery requires UDP broadcasts.
The KDE Connect wiki has further information about using OpenVPN and configuring firewalls.
-
Open a New Issue
If you are still having trouble connecting, please feel free to open a New Issue.
When a problem requires detailed information to debug, you may use the built-in function for generating a support log. The log will contain information about your desktop, GSConnect and detailed debugging messages.
-
Select Generate Support Log in the menu
A dialog will open and debug information will start being logged. Do not close the dialog yet.
-
Take any steps necessary to reproduce the problem
This is the most important step. You must use the functionality which is not working. For example, if you are having trouble connecting devices you must activate the Refresh action for both devices or errors will not be logged.
Any errors or debug messages will be recorded during this period. You must leave the dialog open as long as necessary to reproduce the problem.
-
Select Review Log in the dialog
The default text editor will now open, allowing you to review the log. You should remove or censor any information you consider private before submitting this log.
WARNING: Clearing the settings in GSConnect or the KDE Connect Android App will rarely solve problems. It is far more likely that you will cause problems by doing so.
Cached data is stored in the user cache directory under gsconnect
; usually ~/.cache/gsconnect/
.
~/.cache/gsconnect/contacts.json
~/.cache/gsconnect/7b2c8d552e9043232d1466e28af55367
Cached data specific to a device is stored in a sub-directory. Plugin data is also stored in memory when in use, so you must disable a plugin before deleting its cache.
~/.cache/gsconnect/<device-id>/<plugin-name>.json
~/.cache/gsconnect/<device-id>/8ae5f579bd08e1167274e88aa79b37ea
Most settings are stored using GSettings and you can access it with dconf-editor at the path:
/org/gnome/shell/extensions/gsconnect/
The service certificate and private key are stored at the path
~/.config/gsconnect
To completely remove a device and all its settings, open the device preferences for that device and select Unpair from the menu. The device's stored data will be deleted, either immediately or (in the case of a connected device) when the connection is closed.
To completely remove GSConnect, all files and settings run following commands in order from the command-line:
gnome-extensions uninstall gsconnect@andyholmes.github.io
rm -rf ~/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io
rm -rf ~/.cache/gsconnect
rm -rf ~/.config/gsconnect
dconf reset -f /org/gnome/shell/extensions/gsconnect/
This firewall is commonly used on Ubuntu based distributions, including Pop!_OS and Linux Mint).
You can enable and use ufw
(Uncomplicated Firewall):
sudo ufw enable
sudo ufw allow 1716:1764/tcp
sudo ufw allow 1716:1764/udp
reboot if ufw
wasnt enabled previously.
If you are using nftables
, the modern replacement for iptables
, some configuration is needed to allow communication over the ports used by KDE Connect.
Edit /etc/nftables.conf
and add the following rules to the beginning of the input
chain:
tcp dport 1714-1764 accept comment "allow KDE Connect"
udp dport 1714-1764 accept comment "allow KDE Connect"
If you are filtering outgoing packets (not applicable to most users), add the following rules to the end of the output
chain:
tcp sport 1714-1764 accept comment "allow KDE Connect"
udp sport 1714-1764 accept comment "allow KDE Connect"
Then restart to apply the changes.
For more information, see the nftables wiki or the Arch wiki on nftables.
Some users have reported that even when port 1714 to 1764 are open on firewall, iptables
still need to be configured to allow connection. If that is the case, execute following commands in terminal
sudo iptables -I INPUT -i <your-interface> -p udp --dport 1714:1764 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -I INPUT -i <your-interface> -p tcp --dport 1714:1764 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -o <your-interface> -p tcp --sport 1714:1764 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -o <your-interface> -p udp --sport 1714:1764 -m state --state NEW,ESTABLISHED -j ACCEPT
Where <your-interface>
is your interface name without brackets, It is first name on nmcli
or can be found using ifconfig -a
or with inet addr
or your network settings in GUI. Note: iptables
is not persistent by itself, use iptables-save
and iptables-restore
(or iptables-persistent on debian/ubuntu based os) to save your rules between reboots.
Further information regarding similar issues can be found on KDEConnect community wiki
This firewall is commonly used in Fedora and other Red Hat distributions.
Open Firewall Configuration (firewall-config)
. In Zones ➔ Services, check the kde-connect service. Turn in on if it's not.
Make sure you choose the "Permanent" Configuration: option in the drop-down menu at the top, otherwise rebooting will discard your settings changes.
sudo firewall-cmd --permanent --zone=public --add-service=kdeconnect
sudo firewall-cmd --reload
In the above command --zone=public
, replace public
with your current zone.
If you are experiencing errors and it is unclear whether the firewall is at fault, install adb
on your computer. Then, enable USB debugging on your Android phone. With the phone connected to the computer via USB, run:
adb logcat --pid=$(adb shell pidof -s org.kde.kdeconnect_tp)
This will print error messages from the KDE Connect app itself. If you see java.net.NoRouteToHostException
, then there is most likely an issue with the firewall.
Some phone models or apps seem to have trouble exporting contacts. Please see Issue #277 for more information.
There are two ways to sync your contacts, but neither are required. If you would like to sync your contacts from Gnome Online Accounts or Evolution, please see Desktop Contacts in the Optional Dependencies section. You should disable the Contacts plugin for any devices that you want to fallback to desktop contacts.
If either of these methods fail, GSConnect will try to gather contact information from incoming phone calls and messages.
Some phone models (especially Samsung) and SMS apps (especially Signal) either don't use the standard Android database, encrypt messages or use proprietary methods for storage and access. Please see Issue #320 and KDE Connect Bug #401677 for more information.
Phones Reported
- Samsung Galaxy S6, S7, S8
- Motorola G6
- Nokia 7 Plus
- Huawei P10 Lite
Apps Reported
- Samsung Messages
- Signal
-
First see Generate Support Log
If there are errors in the log related to mounting you should open a New Issue
-
Set a location in the Android App
You must configure at least on storage location in the Filesystem expose settings.
-
Force Quit the Android App
Sometimes the SFTP server in the Android App gets stuck after a number of connections. Force quitting the App from the App Info screen and re-opening it has been know to fix this. Rebooting the Android device will have the same effect.
-
Debug the Android App
If there are no mounting errors in the log, you have configured a storage location in the app and restarted the Android App there may be a bug in the App. Assuming you have
adb
setup you can run the following command in a terminal:adb logcat --pid=$(adb shell pidof -s org.kde.kdeconnect_tp)
If there is an error in the Android logcat, you should open a bug at bugs.kde.org in the
android-application
component.
As of v28, Remote Input is only supported on X11 and Wayland with Mutter's RemoteDesktop interface.
The following distributions DO NOT support Remote Input on Wayland:
- Debian (with GNOME 3.36)
- Ubuntu (all versions)
This is not a bug in GSConnect.
NOTE: Due to an ambiguity in the protocol, the remote device will still report the keyboard as inactive when the "Handle remote keys only when editing" preference is disabled. This message can be ignored in that case (See #892).
In order to send keyboard events to a remote device it must report that the keyboard is active. If the remote device is an Android device you must follow these steps:
- Enable the Receive remote keypresses plugin in the Android app
- Enable the KDE Connect Remote Keyboard virtual keyboard in Android settings
- Change the current keyboard to KDE Connect Remote Keyboard
- Select a text entry or disable the option Handle remote keys only when editing in the plugin's settings
Whenever you update an extension from the Extensions Website, you must restart GNOME Shell. Even if you uninstall an extension then reinstall it, you must restart GNOME Shell between those steps.
This is a known issue with the website, with a pending fix. To avoid this error allow the Extensions App to update your extensions, which will notify you when you need to restart GNOME Shell.
If the Preferences window displays the message Waiting for service..., there are a few possible causes:
-
The GSConnect service is turned off
- Open the User Menu in the top-right of the screen
- Open the Mobile Settings submenu
- Select the Turn On item
-
User Extensions are disabled in GNOME Shell
Occasionally when an extension encounters a fatal error or causes GNOME Shell to crash, all User Extensions will be automatically disabled. You can re-enable them in GNOME Tweaks or with the command:
$ dconf write /org/gnome/shell/disable-user-extensions false
-
The DBus service is not launching
- Try running the following command in a terminal:
$ gapplication launch org.gnome.Shell.Extensions.GSConnect
- If that command returns an error message similar to the following:
error sending Activate message to application: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name is not activatable
- Restart the session DBus:
$ systemctl --user reload dbus-broker.service
- Try running the following command in a terminal:
If all else fails, try restarting Gnome Shell (e.g. logout then login)
Some users have reported that KDE Connect broadcasts (UDP Port 1716) can interfere with some equipment. The cause is unknown, but seems to only affect very few network connected devices such as PLCs and Wi-Fi repeaters.
- #392 Odd interference issue with other equipment
- #389 Devices invisible. Cannot connect anymore, suddenly. (comment)
- KDE Connect Bug #399694
If GNOME Tweaks reports "Error loading extension", or executing the command gnome-extensions info gsconnect@andyholmes.github.io
returns a state of ERROR
, the GSConnect and GNOME Shell versions installed may not be compatible.
You should check if the version of GSConnect you have installed is compatible with your GNOME Shell.
If GSConnect was installed through a package manager such as apt
, it's worth noting those distributions are not maintained by the maintainers of this project and may not be up-to-date. In these cases, consider switching to the recommended method of installation.
Some changes (e.g., menu actions) require restarting the GSConnect service to apply. You can do so with the following command in the terminal:
touch ~/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/daemon.js
This action forces a reload of the daemon and can help apply the changes.
These problems are automatically detected by GSConnect. Do not edit this section.
GSConnect requires ports 1716-1764 for TCP and UDP. This error means another program is using those ports, usually KDE Connect (kdeconnectd
).
-
Check if KDE Connect is running
If you have recently uninstalled KDE Connect the server may still be running.
$ pidof kdeconnectd 18839 $ lsof -i UDP:1716 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME kdeconnec 18839 andrew 19u IPv6 2394913 0t0 UDP *:1716
-
Stop KDE Connect (
kdeconnectd
) if it is runningYou should also uninstall KDE Connect, since it will start each time you log into your session.
$ killall -9 kdeconnectd
GSConnect uses the PulseAudio bindings shipped with Gnome Shell for volume control features. This error means that GSConnect failed to find the required typelib (Gvc-1.0.typelib
).
If you installed GSConnect from https://extensions.gnome.org or Zip file, please open a New Issue including your distribution and output of locate Gvc-1.0.typelib
.
If you installed GSConnect from a distribution package, please file a bug with the package maintainer and reference the Packaging page.
GSConnect uses the openssl
command-line tool to generate TLS certificates and RSA keys. This error means GSConnect could not find OpenSSL, which usually happens for Fedora Silverblue users.
Fedora Silverblue users have reported this can be installed with the following commands:
$ rpm-ostree install openssl
$ systemctl reboot