ayushnix / tessen Goto Github PK
View Code? Open in Web Editor NEWan interactive menu to autotype and copy pass and gopass data
License: GNU General Public License v2.0
an interactive menu to autotype and copy pass and gopass data
License: GNU General Public License v2.0
Hi, thanks for a nice program.
I am using this in gnu guix, which has a strong emphasis on repeatability and transparency -- as such, would you be open to allowing the specification of binary paths for the menus, as opposed to reading them from PATH?
A discussion about the nature of the use is open here https://lists.sr.ht/~abcdw/rde-devel/patches/29583
Cheers!
Samuel
Maintaining a whitelist of allowed backends and their options doesn't sound good. tessen
should let users choose a dmenu like backend of their own choosing. The list of available software I'm aware of that have a dmenu-like mode and work on Wayland are:
Filippo Valsorda has released a fork of pass called passage which uses age instead of gpg.
thaks for writing tessen
I'm using tessen with wofi and when I'm searching for password I use multiple char separated by spaces to select the password I'm looking for
Unfortunatelly tessen is not ignoring spaces and is looking for it so I can't find my password unless I know the exact path location
is it possible for tessen to ignore spaces ?
Hi,
I find your tessen as a great substitute of rofi-pass, given the technical context I am using - Arch linux, Wayland, Sway and wofi. Please consider that I am newbie in Arch and have some tolerance - the cool kids don't let me hang out with them oherwise.
What I am trying to do Is to bind tessen to a key bind, here is the code I have added in my ~/.config/sway/config:
bindsym Alt+p exec tessen
I used to pull that/similar trick in Ubuntu with rofi-pass and it worked great. I do not assume this is the correct way of doing.
The issue I have, is that when I run tessen with the key combination mentioned above, when it is the time to ask for a password to use the gpg key, which encrypts my secrets, no password prompt shows up. However, if I run tessen in the terminal (Alacrity with fish shell), I get password prompt, and after that I can use tessen through the shortcut combo while it is still authorized without any problems.
In short, how should I configure my system to get gui password prompt when I use tessen with a shortcut?
I know one of my colleagues is using rofi-pass in the same environment (Arch, Wayland and Sway), but he is on vacation and I want to make a good impression when he is back. :D I am not sure what trick he pulls to get the password prompt popup. Please help.
Sincerely
It looks like keepassxc provides a CLI interface and there are a few dmenu wrappers that use it although they also support adding, editing, and generating passwords. I'm not sure if I want to support those features.
Apparently, there's also something called the secret service API on Linux to retrieve passwords from an application that supports this and keepassxc seems to do that. If this is agnostic towards desktop environments and window managers, makes sense to support this as well.
https://github.com/ayushnix/tessen/blob/master/tessen#L457
According to the field you copy, this should be reflected on the notification text.
At first I though I was doing something wrong, and the username was always being copied.
Thanks for providing a Wayland alternative to rofi-pass
, much appreciated.
I was trying to figure out why OTP generation was not working correctly for me (I use gopass, and primarily totp tokens stored with the "totp" keyword).
Looking into the tessen script, I noticed the comment gopass totp is deprecated. May I ask why this is the case? It seems that a very minor change would make it work again, like this one.
Great project, thank you!
I've been trying to add an option to the rofi
backend, for example, a font:
tessen -b 'rofi -dmenu -i -font "Roboto 11"'
but that doesn't seem to work. It'd be great to pass a font and a theme etc. Any ideas? Thanks!
When using gopass multistore/mounts it always says the password is empty
the command fails to know it's on a store
➜ tessen -d wofi -p gopass -a copy
misc/teste is empty
✖1 ✗ gopass show -n -f misc/teste
⚠ Entry "misc/teste" not found. Starting search...
✅ Found exact match in "pessoal/misc/teste"
Secret: pessoal/misc/teste
j6Ap)\u(w5
test: hello
➜ gopass mounts
gopass (/home/sfrique/.local/share/gopass/stores/root)
└── pessoal (/home/sfrique/.local/share/gopass/stores/pessoal)
requesting support for key bindings similar to the ones in rofi-pass
:
# Custom Keybindings
autotype="Alt+1"
type_user="Alt+2"
type_pass="Alt+3"
open_url="Alt+4"
copy_name="Alt+u"
copy_url="Alt+l"
copy_pass="Alt+p"
show="Alt+o"
copy_entry="Alt+2"
type_entry="Alt+1"
copy_menu="Alt+c"
action_menu="Alt+a"
type_menu="Alt+t"
help="Alt+h"
switch="Alt+x"
insert_pass="Alt+n"
https://github.com/ReimuNotMoe/ydotool can be used as alternative for wtype for autotype feature. It can work not only for wayland apps.
Hello, previously i use rofi, then i installed tessen with
yay -S wtype
yay -S tessen
then tessen opened by dmenu?? how change tessen run with rofi . also my keybind are doubled with dmenu like if i press window tab / a usually it open rofi now its open tessen and rofi ( double )
Hi,
I'm using Tessen with Wofi and noticed that it creates a folder named " " (white space) containing a dev
subfolder containing itself a null
subfolder.
The problem comes from the following line:
dmenu_backend_opts=('-d' '-k /dev/null')
It should be replaced with:
dmenu_backend_opts=('-d' '-k/dev/null')
or:
dmenu_backend_opts=('-d' '--cache-file=/dev/null')
Best regards
The official bitwarden CLI isn't really human friendly but it does output JSON and that can be parsed with jq. An unofficial cli, rbw, seems like a much more human friendly interface.
It seems like there are already several dmenu wrapper projects for both the official CLI and for rbw. Still, it should be interesting to add support for bitwarden in tessen. We already support pass and gopass. I intend to add support for both the official CLI and rbw in the next major release of tessen.
Because the script explicitly assigns tsn_action="default"
near the start, but later checks -z $tsn_action
before changing the value, the value always remains "default", and both autotype and copy are always offered. Just commenting out the default assignment fixes the problem for me.
Thanks for the nice script.
Since the search for entries is case sensitive, it is often difficult to find the appropriate entry. Is there perhaps already a configuration option that I have missed? Thank you very much.
Hey there,
I really like this project overall, but there's one problem that's bugging me: I cannot get tessen to use login
or username
as the username value.
I added a regex pattern for the username value and it's still using the filename for the username.
My ~/.config/tessen/config
:
dmenu_backend="fuzzel"
action="autotype"
delay="100"
notify="true"
userkey="(user.*|login)"
Any idea why that is happening?
Thanks for the app !
Is there any plan to support yofi as a backend ?
Using environment variables might be fine for very simple programs but, in my opinion, if a program has more than 4 or 5 options, it should use a configuration file. Restarting your login session or reloading your window manager just to change how a single program works is pretty stupid. Not to mention, your environment variables look like garbage that you'd never want in your ~/.bash_profile
.
Sure, you could just script the whole thing or use `env BEMENU_OPTS='....' bemenu and then you won't need to restart your session/window manager but it's not really a good solution, in my opinion.
Right now tessen assumes that username should be taken from a filename.
And that's it.
It's fine but should not be the only option.
It would be nice to use user
or username
key to override a filename.
Since it's explicitly specified, a user should be quite certain, that it should be used over a filename.
Hi, I found this program to replace rofi-pass when using sway, and it works great!
However, I have some issues with otp. The reason is that I'm using NixOS, where all packaged are located in /nix/store/<some hashed path>
, and oathtool is not in my PATH. Pass-otp is patched to use absolute path of oathtool, but tessen checks for oathtool and doesn't find it. So it displays an error after selecting otp.
I think checking for oathtool may not be necessary? Since the user already has pass-otp, you can assume that its dependencies are already taken care of.
If a username
field is present in a gpg file, tessen would offer extra username is its selection.
However, filename would be used for both of them.
I think in 002a364#diff-a9940e2f3ccc956ca93a818a6e399634544f70a82a3a5c7698c73333f74586d3R673 the pass_backend
config key was renamed by accident:
- if [[ $key == "pass_backend" ]] && [[ -z $pass_backend ]]; then
+ if [[ $key == "_PASS_BACKEND" ]] && [[ -z $_PASS_BACKEND ]]; then
_PASS_BACKEND
works for now as a workaround though 😅
I opened #39, but I haven't yet reviewed 002a364 for other potential accidental renames.
I have gopass setup to use a gpg key that lives on my yubikey. This works fine with tessen as well, except for when I need to use a password to unlock it. Where gopass would normally prompt me with pinentry tessen doesn't generate any kind of prompt at all. This means I have to go enter the pin elsewhere to unlock the yubikey before I can use tessen. Ideally tessen would pop up with a pinentry window when it's necessary.
gopass v1.15 adopted a new configuration syntax and the output of gopass config
has changed in such a way that tessen no longer parses it correctly. Previously the output was in this format:
autoclip: false
autoimport: true
cliptimeout: 45
exportkeys: true
keychain: false
nopager: false
notifications: true
parsing: true
path: /path/to/stores
safecontent: false
The new output is in this format:
age.usekeychain = false
core.autoclip = false
core.autoimport = true
core.autosync = true
core.cliptimeout = 45
core.exportkeys = true
core.nopager = false
core.notifications = true
core.parsing = true
core.showsafecontent = false
mounts.path = /path/to/stores
It seems like there is no real security benefit to clearing the clipboard on autotype?
Right now autotype
field is treated like a regular key value pair.
It would be nice to use it as an instruction for an autotype and hide it from selection.
gopass is a rewrite of the venerable pass code in golang. Unfortunately the commands are not always the same; the largest difference is gopass requires the use of a 'show' command to display output. Haven't tested the otp support, but with minimal changes tessen works really well with gopass.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.