Skip to content

0xADE/xpass

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Xpass

A GUI for the standard unix password manager.

Made with Go and the Gio UI toolkit.

Planned as a part of ADE (yet a mythical desktop environment).

Features

  • Fast search (by filter) and navigation in your password database.
  • Copy passwords and other fields into the clipboard.
  • Clipboard is automatically cleared after 60 seconds (customizable).
  • Support markdown formatting for the fields.
  • Per-field masking in the formatted view: prefix a metadata key with . to hide its value (e.g. .pin: 1234).
  • Card attachments: attach files to a password entry (images, PDFs, etc.), optionally GPG-encrypted, referenced from card metadata by pragma lines.
  • Keep state between runs for selecting fields of the same record.

screenshot

Keyboard shortcuts

Shortcuts apply globally unless you are in edit mode (where arrows and Escape behave like a normal editor).

Shortcut Action
Escape Quit the app (saves last selection to cache). In edit mode: cancel editing (or abandon a new card — see below).
/ Move selection in the list.
Ctrl+Enter Toggle Formatted viewNot Masked Source. If the “add new record” row is visible, also creates the new entry.
Ctrl+C In Not Masked Source only: copy the current text selection to the clipboard (starts the same clear timer).
Ctrl+L Copy the first matching field among login, user, username (case-insensitive keys).
Ctrl+E Copy the first matching field among email, mail, e-mail.
Ctrl+O Open a URL: looks for url or link, otherwise the first metadata value containing ://. Uses xdg-open.
Ctrl+M Open edit mode for the selected entry (must be decrypted first).
Ctrl+R After a failed decrypt (“Wrong key”), retry decryption for the selected entry.

Card attachments

Attachments let you store files next to a password card (scans, photos, PDFs, etc.) while keeping a reference inside the card’s metadata.

On disk

For a card at documents/my-passport.gpg, files live in a sibling directory:

~/.password-store/
  documents/
    my-passport.gpg          ← encrypted card (password + metadata)
    my-passport/             ← attachment directory
      scans/photo1.jpeg
      secret.pdf.gpg         ← optional per-file GPG encryption

Attachment files inside card directories are not listed as separate password entries.

Pragma format

Each attachment is declared on its own metadata line:

#relative/path;content-type

Examples:

#scans/photo1.jpeg;image/jpeg
#secret.pdf.gpg;application/pdf

Rules:

  • # must be the first non-space character on the line (no space after #).
  • relative/path is relative to the card’s attachment directory; subdirectories are allowed (scans/photo1.jpeg).
  • content-type is a MIME type (e.g. image/jpeg, application/pdf).
  • Prefix the line with . to mask the attachment in formatted view (shows <file data> instead of the filename), same idea as masked KV fields: .#secret.txt;text/plain
  • Spaces in filenames can be written as \ in the path (e.g. #Sen\ titolo.png.gpg;image/png).

Metadata layout: key–value lines first, then attachment pragmas, then any free-form text (notes, Markdown).

Example card content:

hunter2
login: alice
url: https://example.com
#scans/id-front.jpeg;image/jpeg
#scans/id-back.jpeg.gpg;image/jpeg

Passport renewal notes…

Adding attachments (UI)

  1. Decrypt the entry and open edit mode (Ctrl+M).
  2. Click Attach File (requires zenity or kdialog for the file picker).
  3. Edit the target path if needed (e.g. scans/photo1.jpeg).
  4. Leave Encrypt with GPG checked to store photo1.jpeg.gpg (recommended); uncheck to keep a plaintext file on disk.
  5. Click Add, then Save so the pragma line is written into the card.

The file is copied into the attachment directory immediately; saving persists the #path;type reference in the encrypted card.

Viewing attachments

In Formatted view:

  • Click the filename or image preview — copy decrypted content to the clipboard (same clear timer as other copies).
  • View — decrypt if needed, write a temporary file, and open it with xdg-open. Temp files are removed after 30 seconds and on app exit.

Unencrypted images show an inline preview. Encrypted images and other file types show the filename only until opened.

Masked attachments (.#…) are hidden in formatted view and cannot be copied or opened from there.

Configuration (environment)

Compatible with common pass variables used by this app:

Variable Role
PASSWORD_STORE_DIR Password store root (default ~/.password-store).
PASSWORD_STORE_KEY Optional GPG key id for encryption when saving (otherwise recipients come from .gpg-id).
PASSWORD_STORE_CLIP_TIME Seconds until the clipboard is cleared after a copy (default 60).

Status

Usable but still in development.

About

[WIP] Gui for "pass" for X11Libre/Wayland

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors