π A KRunner plugin for seamless integration with pass - the standard Unix password manager
- π Quick Search: Search your passwords directly from KRunner
- π Clipboard Copy: Copy passwords to clipboard with a single keystroke
- β¨οΈ Auto-Type: Automatically type passwords into active windows (X11 and Wayland support)
- π·οΈ Fuzzy Matching: Intelligent search with fuzzy matching algorithm
- π Secure: Uses your existing GPG setup and pass configuration
- π Multi-language: Supports multiple languages in the UI
- π’ Notifications: Visual feedback for all actions
Type pass
in KRunner to see all your passwords, or pass github
to filter by search term:
π github.com/username (Press Enter to copy, Ctrl+Enter to type)
π work/github-enterprise (Press Enter to copy, Ctrl+Enter to type)
π personal/github-backup (Press Enter to copy, Ctrl+Enter to type)
Required:
- pass (password-store) installed and initialized
- Python 3.6+
- python3-dbus
- python3-gi (python3-gobject)
- KDE Plasma 6
Optional:
xdotool
for auto-typing functionality on X11wtype
for auto-typing functionality on Waylandlibnotify-bin
for desktop notifications
Debian/Ubuntu:
sudo apt install pass python3-dbus python3-gi xdotool libnotify-bin
# For Wayland support:
sudo apt install wtype # If available in your distro
# Or build from source: https://github.com/atx/wtype
Fedora:
sudo dnf install pass python3-dbus python3-gobject xdotool libnotify wtype
Arch Linux:
sudo pacman -S pass python3-dbus python-gobject xdotool libnotify wtype
If you're using Wayland, you need to enable the virtual keyboard protocol for auto-typing to work:
-
Edit or create
~/.config/kwinrc
:mkdir -p ~/.config nano ~/.config/kwinrc
-
Add or modify the following section:
[Wayland] VirtualKeyboardEnabled=true
-
Save the file and restart your Wayland session (log out and log back in)
- Clone and install in development mode:
git clone https://github.com/rakanalh/kde-krunner-pass.git cd kde-krunner-pass ./install.sh
If you prefer to install manually:
# Install to user directory
mkdir -p ~/.local/bin ~/.local/share/dbus-1/services ~/.local/share/krunner/dbusplugins
# Copy files
cp src/kde-pass-runner.py ~/.local/bin/
cp src/pass-interface.py ~/.local/bin/
chmod +x ~/.local/bin/kde-pass-runner.py ~/.local/bin/pass-interface.py
# Install service files
cp services/plasma-runner-pass.desktop ~/.local/share/krunner/dbusplugins/
sed "s|/usr/bin/kde-pass-runner.py|$HOME/.local/bin/kde-pass-runner.py|" \
services/org.kde.krunner.pass.service > \
~/.local/share/dbus-1/services/org.kde.krunner.pass.service
# Reload services
kbuildsycoca6
# Restart KRunner
kquitapp6 krunner
krunner &
-
Open KRunner: Press
Alt+F2
orAlt+Space
-
List all passwords: Type
pass
pass
-
Search passwords: Type
pass
followed by a search termpass github pass work/ pass email
- Copy to Clipboard (default): Press
Enter
on any password entry - Auto-Type Password: Press
Ctrl+Enter
(requires xdotool on X11 or wtype on Wayland)
The plugin supports fuzzy matching, so these searches will all work:
pass gh
β matchesgithub.com
pass wrk
β matcheswork/email
pass gmai
β matchespersonal/gmail
The plugin respects your existing pass configuration:
- Password Store Location:
~/.password-store
(or$PASSWORD_STORE_DIR
) - GPG Key: Uses your configured pass GPG key
- Directory Structure: Maintains your existing organization
The plugin uses your existing pass configuration and doesn't require additional setup. However, you can customize:
- Cache Behavior: Password list is cached until KRunner session ends
- Search Algorithm: Uses built-in fuzzy matching
- Timeout Settings: Inherits from your pass/GPG configuration
-
Check if the service is registered:
ls ~/.local/share/krunner/dbusplugins/plasma-runner-pass.desktop ls ~/.local/share/dbus-1/services/org.kde.krunner.pass.service
-
Rebuild KDE cache:
kbuildsycoca6
-
Restart KRunner:
kquitapp6 krunner krunner &
-
Check your display server:
echo $XDG_SESSION_TYPE
This will show whether you're running X11 or Wayland.
-
For X11 sessions:
- Check if xdotool is installed:
which xdotool
- Test xdotool manually:
echo "test" | xdotool type --file -
- Check if xdotool is installed:
-
For Wayland sessions:
- Check if wtype is installed:
which wtype
- Test wtype manually:
echo "test" | wtype -
- Check if virtual keyboard is enabled:
grep -i virtualkeyboard ~/.config/kwinrc
- Check if wtype is installed:
-
Check window focus: Auto-type requires the target window to be active
-
Verify pass is working:
pass ls
-
Check GPG key setup:
pass init your-gpg-key-id
-
Test password retrieval:
pass show some-password
Run the service manually to see debug output:
# Stop the automatic service
pkill -f kde-pass-runner.py
# Run manually with debug output
~/.local/bin/kde-pass-runner.py
This plugin uses the DBus service approach introduced in KDE Plasma 6, which offers several advantages:
- No Compilation: Pure Python implementation
- Easy Debugging: Run standalone for testing
- External Integration: Perfect for tools like pass
- Cross-Platform: Works on any system with DBus
- Display Server Support: Works on both X11 and Wayland
KDE-Pass/
βββ src/
β βββ kde-pass-runner.py # Main DBus service
β βββ pass-interface.py # Auto-typing functionality (X11/Wayland)
βββ services/
β βββ org.kde.krunner.pass.service # DBus service registration
β βββ plasma-runner-pass.desktop # KRunner plugin registration
βββ install.sh # Installation script
βββ README.md # This file
The plugin implements the standard KRunner DBus interface:
- Service Name:
org.kde.krunner.pass
- Object Path:
/runner
- Interface:
org.kde.krunner1
Methods:
Match(query)
β Returns password matchesRun(match_id, action_id)
β Executes copy/type actionActions(match_id)
β Returns available actions
-
Clone and install in development mode:
git clone https://github.com/rakanalh/kde-krunner-pass.git cd kde-krunner-pass ./install.sh
-
Make changes to the source files
-
Test your changes:
# Kill running service pkill -f kde-pass-runner.py # Run manually for testing ~/.local/bin/kde-pass-runner.py
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
- pass - The standard Unix password manager
- QtPass - Cross-platform GUI for pass
- browserpass - Browser integration
- passff - Firefox extension
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
- Issues: GitHub Issues
- KDE Community: KDE Forums
- The pass project for creating an excellent password manager
- The KDE community for the excellent KRunner framework
- All contributors who help improve this project