Skip to content

Cliptoo

Advanced clipboard manager for Linux KDE. Use your clip history as a library of things. Small footprint, fast performance.

Features

Performance

Clipboard & Paste

Content

Organization & Tools

Storage & Maintenance

Customisation

System Integration


Install

Download GitHub Latest Release:

Platform Format Install
Linux AppImage chmod +x cliptoo-*-x86_64.AppImage && ./cliptoo-*-x86_64.AppImage
Debian / Ubuntu .deb sudo apt install ./cliptoo_*_amd64.deb
Fedora / RHEL .rpm sudo dnf install ./cliptoo-*.x86_64.rpm
Arch / CachyOS .pkg.tar.zst sudo pacman -U cliptoo-*.pkg.tar.zst
Arch / CachyOS PKGBUILD (local build) make package && sudo pacman -U .pkg/cliptoo-*.pkg.tar.zst
Any source make install (installs to /usr/local; see requirements)

Note: The AppImage adds itself to the application menu, installs its icon, and repoints the entry when you move or rename it.


Development

Tech Stack

Component Technology
Language Rust 2024
UI Slint, Qt 6 backend
Clipboard wl-clipboard-rs, wayland-client, wlr/ext data-control
Storage SQLite + FTS5 (rusqlite)
Runtime Tokio
Images image, resvg, jxl-oxide, rqrr
Colour palette
D-Bus / portals ashpd, zbus
Tray / input Slint SystemTrayIcon, evdev
HTTP reqwest (rustls)

Data lives in ~/.local/share/Cliptoo/ (DB, images), config in ~/.config/Cliptoo/, cache in ~/.cache/Cliptoo/, logs in ~/.local/state/Cliptoo/Logs/.

Requirements

Wayland with KDE Plasma 6. xdg-desktop-portal-kde provides the global hotkey portal and ships with Plasma.

Building needs Rust stable (2024 edition, rustup) plus the Qt 6, Wayland, xkbcommon, fontconfig, and dav1d development headers, clang, and mold:

Distro Command
Debian/Ubuntu sudo apt install qt6-base-dev qt6-wayland libwayland-dev libxkbcommon-dev libfontconfig1-dev libdav1d-dev pkg-config clang mold
Fedora sudo dnf install qt6-qtbase-devel qt6-qtwayland libwayland-devel libxkbcommon-devel fontconfig-devel dav1d-devel clang mold pkgconfig
Arch sudo pacman -S qt6-base qt6-wayland wayland wayland-protocols libxkbcommon fontconfig dav1d clang mold pkgconf

Local builds must use those linkers: set linker = "clang" and rustflags = ["-C", "link-arg=-fuse-ld=mold"] under [target.x86_64-unknown-linux-gnu] in ~/.cargo/config.toml. CI passes the same values through CARGO_TARGET_*.

Build & Run

git clone https://github.com/dcog989/cliptoo.git && cd cliptoo
cargo install cargo-edit cargo-outdated cargo-sweep   # optional

cargo run                              # debug build and run
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings
cargo fmt --all -- --check
cargo fmt --all                        # apply formatting
slint-lsp format -i src/ui/ui/*.slint
make translations                      # rebuild PO catalogs from @tr()

cargo outdated -w
cargo upgrade && cargo update --verbose
cargo sweep --time 14
cargo clean
bun install                            # website build tools
bun run website                        # live site rendered from README.md
bun run website:build                  # static site in website/dist

Release

Releases use Cocogitto (cargo install cocogitto / sudo pacman -S cocogitto) and Conventional Commits, configured in cog.toml.

cog bump --auto               # bump version, sync manifests, write `CHANGELOG.md`, commit, tag, push
cog bump --version 1.23.4     # manual version
cog changelog                 # changelog preview

License

GNU General Public License v3.0.