https://github.com/vimpostor/blobdrop
Drag and drop files directly out of the terminal
https://github.com/vimpostor/blobdrop
cli drag-and-drop qml qt workflow
Last synced: about 1 year ago
JSON representation
Drag and drop files directly out of the terminal
- Host: GitHub
- URL: https://github.com/vimpostor/blobdrop
- Owner: vimpostor
- License: gpl-3.0
- Created: 2021-11-06T22:02:40.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-04-13T08:53:25.000Z (about 2 years ago)
- Last Synced: 2024-04-13T10:07:26.887Z (about 2 years ago)
- Topics: cli, drag-and-drop, qml, qt, workflow
- Language: C++
- Homepage:
- Size: 433 KB
- Stars: 70
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Blobdrop
[](https://github.com/vimpostor/blobdrop/actions/workflows/ci.yml)
Drag and drop your files directly from the terminal.
https://github.com/vimpostor/blobdrop/assets/21310755/1957b6a7-475c-4930-80b9-18564ef39eb9
# Installation
Note: For Arch Linux users there is an [AUR package](https://aur.archlinux.org/packages/blobdrop-git), for Nix users there is a [flake](flake.nix) available and an official package in [nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/bl/blobdrop/package.nix).
You can also download an AppImage from the [latest release](https://github.com/vimpostor/blobdrop/releases/latest).
## Building from source
Make sure you have a C++23 compiler and the latest Qt with the Declarative and Svg modules installed.
```bash
cmake -B build
cmake --build build
# install the build/blobdrop binary
cmake --install build
```
# Usage
```bash
blobdrop [files-to-drag]
```
For more options see `blobdrop -h` or the man page `blobdrop(1)`.
## Features
- Drag files to other applications
- Pipe filenames asynchronously into stdin
- Start drag automatically without a GUI
- Hide the parent terminal emulator while dragging
- Automatically quit once all paths have been dragged
- Auto-hide the GUI while dragging
- Show mime icons and thumbnails for media
- Drag all files at once
- Act as a sink and print dropped files to the terminal
- Optionally keep the window on top
- Quickly open files with a single click
- Respect system dark mode
- Shell completions
### Frontends
Blobdrop implements multiple frontends to drag the files from:
- [From a normal window](https://github.com/vimpostor/blobdrop/assets/21310755/d86f5039-05cd-4444-9e43-cc51cf4073db)
- [Inside a desktop notification](https://github.com/vimpostor/blobdrop/assets/21310755/482b4bc1-2f15-43e3-b980-1f573c494a91), using the `x-kde-urls` Notifications extension
- [As an immediate drop to a click location](https://user-images.githubusercontent.com/21310755/266832800-519773b6-d154-4fd7-9faf-dfb25217055c.mp4), this works on all EWMH-compliant window managers
- As clipboard content, allowing to paste the file URIs to other programs
- As an [OSC8 hyper link](https://github.com/vimpostor/blobdrop/commit/3ba601c690571460fc8cd130abb57c7a15c67cf1) in the terminal emulator, but currently there exists no terminal emulator that can drag and drop OSC8 links
# Alternatives
- [dragon](https://github.com/mwh/dragon) - A GTK implementation of the same concept
- [clidrag](https://github.com/rkevin-arch/CLIdrag) - A CLI-only implementation
- [ripdrag](https://github.com/nik012003/ripdrag) - Like dragon with GTK, but rewritten in Rust
Note that none of these alternatives provide a workflow similar to blobdrop's immediate frontend (except clidrag, but it lacks many UX improvements).