This is a personal passion project of mine, it is still in its early infancy (many core features are still missing) and the development is slow but deliberate.

why should I care?

if you care about speed and deep integration with the OS this project might be of interest to you.

why?

Wireless file sharing between my devices is still unnecessarily slow, half-baked, and unintuitive. Direct-Share is my attempt to build a file transfer tool that makes local file transfer more seamless than:

  • Android ↔ Android (Nearby Share / Quick Share)
  • Apple AirDrop
  • LocalSend
  • Blip

…but for Linux desktops and Android phones, using Wi-Fi Direct.

what?

  • Python, GTK4/Libadwaita on Linux
  • Kotlin, jetpack compose on Android

if you want to stay up to date with the project or want to know or read more, you can take a look at the GitHub repo

all 14 comments

sorted by: hot top controversial new old
[–] 26 points 4 months ago* (3 children)

Try KDEConnect (or GSConnect for gnome). Clients for Linux, BSD, Android, Sailfish, iOS, macOS and Windows.

Another option (maybe better, depending on your distro) is Warpinator. Linux, Windows, and Android.

  • source
  • hideshow 3 child comments
  • [–] 10 points 4 months ago (2 children)

    Kdeconnect is usually gonna go over regular wifi or ethernet. So that might go phone to ap to laptop, for twice the wifi hops.
    Also means the speed is limited by the router, so modern phones would be slowed by an older access point.
    Or by being far from the access point yet close together.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 3 points 4 months ago

    Oh I see, thanks. I didn't understand what OP meant by Wi-fi Direct, I was thinking it just meant going over the LAN via the router. So I guess this means a device making itself into a wi-fi hotspot with is own local IP address that can be connected to directly, right?

  • source
  • parent
  • [–] 16 points 4 months ago

    i thought kde connect worked very well

  • source
  • [–] 8 points 4 months ago (1 child)

    Would be nice if done well, I would suggest you post again if you have a usable version (basically a beta) because I for example will not follow a random github repo from a half-baked project that may be abandoned anytime. Even though I woulf look forward to something you described. So dont let this be a downer but post again if you have the core things implemented.

  • source
  • hideshow 1 child comment
  • [–] 3 points 4 months ago* (5 children)

    I don't want to take away your steam, but doesn't LocalSend already do that?

    https://github.com/localsend/localsend

    I'd love it if you contributed instead, if these projects are really interchangable as I think they are.

    Love your work anyway!

  • source
  • hideshow 5 child comments
  • [–] [S] 8 points 4 months ago (3 children)

    Unfortunately it doesn't, Localsend relies on a WiFi hotspot or AP to transfer files, what I am trying to build uses WiFi Direct (aka WiFi P2P), these two are not interchangeable nor interoperable.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 1 point 4 months ago (1 child)

    Why not build that into Localsend instead of developing a separate solution?

  • source
  • parent
  • hideshow 1 child comment
  • [–] [S] 1 point 4 months ago

    The honest answer is because I prefer making my own thing for my own exact problem over trying to make someone's else tool do or behave in a way that it is not designed or made for, it is a bit philosophical for me but yeah, I am not willing to put all the effort into something that I see is solving a problem and making compromises and ignoring things in ways I don't agree with, not to mention the UI/UX disagreements I have, if localsend was my thing, it would have been very different from what we have right now.

    And also I am doing it in spite, this thing have been bugging me for years and no one is willing to put the time and effort to do it the way I think it should be done so I am doing it myself...

  • source
  • parent
  • [–] 2 points 4 months ago

    Pretty cool

  • source
  • 31 comments in c/linux@lemmy.ml view that post
    [–] 32 points 4 months ago* (5 children)

    Have you tried KDE Connect? It's cross platform and works on Linux, Windows, MacOS, Android, and iOS. It's what I use for sharing files from my phone to my computer and vice versa. It supports a lot more than just file sharing though.

  • source
  • hideshow 5 child comments
  • [–] [S] 9 points 4 months ago (3 children)

    Yes actually I have tried it and I use it to share text between my devices and receive notifications.

    The file sharing feature though is unbearably slow.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 4 points 4 months ago (2 children)

    Interesting... The file sharing is extremely quick for me at home.

    I haven't figured out how to get it working at work though (between my work phone and my work PC, both on the same network). Might not be possible with their firewalls.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 18 points 4 months ago

    why should I care?

    if you care about speed and deep integration with the OS this project might be of interest to you.

    what?

    Python

  • source
  • [+] 16 points 4 months ago (2 children)
  • [–] 4 points 4 months ago

    Well technically localsend is not native, uses dart and flutter. Something native would be cool, but it should be interoperable with localsend I think.

    Localsend is great, absolutely no issues with it design-wise

  • source
  • parent
  • [–] [S] 2 points 4 months ago

    Well, it is far from complete and far from usable right now, so right now it is not better. But when it is done it will be because of two things:

    1. Wi-Fi direct, instead of using the local network. Wi-Fi direct is P2P, which potentially will make the transfer much faster and the whole thing of setting up a hotspot or requiring the two device being connected to the same network won't be necessary.
    2. Deep integration with file managers and desktop environments
  • source
  • parent
  • [–] 21 points 4 months ago

    Vibecode

    KDEConnect and other apps already do this

  • source
  • [–] 6 points 4 months ago (4 children)
  • [–] 9 points 4 months ago* (1 child)

    That is for two devices that are both connected to the same network. If I understand what this program is doing (without actually trying it), it allows two devices to directly connect to one another via Wi-Fi to transfer a file.

    With KDE Connect, to send a file from Device A to Device B, your file travels from Device A to a network router (and any number of network switches, etc. in between), then from the router to Device B. It has to make several hops across a number of devices to reach its destination. And both endpoints have to be connected to the same external network.

    With this program, Device A and Device B create a direct Wi-Fi connection to each other and just send the file. One hop. Two devices. Direct. The devices are establishing their own ad-hoc Wi-Fi connection for the purpose of the file transfer.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 7 points 4 months ago
    [–] 4 points 4 months ago

    I use Syncthing on my Linux and Android. Once set up, it just works without me getting involved.

  • source
  • [–] 4 points 4 months ago

    There are already like 100 of these apps . but sure i will give it a try

  • source
  • [–] 3 points 4 months ago

    Wifi-direct is cool, as it doesnt require the whole "setting up a hotspot" mess

  • source
  • [–] 4 points 4 months ago* (4 children)

    How can it get more seamless than LocalSend?

    Or croc out of network.

  • source
  • hideshow 4 child comments
  • [–] [S] 6 points 4 months ago (3 children)

    Through 2 things:

    1. The answer is partly in the name, but there is no magic involved. Direct Share uses Wi-Fi Direct (also known as Wi-Fi P2P), which bypasses the middleman and connects the two devices directly to each other, potentially increasing the file transfer speed. However, it is only as fast as the slowest networking stack of the two connected devices. This is in contrast to almost all other solutions (like localsend) that rely on the two devices being connected to the same Wi-Fi network.

    2. The other thing is deep integration with most file managers and desktop environments. For me personally, I believe that you should not need to open an app to send a file to your other device. You should be able to simply right-click on any file on your system, and there should be an option that says "Send to". It should not open the whole app. It should only open a mini window or a small window with only the necessary things you need to send the file, which is:

      1. Select the device you want to send to
      2. (Optionally) Click Send

    That's all.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 4 points 4 months ago (2 children)

    For 2 that's neat to have, but how do you send the clipboard or something thats not in a file manager?

  • source
  • parent
  • hideshow 2 child comments
  • [–] [S] 1 point 4 months ago (1 child)

    Well, I guess I would need to add an option in the app to share clipboard content.

    You know what? You just gave me an idea, a very good idea. Sometimes there are things that are not in file managers, maybe in a particular app, maybe in a browser, and you just want to drag and drop it. I don't like the idea of opening the app, right-clicking on the corners of the window just to enable "keep this app on the top" so that you can drag and drop whatever you want.

    Instead, what I would like to see is a keyboard shortcut where a small window opens that stays on top of all the other windows. That you can drag and drop anything to it, or maybe copy-paste anything into it. Maybe a photo, maybe a video, maybe anything. This would work for clipboard content, for video files from other apps that are not file managers.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 4 months ago (5 children)

    Between Android phones or Android->Windows Quick Share exists. Between all other devices Bluetooth can be used for sharing.

  • source
  • hideshow 5 child comments
  • [–] [S] 6 points 4 months ago (3 children)
  • [–] 1 point 4 months ago (2 children)

    But no extra tools needed on either side.

  • source
  • parent
  • hideshow 2 child comments
  • [–] [S] 0 points 4 months ago (1 child)

    idk about other distros but on ubuntu I can't send or receive files using Bluetooth without a 3rd party tool (unless there is a pre installed cli tool that I am not aware of:)

    but anyway, if the transfer speed doesn't bother you or isn't a deal breaker for you then fair enough... have a nice day.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 2 points 4 months ago*

    KDE Connect can transfer files over WiFi, it's likely preinstalled on anything with KDE Plasma (eg SteamOS has it by default in the desktop mode), but it can also work with GNOME with the gsconnect extension. There’s also LocalSend, Syncthing and probably many more

  • source
  • parent
  • load more comments (1 reply)
    [–] 0 points 4 months ago

    I use adb push and adb pull. Simple and fast, works both over USB and wirelessly

  • source