dotfiles/pass
Marty Oehme 6ac552d3d5
Switch to wayland
Added a simple wayland configuration.
Currently set up simple wayland configuration based on river window
manager and waybar.
Rivercarro is the layout manager, being the same in principle as rivertile,
the default layout manager for river, only it comes with smart gaps
(gaps turn off if there is only one window open)
and monocle mode (give one window all space).

Runs `keyd` in the background to replace the old `xcape` capslock switching
(capslock is escape and if held control).
Uses `swaybg` to set a wallpaper.

Added powermenu and lockscreen scripts.
Improved lockscreen script to detect and work for wayland.
Moved old rofi mode 'powermenu' to more general powermenu script,
which works with any rofi-like selector (dmenu, bemenu, wofi, etc.)
Loses some of its design quality but since it was wonky anyway,
and I rarely see the menu,
we could repurpose its functionality for a more general powermenu
concept.
Currently hardcoded for `bemenu` but can be easily swapped and possibly
even extended back to rofi.
Fixed file upload link sharing to clipboard.

Updated rofi-pass to pass-pick.
Made rofi-pass universal and less integrated to rofi - that's also the
reason for the name change.
`pass-pick` works with rofi (default), bemenu or dmenu. In theory it
should also work with any other picker that contains a stdin listing
function similar to dmenu.
It has been definitely tested both on rofi and bemenu.
The best user experience still reigns on rofi, where available keys are
displayed on the picker and the keys themselves make the most sense.
But all functions can be reached from bemenu as well, though the key
mappings are more arbitrary and can not be changed as in rofi.
The autofilling tool works with both xdotool and ydotool, so should work
both on X11 and on Wayland. Ydotool ideally requires its daemon to be
running, otherwise some of the typing may get gut off. Otherwise no
change should be necessary.

Updated qutebrowser open_download for bemenu.
Updated download opening script to work with both rofi and bemenu.
Prefers original rofi implementation but works with both, and can be set
to use a custom dmenu-like file picker as well.

Add brightnessctl and removed custom audio / brightness scripts since they
became unnecessary.

Updated bootstrap script to include system files:
With `keyd` taking its configuration from the `/etc` directory and not
home, a second stow stage was necessary. These stow files are in a
module called `system-packages` inside the top-level `bootstrap` stow
package.
They will not be installed by the default dotfile stow invocation but
have been integrated as an extra step into the install script.
Installing this module requires sudo privileges!

Switched vifm überzug to sixel graphics rendering.
überzug relies on X11 functionality to work, while sixel does not.
Unfortunately, alacritty does not work with sixel graphics yet, only
foot does (somewhat).

Waybar currently runs the gruvbox dark soft color scheme.
Added the old polybar archupdates script to waybar and extended it to
output json format with additional metadata that waybar can read.
Can still output the old plaintext format that polybar expects.
Added a wireguard connection to waybar,shows if currently
connected to either a wireguard or tun VPN service.
If so, shows an icon in the waybar - that can be hovered over to show
the full assigned IP address.
Added an upcoming event display to waybar,
a simple event indicator to show upcoming events on the calendar, on
hovering over it the tooltip lists all upcoming events.

Added `screenshot` script to take simple screenshots and
rectangle region shots of the current output.
Can be invoked through the river shortcut PrintScr:
`PrintScr` - Fullscreen screenshot
`Mod+PrintScr` - Region screenshot
`Shift+PrintScr` - Fullscreen screenshot and file upload
`Mod+Shift+PrintScr` - Region screenshot and file upload

Extended `sharefile` to take paths through stdin and make
use of `fd` if it is found on the system.
2021-11-30 22:30:07 +01:00
..
.config/sh/env.d pass: Add config xdg specification loading 2020-09-12 14:47:30 +02:00
.local/bin Switch to wayland 2021-11-30 22:30:07 +01:00
README.md pass: Add README explaining the switch 2020-09-12 17:33:05 +02:00

pass

pass - command-line password manager

The pass module tries to make interacting with the basic necessities of pass painless and quick -- it is focused on accessing secrets, and quickly auto-filling forms or copying secrets to the clipboard.

The configuration of pass is relatively standard, it tries to follow XDG_specifications, putting the default pass store into ~/.local/share/pass.

The module is based on the original implementation for gopass which I decided to drop after repeated minor version bumps with breaking api changes. With the additional new direction away from pass compatibility by gopass I ultimately decided to fall back to the more stable api of pass, foregoing some of its more advanced quality of life features.

The general functionality of password management should not be affected. The last working rofi-gopass implementation before the switch can be found here.

rofi-pass

To make accessing secrets easy, it uses the rofi-pass script, which creates a small rofi menu displaying all your secrets (names only), and from which you have quick access to copy, fill, or open the individual entries. An example of the menu in action:

rofi-gopass demonstration

There are several keybindings available, to either fill or copy to clipboard the username, password, or open the full view to an individual entry. For every send to clipboard action, the clipboard will be automatically cleared after the time specified in your pass settings. For auto-filling to work correctly, the username field will (by default) have to be highlighted on the entry webpage or form.

keybinding function setting name
Return Auto-fill username & password KEY_AUTOFILL
Alt+Return Open individual entry KEY_OPEN_ENTRY
Alt+u Auto-fill username KEY_FILL_USER
Alt+p Auto-fill password KEY_FILL_PASS
Ctrl+Alt+u Send username to clipboard KEY_CLIP_USER
Ctrl+Alt+p Send password to clipboard KEY_CLIP_PASS
From opened entry:
Return Auto-fill selected field KEY_ENTRYMENU_FILL
Alt+Return Send selected field to clipboard KEY_ENTRYMENU_CLIP
Alt+s Reveal contents of the password field KEY_ENTRYMENU_SHOWFIELD
Alt+BackSpace Close individual entry, return to overview KEY_ENTRYMENU_QUIT

These keys, as well as the additional configuration can be changed by setting the corresponding environment variable, through a configuration file, or at the top of the script file itself. The script tries to follow xdg-specification, meaning it looks for a configuration file in the following directories (in descending order):

  • XDG_CONFIG_HOME/rofi-pass/rofi-pass.conf
  • ~/.config/rofi-pass/rofi-pass.conf
  • ~/.rofi-pass.conf
  • /etc/rofi-pass.conf

or, alternatively, a custom directory if the RP_CONFIGURATION_FILE variable points to a configuration file.

To use environment variables to configure any of these options or keys, prefix them with RP_, so that e.g. KEY_AUTOFILL becomes RP_KEY_AUTOFILL. Environment variables take precedence over configuration file settings.

Additional configuration options:

  • AUTOFILL_BACKEND :sets the auto-filling tool used, only tested with xdotool currently.

  • AUTOFILL_CHAIN :sets the chain of keys that should be sent to auto-fill an entry. Can use the following special fields: :tab, :space, :return, username, password.

    The default chain is username :tab password, which will enter the username, simulate the tab-key to switch from the username to the password field, and enter the password. This can be changed to suit your needs. To, for example, log in fully automatically at the end of the sequence, change it to username :tab password :return, and there will be no further user input for the login required.

  • AUTOFILL_DELAY :sets the time for xdotool to wait in-between simulated actions, if some letters appear missing or the fields are not switched between quickly enough, it can usually be fixed by increasing this delay (though typing will also take longer)

  • PASS_USERNAME_FIELD :sets the name of the field in pass secrets which contain the username. Usually, the default setting should be fine (it will look for user, then username, then login) but custom field names can be supplied. If multiple field names are given, it will use the first supplied field name a secret contains.