Age | Commit message (Collapse) | Author |
|
|
|
the config file supports setting a web browser of your choice and if it
is provided, it will used irrespective of what the default web browser
is according to XDG. if a user wants to use xdg-open, leave the
web_browser config flag commented in the config file.
|
|
key_action is taking care of this
|
|
refactor: offload the autotype and copy operation to key_action
|
|
if the user selects a url, respond appropriately and change the third
menu if the action is default. if it's autotype, open the url. if it's
copy, copy the url. if the action is both, open the url and copy it.
|
|
this changes the default behavior of the 2nd menu. if copy mode is
selected, it doesn't make sense to show the user the option to autotype
the username and the password. the option for autotyping has been
removed if copy mode is selected.
the autotype, both, and the default action mode have the same contents
in the 2nd menu. however, the default mode has a third menu which asks
for a user action.
the chosen_key variable was made a global variable rather than a
dynamically scoped variable to avoid confusion. i must admit,
dynamically scoped variables sounds kinda insane when you realize that
scripting languages like Lua support lexical scoping.
|
|
in addition to adding support for parsing data from gopass, this commit
changes the default behavior of tessen to consider the first non-unique
key that it finds and ignore the rest. this is different from the
earlier behavior of going through each and every potentially identical
keys and considering the value of the last key, which is more expensive
and makes lesser sense.
the keys for url and autotype now support regex as well. this idea was
inspired by the following PR
https://github.com/ayushnix/tessen/pull/11
|
|
this feels like a hack as mentioned in the comments but if gopass
authors keep their output format stable, this should work
adding support for gopass mounts was somewhat tricky but worked out in
the end
|
|
|
|
I've dropped support for environment variables in favor of a config
file. This was motivated by
https://github.com/Cloudef/bemenu/issues/15
From what I think of environment variables, they're meant to be used
when they won't change often, especially not during a live session while
you're working. I don't think that performing a relogin to change colors
in a dmenu program is a sensible thing. Sure, you can create wrapper
scripts and place them in your `$PATH` but that feels like an inferior
solution compared to config file kept in `$XDG_CONFIG_HOME`.
|
|
I'm gradually moving away from my .in email address.
|
|
It seems there are some distros like NixOS which do not have `/bin/bash`
in an effort to be stateless, as mentioned in this PR
https://github.com/ayushnix/tessen/pull/15
I'm aware that BSDs probably don't have bash at that location either.
I'll go ahead and change the default shebang to use `env` to find bash
but I also intend to provide an optional patch to revert the shebang
back to `#!/bin/bash` and hardcode the `$PATH` to root owned directories
in `/usr`.
|
|
also removed trailing whitespace
|
|
* userkey search uses regex to find field
* Changed userkey default value to "user"
* First matched entry will be set as tsn_username
* Update to man page
* Fixed setting userkey
* Fixed typo
|
|
|
|
|
|
There's no point replicating the information inside the man page on the
README.
|
|
tessen will now prefer finding fuzzel over rofi and wofi
|
|
|
|
Instead of using multiple printf commands, we can just use one. No, I
don't like using heredocs for some reason.
|
|
Recently, I realized that bash local variables aren't actually local and
use dynamic scoping. Renaming `backend` to `dmbd` is just a precaution.
|
|
A few extraneous `{}` were removed from variable names, `=` was replaced
with `==` because we're using bash and the former is more confusing, and
other cosmetic changes.
|
|
Instead of creating multiple functions for passing one line outputs, it
seems better to just use a case statment. Support for fuzzel has also
been added.
|
|
In the absence of a colon, the default value (which is empty) will be
used only if TESSEN_BACKEND is unset. Adding a colon ensures that the
default value is also used if TESSEN_BACKEND is empty. Since the default
value is empty, the colon is redundant.
|
|
This commit makes `tessen` agnostic to the dmenu backend used and closes issue #4. Thank you @t0fik for this PR.
|
|
|
|
It's unnecessary to check for the presence of oathtool considering it's
listed as a dependency of pass-otp. The explicit check was also causing
problems for people on NixOS as mentioned in #6.
|
|
|
|
|
|
|
|
|
|
The auto type operation has been split into two functions - one of them
deals with the default auto type operation involving username and
password and the other deals with custom autotype operation specified by
the user.
The copy menu now checks for the presence of notify-send rather than
just using it.
|
|
continue to implement features explained in 9511148
|
|
The validation functions have been changed to be more modular and more
resistant to invalid input. Instead of using printf to redirect error
messages to stderr and using `exit 1`, use the function `_die` which has
been changed as well. A function called `is_installed` was added as well
to check if the needed binaries are present on the system.
|
|
The `key_menu()` function will now handle different types of keys using
case and specific functions instead of complex if-else monstrosity.
feat: continue to implement features explained in 9511148
|
|
Use the environment variables to show options for autotype and username.
The URL should also be accounted for and the 3rd menu should show 'open'
instead of 'autotype'.
feat: continue to implement features explained in 9511148
|
|
tessen can now parse 'otpauth://' URI format thanks to the regex
borrowed from pass-otp
The username will now be taken from TESSEN_USERKEY if it exists,
otherwise, fallback to using the basename of the selected file.
The keys can now have '#', '+', and '@' characters as well.
|
|
|
|
The TESSEN_USERKEY environment variable can be set to point tessen to a
custom key which should be considered as the username.
The TESSEN_URLKEY environment variable can be set to point tessen to a
custom key which should be considered as the URL of website.
The TESSEN_AUTOKEY environment variable can be set to point tessen to a
custom key which should be considered for custom auto type operations
instead of the default operation of auto typing the username and the
password.
The TESSEN_DELAY environment variable can be set to make tessen
introduce delay when auto typing to avoid errors. The default is 200
milliseconds.
'bemenu' is no longer the default backend.
|
|
Global variables shouldn't be written in upper case unless the variable
is meant to be exported or is an environment variable. The style of
defining local variables was also changed.
|
|
It looks like there's no reliable way to enable a shell "strict" mode
globally in a script without dealing with certain caveats and edge cases
or making code cluttered with `${1-}` instead of simply `$1`. I'm not
gonna use shell "strict" any longer and instead try to write saner code
and rely on shellcheck.
|
|
|
|
tessen wasn't excluding 'username' and 'password' as a key from the menu
which isn't expected behaviour because the value of username is
determined from the basename of the selected file and password is
selected from the first line of the file
|
|
|
|
|
|
updated the fish completion and the README as well
|
|
I was being stupid with the sem versions while making this script. I
thought about editing the individual commits and rebasing and force
pushing the repo but decided against it. Hopefully, this isn't too
embarassing.
|
|
|
|
|
|
|