summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
3 daysFix -r flag0.9.2ZachIR
3 daysFix help messageZachIR
3 daysAdd -p short flag for --promptZachIR
3 daysAdd -r require flagZachIR
3 daysAdd -P password flagZachIR
3 daysAdd -b flag for bottomZachIR
2024-12-30Add Ctrl+h and Ctrl+m keybindingsDmitry Meyer
2024-12-30Control-{f|b} keybinding for forwards and backwards.Struan Robertson
Emacs like keybindings for when Tofi is displayed horizontally.
2024-12-30Allow for exiting Tofi using Control-g like EmacsStruan Robertson
2024-12-30Fix comment typo.Phil Jones
2024-12-30Handle `fopen()` errors with drun cache.Phil Jones
2023-07-17Use `access()` to check execute permissions.Phil Jones
This is the correct way to check if we have execute permissions for a file (rather than checking `S_IXUSR`), and it isn't any slower. Should result in very few differences (on my system, only `cupsd` disappears from the list with this change).
2023-07-17Return error if no selection is madeBen Collerson
2023-07-16Add --physical-keybindings option.Phil Jones
2023-07-16Fix typo.Phil Jones
2023-07-16Fix --print-index when searching.Phil Jones
2023-05-14Add --print-index option.Phil Jones
2023-05-09Add Alt-h and Alt-l keybindings.Phil Jones
2023-05-09Add alt-j/k/n/p keybindings.Phil Jones
Also generally clean up input handling a bit.
2023-05-02Swap Ctrl-O binding for Ctrl-[.Phil Jones
2023-04-30Replace `strto[u]l` with `strto[u]ll`.Phil Jones
On 32-bit systems, using `strtoul` was causing negative values for unsigned options to be treated as valid, as the value was being parsed as a 32-bit unsigned int, then cast to a 64-bit signed int, which remained positive.
2023-04-30Add Ctrl-O keybinding.Phil Jones
2023-04-17Add --matching-algorithm option.Phil Jones
This replaces the --fuzzy-match algorithm. Available choices are normal, prefix and fuzzy. Levenshtein distance was investigated, but it seems pretty rubbish for tofi's use case, where you normally want a good match when you've only typed a small portion of the target string.
2023-04-10Fix broken line spacing with some fonts.Phil Jones
I had misunderstood the purpose of the OpenType line gap field 'hlgp'. I thought this was a suggested total line spacing, but it's actually extra spacing to be added to (ascender - descender).
2023-04-09Add --auto-accept-single option.Phil Jones
2023-03-16Fix selection background for Harfbuzz backend.Phil Jones
This was broken in the recent changes to allow fractional scaling, as a calculation hadn't been updated.
2023-03-12Minor cleanup of harfbuzz initialisation code.Phil Jones
2023-03-12Fix crash when wp_viewporter is not supported.Phil Jones
2023-03-12Fix rendering issue for some versions of Harfbuzz.Phil Jones
2023-03-06Replace generated protocol code with xml.Phil Jones
I now understand how this was supposed to be done.
2023-03-06Change log indent to 4 spaces.Phil Jones
2023-03-06Add fractional scaling support.Phil Jones
The main change is that we now always have to set up the dummy surface which was previously only used when multiple monitors were present. This is because there's no way to determine an output's fractional scale factor without displaying a surface on it, and we need to know the scale factor before we create our main window surface. The extra compositor round-trips lead to a slight slowdown for single monitor setups (to the same speed as multi-monitor setups), but it's currently unavoidable as far as I know.
2023-03-05Remove unused image.h.Phil Jones
2023-03-03Convert to using wp_viewporter.Phil Jones
This is the next step in supporting fractional scaling, as wl_surface_set_buffer_scale only supports integer scale factors.
2023-02-28Fix background box -1 padding alignment.Phil Jones
2023-02-28Convert to using Cairo scale.Phil Jones
Instead of scaling various theme parameters ourselves, just set the scale in Cairo. This shouldn't result in any visible changes, but lays the ground work for fractional scaling support.
2023-02-26Log when the second buffer is created.Phil Jones
2023-02-26Support Ctrl-n & Ctrl-p navigation.Phil Jones
2023-02-26Pad just enough when -1 is specified.Phil Jones
This allows rounded background corners to work when a padding of -1 is specified.
2023-01-22Add page up & page down keybindings.Phil Jones
2022-12-21Fix compilation with Harfbuzz < 4.0.0.Phil Jones
2022-12-21Add text cursor support.Phil Jones
This turned out to be much more complex than anticipated, and the potential for bugs is therefore quite high.
2022-12-11Add home path substitution for --font option.niki-on-github
2022-12-11Fix a couple of cache-generation memory leaks.Phil Jones
2022-12-06Add config file unit tests and fix some bugs.Phil Jones
2022-12-01Fix debug logs printing in release builds.Phil Jones
2022-12-01Fix typo.Phil Jones
2022-12-01Add --ascii-input option.Phil Jones
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.