oliverschwendener / ueli

Cross-Platform Keystroke Launcher
https://ueli.app
MIT License
3.61k stars 239 forks source link

feat(Application Search): Linux Support #1078

Closed ke1v closed 4 months ago

ke1v commented 6 months ago

Reopening #1073

ke1v commented 6 months ago

Progress update - Extension is functional, but is still:

Working Screenshot (ran using pnpm dev)j: image

Attempt to package (ran executable from pnpm package): image

oliverschwendener commented 6 months ago

Thanks for the update and your efforts, i'll have a look when i'm back from vacation. The failing build is expected, you have to install the pnpm dependencies under the correct configuration (see release.yml where it says "configure pnpm").

oliverschwendener commented 6 months ago

To fix the Cannot find module '@babel/runtime/helpers/interopRequireDefault' error, you have to run these commands before running pnpm package:

pnpm config set shamefully-hoist true --location=project
pnpm config set auto-install-peers true --location=project
pnpm config set strict-peer-dependencies true --location=project
oliverschwendener commented 6 months ago

Can you update your branch, so that the changes that already have been added in my main branch disappear from this PR?

ke1v commented 6 months ago

Apologies for the messy commits, I'm still learning git. The plugin seems to be fully functional in GNOME and should be good to merge, but I don't have time currently to test out the other popular desktops for Linux.

oliverschwendener commented 5 months ago

FYI: I addressed all my feedback in this branch.

oliverschwendener commented 5 months ago

I tested it on Ubuntu Cinnamon, but none of the applications worked as the icons couldn't be found/generated. I suggest to fall back to a generic app icon when the icon generation fails.

Edit: I'll post logs later.

ke1v commented 5 months ago

I've also experienced this issue and am working on a fix to this and other bugs. I'm also planning to add support for more desktop environments than Cinnamon and GNOME, should I create a type similar to OperatingSystems with all supported Linux environments?

oliverschwendener commented 5 months ago

Yes you can, but let's keep in in the ApplicationSearch folder for now, as we only need it there now.

ke1v commented 4 months ago

I've changed the way applications get launched and it now supports launching files located anywhere on GNOME. I still have other desktops to test out (sorry spinning up VMs take a lot of time) which are all currently listed in LaunchDesktopFileActionHandler.ts

oliverschwendener commented 4 months ago

I tested it on Ubuntu Cinnamon and it works fine, although some icons couldn't be generated. There is a lot of opportunity for improvements, for example splitting code into multiple classes, simplifying code flows or adding more tests, but this is good enough for now, so let's merge it to move forward. Thanks alot for your time and all your efforts, much appreciated! 💪

For future changes please keep in mind:

I added you to the code owners of all the Linux parts of the ApplicationSearch extension, so I will forward all future feature request, issues and contributions to you for review, if that's fine. Keep it up!