Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
|
|
We don't use exceptions, attribute(cleanup) or similar techniques, so such sections just add up to binary size.
|
|
I now understand how this was supposed to be done.
|
|
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.
|
|
This is the next step in supporting fractional scaling, as
wl_surface_set_buffer_scale only supports integer scale factors.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
All text handling should now be explicitly UTF-8 or UTF-32, removing the
ambiguity around wchar_t and related functions.
|
|
Also changed keyboard shortcuts to use physical keycodes, rather than
XKB keysyms. This means shortcuts don't shift when keyboard layout is
changed.
|
|
Just contains a couple of very simple UTF-8 tests for now.
|
|
This should allow case-insensitive matching for non-Latin characters,
and fix matching for characters with diacritics.
|
|
|
|
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
|
|
|
|
This was caused by an unused (but included) function not being linked.
LTO was able to determine that the missing function didn't need to be
linked, so didn't complain, leading to this bug being missed.
|
|
|
|
This enables some simple fuzzy matching logic for searches.
|
|
|
|
This was really just a utility for testing, and isn't needed by users.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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).
|
|
This is required for shm_open and shm_unlink on some systems.
|
|
Fix typo in meson.build
|
|
|
|
|
|
Tofi now uses Harfbuzz if a file is passed to --font-name, and Pango
otherwise.
|
|
Invoking 'tofi' now acts like dmenu, expecting newline-separated options
on stdin.
Also fix history file handling and add an option to disable it.
|
|
Single letter style arguments have been removed.
|
|
There are too many really to use single-character args, so the next step
should be a config file.
|
|
A list of commands is now stored in $XDG_CACHE_HOME/.cache/tofi-compgen,
and regenerated as necessary.
|
|
- Split the compgen and history sorting parts of compgen(), for future
dmenu-like work.
- Add a separate tofi-compgen executable.
- Remove harfbuzz-glib usage, as we shouldn't be doing any complicated
unicode stuff.
|
|
Another source of slow startup is initialising Pango. If the user
supplies a ttf file, we can skip any Pango stuff and use Harfbuzz
directly with Cairo to do our font rendering, providing a large speedup.
|
|
eglInitialize() is slow (~50-100ms), and uses a fair amount of memory
(~100 MB). For such a small, simple program that just wants to launch as
quickly as possible, wl_shm performs better.
|
|
This implements a rofi-like run cache. Other smaller changes include
simplification of resize logic now that there's only one surface.
|
|
- Remove the background image and libpng dependency
- Add a prompt
- Add xmalloc with out-of-memory handling
- Add beginnings of a rofi-like run cache
|