feat: add Clipper clipboard workspace - #348
Draft
blackbartblues wants to merge 5 commits into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Plugin
blackbartblues/clipperplugin.toml)What it does
Clipper provides a fullscreen clipboard workspace with searchable and typed
cliphisthistory, image thumbnails, persistent pinned clips, and freely positioned sticky notecards. It can use an isolated database or an existing global cliphist database, and its paste action restores the window that was focused before the panel opened.The plugin ships a bar widget, panel, singleton service, Control Center shortcut, English source translations, complete IPC coverage, tests, README, and a store thumbnail.
Core dependency
This is intentionally a draft while its Noctalia core dependencies are reviewed:
frameVisible = false.decorated = falsefor the transparent fullscreen workspace. Core still needs that panel capability before this PR can become ready for review.This PR adds the matching community manifest-validator schema and boolean validation for
decorated, including regression tests. That keeps CI able to validate the plugin while the runtime support is reviewed separately in core.External dependencies
cliphist: stores, lists, decodes, deletes, and clears clipboard history.wl-copy: copies history and pinned payloads back to the Wayland clipboard.wl-paste: runs the private database's text and image watchers.wtype: sends the paste shortcut after focus restoration.hyprctl: captures and restores focus on Hyprland.niri: captures and restores focus on niri.nc: communicates with the MangoWC IPC socket.Only the compositor-specific command for the active session is used. The plugin makes no network requests. It writes its private database, pins, notes, and bounded thumbnail cache to the Noctalia plugin data directory, and exports requested notes to
~/Documents/Clipper.Testing
v5.0.0-beta.8-36-g8403cb987adf-dirtyChecks performed:
lua tests/service_parser_test.lualua tests/service_global_database_test.luanoctalia plugins lint clipper— 0 errors, 0 warningsrefreshdispatched successfully with the panel closedwipeand IPCclearare rejected without spawningcliphistScreenshots / Videos
Checklist
idafter the/inplugin.tomlexactly.plugin.toml,README.md,thumbnail.webp, andtranslations/en.json.README.mdfollows theREADME template, documents
every entry id and dependency, and includes exact panel IPC commands and launcher prefixes where applicable.
thumbnail.webpwith the thumbnail generator.versionfollows semver and is bumped in this PR;plugin_apiis the oldest API level this plugin requires.understand that language well enough to review and maintain it (no unreviewed machine/LLM translations).
catalog.toml; CI generates it.Code review attestation
Plugins run as trusted, unsandboxed Luau in the user's session. Confirm:
licensedeclared inplugin.toml.