On the Graying of Gnome
hpjansson.org
hpjansson.org
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 just works? Gnome just breaks other things.
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 ...
> So much stuff one needs to learn ...
like installing Atril instead which works as I want it to. https://github.com/mate-desktop/atril
On Linux you have to dig to find these things and then have to remember a different keybinding for every app, if there is one
Take a look at [1] for more.
https://www.reddit.com/r/firefox/comments/c8itj2/enabling_wa...
(Same question for Electron apps, particularly VS Code.)
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).
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.
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.
It's still possible to run 20+ years old Win32 Apps that way.
https://forum.lazarus.freepascal.org/index.php/topic,51016.0...
I have not seen it, but it would affect all my programs, it sounds very annoying
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.
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.
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).
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.
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.
While I'm here, another vote for Gnome3. Love it.
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.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.
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.
For the second: not just moved, many options were flat out removed; I dropped Gnome because of this.
For the last one: and broke many apps in the process.
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.
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.
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).
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.
You mean KDE Plasma, right?
Ten years of pushing touch UI design on us, and it's... Still five to ten years undercooked.
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).
Still, there's only so long I want to wrestle for..
Huh? Canonical switched away from Gnome with the dreaded version 3 and created their own Unity instead.
I may remember wrong though. I don't follow GNOME, Unity and Ubuntu very closely.
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.
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.
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.
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.
I think that, whatever definition of "normal" GP was using, it's automatically excluding anywhere from 45% to 95%+ of the population.
And by selecting upon adults, the numbers are already driven up. The young tend to be more skilled with new technology than the old.
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.
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.
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.
Don't think of it as a desktop with poor thermals. Think of it as a desktop that can easily travel with you.
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.
Happy holidays!
> many their users smug idiot hipsters
Maybe take your own advice?
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).
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.
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.
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.
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.
IMHO, Firefox with desktop UI (and addons!) on a phone is _vastly_ superior to Firefox Android. It's shocking how much better I find it to be.
For example you can have the addressbar at the bottom (even it's not officially supported) with a few lines of CSS.
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.
I wanna throw in KDE connect too, honestly, the best and easiest way to work with an android device from a PC hands down.
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.
Not any more since the switch to GTK3. Plasma is more lightweight since than.
I like to use different things. Keeps my mind open.
For those still burning plastics I would add K3b to the list.
I am using Gnome since 2018 btw.
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.
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'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).
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 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.
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.
I couldn't stand gnome shell and moved to plasma as it was starting. Didn't really experience option overload.
However its use of JavaScript for any customization, broken use of UNIX workspaces and overall slowness pushed me into XFCE as well.
In spite of not bing a C fan, I am even less fan from polluting the GNOME experience with JavaScript everywhere, instead of pushing Vala forward.
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.
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.
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.
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.
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.
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:
https://discourse.ubuntu.com/t/boosting-the-real-time-perfor...
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:
https://bugzilla.gnome.org/show_bug.cgi?id=745032
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 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.
It makes the file management experience inconsistent. That is not the case on macOS or Windows.
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 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)
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
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.
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.
What would a reasonable goal for success look like? How can it be achieved? What would cause it to fail?
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.
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
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."
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.
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).
A decently configured KDE or XFCE is much better, and much closer to how a Mac works.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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?
Imagine same argument for macOS and Windows (if that was possible) — lets merge UI. It would be complete disaster, hated by both camps.
[1] https://wiki.archlinux.org/index.php/desktop_environment
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??
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.
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.
[0] See e.g. https://gist.github.com/eh8/38fc8240ce4c8fd2e0ae065410045cd5
They recently added i3 style tabs. [1]
[0] https://gist.github.com/dsissitka/14995165a51524486f2385df66...
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.
[edit: add more features]
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.
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.
Merely aesthetics, but aesthetics matter :)
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.
It's simple.
[edit: add sentence abuot chromium]
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.
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.
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.
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.
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 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.
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.
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.
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.
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)
Not really. Engines can be open source, you don't need to make art assets open to use them.
Projects like Godot are progressing well.
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.
---------------------------
[FLO]: https://wiki.snowdrift.coop/about/free-libre-open#flo
[Black Mesa]: https://store.steampowered.com/app/362890/Black_Mesa/
["just"]: https://blog.snowdrift.coop/crazy-ambition/
[existing crowdfunding platforms]: https://wiki.snowdrift.coop/market-research/other-crowdfundi...
[Snowdrift.coop] besides the main site, our wiki has more/better information: https://wiki.snowdrift.coop/
[PTT on Wayland]: https://github.com/mumble-voip/mumble/issues/3243
That's a scary one IMO.
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.
>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?
(Disclaimer: I did some of the work on this port)
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.
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.
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)
Also, wayland also uses sockets..
I'm all for Wayland transition, but things could benefit from concentrated efforts for sure.
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.
https://www.debian.org/releases/buster/amd64/release-notes/c...
Debian 10 "buster" released July 6th, 2019
Because of all that I'm still using X11 session.
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”.
And, you know, developing a complete desktop operating system. (Fedora's developers are its users, almost universally).
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.
busctl call --user org.gnome.Shell /org/gnome/Shell \
org.gnome.Shell Eval s \
'global.get_window_actors().forEach(w =>
w.meta_window.wm_class == "firefox"
&& w.meta_window.delete(global.get_current_time()))'