While it is possible to share files in Linux using tools like Samba, FTP and SSH, these utilities often require fiddling with terminal commands and there is no GUI in most cases. A lot of people prefer these methods, however this article focuses on easy to use GUI alternatives that provide similar functionality.
So let’s jump in.
GSConnect / KDE Connect (Between desktops, desktops to/from Android)
Requirements: Both receiver and sender must have either GSConnect or KDE Connect Android app installed and running during file share.
GSConnect is an implementation of KDE Connect, adapted especially for GNOME desktop.
KDE Connect is a free and open source cross-platform app that allows your Linux and Android devices to communicate with each other as long as they are on the same network. You can securely share content like notifications, files and SMS messages. KDE Connect also allows you to control your desktop through Android phone.
GSConnect is available as a Gnome Shell extension and it can be installed from here. KDE Connect Play Store app can be downloaded from here. Note that GSConnect may not work if KDE Connect desktop application is installed on your device, so you are advised to install only one of both.
After installing the extension, click on the power icon on the top panel, then click on “Mobile Devices” to expand it, followed by a click on “Mobile Settings” as shown in the screenshot below:
Click on the three dot button located at the top bar of the new application window just launched, then click on the “Share” button to start sharing file with another device either having GSConnect or KDE Connect Android app installed. If you are asked to “pair” the device, just follow on screen instructions to pair the devices.
You can also send a file from Android device to desktop PC. Option to send files will appear once you complete the pairing process. You may also have to give storage access, read and write permissions to KDE Connect Android app.
LAN-Share (Between Desktops)
Requirements: Both receiver and sender must have LAN-Share app installed and running during file share.
LAN-Share, as the name suggests, is a Local Area Network (LAN) file transfer application for Linux. It can be used to wirelessly transfer a whole folder or multiple files without any need of additional configuration.
Latest build of LAN-Share in the form of AppImage can be downloaded from here. After downloading the app, make it executable using your file manager. The GUI is pretty straight forward, you just have to click on “Send” button, select a file and then select a receiver to start file sharing.
Teleport (Between Desktops)
Requirements: Both receiver and sender must have Teleport app installed and running during file share.
Teleport is a simple and minimalistic GTK3 app to share files between Desktop PCs running on the same local network.
To install teleport on Ubuntu, run commands below:
$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
$ flatpak install flathub com.frac_tion.teleport
To run the app, click on the app icon in application launcher or run the command below:
Once you launch the teleport app, it will automatically detect another teleport app running on a different PC on the same network. All you have to do is click on “Send File” and follow the onscreen instructions.
NitroShare (Between Desktops)
Requirements: Both receiver and sender must have NitroShare app installed and running during file share.
NitroShare is a simple but effective cross-platform app to share files between devices on the same local network. What makes it different from others is its ability to share files between different operating systems for desktops. NitroShare is available for Linux, Windows and macOS.
NitroShare can be downloaded from the official Ubuntu repositories, you can install it by running the command below:
You can launch NitroShare from the application launcher, however you may not see any GUI window as it opens docked to the system tray. Just click on the indicator in the system tray and it will give you a small menu to view and initiate the transfers.
TrebleShot (Between Desktops, Desktop to Android, Android to Desktop)
TrebleShot is a free and open source application for Android and desktop devices that allows you to send and receive files over local network.
After launching the app, you will find “Transfers” tab with a “Send Files” button at the bottom. Just click the button to initiate file transfer and follow the onscreen instructions. TrebleShot also allows you to share text messages between devices using “Text stream” tab.
The Android app UI is clean, minimalistic and functional.
Snapdrop (Between Desktops, Desktop to/from Android, Between Device and Chrome or Firefox Browser)
Requirements: Both receiver and sender must have https://snapdrop.net/ URL opened in supported browser.
Snapdrop is a local file sharing web application that runs in your browser. Inspired by Apple’s Airdrop, It creates a P2P connection using WebRTC to share the files. Your files are never stored on any server and it doesn’t even use a database.
To start sharing files, just open https://snapdrop.net/ URL in a browser running on both the receiver’s and sender’s device.
Snapdrop will automatically detect receiving device and it will show an icon, platform and browser name. Click on the device icon to start sharing.
Snapdrop running in Chrome for Android correctly detects Firefox running in Ubuntu with https://snapdrop.net/ URL opened in a tab, as shown in the screenshot below:
Once you have shared the file, the receiver will get a notification in browser to download the file.
This is by far my favorite method to share files between devices and it is not restricted to any specific OS. File sharing is limited to peers in local network only and as stated earlier, you don’t have to worry about your files going to any third party servers.
To conclude, I would recommend you to try out these apps at least once to gauge their utility according to your use cases. A lot of these apps provide additional functionality besides file sharing. KDE Connect / GSConnect is basically a swiss army knife that allows you to do a lot of stuff remotely on your Linux Desktop PC.