From cd53449266080a67129b4c17cf3e5c87d8f7af21 Mon Sep 17 00:00:00 2001 From: ndwarshuis Date: Sun, 31 Jul 2022 21:04:19 -0400 Subject: [PATCH] ENH update readme --- README.md | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 106 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 91ae8ec..bbfc345 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,25 @@ These are some personal programs that use the [rofi](https://github.com/davatorium/rofi) interface. -## Rofi-Bitwarden +## Installation + +Clone this repo and run the following in the repo root. + +Install packages needed for building: + +``` +pacman -S --needed - < make_pkgs +``` + +Build and install (choose individual targets as needed): + +``` +stack install +``` + +See individual sections for other dependencies to install. + +## Bitwarden (rofi-bw) [Bitwarden](https://bitwarden.com/) is an open-source password management server and this program functions as a client. Unlike many other similar clients, this @@ -40,7 +58,7 @@ Any options after `-c` will be passed to rofi. - dbus - libnotify: desktop notifications -## Rofi-Devices +## Device Mounting (rofi-dev) This is a manual mounting helper for removable drives, MTP devices, and fstab entries. It will transparently handle mountpoint creation/destruction. @@ -75,6 +93,19 @@ To specifify that `/media/USER/foo` should use `secret-tool` to find its password, specify the `-s` option. This would lookup a password for the entry whose `username` is `bar` and `hostname` is `example.com`: +### Veracrypt + +This tool can mount veracrypt vaults...with some hacky effort. Since veracrypt +works at the block device level, it needs root permissions to mount a volume +(which actually involves mounting several devices). The easiest way to make sure +this works is to give veracrypt sudo access like so: + +``` + ALL=(root) NOPASSWD: /usr/bin/veracrypt,/usr/bin/uptime +``` + +No idea why `uptime` is also needed for this. + ``` sh rofi-dev -s '/media/USER/foo:username=bar,hostname=example.com' ``` @@ -89,6 +120,79 @@ rofi-dev -p '/media/USER/foo' - udisks2: removable drive mounting - sshfs: mounting network devices in fstab over ssh - cifs-utils: mounting network devices in fstab using CIFS/Samba +- veracrypt: to mount veracrypt vaults - [jmtpfs](https://github.com/JasonFerrara/jmtpfs): mounting MTP devices - libnotify: desktop notifications - libsecret: password lookup with `secret-tool` +- libnotify + +## Autorandr (rofi-autorandr) + +This allows selection of the +[autorandr](https://github.com/phillipberndt/autorandr) configuration via a rofi +menu. + +### Dependencies + +- autorandr + +## Bluetooth (rofi-bw) + +This presents a nice menu to select the current bluetooth device. + +### Dependencies + +- bluez (which should provide the dbus interface for this to work) + +## ExpressVPN (rofi-evpn) + +This presents a menu to select the current ExpressVPN gateway. + +### Dependencies + +- expressvpn (from AUR) +- libnotify + +## Pinentry (pinentry-rofi) + +Analogous to the default [pinentry](https://github.com/gpg/pinentry) prompts, +this presents a rofi prompt for a password with the GPG keyring is unlocked. + +Requires the following in `gpg-agent.conf`: + +``` +pinentry-program /path/to/pinentry-rofi +``` + +Unlike the other pinentry programs, this one can integrate with bitwarden (via +the above client) by retrieving the password for the gpg keyring if it is stored +in bitwarden. This requires a yaml configuration in the gpg home directoring as +such: + +``` +bitwarden-name: +``` + +### Dependencies + +- rofi-bw (see above): bitwarden integration + +## Putting Rofi on the correct screen (current-output) + +This is a total hack...actually it isn't because it's written in Haskell and not +bash. + +The problem is that when used with xmonad, rofi doesn't place itself on the +"current" workspace since the concept of a "workspace" is weird and specific to +xmonad. The solution is to use this program to query `_NET_DESKTOP_VIEWPORT` +(which my xmonad config sets) and use this determine the name of the active +workspace which can then be fed to rofi using the `-m` flag. + +See comments of this binary for details. + +### Dependencies + +- X11 + + +