Wayland clipboard manager that will make you clap 👏

Overview

Clapboard - clipboard manager that makes you clap 👏

Clapboard is a simple clipboard manager for Wayland, built in Rust. It saves a history of your clipboard usage, and lets you paste things you've copied earlier. It also lets you configure "favorite" pastes for strings you need often. For example, you can set favorites with your address, phone number, email address etc - and they'll all become just a few clicks away.

video.webm

Requirements

Installation

From source

  • git clone the repository
  • Run cargo build --release
  • copy the clapboard executable to your PATH

Arch Linux

Clapboard is available on AUR as clapboard-git.

Usage

  • clapboard store STRING should run whenever something is copied. If you're using Sway, just add this to your ~/.config/sway/config:
exec wl-paste --watch bash -c "xargs -0 -I{} clapboard store {}"
exec wl-paste -p --watch bash -c "xargs -0 -I{} clapboard store {}"
  • Optionally, bind some key to run clapboard. I'm binding the Favorites key in Sway like this:
bindsym XF86Favorites exec clapboard

Configuration

Below is the default Clapboard configuration. If you want to change it, create a similar file at ~/.config/clapboard/config.toml

launcher = [ "tofi", "--fuzzy-match=true", "--prompt-text=clap: " ]
history_size = 50

[favorites]
# You can add your favorite clipboard pastes here like this:
# "some key" = "some value"

Fun fact

Clapboard was originally built in Python and later converted to Rust with the help of ChatGPT.

You might also like...
This crate provides a convenient macro that allows you to generate type wrappers that promise to always uphold arbitrary invariants that you specified.

prae This crate provides a convenient macro that allows you to generate type wrappers that promise to always uphold arbitrary invariants that you spec

The batteries for core that you never knew you needed.

core+ The batteries for core that you never knew you needed: core+ coreplus documentation Core+ contains types that make it possible to write no_std l

Tells you how many years you need to wait until your subatomic xeon crystal synchronizer has doubled in plasma inversion efficiency on the Goldberg-Moleman scale or whatever.

about Tells you how many years you need to wait until your subatomic xeon crystal synchronizer has doubled in plasma inversion efficiency on the Goldb

Ever got frustrated when you realize that the for loop you were writing

