Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
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).
|
|
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.
|
|
It will now always find the best score possible.
|
|
|
|
This enables some simple fuzzy matching logic for searches.
|
|
|
|
When not highlighting matches or drawing a selection background box, we
can skip a bunch of slow code to improve performance.
|
|
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.
|
|
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
This was really just a utility for testing, and isn't needed by users.
|
|
|
|
|
|
|
|
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.
|
|
|
|
This involves a force push, which I know is evil, but as I'm the only
developer and this is still very early days, I've gone ahead with.
|
|
|
|
This adds some extra padding in the selection background, rather than
tightly wrapping the selection text.
|
|
This fixes some slanted fonts being cut off if they extend back towards
the prompt too far.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
Tofi will now try to autodetect how many results can be drawn if
--num-results=0 is specified, which is now the default.
|
|
|
|
This should have been done as part of
32e2cb851e5acd1163c9418a2efa138fcdac6070.
|
|
This should fix tofi not grabbing keyboard focus on River.
|
|
|
|
|
|
|
|
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).
|