tadfisher / pass-otp

A pass extension for managing one-time-password (OTP) tokens
GNU General Public License v3.0
1.29k stars 86 forks source link

dmenu for this #36

Open divansantana opened 7 years ago

divansantana commented 7 years ago

the passdmenu is obviously very nice and useful.

It would be nice if either the upstream one supported this, or this project shipped with a dmenu script.

What are your thoughts?

juicetin commented 7 years ago

My guess is that for now, this project would need to support this, or a separate (probably very small) project/repo. I think upstream probably wouldn't support this directly as it's a feature that's not in the base project to begin with?

Since the OTP secrets will only be a portion of all the files, would you say there would be some naming convention for a theoretical passotpmenu to pick up only relevant files, and/or have a config file somewhere that describes a regex of what files to consider as 'OTP' secret files?

Edit: I missed the existing issue #34 proposing an enhancement to have a mechanism (the example being an index file) to point to valid otp-files. This ticket would probably reliant on that one to avoid overlap.

divansantana commented 7 years ago

My guess is that for now, this project would need to support this, or a separate (probably very small) project/repo. I think upstream probably wouldn't support this directly as it's a feature that's not in the base project to begin with?

Agree, makes sense.

Since the OTP secrets will only be a portion of all the files, would you say there would be some naming convention for a theoretical passotpmenu to pick up only relevant files, and/or have a config file somewhere that describes a regex of what files to consider as 'OTP' secret files?

Nice idea.

pigmonkey commented 7 years ago

There has been some interest in supporting this plugin with rofi-pass.

https://github.com/carnager/rofi-pass/issues/50

tadfisher commented 7 years ago

I've investigated universal bash/zsh/fish completion for pass extensions in the past, which is similar to this request. It's definitely doable; see git's completion framework for a robust (and complex) example.

The passdmenu script doesn't use pass itself to generate password listings, which is not exactly ideal. It would be nice to expose a neater API in upstream pass for external processing. For example, pass ls calls tree without the option to format the output to something easily parseable by external programs; an easy win and a step toward universal completion for extensions would be to allow callers to specify arguments to tree for that command.

Beyond that, an extension-completion framework would be the next logical step, and finally a universal API for external programs to discover and complete extension commands would be perfect for utilities like rofi and dmenu.

This would likely require integration by extensions, which is why upstream is the best place to coordinate this kind of work.

darnir commented 6 years ago

Any potential progress on this? I'd love to see this script implemented

tadfisher commented 6 years ago

This depends on #34. I'm still working on it, as I don't believe pass ever intended for cache/index data in the store.

Alveel commented 5 years ago

A very simple solution that works for me is putting all otp entries in a separate folder. I then copied the passmenu script and made some very minor modifications. Lastly, I added a shortcut to my window manager for it (i3: bindsym $mod+o exec otpmenu).

The script: https://gist.github.com/Alveel/d26c3b524d785af6fb0037394dd1f25e

It's not ideal but maybe other people would find it useful :)