121 comments

[ 4.3 ms ] story [ 201 ms ] thread
https://en.wikipedia.org/wiki/X_Window_System

"X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984.[3] The X protocol has been at version 11 (hence "X11") since September 1987."

FWIW the XML specification has been at version 1.1 for 17 years as well.

The CEE/7 standard was last revised in 1983 and is used by hundreds of millions of people every day.

> the XML specification has been at version 1.1 for 17 years as well

ISO 8879 (SGML), which XML is a subset of, was ratified in 1986 already, making it closer to X11.

Also, you may want to check what XML 1.1 as opposed to 1.0 is about [1] - the vast vast majority of XML is 1.0 and has no reason to ever declare itself as 1.1 and in fact, every reason not to.

[1]: <http://www.ibiblio.org/xml/books/effectivexml/chapters/03.ht...>

Meanwhile, Kerberos (also Project Athena) has been at version 5 since September 1993.
The reason it's been stuck at version 11 is because X11 added an extension mechanism to the protocol and all improvements since have been added as extensions.
It was fun to read the recommendation to switch from W to X. I guess we are now back to W :P
According to Lindy's Law this means I'll be ready to switch to Wayland no sooner than 2065.
I’ll be really surprised if Wayland is still popular when X is really ready to be tossed out. But surely by 2065 somebody will have come up with an entirely new successor.
I'm switching to Wayland on the New Year's Eve of the year of Linux desktop
Prior comment was 2065, so there is stilla good 41 years to get it right.
(comment deleted)
“The future is already here – it's just not evenly distributed." (― William Gibson)
X was about 25 years old when Wayland came out.

By that timeline, we’re only a decade from Wayland’s successor protocol being released. It may, optimistically, have had five entire years of being the unequivocal standard by then!

Instead of looking at how long it will take Wayland to mature, let's look at how long X has been obsolete (for some applications): for example, Apple rejected X way back in the 1990s for use in its new OS (which they released to users in 2001).

In contrast Wayland is mature enough that ChromeOS decided to go all-in on Wayland, and Microsoft uses it too, for WSL2.

ChromeOS has been using Wayland in Crostini and ChromeOS's Android emulator for years, but only in the last year or so have versions of the OS rolled out to ordinary users that use Wayland also for the main UI (browser and task bar and such). Till then ChromeOS used a hand-rolled graphics system for that.

Also Wayland was embraced many years ago by makers of graphical user interfaces for cars.

Apple didn't reject X, they acquired NeXT, which much earlier chose Display Postscript over X11 since Jobs was big on wysiwyg. The paperless office, promised decades ago, is finally here and with that wysiwyg a demand of the past. X had many competitors and outlived them all.
There is an Slashdot comment written in 2003 by Mike Paquete, who was working on graphics for the Mac, titled "Why Apple didn't use X for the window system":

https://developers.slashdot.org/comments.pl?sid=75257&cid=67...

Note that the title of the comment implies that Apple had the option of incorporating X into OS X, as do these next 2 quotes:

"The window system . . . is graphics model agnostic, working equally well with QuickDraw, OpenGL, the Quartz drawing engine, X11"

(The final sentence) "Been there, evaluated that," where "that" is a reference to X11. (If X11 was not ever an option for OS X, there would be no need for an Apple engineer like Paquete to evaluate it.)

Although it makes points similar to the point you make (namely, some at NeXT or at Apple considered it important for hardcopy to look like it did on screen), Paquete's comment gives many other reasons that have nothing to do with hardcopy for why X was lacking for Apple's purposes.

To summarize, Apple rejected X back in the 1990s for many reasons, most of which cannot be dismissed as demands from the past.

I salute your ability to discuss this topic irreligiously and from a place of knowledge.
> Anyone who wants the code can come by with a tape.

Made me smile.

Back when the t in tar meant something.
Ha, I didn't know the name came from incrementing W. Surprised I haven't seen a Y window system. A quick search shows that there have been several, but none successful obviously.

Edit: it gets better. Apparently W ran on the V operating system.

