Skip to main content

Process clipboard content and show helpful overlays or notifications based on the content, e.g. parse UNIX timestamps, AWS account IDs, VINs, base64 strings and more.

Project description

clipboard-processor

CI Build

Process clipboard content and show helpful overlays or notifications based on the content, e.g. parse UNIX timestamps, AWS account IDs, VINs, base64 strings and more.

All parsing & decoding is done locally. The clipboard content is not sent to any external service.

Installation

Quickstart

Install into userspace, create a userspace systemd service & enable it (via installer script):

curl -L -o install-clipboard-processor https://raw.githubusercontent.com/tom-mi/clipboard-processor/main/scripts/install
# review & adapt the installer as needed
chmod +x install-clipboard-processor
./install-clipboard-processor

Manual installation

Some features require additional libraries to be installed (see below).

Install with required dependencies only:

pip install clipboard-processor

Install with all optional dependencies (recommended):

pip install clipboard-processor[all]

Usage

clipboard-processor

Show help:

clipboard-processor --help

Run with xclip-primary input mode:

clipboard-processor --input xclip-primary

Functionality

Input

There are different input modes available:

Mode Description
auto Use pyperclip for cross-platform clipboard access. This is the default.
xclip-primary Use the primary selection on linux via xclip. No explicit copy operation is needed – selecting the text is sufficient. Requires xclip command in the search path.

Plugins

All decoding functionality is provided via plugins. Per default, all available plugins are enabled.

Plugin Description External library
aws-account-id Show AWS account name for given AWS account ID by parsing ~/.aws/config -
base64 Decode base64 strings -
cron Print human readable description of cron expressions cron-descriptor
hex-utf8 Decode printable UTF-8 strings from hexadecimal representation -
jwt Decode JSON web tokens (JWTs) PyJWT
oui Show vendor name for given MAC address or OUI (see IEEE OUI database) netaddr
ulid Parse ULIDs and show the encoded timestamp python-ulid
unixtime Parse UNIX timestamps and show the human-readable (ISO 8601) time -
vin Decode Vehicle Identification Numbers (VINs) vininfo
well-known Show explanation for well known "magic" strings.

Output

There are different output modes available:

Mode Description
ui Use tkinter overlay near the current mouse position to show the output. This is the default.
notify Use desktop-notifier to show the output in a desktop notification.
stdout Print the result of the processing to the standard output. This is mostly intended for debugging and testing.

Development

This project uses Hatch for managing the development environment.

Prerequisites

Install xvfb for running the snapshot tests.

TODO: some more effort might be necessary to support Windows and macOS.

Run all tests

hatch test --all
hatch run test-minimal:run
hatch run test-snapshot:run

Create environment for IntelliJ

Create a development environment in .venv/ which can easily be used by IntelliJ or other IDEs:

hatch env create dev

Run development version

hatch shell
clipboard-processor

or

hatch run clipboard-processor

Troubleshooting

In case dependencies are not synced into an existing env, try removing all environments:

hatch env prune

Release a new version

Draft a new release on GitHub.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clipboard_processor-0.3.0.tar.gz (18.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clipboard_processor-0.3.0-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

Details for the file clipboard_processor-0.3.0.tar.gz.

File metadata

  • Download URL: clipboard_processor-0.3.0.tar.gz
  • Upload date:
  • Size: 18.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for clipboard_processor-0.3.0.tar.gz
Algorithm Hash digest
SHA256 07ea085c9c8dfe89fa5dea52fa6e4030ced84341f7bbe0e18f1c20240a6e5235
MD5 3032c72576e3fcbd94bfd709437a4320
BLAKE2b-256 63ccd29dd6badb58b1e7255773236707df59ee796032de5561a2b9d88f40e1c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for clipboard_processor-0.3.0.tar.gz:

Publisher: release.yml on tom-mi/clipboard-processor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file clipboard_processor-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for clipboard_processor-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 741d323a7c4458e73cd9733d293eed4d841e5c0b01ec3d99da01c98396bf5e41
MD5 451c7b506249478df3f3054fbe952910
BLAKE2b-256 eda627a4b60f91fe870164f4522ed6811e145996e4aedcae85404fbe0348f26f

See more details on using hashes here.

Provenance

The following attestation bundles were made for clipboard_processor-0.3.0-py3-none-any.whl:

Publisher: release.yml on tom-mi/clipboard-processor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page