This PR fixes lots of the issues the app launcher previously had, including:
Fixed scrolling issues
Added widget_template support - the only requirements are that the user pass in a prompt with an id of "prompt_role" and a grid with an id of "grid_role"
Added app_template support, this is a function that gets an app parameter passed to it. It needs to return a new widget. You can use the app table that gets passed to the function
Removed the animation props, as it was somewhat buggy. In the example below I show a better way of animating the widget
Removed most of the styling props as there's no need for them now that we have proper templates
Renamed bling::app_launcher::visibility signal to visibility
Refactor the icon theme helper so it's more consistent with the rest of the helpers library
Removed the get_icon_for_client function
Convert any useful local function as a public method so that the behavior can be tailored to one needs
Added a method to dynamically set the favorite apps, which might be useful in case someone implements a context menu that has a button to toggle off the app's favorite state
Improved spawning non-terminal apps (some file managers would open a dialog error when opening them)
Improved spawning terminal apps, including auto-detecting the installed terminal so the user doesn't need to configure it anymore. It also now will change the class of the terminal to the class or name if the class isn't available on the desktop file. The second part is done with xdotool, so I'm not sure if I should keep it or not
Added 'page::forward', 'page::backward' and 'scroll' signals
New text input replacing the old prompt widget, with mouse support, text selection, more sane key binds, copy and paste, completely customizable and many more
Better searching
Improved performance when scrolling by caching the widgets
An option to lazy load the app widgets (less ram when starting and faster startup time, but scrolling pages will lag until all the widgets have been loaded to the cache)
This PR fixes lots of the issues the app launcher previously had, including: