Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ulauncher v6 #869

Open
friday opened this issue Dec 2, 2021 · 24 comments
Open

Ulauncher v6 #869

friday opened this issue Dec 2, 2021 · 24 comments
Milestone

Comments

@friday
Copy link
Member

friday commented Dec 2, 2021

This is a tracking issue for the upcoming v6 release that we have been working hard on. Subscribe to this issue to be notified of the v6 development, as we are closing issues as they get fixed for the v6 branch (now the main branch).

What has been done

  1. Lots of refactoring, and rewrites to internal parts of Ulauncher that caused bugs, inconsistencies, performance issues, or were holding us back from fixing issues, adding features or just made it very hard to work with Ulauncher in general. We got rid of a total of 7 dependencies (in the Debian package). It's faster and lighter on your system resource usage, because of taking better advantage of the fast and capable GTK APIs, Unix sockets, and many smaller performance improvements. It's also significantly easier to build and contribute to Ulauncher now as well. These changes are too many and too complex to detail here. git diff --shortstat as of writing this says 545 files changed, 11479 insertions(+), 29372 deletions(-)
  2. Many Extension API improvements to make it easier to write extensions with less code (more on this TBA).
  3. Lots of other smaller improvements and bug fixes.
  4. Removed a couple of features that were causing more issues than they solved, and changed the behavior of some others to be more intuitive, performant, compatible or to work enable planned future changes.

To test Ulauncher v6, follow the instructions to set up and run.

To see what else is planned, see the: milestone (note that the milestone is subject to change, incomplete and doesn't include smaller things like updating our documentation, website and extension website).

Ulauncher application changes

Theme changes

  • Since we removed the support for ancient GTK 3.18 you can specify only css_file_gtk to target GTK 3.20+, rather than needing both css_file_gtk and css_file_gtk_3.20+ (old themes specifying both ways will remain to work the same way) (Simplify CSS themes by removing GTK 3.20 support #836).

Extension changes

Most extensions that runs in Ulauncher v5 now should run in Ulauncher v6 as well. Almost all changes we made are backwards compatible. The exceptions are if the extension used APIs that were not meant for extensions to use.

@friday friday added this to the 6.0.0 milestone Dec 2, 2021
@friday friday pinned this issue Dec 3, 2021
@LinuxOnTheDesktop
Copy link

Blacklisted dirs ('If you still feel like you need this setting in Ulauncher v6, let us know'). I think I do need this. For, there are directories that contain executables (or links to them) that do not work on my system or that I do not wish to use.

Also: could we have dark mode in the configuration windows, please?

@friday
Copy link
Member Author

friday commented Jun 2, 2023

Blacklisted dirs ('If you still feel like you need this setting in Ulauncher v6, let us know'). I think I do need this. For, there are directories that contain executables (or links to them) that do not work on my system or that I do not wish to use.

Then why do you have them in the dedicated directory for desktop entries to use for launchers and menu apps if I may ask?

Also: could we have dark mode in the configuration windows, please?

That's not planned, and is not easy to implement, so very unlikely for v6. Hopefully later at some point.

@LinuxOnTheDesktop

This comment was marked as outdated.

@lorenzleutgeb
Copy link

lorenzleutgeb commented Oct 23, 2023

I might be a little late, but just checking: #712 and #713 should be resolved right. Asking because these issues are not mentioned. If so, I'd test the beta.

@friday
Copy link
Member Author

friday commented Oct 23, 2023

I might be a little late, but just checking: #712 and #713 should be resolved right. Asking because these issues are not mentioned. If so, I'd test the beta.

Yes. There's over 1000 commits, so I can't mention everything in the release notes, but they are closed as fixed so they are fixed.

@friday
Copy link
Member Author

friday commented Oct 23, 2023

I just pushed a pre-release: https://github.com/Ulauncher/Ulauncher/releases/tag/v6.0.0-beta1. We still have work to do before the stable release, but this makes it easier for people to test without building themselves.

The plan was to also make that publish to ulauncher-dev, for the Ubuntu/Debian users who opted for the experimental Ubuntu PPA. But apparently that part isn't working yet (fixed now, but only the jammy and focal packages show up in launchpad... 🤔 ).

Either way the deb can be downloaded and installed manually in the meanwhile.

@friday
Copy link
Member Author

friday commented Oct 29, 2023

https://github.com/Ulauncher/Ulauncher/releases/tag/v6.0.0-beta2 released and published to ulauncher-dev

@RedBearAK
Copy link

@friday

Working nicely in a Xubuntu VM, but I'm hoping someone will start making some RPMs soon. My main systems are Fedora and Tumbleweed. The tar.gz is a bit too manual for my taste.

Love the Ctrl+comma shortcut to open the preferences now.

And the searching in the app "comment" or description appears to be working well also. Lots of good things happening.

@LinuxOnTheDesktop
Copy link

Version 6 sounds good! Where should bug reports for the beta of that version be posted, please? I add immediately here though the following two points (though neither are about bugs).

  1. On Cinnamon, Ulauncher 5 itself could set the main Ulauncher shortcut. Ulauncher 6 cannot. But setting the shortcut via Cinnamon works.

  2. Previously, for applications requiring pkexec, I had to create custom shortcuts else Ulauncher would not run those applications. But now Ulauncher runs those applications directly. Nice!

@friday
Copy link
Member Author

friday commented Oct 30, 2023

  1. On Cinnamon, Ulauncher 5 itself could set the main Ulauncher shortcut. Ulauncher 6 cannot. But setting the shortcut via Cinnamon works.

Yeah, that's because the old way relied on a library that relied on globally monitoring all keystrokes See #1256 and #991 (comment) (old behavior). I added support for Cinnamon too, but had to revert it because it wasn't possible to reload Cinnamon to apply the settings: 2a22711

  1. Previously, for applications requiring pkexec, I had to create custom shortcuts else Ulauncher would not run those applications. But now Ulauncher runs those applications directly. Nice!

🙏

@friday
Copy link
Member Author

friday commented Nov 14, 2023

v6.0.0-beta3 was released yesterday, but the ulauncher-dev ppa upload failed because of errors on their side. So the package wasn't pushed until some hours ago today.

@friday
Copy link
Member Author

friday commented Nov 16, 2023

v6.0.0-beta4 was just released with a few fixes.

The scope of the v6 release still isn't fully set in stone, but we only have a few remaining planned features/improvements now:

Most of the other unfinished tasks in the milestone are chores that relate to the release, extension site or documentation (these can still take time though).

We would appreciate any help we can get with testing (trying to confirm the current behavior and narrow down where/why any issue happen).

For example:

  • Ensure the app shadow works as intended (no shadow or black outline) with a DE without a compositor
  • Test more Wayland in more DEs (in particular we want to support the DEs that support wlr-layer-shell).
  • According to one user Linux Mint seems to log apps launched by Ulauncher under "ulauncher" (we can likely not do something about this?)

@euh2
Copy link

euh2 commented Jan 16, 2024

  • According to one user Linux Mint seems to log apps launched by Ulauncher under "ulauncher" (we can likely not do something about this?)

I see this as well on Fedora. From my understanding it seems that Ulauncher is regarded as as parent process. There must be a way to dislodge the Child from the Parent. In the shell I would use exec someApplication to uncouple the application from my shell (or rather the binary running my shell). Maybe there is a way to do this in Python.

@RedBearAK
Copy link

@euh2 @friday

In the shell I would use exec someApplication to uncouple the application from my shell (or rather the binary running my shell). Maybe there is a way to do this in Python.

Actually from what I understand exec in the shell replaces the shell with the new process or shell, rather than running the command as a child or spawning another shell layer. I don't think it's quite the same as launching an independent process while the same shell keeps running. But I'm not an expert in how the shell works.

For Python, GPT-4 suggests this may be the best way to launch a process and have it be independent of the Python process that launches it:

import subprocess
subprocess.Popen(['your_app'], start_new_session=True)

I've never had occasion to use this start_new_session argument, but it seems to be a valid argument and defaults to False. Seems to have been around since Python 3.2 (2011).

If start_new_session is true the setsid() system call will be made in the child process prior to the execution of the subprocess.

References to it found here:

https://docs.python.org/3/library/subprocess.html

@friday
Copy link
Member Author

friday commented Feb 25, 2024

We have just released v6.0.0-beta5 which should fix the issue mentioned above (it also reintroduced #778 when running Ulauncher from a terminal) @euh2 @RedBearAK

This is the first release for a while because most of what's been done in this period has been refactoring and build improvements, NixOS support and other things which didn't affect the app so much.

There is however something wrong with launchpad again. It is probably time to find a better alternative to this frustrating platform. Fixed (it was due to "beta" being shortened to "b" in the version name, which is how Python says it should be done, and forces it to be shortened)

@euh2
Copy link

euh2 commented Feb 25, 2024

It is probably time to find a better alternative to this frustrating platform.

Suse might be an alternative: openSuse

I'm curious about why I was tagged here. 🤔

@friday
Copy link
Member Author

friday commented Feb 25, 2024

I'm curious about why I was tagged here. 🤔

Because this release should address your feedback in #869 (comment)

Suse might be an alternative: openSuse

Feels like a better alternative for sure, but extremely high threshold to learn how to use it. I tried it twice.

@euh2
Copy link

euh2 commented Feb 25, 2024

should address your feedback

I forgot about that. Waiting eagerly for the stable v6. 🇺🇦

@RedBearAK
Copy link

@friday

I continue to look forward to someone putting together an RPM installer. I spend most of my time on Fedora. I'm betting between openSUSE, OpenMandriva, Fedora, CentOS, RHEL and all the RHEL compatibles, the RPM-based distros are a decently large portion of the installed Linux user base.

I tried just using the setup.py to get it built and installed, but the result seems to have a lot of Python exceptions, and I don't really have time to mess around with it to see why it's not working. I'm sure the DEB still works perfectly fine on Ubuntu/Debian systems.

It also seems to be putting things in the "system" Python locations, which more and more distros are restricting in favor of wanting apps to use their own virtual environment to protect the system Python library. Seems like a good idea to sort that out before the final release. I had to go through that process with a project of mine about a year ago, and now it will install without any Python issues on about 6 different major distro types, using its own isolated venv.

@friday
Copy link
Member Author

friday commented Feb 26, 2024

@RedBearAK Thanks for the testing and the feedback. These are not priorities for us currently though. Also, system packages should use system dependencies unless it's a flatpak or something.

I guess we could look into supporting https://help.ubuntu.com/community/CheckInstall though, but those uses the user package paths, not the system ones.

@friday
Copy link
Member Author

friday commented Apr 21, 2024

v6.0.0-beta9 v6.0.0-beta10 was just released.

Since the last updates here (beta4-5) we have done a lot of refactoring, fixes and added some features, but mainly the same bigger tasks remain. We have been trying to reduce the milestone by moving #1257 out of the V6 release so we can have a release candidate ready sooner.

The other unfinished tasks in the milestone are chores that relate to the release, extension site or documentation.

We would still appreciate any help we can get with testing to ensure things are working in different environments. In particular if you can make detailed reports with error logs and/or submit PRs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants