Skip to content

gabrielmscampos/quickbw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quick BW

A KDE Plasma 6 panel widget for quick access to your Bitwarden vault via the Bitwarden CLI (bw). Click the panel icon, unlock with your master password, search your items by name, and copy passwords or TOTP codes with one click.

Screenshots

Locked Loading Unlocked Filtering
Locked vault Loading vault Unlocked vault Filtering items

Features

  • In-panel master-password unlock (no terminal needed).
  • Search/filter your vault items by name.
  • One-click copy of password (already in memory, no extra bw call) and TOTP (bw get totp <id>).
  • Auto-locks after a configurable idle timeout (default 1 minute) and on a manual Lock button.
  • Clipboard secrets are tagged so Klipper won't keep them in history, and are auto-cleared after a configurable delay (default 30 s).

Security model

Secrets never touch the command line or disk:

  • The master password is fed to bw unlock via stdin.
  • The session token is passed to every bw call via the process environment (BW_SESSION), which is owner-only readable — never argv.
  • The token lives only in the widget's memory and is wiped on lock.

This is why the heavy lifting is a small C++ QML plugin (org.quickbw.backend) rather than pure QML: only QProcess gives us stdin + per-process env control.

Requirements

  • KDE Plasma 6 / Qt 6 / KF6
  • Bitwarden CLI bw on your PATH (or in ~/.local/bin), already logged in (bw login).
  • Build deps: gcc-c++, qt6-qtbase-devel, qt6-qtdeclarative-devel, cmake, ninja. Optional: extra-cmake-modules, plasma-sdk (for plasmoidviewer).

Install

There are two parts: a C++ QML plugin (installed into Qt's QML path, needs sudo) and the plasmoid package (installed into your home dir).

# 1. Build the C++ backend plugin
cmake -B build -S . -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
cmake --build build

# 2. Install the backend plugin into Qt's QML import path (sudo).
#    The exact path (e.g. /usr/lib64/qt6/qml) is queried from Qt at configure time.
sudo cmake --install build

# 3. Install the plasmoid (no sudo). If it's already installed, use --upgrade.
kpackagetool6 --type Plasma/Applet --install ./package

# 4. Force-restart plasmashell so it loads the new plugin + widget.
kquitapp6 plasmashell; sleep 1; killall -9 plasmashell 2>/dev/null; sleep 2; kstart plasmashell

Then add the Quick BW widget to a panel.

Updating after a change: re-run steps 1–4, using --upgrade ./package in step 3. The force-restart in step 4 is mandatory for changes to take effect.

Uninstall

Remove the two installed pieces — the plasmoid (in your home dir) and the C++ backend plugin (in /usr, needs sudo):

# 1. Remove the widget from any panel first (right-click -> Remove), then:
kpackagetool6 --type Plasma/Applet -r org.quickbw

# 2. Remove the backend plugin (uses the install manifest, so the path is exact)
sudo xargs rm -v < build/install_manifest.txt
sudo rmdir /usr/lib64/qt6/qml/org/quickbw 2>/dev/null   # remove the now-empty dir

# 3. Make plasmashell forget the unloaded plugin
kquitapp6 plasmashell && (kstart plasmashell >/dev/null 2>&1 &)

If build/ is gone, remove the plugin directly instead of using the manifest:

sudo rm -rf /usr/lib64/qt6/qml/org/quickbw

Develop / test without installing system-wide

Run the applet in its own window — no plasmashell, no cache to fight. Install the plasmoid once (user-level, no sudo), then point Qt at the freshly built plugin via QML_IMPORT_PATH (so you don't need to sudo-install the backend):

kpackagetool6 --type Plasma/Applet --install ./package   # once; --upgrade afterwards
cmake -B build -S . -G Ninja
cmake --build build
QML_IMPORT_PATH="$PWD/build/qml" plasmoidviewer -a org.quickbw

Add -f horizontal to plasmoidviewer to preview the panel (compact) form.

Configuration

Right-click the widget → Configure to set the idle auto-lock minutes and the clipboard auto-clear seconds.

About

A KDE Plasma 6 panel widget for quick access to your Bitwarden vault via the Bitwarden CLI.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors