Pop_OS 18.04: the state of the art in GNU/Linux on desktop
ar.al
ar.al
I have to strongly disagree on this one. Having my window open in my 3rd monitor - and having to go back to the 1st monitor every time I have to use a menu item - seems like a kafkaesque nightmare to me.
Indeed, I had to suffer that experience on macOS at some point, and it just kills all the benefits of Fitts's law. There were glorious hacks of apps dedicated to restoring sanity by making the menubar present on all screens, until the feature went native. Nonetheless it does not detract from the fact that I find the menubar concept insanely good compared to per window menus as Windows and Linux had (although this was a configurable in KDE, the implementation was disastrous).
This is literally the same issue with monitors but on a smaller scale.
Additionally, it's designed for the hardware it's run on: a single screen laptop or desktop computer. Yes, it can run on multiple monitors, but's not really designed to do that. I don't think Apple has ever totally internalized the idea of multiple monitors or even big hardware (except for a brief time when we had a real Mac Pro).
Sure, he theorises that the reason is doesn't work for users is because it hasn't been implemented properly everywhere (which the GNOME developers also state), but "we should expend effort on getting third parties to adhere to the HIG" is a classic cop-out: "things would be better if we would just do them better".
Sure, if you can show that the reason third parties do not adhere to the HIG is lack of effort from the team, and you have reason to believe that there is a way to increase the amount of effort spent on that other than saying "just do it", then by all means, go for it. But if that's not the case, the only valid conclusion is that the desired state might not be possible, and removing such a feature is the only proper course of action.
- not realising that (though this is an assumption from me) the most common workflow in GNOME is for applications to have a single window, i.e. users not being aware of distinctions between windows and applications. - thinking that you can only interact with focused windows. The result is that on multiple monitors, you don't need to be constantly aware of which window is focused - except to know which window's menu bar is currently showing.
That said, in broad lines I'm mostly annoyed by the author's trivialising the reasons for things not being the way they'd like them to be, and placing their own intuitions over actual user experiences - as an interaction designer.
The best way is to create the park with no built paths, let people settle in for some months and then come and build over the paths they created themselves.
Also, maybe I'm just the stereotypical boring German but I usually try to not use the man-made footpaths if I just have to walk 20m more... Of course that's different for really "useless" 2m x 100m stripes of lawn in the middle of nowhere where someone just didn't notice that everyone will have to cross it, but of course there are exceptions to every rule.
>whoever comes first and is part of the majority who wants to travel from A to B through the park without casually strolling will define the way
I'm not sure about whoever comes first; people don't normally follow paths based on lightly treaded footprints in the grass. Hell, you watch people cutting across the grass and you're not going to see them just line up.. They walk to their destination, and enough people to do so over the same path (presumably, because its optimal, or close to it), and the grass dies, and a pathway naturally emerges, and then you get your lines. It wouldn't be about which person arrives first.. it would be about which destination appeared first. The pathway would be naturally created for it, and then if a different, but nearby destination appeared, they'd probably re-use the pathway rather than to create a new one. A sufficiently distant new destination would likely create more pathways though.
>What if the park is supposed to have a few loops and not-directly-diagonal paths to encourage lingering around?
There's nothing stopping that; just don't interfere with the optimal paths. There's no reason you can't have more paths (it's not like you're putting fences so they can't intersect..), but certainly its unreasonably to have fewer paths than what people will naturally use.
Also, what is this supposed to business? It's a design/aesthetic choice, and if its unreasonable to have given the conditions of the environment, it would be utterly moronic to put it in anyways. If the designer doesn't have the authority to not be subservient to whatever is supposed to be, then its likely the stupidity of the bureaucracy. This then isn't question about what is good, its about what the authority thinks is good, and by how far its willing to force it onto the population.
Maybe I'm more thinking older cities like where I live where they sometimes convert old graveyards not being used for 200 years and having many graves of well-known architects, inventors, etc to parks, but not in the "play football on the grass" parks, but shady paths to take a stroll and sit on a bench.
1) its too godamn slow. I have 32 cores, 64 gigs of ram and a massive graphics card, yet draging windows about has lag, pressing the meta key has lag. Its just not fast like mate or lxde.
2) shortcuts are hard. I have a number of shortcuts for my most often used things, and they are always clickable, no matter what. Gnome 3's favorites are _almost_ the same, but its much harder to create custom entries (if its not in the applications list you're out of luck)
Edit: * Well no, "simplicity" does not exactly mean what I first thought it did. I guess I mostly traded ease of configuration / usage. Openbox and i3 are more difficult to approach but they don't lack on simplicity at all.
I am going to say this is probably only partly GNOME 3's fault. I have only lukewarm feelings about GNOME 3 but was blown away when I ran a distro on a very old Intel NUC only to see GNOME 3 running buttery smooth.
My guess for why is due to the high quality of the open source Intel graphics accelerator drivers on Linux. NVIDIA and AMD do not offer this at all, and at best performance can be tricky depending on what extensions and features your driver supports (and how well your card is supported if using open source drivers.)
Basically, I don't think GNOME 3 is bloated or slow. I think it uses relatively reasonable CPU, but compositing in Linux is complicated due to second-class graphics driver support, and that causes a lot of the lagginess/glitchiness/general wonkiness that you get with the desktop experience. (edit: An example is that I've had issues with resizing Windows that I have found to be NVIDIA-specific.)
(Of course, you can get around this by not using compositing at all, but I think the case for compositing is more than solid at this juncture.)
It's known that driver support is bad. But I think the main problem with gnome is that it uses js. Its runs a whole damn browser (firefox). It's js that owes to the numerous memory leaks that end up hogging extreme amounts of memory.
Also, I don't think it's unlikely you found different desktops that perform better. I still find KDE on proprietary NVIDIA to be lackluster. Does it show it's possible to do better compositing on some setups? Yes. I am guessing GNOME relies on the existence of certain GL extensions to composite efficiently. Still: if it can perform well on super low end systems and poorly on high end ones, I doubt it has to do with JS.
Even if you ignore the memory leak (and say that it's being fixed) I would argue that the overall latency of the desktop is just not there. I have used xfce, gnome3, unity7, kde, mate and budgie (daily driver) on the same machine, with the same Intel iGPU Mesa driver; gnome3 is the most sluggish. The time it takes for stuff to happen on the screen from when I press a button is quite high for my taste.
P.S. I usually disable animations.
The design of the desktop is definitely unique and admittedly refreshing to see (except the hamburger menus). However, the sluggishness just makes it impossible for me to use.
https://gitlab.gnome.org/GNOME/gnome-shell/graphs/master/cha...
Exactly why budgie desktop is fast. Uses Mutter as WM, and the gnome applications (like Nautilus, control centre).
For instance, gnome-shell starts up at around 150MB of memory usage, climbs upto around 1GB, eventually halting.
OTOH, budgie-wm stays at a cool 25-30 MB usage.
More on how the budgie thing works : https://budgie-desktop.org/2017/01/25/kicking-off-budgie-11/
Desktop environments usually rely on the most basic features.
Games or Unity desktop somehow manage to perform well with their animations with the same drivers.
As a comparison, using kivy (https://kivy.org/) I'm getting constant 60 fps at 4k (I have vsync on and full compositing pipeline to avoid tearing)
Compositing in gnome2 was never a problem (once it was stable, back in late 2009) I don't see why its should be a problem with gnome.
Now I'm willing to admin that compared to a web app, its snappy. But thats still not fast enough.
Serious question: Is your opinion of AMD based on the old radeon driver, the old Catalyst driver, or the new amdgpu driver? Those are three entirely separate and vastly different experiences. I'm using amdgpu at home and have not experienced any performance issues with it at all.
Not true. It is 100% gnome's fault. I've used gnome 3( fedora) and I have played a ton of games on the same intel laptop and I have noticed gnome lagging a lot more than any other environment I have ever used. There is a reason for that: Everything is in one thread, including plugins and the js engine and runs on the cpu( no kidding).
In Wayland, they removed this shortcut. I've since switched to KDE.
So I guess Qt's implementation is of better quality.
I'm usually not one to come to Gnome's defence, but it's very likely they did not really have any choice there. In Wayland, the compositor is the parent process of the entire session, so you cannot restart it willy-nilly. That's a design choice made by the Wayland protocol, not by the Gnome devs.
Menu's belong on the app window.
It also encourages a poor menu paradigm (imo) of nested menus. Iconography, ribbons, searchable action bars, and other innovations are more often found on OSes where the choice isn't made for the user.
It seems really silly with how UIs have evolved to use a Mac at work, with half of the menus in the app and a seemingly random other half in a disconnected set of nested menus. That's my experience at least.
Linux desktops are usually "focus follows mouse" (because the scrollwheel is part of the mouse not the keyboard), so in the second screenshot with two apps side by side and the right one in focus, moving the mouse to the menu will result in the active application and menu changing.
Focus follows mouse is an extremely useful feature which allows you to move focus without changing the relative arrangement of windows to each other (whereas Alt+Tab or relatives would bring the selected window to the front).
Additionally, a top-level menu bar is always there and requires a horizontal layout (I think?). In a window, each application can decide to hide the menu bar at will with only a vertical panel being visible at all time in all apps.
https://wiki.gnome.org/Design/Whiteboards/AppMenuMigration
I can see why the hamburger menu works for a constrained space (such as a smartphone), but for a laptop or desktop, it is absolutely terrible: place for less menu items, another layer of navigation (since you cannot cram everything in one menu), and in the GNOME case typically no visible keyboard shortcuts.
The Xerox Star had hamburger menus, but Apple Lisa and the Macintosh moved away from hamburger menus because regular menus had better discoverability and required less clicking accuracy [1]. We are moving backwards when it comes to user interfaces. Luckily, it seems that this disease hasn't really spread to KDE or macOS yet.
Unfortunately, in GNOME, the application menu was already pretty useless, because it had many items already moved to the hamburger menu or simply removed.
[1] https://medium.com/@probonopd/make-it-simple-linux-desktop-u...
It's amazing how even the mockups on that page are obviously for phones or tablets.
On the one hand, I while I don't use it anymore, I do wish desktops were more of a first-class citizen for Gnome, since it's the default environment on many distributions.
On the other hand though, I really wish designers involved in Linux FOSS projects would stop shoving designs made with smartphones in mind on the desktop. Running Gnome on a 27" screen -- and Gnome applications -- is a really confusing (and, at times, outright hilarious) experience, it's like I'm moving iPads around on my screen. Maybe this is a step in the right direction.
It’s what, a decade now, and we still don’t have screensavers back, let alone configurable screensavers.
If anything, on Windows the trend is to use the redundant window space to add more information.
I've never quite understood this decision on Linux. If anything it seems a little contrary to linux usage.
As for the reason why GNOME3 has window handles the size of interstate freeways: it makes them easier to move around with a touchscreen.
Ok, next question: Why do you need window handles the size of interstate freeways on devices without touchscreens? It's not like it's impossible to detect the current hardware configuration.
Because options run counter to the gnome dev philosophy. That can be traced back to the original Havoc Pennington rant to defend Gnome 2.0 (which was actually a controversial release just like every major gnome release since 1.4) : https://ometer.com/preferences.html
>Preferences substantively damage QA and testing.
>As someone who reads dozens of bug reports per day, and occasionally fixes a couple, I can tell you that it’s extremely common to find a bug that only happens if some certain combination of options are enabled.
>Upshot: more preferences means fewer real features, and more bugs.
Of course, what you propose isn't a preference but automatic detection, but the point still remains valid in terms of their philosophy.
>One of the hardest lessons of GUI programming is that hard coding behavior can be the Right Thing. Programmers are taught to make everything generic and infinitely flexible. The problem is that the more generic and infinitely flexible your UI is, the more similar it is to a programming language. Lisp is not a good user interface.
These are the same reasons why they canned anything related to screensavers and the likes. Gnome should not be customized, should have brand identity, should not have options whether they are user selected or automatically configured. The UI should be recognizable no matter which device Gnome is run on. Anything that changes confuses the user. If the user installs gnome on a laptop with a touchscreen, what should an automatic configurator the likes you suggest do? make everything tiny so that it's friendliest to screen space since it's a laptop and touchscreen is only sparsely used? or make everything big?
This often means UI preferences. And I’m afraid you cannot satisfy everyone’s preference. Havoc Pennington was right to a degree, but they have tended to take it too far.
This is bad writing.
* HiDPI Daemon: They wrote this themselves and what it does is if you have mixed DPI monitors, it auto-detects and conforms them to the lowest common denominator. Wayland does this by default but support for Nvidia isn't there yet and applications like Firefox don't reconform between monitors.
* Systemd-boot. GRUB is the past. Systemd-boot is life. Faster startup to desktop.
* Do Not Disturb and performance profile picker from the menu bar.
* Dat installer. They collaborated with Elementary OS' Daniel Foré on this. It's polished, easy for anyone to grok, offers simple full-disk encryption, and and creates a recovery partition in case you hose your install.
System76 has really thought through these usability improvements to bring us a desktop that anyone can use and encourages security out of the gate.
Firefox has this behavior now too.
In my experience, Chrome appears to ignore GTK-level themes entirely.
> Due to various various theme issues between platforms and HTML native theming, among other things, native theming should be removed entirely and instead replaced with internal 'native' elements in the browser itself.
Why are so many developers keen on stripping features instead of just making it optional? This isn't just some unfunded open source project.
Anyway, At home I also use 3 monitors on my desktop. Lets say I have a "normal" sized terminal open on my right hand of 3 monitors. It's on the right one because my IDE or such is sitting in front of me on the centre monitor and as a lefty I tend to "prefer" the right to the left as I sit looking at my PC. I'm sitting with my chair shimmied to the right of my desk because these monitors are 28" each and I decide to move closer to that window to see what's going on because they're 4K monitors and the text isn't huge. I'm physically about ~4 feet away at the extreme in terms of mouse movement, from that app menu on the top left of my left monitor.
As someone who tends to fill all of this screen space flatly with tiled windows as opposed to stacking and switching them, all I want is for every menu for every window to be directly attached to that window, because the "landmark" for me is the window itself.
Having to move my mouse, 4 feet across displays to get to a menu for a small window I have open and happen to be working on at that point in nonsensical.
I might have 16 terminals tiled across that display, if I want to interact with a specific one, lets say to change the background colour for identification or something, the first place I'm going is to the window itself.
My solution, is that by using Gnome Tweak Tool, I have the button on the title bar of the window instead of in the panel.
If i want to open a file in a different program than the default i have to open another menu instead of immediately being shown the other programs being associated with that filetype.
Just connecting to wireless took me approximately 10 Minutes.
Hiding the topbar automatically to maximize the screenestate on my 13" screen is not possible without installing an extension, which last time i looked was not ready for 3.28 and could crash the session if badly written.
This guy talks about how important this Appmenu is, which rarely contains useful options if any.
He claims he tried Linux Mint, but for me Cinnamon is far ahead in usability. The Mint devs actually listen to their users and work on solving their problems.
I also don't understand why they didn't pick (or better yet fork) elementary OS, which is the only good-looking Linux distro that has a different enough vision to justify the duplicate effort to create another distro.
Personally, I think that GNOME is completely unusable. Pop OS is too close to GNOME. elementary looks great but its minimalism is similar to that of recent Apple--where so many features are removed that the app stops being useful, and huge compromises are made just so the thing looks good, ignoring that it has a purpose.
I'm using an heavily-modified Xfce install and I can actually manage to be productive.
It's been a joy to use, and fits my use case well.
It has rather terrible battery life, but I tend to just plug it in wherever I go anyway.
I imagine this is the last we'll hear of this anyway
The whole rant ends up boiling down to putting form over function, which I think is backwards relative to good UX. The form should absolutely be dictated by the function.
Now, there are a couple points of (what I read from) that rant with which I do agree:
1) The insistence upon shoving everything into a hamburger menu is asinine.
2) The insistence upon shoving a mobile-first UI paradigm down desktop users' throats in general (an example of which being the previous point) is asinine.
2) It makes sense to have a visual distinction between application-level and window-level operations, and to have those operations segregated into their own respective application-level and window-level (e.g. task-level or document-level) menus.
Where I strongly disagree is when there's this strange assertion that there should only be one application menu displayed at any given time. That falls flat for several reasons:
1) A monitor may have multiple applications visible
2) A set of monitors may have multiple applications visible even when each monitor is dedicated to a single application
The solution - in my mind, at least - would be to make sure that if an application's windows are visible on a monitor, then the application's menu is visible on the monitor somewhere (and if the application has no visible windows, then feel free to hide the application's menu somewhere out of the way. Whether that menu is attached to each window or to the monitor itself can (and should) be up to the user's preference (I have no objective opinion on a default setting for this, though personally I'd probably prefer these application menus to be in the status bar for the same reasons as the author articulates). Hell, if the user wants to pull a NeXTSTEP and not attach the application menu to anything, then go for it (I probably would not want this as a default, but hey, if you're going for a classic NeXT aesthetic, then you do you). User wants all of the above? Maybe a bit redundant, but if that makes it easier for the user, then why not?
This works great no matter the form factor. Larger screens would be more likely to have multiple applications on display at once, and thus would show multiple application menus. Smaller screens would be more likely to have one (or at most two) applications on display at once, and thus would only need to show one or two application menus.
In the case of a monitor-level menu, the function here may or may not overlap with a dock or some equivalent interface element. I'd probably combine the two in that case. App launching can be done through a single Activities/Launcher button (with "pinned" and/or running-but-not-currently-visible apps being front and center). Managing running apps can be done through the app's menu, whether the app's visible (and thus would have a visible menu on the monitor's bar) or not (and thus would have a menu hidden somewhere but still readily available, e.g. in a context menu - or hell, an actually-visible menu - on the app's launcher icon).
In the case of an application-level menu on each window, I'm envisioning something like the menu Firefox (IIRC) used to have at one point: a button by the window controls (or maybe at the other end) with the application name and/or icon as the label (plus a window-specific title for the window itself). A hamburger menu icon might also make sense here to signify that this is in fact a menu, but that should be in addition to the application title/icon, not as a substitute.
In any case, if a window is visible, its application is visible. The user can quickly find the application menu and perform application-level tasks (like opening a new window) without necessarily needing to perform a separate action of switching focus to one of that application's windows (this is a reason why I agree with the author about detaching the app-level menu from the window: much easier/faster to find when it's in a consistent spot).
In summary: a hard-to-use interface is poor UX by definition, regardless of how "pretty" or "elegant" or "minimal" it may be. Good interface design means making common things easy while keeping uncommon things at least possible. If the interface is a little cluttered as a result, then so be it.
I wonder which version of Windows the author used last.
On Linux I only use Desktop and Window Managers that I can configure relatively freely and easily. No need to patronize users.
At some point they added the ability to kinda do that, (right-click taskbar -> new toolbar...), which still works on Windows 10.