I guess I wasn’t quite done making releases. 🤷 Tanglet would not let you choose a language other than English for the game board, which is a pretty serious bug! It also listed an empty language as a choice for the board language, which is just silly. I fixed that in Connectagram as well. And I made a further fix for the multiple monitor support for Whisker Menu. Whew. Now I think I am done for a while!

I really did not expect to be making releases of my programs anytime soon, but things come up. First somebody reported a crash in Tetzle when attaching multiple pieces, then somebody else reported that player names were messed up in the high scores dialogs of my games under Windows, and finally the tool I used to update the Linux desktop integration files is unmaintained and broken so I needed to replace my use of that. Oh, and Whisker Menu did not show up in the right location when using multiple monitors under Wayland. Whew. I think that covers everything! I doubt most users will notice a difference—although packagers will need to add gettext as build dependency—but enjoy the new updates! And now I am going to take a break for a while… I hope. 😉

Whisker Menu 2.9.0 released

Posted on January 30, 2025, under Whisker Menu

I am always surprised when I make a feature release of Whisker Menu. The menu has been in a state I would consider done for many years, and yet somehow I eventually add features. Amusingly, I don’t know if I have used a single feature added to Whisker Menu. 😉

What’s New?

To the relief of many, I found a way to bring back edge resizing! 🎉 I had to come up with a hack to force the resizing, so it is a little choppy for me on X11. Nevertheless, it works again! And since I am using the same code for Wayland, it allows you to resize there as well. As the resize code doesn’t know where the window is in relation to the panel button, resizing works from all edges and will snap the window back to where it belongs when you are finished.

I don’t know if the other features are quite as exciting, but here are the highlights:

I added the ability to autostart applications. You can already do that in Xfce, but it isn’t quite as convenient as just right-clicking a launcher in Whisker Menu. This request was from many years ago, and I never could settle some issues. So I decided to just ignore them. 😉

I also added a fallback to the search page. If no applications are found when searching, it will show you all of your search actions and allow you to pass what you have searched to them. Obviously, this doesn’t work with regular expression search actions, but it does for the rest!

And I found a solution to another annoyance people had: Whisker Menu will now only select items when you move the mouse, not when the menu is shown. That way you don’t have to care where the mouse is when you open the menu from a keyboard shortcut. I did consider making it always select the first item when the menu is shown, but I wasn’t sure that would have been a popular solution.

Enjoy!

Downloads

Source tarball

SHA-256:
8892bb9cc6bbaa402288ad7e5ee76a1990cb8476fe35964a41ec8a9794f6f322

SHA-1:
bc78dfced5630cc0c1ef2de78737732cb8505207

Improvements to autostart

Posted on January 19, 2025, under Whisker Menu

When I added support for autostarting applications to Whisker Menu, I did not feel like handling the cases where the autostarted application had been disabled or there was a system-wide autostarted application.

But…

It just kept niggling at me. I had expected it would make the code brittle and extremely complicated, so I hadn’t given it too much thought. However, it always bothers me to write incomplete code that doesn’t handle reasonable edge cases. And it turns out I was wrong! The new code is quite clean and simple, really.

Handling disabled autostart

The way I had before checked if there was an autostarted application was to simply look to see if the launcher existed in $XDG_CONFIG_HOME/autostart/. If I found it, I assumed that it was a valid launcher file, and therefore the application was autostarted.

However! You can disable autostarted applications by adding Hidden=true to the file, which means it shouldn’t show up as autostarted in Whisker Menu. How often will people do this? I don’t know, but as Xfce makes it easy to disable an autostarted application, it isn’t out of the question.

Handling global autostart

And you can have system-wide autostarted applications. It would be silly for Whisker Menu to allow you to add the same application twice, but since it only checked the user’s autostart directory, it was a valid possibility. Probably a lot smaller possibility than disabling the launcher, but in fixing one I fixed both.

To prevent conflicts with autostarted filenames before I had added an extra whiskermenu- to the start of the autostarted launcher filename. Now that it properly supports everything, it no longer does that. Which means I did break compatibility, but only for the people who have tried the git version of Whisker Menu in the past week. Sorry!

Ignoring other issues

Of course, there is one obvious situation this code doesn’t handle, and it was my issue with adding support for autostarted applications in the first place: it can’t tell if you have already added the same autostarted application before but with a different file name. Short of reading every single autostarted application launcher and checking for the same executable, there is no way to prevent that. Plus, that doesn’t even account for using symlinks as targets in launchers. So… the current code is as far as I am willing to go. 😉

But now I can finally breathe a sigh of relief and forget about the autostart code. 🙂

As has become my habit for January, I made a maintenance release of my programs. For the most part there aren’t any user-visible changes, but I did fix a bug in Simsu (the game was really wide when first launched) and I updated the translations. A few days ago I also made a Whisker Menu release, and that had some bug fixes in it. Enjoy!

Categories