Skip to content

Add plugin: Password Store (pass)#863

Draft
bojanpy wants to merge 2 commits into
noctalia-dev:mainfrom
bojanpy:passwordstore
Draft

Add plugin: Password Store (pass)#863
bojanpy wants to merge 2 commits into
noctalia-dev:mainfrom
bojanpy:passwordstore

Conversation

@bojanpy
Copy link
Copy Markdown

@bojanpy bojanpy commented May 16, 2026

Summary

Adds a launcher provider that integrates with pass (the standard Unix
password manager). Two search prefixes are supported from the
launcher:

  • pass — fuzzy search all entries, press Enter to copy the
    password to clipboard
  • po — fuzzy search all entries, press Enter to copy the
    current TOTP code to clipboard

How it works

On init the plugin runs find against $PASSWORD_STORE_DIR (falling back
to ~/.password-store) to build the entry list. Search uses FuzzySort
from qs.Commons — same engine as the app launcher — so ranking is
consistent. Activation calls pass -c or pass otp -c ,
both of which clear the clipboard after 45 seconds per pass defaults.
Wayland clipboard (wl-copy) is handled automatically by pass when
$WAYLAND_DISPLAY is set.

Dependencies

  • pass — password lookup and clipboard copy
  • pass-otp — TOTP code generation (po prefix)
  • wl-clipboard — Wayland clipboard support (recommended)

Checklist

  • manifest.json includes id, name, version, minNoctaliaVersion,
    author, license, description, tags
  • minNoctaliaVersion set to 3.6.0 (minimum version with plugin
    launcher provider API)
  • No plugin settings required — works out of the box with a standard
    pass setup
  • README.md with usage, requirements, install instructions, and
    troubleshooting
  • Tested on Hyprland / Wayland

@github-actions

This comment was marked as duplicate.

@github-actions

This comment was marked as resolved.

@github-actions

This comment was marked as resolved.

1 similar comment
@github-actions

This comment was marked as duplicate.

@github-actions

This comment was marked as duplicate.

@github-actions

This comment was marked as resolved.

@spiros132
Copy link
Copy Markdown
Collaborator

Do not add the registry file, that one gets updated automatically.

… false and is NOT needed!

(H) Line 1309: The repository field needs to point to the "https://github.com/noctalia-dev/noctalia-plugins" github repository!

Signed-off-by: Bojan Arch Jovanovic <bojan@kortechs.io>
@bojanpy
Copy link
Copy Markdown
Author

bojanpy commented May 17, 2026

Do not add the registry file, that one gets updated automatically.

Done ✔️

Copy link
Copy Markdown
Collaborator

@spiros132 spiros132 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some feedback about the PR! :)

Comment thread pass/Main.qml
}

Component.onCompleted: {
LauncherProviderRegistry.registerPluginProvider(pluginApi.pluginId, _providerComponent, {});
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do not add your launcher provider this way, create an object called LauncherProvider and provide that in the manifest itself. The plugins aren't the ones responsible with registering and unregistering their launcher providers from / to the shell.

Comment thread pass/manifest.json
@@ -0,0 +1,20 @@
{
"id": "pass",
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pass might be a too small name I would say. Maybe password-store, or something similar like that.

Comment thread pass/README.md

## Installation

### Manual Installation
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this is the only subsection in the Installation section, it might confuse users. I would suggest either skip the installation section or add a small part saying that they can just download the plugin from the noctalia settings.

@spiros132 spiros132 marked this pull request as draft May 21, 2026 21:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants