summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-11-28Improve performance of tofi-run history sorting.Phil Jones
2022-11-28Refactor string vector code.Phil Jones
Previously, string vectors were built by reading input line-by line, and multiple copies of string vectors were made when searching. Now, input is read into one big buffer, and string vectors only contain references to the strings in this buffer. This both speeds up reading of input, and avoids unnecessary copying of strings in various places. The main downside currently is that input read from stdin is no longer UTF-8 normalised. This means, for example, that a search for `e` won't necessarily match `é`. Normalisation is very slow relative to the rest of tofi, however, and not needed for most use-cases. This could either be solved by accepting the slowdown, or making this an option, such as --unicode or --unicode-normalize.
2022-11-28Fix compilation under musl libc.akdjka
2022-11-25Fix potentially uninitialised variable.Phil Jones
2022-11-24Avoid some unnecessary copying in config parser.Phil Jones
2022-11-24Fix more potential char parsing errors.Phil Jones
2022-11-24Speed up string vector filtering and loading.Phil Jones
We can assume that string vectors generated by tofi are already normalised, so don't waste time normalising them again. Also make sure to validate strings from the user.
2022-11-24Don't set options if they failed to parse.Phil Jones
Also fix a potential segfault in character parsing found by AFLplusplus.
2022-11-22Fix new theme options not following scale factor.Phil Jones
2022-11-21Add --clip-to-padding option.Phil Jones
2022-11-21Overhaul text theming.Phil Jones
Each piece of text is now individually themable, with foreground and background colours and optionally rounded background corners.
2022-11-21Remove most options from usage info.Phil Jones
The list was getting far too long, and is about to get even longer with text styling options. The user is instead directed to the manpage. Also, don't print usage to stderr if `-h` was passed.
2022-11-21Reduce maximum wlr_layer_shell version to 3.Phil Jones
This change avoids warning about old compositors on newer versions of Sway. Sway never actually supported version 4, and recently changed to report only version 3 as supported.
2022-11-21Add --font-variations option.Phil Jones
2022-11-20Add --font-features option.Phil Jones
2022-11-20Clean up drun launch logic a little bit.Phil Jones
2022-11-20Fix typo in readme.Phil Jones
2022-11-19Make vector finding functions names clearer.Phil Jones
This adds `_sorted` to the names of `string_vec_find` and `desktop_vec_find`, to make it clear that these functions require their input to already be sorted. Also fix a potential bug from not sorting the list of desktops in drun mode.
2022-11-19Fix sorting in normal tofi mode with history.Phil Jones
By using a hash table rather than binary search to find existing items, we can avoid the need to sort the input.
2022-11-19Cleanup some potentially flaky logic.Phil Jones
Some of the string vec code was still assuming that it was just a list of `char *`s, rather than `struct scored_string`s. Correcting that makes future changes a little less error prone, and allows significantly simpler history sorting for tofi-run.
2022-11-19Sort items in normal tofi mode when using history.Phil Jones
This is a short-term workaround for history sorting not working, due to the binary search used to find exiting items relying on the input already being sorted.
2022-11-19Add --history-file option.Phil Jones
2022-11-19Add missing errno.h include.Phil Jones
2022-11-19Add support for pasting from clipboard.Phil Jones
2022-11-19Fix misnamed header guards in color.h.Phil Jones
2022-11-16Add placeholder text options.Phil Jones
2022-11-13lock: add missing include after 68587e2920b5Jan Beich
This is required on e.g. FreeBSD to define S_IRUSR / S_IWUSR.
2022-11-01Version 0.7.0.Phil Jones
2022-11-01Update documentation warnings.Phil Jones
2022-11-01Add alternative key binding to delete a word.Maksim
2022-10-25Add Fedora build dependencies to readme.godalming123
2022-10-25Add --multi-instance option.Phil Jones
2022-10-25Disallow multiple simultaneous tofi instances.Phil Jones
2022-10-23Synchronise rendering with surface update.Phil Jones
This fixes an issue where receiving multiple keypresses in the time taken to draw a frame could cause input to be out of sync with the display.
2022-10-23Replace wchar and friends with Unicode handling.Phil Jones
All text handling should now be explicitly UTF-8 or UTF-32, removing the ambiguity around wchar_t and related functions.
2022-10-23Add tests to GitHub actions workflow.Phil Jones
2022-10-22Add warning when no terminal is set.Phil Jones
2022-10-22Add --terminal option.Phil Jones
2022-10-22Limit max line length for perfect fuzzy matching.Phil Jones
Fuzzy matching could previously take a very long time for long input lines, as the number of possible matches quickly explodes. This commit sets a line length limit of 100 characters - longer lines will only return the first fuzzy match, rather than the best one.
2022-10-21Initial input handling cleanup.Phil Jones
Also changed keyboard shortcuts to use physical keycodes, rather than XKB keysyms. This means shortcuts don't shift when keyboard layout is changed.
2022-10-18Fix --exclusive-zone=-1 not working.Phil Jones
2022-10-18Add beginnings of test framework.Phil Jones
Just contains a couple of very simple UTF-8 tests for now.
2022-10-18Improve UTF-8 handling.Phil Jones
This should allow case-insensitive matching for non-Latin characters, and fix matching for characters with diacritics.
2022-10-18Make actions run on all branches.Phil Jones
2022-10-18Clean up meson deprecation warnings.Phil Jones
2022-10-18Set the minimum required meson version to 0.61Birger Schacht
The `install_symlink` was only introduced in version 0.61 of meson https://mesonbuild.com/Release-notes-for-0-61-0.html#install_symlink-function
2022-10-14Add --exclusive-zone option.Phil Jones
2022-10-14Change default layer to overlay.Phil Jones
This allows tofi to show up on top of fullscreen windows.
2022-10-12Add Shift-Tab keybinding.Phil Jones
Also fix unbound keys and modifiers resetting the selection.
2022-10-12Fix crash when moving selection with no results.Phil Jones