pipedrag
Drag files found on the command line into any app that accepts drops:
find ~/Downloads -name '*.pdf' | pipedrag
pipedrag reads file paths from stdin (newline- or NUL-separated), opens a
small window with a multi-file icon, and lets you drag it into Dolphin, a
browser, a chat window … as if you had selected the files in a file manager.
Drops can be chunked (pipedrag -n 1000), most browser uploads have some sort of limit.
Chunks already dropped are marked as "green".
$> find . -name '*.jpeg' -type f | pipedrag -n 1000
How to install
... pending release ...
Development and contribution
./setup.sh # creates .venv and installs the pinned dependencies
Requires Python ≥ 3.10. If python3 -m venv fails on Debian/Ubuntu, install
python3-venv first.
How the drop works
- The drag speaks XDND — the same protocol Dolphin uses — via
text/uri-list. - The dragged files are registered with the FileTransfer portal, so
sandboxed targets (snap/Flatpak apps) can read them even from directories
their sandbox blocks directly — e.g. snap Firefox silently denies dot-directories
like
~/.local/share/. This is the same mechanism KDE/Dolphin uses.
Drop inspector
upload-test.html is a browser page that prints everything the browser
exposes about dropped files (metadata, mime types, filesystem handle) and
their SHA-256/SHA-384/SHA-512 checksums — useful for verifying a drop end
to end and cross-checking with sha256sum.
Notes
- The drag starts from inside the mouse-press handler, as Qt requires on Wayland.
AI transparency
This project was largely coded via claude using the deepseek api. I couldn't have built a QT app so quickly and the drag'n'drop part with the portals was a lot more messy than expected.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pipedrag-0.1.0.tar.gz.
File metadata
- Download URL: pipedrag-0.1.0.tar.gz
- Upload date:
- Size: 22.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba878ab08a4b727ccc63e47847db4104a882721f08ade796999c8ad231dcbe81
|
|
| MD5 |
d64199f5bfa69d9d31f6bdd4ba757129
|
|
| BLAKE2b-256 |
904fbed6dddb2e0cb44b2a5c7d66bb017eb21fae7a4803d6d7b4e61700f764f7
|
File details
Details for the file pipedrag-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pipedrag-0.1.0-py3-none-any.whl
- Upload date:
- Size: 22.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aff969f37d322ccaa0ffccf26f45a32bbb8bf78e6fcd0459054def68b70caeb7
|
|
| MD5 |
99b338de3eb193af70c5ae6b9d566ea8
|
|
| BLAKE2b-256 |
9a02bb54ca78bdc91dc8d2ed04173d8a202f3d3e9c039770d6e034f722e9e294
|