Latest Nimf indicator not working in Ubuntu 18.04.

Sun, Mar 31 2024 16:53:08 KST

I’m still struggling today.


I’ve been developing and maintaining it for many years, but I still have difficulties. The biggest problem is money. It takes a lot of time to develop, but there is no income.

Why is it still difficult to develop and maintain? The biggest reason is that the quality of core desktop libraries for Linux/BSD is poor.

  • There are countless one-time memory leaks in Glib and Gtk, so even if a real memory leak occurs, it is not easy to catch it.
  • The desktop-related specifications and implementation are a mess. For example, StatusNotifierItem, Wayland, fragmentation of input method, etc.

Fortunately, X and XIM from the old Unix era are still useful. But since open source forces took over the market, the desktop environment has become more and more messy.

Nimf has several problems.

  • GUI quality issues
  • Indicator issues
  • Wayland support issues
  • Console support issues

In fact, it is difficult to solve these problems with my abilities. Because it takes a very long time.

Let’s look at the indicator problem. There is a library called appindicator(ayatana), but it is practically not updated. It has several bugs (timing issues, compatibility issues), and since it is Glib-based, there are a ton of one-time memory leaks, so you can see a lot of messages when you check with valgrind.

In order to separate the GUI from Nimf, I developed CSystray, which does not require a GUI, to replace appindicator, but there is a compatibility issue where CSystray works in some environments and not in others.

The StatusNotifierItem specification is unclear, so the implementations are a mess. There is no standard library. It appears that this specification originally came from KDE.

For this issue, I think it would be better to use kstatusnotifieritem or qsystemtrayicon. However, doing so makes it difficult to separate the GUI from Nimf, making console support difficult. Console support will have to be delayed further.

First off, I’ll take a quick look at CSystray today and plan on using kstatusnotifieritem or qsystemtrayicon. This is a very time-consuming task. All existing Gtk code may need to be replaced with Qt, or GUI-related plugins may need to be separated into daemons.

A lot of time and effort goes into Nimf development and maintenance. The opportunity cost is over 100 million KRW. I have been distributing it for free since 2015. Nevertheless, there are some people who sometimes behave maliciously toward me. Please don’t do that. I do this in good faith. Don’t blame me for having a different view of open source than yours.

In my environment, Nimf works very well. However, it takes a lot of time and effort to support environments other than the one I use, so I am constantly looking for ways to generate revenue from Nimf due to cost issues. Otherwise, it would be better to just support my environment. In fact, supporting only the environment I use is the wisest decision for me.