summaryrefslogtreecommitdiff
path: root/src/main.c
AgeCommit message (Collapse)Author
3 daysRemove unimplemented -f font flagHEAD0.9.3masterzachir
3 daysFix dmenu optionszachir
3 daysBump to version 0.9.3zachir
3 daysImplement version flagzachir
3 daysUse tabs (the wrong choice) because upstreamzachir
3 daysMake dmenu a fully separate modezachir
3 daysDon't make dmenu compat new config file optionszachir
4 daysFix -r flag0.9.2ZachIR
4 daysFix help messageZachIR
4 daysAdd -p short flag for --promptZachIR
4 daysAdd -r require flagZachIR
4 daysAdd -P password flagZachIR
4 daysAdd -b flag for bottomZachIR
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-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-09Add --auto-accept-single option.Phil Jones
2023-03-12Fix crash when wp_viewporter is not supported.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-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
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-06Add config file unit tests and fix some bugs.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.
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-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-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 support for pasting from clipboard.Phil Jones
2022-11-16Add placeholder text options.Phil Jones
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 --terminal option.Phil Jones
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.