CC BY 2.5 by Light_current (earplug) and Poikilos (photomanip); Gnome Elf Painting Frog on Mushroom Artist Unknown Ca 1912 CC0

GNOME is Deeply Flawed (But I Use It To Avoid a Low RAM Freeze on Linux)

I feel pushed to GNOME. In KDE, I have trouble repressing RAM-wasting and useless Baloo even after following guides. I want to remove it but some simple and necessary packages require it (like Dolphin!). KDE seems to have too many non-removable parts but I may try it again. I know about alternatives to Dolphin. I like panes & tabs rather than annoying multiple windows like, well, Windows, so I’ve been seeing if I get productive with Sunflower and SpaceFM. Installing multiple desktops slows updates, but sometimes when I get sick of one (KDE or GNOME) I switch to the other. I mostly have no problem with KDE other than having too many packages which slows updates. There are reasons for my RAM concerns, and I’ll also explain how GNOME is part of my solution and how it fails me.

Avoiding the low-memory freeze on Linux

My selection of desktops I like is limited because I like a single-bar setup with a true dock: I like pinning applications; I like when the shortcuts on the bar turn into taskbar application switchers. Therefore, MATE didn’t work out for me. I also I can’t stand having more than one bar taking up screen real estate nor stand the LXDE/LXQt menu (no search, no system buttons like logout). I tried Xfce (configured with one bar with the Whisker menu like in Xubuntu), but it freezes during a low memory condition. It also makes my application as wide as both monitors since I have to monitors. I have to resize Blender on every launch in Xfce, and some dumber applications won’t even resize to the size of one screen due to some silly pixel-wise calculations that are larger when you have two screens. In GNOME and KDE, I have more than the literal 5 seconds Xfce gives me to close Brave before a hard freeze with intense storage activity I assume is swapping (or an infinite swapping bug in various versions of the Linux kernel?). I was late handing in a college assignment because of this a few months ago on an updated copy of Fedora 33 (but on KDE I think).

Sometimes if I ssh into the computer from a nearby laptop, wait minutes for login, then immediately and killall firefox || killall brave (or any other memory intensive applications), I can save the system, but usually I am not fast enough. Entering each command takes minutes in this state, and there are only a few minutes between the high storage use and the hard freeze (though I can move the mouse in desktops other than LXQt during that time).

I have 16GB of RAM.

I have dozens of tabs open all the time. If I am watching a YouTube video while others load or one done in other tabs, I often also open:

  • multiple instances of Blender
  • meld
  • GIMP

This is why I have low memory issues even with 16GB RAM. However, browsers can do better. They should never eat memory infinitely like most recent versions of Chrome-based browsers and Firefox since at least 2008. Fix your crap.

Though GNOME and KDE are better at handling the condition (I can at least move the mouse and eventually close things in most cases, other than when I had been running the desktop version of Discord along with other applications on KDE), I understand that not using the other desktops is mostly an issue of preference. However, the inherent problems with GNOME are deeper and unavoidable.

I generally use Brave and Firefox (recent buster-backports version not Firefox ESR). I tried switching to Brave as the primary one but the low memory condition continues.

I have The Marvellous Suspender in Brave, but it isn’t enough.

I have more time to close the browser(s) using nohang. It is an excellent program which solved the problem for me!

You may think what I’m trying to do too much with 16GB of RAM, but I’m a test case for low RAM and the issues are true for anyone who may run into the issue. The fact also remains that these browsers eat RAM into infinity using far more than the other demanding applications I mentioned, capsizing your system without warning and with no lifeline if you don’t have nohang.

GNOME issues

I say I’m “pushed” to GNOME because GNOME is a lesser of evils to me. Though KDE is ok too with Baloo somewhat tamed, I can’t fully remove it as I explained (unless I can find replacements for the dependent software). There is something really wrong with the GNOME people, it seems:

