Theoretically when you write a GUI-based application for Linux there are standards to follow, with these all neatly documented over at the Freedesktop website. However, in reality, Freedesktop is more of a loose collection of specifications, some of which are third-party specifications that have somehow become the de facto standard. One example of this is the StatusNotifierItem spec that provides a way for applications to create and manage a ‘system tray’ icon.
This feature is incredibly useful for providing a consistent way to users for quickly accessing functionality and to see application status. Unfortunately, as [Brodie Robertson] notes in a recent video, not everyone agrees with this notion. Despite that Windows since 95 as well as MacOS/OS X and others provide similar functionality, Gnome and other Linux desktop environments oppose such system tray icons (despite a popular extension), with an inevitable discussion on Reddit as a result.
Although the StatusNotifierItem specification is listed on the Freedesktop website, it’s under ‘Draft specifications’ along with another, apparently internal-but-unfinished System tray proposal. Meanwhile DEs like KDE have integrated first-party support (KStatusNotifierItem) for the specification. There’s currently an active Freedesktop Gitlab discussion on the topic, whether StatusNotifierItem should even be in the list, or become an approved specification.
With the specification mired in bureaucracy and multiple camps pushing their own idea of what ‘the Linux desktop’ should look like, it feels like a real shame that the Linux Standard Base effort died a decade ago. Users and developers just want their desktop environment to come with zero surprises, after all.
Ya why I hate Linux its standards are not standard
“Users and developers just want their desktop environment to come with zero surprises, after all.” Beg to differ somewhat… I want to pick a DE that fits my workflow… Not one that is ‘pushed’ on me as the only choice or is THE ‘standard’… With Linux I have a ‘bunch’ to pick from. For example, I like a menu button in left bottom corner. I want the standard menu when it is displayed and list goes on of my ‘wants’… So I go look for that in an offered DE. Some other person wants the menu bar at top and wants to right click on open desktop area to bring up a menu of applications. He/she will go find a DE that fits that workflow design. So standard? Naw … Freedom of choice is better :) .
https://en.wikipedia.org/wiki/IBM_Common_User_Access
“The subset of CUA implemented in Microsoft Windows or OSF/Motif is generally considered a de facto standard to be followed by any new Unix GUI environment.”
That’s how it’s done.
Motif…now there’s a name I haven’t heard in a long time.
Back in the day, I actually sent a check and purchased a copy of mwm to run on my Linux system. I’m sure I have it here somewhere…[digs through piles of dusty stuff]…I know it’s here somewhere…
Yay, the perfect recipe for making tech support even more impossible.
I’d say DE standards as a base a great and should be “standard”. But deviations from that are always possible.
If your tiling window managers doesn’t support “(K)StatusNotifierItem” than that’s your problem but every GUI application that wants to use it should just do so. (and there should be proper standard across different DEs for such things)
Imagine *nix OSs hadn’t the POSIX standard and/or Linus had not followed it?
Linux wouldn’t be were it is if it hadn’t followed several existing standards.
Isn’t GNU pretty much an open source re-implementation of “standard” Unix utilities?
Same should go for desktop environments (DEs), window managers etc. – one fundamental standard that evolves over time every app supports.
Yep. This is part of the “distro hell” that’s wrong with Linux. None of the distros can manage to maintain their repositories well enough that they’d have the latest updated application packages available – because it’s impossible – so you always end up “side-loading” a bunch of stuff that is technically compatible but not made for that particular distro, so you end up breaking all sorts of things – tray icons being a common example.
If the sofware was following common standards, they wouldn’t have to go through the distro maintainers to get onto my desktop in the first place, because the standard DE would be directly compatible, so then the distro people wouldn’t have to spend all that effort and failing to maintain potentially millions of software packages.
But noooo… that would be a security hazard if the user could just download a package directly from the software vendor and install it.
I’m all for the freedom of choice, but surprises in the desktop environment usually come in only two flavours. Surprised it works and surprise it’s done something totally unexpected and crashed, neither of which is better than behavioural certainty.
You can have standards that still give flexibility while avoiding major headaches. For example Python gives a programmer huge freedom of choice with what they want their program to do, but what hell would it be if every different operating system/architectures used a different character for comments.
You will never convince me that Python PEP-668 was a good idea.
It literally fragmented everything. Instead of pip installing things you need to track down what system package provides the python package needed which varies based on distro, AND as an added annoyance it is Python on its high horse thinking they know better than me how things should be installed on my system.
It’s literally the opposite of what you’ve described. It’s Python knowing that they don’t know better than the package maintainer for your operating system. If you want to install packages from pip at the system level you can still do that but have to bother to look up one extra step, if you can’t bother to do that you definitely do not know better.
Pip is just a package manager for Python.
I love package mangers.
But I hate EXTRA, single purpose package managers.
I prefer one single package manager that manages everything. And the only sensible place for that is the distro, not one for each language.
It makes it easier to find things and also easier to avoid conflicts.
That doesn’t help make Linux more usable it makes it more fragmented.
I’ll absolutely agree on the freedom of choice but there has to be a baseline standard that everything meets or else Linux will continue to be mess.
Windows is awful but most of its awfulness is hidden until you get deeper in. Linux has its awfulness front and center because it is a bit of a broken puzzle, some pieces don’t fit right, some are missing, and there isn’t a consistent image they are building to use as a guide. What puzzle pieces do end up going together are a million times better than Windows but it’s not the full set.
Out of the box installers handle that for you. Since 2007 I have used a large variety of distros and DE’s without major issue aside from an aliexpress special with super oddball hardware. That wasn’t standards/DE/Linux’s fault though and I was able to get everything fully working
This is what pushes my away from recent GNOME, with their “my way or the high jump” mentality. I’ve nothing against the new design philosophy per se but I’d like to be able to change it if I so choose, but such things are verboten.
In the end this battle of opinions is 2-5% of all computer users who are presently running Linux on the desktop vs. 20-50% of the entire market who are interested in Linux but not enough to bother without working standards.
One side is going “Noo! my freedom of choice!” and the other side is going “Not gonna touch that mess until you clean it up”. What’s your choice – best for you or best for all?
I feel that any extension that enjoys a high level of popularity should be merged into the DE as opt-in/opt-out, as it has shown that that is what the users want.
If you keep adding extensions as “optional”, they will become practically mandatory, because users generally install many different software packages and one demands one, the other demands the other… until you have the whole set anyways.
I guess Gnome opposing it means that this will in future be done by systemd.
I don’t know why anyone listens to gnome’s alleged designers. After the whole save/export debacle, they should have been so unemployable that they spent the rest of their days under a bridge. For people with negative talent, they sure do have strong opinions.
I like GNOME design. What’s the save export debacle?
This is why dictatorships get stuff done while anarcho-syndicalist communes spend their entire time arguing about tedious details. MS and Apple being dictatorships in this case.
Infighting and fragmentation are Linux’s biggest enemy.
Plus the development of Linux is also driven by commercial needs. Many large companies give back to the community. Just like socialism cannot survive without capitalism.
Linux and GNU were fully established before parasitic companies (most of them) or less parasitic companies who were forced, by the GPL, to contribute back their changes came along.
80s – early 90s it was just hobbyists and students contributing to gnu. Same for Linux, in the early 90s. Both were great then. GNU was best in class, with anybody with a clue installing gnu tools onto their e.g., sunOS/Solaris boxes since what came with commercial *nix sucked in comparison.
Define “fully established”.
Free desktop and LSB are stupid.
LSB was a tool for Redhat to convince the uninformed to use their commercial distribution– Redhat came along years after other distros, and had the worst package manager of all (e.g., couldn’t delete auto pulled in deps when deleting a package which others that preceded redhat handled fine) but LSB said, packages were RPMs– total bullshit.
Free desktop seems overly influenced by gnome, and therefore redhat. E.g., free desktop says all monitors must share a virtual desktop and not independent virtual desktops per monitor. The latter is a great feature in some WMs that predate gnome, but gnome devs apparently think it is too difficult, or something. And, so nobody should be doing it.
As for taskbars, these should never be a dependency. Traditional X desktops had no ms windows style bar on the bottom. You right/left/middle clicked the root window aka desktop to bring up [different] menus, with no garbage taking up desktop space– a setup I prefer. But, if you want something that looks like ms Windows, you shouldn’t have someone making up fake standards saying what you want isn’t allowed either.
Authoritarians GTFO!
Lots of us were using Linux + GNU as daily drivers on workstations and servers before commercial involvement was the norm.
The unwashed masses might have been unaware, but who cares?
Fully established.
In the mean time, the global menu bar (à la MacOS) that used to work perfect under X11 still doesn’t work with Wayland because neither Gnome nor KDE nor … could agree on a dumb specification/protocol. With Gnome developers, on one side, that think that a menu is old school and should be removed (and so, don’t bother register the application menu with DBUS in any GTK4 software), and KDE users that don’t see any menu for those applications but not the “old” GTK3 application that do work (sometimes), it’s a real unexplainable and unforgiveable mess. Users are used to a their menu, if you don’t intend to provide a new menu in your “shinny” GTK4 trip, at least make sure all the software continues to work flawlessly.
Microsoft removed the start button in their ME version, and that generated a whole lot of hate speech. I saw the blue startup screen once when I got a free PC from my brother. I could not figure out how it worked or how I could get to a normal desktop so I installed Linux over it. I have not used a windoze PC after that. It was a nice PC though. I ran Linux on it until it was 13 years old, and then I decided I had to replace it with an upgrade. It was getting a tad slow, but the main reason was I wanted a big (107cm) 4K monitor (I can’t see those tiny pixels on the small 4k screens) and the old hardware really was not up to the task of supporting such a monitor.
And the X11 vs Wayland seems like a huge waste of development effort to me, but I don’t know enough of the reasoning behind it to have a real opinion. I have experimented once with X forwarding over SSH from a beaglebone to my main PC and it was awfully slow (refresh rate of 2Hz or so).
Another huge problem for Linux is software packaging. Some use Apt, some use RPM, or something else entirely. There seem to be 10+ different package managers in common use. It’s a big headache for people who want to distribute software on Linux systems. Things like Snap, Appimage and Flatpak also feel like quite a big kludge. They can be useful (for example for running an older KiCad version then the installed one for some projects) but it does not feel like the “normal way to run programs”. And because they are outside of the normal package management, they don’t update with your regular OS updates (Those system wide updates of both the OS and all installed programs is a Enormous advantage of Linux.)
Combining application and OS updates is also an enormous headache, when your user software updates with the OS breaking stuff that used to work or changing things from how you liked it. Sometimes you have to upgrade the OS to keep the application updates rolling along because they decided not to maintain the new update in the old OS repository – again with similar problems: turn everything over, re-do configurations and custom hacks, just to get to the next version of your browser.
What exactly is the advantage really? It keeps forcing users to update all their software packages, but the users don’t exactly want that because it breaks stuff and causes them extra work.
Way back when, different desktops each had their own standard for shortcuts.
Now they are standard. So if I switch desktops all my shortcuts are still there. Cool.
I like to use a heavy full-featured desktop (currently KDE) when running locally.
I prefer something lighter when connecting remotely such as via VNC or RDP.
But there is some strange detail I haven’t figured out yet that differs. Often I find shortcuts created in one aren’t recognized as being shortcuts in the other. They display but clicking them brings up a text editor to edit them!
That’s crap. How hard could it have really been to get that right?
Linux, just like dodo bird is a prime example of evolution in action… unfortunately it most often goes into a blind alley and loses against creatures of Intelligent Design.
When has Linux ever “lost against creatures of Intelligent Design”?
i don’t care about any of this stuff…i just don’t use pc linux that way. i have a real antipathy towards gnome / kde / systemd. even xfce is too much for me. i want gimp and the browser to be stand-alone. and i’m willing to accept a hack to make that happen. and literally nothing else is a WIMP GUI on my PC. i use a lot of graphical applications but they are all keyboard controlled / “old school”.
but linux on the desktop is here, if you want it. it’s called chromeos, android.
the funny thing is, though, that android, despite being very popular, very well-supported, very mature, and ultimately very usable, is also a nightmare for its systray (“notifications”). they kept reinventing notifications, and they kept reinventing the compatibility layers to paper over having reinvented notifications. and then the app store started banning all the old compatibility layers. it’s a lot of pointless upkeep if you want to distribute your app that uses the systray.
even if you just wrote your app last week, you probably stumbled across this in the massively redundant obsolete documentation that’s out there. but if you’ve distributed apps for 15 years like i have then it’s just been this constant thorn that every time you want to issue an update you have to reinvent the systray access. and the SDK access and etc.
it’s really pretty funny, they make a nice general syntax in some configuration file for saying which version of the SDK your app should use, and then they update the SDK so that to say the same thing, you now need to spell it differently. the version specification itself keeps changing!
i wonder if chromeos, windows, macos, and ios have similar nightmares over the last 15 years of systray innovation
First of all, I don’t really care all that much about Gnome or it’s developers ideas. I loved Gnome 1 and Gnome 2 though, but 3 is just unusable for me. It looks like a badly made version of the windows 8 interface. I’ve been using Linux for quite a while. I started with the Common Desktop Environment, but switched to Gnome 1 when that was released. Then to Gnome 2 and from there I went to KDE and eventually i3wm. When I even look at the Gnome 3 interface I get annoyed. Might be usable with heavy modifications, but stock, no thanks.
The only thing I wish everyone would agree on is to get every single dot file out of the ~ directory and into the .config directory, where they belong. Anything else shouldn’t really be standardized as everyone has a different idea. I prefer i3wm on normal workstations and KDE for places i only point and click. I got a computer in my workshop where I’m grinding and welding and it’s using KDE, so does my laptop, which has both i3wm and KDE. But my workstation at work and the one at home run i3wm (on Arch by the way). I want xorg, I want my personalisation, i don’t want a graphical interface for a text editor, I want to feel comfortable. I’m glad it’s not all standardized as it results in me having options.
The comments above pretty much prove my point. Everyone wants something different… Which is why you can always find a DE that fits most if not all of your needs. Then, a compiler that you like to run if you are a developer (like me). A browser you like to use. Editor, Office applications, Etc… Multi-user from day one. Ie. enable as many users as you need. Secure. What’s not to like? I’ve been using Linux since the 90s. From Slackware, to Redhat, to Fedora Core, Fedora, Mint (LTS), and now KUbuntu LTS. At work, got our company to run Linux data servers (RedHat 5) back in the reboot NT server days with a stack of user licences to keep track of. Then migrated servers to CentOs and so forth… Maintenance went to almost zero. No user licenses to buy. No service agreements needed. Was great to have Linux on the back end (SAMBA was used as still had Windoze desktops to interface to) . I digress… I went the rounds with DEs too at home. Found KDE back then and that fit my workflow. Then they brought out KDE4. Yuck. Moved on to LXDE, then Cinnamon, and now back on KDE after all these years. Also my desktops, servers are running rock solid KUbuntu LTS now. SBCs PI OS / Ubuntu). Disable auto updates, turn off most notifications (stupid) where I can and just ‘use’ the OS. Linux is still Linux no matter what distro you pick. These days I use LTS versions as not interested in cutting edge, nor installing/upgrading every 6 months or so… Again wonderful ‘choices’. And ‘very’ reliable. Run for days, months, years if you desire. No forced updates or reboots. Nice to have an OS that just gets out of the way and allows you to just run the apps you want to get the job done. After all that is what computing is all about.
And of course if you don’t care for Linux, there is still M$ and Apple$, BSD, and other fringe OSs out there. You do have choices. Not one fits all it seems.