domferr / Linux-PowerToys

Get Microsoft's PowerToys utilities and much more to Linux world!
GNU General Public License v2.0
185 stars 7 forks source link

Add Run utility #7

Open J-Marte opened 1 month ago

J-Marte commented 1 month ago

Hello,

I have wrote some Code for a rough implementation of the run-utility over at my Fork in the feature/run branch. It is a separate Flutter-Application so that it can operate independently. I would like to integrate it into this Project. There are still a lot of things to do before it is stable and release ready (wrap into Gnome Extension, Settings, DBus interface naming, documentation, ...).

domferr commented 1 month ago

Hey, great work! How does your implementation work? I'm curious to know!

J-Marte commented 1 month ago

The Implementation will be split into two parts, the flutter application and gnome-extension.

flutter application

The flutter application handles the searching and displaying of the search results.

Summoning

The app listens on a D-Bus interface for the toggleVisibility method call and toggles the visibility via the window_size package

Plugins

When the user enters a search-text each plugin (if no activation Prefix is given) starts generating search results based on it's own cached search entries. The UI uses this search results to display the them in the correct order.

The plugins also implement the actions. For example to open a VScode-Workspace or the Git-repository in a terminal.

Search engine

The default search engine searches in the title and subtitle for all word given in the search text and generates based on the amount of occurrences and length of the search text a rating and highlight-sections.

UI

The ui handles the keyboard inputs, such as arrow movements/tabs to navigate through the application without mose and execution of the actions provided by the search-results.

Gnome Extensions (not implemented)

The Gnome Extension will handle the things which the App can not handle such as: