summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-03-05refactor: `tessen -v` prints just the version numAyush Agarwal
2022-03-05docs: update CHANGELOG.md to showcase f940209Ayush Agarwal
2022-03-05chore: update fish completion and default configAyush Agarwal
for the feat introduced in f940209
2022-03-05docs: update man pages to point out f940209Ayush Agarwal
2022-03-05feat: consider `dmenu` as a valid dmenu backendAyush Agarwal
this feature was implemented after I came across this commit dnkl/fuzzel/commit/ffec2bc2ef7e5ca1398ab7ed7f134bd769706dcd apparently, dmenu backends like fuzzel, rofi, and wofi can function in dmenu backend if `argv[0]==dmenu`, similar to how busybox works in distributions like Alpine Linux and OpenWrt
2022-03-05release: change version to unreleased devAyush Agarwal
this was motivated by this commit swaywm/sway/commit/eaeb173a4b9b22d8ba1b35d3d863f0dcb8595341
2022-03-02release: bump version to 2.0.2v2.0.2Ayush Agarwal
docs: updated CHANGELOG.md
2022-03-02fix: if sleep is terminated, terminate the pgrpAyush Agarwal
This embarrasing bug escaped my notice until #21 was raised and I tried to make the clipboard clearing behavior saner. `kill` is a bash built-in and `kill 0` sends the default SIGTERM signal to all processes in the same process group (PGID). If `sleep $tsn_cliptime` is killed for any reason, `kill 0` should end up killing `wl-copy` as well. This can be confirmed by manually sending a SIGTERM to the sleep process.
2022-03-02fix: don't clear the clipboard in trap functionAyush Agarwal
there's no need to aggressively clear the clipboard in the trap function and there's also no need to call `_clear` in `_die` because `exit 1` should call `_clear` because of the trap
2022-03-01ci: run actions only when changes made to `tessen`Ayush Agarwal
2022-03-01docs: update CHANGELOG.mdAyush Agarwal
2022-03-01release: bump version to 2.0.1v2.0.1Ayush Agarwal
2022-03-01fix: don't clear clipboard when autotypingAyush Agarwal
fixes #21
2022-02-24refactor: don't use `$0`Ayush Agarwal
2022-02-24fix: don't check the size of the selected fileAyush Agarwal
2022-02-24docs: add notes about emulated input on waylandAyush Agarwal
2022-02-19docs: update the README, bump version to 2.0.0v2.0.0Ayush Agarwal
add optional installation steps also add links for donations ... doesn't hurt I guess
2022-02-19docs: add CHANGELOG.mdAyush Agarwal
this change was motivated by https://keepachangelog.com
2022-02-19refactor: add optional patch to set explicit pathsAyush Agarwal
if someone wants to set explicit and not execute arbitrary binaries, they can patch tessen using this file
2022-02-19build: allow minimal installation with MakefileAyush Agarwal
the `minimal` target allows a minimal installation without the man pages or the shell completion files
2022-02-19feat: update completion for bash and fishAyush Agarwal
2022-02-19docs: add man page for the config file of tessenAyush Agarwal
2022-02-19docs: update the man page for tessenAyush Agarwal
2022-02-18feat: add default config file for tessenAyush Agarwal
2022-02-18fix: set default values after argparse and configAyush Agarwal
2022-02-18fix: parse the config file after argparseAyush Agarwal
if rofi or wofi are chosen as the dmenu backends, add the corresponding dmenu backend options using tmp_rofi_opts and tmp_wofi_opts
2022-02-18fix: don't parse the config file separatelyAyush Agarwal
2022-02-18fix: parse config file options conditionallyAyush Agarwal
the pass and dmenu backends mentioned in the config file will be accepted only if they're not already set by the argparse menu which will be modified to run before the config file is parsed
2022-02-18refactor: make the config file regex more strictAyush Agarwal
this should prevent expansion of $PS escape sequences like \u for username wildcard characters have been removed as well
2022-02-18fix: don't spam the terminal when using fuzzelAyush Agarwal
when using fuzzel, it spams stdout with system information which isn't needed or desired for tessen
2022-02-18fix: rofi and wofi need individual variablesAyush Agarwal
since rofi and wofi support configuring themselves with config files, which is the sensible thing to do, we'll need to store their config option in separate variables to avoid conflict scenarios with the options of other dmenu backends rather than using `eval`, I've used parameter transformations in bash to expand possible variables provided in the config file. however, to avoid expanding and accepting arbitrary input, i'll use a regex to filter unwanted data
2022-02-18fix: don't expand dmenu options as a single stringAyush Agarwal
2022-02-17chore: add -s option to shfmtAyush Agarwal
2022-02-17refactor: simplify the code using shfmtAyush Agarwal
The `-s` flag simplfies the code by removing unnecessary quotes inside the bash `[[` operator. This option has also been added to GitHub actions and CONTRIBUTING.md file.
2022-02-16refactor: find default pass and dmenu backendsAyush Agarwal
if the user doesn't provide any input via arguments or config file, try to setup sane defaults
2022-02-16refactor: setup validation for pass and dmenuAyush Agarwal
2022-02-16refactor: clear the clipboard when necessaryAyush Agarwal
clearing the clipboard isn't needed when in autotype only mode
2022-02-16docs: mention support for gopass in the help menuAyush Agarwal
support for config file, changes in the options to `-d` instead of `-b` is mentioned as well
2022-02-16refactor: trap the INT signal as wellAyush Agarwal
in addition, if a user selects gopass as the pass backend, use the `get_gopass_files` function
2022-02-16refactor!: initialize sane defaults, parse argsAyush Agarwal
BREAKING CHANGE: the `-b` option has been changed to `-d` to make more sense. i know changes like these may annoy users but i didn't want to use a generic term like `--backend` for configuring dmenu programs. `--backend` is also confusing because tessen supports two kinds of backends now - pass backend and dmenu backend the `tmp_opts` variable was declare before in the parse_config option as a way to resolve a conflict when a user provides config files for rofi and wofi and ends up choosing rofi or wofi explicitly from the arguments. in that case, validate_backend would reset the list of dmenu_backend_opts variable to its defaults without the config file locations which are mentioned in the parse_config function since we've parsed the `-c` option before in parse_config, the `-c` option must be ignored in the main() function. we can't omit `-c` because then a user would get incorrect arg specified error.
2022-02-16feat: parse the config file for tessenAyush Agarwal
the config file also supports pointing rofi and wofi to their config files which allows for context dependent usage which wasn't possible earlier (without siginficant annoyance and having to accept arbitrary input) when environment variables were supported
2022-02-16refactor: better response when validating actionAyush Agarwal
with this change, an action can't be selected if it's not possible and the best available choice should be selected automatically in case no action is provided.
2022-02-16feat: add support for gopass when copying dataAyush Agarwal
when using pass, use the clipboard timeout value specified by PASSWORD_STORE_CLIP_TIME and if this isn't specified, fallback to 15 seconds. when using gopass, use the clipboard timeout value as specified in the `cliptimeout` key in gopass config
2022-02-16refactor: offload otp handling to key_otpAyush Agarwal
2022-02-16refactor!: remove support for $BROWSERAyush Agarwal
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.
2022-02-16refactor: key_url isn't needed anymoreAyush Agarwal
key_action is taking care of this
2022-02-16feat: add support for OTP when using gopassAyush Agarwal
refactor: offload the autotype and copy operation to key_action
2022-02-16refactor: fix behavior when url is selectedAyush Agarwal
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.
2022-02-16refactor!: don't show autotype when action is copyAyush Agarwal
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.
2022-02-16feat!: use the first non-unique keyAyush Agarwal
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