summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2022-11-20Add --font-features option.Phil Jones
2022-11-20Clean up drun launch logic a little bit.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-01Add alternative key binding to delete a word.Maksim
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-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-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-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
2022-10-11Fix Pango bug when deleting hidden characters.Phil Jones
2022-10-05Add options to hide input for passwords etc.Phil Jones
2022-09-29Fix appearing on the wrong output on Hyprland.Phil Jones
This isn't a great workaround, but the "correct" solution (implement proper resizing logic and don't parse the config until our window is shown) would incur significant extra complexity.
2022-09-27Add --include option.Phil Jones
This allows config files to include other files, so you can e.g. split style and behaviour options into different files.
2022-09-08Make --scale default to true.Phil Jones
This also stops font sizes from scaling when --scale=false is set.
2022-09-08Fix unused function warning.Phil Jones
2022-09-07Allow space-separated, per-word matches.Phil Jones
2022-08-22Add --prompt-padding option.Phil Jones
2022-08-21Add --require-match option.Phil Jones
2022-08-20Fix double scaling of min-input-width.Dima Krasner
2022-08-20Add Ctrl-u and Ctrl-w readline bindings.Phil Jones
Ctrl-u is just a whole line delete for now, as there's no sense of a cursor position in tofi (so the whole line is "left" of the cursor).
2022-08-20Add scale option.Phil Jones
Previously, tofi wouldn't scale pixel values by the output's scale factor. This allows pixel-perfect sizes on displays with scale factors >1, but means that configs need to be changed on a per-monitor basis, and is at odds with how other applications (notable Sway) behave. This commit adds a new option, --scale, to scale pixel values by the output's scale factor. For backwards compatibility, this currently defaults to false, and font scaling is performed regardless (the existing behaviour). In the next release, this will default to true, and font scaling will follow the same behaviour as everything else.
2022-08-14Improve fuzzy matcher.Phil Jones
It will now always find the best score possible.
2022-08-12Add --fuzzy_match option.Phil Jones
This enables some simple fuzzy matching logic for searches.
2022-08-09Improve performance for some themes.Phil Jones
When not highlighting matches or drawing a selection background box, we can skip a bunch of slow code to improve performance.
2022-08-09Add Transparent HugePage support on Linux.Phil Jones
Currently, this is unlikely to be enabled for shared memory mappings on any user's system, so will not make a difference. If `/sys/kernel/mm/transparent_hugepage/shmem_enabled` is set to `advise` or higher, however, this commit should enable the use of hugepages. This can greatly speed up startup for large windows - for a 2880x1800 fullscreen window on my laptop, enabling hugepages halves startup time. From the kernel mailing lists, it looks like there's some work towards allowing applications to opt-in to THP support regardless of whether they're enabled, via `madvise(MADV_COLLAPSE)`, so this may be more useful in future.
2022-08-07Delay scaling of percentage values.Phil Jones
The config file code now delays calculation of percentage values until `config_fix_percentages()` is called. This allows the config file to be parsed before output configuration is complete, thus allowing `--output` and `--late-keyboard-init` to be specified in the config file.
2022-08-05Correct selection background for slanted fonts.Phil Jones
Previously the selection background didn't really wrap text correctly, especially if the font was very slanted. This fixes that, so the width is tightly wrapped around any font.
2022-08-04Improve pagination.Phil Jones
Pagination was broken in horizontal mode before, and in general tried to render too many results (leading to a cut-off last result). This commit fixes both of those, with the minor caveat that you can no longer scroll straight to the last result.
2022-08-03Make --drun-print-exec always be true.Phil Jones
The option is now deprecated, and a warning will be printed if it's used. It may be removed in a future version of tofi, so it should be removed from any configs now.
2022-08-03Add pagination of results.Phil Jones
2022-08-03Add key repeat.Phil Jones
2022-08-02Add a few more function attributes.Phil Jones