for_each_repeat Ever got frustrated when you realize that the for loop you were writing... fn foo(mut iter: impl IteratorItem=i32) { for i in it

A tool that, like, screams at you when you say like

Dislike Do you, like,... dislike constantly saying "like" as much as I do? Then, like,... you've come the right place! This tool is like EXACTLY what

Tool to make Solus packaging even easier.

A small tool to make packaging for Solus even easier. Features Remove all packages from the local solbuild repo.

CLI tool that make it easier to perform multiple lighthouse runs towards a single target and output the result in a "plotable" format.

Lighthouse Groupie CLI tool that make it easier to perform multiple lighthouse runs towards a single target and output the result in a "plotable" form

little brother of gnu-copypasta-maker To compile, use make.

UWU Maker little brother of gnu-copypasta-maker To compile, use make. To install, use sudo make install or if you are root make install To uninstall,

Macros to make writing proc-macro crates easy

proc-easy Macros to make writing proc-macro crates easy. This crate provides mainly macros and supporting types and traits to reduce amount of boilerp

Comments
  • Doesn't work under FreeBSD 13.1

    Doesn't work under FreeBSD 13.1

    $ env RUST_BACKTRACE=full clapboard

    thread 'main' panicked at 'Failed to start command: Os { code: 2, kind: NotFound, message: "No such file or directory" }', src/main.rs:104:10
    stack backtrace:
       0:        0xe2717ef4f - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h919bef3d5abebde9
       1:        0xe271973be - core::fmt::write::h6413343c5226105f
       2:        0xe2715d945 - std::io::Write::write_fmt::had0ddcb25461208f
       3:        0xe2717ed05 - std::sys_common::backtrace::print::h5ed9962f90e9b258
       4:        0xe2716bd0f - std::panicking::default_hook::{{closure}}::h3978a8a8f5c1f893
       5:        0xe2716b9a1 - std::panicking::default_hook::h0cdbdd5201407347
       6:        0xe2716c3cb - std::panicking::rust_panic_with_hook::h15bc8b6da20c2af3
       7:        0xe2717f2a7 - std::panicking::begin_panic_handler::{{closure}}::h082a693f9436206b
       8:        0xe2717f09c - std::sys_common::backtrace::__rust_end_short_backtrace::h56343aa2331ff455
       9:        0xe2716bf52 - rust_begin_unwind
      10:        0xe27196663 - core::panicking::panic_fmt::hf18d1d226927e137
      11:        0xe2719bbb3 - core::result::unwrap_failed::ha5725a0b4539229c
      12:        0xe27144816 - clapboard::main::hb1a1464cfff07260
      13:        0xe27145933 - std::sys_common::backtrace::__rust_begin_short_backtrace::hde3d401afab08dba
      14:        0xe27137229 - std::rt::lang_start::{{closure}}::hc50cfc3e00971e09
      15:        0xe271623a4 - std::rt::lang_start_internal::hadf3843363799440
      16:        0xe27144fb5 - main
    
    opened by iron-udjin 6
Releases(v0.1.1)
Owner
Yo'av Moshe
When it's light I'm working on Cloudflare Zaraz, when it's night I'm just hacking around.
Yo'av Moshe
Provides a wrapper to deserialize clap app using serde.

clap-serde Provides a wrapper to deserialize clap app using serde. API Reference toml const CLAP_TOML: &'static str = r#" name = "app_clap_serde" vers

null 17 Jan 9, 2023
Steno for Wayland

WayPlover Steno for Wayland Description A Steno Stroke Interpreter for Wayland. Open Steno Project Learn Plover Usage wayplover --port /dev/ttyACM0 --

Travis Davis 9 Oct 23, 2022
A wallpaper daemon for Wayland compositors

Paper A wallpaper daemon for Wayland compositors implementing the layer-shell protocol. Features Supports png and jpg format Tiled wallpapers Bordered

snakedye 20 Nov 26, 2022
Multi-device clipboard sharing.

share-clip 多设备剪切板共享 特性 采用 Rust 实现。便捷/高性能 基于 Redis(可轻松支持广域网/局域网的共享) 自动发现同身份下的机器 全数据 RSA 分段加密 (出于性能及其他原因考虑替换为 XSalsa20Poly1305 加密) 支持文本和图片 支持共享提示(macOS

null 59 Dec 21, 2022
Turn off monitors to save power (for Wayland)

Same as xset dpms force off, but for Wayland. It requires zwlr_output_power_manager_v1 and org_kde_kwin_idle support from the Wayland compositer. wlro

依云 15 Dec 8, 2022
Dynamic key remapper for X11 and Wayland

???????????? ⌨️ xremap is a key remapper for Linux. Unlike xmodmap, it supports app-specific remapping and Wayland. Concept Fast - Xremap is written i

Takashi Kokubun 643 Jan 8, 2023
Wallpaper daemon for Wayland

wpaperd wpaperd is a minimal wallpaper daemon for Wayland. It allows the user to choose a different image for each output (aka for each monitor) just

Danilo Spinella 53 Dec 28, 2022
Default implementation of the Wayland protocol for use with wl

Wayland An implementation of core Wayland interfaces and convenience functions for accelerating the development of Wayland clients and servers using t

AidoP 1 Jan 24, 2022
Swayidle alternative to handle wayland idle notifications, sleep and lock events in Rust with Lua scripting based configuration language

swayidle-rs This is intended as a replacement of sway's idle management daemon. I use it as a tool to understand rust message passing and state manage

Reza Jelveh 8 Nov 27, 2023
xdotool-like for KDE Wayland

kdotool - a xdotool clone for KDE Wayland Introduction Wayland, for security concerns, removed most of the X11 APIs that xdotool uses to simulate user

Jin Liu 25 Dec 3, 2023