* implemented xdg thumbnails fetching with fallback on mimetype icons for menu entries in filebrowser mode
* included original license text
* added md5 header and source file
* implemented xdg compatible thumbnail's creation
* added -preview-cmd string option to program settings
* support custom command to create images for entries with thumbnail:// prefix
* fix custom thumbnailer command crash caused by null uri when entry is not a valid filename
* check entry_name is not NULL or empty when generating thumbnails;
use snprintf to avoid static analyzer complains
* avoid using gstrvbuilder to build thumbnailer command args
* fixed static analyzer complain about always wrong condition
* use g_spawn_check_exit_status to avoid bump to glib 2.70
* removed md5-c dependency and use glib checksum implementation
* fixed meson build after md5-c library removal
* support thumbnail generation in recursivebrowser mode
* restored check rofi_icon_fetcher_file_is_image
* create thumbnail directories if not existing
* use g_malloc0, g_strdup and g_strdup_printf
* fixed formatting with clang-format
* don't wait for jobs in execution when finalizing the icon fetcher worker threadpool
* destroy and rebuild the icon fetcher worker threadpool when the current page is changed
* added query_started boolean member to IconFetcherEntry;
check if an icon fetcher query was started on an IconFetcherEntry and submit the query again otherwise
* force icon cache lookup even if the item has a valid icon_fetch_uid (the fetching job could have been discarded before starting)
* search binaries in PATH when executing thumbnailer command
* mark icon query as not started in threadpool item free_func
* added listview page_changed_callback; rebuild icon fetcher threadpool in page_changed_callback
* [listview] Add missing code documentation param
* Create rofi-thumbnails.5.markdown
* Updated documentation with apparmor issues and workaround
* [Doc] Ship rofi-thumbnails.5
With some formatting fixes
* use a more compact thumbnailer example
---------
Co-authored-by: giomatfois62 <giomatfois62@yahoo.it>
Co-authored-by: Dave Davenport <DaveDavenport@users.noreply.github.com>
Co-authored-by: lbonn <github@lbonnans.net>
Squashed commit of the following:
commit 92e730076d461622dc81e44e87ec456317514904
Author: Dave Davenport <qball@gmpclient.org>
Date: Sun Jun 11 18:17:12 2023 +0200
[Doc] Add regex filtering to recursivebrowser.
commit ee80c8487f9765b1e6e8ab8219a6baea089cf5af
Author: Dave Davenport <qball@gmpclient.org>
Date: Sun Jun 11 17:49:29 2023 +0200
[recursivebrowser] Update manpage.
commit a24b68f52362aaf1461935c2340e3bf5e31da59d
Author: Dave Davenport <qball@gmpclient.org>
Date: Sun Jun 11 17:37:56 2023 +0200
[Mode] Add some extra validating of the mode selected to complete.
commit cf497e8685e806521c0f61922827687adce268c9
Author: Dave Davenport <qball@gmpclient.org>
Date: Sun Jun 4 15:12:31 2023 +0200
[Recursive browser] Make completer selectable.
commit 722f07a803c28a406d8a610f31a24b3f7247b9ba
Author: Dave Davenport <qball@gmpclient.org>
Date: Sun Jun 4 14:36:14 2023 +0200
Add methods for completer to modes.
commit 7972420c30275514751802d1ed517a45bbd83da1
Author: Qball Cow <qball@blame.services>
Date: Thu Jun 1 21:56:06 2023 +0200
Prepare updates for new APIs.
commit dd3035a1a61f8196d394f6867701a0e1b3af30ac
Author: Dave Davenport <qball@gmpclient.org>
Date: Wed May 10 19:24:48 2023 +0200
[RB] Fix regex and cleanups
commit 4d2941caf32dfb946aee54c467c1319c7a89804a
Author: Dave Davenport <qball@blame.services>
Date: Wed May 10 18:09:54 2023 +0200
[RB] Add (unfinished regex test)
commit 848277001fc8cf9afc538067f2afa24a174f8c7f
Author: Dave Davenport <qball@blame.services>
Date: Wed May 10 17:49:16 2023 +0200
[RB] Pull the scanning into a separate thread.
commit f369a7f63f618bbcad10c18e73f7e2b117c515f1
Author: Dave Davenport <qball@gmpclient.org>
Date: Wed May 3 18:35:15 2023 +0200
[Recursive File Browser] First test version.
* Don´t refilter on each key-press.
* Make sure refiltering is not completely starved.
* Force refilter before accepting entry
* Go into 'timeout' refilter mode only after certain # elements.
* [DMenu] threading with getdelim to speed up reading.
* [View] Remove debug output.
* [dmenu] Fix pre-read.
* [DMenu] Make sure that async mode cannot block
* Remove mutex for IPC via pipes.
* [Dmenu] Small cleanup.
* [Scrollbar] Fix scrollbar overflowing on big lists.
* Fix stack overflow by creating to many filter jobs.
* [Doc] Add new option to manpage
Implement a new option -combi-display-format (analogous to
-drun-display-format) that allows to change position appearance of
the mode name in the combi entries.
* rofi moved to libera.chat
* unify some theme headers and whitespace
* consistently use the same hashbang for bash
* improve obsolete way of testing equality
see https://github.com/koalaman/shellcheck/wiki/SC2268 for explanation
* use consistent function definitions in bash scripts
* remove duplicated author and fix whitespace
* quote all variables in scripts
fixes many warnings identified through shellcheck
* fix whitespace in scripts
* fix whitespace in non-source files
* fix spelling in non-source files
* fix whitespace and indentation in source files
* fix spelling in source files
Decomposes string and remove accent characters before matching.
This makes o match ö, é match e and more.
It is not a perfect implementation but works.
Currently disables the match highlighting.
Fixes: #1119
* [DRun] Introduce data structure changes for Link desktop entries
From the [freedesktop spec][1]:
> This specification defines 3 types of desktop entries:
> Application (type 1), Link (type 2) and Directory (type 3). To allow
> the addition of new types in the future, implementations should
> ignore desktop entries with an unknown type.
This commit adds an enum to capture these types, and adds `type` to
DRunModeEntry.
[1]: https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
part of #1166
* [DRun] Sanity check Link entries and capture the URL
Note that we're introducing some logic that will differ depending on
the Desktop entry type (Application or Link). The logic is:
- if entry is Application type,
- then Exec is required
- and the value is saved in .exec
- and drun_mode_result calls exec_cmd_entry
- if entry is Link type,
- then URL is required (but is not saved in the DRunModeEntry)
- and drun_mode_result calls new function launch_link_entry
part of #1166
* [DRun] Launch desktop links via xdg-open
Note that this introduces a new dependency on xdg-open, which may not
be installed. In that case, rofi will display an error dialog
with something like:
"Failed to execute child process xdg-open (No such file or directory)"
which hopefully is explanatory enough for folks.
part of #1166
* Make drun options comments consistent and add a bit of whitespace
* [DRun] new config option drun-url-launcher for opening links
In previous commit, this was a hard-coded string.
part of #1166