I just checked, and GNUstep is pretty much alive. Even that change was caused by me wanting to try tiling window managers, not support failure.
It's a little unsettling that there are two ways to get a stable experience: using window manager from 1998 (OK, ok, WindowMaker is still maintained-ish, in fact a very tiny portion of the code written after 1998 is mine :-) ), or getting used to a workflow akin to that of Windows 1.01 (i.e. a tiling WM).
On the bright side, though, yeah, at least we have a choice!
If you don’t like KDE then use LXCE or Enlightenment or any of the other Linux desktop environments that have been pretty static (and have been even longer than KDE).
So yeah, there actually is a lot of choice on Linux and not all of it looks dated.
Not really, unless it's a tong-in-cheek remark. Tiling window managers use virtual desktops and programmable positioning of windows to produce a predictable layout. Windows 1.01 had neither of those.
Add muscle memory to it and, if you can endure the learning/customization curve, you get a very efficient window manager. Whenever I'm alt-tabbing in search of windows in Windows or OSX I feel I'm using old software.
https://github.com/Airblader/i3
The setting
smart_gaps inverse_outer
Would give you a configurable empty border only when you have a singular window ensuring that the single window isn't so large as to be hard to read comfortably.As far as windows being too small to read comfortably I'd advise you to place no more than 2-3 windows per workspace. For the benefit of those who don't use i3 workspaces are per monitor.
Given 2 monitors you can easily show 4-6 windows which is easily enough context for about any task.
As for this part:
> As far as windows being too small to read comfortably I'd advise you to place no more than 2-3 windows per workspace. For the benefit of those who don't use i3 workspaces are per monitor.
Yeah, this is pretty much where the fiddling comes from.
I don't want to use 2-3 windows per workspace. I sometimes have to work on a piece of code and have 8-10 PDFs open for it -- datasheets, reference guides, schematics and whatnot, at which I want to be able to look from time to time. Sometimes while I'm also looking at the code, sometimes in full-screen (because I'm looking at a big diagram). Sometimes I need to look at a part of a diagram while I'm looking at the code. So I need them to be in the same view as the code. All in all -- including specs, standards, the code window(s), a few xterms -- I easily have 12-15 windows open in order to work on one thing, and it's not really optional.
i3's tabbed view is sort of what I wanted for the PDFs but it's annoying that, if you want to switch to the right one using nothing but the keyboard, you have to go through all of them. You go back and forth, not to the Nth tab (or at least you couldn't back when I tried i3).
That's actually what I liked about ratpoison. Instead of trying to be smart, it just let me multiplex my screen, which is what I really wanted.
I could sort of bend my workflow around all this and, through a complicated set of chords, make use of the whole thing in a productive manner. However, it was anything but convenient. I'm way happier with a floating WM and do a lot less fiddling with the windows.
Of course, I typically end up sticking a terminal or editor or chat window or music player or something in there anyway, because why not?
I have 2x4K monitors at home. Moving to i3 is the best thing that happened to me.
You still have to open them and move them around, especially if you do change your layout eventually.
I actually didn't have that problem when I was using ratpoison, but some applications (looking at you, Eclipse...) don't really work with it. (I know about stumpwm, and I do know Common Lisp, but alas, we just don't get along too well). When I moved to i3, which is greedy with screen space, I actually wrote myself a couple of scripts to handle this situation "gracefully" (automatically pad the screen with empty X11 windows, automatically un-pad them when needed) and bound them to a couple of key combinations.
I mean it sort of worked but at one point I decided I want to spend more time doing fun/useful things and less time hacking on my window manager.
herbstluftwm also has containers something similar
I used to have a screen shot showing me running something like 5 different GUI apps on a Linux system, all of them trying to open a file, each with a completely different file chooser dialog. That's because one app used Motif, one use GTK, one used Qt, and I have no idea what the others used.
https://i.imgur.com/JG7I2hu.png
Odds that it's even worse since this was created?
It's nice, actually; it's finally making the file selection process feel uniform. Too many Java apps are still using random Swing dialogs though...
The push to force sandboxed apps to use the system dialog had the nice side effect of forcing many GUI APIs to actually use the native file pickers, which meant that a lot of non-app-store apps started to use the native file picker. But Java apps don’t automatically get that upgrade.
But they all perform the same function of choosing a file right? What does it matter if they all look the same? I don't understand why anyone would care so much whether the file choosing windows match eachother visually between different apps. As long as I can pick a file effectively, I wouldn't really care if the app had pink sparkles or something. As long as it does what it's supposed to.
File choosers typically allow one to bookmark commonly used directories unfortunately this is per chooser purely for reasons of lack of coordination.
Further despite people asking for it for the last 15 years the gtk version doesn't have a very good way to visually pick out an image in their picker. To date the only good way to pick out an image in a gtk app even GIMP is to open a file manager alongside the application and drag the file into the application or file chooser.
I find it unlikely that most people figure this out.
It's that some have a file type filter and some don't. Some show all files while others hide dotfiles and provide a checkbox to show them. Some show files and directories in the same pane while others show directories in one pane and files in another. Some show ".." in their directory list and you go up by opening that, others do not show ".." and provide a button for going up.
With windows you have an API provided by windows for ui programs, there will be more consistency between apps because of this.
Linux providing a standardized ui API would go against the core philosophy of it and you're not likely going to be able to convince every developer making gui apps for linux to agree on and use only one graphical toolkit.
Like with anything, every os has tradeoffs and downsides, personally I prefer modularity and control over my system to ui consistency.
You do this by having several available implementations of the API as dynamic libraries--one using Motif, one using GTK, one using Qt, and so on.
There would be a per user config setting specifying which implementation the user prefers. If a program wants to put up a file chooser, it can read that, then load the right library and use the API. A program might also have per program settings to override that, to handle the case where a user really does prefer, say, GTK file choosers for most programs but Qt file choosers for some specific programs.
This gives you more UI consistency, makes things more modular than having every program include file chooser dialog code, and gives more control to the user, and doesn't interfere with the developer choosing whatever toolkit they prefer for things other than standard dialogs.
OK, now who's going to do this? At what level would this be implemented at? Would this be at the windows server level? Would I have to pull in GtK, motif, qt and every other library that this API will rely on just to install Wayland or xorg? Will it be at the window manager level? Will I need to pull in GfK, qt, motif etc. for every desktop environment and window manager relying on this API? Which versions of these libraries will this API rely on?
The last graphical app i wrote, I used dlangui for a GUI, should I have been forced to use Gtk or qt despite them being heavier and more complicated than what I needed?
char * result = dlangui_choose_file(...)
you would do this instead: char * result = 0;
char * (*standard_choose)() = get_standard_choose();
if (standard_choose)
result = (*standard_choose)(...);
if (result == 0)
result = dlangui_choose_file(...)
get_standard_choose is a small function that would:1. Check a standard set of configuration locations to see if the system administrator or user has configured a standard file choose dialog [1].
2. If a standard file choose dialog has been configured, the configuration information includes the path to a library that implements it. get_standard_choose() loads that library, gets a pointer to the standard_choose() functions from it, and returns that pointer.
3. get_standard_choose() returns 0 if no standard choose dialog is configured or it runs into problems trying to load it.
If the user wants GTK or Qt file chooser dialogs instead of dlangui file chooser dialogs, you don't have to use GTK or Qt. The user installs a GTK or Qt file chooser library and points to it in their standard dialog configuration.
(I'd expect at some point that toolkits like dlangui would incorporate get_standard_choose() functionality themselves. After that, you'd then just write
char * result = dlangui_choose_file(...)
and it would deal with using the user preferred dialog if available. It would be completely transparent to the programmer using dlangui).Same idea for other common dialogs, like color picking, printing, and font selection.
[1] Probably something like check an environment variable first. If it doesn't find a match there, probably then a config file in $XDG_CONFIG_HOME. If no match, then something in /etc.
Inconsistency comes not from modularity but rather from incompetence.
Everyone doubleclicks anyway though.
Overall I'd never claim that a Linux desktop is a "Just Works" proposition, but judging from the issues my colleagues have with macOS, I wouldn't trade my Linux problems for their macOS problems. I can't speak much to Windows anymore, but I can't imagine it'd be all that much better.
(Full disclosure: 2004-2009 I was a core Xfce developer.)
- oh look, apple decided to change their security model. Now old apps don't work. (necessary to prevent malware).
- oh look, no more 32bit programs.
- oh look, you plugged in a monitor CRASH.
- oh look, you plugged in a charger... CRASH.
- oh look, a touchbar.
- let's all pay a $1000 premium for hardware.
On OSX backwards compatibility isn't a concern apparently.
Windows problems range from:
- Who installed this thing? And to where? WTF is it?
- Why is there 2+ interfaces for all system configurations. 1 of which is pretty but incomplete, and the other hidden and terrible but complete?
- Why does it insist on using edge and bing for fucking everything?
This is one of the most absurdly awful things in Windows 10. Trying to disable a network adapter requires navigating a maze of useless New Design(r) config pages (where, for example, the ONLY interaction is "set connection to Metered mode"), complete with broken back buttons that take you somewhere arbitrary.
Worth it IMHO. I have a Mac mini that I bought on a whim while a Windows desktop was in the shop.
I’ve had it six years now, and in that time I’ve had three Windows machines die.
I also use a Linux laptop which runs great and "just works".
Of all the complaints, that one I totally understand the rationale for. It's an iterative design, they simply haven't finished building the new one yet. Until they do, I ignore it.
Xfce allows me to mimic XP quite well. Drag the bar to the bottom of the screen and setup a dark blue background and I felt at home. I like feeling in control of my desktop experience. The switch to GTK3 was not better but GTK2 is getting stale so I understand..
I was on Linux for about 20 years, and now I've been on Mac for 6. Of course, I've had to deal with Windows all this time, too, for gaming and work. (I was even certified on NT.) Anyway, I've no doubt that Windows is pretty stable by now, but the glorious configuration that my company sets up on their laptops starts bugging us to reboot after 5 days, just because it's been "a long time." I blame Microsoft for making their software cater to people who cut-and-paste from Google results to create IT policy, and creating an ecosystem which leads companies to do things like this, and, say, locking the desktop background, of all things.
And you can keep Powershell, along with WSL.
Sure, Apple doesn't play well with enterprises, because they start with the fundamental assumption that the device is PERSONAL, and you're not using someone else's loaned device. I'm very glad for this. (And I'm never giving my company permissions to remotely wipe my devices with Mobile Iron.)
I'd really love to see OS usage percentage numbers with corporate use factored out. My gut feeling is that Windows has absolutely nosedived for personal use over the past few years, and it's only corporations that are keeping the numbers in the air. Half the people I know don't even have a computer, and are just using their phone or an iPad.
Well, it plays too well actually. At my current job and at previous one we had a choice Mac or a Windows laptop.
Mac ones were alway much more rigid with restrictions, less hackable (e.g. Installing Linux side by side was impossible on Mac, because it broke macos somehow as a result of enterprise drive encryption).
As for installing Linux, that should be fine as long as you're not pulling company data on that - and it should be gated with whatever endpoint protection there is for Linux.
Not like Windows is especially immune to this, either, though in Microsoft's defense they actually listened to the users somewhat and backpedaled to a proper Start Menu instead of continuing to shove Metro down everyone's throats.
For example, I don't want GTK-3, I only have GTK-2 installed. It could be all fine and dandy if, one after another, year after year, applications wouldn't give up their GTK-2 backend to only maintain/develop their GTK-3 one. The set of (up-to-date) applications I can run decreases, despite the fact that, as Alxlaz, I still run WindowMaker :-)
On Qt side, there are applications which requires an exact version of Qt (not only the main version Qt-3/4/5, but the point version), or require KDE, or require an exact version of KDE. If you want to install a new application, you have to go back in its history and find a version of the application that matches your installed library version. Or install another Qt version and hope it doesn't break other programs.
---------
A bit different, but many years after my last try, I tried to use Scribus. I quickly remembered why I had not really used it long the previous time: text input is still convoluted and not WYSIWYG, which is a bit annoying (understatement) for this kind of program where you precisely want to see how text flows. So I gave a try to the new branch (which BTW required a new version of Qt, if I am not mistaken), hoping that they finally did something about it after all those years this program exists. Alas! Apart from the underneath Qt version change, the visible changes were: icons are now flat and monochrome (i.e. you cannot recognise one from another), keyboard shortcuts have been slightly and viciously modified (what was F3 is now F4, stuff like that... but why, oh why? what is the freaking point of doing that?), and it crashed on me after 5 minutes.
---------
So basically, even if you'd just wish to have a few bugs fixed, and possibly a long-time missing feature finally added, by getting the new version that does this, you are forced to follow the crazy flow of adding or updating all libraries/toolkits/environments, because maintainers have decided it was way more interesting to rewrite their stuff for the umpteenth time with a different/new back-end (toolkit, environment), rather than polishing their existing, mostly fine for the job, code base.
It is exhausting, I am, too, really tired with that churn and constant breaking.
gtk2 is deprecated, so it makes sense that any actively-supported applications are moving to gtk3, which is still supported. By refusing to use gtk3, you're locking yourself out of not only newer applications that were only written for it, but older ones that have moved to it.
Why do you think an actively-maintained application should stick with a deprecated toolkit?
>On Qt side, there are applications which requires an exact version of Qt (not only the main version Qt-3/4/5, but the point version), or require KDE, or require an exact version of KDE.
In all my years, I've never seen this with an actively-maintained application. Of course, I generally stick with stuff that's available in my distro repo, so I never have any trouble.
Also note that with both gtk3 and Qt5, both these toolkits have been around for something like a decade now. Looking at Wikipedia, gtk3 3.0 came out exactly 9 years ago (10-02-2011), and Qt5 came out on 19-12-2012. Neither of these is at all new. I will grant you, though, that gtk3 is now already headed the way of the dodo, since they've announced gtk4. Personally, I'm not a fan of gtk and prefer Qt as it seems much more stable and better for GUI development anyway, and I don't see anything about Qt5 being phased out. Qt is also used a lot in embedded systems in industry, unlike gtk.
>the visible changes were: icons are now flat and monochrome (i.e. you cannot recognise one from another)
That's all the rage these days. I'm not a big fan either, but it's what most users want. This isn't a brand-new fad either; it's been going on for years now. I do wish I could try living in the alternate universe where UI design mostly stuck with way things were done in the mid-2000s.
I understand the frustration with tech , I also went for a short while to Windows10 then I went back to Kubuntu and not even dual booting anymore, the largest frustration I have at this moment is sometimes my video card crashes and I am not sure if is the NVIDIA driver fault or is an hardware issue and on top of it people would say "Why did you bought NVIDIA ?, AMD is better" but at that time I bought my card AMD drivers were shit and most Steam Linux games only supported NVIDIA.
I would also blame developers, the open source and proprietary software developers want to use latest and coolest thing, then sometimes they are forced by deprecation of old tool kits to change (at least sometimes GTK2 apps are ported to the better Qt toolkit)
Linux desktop is a horrible UX. But is also an amazing server environment.
Also windows can run on partially broken hardware and still not crash. Which is incredibly impressive.
Honestly, its DPI scaling and windows management with 4K monitors. Both Microsoft and Apple are still not perfect in this area so I assume its an extremely hard problem. The other issue is not all programs, like Daws and video editors, have a Linux version.
I get your point, but I do think this has actually occurred. Remembr when 7 updated to 8, and when 8 updated to 8.2 (I think) and when 8 updated to 10? I didn't use Windows much back then, but I really remember those three updates.
I forget which, but one unexpectedly took nearly 4 hours. Like an entire morning waiting for updates to finish, unable to use that computer, which was the one computer hooked up to the beamer, but it had to be updated at some point. I actually wrote a "windows update game" during that time, where you had to play a platforming hourglass, collecting percentages of progress. If you got to 100% it said something like "Restart to finish upgrading", then it started at 0% again, and you got ONE point. I think somebody got a high score of three.
And the first update completely changed the UI, removed the Start Menu (or hid it?), made icons into "tiles", some of which were "active" (?), which is to me a lot like you're describing. I was truly lost in Windows for a while. On all sides, not just the UI, but the settings, the folders.
And I still don't know what I have to do in Windows to disable ALL the telemetry and advertising in menus. Is it still possible? It's probably about as hard as setting up an Ubuntu install. And it's keeping me scared away from Windows, just like setting up Ubuntu seems scary to some other users.
It's not that I don't like Windows, like you say, if it were 2000 (or XP, or 7, I've also gotten used to those) ... actually you're right that 2000 might have been the last Windows that I wasn't slightly scared about (spying on me, even though what we considered "spying" in the days of XP, are like Tuesdays now).
There's this one thing that will always make me go back to Linux, however. And is that (perhaps the way I use it?) Windows has a "honeymoon" period that is one or two years, after that it just degrades in quality, responsiveness, just getting slow. And I have no idea how to fix that, clean it up, or whatever, besides installing Linux. Which makes the thing run smooth again. The only thing that seems to slow Linux down after a while, is the browser because the web just keeps getting heavier.
But I don't hate using Windows for those 1-2 years :) Especially now they got better command line stuff, who knows.
I've used Linux for about the same time and honestly, I understand it completely. I would switch, were it not for muscle memory and for the fact that at least 50% of my work involves systems-level development for Linux (mainly embedded stuff, so a lot of cross-compiling). In the last five or six years I've come to dread the Linux desktop and its constant churn of rewrites and UX "improvements".
I have a Windows machine that I use for work the other half of the time and honestly... it's great. Yeah, the occasional update breaks some fringe feature. But the chances of something like waking up to the announcement that Microsoft is removing desktop icons in the next update and you can just install this third-party application for it (which will break with every update) are practically zero.
Microsoft puts out a lot of broken stuff (some of which slowly morphs into non-broken, useful stuff over time, e.g. Powershell), but you can mostly be assured that, if something works today, it'll work ten years from now, modulo some registry hacks. That's incredibly valuable.
I really don't care about things like UI consistency and whatnot -- what I do care about is stability and functionality.
Edit: tbh, the main reason why I'm not switching today is that I don't really trust this whole OS-as-a-service model. If it were Windows 2000 instead of Windows 10, I wouldn't think twice before switching, but these are different times.
(More edit: please realize that I'm the same person who posted this reply: https://news.ycombinator.com/item?id=22288917 , yeah?)