#1. There is no task tray (for background applications)–You have to get an extension for that. There is no way to change the clock format–You have to get an extension for that…and the list goes on (see below, and #2-5).

Extensions replacing missing expected features that I would use but currently don’t work in GNOME 3.30.x (For why, see #2):

  • Datetime format
  • Kiran panel
  • Launch new instance
  • Mmod panel
  • Native window placement
  • Panel date format
  • Places status indicator (it runs, but doesn’t work when panel is on the bottom since the drop-down fails to open upward when necessary)
  • Removable drive menu
  • Screenshot window sizer
  • Tray icons: reloaded
  • Window list
  • Workspace indicator
  • Windownavigator

At other times, the Screenshot Locations and/or Screenshot Directory extension(s) didn’t work.

Some of these extensions are redundant, but I have to keep hopping between them or abandoning them when I change to a different version of GNOME including to a computer with a different distro or distro release.

#2. Even minor version numbers of GNOME have major API changes so you have to keep changing between one or the other developer’s extension for the feature you basic everyday feature you expect, otherwise you don’t get it. Sometimes the entire set of extensions (redundant equivalents) for the specific feature you want doesn’t work. Even though the GNOME extensions site has a dropdown box feature for versions of the plugin that work with previous versions of GNOME (and another box for multiple versions of the extension for the version of GNOME), not all extension developers do that. Even if they do, a version that works is often not available, even for GNOME versions as prevalent as the one in Debian stable (such as GNOME 3.30.x in Debian 10 Buster in 2020-2021).

#3. GNOME keeps deleting features. Years back, people made an issue report where they couldn’t change the text on the marquee screensaver. The GNOME dev maintaining that said, “If a component needs to be configured, it is broken” and said some nonsense about how it is now more compatible with more systems now that the feature is removed and that you can edit a config file somewhere (as root I think…). GNOME 3 reduced the package to not allow graphical screensavers at all–only screen blanking. For a list of other deleted features, see #1. Many years ago my friend heard a saying online: “KDE says, ‘There’s empty space. Let’s add a feature’ GNOME says, ‘I see a feature. Let’s remove it to make empty space.’”. In my experiences after that, it seems like ignoring users creates user discontentment and then the developers blame the users for being upset. In the screensaver situation, the developer said that the users’ reaction to his “wontfix” triage on the bug is what makes developers not want to help them! The cause and effect were the reverse of that, in reality. There is something deeply wrong with the behavior of GNOME developers.

CC BY 2.5 by Light_current (earplug) and Poikilos (photomanip); Gnome Elf Painting Frog on Mushroom Artist Unknown Ca 1912 CC0
CC BY 2.5 by Light_current (earplug) and Poikilos (photomanip); Gnome Elf Painting Frog on Mushroom Artist Unknown Ca 1912 CC0

#4. Features I still don’t have (there is no extension):

  • I can’t paste the clipboard contents in Nautilus to make a new file.
  • I can’t save a bookmark that includes the second pane of a two-pane tab in Nautilus.
  • I can’t combine the pinned application and open application into one icon for certain applications (why can’t GNOME just capture the PID?? Use https://raw.githubusercontent.com/poikilos/linux-preinstall/master/developer/pycharm-sudoer.sh for an example).
  • I also can’t do anything in the list of extensions that don’t work (See #1) in cases where they don’t have a redundant alternative that does work.
  • I can’t right-click to make a new .desktop shortcut file.
  • When I right-click an icon in the Activities screen and click “Show Details” I usually get a dumb gray box that says, “Unable to find org.poikilos.b3view.desktop” even though the shortcut works. I will never know which of those OpenSCAD shortcuts is which: the old packaged version or the Flatpak. It could be anything, unless I dig into the command line interface. I don’t want to type until my wrists are disabled because someone failed to program simple expected features. GNOME simply fails too look where the icon really is, and instead probably only looks in /usr/share/applications or something. Or, maybe the “Details” option is trying to get information about the package. However, clearly I want information about the shortcut at minimum (and immediately be able to edit or copy/paste paths). A shortcut may point to an appimage or script in some user-decided location. I have many applications that are under ~/.local/share/applications because I get them from source, a flatpak, or as an appimage: for desktop applications, I often get a later version (than Debian stable or even Fedora has) for features or fixes I need in order to work.
  • I can’t take a screenshot when in the Activities screen, so I will never show you the problem in the point above (nor will I ever be able to document other problems with the Activities screen), but you know it’s true and is a problem. Don’t pretend you don’t know.
  • (In programs like OpenSCAD) File dialog boxes are not always on top of the application (Your application may appear to be frozen, and switching back to it won’t work–you have to find the dialog box).
  • (In programs like Brave) In cases where dialog box is always on top, you can’t move a dialog box to see behind it :(. The whole window moves.

#5. Features that I have only because I found versions of extensions that run properly on my version of GNOME:

  • Alternatetab: “Substitute alt-tab with a window based switcher that does not group by application”
  • Appindicator and kstatusnotifieritem support
  • Applications menu
  • Clock override (alternatives like Datetime format don’t work or can’t set a custom format string)
  • Dash to panel
  • Desktop icons
  • Screenshot directory
  • Sound input & output device chooser
  • Tray icons
  • User themes: “Load shell themes from user directory”
  • Vitals

There is also something I call the secret GNOME club. That’s when you know how to do something in an awkward way that is not part of any discoverable interface. I am in the secret GNOME club through a self-induced initiation of frustration, trial and error, and search results far down the list on search engines which helped me know the secrets, but that only means that there are probably more things I forget I know and you don’t know and that you may never know. I’ll try to update this list to help you along when I remember more. However, not having a discoverable interface and not knowing how to get the missing everyday expected features is unacceptable and should be changed. At minimum, a version of extensions that are listed here that work with a release should come with the release. A task tray and the other extensions should be enabled by default instead of being secretly deleted from the GNOME C code or ignored after they are feature requests by the community for many years.

  • I want people not in the secret GNOME club to be able to change the settings without having to know that there is a secret GNOME Tweaks tool that isn’t installed by default and does what any reasonable desktop’s control panel does.
  • I want people not in the secret GNOME club to be able to type addresses in Nautilus and file dialog boxes without having to press the secret hotkey Ctrl+L (There is no way at all in GTK+ 2 applications such as Geany).
  • See also every item in the lists of extensions in this article: If you don’t know the secret that GNOME keeps removing features and that you need extensions to do everyday expected operations, you’ll just not have those features at all. For example, you may never know that one or multiple copies of a GUI program is running as a background task unless you get a task tray extension that hopefully exists for your version.
  • Clearly, when I am highlighting the elusive address bar in Nautilus, I want to copy and paste according to the text cursor and highlighting, not copy and paste whatever file is selected in the folder! And yeah, I called it a folder, not a directory. Get over it.

I report all kinds of issues to various desktops and applications trying or not trying to integrate with them, so I’m not just complaining without doing my part. After many years of seeing the GNOME team ignore users, remove features, and break extensions, I have decided at long last that reporting issues is usually a waste of my valuable time. I usually report bugs with all necessary details and developers thank me and fix the bugs. I even often submit pull requests when it is doable within my time constraints.

To tide you over on the issue with not finding the desktop file for a binary, here is a script, if you can handle using the command line interface: https://raw.githubusercontent.com/poikilos/linux-preinstall/master/utilities/whichicon

The only somewhat rational thing I can imagine that is happening is that the GNOME developers can’t or won’t maintain as much C code, so they push expected everyday features off to extension developers. I hear from a C pro though that C code is generally easier to maintain than C++ code. Also, there is no guarantee that the GNOME developers are even somewhat rational when it comes to end user needs vs developer wants. Pushing off simple expected features to extension developers would work if they didn’t keep changing the extensions API. GNOME is broken.


Posted

in

by