IIRC, Symbolics' "Dynamic Windows" window system (later CLIM) was originally called Y windows.
They could have called Wayland "Y," but we can be grateful they didn't. The Wayland jokes and abuse asking "why?" are already pervasive.
Sometimes I tell people that "vi" is the successor to earlier editors "v", "iv", and "iii" and a couple others I don't remember the names of.
I have come across projects called X12, Y and Z, but I don't think any amounted to anything.

20+ years ago, I joined a group of open source devs wanting to build a successor to X11, and I suggested "Umlaut" as a working name because of Germanic languages' alphabets typically had letters with umlauts after 'Z'...

However, we wanted different things, so we disbanded. I wanted to push network transparency with object capability-based security and SVG-like vector graphics. Others wanted something more similar to what Wayland is today, or even simpler: with 32-bit framebuffers like what SerenityOS has. Today I think perhaps a capability-based windowing systems would best be built on top of a capability-based OS — building it on top of Unix/Linux would be a kludge at best.

Turned out to be adequate for experimentation.

I think it's interesting they had a CLU binding before C. https://en.m.wikipedia.org/wiki/CLU_(programming_language)

OMG. We used CLU in a software engineering. The compiler (really a CLU-to-C translator I think?) was sooooo painfully slow. Can't imagine using it for anything moderately complicated.
For years, I had seen X11 desktops in magazines before Linux and the Intel 80486DX-33 permitted me to first boot X11 on my own machine in 1992 (after installing it from fifty 3.5" floppy disks, which required two trips to the nearest university, as the first time one of the disks was faulty).

Still remember that feeling of first typing xeyes & and xlock & and inspecting the result on that 14" color CRT screen (I was beaming more than it, perhaps).

Then by winter term 1996 I owned a refurbished HP9000-715/75 running HP-UX 9.03 (also X11-based), pre-owned and via uni discount and still the price of a car at the time... the only undergrad on my corridor who had a workstation in the dorm room (its 21" CRT filling most of the 9 m² space that was not occupied by the bed). My next goal then was to get all the manual books (X11 and HP-UX) - still got 'em.

HAPPY 40th BIRTHDAY, X11! And thanks to the X11 authors for making it available for free - imagine, X11 supported mice with 16 buttons already back then!

I don't guess you went to Texas A&M. I remember about '96 we scanned the residence hall local network for XDMCP services and discovered the one weirdo with a HPUX box.
Ha, this brings back memories. Around 2003 I used either XDMCP or plain X11 forwarding over SSH to access my dorm room computer while at home visiting my parents, and later got a letter from school IT warning me about abusive network traffic.
> the only undergrad on my corridor who had a workstation in the dorm room

In 1993, I worked my way up to becoming the lab manager for the residential computer lab in my dorm (basically a bunch of Macs for people to use, as we were the dorm farthest away from the library's undergrad computing center). I did that so I could put my SGI Indigo XS24 directly onto the 10Base2 Ethernet, rather than connecting it via the university's phone system in my room using PPP at 57kbps.

I went back for a reunion about five years ago and the lab was still running (although in a different dorm now). I talked to the kid running it, who was nice enough, but he said nobody used the lab really, and he didn't know the first thing about networking. He was a gamer who "wanted to learn more about Linux". I tried to keep an open mind, times have changed, and he was eager, but boy was it depressing that the old culture is long dead.

When I was a student I did find myself longing for a kind of cozy computer lab experience but it was basically impossible.

I consider myself as part of the one of tbe last generation where people had to use a computer (e.g. I remember windows XP and even older somewhat vividly but never owned a non-smart phone) and even then I was sat next to people who could barely type so could never really do anything without being taken out of the zone.

The culture does exist but the average is so mediocre/disinterested that they don't bother (there's no reason to) "going" to the computer anymore. I think that's slightly sad in, nerds are much more social than most people realise.

Thinking about it I did get a little bit of that experience at school in that I learnt a lot of the basics of programming by playing with compiler explorer in the back of my computing and D&T lessons.

I was the student manager of all Unix systems on campus in the late 90s. Included labs of Sun and HP workstations. Managed some system connected to various lab instruments around campus, too. We stood up the first Linux lab around 1998, but most students preferred the Solaris workstations. People were just starting to put their own Linux systems on the dorm networks. It was still pretty rare for most students to even have computers in their dorm at the time.

Even supported the last remaining VAX because no one else dared dig into the wall of manuals to figure out how it worked.

Was a fun time.

Very similar to my experience! By the time I was a senior in '94, I was the student employee for the University Computing Center's Unix group and had to run around fixing all the workstations on campus and spent a lot of time administrating the various departments multi-user servers. Didn't touch the VMS machines though, there was a different group for that. I don't believe they had a student employee.
When I was an undergrad, the Linux and Mac computer labs were always empty since no one knew how to use them. It was great during end of semester, since all the Windows labs were crammed with desperate students trying to finish their papers, you knew that there was always computers available in those labs.
I remember the same thing at Sacramento City College around 2003-05 when I was taking classes as a high school student. It was hard to reserve a PC in the library running Windows XP; sometimes there were long lines. However, the Macs in the library running Mac OS 9 were usually available. Because I grew up on System 7 in elementary school, I had no problem using Mac OS 9. In addition, the graphics communication department had a lab open to all students whenever no classes were using the lab. That lab had dozens of Power Mac G4s running Mac OS X Jaguar. That was my favorite lab on campus. But once I started taking computer science classes, we had exclusive access to labs running Windows XP that were stocked with development tools such as Visual Studio.

After high school I went to Cal Poly San Luis Obispo, where the CS department highly encouraged the use of Unix, whether it was Solaris on servers, Linux on desktops, and Mac OS X, “bougie Unix” for those who could afford MacBooks. Most CS students at Cal Poly only used Windows for games and for non-CS courses that required Windows-only software tools.

We had a cluster of about 8 X-terminals which were connected to a HP-UX box of some sort at my university. My "running Linux since 10th grade" ass had a fast-pass when everyone else had to queue on one side of the hall for a Windows machine or the other for an OS 9 Macintosh
As someone who has taught university courses recently, I’ve noticed that more colleges and universities are abandoning computer labs due to the ubiquity of affordable laptops, where many students are well-served by a cheap Chromebook or a used ThinkPad. I understand the costs of operating a lab, but I think we’ve lost a few things with the demise of the computer lab, from having a standardized environment in which students can run required software tools (many of my Cal Poly professors had a rule that all programming assignment submissions must compile and run on their servers running Solaris, solving the “it worked on my machine” problem), to the social experiences of being in a lab. I have fond memories of my times in the CS department’s lab at Cal Poly during the latter half of the 2000s.
>professors had a rule that all programming assignment submissions must compile and run on their servers running Solaris

This is what made me learn Linux, my universities comp sci also ran Solaris and required the assignments run under that environment. This was in early 2000's I hated the university computer labs they were full of Sun Hardware they all ran CDE desktop environment which I thought was ugly as all sin (it looked incredibly dated by 2000's).

Someone in my class told me about SSH and that you could work from home. He gave me a stack of burnt cd's (with Mandrake - an old Linux distribution, which ran KDE) I was able to remotely work on my assignments from comfort of my home and I've been a Linux user ever since.

> the social experiences of being in a lab.

Not sure, if I miss that. I read about hacker culture and such, but my own limited experience of the early nineties of the labs of a large university weren't all that romantic.

I recall that some more experienced users poked fun at newbies (who didn't know of xauth) by making their workstation bloke like a sheep. While that was fun, there was no other interaction, quiet, anonymous and uninviting like a library reading room.

Once me and a team mate shared a whole lab with only one third guy. My mate had a cold which he neglected and during the session passed out, hitting his head hard on the desk. I had to shout at the third guy to solicit his help. He seemed to be content hacking on his terminal and let my mate die as long as he'd be quiet about it.

In the same lab (might have been the same session earlier, I don't recall) one fellow not being member of my team ran `crashme` on the shared server (pre-Solaris SunOS, iirc). He apologized with the words (paraphrasing) "I didn't expect it would actually crash" when the server in fact did. We were not amused.

Mid nineties the labs got deserted as most everyone was working from home.

Had a great lab experience in the early 2000's, loads of people helping each other, sharing ideas, the odd practical joke but nothing nasty. Labs were always busy too. Dual booting Solaris and NT4 PCs, plus an embedded device for assembly class. We also had free use of the ancient dot matrix printer with continuous holed paper... I still have some code listings somewhere in a drawer. I miss those days sometimes, working remotely.
Any other Cal Poly folks around? Always seems like we're underrepresented compared to the Stanfords of the world.

I wasn't even a CS grad (I tried to but CP wouldn't let me switch from physics, one of their less endearing policies) but being there in 2001, 2002 was a really cool time. I remember when the email went down and my roommate commented "just SSH* in and use Pine" and for some reason something clicked right then - "oh yeah, you can do a whole lot more without the browser than with one". I feel like that mindset was there when I was doing a coding exercise for a job a few years back and figured it made sense to just open a socket with netcat instead of building a whole REST API - it was fun (if non-robust!)

I vaguely recall systems meant to help automatically register you for classes as soon as they became available, and even used their touch-tone based class reg system at one point.

Anyway, ramblings. I ended up with a physics degree and going in to tech anyway; I wish they had just let me switch.

* Hell, it might even have just been telnet. This was back when you could browse all your dormmate's media libraries and we shared freely, even unsecured wifi was common for a few years.

Labs were the hallway of building 20(MIT) of learning. Since I had a decade on most of the students, I would help out. I learned so much from others questions, and I am sure they learned a lot from me. Collobtative environments are the best.

I got X11 the hard way, with a stack of floppies, but had a great guide, and lots of help. Thanks Barry. I ran X on everything.

I downloaded so many Slackware disk sets just to find out that it didn't support my SCSI card. Good old root and boot disks.
> ... before Linux and the Intel 80486DX-33 permitted me to first boot X11 on my own machine in 1992

A tiny bit later for me, with the Slackware distro, around 1994 I'd say.

I remember manually editing the modelines to create "uncommon" screen sizes (in pixels), like 720x492 instead of 640x480, etc.

1994 would have been the year I woke up my entire dorm floor screaming in triumph that I had manage to compile a kernel correctly and it booted. I don't remember if that was Slackware or Yggdrasil, but I settled on Slackware soon after. I had a Toshiba Satellite with I think 2M of memory and an 80M hard drive (upgradeable to 200M but, come on, nobody could ever fill up that much storage).
I bought a NeXTStation after I graduated. It cost as much as a car.

Dumbest purchase I ever made.

My first experience with UNIX (Solaris) was in the late 1998 or so. Initially, it was with tty's but there were a few machines in the lab with displays that supported X. I never used Windows before seriously so in some sense, X was my first windowing system. xeyes was probably the best vanity toy I saw.

I remember trying to understand how things like twm, fvwm, motif etc. worked. The first few programs using Xlib and Xaw. Great times.

Happy birthday X11!

2024 is finally the year of the X desktop
The XL year of the X desktop, even.
> Anyone who wants the code can come by with a tape.

What kind of tape would that be in those times?

Yeah, too early to be QIC (also, to run this, you needed a VS-100, and to run a VS-100 you needed a VAX 11/7xx to put the controller card in, and basically all of those had 9-track tape drives.)
QIC was launched in 1972.
sure, but from actually using this hardware in the mid-80s and later, labs had QIC drives once they had suns, which was rather later on, and I don't think I ever saw a QIC drive on a VAX (a bunch of weird 9 track drives including a top loader, sure.) And microvaxes tended to have (non-functional) TK-50/TK-70 "linear" tapes (ancient ancestors of DLT)...
I've seen plenty of QIC drives on HP/Apollo systems, I've used them on HP 9000 series and on Suns from that era, they were quite wide-spread at that time.
Could be a QIC tape drive, but likely to be reel given it's a Wang.

QIC-24 was nine-track in a handy container - a bit like a compact cassette for computers.

My 386 machine had a QIC-24 in 1987, I got a copy of X10R4 from my local university.
9 track was the default; at least that's how we got it from MIT for our VAX, Sun and Sequent machines. QIC for the workstation class machines, tho I don't recall if we got QICs from MIT or someone copied it from the 9-tracks locally. I used a QIC to put it on the Sun 3/160 I used.
“Drop by my office with a tape” probably would’ve referred to DECtape (TK50), the ancestor of DLT. That and QIC-24 were the sorts of tapes one would carry between offices in those days; TK50 was extremely common in the DEC world and QIC-24 was used pretty much everywhere else.
(comment deleted)
I still remember playing Quake on Linux - with the X display being displayed on a different computer over the network. The different computer was running HP-UX (HP's Unix) on a PA-RISC chip.
They didn't trap Ctrl+C on Linux, so you had to be really careful about key binds.
The idea that you could hook several X terminals up to a modest system like a SPARCstation and share it was kind of amazing. Even mid-range workstations were insanely expensive back then.

(May have played an inordinate amount of Netrek on those.)

Xpilot did some damage to productivity at more than one computer lab.
I thought it was a missed opportunity that X never got an audio protocol built-in. I guess streaming audio was considered too exotic in the 1980s, but getting sound to chase X applications around is still an unsolved problem. I think it would have forced Linux and other Unix-like OSes to fix their broken and crufty audio subsystems much earlier. It was a real nightmare getting audio out of sound cards back in the 90s and even 2000s.

I still remember having startx finally work properly on my FreeBSD 2.1 system running on a Pentium-75 with 16MB of RAM (so luxurious!) back in 1995. The fixed sync monitor[1] coming to life with that black and white crosshatch pattern, and probably TWM decorating that terminal window that would shut down X if you closed it. Luckily at that time there were quite a number of window managers so you could try a bunch to see which one you liked the most. The hardest part of getting X running was tracking down those magic numbers you had to enter for the modeline in the configuration file, although old X used to ship with a database you could look up of older monitors that were no longer in production, but might be kinda close to what you had.

[1] Supporting 640x480, 800x600, and 1024x768(interlaced only)

(comment deleted)
It’s funny because I recognize all the details you mention and know where you went to school because of it.

For the longest time the top result when searching for my real name was a mailing list post asking about getting sound working on that same FreeBSD Pentium 75.

We had to carry that IBM behemoth across campus to “prove” that we installed FreeBSD onto it for one of the CS lab courses.

NCD (Network Computing Devices) made an audio server for their X terminals, that was largely based on the X11 server and client code, around 1993. I made a TCL/Tk sound mixer that supported NetAudio for multi player SimCity on TCL/Tk. NetAudio really sucked. That's probably why nobody uses it (or X terminals) any more.

https://news.ycombinator.com/item?id=20313616

DonHopkins on June 29, 2019 | parent | context | favorite | on: Red Hat Expecting X.org to “Go into Hard Maintenan...

NCD (Network Computing Devices), who made X Terminals, came up with a sound server called "NetAudio", based on the X11 server, protocol and client library, with the graphics ripped out and sound stuck in. I used it in the early 90's to support the Unix/X11/TCL/Tk multi player version of SimCity, with a scriptable TCL/Tk audio server that could drive either /dev/audio on Sun/SGI/etc or NetAudio on NCD X Terminals. Other TCL/Tk clients like SimCity (but possibly others) communicated with it via the TCL/Tk "send" command, which bounced messages off the X server.

http://www.art.net/~hopkins/Don/simcity/simcity-announcement...

NetAudio had its problems, but basically worked. Except that it insanely mixed audio by AVERAGING (add waveforms then divide by the number of sounds) instead of adding and clipping, and I couldn't convince the NCD engineer that was the wrong way to mix sound, and to just add and clip instead, like sounds mix in the real world: When you talk over music, the music volume and the volume of your voice doesn't magically lower by half. Hopefully they've fixed that problem by now.

https://donhopkins.com/home/archive/NeWS/sound-mixers.txt

It evolved into the Network Audio System (NAS):

http://www.radscan.com/nas.html

I can't say how popular it is, or if anyone actually uses it, though:

The Release version is now 1.9.4 (10/07/2013).

It kinda worked, but nobody used it. That was the frustrating thing for me. Had it been integrated directly into X I think it would have stood a much better chance.
You brought me back memories of startx vs xinit (or something similar command that did nothing but start the graphical ui) in my FreeBSD CDs bought through Walnut Creek cdrom site... I couldn't believe they shipped them to my god forsaken village in Mexico .. 12 year old me was ecstatic! Great times.
There's some kind of continual tension in the Linux world between integrating things, and disintegrating them and having them just point to each other. Wayland disintegrates things that were integrated in X, like drawing pixels to the screen - now you have to do that with the graphics driver, and (I hope that) Wayland tells you which graphics device to use. Usual disintegrated style would be that your X root window would have some X properties containing the addresses and auth tokens of your dbus server, CUPS server, audio server, etc and if an app wants to access those things, it makes a separate connection to those services.
In more recent times (2008ish perhaps, would likely have been early Ubuntu anyway) there was some sort of audio forwarding, I don't know how it worked though. I remember one time sitting on my couch with my laptop but wanting music to play from my desktop because it had good speakers. So I ssh-x-forwarded rhythmbox from my desktop to show on my laptop, pressed play ... and the music came out of my laptop.
My too. I tried opening a feature request on the Wayland tracker but it got closed as not wanted. I can think of various use cases such as screen-sharing a window and its audio together or remote access to a single window + audio.
11 revisions later, they ended up at X11, and then time stopped.
You have to remember X11 is a protocol not an api.

11 revisions in 5 years 1984 - 1989 At that point they stopped changing it. And we have enjoyed 35 years of compatibility since then. Api's come and go, in and out of fashion. But I bet you could take your brand new linux X server and still have your 30 year old sun workstation drawing windows on it.

One cool thing is old non-Linux machines like the Symbolics Lisp machine and their library descendants (CLX for Common Lisp) still basically work with modern X Servers.
Minor complication: For its user interface Symbolics Genera needs the "cursor warp" feature, since it moves the mouse cursor under UIMS control.

Noteworthy: CLX is written in Lisp and does not use Xlib (which is a C library).

Really: and then everything else was added by means of optional extensions.
It took 40 years to get its own social network, for shame.

I remember the first time I saw an X terminal in my first year at college. I didn't have a computer of my own, and windows labs were overcrowded, so I figured I'd cut my teeth and learn this Unix thing a year earlier.

It was SunOS with twm, and the defaults made the font size unreadably small. I went to the bookstore, bought some Unix beginner's guide (I made sure it had an xwindows chapter, since I mistakenly thought I was using an "xwindows OS.")

I spent more time figuring out that environment than I did working on my assignments, but I had a great time. The advantage of working in a lab with older students is I could see what they had on their screen and ask them about it.

Lovely memories. Hard to believe I've been an X user in one form or another for more than half of its existence. It already seemed ancient when I first started.

The comment about documentation made me smile: one of my first jobs was as a UNIX admin and I well remember the enormity of the Xlib programming manuals. Those beasts took up a whole bookshelf.

Another memory: joining a bioinformatics lab and encountering a fleet of NCD boxes that could do nothing more than bootp/rarp their way onto the network and run an Xserver, with all the processing happening down the hall on a SparcStation. Blew my young mind that network booting was possible, but then again, those were the glory days of Sun, and the Network Was the Computer.

I think I got XFree86 brought up on like, Slackware or something in the early 90s, I want to say like 1994 but I’m not sure.

IIRC there was some terrifying step involved around setting scan frequencies or modelines or something that was advertised as making it possible to set a CRT on fire (which could have been the maintainers being cheeky).

Does anyone remember that era well enough to know the details?

It probably wouldn’t set the monitor on fire, but this was before they added confirm/revert for resolution changes, so if you put it in an unsupported mode, you couldn’t get it back without booting from the install media.

And it could damage the monitor in the process.

That's what ctrl-alt-backspace was for: To exit X and get back to a BIOS-based text terminal (ideally, one set to some absurd tinytext mode with SVGATextMode), so the modeline could be adjusted.
Some displays piggybacked the high voltage generator's oscillation on the horizontal sync signal because it was about the right frequency. Stopping horizontal sync in the right phase could lead to the high voltage generator acting as a short circuit. If you've got the kind of really cheap display that does this, maybe it also doesn't have a fuse...
I remembered the warnings, but was lucky enough to always have common predefined monitors that already had settings. Until probably about 2005 when dealing with an unusual monitor when I had to do my own modelines because nothing was working out of the box.

Searched the web as much as possible to try and get horizontal scan rates etc, not quite feeling completely comfortable, then biting the bullet with my best guesses. Luckily it worked - to much relief that I hadn't burnt out one of the offices more expensive monitors.

I had to configure modelines on my first PC, bought so I could run a *nix at home, specifically Linux. The video card was a Tseng ET4000W32 and that is about all I can remember about the hardware in that PC. PC monitors seemed to rejected frequencies that were out of spec and shut off so I think the hardware damage thing was an urban legend or it might have been a thing with screens that weren't designed for the consumer mass market.

I didn't use X much initially because my version of the card wasn't properly supported in Xfree86 and had some colour/palette problem. Also the resolution and quality and size of cheap CRTs at the time made Xterminals less readable than the console IMO. The SVGA support in console for things like image viewers just worked. It was only when Mosaic came out that I started to run X more often and it wasn't my default for a few years I think.

Before PCI, PlugnPlay and Windows 95 everything was configured with dip switches and port numbers and interrupts went into configs even on the DOS side. Partitioning a disk wasn't a trivial thing. Even so modelines seemed kind of silly even back then. When people say Arch is complicated I just chuckle to myself at how far things have come.

Arch is complicated. It doesn't even come with man pages or documentation. "Hi! Here's a Linux box with a getty and a shell, and you're lucky we even included that much. Good luck!"

At least when configuring XFree86 on Slackware in nineteen-ninety-something, I had local man pages and documentation to refer to out-of-the-box.

The install medium had documentation loaded, and installing which forms of documentation you want to the persistent system is right in the installation guide
TIL.

And that's great for people who know this, and who also know in advance what documentation they'll want in the future.

It's less-great for people who have booted their new installation without knowing one or both of these things.

I mean: I get it. I do realize that a line must be drawn somewhere on what to include or not include by default. I just don't like where that line is drawn in this particular instance.

My feeling is that storage is cheap and plentiful... unless it isn't.

It seems to me that the people who would benefit from superfluously-available documentation the most are the ones who are likely to have plenty of space available: They're newbs -- newbs who are not building something to fit into less than 2GB of flash, and who are not making a template that will be used for a thousand instances. They're just trying to get their feet wet.

And it also seems that the people who would benefit most from a system that is a wee bit leaner due to a lack of auto-installed documentation are the same ones who would have the least amount of difficulty removing that documentation.

XF86Config (or was it XF86Setup?) had some nice defaults for things like "Monitor that can do 1024x768@70Hz" in case you were like me and had an offbrand monitor not listed amongst the supported ones. Hacking modelines wasn't strictly necessary even in the mid-late 90s.
I used to use custom modelines to overclock CRT monitors.

Monitors had a spec, of course -- and it was easy-enough to stay within that spec. They were bandwidth-constrained, but as analog devices that bandwidth was always somewhat flexible.

So why have settle for 1024x768 at 75Hz that the book says will work, when that same 15" monitor would do 1360x1020 or more at a similar refresh rate and still have readable tiny text? Why not run a 19" monitor at 2130x1598?

"You can fit so many xterms in this baby!"

And why not shrink down the vertical blanking interval and front and back porches as far as possible before geometry got too bad, to maximize the number of pixels that could be pushed down the wire within a given bandwidth? And why not tweak the trimpots inside to put the monitor's front panel controls into a better range for this kind of service?

Fun times, those. The quality of the VGA cable made a substantial difference in smear when pushing things hard enough (literally bandwidth-throttled video), and getting a better DAC to drive the kit with (for even more literal bandwidth) was a primary motivation for periodically finding a better video card.

(No fires to report even after a decade and a half or so of these games. Sorry. I guess if any of this stuff ever caught on fire I'd have found a different approach.)

640x480 became 704x512. "You are going to hurt your eyes. 800x600 = 875x660, and 1024x768 = 1152x830. Never blew up a monitor, but never ran over scan without the real documentation.
Seeing X10 was a revelation. I'd used OS specific windowing systems, and being presented with this one was a significant "aha" moment. Sun Views was interesting but this had a whole quality of anywhere, anytime.

X11 was X10++ and I think we've been coasting since. Wayland has confused me.

1950s schlock-horror title card: From deep within the labs at MIT, it's The Thing That Just Wouldn't Die! Shambling onwards for 40 years and counting!

After I expressed interest in learning how to program X on my first Linux machine in 1995, a friend showed me the giant wall-o-manuals (I think that's how O'Reilly got its start) and said "Are you ready to read all of these?"

I got by learning the basics of Xlib with the man pages and, I believe, Kenton Lee's site. X's display model is really straightforward if you already understand something like Win32, which is one reason why Wine was able to make rapid progress: translating GDI calls to X calls required only a thin shim.

X ran FAST, too. If you set the GC clip origin and mask you could blit a sprite in one XCopyArea call; I banged out a game engine based on that and was able to get draw speeds that Windows required DirectX to match (assuming a local display).

Yeah, X had a lot of aggressive performance tweaking in ways that noone even understands today, let alone actually needs :-) Creating windows with zero round trips, event-shedding that let you sensibly run a remote window manager over a 1-megabit network...
My story about X windows...

I was invited to the Atlanta Linux Symposium in the late 90s and met just about everyone around the Linux/Slashdot/X11 world. I had been hacking on OpenGL drivers and one of the first to "integrate" 3dfx 2d acceleration into X.

I had a wonky alpha AXP desktop I'd built from random parts and porting X11 to 64 bits on Linux as the code & binary was actually still 32bit. I'm chatting with rasterman for a bit and up walks an older gentleman.

He'd been listening in on our conversation and was eager to get my take on X. I told him straight-up I thought it was kinda crappy and it should have used blah blah bah. He said "I'm Jim Gettys and I co-wrote X windows.." I was aghast...Oh shit. He laughed and we had a long conversation about how X was implemented.

>Anyone who wants the code can come by with a tape.

Love it!

I wonder if a Sun, Dec, or HP of the 90s would have had a fighting chance against Windows NT had they not embraced X, and instead developed a local-first stack optimized for their considerable hardware.

Related, I've always found it odd that in Linus' history of Linux, part of it was a desire to implement an Amiga-like OS on a PC. This is the message-passing-bad guy. What happened?

XFree86 happened, it was an easy port to Linux and opened up a world of X11 software. The 'win' of Windows was not due to the adoption of X11 but due to the fact that it ran on all those clones out there while the Unix vendors were busily fighting their own turf wars - the 'Unix wars' [1]. Microsoft's underhanded tactics were another part of securing their 'victory', this was back in the time when manufacturers would loose their Windows licence if they dared to offer any alternative choice besides what MS had to offer. No Windows licence may not have been a problem for a company like Sun or Silicon Graphics but it did keep 'clones' vendors from straying.

[1] https://en.wikipedia.org/wiki/Unix_wars

Small tip for anyone running a superlight and minimally distracting Linux desktop with X11, i3, and no compositor.

Until recently, tear-free video playback necessitated double buffering hacks and older Intel drivers, or using a compositor like picom. Results were always sub-par imo.

Along came Mr Sultan Alsawaf: https://gitlab.freedesktop.org/xorg/xserver/-/commit/0dacee6...

Been running the patch set through Arch's xorg-server-git package ever since it came out, and with mpv as player spaceships have never been zooming smoother along the starry sky. For ultimate playback smoothness I scan the video file for dimensions and refresh rate and then set a custom modeline using xrandr to match display timing with media fps, while maxing out the capabilities of the display link.

Do you have a script to set the custom modeline?