Awesome
rbw-rofi
A rofi frontend for Bitwarden
Based on the alternative Bitwarden CLI rbw and inspired by rofi-pass, rbw-rofi
is a simplistic password typer/copier using rofi and wofi.
Features
- Autotype password or username (
Enter
/Alt+3
andAlt+2
, respectively) - Autotype username and password (with a
tab
character in between) withAlt+1
(and copy TOTP to clipboard) - Configure autotyping either as a keybinding or by having a
_autotype
field in your credential - Copy username, password or TOTP to the clipboard (
Alt+u
,Alt+p
andAlt+t
, respectively) - Show an autotype menu with all fields
Usage
First, you need to configure rbw
. See its documentation for that.
Then, you can start rofi-rbw
. It is not available as a rofi mode.
Configuration
You can configure rofi-rbw
either with cli arguments or with a config file called $XDG_CONFIG_HOME/rofi-rbw.rc
. In the file, use the long option names without double dashes.
Options
long option | short option | possible values | description |
---|---|---|---|
--action | -a | type (default), copy , print | Choose what rofi-rbw should do. |
--target | -t | username , password , notes , totp (or any custom field) | Choose which components of the selected entry are interesting. Can be passed multiple times to type/copy/print several components. Default is username and password . |
--prompt | -r | any string | Define the text of the prompt. |
--keybindings | Define custom keybindings in the format <shortcut>:<action>:<target> , for example Alt+x:copy:username . Multiple keybindings can be concatenated with , ; multiple targets for one shortcut can be concatenated with : . Note that wofi doesn't support keybindings. | ||
--menu-keybindings | Define custom keybindings for the target menu in the format <shortcut>:<action> , similar to --keybindings . Note that wofi doesn't support keybindings. | ||
--no-cache | Disable the automatic frecency cache. It contains sha1-hashes of the selected entries and how often they were used. | ||
--clear-after | integer number >= 0 (default is 0 ) | Limit the duration in seconds passwords stay in your clipboard (unless overwritten). When set to 0, passwords will be kept indefinitely. | |
--typing-key-delay | delay in milliseconds | Set a delay between key presses when typing. 0 by default, but that may result in problems. | |
--no-help | Don't show the help message about the available shortcuts. | ||
--no-folder | Don't show the entry's folder in the list. | ||
--selector-args | Define arguments that will be passed through to rofi or wofi .<br/>Please note that you need to specify it as --selector-args="<args>" or --selector-args " <args>" because of a bug in argparse | ||
--selector | rofi , wofi | Show the selection dialog with this application. Chosen automatically by default. | |
--clipboarder | xsel , xclip , wl-copy | Access the clipboard with this application. Chosen automatically by default. | |
--typer | xdotool , wtype , ydotool , dotool | Type the characters using this application. Chosen automatically by default. |
Autotyping
By default, Alt+1
will type username and password, separated with a tab
character. However, you can change this behavior by defining your own keybinding (if your selector supports this). For example, Alt+1:type:username:enter:delay:password:enter
will type the username, enter
, wait for a second and then type the password and enter
again.
This sequence can also be defined as a field _autotype
on each credential.
Installation
From distribution repositories
From PyPI
rofi-rbw
is on PyPI. You can install it with pip install --user rofi-rbw
(or sudo pip install rofi-rbw
).
Manually
Download the wheel file from releases and install it with sudo pip install $filename
(or you can use pip install --user $filename
to only install it for the local user).
Note that it needs configargparse
to work.
Dependencies
You also need:
- Python 3.7 or higher
rofi
orwofi
- Something to programmatically type characters into other applications. Depending on your display server, it's
xdotool
,wtype
,ydotool
ordotool
. - Something to copy text to the clipboard. Again, depending on the display server, you want
xclip
,xsel
orwl-copy
.