Nextspace: a desktop environment that brings a NeXTSTEP look and feel to Linux
github.com
github.com
Those of us who use computers for more serious types of work generally prefer more consistency.
The goals are different.
Edit: case in point haha. The squad is working overtime to protect the precious from evil non positive words
Same for the Finder. There’s been ample opportunity to revisit the original compromises made, fix some of the behavioral and consistency issues and just not touch it ever again. That, hasn’t happened. To be fair, Spotlight and Quick Look are major feature upgrades over the initial Mac OS X Finder, but pretty much all of the criticisms from 20 years ago, well documented by John Siracusa at one point, stand. Also nobody wants .DS_Store files on their servers and it’s probably worth revisiting that decision.
And yeah I miss the in depth reviews from John Siracusa every year.
I somewhat agree. To me, the utilitarian GUI options and desktops have always had some appeal: i've found the likes of LXDE and XFCE to be wonderfully usable and still have a soft spot for the Redmond theme, alongside boring looking pieces of software that just fit in really well with the overall theme and style of the OS.
Of course, that's a subjective point and opinions might differ: even in regards to *nix, some much rather would work with something like KDE Plasma, GNOME or something else entirely, and that's okay.
> still attractive
I don't think many people outside of the "Everything New Sucks" crowd here on HN would agree there.
"Niche tricks you have to learn?" That's ridiculous. It's perfectly fine to do a great default UI that most people like without any adjustment -- but it's preposterous that there's no "go in and change just about whatever you want how you want (even if that option is in the way back)."
This is why I've been hardcore Linux for quite some time.
It’s also not really a critical gesture, it’s a power user feature like keyboard shortcuts on a desktop system. It’s there if you need it but you can also grab the scroll bar and drag it to the top to do the same thing.
> This is why I've been hardcore Linux for quite some time.
Good thing Linux has no niche tricks that have to be learned to use it.
I kid, I love Linux, but this is a weird criticism to have of iOS which, interface wise, is far simpler than any Linux distro I’ve ever used.
Linux is "Yep, this isn't easy, but it's generally well documented and talked about. It may take some work to get there, but it won't be mysterious and unexpected like Apple."
yes
they have menus, especially GIMP, the ugliest of them all, but menus are everywhere just a right click away
but anyway you are in a familiar zone: every software is made that way, except, of course, Apple.
the problem with Apple is that they are trying to make every software look like a calendar or contact list application.
that's a pretty low bar for a standard UI and frankly it means they consider their users mentally challenged.
I really don’t understand the hate for menus. Everything is named and categorised. Ok it doesn’t translate to a mobile phone all that well but I also don’t see why desktop UIs have to mimic smart phones and tablets.
For me, KDE gets it right. All the key features immediately available. Menus for advanced features. Hot keys for anything useful (with those hot keys names in menus). And terminal integration with all their core desktop applications (like file manager, text editor, etc) so you don’t have to compromise between using the GUI or CLI.
KDE also makes tiling windows easy without forcing people into a full on strict tiling WM. Something macOS is appalling at - even Windows does a better job than macOS.
But on the other hand, things like photoshop, blender and even microsoft word and general uis absolutely fall into the investment category. You have no chance to discover by accident how to create a complex scene in blender for example — “pros” will always have new tricks for you. These are very complex programs where even your hierarchical menus would overflow with info — so now you have context-dependent right clicks bringing out menus not available otherwise. And I think it is a really great design, originating from the very first GUIs! But it only makes sense for us because we have already learned over the years/decades that right clicking is a cool trick oftentimes providing more functionality. It is a cross-program convention. While available on the menu bar, alt+tab is also not an instinctual thing to press, we had to learn that as well.
Now phones did have to reinvent many things and whether we like it or not, newer generations’ first instinct will be touch based, not mouse cursor based. I also see no evil in trying to create UXes that could potentially benefit from both touch and cursor-based usage. These new conventions has to be created though and hopefully one standardish way will emerge.
No you shouldn’t. What might be single use for Bob might be a daily driver for Bev.
The Ribbon bar is a great example of that. It’s targeting people who use applications daily but I only use Word or Excel sporadically and really miss the old menus and toolbars. But there’s going to be tools I use daily that others might only use sporadically.
But maybe the ribbon wasn’t the best example of my earlier point about the UI needs of sporadic users vs regular users. Or maybe it illustrates the point really we’ll but the context should be casual users vs power users rather than the frequency of usage?
I'm sorry, but it's REALLY hard to not be snarky about this. Apple has absolutely suckered the world into thinking that "nice default interface" and "ability to change your interface" are somehow zero-sum, and there is no reason for this to be the case.
This deficient thinking has even wormed it's way into Linux, look at the current direction of GNOME. Sigh.
As an author of FOSS software myself, I’d quit in a heartbeat if someone told me I wasn’t allowed to make my own decisions about my own projects.
The point is - LET PEOPLE CHOOSE. Apple and Windows generally do not do this, Linux does. Or at least used to; this is why I'm actively hostile to things like GNOME getting more popular.
True, discoverability is an issue. Sailfish OS suffers from the same. I guess any gesture-based UI does, and on top of that iOS, Android, Windows, macOS... they all have features which the user is unaware of, and when they discover it its like 'why didn't you tell me, Ben?'. Programs do, too. Heck, you could say the same about programming languages. But in the end, it is you, the user's fault. Or is it? Perhaps that is part of the problem?
> I really don’t understand the hate for menus. Everything is named and categorised. Ok it doesn’t translate to a mobile phone all that well but I also don’t see why desktop UIs have to mimic smart phones and tablets.
Because designers instead of two distinctive UIs want a UI which is mostly the same for non-touch and capacitive touch. I saw this in the Maemo community as well. You had three types of apps (ignoring resisitive/capacitive focus, Gtk to Qt transition, CLI apps, web apps (as far as they existed) etc etc): normal/traditional desktop apps ("ugly ports"), touch-optimized apps, and stylus-optimized. That's a mess. And if you take for example iOS, that's where the majority of Apple applications are targeted for; not macOS. So they added a portability layer in 10.14 Mojave.
We may safely say stylus-based is not in use anymore. Back in the 90s it was used for resisitive based touch. Nowadays, if one uses a stylus, its on a capacitive touch screen, and it resembles a finger. So, ignoring web apps (agnostic due to CSS / responsive design), CLI apps (niche) we got two remaining: mouse/pointer based UI (traditional/normal) and capacitive touch-based UI. The one which became popular since iPhone is capacitive. It has taken over the world, so to say.
As a desktop user I use Rectangle on macOS, Power Toys on Windows, and on Linux I would like to use Sway with KDE in the future but right now I am sticking to Gnome. Gnome did spatial file manager right back in the days. Sometimes it was annoying, I think a tiling WM is a better solution nowadays, and KDE allows for that (on top of that Qt > Gtk).
Anyway, neither Windows nor Linux have an Apple Magic Trackpad 2 with gestures which work. macOS does. They're consistent. They work, both hardware-wise and software-wise. But it is not an iPhone with capacitive screen, and given the removal of TouchBar I doubt Apple will go towards such a path. You see, that the fingers cover part of the screen of an iPhone is a disadvantage of the device; not an advantage.
> True, discoverability is an issue. Sailfish OS suffers from the same. I guess any gesture-based UI does, and on top of that iOS, Android, Windows, macOS... they all have features which the user is unaware of, and when they discover it its like 'why didn't you tell me, Ben?'. Programs do, too. Heck, you could say the same about programming languages. But in the end, it is you, the user's fault. Or is it? Perhaps that is part of the problem?
This is about the (lack of) discoverability of UIs, including gesture-based, touch-based UIs. It also describes such lack of discoverability isn't a new phenomenon in software.
> Because designers instead of two distinctive UIs want a UI which is mostly the same for non-touch and capacitive touch. I saw this in the Maemo community as well. You had three types of apps (ignoring resisitive/capacitive focus, Gtk to Qt transition, CLI apps, web apps (as far as they existed) etc etc): normal/traditional desktop apps ("ugly ports"), touch-optimized apps, and stylus-optimized. That's a mess. And if you take for example iOS, that's where the majority of Apple applications are targeted for; not macOS. So they added a portability layer in 10.14 Mojave.
> We may safely say stylus-based is not in use anymore. Back in the 90s it was used for resisitive based touch. Nowadays, if one uses a stylus, its on a capacitive touch screen, and it resembles a finger. So, ignoring web apps (agnostic due to CSS / responsive design), CLI apps (niche) we got two remaining: mouse/pointer based UI (traditional/normal) and capacitive touch-based UI. The one which became popular since iPhone is capacitive. It has taken over the world, so to say.
This is about how we transitioned to a capacitive touch-based UI which has become the status quo, and how developers want to develop for both traditional pointer-based UI and touch-based UI (or how its made easier for them to do such).
> As a desktop user I use Rectangle on macOS, Power Toys on Windows, and on Linux I would like to use Sway with KDE in the future but right now I am sticking to Gnome. Gnome did spatial file manager right back in the days. Sometimes it was annoying, I think a tiling WM is a better solution nowadays, and KDE allows for that (on top of that Qt > Gtk).
> Anyway, neither Windows nor Linux have an Apple Magic Trackpad 2 with gestures which work. macOS does. They're consistent. They work, both hardware-wise and software-wise. But it is not an iPhone with capacitive screen, and given the removal of TouchBar I doubt Apple will go towards such a path. You see, that the fingers cover part of the screen of an iPhone is a disadvantage of the device; not an advantage.
This is my recent [anecdotal] experience regarding window management and GUI flow on pointer-based UI. Includes which tools I use and recommend.
I can, of course, install a shell-only Linux on my mom's computer as well, but I don't hate my mom.
iOS isn’t easy to use because Apple markets itself as special and smart, instead it’s easy to use because we live in an age where people use computers and can guess at most things.
Which is a direct descendant of the NextStep operating system.
https://czechia.kde.org/screenshots/images/medium/matthiase1...
GNOME in 1999:
https://upload.wikimedia.org/wikipedia/commons/9/94/GNOME_1....
Of course, it's a matter of taste, but GNOME and KDE looked pretty bad back then. If I had the money, I'd definitely preferred NeXTSTEP. It's just so much cleaner and better thought-out. This is what it looked like in the early 90ies:
https://en.wikipedia.org/wiki/NeXTSTEP#/media/File:NeXTSTEP_...
BTW, this is what NeXTSTEP looked like in 2000 (Mac OS X public beta):
https://512pixels.net/projects/aqua-screenshot-library/mac-o...
I love NeXTSTEP, because it was awesome for its time, but I greatly prefer the latest macOS :).
can confirm
That's the reason why I was using Window Maker back then
NeXTSTEP (v0.8) was "out" in 1989. It looked like this:
http://toastytech.com/guis/ns08.html
Whereas Windows in 1989 looked like this:
https://en.wikipedia.org/wiki/Windows_2.1x
And Mac OS looked like this:
https://apple.fandom.com/wiki/System_6.0.4
I think you might be misremembering.
The very last version of NeXTSTEP was 4.x, and was released in 1996 near the end of NeXT's life. It was basically identical in looks to 3.x. Here are some screenshots of 3.x:
https://winworldpc.com/screenshot/53c394c2-abc2-ab26-5111-c3... https://winworldpc.com/screenshot/53c394c2-abc2-ab26-5111-c3... https://winworldpc.com/screenshot/53c394c2-abc2-ab26-5111-c3...
Some shots of NeXTSTEP 4.2. https://guidebookgallery.org/screenshots/openstep42
Windows was of course presently on Windows 95. Interestingly, both Windows 95 and OS/2 had largely copied NeXTSTEP design elements, including its famous "3D" look and feel, but even little things, like the popup corner menu, practically identical close and minimize (er, maximize) icons, etc., but with a much worse graphics subsystem, and terrible fonts and icons compared to NeXT.
https://guidebookgallery.org/screenshots/win95
MacOS was not quite on version 8 yet but let's round it up. It too had copied design elements from NeXTSTEP, and likewise had a much cruder graphics subsystem with terrible fonts and icons in comparison.
https://en.wikipedia.org/wiki/Mac_OS_8
Beauty is in the eye of the beholder of course. Windows and MacOS had caught up somewhat by then. But I think it's pretty incredible to seriously say that Windows or MacOS were ever better looking (or functioning) than NeXTSTEP, at least up until NeXT was bought by Apple and NeXTSTEP ceased to exist as a product. Heck, neither 95 nor MacOS 8 even had live window dragging, something NeXTSTEP had in 1989.
I’ve nothing against iPhone (I’m even writing this answer from one) but it’s designed for consumption, which is ok, for a phone.
But I think that, step by step, we are loosing the good ol’ PC. And to me the good ol’ PC with its apparent complexity, is basically the last open and hackable (on multiple levels) technological tool left to the masses.
PCs main feature is that it is an infinite-purpose tool. You can’t be an infinite-purpose tool without some apparent (but logical) complexity.
Simplification of PCs UX is not even needed anymore since it’s being replaced by other devices for the people that just want to consume.
Plus, I love how we went from 100Mhz to 4 gigahertz and waaayyyy more parallel issue, and yet I still routinely have delayed typing output in 2021 on almost every device and computing platform I use. At least several times a day I count: 4 billion, 8 billion, 12 billion 16 billion... and then my text appears and I can resume typing.
NeXT was great. The Magnetic drive, maybe not so much. It was the original borg cube!
There's some lost lore there: the "beachball" cursor that still lives in macOS was a pictogram of a spinning MO disc. It was a lot more obvious in Mac OS X 10.0 and 10.1 before it was redrawn into Aqua-style in Jagwire.
Bias. Attractive and usability/UX are not one in the same. I find this appalling yet likely good usability.
Cool nostalgic retro project though, looks similar to first Unix OS's CDE Desktop I used 20+ years ago.
That's exactly it. Taste, you either have it or you don't.
NeXTSTEP was good enough to pass the Steve Jobs taste test. Outside of Apple products, I double anything you consider "aesthetically pleasing" could say the same.
Anyway, I guess mainstream had to experiment with UX possibilities and will rediscover the value of simple (and pretty enough) nextstep like GUIs.
One productivity hack I discovered for myself was to set my background to a solid color I like and to make my windowing experience as "boring" as possible. Id otherwise sit and tweak my UI instead of working.
This sort of project is quite possibly the next step in that optimization for myself.
I tried black, but it's easy to confuse for the monitor being off since I don't have any fixed elements on the screen.
*: Window Maker is a window manager under X11 with a NeXTStep-look-and-feel.
It was staggerging to me just how much easier it was to stop, breathe, take a moment to change my mind about the fact that some config needs changing, and instead just say "it's good enough".
My favourite, and I kinda miss it, was a neat little hack/exploit of a new Windows feature in 95/NT4 + PowerToys. It gained a new option to stretch the wallpaper to fit the screen resolution.
If you set the wallpaper to a tiny 2x3 BMP -- literally just a rectangle of 6 differently-coloured pixels -- then in its efforts to scale that, it turned the background into a cool smooth set of blends, just a wash of gradients.
It was attractive but totally undistracting, and a ~6 byte wallpaper file took an extremely small amount of RAM. :-)
Eventually, if I remember correctly, it got "fixed" and the scaling algorithm recognised sharply differing pixel colours and scaled them into GIIIAAANNNT PIIIXEEELLLS. :-(
example: https://files.catbox.moe/fr6hq9.png
There were few options, but I didn't need them. It worked fine for me out of the box. I add a few apps, a system monitor and I'm good to go.
Xfce is fine after about 10-15min's work, but Unity, for me, is set out of the metaphorical box.
And before the question arises: "Workspace is NOT WindowMaker... Workspace is written from scratch."
https://github.com/grassmunk/Chicago95/blob/master/Screensho...
These are what i noticed from the screenshot. They're fixable for the most part though, i had played around with Chigago95 at the past to make it a bit more faithful. The biggest effort was modifying Gtk's theme engine to remove the outline from the menu bar :-P. And TBH i think that for pixel perfect accuracy you'd need to modify some code, which goes a bit outside the scope of a theme.
I am in no way nostalgic for 1990s OSes -- I remember the pain too vividly -- but I think this look would be like a hangnail or a toothache: just wrong enough to be constantly irritating.
Now, 1980s OSes, when stuff was still a challenge, now that was fun. :-D
Modern hardware is drastically more powerful than what NeXT had to work with, yet it often bogs down just trying to implement a usable and responsive GUI.
Kinda, but not exactly and for some reason the author has always been vague when it comes to that.
Nextspace's Workspace has been written "from scratch" in the sense that it is a new (sub)project, however it is meant to be the full desktop experience instead of just a window manager. The window management part however is based on a fork of Window Maker, you can find the relevant files (with their copyrights, etc) under Applications/Workspace/WM. The build system has changed to Nextspace's (which seems to be just GNU make) and some glue code with the rest of the system is made.
https://github.com/trunkmaster/nextspace/wiki/Architecture-a...
Does it support OpenGL ES?
Is it easy to port a simple C++ GTK app?
If the answer to all 3 of those is "yes" then one should be able to port Solvespace to this UI fairly easy (it's one source file per platform). You know, if you want a CAD program...
Seriously, this reminds me of the worst of CDE and Motif, all not-quite-finished looking.
I ran a NextStep machine for a while (lipo is the best command name ever, IM(NS)HO) and loved it, and it looked nothing like this weird semi flat pseudo X11 ugliness.
(Only reason I switched away was that the rest of my co was Windows and loved themselves their Office docs and there was no equivalent for OpenStep.)
https://twitter.com/haltingproblems/status/14306551043491389...
Window Maker is a window manager, not a desktop.
Nextspace – NeXTSTEP-like desktop environment for Linux - https://news.ycombinator.com/item?id=22308138 - Feb 2020 (80 comments)
Nextspace – NeXTSTEP-like desktop environment for Linux - https://news.ycombinator.com/item?id=18002626 - Sept 2018 (172 comments)
With older Windows version, you got pretty GDI “trails” as you dragged a window around. Now you get blanked out elements.
For some reason, I thought that something like Plan 9 would have been flawlessly written (like their CLI counterparts) and that it would be immune to visual issues like that.
Great resources and discussion board here: http://www.nextcomputers.org
Really if you have any NeXT software you should make copies and share with the world.
GNUSTep is an implementation of the Openstep spec, so there's a good chance that that old software could be ported to Linux (or even OSX) without too much effort.
Specifically, applications were issuing drawing commands which were executed directly onto the framebuffer - there was no "draw into rectangle then another process will compose it", because GDI was written for systems that simply didn't have enough memory for that.
Essentially the process looked like this:
1. Windows GUI system figures that a specific window (this could be everything from full application window to individual control) became visible
2. WM_PAINT (iirc) message is sent to the application, to specific window
3. the handler for WM_PAINT of the specific window is triggered (there might have been support for buffering pre-existing draws, too), and executed GDI calls to draw the component (canonically using a state pointer to associated data block with everything necessary for repaint)
4. The GDI system does the drawing directly on the graphic card (either fully in software, or through accelerated calls exposed by driver)
5. Next window that needs painting gets called etc.
This meant that when the applications hanged, or simply didn't have time to process drawing requests fast enough, you ended up with "trails" due to remaining old data in framebuffer.
With WinNT6+ and DWM, GDI applications each draw into their own buffer which is then composited by DWM. This means that at worst they break their own windows' contents, but not the global framebuffer.
This is / was the case for several of the early-generation window managers, including twm, fvwm, and probably a few of the *Step window managers.
I suspect you might be able to pull this off with GNOME or KDE though I've not tried this in some time.
When restarting WindowMaker, the "naked" windows are briefly painted (without decorations) to the display, then decorations (frame, titlebar) reappear and windows resume their status (open/closed) and remain near their positions (the decoration toggle usually means they shift down and rightwards).
I'm wondering if something like this would still be possible on macOS 12 Monterey and using Nextspace as a shell?
an actual NeXTstep workspace and dock is quite something different.
NEXTSPACE is interesting specifically because it is not just window maker with some apps that emulate the look.
For coding I usually always dragged windows to the same setup, w/ i3, it's easy to automate that and control it all via the keyboard.
>For now, I want a fast, accurate, and stable version for RedHat-based Linux distributions. Currently these are CentOS 7, CentOS Stream and Fedora.
Those are the systems this thing runs on. The parent post I replied to wished they could run this on a raspi. I linked them to how to get CentOS running on a raspi, which would make the damned thing a supported configuration.
See, my reading comprehension? Excellent.
https://raw.githubusercontent.com/trunkmaster/nextspace/mast...
Sigh...
Then don't be? What is even the point of saying this on an internet message board?
In my case swaywm (and previously i3wm).
I have 3 persistent programs that tile and the rest float - when I had swaywm set to 'tile', it became such a burden to write 'for_window' clauses for every new transitory program.
If I want it to tile, it's easy enough to $mod-Space it.
On my daily driver, firefox & mythtv have their own workspaces. On another workspace, emacs gets a half-screen and 2 terminals get a quarter screen. I set them up at session start and that's 95% of what I need. After that, everything gets a floating screen - which is what many of the apps expect and need.
I also have some scripts that automatically summon floaters from the scatchpad and fit them on the screen (without changing their size, so not tiling).
It's all here, if anyone is interested: https://gitlab.com/wef/dotfiles