It sure looks like Gnome 3 took the wind out of Gnome's sails. This correlates with my experience as a Gnome user, as it was Gnome 3 where the project really took on a condescending user-demeaning attitude. Gnome 3 is where the project shifted from 'user friendly' to 'assume the user is an imbecile.' I now tell novices to use XFCE instead.
To add another opinion. I love gnome 3, Its by far the nicest DE I have used on linux and what I would recommend to anyone to start with. I have used XFCE/Mate/Plasma/Unity and none of them worked as well. Its usually not even so much the design (although xfce does look very dated) but that they seem to have such little development resources that many parts of the DE are lagging software wise 5 to 10 years behind what they should.
XFCE is still in the process of upgrading to GTK3 when GTK4 is already out and they still have made no progress on migrating to wayland so its not a usable DE for a modern desktop experience.
Gnome just works and it just works very well. After using xcfe for a year I would go to report multiple bugs only to find they have already been reported years ago while on gnome I have only opened feature requests.
Gnome 3 was when they started taking over keybinds from common software on linux, so you had to hunt down the 3 or 4 places where they were configured to unbind them back for the user.
I just miss Menu bars. Which is why I use Mac OS now (thrown back to using Linux now for a few months until my new MacBook arrives). I used gnome since gnome 1.x and it apps like evince were totally cool and now they are just confusing and hard to use.
Want to print something? Hamburger menu and find the Print Symbol. Want to open a recently opened file? No submenu under „files“, you need to open a new window to find a selection. So much stuff one needs to learn ...
This is exactly my experience of Evince earlier this year when I attempted to upgrade. Some of the menus are on the left and some are on the right and why oh why does it not do what it used to do
FWIW I adore Gnome 3 too. I very recently switched to Linux from Windows 10 on my gaming PC (my last experience with Linux was with Mandrake a couple decades ago...), and of course I had to try every DE under the Sun. None quite works perfectly (for me) like Gnome 3 does. But that's the beauty of it: there's a choice for everyone!
Why does a user care that XFCE is on an old version of GTK? I can see why that would frustrate developers, but I don't see how that surfaces to users as a usability issue.
GTK2 fails in a lot of ways. The main one that bothers me is when I open a GTK2 app, it picks the DPI scale of one of my monitors so when I drag it over, instead of resizing to the new dpi scale, it will either become massive or tiny.
Gnome with wayland supports it but every time you start an xwayland app you notice issues. Native wayland/gtk3 apps have been flawless for me. Things just snap to the new scale when you drag them across.
OK, but I'd still like to know whether a firefox-wayland window will flawlessly snap to the new scaling factor when you drag it to another monitor whose scaling factor is different from the original monitor.
(Same question for Electron apps, particularly VS Code.)
This doesn't make sense to me. Surely scaling the window according to the settings that apply to the monitor it's on is a job for the window manager, and not a job for the software running inside the window?
If the window manager were to upscale a window, you would get the typical artifacting, such as blurriness, from the upscaling. The application toolkit is the best place to do scaling, as it knows how to render text etc.
This is how it works on Windows as well; if the application reports it correctly supports scaling, Windows will let the application handle scaling (otherwise Windows will do it for the application, with the usual caveats).
>if the application reports it correctly supports scaling, Windows will let the application handle scaling
In contrast, unless I am severely mistaken, MacOS has the application render the window normally, then applies a scaling algorithm to the output when the user has set a scaling factor (which on a Mac is set usually through System Preferences > Display) that is not an integer. (I.e., has set fractional scaling.)
I much prefer how Windows and Wayland do it. (When I use Windows, I have the luxury of free choice in the apps I use: I spend .99 of my time in VS Code, Google Chrome and a few recently-written Microsoft-provided apps like Settings. A Windows user who needs old apps or apps written by less sophisticated developers might have a much worse experience.)
In fact, I am leaving MacOS after 11 years largely because of its relatively bad implementation of fractional scaling. I find it too blurry. (If my lifestyle required the use of a laptop, I might have stuck with Apple.) But I am unusual in ways that probably make a good implementation of fractional scaling much more valuable to me that it would be to the average user.
I ran into a bug with GTK2 stalling out with some malformed DBUS messages (symptom: your application takes an additional 20 seconds to start). So I made a sample app that demonstrated the problem, ran some system traces, tried to engage the GTK developer community and only got an "eww, gross, not touching that".
It's pretty clear that GTK2 has been left out to bit rot at this point and it's going to completely collapse at some point. Only option is to update your old apps.
Thanks for the link, I had not found that myself and the workaround suggested (installing the Unity integration module for GTK) worked! It generates a spurious error message about Unity not being on the machine, but that's way less annoying than a 25 second pause on startup.
I also like GNOME, but only with a couple of extensions installed. It totally blows my mind that the way Dash to Dock works is not the default behavior.
Are they perhaps scared of patents? The whole UI tries hard to be not like Windows or Mac OS, for IMHO little user benefit.
I have tried to use Gnome in the past, seeking an easier life, but the multiscreen support was just not good enough. I use i3 instead.
No, they just think the current UI is better, and they're doubling down on that. E.g. in the next version, the app/workspace picker will be shown after login, and not the desktop.
At least for the dash to dock behavior, the Gnome designers opted against a permanent dock to minimise "distractions" and allow one to "focus on the task at hand". This language pervades much of the literature explaining Gnome's design. See for example https://help.gnome.org/users/gnome-help/stable/shell-introdu...
Which is nonsense, because the default behavior is not a permanent dock, it is a hidden dock that appears on mouseover. And it is tuned perfectly IMO, it never comes up by accident and always comes up when I intended to do so.
I agree with the rationale about not having a visible dock, the extra space and lack of distraction is great. But Dash to Dock doesn't harm that goal whatsoever IMO.
> To add another opinion. I love gnome 3, Its by far the nicest DE I have used on linux and what I would recommend to anyone to start with. I have used XFCE/Mate/Plasma/Unity and none of them worked as well.
Sure, XFCE doesn't work as well as Gnome 2. But you can't use Gnome 2 anymore. XFCE is way better than Gnome 3! (At least, as of the time Gnome put out version 3.)
And yeah, this indicates a very serious problem on the part of Gnome.
I've also used a couple of DEs. Unity aside, GNOME is bold enough to stick out and do something different. The GTK human interface guidelines result in apps that are something different (also usable!) and the activities view is a genuinely awesome approach to alt+tab.
KDE is just windows and a bunch of panels. It's expertly put together, but there's really nothing more to it than that. Rainmeter can do much the same that it can on Windows.
I don't understand how this can be argued to be a point in gnome's favor. Gnome's HIG is only followed by the 5 or 6 core apps that ship with it. The rest of my apps do their own thing (yes, even gtk-based ones).
From my personal perspective as someone who uses both KDE and Gnome daily, both are just windows and a bunch of panels. What gives KDE an edge is that it doesn't try to force its weird conventions on me.
Only in the default config... To be nice to Windows expats.
> It's expertly put together, but there's really nothing more to it than that.
It's ultimately configurable! So it can be anything you want. (Plasma can "simulate" any DE with the right config).
Additionally modern KDE/Plasma is more lightweight than "anything GTK". (This may sound strange to the older people but things changed over the last years).
You’re being downvoted but I don’t see a clear reason for it. The parent gave their opinion, you give your opinion, it’s all a fair discussion. I suspect you’re getting downvoted just because people don’t agree with you.
XFCE is still in the process of upgrading to GTK3 when GTK4 is already out and they still have made no progress on migrating to wayland so its not a usable DE for a modern desktop experience.
What's wrong with GTK3? And "modern desktop experience" just reads like meaningless marketing fluff.
There is nothing wrong with GTK3. Clearly we have been using it for a long time just fine. I mention it because gtk3 came out in 2011. Which means it took the xfce team 9 years to perform a migration which still isn't complete yet.
Now I don't want to shit on the work of the xfce team because they work on this on their free time and provide us alternative options and ask nothing in return, but its a data point showing why one would preference Gnome over XFCE. The Gnome team has a lot of resources behind it to just get things done and push new technology out faster than the rest.
The problem is that to get the new features you have to accept a new way of working. One that is worse than the classic MacOS or Windows 2000 was. Another reason many folks are in no hurry.
> It sure looks like Gnome 3 took the wind out of Gnome's sails.
For me, GNOME made three mistakes and made them back to back:
- No 3D graphics, no desktop for you (wrong timing).
- All advanced settings is embedded in a registry-like structure (too much OS X influence, sent the wrong message, made a lot of things hard).
- Extreme paradigm shift without communication (GNOME 3 became something different, almost OS X like, also Canonical's influence did this IMHO).
As a result GNOME3 didn't evolve. It went through metamorphosis. It's core qualities (low resource usage, balance between customization power & approachability, and more importantly familiarity) disappeared. Compounded with backlash (MATE mainly) took the excitement out of GNOME.
> It's core qualities (low resource usage, balance between customization power & approachability, and more importantly familiarity) disappeared.
I think you hit the nail on the head. KDE gave you the full DE experience, but there was that pesky Qt license. GNOME was full GPL/LGPL and it felt like it was built to attract power users. Skins were at the height of their popularity (remember Winamp?), and GNOME gave users an easy way to customize everything without having to muck with some arcane config file format. Every release felt closer to some platonic ideal of a fully customizable yet easy-to-use DE.
Then came the iPhone, and suddenly the world went hyper-modern and hyper-minimal. Restaurants names like "The Heavenly Chicken" are now old-fashioned; today the same restaurant is simply "chicken". GNOME was also affected by this cultural shift, and as you point out, ended up abandoning its core qualities.
I believe that hyper-modernism, like other movements, is just a fad, and in a few years we will "rediscover" modding. Everything will be customizable, from the color of your keyboard to the genes that control your eye color. Who knows, we might even shake the dust off the blink tag.
GNOME left in the middle of a perfect storm IMHO. I remember GTK being much faster and lighter than Qt/KDE and boasting this fact with blog posts with performance metrics.
These years also were problematic for Linux on laptops. Power management, wireless and overall experience was very bad. MacBook had a considerable mind and market share among Linux developers. I remember a slide saying "Linux on desktop cannot move forward because of MacOS's advantages and features on mobile", which was very true for that day.
With the rise of Ubuntu, iPhone and MacOS, GNOME wanted to be the MacOS of Linux. Straightforward, minimal and somewhat capable. However, leaning heavily on GConf, burial of features, dumbing down of UI marked their downfall.
I've moved to KDE before that time and was spoiled by kio, integrated DE features and other stuff. 4.0 was rough but, I endured and KDE became something different. A class by itself. The so-called Qt Agreement and dual-licensing also saved them.
I also believe that customization will return. I wish GNOME best of luck and give me some reason to try them, at least in a VM. I won't change my primary DE, but I'll play with others at least. GTK has some nice qualities but, GNOME3 is not treating its foundations and features as it should IMHO.
I can still dig my .kde folder and look what are the settings and how things configured though. GNOME, while being the flagship DE of GNU movement, feels closed, bloated and devoid of any GNU/Linux spirit. Maybe that's the aim for mass market adoption. I don't know.
---
Addendum:
I want to add that initial GNOME3 and GTK3 documentation was horrible. They moved everything to JS based introspection stuff and generated documentation automatically with no explanation whatsoever. We've tried to develop a gigantic project with GNOME3 and the best way to develop software was via trial'n'error in their new and shiny developer console. It was like being insulted continuously while walking in the dark in a room full of Lego bricks on the floor and sharp corners at head level.
To add insult to injury, their touch implementation was buggy. I dug the WM implementation for two weeks and found a comment basically saying that "We hacked this together. It's not X protocol compliant & needs to be re-implemented from ground up. Since you've found here, maybe you can do that, thanks." Grr...
However, the WM code was very clean and readable. I'll give them that.
I still remember how their developers requested that transmission (a popular third-party torrent app) remove support for system tray icons because Gnome removed them.
They eventually decided to side-step developers and remove system tray support from GTK entirely.
Edit: changed "demanded" to "requested" to be more neutral. See comment bellow.
Reading further down, it's hard for me to see a demand there, I see a heads-up about an upcoming deprecation and a suggestion of what to do about it. The reason the system tray support was deprecated and removed eventually was because nobody was keeping it up-to-date.
> I guess you have to decide if you are a GNOME app, an Ubuntu app, or an XFCE app unfortunately. I'm sorry that this is the case but it wasn't GNOME's fault that Ubuntu has started this fork. And I have no idea what XFCE is or does sorry.
This is the point where I realized that person was not commenting in good faith. It simply isn't plausible that a GNOME developer was earnestly unaware of XFCE's existence.
That's like someone on Microsoft's kernel team claiming that they've never heard of QNX.
It's certainly possible, even likely, but such an admission would be a gross condemnation of the knowledge of the developer regarding their necessary domain knowledge.
Maybe for a startup employee or a senior level. For a junior/mid level developer at a large firm transferred from another team, absolutely not. Knowing all alternatives that exist on the market is the job of management, not ICs.
I politely disagree with you. From my experience, cross pollination of ideas from alternatives makes both the person and the product much better.
I personally always try to use some alternatives at the same time (XFCE, KDE, macOS / C++, Python, Go, etc.) to see what others are doing.
This allowed me to think both out of the box and carry good ideas between systems. Some examples:
- Implement just works approach in a set of python utilities developed for a project. Extended development time a little but, removed setup from so many nodes so it compensated itself and allowed me to sleep well at night.
- Copying GNOME2's desktop layout to KDE with some macOS influences allows me to become extremely efficient in my Desktop systems. Since it contains something from everything, everything other DE is familiar and I'm also more efficient in them ("This is UNIX, I know how to use it!" effect).
>I personally always try to use some alternatives at the same time (XFCE, KDE, macOS / C++, Python, Go, etc.) to see what others are doing.
That's great, I do the same thing so I can relate to you, but I hope you understand that the bar for contributions to an open source project is generally more like "did you write code that the maintainer wants to merge" and not "you must familiarize yourself with all alternatives." How you achieve that varies and not everybody has the time to spend searching around on distro forums and Github. Some people might only ever familiarize themselves with one or two open source projects that they use and contribute to. And it's hard for me to see something wrong with that, that's their prerogative.
That's a dismal view, and a condemnation of the quality of work done by such individuals. If they aren't aware of the current state of technology and the market competition, how can they partake meaningfully in decision making?
In a a lot of bigger companies, developers don't need to partake in certain kinds of decision making, management makes the hard decisions for them. Why is this a dismal view? Not everything is a startup, and some people who I've talked to who enjoy the corporate life have told me they see this as a positive because it makes their job easier.
You might say this is "fragmentation." Up until two years ago Ubuntu had a different shell (Unity) with a different API for this, and up until last year XFCE was mostly still using GTK2 and its deprecated APIs. Things are getting better now (Ubuntu's tray is just an ordinary GNOME extension, XFCE supports the new API) but it's taken time to reconcile everything.
It was a big step, yeah, but it was also something new in open source. There are lots of choices if you want desktops that are plainer than Gnome. There's only one choice if you want something simple and slick and sort of luxurious on your Linux machine. I wouldn't be without it, and having just received my Pinephone I'm happy and looking forward to it being with me wherever I go.
> There's only one choice if you want something simple and slick and sort of luxurious on your Linux machine. I wouldn't be without it, and having just received my Pinephone I'm happy and looking forward to it being with me wherever I go.
FWIW, I have a PinePhone and Plasma is just all-around superior to Phosh; faster, more responsive, and uses less battery. I don't even like KDE, but such as it is, Gnome on mobile is not great.
Ten years of pushing touch UI design on us, and it's... Still five to ten years undercooked.
> There's only one choice if you want something simple and slick and sort of luxurious on your Linux machine.
According to /r/unixporn... i3-gaps? :-P
(honestly, people in that subreddit seem to manage to make any window manager look totally unexpected visually, e.g. see this[0] for a DWM customization - someone from Suckless must be digging their grave so they can roll in it :-P).
XFCE is barely maintained, unfortunately. The recent port to Gtk3 lost some functionality as a result of regressions in the toolkit: keybindings in menus are no longer hover-rebindable, and the themes have not been properly ported, leaving me only with bloated Adwaita. For some reason, the package with window manager themes has not been released for 4.12 (the package from 4.10 works fine, though). There’s no path for migration to Wayland. Integration with display managers (i.e. screen locking) and systemd’s power management is flaky.
And I am saying all this with regret, as a long time user; I consider it the best desktop environment I have used.
I almost wish they had forked Gtk2 instead of porting to Gtk3 (or even more crazily, ported Gtk2 to Gdk3 to take advantage of ‘plumbing’ improvements in the latter, like Wayland support), but I do realise they just don’t have the manpower.
Why migrate form a project that decays because of lack of manpower to another tiny one which could end the same?
Did you give Plasma a try recently? It's featureful, configurable, maintained, and lightweight (even more than the newest XFCE to the surprise of many).
I've been running KDE since I set up my computer to work from home back in February. I don't have the latest hardware, since I mostly built it from parts I had lying around, but it's not bottom of the barrel. 8-core AMD FX-8350, 20GB of DDR3, GeForce GT 720.
One problem I've had with KDE is that after running it for a few hours, it would get really really slow. It was so slow that I could actually watch the title bar redraw when I would switch windows. Turns out that a 1GB graphics card isn't enough to do compositing at 4K when you have more than a few windows on the screen. Fair enough.
So I turn off hardware compositing in firefox, chrome, and plasma. I boot the computer, and check memory usage in nvidia-settings. With just plasma running and a few docked widgets, I've already used 342/978MB. Perhaps the widgets are at fault, but I'm pretty I was able to run fvwm and gkrellm on my S3 Virge back in the day, and it had far less than 1GB of video memory.
I also notice that sometimes I lock my computer for the night, then I come back in the morning to login, and the hard disk churns for minutes before I can type my password. I never had this problem with xscreensaver. There's plenty of RAM available. I know my 5400rpm RAID 1 setup isn't the fastest, but this is absurd.
Then there's the K gear menu. Why is it so slow? I click the icon, go to Applications, then go to Utilities. Then I wait a few seconds. Eventually they all show up. Then I go back to All Applications. The menu stalls for a few seconds. What is it doing? I don't know. The fluxbox menu never stalled like this.
The default picture viewer seems to be gwenview. I've imported a bunch of pictures from my phone and they are stored on my HDD. I double-click on an image, and then I want. And I wait. And I wait. No indication that it's doing anything; maybe my double-click didn't register. So I double-click again. I wait some more, and suddenly I see two gwenview windows. After a few seconds neither one has fully initialized the UI or loaded the image. I close one of them, wait some more, and eventually the image shows up. Why is it so slow? I don't remember images loading this slow in xv or eog. Should I be using digikam? I just used the default.
The apps in the system tray are terribly slow. Let's say I want to change my volume while a video is playing. That should be simple enough. So I click on the volume control. I wait for it to show up. Then I drag the volume slider. It is slow enough to respond that I overshoot. Oops, too low. Bring it back up again. Overshoot again. I really need to set up some volume up/down key bindings so I don't have to mess with that thing. Oh, and my headphone volume always starts out muted after I boot the computer. No idea why. The slider doesn't show up in KDE, but I can adjust it just fine in alsamixer. I blame pulseaudio. If I were young and without kids I might have time to figure out how to go back to OSS. I remember when sound was as simple as running sndconfig and then listening to that wonderful voice say, "Hello, my name is Linus Torvalds, and I pronounce Linux, 'Linux'". The good old days. Life was simple.
I think it's fine that they assume it; imbecile's need interfaces too.
My problem with GNOME developers is that they consistently deny that they cater to the least technically savvy base and use euphemisms such as “normal people”. They are not “normal” they are technically far less literate than the normal man, and they too of course should be able to own and operate a computer.
GNOME in fact seems to think it's own users to be even less savvy than I do, but they continue to deny this.
The other problem is that everything that Red Hat has it's tendrils in overflows with meaningless marketing language such as that, in general.
I idle in a Linux IRC channel where support is provided voluntarily 24/7x365.
The fact that your assessment doesn't stand up to is that "normal man" seems misplaced. The average person I know cannot figure out how to install Linux much less troubleshoot issues along the way. I don't think this makes them imbeciles or anything of the like. Even GNOMEs definition of a normal person is probably off kilter because the bar for their basic user is so high.
The average adult is unskilled to a degree that most of HN would find surprising. There's a really good article[0] on this from the Nielsen Norman Group's blog. 26% of adults in the OECD can't use a computer, 14% are unable to perform tasks like "find all emails from John Smith", another 26% are unable to perform tasks like "look through these emails and use the information in them to book a meeting room".
I think that, whatever definition of "normal" GP was using, it's automatically excluding anywhere from 45% to 95%+ of the population.
They're escalating levels of technical skill, as defined in the linked article. I see no indication that there should be significant overlap.
While young adults might be better able to e.g. use Gmail, I'd be willing to bet most of them can't configure and recompile DWM, modify the gtk3 settings.ini by hand, or make changes to their xorg.conf.
Being able to install Linux is itself something of a quality filter. Without aid from someone competent, those who cannot ascertain how to write an image to a usb stick and get their computer to boot from it won't be using Linux.
There used to be Linux distributions that installed to one's C: drive and booted as a windows launch option; I haven't heard of that being a thing in years.
In retrospect, the years following Gnome 3's release are really what hurt my enthusiasm for linux on the desktop.
Prior to that I'd had a few different linux systems (I started with Gentoo... that was an odyssey and a half) and at the time the mainstream-ness of Debian and Ubuntu pushed me into what I perceived to be more hipster RPM distros like Fedora. Well of course Fedora being what it is, they had Gnome 3 and I used it as a daily driver on my Thinkpad X220 doing web dev/devops (we called it "sysadmin" back then) for an indie marketing firm.
Well, Gnome 3 was neat at first, but they made what I felt were several boneheaded decisons such as removing options from menus, removing menus entirely in some cases, gconf, and of course the early 2010s were peak "copy whatever the fuck the Freedesktop people are doing without critical thinking" so of course systemd featured prominently.
Those couple of years of tweaking and fixing systemd problems and finding menu options being removed seemingly every fucking week really killed any enjoyment I had and it's part of the reason I own a mac today. I have better things to do with my time than find workarounds for whatever way Poettering's latest fetish is broken. I'm sick of awful battery life, awful track pads, awful suspend-resume, awful external display support, and awful wifi.
I'm convinced the only people who have good things to say about using linux (or BSD for that matter, been there done that, no thanks) on a laptop are the kind of people who keep their "laptops" on the same desk, plugged in to ethernet, and are effectively using a desktop with poor thermals, and I think a large part of the reason why the desktop linux ecosystem is in such a poor state today is because of the choices made by some Freedesktop.org people and aped by the rest of the community back in the late 2000's and early 2010s.
The last time I used Linux on a laptop, I had to edit a config file to get it to suspend or hibernate when I close the lid. Even then, sometimes it kept running, and I would run out of battery. To me that seems like such a basic feature, and it's always worked fine on Windows. After waiting a decade and a half for someone smart to solve this problem, I eventually just started running Windows and Cygwin on all my laptops. Problem solved.
> I'm convinced the only people who have good things to say about using linux (or BSD for that matter, been there done that, no thanks) on a laptop are the kind of people who keep their "laptops" on the same desk, plugged in to ethernet, and are effectively using a desktop with poor thermals
Good for you for making your own decisions, but don't be a condecending arschloch. Personally I prefer linux because it works fine and consider Apple is overpriced piece of spyware and many their users smug idiot hipsters.
Ha this is my experience exactly! The first few years of gnome 3 was nothing but frustrating XFCE was such a breath of fresh air. Running crouton with XFCE @ 1:1 on a second hand Chromebook pixel from Google IO made me switch to MacBooks because there was really nothing else with the same build quality between chassis, display, trackoad and audio quality. Chromebook pixels were really quite something.
In my opinion the shift from desktop to mobile across the wider industry took the wind out of Gnome's sails (and desktops in general, no matter the platform). It feels like there's been very little (visible) progress made on any desktop in the last 10 years.
The problem is Gnome seemed to look at mobile and "pre-sabotage" itself. Both Gnome 3 and Unbuntu Unity wound-up creating "tablet/mobile ready" shells when no one was going to be using them that way. Tablets only seemed to be the wave of the future because they were new and everyone was buying them. It only became evident later that laptops were going stick around for a while and be what most people still used if they were doing "real work".
But with the narrative being "this is the future", they were more or less pressured into it. The designers as well as programmers are volunteers and I would imagine designers want to work on the "cutting edge" even if that cutting edge is a complete disaster for users (just Microsoft's redesigned UI was).
Their target wasn't just tablets, but any device with a touchscreen and/or a small screen. As a Netbook user, I loved Unity and was excited about the Gnome 3 shell. It seemed like the logical progression of Ubuntu Netbook Remix.
What changed is that display and battery technology got better. I went from carrying around a tiny PC with an undersized keyboard (remember the Eee PC?) to one that weighs less, has a full size keyboard, and sports a display larger than the one the came with my first desktop computer. On this hardware, a traditional desktop environment feels cozy, while Gnome Shell feels foreign.
I owned one of the later models of the Asus EeePC and let me tell you, Gnome 3 ran like a old dog on it. Totally unusable. I don't know how you could use it. The processor was awful, the screen resolution tiny, while Gnome was a CPU hog and wasted screen space the eeepc simply didn't have with spacial bloat of interfaces evidently designed to be fat fingered on touch screens the eeepc didn't have.
That, plus the shift to SAAS apps so that everything runs in a web browser. Basically, the two things I have open most of the time are Firefox and a bunch of terminal windows.
I think the shift to web apps and repackaged web apps happened largely because of how insanely hard it is to roll a decent multiplatform app between mac, windows and the various linux platforms even before considering mobile. For example, the OGL backend for GTK3 has been broken on MacOS for years and while there's been a rewrite for GTK4, porting from 3 to 4 is non trivial and so is maintaining 3+4 so GG if you're a small project.
True enough, but Gnome has the advantage of being the basis of Phosh + being able to share applications with it, as per on Pinephone and Librem 5.
It works as a converged desktop too. Windows can't do that, OSX is only just getting there. It is impressive that an open source project is so ready for it, really.
The problem with GNOME as the basis of Phosh is that little work has been done to optimize GNOME for low-memory, low-CPU-power environments. The Pinephone has limited memory (especially the first board with only 2GB of RAM) and an ancient, low-end processor, and while it will run all this GNOME stuff, it does so only at a snail’s pace. On the Pinephone takes several seconds just to open the wi-fi settings to activate or deactivate wi-fi, for example, something that most mobile-phone users today expect to be a near-instant thing, because on Android it is just a quick swipe and tap.
I’m not talking about the Phosh executable as much as all the other things that Phosh on Mobian is meant to provide an interface with: so much of those preinstalled applications and libs in Mobian are derived from the GNOME project, and they just haven’t been optimized enough to run well on the PinePhone’s hardware.
Oh I see, misunderstood you there. Yeah, many apps are basically just the desktop version with some pre-configured scaling to make them barely usable - but as far as I know it is only by necessity until the mobile friendlier alternative emerges.
But while it is good to see the advances mobile linux GUIs make, they are still far from usable as a primary device :/
True, but I also feel this might also be part in staying relevant with touch displays. The dumbification of UI coincided with the rise of tablet computers and touchscreen devices. Windows 8 came out around that time too.
I personally preferred Gnome 2 when Gnome 3 came out, but I've gotten pretty used to the top-left corner flick after a couple weeks. I sometimes do it on Windows and get disappointed when nothing happens :) This sounds somewhat perverse, but I kind of like the fact that it takes a little extra effort to switch applications. I'd say it keeps me maybe 5-10% more productive!
Ideally, UI's should be tailored for the device they get installed on, but I'm happy Gnome was able to accept a few design compromises in order to keep moving the project forward.
> True, but I also feel this might also be part in staying relevant with touch displays.
Undoubtedly - at about the same time, they introduced a swipe-to-unlock screen which is crucial on a tablet or smartphone, but useless on a desktop or laptop.
The thing is, Gnome don't seem to have achieved any success in the smartphone/tablet market. So with the benefit of hindsight, trading off mouse and keyboard power user UX to improve touchscreen UX doesn't seem to have paid dividends.
I agree with you on Gnome 3's attitude - I know in design there's a point to be made for being bold, but I wish Gnome 3 had reconsidered.
I know that this is probably me being old and resisting change, but: I switched to Mate (which is essentially Gnome 2) and I haven't looked back. For me, a Desktop Manager's job is getting out of my way, which is exactly what Gnome 2 achieved. Gnome 3, OTOH, often got in my way.
Why not KDE? It easily seems like the best Linux DE, and it's so weird that Gnome is so often the default in comparison. As a bonus, all the best Linux apps are Qt-based (e.g., Dolphin [compared to which any other file manager, including Windows's Explorer, will seem unusable], Okular, Gwenview, Clementine, and Kate).
I've gotta second kde. I went through a bunch of different DE's and window managers and stuff. KDE was the one I eventually settled on and haven't looked back. It's easy to customize and setup everything just the way you want it and after that it stays out of your way. The default qt apps like you say are all great pieces od software. Going back to windows explorer after using dolphin is like jumping back in time 20 years. Kate's been my favourite text editor for years. It's got just the right balance of being light, but full of useful things.
I wanna throw in KDE connect too, honestly, the best and easiest way to work with an android device from a PC hands down.
I personally use KDE and XFCE every day. While KDE is very nice, it reflects the spirit of the Linux very well. Extremely customizable, extremely extensible. When everything settles down, it's a productivity monster, and I love it.
On the other hand, XFCE is much more approachable and usable for a newcomer. It's not intimidating. It's not infinite. It's more resource friendly and straightforward. For a newcomer I recommend GNOME or XFCE. When they're seasoned enough, they automatically gravitate towards KDE most of the time.
Historical reasons due to Qt's original license and the whole C vs C++ on the Linux world (both are anyway Bell Labs languages designed for UNIX).
So C camp went with GNOME, and C++ camp with KDE.
Naturally then GNOME got bindings for C++ (actually quite good), however it is a big difference being the main language or one that always needs someone to write bindings.
KDE does have some nice applications but it's a bit of a usability nightmare. Fine for power users or people who want 238 separate screens in their control panel.
Can you please explain why it seems obviously superior to GNOME? I'm in the market for a new DE after using i3 for a while and would be interested in your reasoning.
KDE is an extremely integrated and batteries included DE. File manager can manage SVN/Git/Mercurial repositories and connect to anything. Akonadi can handle your mail and calendars at the background. Included apps (Gwenview and Okular) are very powerful.
Desktop effects are not gimmicky but useful (e.g: dim inactive windows). Power management makes sense and is reliable.
KDE can behave like anything you like and doesn't bury power-user related features somewhere. It's all visible. Multi-speaker & multi sound card management is also better, more obvious.
I used KDE for a while and liked it, but KDE 4.0 burned me and I never looked back.
I've heard it's much better now, but haven't tried it. Okular, and gwenview were always nice, even during 4.0 days. Amarok used to be great, though I've not tried Clementine and I'm no longer a user of that sort of music library software. The reason I don't recommend KDE today is because I'm just not very familiar with it.
> I've heard it's much better now, but haven't tried it.
I'm using KDE since 3.5.x including 4.0 release train. Its infinitely better. Stable, fast, extensible and infinitely useful (esp. Dolphin's services).
I'm not using too many widgets and/or activities, but it's better than anything I use (incl. macOS, albeit they're close).
It's safe to come back. The bad old days are long past; KDE is a great DE and you should revisit now. Kubuntu 20.04 LTS is an excellent choice and will serve you for many years.
KDE is an unstable, bloated and buggy mess. I give it a shot about once a year and uninstall it when the DE crashes; it doesn't matter what hardware I use, it never lasts longer than a few hours.
Are you trying nightly builds? Or some suspicious distri (Like KDE Neon)?
KDE is rock stable in my experience. Runs for weeks or sometimes even month (between kernel update reboots) without any crash or this like.
I'm running Debian Testing. So it's usually not the newest release of the desktop. I guess this makes it so rock solid for me.
Anecdotical story regarding stability of a DE: I had to use Windows 10 lately. I think the compositor crashes quite often if one has to may open windows. :-D
The change from GNOME 1 to 2 was much greater than the change from 2 to 3, and there were people who complained (and attributed malice to GNOME contributors) on both occasions.
The project has a point of view: that software freedom should be accessible and usable for everyone.
If that doesn't excite you, cool. But it has improved the entire FLOSS / Linux stack over the last couple of decades, whether you use GNOME or not.
It looks to me like the build up to gnome 3 caused a large increase in contributors, which then naturally petered off back to pre-3.0 levels. Could it be possible your personal experience as a gnome user is clouding your interpretation of the data?
I think for novices the most friendly experience is Pantheon, the desktop environment shipped with the elementary OS distro.
https://elementary.io/ (you can either donate, or choose to donate $0 and get it for free).
Now with regards to:
> Gnome 3 is where the project shifted from 'user friendly' to 'assume the user is an imbecile.'
I don't think that is what they had in mind. If I recall correctly one of the design motivations for Gnome 3 was removing the excessive distractions found in the numerous graphical elements of most desktop environments and make things a bit more minismalistic.
I have been using KDE since pre 1.0. Back in the days my internet was so slow I went to the university and copied KDE down on 5? floppy disks.
I used KDE through all iterations and looked at Gnome in dismayal.
Two years ago I tried Gnome. I was fed up with KDE screwing up with Wayland. And should I tell you? I love Gnome!
I was productive from day two. Ok, its opinionated and there is much less to configure than in KDE. But otoh it keeps me focused on work instead of fiddling with the DE. Imho a DE should just do two things: Make frequent steps easy to do but otherwise go out of the way. Gnome does that for me.
Kde took a turn at 5 / plasma. It's not the long pages of configuration anymore. It's close to as opinionated as gnome or at least not putting the options in your face until you ask for it. It's a massive difference from kde 3 times.
I couldn't stand gnome shell and moved to plasma as it was starting. Didn't really experience option overload.
To paraphase Churchill, Gnome is the worst DE, except for all the others.
I don't particularly love Gnome, but it's still what I use, as I don't really like any of the others more.
Gnome Shell has a lot of javascript, which must go down in history as one of the worst 'modern computing' ideas ever.
While I am a long-time Gnome user, I don't think it has a bright future. The project leadership continuously makes weird decision rooted in the believe that Gnome is THE Linux DE and everyone should dance under their flute.
It does not help that project is riddled with technical issues (most notably memory leaks), quite inconvenient without installing a number of extensions (which often break from versions to version, no stable extension API, really? JS as the extension language does not help either) and fiddling with settings (e.g. to enable Ctrl+Alt+Left/Right with grid workspace layout). I don't have time to play with different DEs right now, but as soon as I find a suitable replacement, I quite probably will ditch Gnome for good.
Unfortunately, Gnome sucks a lot of corporate support, leaving alternative DEs quite dry in that regard, which significantly hinders their pace of development.
P.S.: The animated favicon is REALLY f*g annoying.
> While I am a long-time Gnome user, I don't think it has a bright future. The project leadership continuously makes weird decision rooted in the believe that Gnome is THE Linux DE and everyone should dance under their flute.
This is an issue I've found scaringly true.
I've debated with some of their lead developers and they really seem to lack perspective. I once talked about that I don't run either ConsoleKit or PolKit, this being before logind existed, and Bassi was competely convinced that I had broken my system and did not know what these things did — for surely everyone would run them, and would use the features he listed they would bring.
Of course, there is also McCann's immortal quote “I have no idea what XFCE is or does sorry.” — this is one of GNOME's leads who in 2010 apparently did not know XFCE even existed.
Talking with many of these persons often leaves one quite stunned at how they can be so ignorant about what goes on outside of their little bubble.
JS as an extension language, at the time and less so now, came at an _enormous_ performance impact.
Core event polling was pushed through to JS in 2010! We were accustomed to snappy, 60 fps UIs and along comes Gnome3 as it struggles to render a response within a few hundred milliseconds of user input.
It's still unusably slow on low end machines; like ARM SoCs.
Is the issue JS as an extension language, or is it using JS for core events? Or maybe something else? People write successful games with Pygame, and Python's VM is much less optimized than what's available in the JS world, even in 2010.
To get 1-frame response time, you need to poll and redraw in the same 16.67ms window. That's an eternity inside a computer. I can write a JS curses app using blessed and it feels pretty snappy, so I'm guessing JS isn't the fundamental problem. The GNOME folk have always been a fan of IPC though (remember ORBit?), so I wouldn't be at all surprised if the latency is due to context switching.
JS in 2010 was not nearly as efficient or fast as it is today. But yes, it was a number of things as well as Javascript. It was entirely possible to spend time in stock Gnome3 without executing JS with any meaningful frequency, because the core Gnome shell doesn't really have much; but being the extension language, using any Gnome3 extensions would immediately bring JS into the profile. Being someone who likes to customize my desktop, and typically uses hardware five or more years out of date, the Javascript was a pain point for me.
There's an excellent blog post from 2019 by one of the Ubuntu devs regarding their efforts at the time to fix Gnome3, as they were abandoning Unity:
Going farther back, Gnome3 was plagued with lots of similarly bad design decisions, like allocating and freeing large amounts of memory on the same thread that handles animation rendering:
It's quite a storied history for Gnome3 performance; it's come a long way in the last decade. Sadly, it's still nowhere near as responsive or efficient as Gnome2/MATE.
The decision to not render icons using nautilus anymore, and instead use Gnome shell to render them was an awful decision.
The Gnome shell desktop extension is not as robust as nautilus. If you move a file by dragging and dropping a file, there is a good chance that Gnome shell will hang. I disabled the desktop icons extension because of this.
In principle it was the right decision. Opening an application shouldn't take over the root window. The was specially obvious for people who don't use gnome but use nautilus. The problem is that as you mention "The Gnome shell desktop extension is not as robust as nautilus"
>How well do you think KDE is in regards to Gnome regarding it's future?
As mentioned I haven't invested enough time into testing other DEs yet.
>I see GTK 4 was just released, will this help anything in Gnome 4?
I doubt it. The problem is not purely technical, the problem is the project's leadership, direction which it pursues, and relationship with the wider Linux community.
I have said this before but there is a chicken-and-egg problem here. Alternative DEs don't get a lot of corporate support so as a result they don't contribute much upstream. When they don't contribute much upstream they fall further behind and the relationship with upstream deteriorates because nobody is there to advocate for downstream.
I don't know what the solution here is but complaining at leadership to shift in an unspecified direction is probably not it.
Just to reinforce why it is a bad decision. One of the selling points of JS is that vast amount of libraries available to you. But in GNOME's case they use spider-monkey as their JS engine, which means that although JS is the extension language not using node means _no_ npm (or node APIs like the fs module)
Copy+paste from the github repos of each package is hardly superior to just having package management. Node doesn't magically make every program bulky. Avoid authors that feel the need to include lots of bulky packages.
Copy and paste makes the developer aware of how much they are dragging in. Its easy to run yarn add and then import millions of lines of code. If you tried to do that by hand you would stop and rethink if isOdd() actually requires that much code.
even if you just do copy+paste you copy over less dependencies because there is a cost. Each time you wonder: is it worth it? Ideally you don't do it at all though. As for avoiding authors who bloat up your hard disk, it's easier done on a platform that puts stones into their way like GNME does.
I doubt there is lots of JS code in NPM which is independent of either Node or browser APIs when including transitive dependencies. But that is besides the point. I said no NPM as in no access to NPM. Not just no node APIs. Let's say you install a library from npm using either npm or yarn. Its downloaded into the node_modules directory. how would you require it as an es6 module?
Another poor design from the GNOME team. How is the JS code in the gnome extension distributed? It is embedded in .so files! so much for hackability. (I learned this when upon a fresh Ubuntu install I run into bug in my gnome shell version which was a one liner fix but I couldn't find the file in the backtrace.)
Since there is no inbuilt support for Node APIs this will probably only work with modules that have no dependencies and are built into a single file. ES6 module support is WIP and ongoing: https://gitlab.gnome.org/GNOME/gjs/-/issues/328
V8 is superior in lots of other ways too. Interop with C is well defined and there's a lot of documentation. Overall integration is much better supported. Spider monkey has no purpose in existing anymore by comparison.
All this wibbling about GNOME 3 and so on -- it's just not relevant to the data in the original article. The same thing happened to KDE at the time.
The reason is simple: Nokia. Nokia (and to a much lesser extent, Intel) built up a lot for Maemo and Meego. Just for KOffice/Calligra, at least twenty people were paid to work on the documents application. For all of Maemo/Meego, the total number of people Nokia funded was enormous.
And then Elop, and the burning platform, and Windows, and well, that was 2012.
By 2014, my company was dead, amongst others, and, yeah, the peak had peaked, and the big chance for free software had gone.
Yes, it does, because Nokia had its fingers in both bowls of porridge, to the extent where people like Michael Meeks were fighting really hard to keep a small library like kcalendar out of Maemo.
Nokia started with GTK and when they went to Qt, they never stopped their involvement with GTK/GNOME -- they seemed to have expected the idiots in both camps to just work together for the good of free software, and like the idiots we were, we didn't.
Good grief, the painful conversations we had after the Dublin MeeGo conf ended, between people from both camps...
I was there; I wrote code; I had employees, I went to the various conferences and trade shows. My company provided one of the default apps on the N9...
Did they ever actually get to this point? I understand it was the long term plan but the only MeeGo phones actually released by nokia were still GTK based.
It's not going to replace the enormous investment Nokia made into the free software/linux community... So it won't help the graphs the original article showed. But by another measure, it's already a success since it exists.
How do you explain the relative neglect happening at Microsoft and Apple, then? Or Mono -> Xamarin?
The market just shifted. If you remember, there were also efforts by Mozilla with Mozilla OS, Ubuntu with Unity, everyone and their cat was focusing on mobile.
Gnome has historically been written in C (after having played with Obj C and C++, which they didn't like), and while it has adopted other languages like js, large parts of it are still written in C/Glib.
I don't find surprising that people don't find writing desktops apps in C attractive. That's in fact why the mono guys tried to make people use C# (previously, Sun had employed quite a lot of desktop people and of course they had pushed for Java, so there were some Java/GTK apps done by them and nobody else). The C# push lasted some years but eventually died because Linux enthusiasts never liked a MS technology that run code in a memory-hungry VM. Then, someone created Vala - a way to get the syntax advantages of a modern language like C#, without depending on a C# runtime. Once again not everybody liked the idea of transpiling a language not used anywhere but in Gnome, so not everybody adopted it, and these days it seems to be mainly popular in the Elementary desktop.
Then came the new trend: Javascript. The Gnome people has a strange addiction to following trends, so of course they decided that the future of the Gnome platform was Javascript, the definitive language that everybody will use in the future. It turns out, Javascript's GC didn't play very well with Glib's reference counting, but nobody thought that well before basing the desktop's entire shell on it, so for years the Gnome Shell became a memory hog that would eat hundreds of MB of RAM that would not get freed because of the interaction between the two memory management systems. That lasted until quite recently.
Now there are some parts of Gnome pushing for Rust. Fortunately for Gnome, Rust may be good enough to actually become a final destination for them, but even then not many people seem to be using it?
Anyway, my point is that in the modern Gnome desktop, you may end up running a Javascript shell running on top of a Glib/GTK core, then some huge C apps like Evolution and Gimp, then others written in Vala or even C# and now Rust. Gnome has been searching for a C replacement for too long, maybe they should stick to one language, and create a really solid platform in order to attract more people instead of switching targets every few years
Hmmm, while I have generally been singing nothing but praise for my migration to the Linux desktop. I will, as someone new and lurking around contributing, speak about something that make me hesitant to try and/or turn me off or away. This is only my two-cents as an outsider.
I think some of the issues[1] that matter to people have seen no traction over long periods of time and the answer is "it's hard; we'll get to it, leave us alone." And of course, if you look up who these people are, telling you to leave them alone, they are absolutely fucking brilliant people... they certainly know the scope and difficulty. The thing is, these folks are very likely, insanely busy and the longer their lives/careers go on; the less time they'll likely have to devote to seemingly unimportant, to them, but difficult issues.
That's life. Zero hate and only thanks to the kind brilliant folks who have spent countless hours donating that brilliance to the world... But then, this poses the big question of: what am I, the less brilliant, to do? What can I do? What other problems require your brilliance or expertise? Lurking through other issues gives me a sense of "not qualified" and I eventually stroll away. Maybe folks, who are qualified and don't realize it, also walk away.
I'll very likely contribute to apps using GTK since it's a really nice experience and other parts of the Gnome ecosystem; but I don't know if I'll ever contribute to Gnome proper.
[1] I don't particularly want to identify specific issues because I don't think the nice folks who maintain it deserve to be inundated with noise like "fix plz 10yers."
Hey... being smart simplifies some aspects of problem solving, but being smart isn’t necessary to solving problems. One of the better engineers I worked with, while very slow, was extremely thorough. If you had a long-horizon project that had to go at absolutely light speed, you’d set him on the project; two years down the road and the core “inner loops” would be a non-issue. Even Mike Abrash admitted this guy was the absolute pinnacle for this sort of programming.
Actually, one of the best things you can do to have an impact is to improve a project's communication. Find out what isn't documented and document it. Research issues and get the back-story and architectural decisions. Help people understand each other. Draw out details that might be gumming up someone's attempts to start working on an issue. Help manage and coordinate the work. Discover if old problems are no longer a problem. Find ways to sell something when you are at loggerheads with someone, or find alternate solutions.
This is the kind of stuff that gets business projects done in half the time with twice the quality. Nobody has time to do it, but actually it takes almost no technical skill to do; somebody just needs to be hired to do it.
Gnome 3 went the wrong way, pushing for apple aesthetics without apple functionality.
I mean on apple, I can launch a console and through every upgrade still get the "same" console back, usually with some scrollback for context. That was lost entirely after gnome 2.
I mean that's a "minor" thing but as a developer that cost me wanting to do any further development, which I'd been working on getting into. And then there was needing to run master versions of everything and not distribution versions, which made things amazingly disruptive to work on a computer that also had to do other tasks (eg : job work).
This has since gotten reachable if you have really giant hard drives, but that's budget too...
anyway the walls were so high then I walked away, and nothing has suggested they've gotten any easier or any more worth climbing.
Rule 1 for any UI design team is don't copy Apple. (or if you do, justify it. "because Apple" isn't good enough. Even Apple isn't sticking to this).
For all this talk about the Mac-ification of GNOME, as a primarily Mac user I absolutely cannot stand Gnome 3. There is nothing Mac-like about it, it is just bland, weird, and terrible. MacOS does not force you to use the Launchpad, for example. The menu bar is still here. The Dock works as it always had. To me one of the worst developments of the Mac UI recently is the disappearance of title bars, but this was a thing in Gnome long before it caught on at Apple.
A decently configured KDE or XFCE is much better, and much closer to how a Mac works.
The main issue with Linux desktops is that they can only provide part of the experience, because they don't control the whole stack, so there is no "decently configured" out of the box, neither for users nor for desktop developers.
Hence why the two most successful OS based on Linux are using it as an implementation detail for a Web runtime, and a Java/Kotlin runtime, alongside standard ISO C/C++, POSIX subset and some specific OS frameworks.
On GNU/Linux the moment someone tries to impose such vertical stacks, a fork lies waiting.
That’s very true. When you use a decent distro, the main apps are themed properly and somewhat cohesive. But the illusion falls apart the moment you wander a bit from mainstream applications. Having consistent themes and behaviours for Qt, GTK 3, and GTK 2 (so, the common denominator, which is the bare minimum but not many fancy features) only gets you partly there.
So, by “properly configured” I meant “with settings tweaked over a couple of years until the apps I care about behave sensibly”.
What I like with macOS is that the easy path produces the most consistent UI across the platform. It does not prevent stupid developers from reimplementing everything (hello, non-standard text fields in Adobe software, non-standard notifications in battle.net, and overall appalling window themes). But at least they have to go out of their way to do it, and applications from developers who care are great for not much effort on their part.
Long time Linux user, not much of a programmer for context, but.
Gnome 3 literally shouldn't even be called "Gnome." Probably MATE should. It's not that you have to keep every little thing, sometimes you do have to backwards break; e.g. sure, Python 3 is still Python. But Gnome's model broke so much that it really shouldn't have kept the name.
Ah, 23 years of, "If you don't like it, use something else," and "If you want that feature so badly, like being able to choose a desktop background color, code it yourself. It's open source."
It's sort of comforting in a way, the consistency. The Gnome project will always be 80% of what people want in a desktop environment, and 20% screw you.
Gnome 3 was a big departure from what users were used to in Gnome 2. In Gnome 2 you could configure panels by simply dragging and dropping elements. In Gnome 3, this customization is achieved by installing extensions or Gnome shell themes. Installing extensions can be easy, but it will never be as easy as dragging and dropping elements with your mouse.
For many years, when you used XFCE and then went back to Gnome 3, you could perceive how much slower Gnome 3 was. Now, performance has gotten much better to the point Gnome 3 is my default desktop again.
You can tell there are users are still disgusted with the Gnome 3 UI. That's why the MATE and Cinnamon projects exist.
Any gnome extension I've installed I came to regret it without exception (on Ubuntu). They always ended up breaking something in a fatal way where even after uninstalling them would leave the damage. For example now my windows won't snap to half the screen edges (to take up half the screen) any more, just randomly. That's just one example. Extensions have always caused me headache and mess.
People often claim Linx desktops are "there" today, but the lack of polish and glitches are still painful. Not horrible, but not comparable to Windows or Mac. It's surely solid enough to use as the main daily OS, but you really have to stick to the defaults as customization often breaks stuff.
On Mac I can't tile windows without installing a third party app, on gnome I can. On windows three finger swiping between desktops when the task view is open is horrible, but gnome handles it perfectly.
I use gnome, mac, and windows daily. They all have pros and cons, but I can't see how anyone could claim Windows or Mac are well ahead of gnome.
I especially like the histogram with the per-month bins. It shows clearly both the tendency of developers to leave over time and the fluctuation due to release cycle.
The affiliation graph is also interesting. I think if I were to put a number on how much I liked GNOME in each year, there would be an inverse correlation with the percentage of developers that come from Red Hat (with 1999 being an outlier -- I was a fan of both Red Hat and GNOME back then).
Very interesting article, thanks for sharing the information.
FWIW, I used to be very happy with the Gnome environment but 2 recent (nautilus related) changes frustrate me incredibly:
* Copy / paste file paths from nautilus to terminal is broken. (You get this extra meta information in the path starting with `x-special/nautilus-clipboard`)
* Type ahead is gone. Previously you could type the first letters of a file / folder and select it this way. Now typing automatically triggers a search (equivalent to ctrl+f), which is much slower.
These might be minor things but I hit them so often that I was driven away from Gnome.
If you don't mind pulling a bunch of cinnamon dependencies along with it, you can use nemo (the cinnamon file manager) as a nautilus replacement in gnome. The search behavior you mentioned in particular is very annoying with nautilus.
I don't get why projects like these don't simply change their design to allow more flexibility and merge into one mega-project. Rather than have Gnome VS KDE fighting it out, why not simply choose one as a base, and hack it up to allow for the other one's functionality? Both teams could then use a shared codebase, and provide tailored customizations of how to run it. I can't imagine that it's impossible to make GNOME work like KDE, or KDE work like GNOME, with some small code tweaks.
In other words, if you have two different window systems with two different ways to manage a call to a part of the window... just pick one. Then have the "other team" add any missing functionality. Then give it to the app devs, so the devs can make their apps according to the one standard system, so users can use the one standard system and get on with their lives.
How you implement it is trivial technicalities, because, as a user-facing application, the only important thing is the functionality that users want. Getting in the way of what the users want means you don't care about them, and then why should they use your thing?
GNOME and KDE are not the only desktop environments on Linux [1]. MATE forked from Gnome 2, much closer than KDE yet they are separate projects. Trinity forked from KDE 3, XFCE is a GTK based project.
Imagine same argument for macOS and Windows (if that was possible) — lets merge UI. It would be complete disaster, hated by both camps.
I would love it if they had the same programmatic interface, but allowed different distributions and customizations of the interface. It doesn't matter how the code works, it matters what the user experience is. So keep the code the same but provide a different user experience if you want.
Can you imagine if roads were designed so only specific cars could drive on them, and so in order to have different vehicles, we had to build completely different sets of roads??
We have themes and extensions (different experience, same codebase), we have libinput, X11/Wayland (same codebase). It is the same old question "why many languages, libraries, frameworks?"
Can you imagine if engine was interchangeable between car models, planes and ships too? But also appliances, power plants, rockets maybe?
You may enjoy Nissan Leaf commercial - it questions only engine type though, not universal transmission.
Can someone please tell me what I should use then, if I just want a memory efficient, aesthetically pleasing, no-fuss experience (coming from mac OS)?
KDE? It has issues too, but I wonder if they're as severe. Heavily customized GNOME? It's possible, but that's extra work [0].
As much as I love to tweak my i3 config and enjoy trying to be keyboard-only as much as possible, I'm not enough of a poweruser to justify it and the cognitive overhead just slows me down. (I believe Apple came to this conclusion decades ago, too.) I just want to point, click, get work done without bugs or crashes.
If you like i3 but you want something a little more hands off you might like Pop Shell. With some minor config [0] it feels a bit like some combination of GNOME, bspwm, and i3.
If you want minimal tweaking, I think you're pretty much constrained to Gnome and/or KDE as those are the two desktop ecosystems on Linux. Just install both and switch between them for a while until you decide which one is for you... most applications won't care which they're running under.
FYI, a lot of the dislike for the current Gnome comes from remembering what it used to be in the Gnome 2 days. You have no such history so maybe it'll be fine for you.
I would recommend checking out Cinnamon on Linux Mint (Ubuntu based with Flatpak instead of Snaps). Prettier than KDE IMHO and pretty nice to use via keyboard. It includes useful apps developed by the mint team, like timeshift for backups and they package chromium themselves.
Is this a technical opinion backed up by facts, or merely an aesthetic one?
We've got three OS's in our house, and honestly, apart from individually subjective things such as whether and where you want a dock, I don't feel the display manager or aesthetics are inherently any better or worse under my Ubuntu Desktop than Mac OS.
Honestly though, I'd say the same for windows 10.
The truth is for the last 5 years or so we seem to be yo-yoing around in some local minimum of GUI interfaces. I can't honestly put my hand on my heart and rate any of them over any of the others in terms of user experience.
I love Ubuntu and it's the only tolerable desktop Linux that let's me get something done instead of constantly fixing the OS and searching for workarounds.
But even Ubuntu and Gnome have frequent glitches. They are minor annoyances that I can't even list well. Stuff like an icon would get stuck to the mouse cursor and I have to lock the screen and unlock again to fix it. Or I'd get light text on light background in the context menu. Or the font gets messed up randomly. Or alt tab works weirdly (yes I searched and fiddled with it, it's still not how I expect it). Many more small things. I should make a list but then again, I'm trying to get stuff done, no to compile meticulous bug reports.
It goes beyond that what the eyes can see, the way how everything is integrated also counts, specially on the developer experience of OS frameworks and how most applications make use of OS IPC capabilities.
Oh, Gnome... I was a really into it in the late 1990's. Haven't used it for many years, except the occasional time I set up a Raspberry Pi and plug it into a monitor. For the sake of nostalgia I follwed a few of the links in the post and it took me all of 3 click to find this page (current top post in Gnome Discord) : https://discourse.gnome.org/t/gnome-desktop-icons/4949/13 which was a painful reminder of why I gave up on 'Linux on the desktop' and pretty much 'open source for end users' overall.
GNOME has become more conservative, certainly much more so than it was a decade ago in the run-up to GNOME 3. The rationale and phrasing in the announcement of the new versioning scheme (e.g. “Radical technological and design changes are too disruptive for maintainers, users, and developers”) seems indicative of this trend[1].
```
This is very perceptible in many projects. Quite a few projects are not willing to innovate - use new and better tools, migrate to a new language standard, drop legacy compatibility and so on. Thankfully the nature FOSS allows new forks to emerge and slowly get rid of the dead hand of the past.
I recommend Cinnamon on Mint for Mac users. It includes Timeshift for backups and other polished tools from the Mint team. They even package chromium as a package themselves instead of shipping a snap (which they removed and replaced by flatpak)
i just came here to post some love for gnome. linux would be worse without it. of course there are 2001 ways to run linux on the desktop, but in terms of full on desktop environments, that say a user from windows or mac could pick up and use, gnome nails it. i think honestly much of the frustration is that gnome seems to have so much potential, it could be astounding, sometimes seems to be in its own way, but personally my bet is gnome has a long future yet
I wish KDE and Gnome efforts were consolidated - that would have sped up the progress of the Linux desktop, but what can you do. I personally prefer KDE.
Stuff like switch to Wayland takes decades because of this split.
> Stuff like switch to Wayland takes decades because of this split.
My understanding is the switch to Wayland has taken ages because basically everyone who thought it would be a "quick" thing vastly underestimated the number of stakeholders they would need to get on board with the change and how much work would need to go into making those people consent to switching.
They underestimated and had no idea what people are doing with their computers.
Wayland removed many features and use cases from X11 because they thought no one used them. This is what happens when isolated developers without market research make the shots I suppose.
Originally libinput did not even offer a way to disable mouse acceleration as they thought no one would ever do that — anyone who plays video games would obviously laugh at this notion since the præcision required for many video games is completely compromised by the floaty feel of m.a., but they don't play them I suppose.
Talking with many of the Wayland devs reveals their ignorance, this would be fine if they were willing to listen, but at this point it has clearly become an issue of tribalism and because they probably heard it so many times they simply become defensive now as admitting it this point would be admitting defeat an that they were wrong, with pride on the line they continue to insist that one does not “need” these features because the compositor can provide everything, yet no compositor exists that does and it would be madness to expect any to.
It is so frustrating dealing with anti-wayland anti-systemd anti-anything that changes the 30 year old status quo and makes linux actually alive instead of bitrotting on old computers..
Wayland is a display server - xorg started out as one as well, but it got extended to such an extant that at one point it contained a printing service as well. Wayland goes back to the base problem - how to display a window on a/many screens - and solves it splendidly. And leaves the rest to the actual desktop environment because it is not display related. UNIX phylosophy is not all that sexy when it is actually useful is it?
But wayland developers were clever enough to add a proper extension management system so a client can query what is available and use what’s given.
Does implementing wayland by multiple DEs consist of some duplicate work? Sure.
Should we not refactor all the technical debt that accumulated over DECADES to the point where a new hardware was introduced? I think the answer is no.
And I’m not sure which group is tribalist, the ones who blindly hate on something because - surprisingly - without work there would be nothing, or those who make the new thing usable.
Only insofar that the same developers work on the hardware and input drivers for both, and even frequently share code with one another, libinput also works with Xorg of course, and logind's mechanism for starting an unprivileged compositor was backported to Xorg as well.
However, the original designers of the X11 protocol no longer even work on X for the most part, and some of them are dead.
And even with the hardware it was inherited, it is true that the developer of libinput was the maintainer of synaptics, but he did not originally designed it, and found useless many of it's features that he was forced to maintain for backwards compatibility — with libinput hwas free to drop them, and initially did, but after many complaints has yielded to bring some of them back.
synaptics and all the Xorg input drivers are really quite configurable allowing one to even edit the transformation matrix used for pointer acceleration directly, or to manually control the size of the touchpad scroll region, or configure rather præcisely via what criteria palm detection works — Hutterer originally removed this from libinput and considered it unnecessary overkill, but has later restored much of it after complaints, finding that many users indeed used and configured this.
Yeah, Wayland is mostly a regression for my use cases: client-side decorations, breaking screen recording/sharing etc. I know there are theoretical issues with the X security mode, but this replacement is a classic case of “security” producing something that’s basically useless for what people use the software for.
Also, because X works over a socket, it’s language-agnostic in a way that a library just can’t be: libraries like CLX allow Common Lisp graphical applications with no dependency on a C library.
> I know there are theoretical issues with the X security mode, but this replacement is a classic case of “security” producing something that’s basically useless for what people use the software for.
I keep reminding people that one of the most known models for security is "confidentiality, integrity and availability".
If it isn't available your security is still somehow broken however well one scores on confidentiality.
Wayland security is not broken. Its just a single piece in a much longer term goal that spans many components. Linux was not designed for the current era where users run untrusted and borderline malicious programs regularly. While wayland may secure the desktop, there are 20 other places where programs can scoop up your data.
It looks useless now but without every part being fixed individually it will be impossible to create a secure linux desktop that runs proprietary applications.
Tbh I'd much rather fight this on the front of "let's not need to run untrusted and borderline malicious programs regularly" than breaking the free world in order to make it possible.
That fight was long long lost. We will never ever make things like video games open source. But we can sandbox them. Even open source tools could do with being sandboxed.
I don't see why this is an issue. The user still has full power to do anything and its is only programs which are restricted. Under the new model, instead of a tool just grabbing your screen, it must now make a request to the OS which will show a popup asking if you want to allow access and if you accept the program can continue as it would have before.
The issue I have with wayland is that it just continues to fragment the Linux desktop ecosystem, and it moved things to the toolkit that just don’t make sense there: I don’t want my window decorations to depend on whether the app is built with Qt or Gtk. I don’t want projects like McClim ( https://common-lisp.net/project/mcclim/ ) to depend on C code to communicate with the windowing system, etc.
So for window decorations, it's up to the app developer if they want to implement special behavior for client side decorations or not. If they do, there's nothing your toolkit or window manager can really do about it, you have to show the client's window decorations or you will lose functionality. Wayland has little to do with that.
About depending on C code, Wayland is pretty much the same as X11 there. If you don't want to use libwayland, you can write your own implementation of the wire protocol.
You didn't say hardware acceleration initially. If you need hardware acceleration you will have to link against Mesa/OpenGL for direct rendering anyway, which is a giant C library, so yeah the dependency on external C is somewhat unavoidable there under any windowing system.
If you consider linking against libGL and libEGL to be okay but not libwayland then there actually is a workaround: forget the EGL wayland platform and have your custom wayland implementation use the EGL GBM platform. There's some extra code you have to write here but unless something changed that I missed, the same problem exists with Xlib if you try to use the EGL X11 platform, or if you want to use direct rendering in GLX. (Mesa's libEGL/libGLX links against libX11 and expects to get a structure with the C ABI. Keep in mind if you are using GLX calls in that CLX library, you are probably not getting direct rendering, you would have to do a similar thing and reimplement the DRI2/DRI3 path from Mesa in your toolkit or application)
> That fight was long long lost. We will never ever make things like video games open source.
I don't share your pessimism.
Yes, it is harder to exploit users with [FLO] software; so there is less profit to be made; and that will discourage some companies from making it. But I can easily imagine that with a modest income from donations, a project like [Black Mesa] would be happy to make their game open source. Also yes, most software projects today cannot make a living off of donations. But there's no inherent reason this has to be so. People have shown they are willing to pay money for software; in principle, it is ["just"] a matter of redirecting that money from proprietary software to FLO software. And yes, solving the free-rider problem is a very ambitious "just".
But addressing a collective action problem like this requires a coordination mechanism, and the [existing crowdfunding platforms] don't have that. So, I am actively working on one that does — [Snowdrift.coop] — and am not yet ready to throw in the towel.
> But we can sandbox them. Even open source tools could do with being sandboxed.
I agree, but I don't think the operating system is the right level of abstraction to do this. Sandboxing is complex. Implementing it in the OS pushes that complexity on every program, which makes tinkering much harder. I absolutely do not want to have to deal with sandboxing and permission prompts in my .bashrc aliases and shell scripts. I write shell scripts to make my life easier by automating common actions, and having to set flatpak/SELinux type permissions every time I do that would defeat the purpose, or at least substantially raise the bar for how much friction is required before I turn to a script. Writing a simple program on Android/Linux is soo much more work than writing one for GNU/Linux, and soo much less accessible.
Also, we already have an excellent application sandboxing platform for running untrusted and borderline malicious programs — the web. The result of that sandboxing is incredible complexity which makes it a herculean task to develop a web browser. That's a real shame; I'd love to see the "web of documents" split off from the "web of applications" (e.g. to a different protocol, like gopher). I don't want to see desktop environments go the same way. When I install and run a program natively, I am indicating that I trust it and want to leave the restrictions and complexity of the web sandbox behind.
I do see a case to be made for a sandboxing tool for graphical applications specifically. Because building a GUI is already a lot of work compared to writing a CLI, so the relative effort to handle permissions, etc is not as large. But this should be built into and enforced by the packaging tool (e.g. flatpak permissions), not the operating system. And, to bring this discussion back on topic, not by the display manager.
Here's a concrete example: I use Mumble for voice chat. I use push-to-talk. [PTT on Wayland] doesn't work, because the display server only sends keyboard events to the client that has focus. You can look at the linked issue and see all the complexity that results. So for now I am still running X. Yes, there are workarounds. No, I don't want to have to deal with them. Not having to deal with them is the kind of nice thing we can't have if we accept sandboxing by default, rather than sandboxing only the few programs that we cannot trust to run directly on our machines.
I mean, if you are a dev who has devoted an enormous amount of your efforts into making a replacement for the stuff that displays all the stuff from all the other GUIs, seems like the identity function would be recording the shit you're displaying. The fact that OBS doesn't yet work under Wayland makes me wonder if sufficient (or any) dogfooding is going on.
It'd be like if in the 90s you still couldn't easily compile code from inside Emacs. It's a smell.
On X11, a client can view the contents of any arbitrary window, simulate input, read input — this is necessary obviously for screen sharing applications; though one can argue that maybe a permission model needs to exist to allow some clients to run with lower privileges — the funny thing is that it does; it's called te XSECURITY extension, it's very easy to use, and seldom used for whatever reason though SSH uses it whenever it can.
On Wayland, no client can do such things, but many clients such as screen sharing tools, profiling tools, and whatever else that needs to simulate input and read surfaces obviously needs to.
Wayland developers simply say “It must be built into the compositor”, but no compositor can be expected to provide all that, and no compositor does.
The reason XSECURITY is not used is because it's not a real client API and it breaks applications. All it can do is force certain protocol requests to error out or return garbage data. In wayland the security method has moved towards asynchronously showing a dialog asking for permission. It's not feasible to modify the X11 protocol to have it do that without causing more breakage in applications.
>no compositor does
This is not correct. GNOME's compositor actually does support screen sharing, sharing of individual surfaces, and simulated input. And I'm not entirely sure what you mean by profiling tools, can you elaborate?
If you're noticing something that seems strange like that I would say do a thorough check to make sure you don't have some misinformation, there's a lot of bunk that goes around on social media. OBS is working but is not fully tested yet: https://github.com/obsproject/obs-studio/pull/2484/
What's the relevance of the open bug report to what I wrote?
For the record:
* I'm running Debian bullseye
* I'm running Gnome version 3.38.2
* I'm running OBS installed from apt: version 26.0.2+dfsg1-1+b1 (64 bit)
Given a poster on this thread boldly claims that "Wayland is already done and ready," I'd say my setup is more than recent enough to test whether that claim is indeed usable in practice.
Lo and behold, when I run OBS I get a blank screen staring back at me.
If I log back in with Gnome running under X11, OBS works just fine.
It's wonderful that the issue is being addressed, and I thank you for your work on it. But my point is that Wayland+OBS working together is a litmus test. The fact that the two are just beginning to play well is a big red light to me switching away from X11 any time soon.
Anyway, that "done and ready" quote is really the source of my frustration. If I have to set an arbitrary timeout after a "loaded" event to get it to work properly, "loaded" is a probably misnomer.
If we measure readiness by having every application ported over to wayland, then it will never come - but it is not a useful metric imo.
Screensharing/recording works on wayland (that is, there are extensions supporting it). Clients are slower to adapt, but once stable chromium does, a major pain point in client availability will be solved (I mean electron apps)
> If we measure readiness by having every application ported over to wayland, then it will never come - but it is not a useful metric imo.
We're talking about two different things.
You're talking about whether Wayland devs are ready for other devs to start leveraging their work.
I'm talking about whether any Wayland-based distro is ready for a stable release. Clearly none are if a best-in-class screen recorder just gained the ability in a dev branch to recorder the screen under Wayland.
Ubuntu understands what I'm talking about-- 20.04 is not Wayland-based, and I doubt it took look for them to make that decision.
Whether best-in-class applications run correctly under Wayland is a perfectly reasonable and practical metric for Wayland's current value to users.
Well, it is a difficult question as linux is a bazaar-style ecosystem and while apple can change something fundamental at a whim, every significant change in linux will result in a split of the community (with different ratios) and the ‘winner’ will slowly swallow the other. But still then, noone has the incentive in open-source to start porting their app (and usually, since the new thing will be a smaller community at first, it creates a negative feedback loop) - fortunately those that depend on frameworks more often than not can simply be started in wayland mode and no change is required by the maintainer.
For more special clients (like a screen reader) you will need more time as these programs require special handling by the compositor so one has to create an extension for that and a/some DE should implement it then. It will take some time and maybe some niche program that relied heavily on the X implementation will never be ported, or will have to be recreated with wayland in mind (I mean those scripting little programs that read what is under the cursor and the like)
Also, most DEs have really good backwards compatibility thanks to xwayland - because frankly some app will never be ported. (Also, accessibility is unfortunately quite the last thought on even paid platforms - and last I heard it was not all that great to begin with on linux)
You need to use that PR (and the right capture plugins) if you want native Wayland support, it's not merged yet. If you'd like to help move things along, please help test from git. I can give you more info on how to do this if you'd like. Even if this is merged it may be a while before it lands in debian testing.
It's not just stakeholders, it's because instead of one Xorg doing everything, each compositor now has to implement similar things. So efforts are spread across all existing compositors instead of being concentrated. That slowed down progress tremendously.
I'm all for Wayland transition, but things could benefit from concentrated efforts for sure.
They went that way for a reason, though. All the Xorg window managers (Mutter, KWin, etc) largely became behemoth projects in their own right to fill holes in X that could not be easily fixed universally. Since those projects were already faux display managers the X devs that started Wayland wanted to avoid that duplication again.
I get the reason, but it doesn't help that spreading of the effort slowed down the progress almost to a crawl. There is still no adaptive sync in KWin on Wayland and it's not going to appear soon as far as I understand.
The major compositors don't seem to be having issues managing their own implementations so I don't see the issue. wlroots seems like the ideal tool for building your own DE/WM
Wayland is already done and ready. It has been the default in fedora for years and works perfectly fine. The slow rollout is because nvidia won't support it so only distros that reject nvidia like Fedora will ship it.
Fedora is probably the only distro actually pushing things forward without being tied down to vendors. When CgroupsV2 came out it was disabled for many years because docker didn't support it. Until fedora decided to turn it on and suggest users use podman instead which got docker to update to v2.
It's very far from done and ready. Where is adaptive sync in KWin on Wayland? That's a major feature for gaming. Subsurfaces clipping is a huge mess and so on.
It's default on Fedora because Fedora assumes it's users to have a use case no more advanced than browsing the internet and editing some text documents, and perhaps running a compiler.
A very simple reason that I can't use Wayland is that I have a piece of software I sometimes use that is bugged and doesn't properly exist when it's window closes at times, so I actually run a very simple daemon that checks whether the window is gone, and if that be so, sends a signal to close it that way so I don't have to do it manually every time — I can't do such simple things on Wayland because asking for a list of all open windows is “insecure”.
> It's default on Fedora because Fedora assumes it's users to have a use case no more advanced than browsing the internet and editing some text documents, and perhaps running a compiler.
And, you know, developing a complete desktop operating system. (Fedora's developers are its users, almost universally).
That would be something that is done by browsing the internet, editing text documents, and running a compiler.
Writing software is really not something that is demanding of the features of a display protocol — and that Wayland is developed by those that write software without consulting users that say, play videogames is why it's so lacking.
At the end of the day, playing even the simplest video games tends to be more of test for the merits of a display protocol than writing said video game from scratch, without playing it.
If you are on GNOME Wayland, try using this shell snippet to close a window with a specified app id. (I used firefox as an example but you can change it)
Mob censorship here is really surprising. But when the system is conductive for it, it's even worse. It's basically built to silence any dissenting views, because hordes of click trolls downvote such comments and nothing stops them.