Battle of the retro Unix desktops: NsCDE versus CDE
- Reference: 1659007864
- News link: https://www.theregister.co.uk/2022/07/28/battle_of_the_retro_desktops/
- Source link:
Very nearly a decade ago, we [1]reported that the official Common Desktop Environment had been made open source . In its day, CDE was pretty much the unified desktop environment for commercial Unix OSes: it ran on almost every proprietary Unix and Unix-like OS there was, from IBM AIX to DEC's Tru64, even on DEC's OpenVMS.
NsCDE is on the screen of UNIX and Linux X11 display what brutalism [is] in ... architecture. Harsh, megalithic, strong and functional – not for everyone's taste
CDE dated back to the era of Windows 3 and OS/2 1, before the relative sophistication that Windows 95 delivered to the non-Apple-Mac-using world. It was a bit clunky, but even so, people liked it and were nostalgic for it. As we mentioned in the 2012 article, there was a project to re-implement it, called OpenCDE, but as far as we can see, it is no more: the OpenCDE domain is for sale, and there's been no activity on its [2]Github in 11 years.
But a new contender has emerged: [3]NsCDE , the Not-so-Common Desktop Environment. We'll let the project describe itself:
NsCDE is a retro but powerful UNIX desktop environment which resembles CDE look (and partially feel) but with a more powerful and flexible framework beneath-the-surface, more suited for 21st century unix-like and Linux systems and user requirements than original CDE.
Its developer, "Hegel3DReloaded", continues in the [4]FAQ : "That said, NsCDE is on the screen of UNIX and Linux X11 display what is brutalism in the architecture. Harsh, megalithic, strong and functional – not for everyone's taste. NsCDE does not try to satisfy everyone and does not pretend to be what everybody wants and likes." (They also apologize for their English.)
Given our documented [5]fondness for non-standard desktops , this is the sort of thing that appeals to us here at the Reg FOSS desk. Since the project released [6]version 2.2 a few days ago, we thought we'd give it a try. Pre-compiled binary packages are available for Fedora, openSUSE, and Debian-family distros – the latter in both x86-64 and several Arm variants.
When the package is installed on a distro that already has a desktop, it picks up the existing text editor, file manager, web browser and so on. We tried it on the latest Debian, which defaults to the GNOME desktop. The result was confusingly inconsistent: some apps had title and menu bars, some didn't, and so on. (The especially uncharitable might say that this is entirely representative of the underlying GNOME environment.)
[7]
The NsCDE desktop is almost uncannily like the real thing, and where it's different, it's better
We tried again on the basis of Xubuntu, which mostly eschews GNOME components. We found the result far more harmonious, with the Xfce component apps, such as the Thunar file manager and Mousepad text editor, picking up NsCDE's chunkily retro themes and looking the part, and the environment works just as well as our faint recollections of 1990s desktops. It looks the part, and even the text-based first-run setup felt authentically 20th century.
From a fresh boot, Xfce used 495 MiB of RAM. In contrast, NsCDE used just 291 MiB, a quite substantial saving. NsCDE is based on the FVWM window manager, plus elements of its own, but the result is lightweight and felt snappy.
[8]
Installation is very straightforward: download the package, install it with dpkg , then install any missing dependencies: sudo dpkg -i nscde_2.2-6_amd64.deb
sudo apt install -f
That's all. After that, it appeared in the list of available sessions on our login screen, both under Debian with GNOME and Xubuntu with XFCE.
We thought it would be only fair to contrast it against the Real Thing. The real and now-open-source Common Desktop Environment is still in active development: It's now 13 releases on from the original version 2.2.0a. Version 2.5.0 was released just one day before NsCDE 2.2.
[9]
[10]
CDE's maintainers host it on [11]Sourceforge rather than Github, and they don't publish binary packages: you have to clone the source tree and then compile it yourself. There are good comprehensive [12]instructions though, and once we'd installed the provided list of dependencies, it built without a hitch, in about half an hour of compilation time in a two-core VM.
[13]
The real original Open Group CDE works perfectly on modern distros, authentically jaggy fonts and all
We ran it, and were greeted with an eerily similar environment. Even the text-mode first-run setup screen is quite similar. CDE includes its own shell, text editor, file manager and so on, because such things were very much not standard fixtures in the 1990s.
The only things that gave CDE's age away were that all its fonts lack anti-aliasing, so they look jagged on a modern flatscreen display – the Help menu is right-justified in the menu bar. Both are just like in [14]the graphical version of WordPerfect for Linux , in fact.
The only big shock came when we checked memory usage with the free command: from a fresh boot, CDE used a whopping 892 MiB of RAM, over three times as much as NsCDE.
[15]Party like it's 1999: CDE Unix desktop REBORN
[16]KDE maintainers speak on why it is worth looking beyond GNOME
[17]The sad state of Linux desktop diversity: 21 environments, just 2 designs
[18]X.org servers update closes 2 security holes, adds neat component tweaks
We found that CDE struggled a bit in places. Its terminal emulator can't handle modern apps such as htop or [19]the Tilde text editor . We saw some screen-redraw issues in VirtualBox, too.
It's fun to experiment with vintage code in this way, but if you actually want to run a CDE-like desktop on a modern Linux distro, you'll probably enjoy the experience more with NsCDE than with genuine CDE – but they both work, and neither was hard to install.
[20]
In fact, CDE's documentation is excellent, with comprehensive manuals in the desktop, and very good build instructions, which even tell you how to add it to your login screen. NsCDE has comprehensive documentation too, most of which opens in your web browser. The resemblance between the new project and the original is amazingly close, and we're very impressed by NsCDE's fidelity.
Some people actually prefer the look of crisp fonts without anti-aliasing. If that sounds like you, then you may well find the combination of CDE and WordPerfect very pleasing. If you have a big screen and like a fairly minimal desktop experience that's highly customizable, and you're not fond of taskbars and full-screen app browsers and so on, both are worth a look. ®
Get our [21]Tech Resources
[1] https://www.theregister.com/2012/08/09/cde_goes_opensource/
[2] https://github.com/OpenCDE/opencde
[3] https://github.com/NsCDE/NsCDE
[4] https://github.com/NsCDE/NsCDE/wiki/NsCDE---Frequently-Asked-Questions-(FAQ)
[5] https://www.theregister.com/2022/05/17/linux_desktop_feature/
[6] https://github.com/NsCDE/NsCDE/releases/tag/2.2
[7] https://regmedia.co.uk/2022/07/27/nscde-22-desktop.png
[8] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2YuKyoD07KHaukQbxwokXUgAAAII&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[9] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YuKyoD07KHaukQbxwokXUgAAAII&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[10] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YuKyoD07KHaukQbxwokXUgAAAII&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[11] https://sourceforge.net/projects/cdesktopenv/
[12] https://sourceforge.net/p/cdesktopenv/wiki/LinuxBuild/
[13] https://regmedia.co.uk/2022/07/27/cde-250-desktop.png
[14] https://www.theregister.com/2022/07/20/wordperfect_for_unix_for_linux/
[15] https://www.theregister.com/2012/08/09/cde_goes_opensource/
[16] https://www.theregister.com/2020/11/16/kde_maintainers_speak_on_why/
[17] https://www.theregister.com/2022/05/17/linux_desktop_feature/
[18] https://www.theregister.com/2022/07/13/xorg_servers_updated/
[19] https://www.theregister.com/2021/12/17/tilde_text_editor/
[20] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YuKyoD07KHaukQbxwokXUgAAAII&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[21] https://whitepapers.theregister.com/
Re: You can not be serious, man ...
By "relative sophistication" I assumed that was comparing it with DOS.
Pff.
Open Look or I'm not interested.
The main appeal of openlook was that it was dead easy to create your own menus.
As for icon handling - yes, that worked great on my Sun4/110 with a 19" monitor, but less so on a poxy Linux PC, where it turned out to be a complete waste of screen estate (as, BTW, all 'modern' window managers are - when I had my last aesthetic and ergonomic clash, I sang "I really don't like it, fuck the task bar".)
RAM usage
-> CDE used a whopping 892 MiB of RAM, over three times as much as NsCDE.
This I do not understand. Back some time around Y2K, I ran CDE on Solaris 7 on intel. The machine had 64MB of RAM. I really don't understand why modern OSs seem to need 10 times (or more) memory compared to running the same thing from 20 years ago. Where does all this memory go?
Re: RAM usage
"Where does all this memory go?"
It went agile.
Re: Where does all this memory go?
layers and layers of shims and emulation, would be my guess.
Re: RAM usage
I suspect a huge chunk (but not all!) of it goes with high resolution screen support. 640x480 with 8-bit colour was fairly typical at the time.
Re: RAM usage
Well... a 8k monitor is 7680 * 4320 * 32bit = 126Mb.... so only 500Mb more to explain away!
Re: RAM usage
I had 1600x1200 back then. I can't remember if it was 65k colours or 16 million. But it wasn't 256 colours.
Re: RAM usage
For early '90s my monitor could do 1600x1200 but my computers could only do two colours at that resolution. I had to drop to 640x480 (and wait a few seconds for resynchronisation) to get 256 colours. It took years and several house moves with that 50kg monitor before I could use 1600x1200 with 2^24 colours. You must have had some top notch kit back then.
Re: RAM usage @m4r35n357
Don't know what you were doing back in the mid-90s when CDE was the default. but I would say that the minimum for a UNIX workstation back in the day was 1024x768 at 8 bit colour, but the majority of the systems I was using at the time had 1280x1024 with at least 16 bit colour visuals.
The 640x480x8 may have been a common resolution for PCs, but not for UNIX workstations.
On the subject of where the memory went, it was not normal to have shared memory for the processor and graphics adapter. Anything running on a true workstation would probably have it's own display adapter memory, which is often what limited the resolution/colour depth. So the lost memory was probably not down to the screen.
For the version using 800+MB, I would suggest that the author should look at the options used to compile the source. I'll bet that the binaries are not stripped, the diags. are all turned on by default, and the optimizer was not running aggressively enough.
In the mid '90s, we had CDE running to X-Stations, with about 12 per IBM RS/6000 320H each of which only had 80MB of memory, with some remaining free for other processes. So CDE was really not that heavy.
That brings back memories (some almost positive) of my time spent working on HP-UX workstations at uni back in the mid 90's - hateful things with unergonomic mice and a propensity to crash far more often than any other system I had access to at the time, but generally always available to use (presumably because of these traits) which was handy if all the PC labs were fully occupied and you needed to get online to check something in a hurry.
It also makes it clear just how far we've come (fallen) between those days of UI design and what our eyeballs are forced to deal with these days - when you find yourself looking at a screengrab of something intended to replicate a 30 year old UI, and think "my god, just how good does that look!", you know there's something badly wrong with modern UI design...
Those monitors did keep a room warm though.
Digital alchemy
"Its terminal emulator can't handle modern apps such as htop or the Tilde text editor".
This is a problem of lack of understanding of terminals and terminal emulators by the system administrator. Similar problems are faced by using Putty or terminals on Linux systems to access proper legacy UNIX systems.
The issue is that not all terminal emulators are vt220, xterm et. al. compatible, and in fact xterm is not a very safe setting for the TERM environment variable used to condition the terminfo entries, as there have been just soooo many mostly compatible, but ultimately not the same versions of "xterm" across the years.
I believe that the correct setting for TERM with the CDE terminal emulator should be "dtterm", but I would suspect that many Linux systems do not have a dtterm terminfo entry, so fall back to xterm, or xterm-256color or something similar. This will almost certainly not match the capabilities of the dtterm terminal emulation.
The common problems are:
Function keys not being recognized correctly
Non-7-bit-ascii characters do not work correctly, especially box draw characters
Any colour support will be very spotty
Some cursor movement operations do not work correctly.
Many of these problems can be fixed at one fell swoop, by identifying the location of the dtterm terminfo file, and making sure there is a copy in the appropriate place for the hosting OS that you are using (unless, like me, you add to the terminfo database with local additions).
The one that will possibly cause a problem is the font that is used, as I'm pretty certain that you will have to have iso8859 fonts in your font path, rather than just UTF-8 ones, unless the version of dtterm on NsCDE has been altered for UTF.
I've just fired up an AIX 5.3 system, and installed an original version of CDE on it, and then run a dtterm via X11 onto a RHEL 8.6 system, and things work pretty much OK, although I don't have "-dt-interface user-medium-r-normal-m" at any size in my default font path.
You cannot imagine how frequently I find I want to take a UNIX or Linux administrator who accepts the wrong characters for box draw or unrecognized function keys as something normal, and try to shake some knowledge into them, because it is nearly always user error, not a problem with the system! UNIX was written to allow *LOTS* of different terminals types to use the system correctly, and Linux mostly inherited the capabilities.
Things have become both more simple, while at the same time more complex with the commodification of UNIX-like OSs, such that what was once well known appears almost like alchemy nowadays.
Opening a window on the windows
> If you have a big screen and like a fairly minimal desktop experience that's highly customizable, and you're not fond of taskbars and full-screen app browsers
It would be most enlightening if it was possible to profile all the various desktops to see exactly which features users actually used.
I have a sneaking suspicion that the list would be quite short: open a window, resize it, move it, run an app in it, close it.
Features after that being little more than prospective security holes.
Re: Opening a window on the windows
Some people do have a very different work flow: mostly I use keyboard shortcuts to switch between virtual desktops. Desktops are most often a full screen browser or four terminals. As all of these default to the right size and are automatically placed to not overlap I almost never move or resize windows.
I suspect most people only use a fraction of what their environment provides but there may well be plenty of strange people who do not use the most popular subset and would be upset if their favourite features went missing.
Re: Opening a window on the windows
"Window manager" describes a "desktop" for me... I'm trying to track and manage what I'm doing with all those windows. Where's all my EMACS windows? where's all my browser windows? Where's all my xterms? Where is my Thunderbird email window?
How quickly can I switch to the EMACS editing /etc/hosts? Where is my last Google results browser session?
Some of the HUGE things that pisses me off about Windows 10 at work is that A) it takes 6-7 seconds to alt-tab back to a window and 2) when you alt-tab in Edge, it switches between browser tabs, not applications! don't screw with the meaning of a very frequently used key! So Windows fails on both consistency and speed.
Edit: this is obviously why I hate tabbed applications... I want to be able to configure my damned window manager and be done with it... not be at the whim of every asshole with a tabbed window toolkit to decide how he wants it to behave and doesn't make it configurable.
before my time
but unix and a desktop environment? I thought it was cli all the way?
Paris doesn't know either...
I await the schooling to come!
You can not be serious, man ...
I can't believe someone actually wrote "...before the relative sophistication that Windows 95 delivered ..."
Remember the WPS that came with OS/2 2.0? (Alright, we subsequently had to live with CDE inspired disimprovements which no one had asked for.)