summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
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
2022-07-31Add checks for old wayland versions.Phil Jones
2022-07-30Add option to colour matching portion of results.Phil Jones
This was done by breaking the selected result into three parts, and rendering each separately. A side-effect is that ligatures split when a match ends inside them, but I think that's the correct behaviour (rather than highlighting the whole ligature). There may be issues with some non-latin languages that make much more extensive use of ligatures / combining characters, however.
2022-07-30Improve error message for invalid colours.Phil Jones
2022-07-29Make a selection-padding of -1 be infinite.Phil Jones
2022-07-29Add --selection-padding option.Phil Jones
This adds some extra padding in the selection background, rather than tightly wrapping the selection text.
2022-07-29Redraw prompt each frame.Phil Jones
This fixes some slanted fonts being cut off if they extend back towards the prompt too far.
2022-07-29Fix drun mode when args come after a field code.Phil Jones
2022-07-27Fix window workspaces in drun mode.Phil Jones
Previously, tofi-drun would print the filename of the selected .desktop file to stdout. This could then be passed to `xargs swaymsg exec gio launch` to be executed. The problem is that this ends up defeating the purpose of passing the command to swaymsg exec, and the workspace the command was selected on may not be the one that it starts up on, if for example it takes a long time and the user switches workspaces in the meantime. The solution is to instead print the Exec= line from the .desktop file, and pass that directly to `xargs swaymsg exec --` for execution. To avoid too much breaking of configs for the few people who use tofi currently, this commit adds a new option, --drun-print-exec, to enable the fixed behaviour. A future release will change this to be the default, however.
2022-07-27Fix drun mode when history is enabled.Phil Jones
2022-07-26Add keyword matching for drun searches.Phil Jones
There's starting to be a fair amount of duplicated code between the drun and normal run modes. At some point in the future, it's likely to be worth combining them, such that there's only a single `struct search_item` or similar, and just handle the different modes at the start and end of execution.
2022-07-26Add automatic detection of number of results.Phil Jones
Tofi will now try to autodetect how many results can be drawn if --num-results=0 is specified, which is now the default.
2022-07-26Fix percentage values on rotated monitors.Phil Jones
2022-07-25Change keyboard interactivity to exclusive mode.Phil Jones
This should fix tofi not grabbing keyboard focus on River.
2022-07-25Fix margin being scaled by scale factor.Phil Jones
2022-07-24Add drun mode.Phil Jones
This is a pretty simple implementation, but it should work for most use cases. Notably, generic application names aren't used (though that could be added without too much hassle), and neither are keywords (that would be more difficult).
2022-07-05Fix typo.Phil Jones
Probably a good idea to allow more than 128 runs of a program.
2022-07-05Sort results by match position.Phil Jones
Search results will now be sorted by history first, then by the position of the match, such that a match at the start of a result will appear before a match later in the result.
2022-06-30Fix buffers sometimes going out of sync.Phil Jones
This was caused by some unneeded leftover logic that resulted in surface_draw being called without a corresponding entry_update.
2022-06-29Add Ctrl-j and Ctrl-k keybindings.Phil Jones
2022-06-28Select next result on Tab.Phil Jones
2022-06-27Add default output selection.Phil Jones
Tofi should now appear on whatever the compositor's default output is (usually the focused one), unless --output has been given.
2022-06-26Add optional background around selected result.Phil Jones