I introduced my 5-year-old and 2-year-old to startx and xmonad. They’re DELIGHTED!
June 20th, 2012
Two years ago, Jacob (then 3) and I built his first computer together. I installed Debian on it, but never put a GUI on the thing. It’s command-line, and has provided lots of enjoyment off and on over the last couple of years. I’ve written extensively about what our boys like to do, and the delight they have at learning things on the command line.
The looks of shock I get from people when I explain, as if it’s perfectly natural, that my child has been able to log in by himself to a Linux shell since age 3, are amusing and astounding. Especially considering that it is really not that hard. Instead of learning how to run an Xbox, he’s learned how to run bash. I like that.
Lately, Jacob (now 5) hasn’t been spending much time with it. He isn’t really at a stage where he wants to push his limits too far, I think, but yet also gets bored with the familiar. So I thought it was time to introduce a GUI in a limited fashion, perhaps to let him download photos and video from his Vtech toy camera (that takes real low-res photos and videos which can be downloaded over a USB1 link). He’s familiar with the concept, at least somewhat, having seen GUIs on Terah’s computer (Gnome 2) and mine (xfce4 + xmonad).
So last night, Oliver (age 2) and I went down to the basement on a mouse-finding expedition. Sure enough, I had an old PS/2 mouse down there that would work fine. The boys both helped string it through the desk up on our play room, and were tremendously excited to see the red light underneath it when the computer came on. Barely able to contain the excitement, really. A bit like I remember being when I got my first mouse (at a bit of an older age, I suppose.)
I helped him them in as root for the very first time. (Jacob typed “root”, and I typed the password, and provided the explanation for why we were telling the computer we were “root”.) Jacob and Oliver alternated typing bits of some apt-get command lines. Then while we waited for software to download, I had to answer repeated questions of “how soon will the mouse work?” and “what does ‘install’ mean?”
Finally it was there, and I told Jacob to type startx. I intentionally did not install a display manager; more on that later. He pressed Enter, the screen went blank for about 5 seconds, and then X appeared. “Excited” can’t begin to describe how they acted. They took turns playing with the mouse. They loved how the trash can icon (I started with XFCE) showed trash IN the trash can.
But they are just learning the mouse, and there’s a lot about a typical GUI that is unfriendly to someone that isn’t yet proficient with a mouse. The close buttons are disappointingly small, things can be too easily dragged on and off the panel and menus. When I sat down to think about it, the typical GUI design does not present a very good “it always works the same” interface that would be good for a child.
And then it occurred to me: the perfect GUI for a child would be simply xmonad (a tiling window manager that can be controlled almost entirely by keyboard and has no need for mouse movements in most cases.) No desktop environment, no file manager in the root window. Just a window manager in the classic X way. Of course!
So after the boys were in bed, I installed xmonad. I gave Jacob’s account a simple .xsession that starts a terminal and xmonad.
Today, Jacob informed me that he wanted his computer to look “just like yours.” Playing right into my hands, that was! But when he excitedly typed startx, he said it wasn’t just like mine. Uh oh. Turns out he wanted the same wallpaper as my computer uses. Whew. We found it, I figured out that xli(1) loads it in the root window, and so I added a third line to .xsession. More delight unlocked!
Jacob mastered the basics of xmonad really quickly. Alt-Shift-C to close a window. Alt-Shift-Q to quit back to the “big black screen”. Alt-Shift-Enter to get a terminal window.
We launched thunar (the XFCE file manager) and plugged in his camera. He had a good deal of fun looking at photos and videos from it. But then I dropped the true highlight of the day for him: I offered to install Tuxpaint for him. That’s probably his favorite program of all time.
He watched impatiently as apt-get counted down 1m30s for tuxpaint and its libraries. Then we launched it, and he wanted to skip supper so he could keep playing Tuxpaint on “my VERY OWN COMPUTER!”
I’d been debating how to introduce GUIs for a very long time. It has not escaped my attention that children that used Commodores or TRS-80s or DOS knew a lot more about how their computers worked, on average, than those of the same age that use Windows or MacOS. I didn’t want our boys to skip an entire phase of learning how their technology works. I am pleased with this solution; they still run commands to launch things, yet get to play with more than text-based programs.
At bedtime, Jacob asked me, very seriously:
“Dad, how do I start tuxpaint again?”
“First you log in and type startx. Then you can use the mouse.”
Jacob nods, a contemplative look on his face..
“Then,” I continue, “you type tuxpaint in the terminal, and it comes right up.”
Jacob nodded very seriously a second time, as if committing this very important information to long-term memory. Then gave a single excited clap, yelled “Great!”, and dashed off.
Categories: Children & Computing, Family




My kids just use Windows 7 like normal people.
Reply
Grv Reply:
January 9th, 2013 at 3:21 am
No offence, but they’ll be normal and not extraordinary..
Reply
lulz Reply:
March 21st, 2013 at 6:35 am
you must be very proud…
Reply
Too awesome. :) I’ve been letting my 5yo play on my original Atari 1200XL computer. We did some BASIC one evening. So far I think he’s more interested in using the control-characters to make big ATASCII letters on the screen. Chip off the ol’ block!
Glad you guys are enjoying Tux Paint! :)
Reply
This article was fantastic!!! I grew up on DOS and have been a Windows guy my whole life, but have learned linux over the last 8 years. My children(11,6,4) are already well versed in Windows. I’m thinking it may just be time to dig out an old unit and teach the kids some good ole CLI. I find professionally, that IT admins who grew up or learned some cmdline first, are far better at the job than the crop of window server admins who never have heard of DOS. That is the real value in teaching kids CLI. Well if they choose to work in IT that is. In IT, admins who can ride the fence of linux and windows will find more and better paying job opportunities. Teaching kids some form of linux is a no brainer, it ought to be taught in schools to all kids!!!
Reply
This is very much how I grew up. Great write up.
Reply
When my son was about two he climbed up on my computer and he punched in some keys on got on MS Windows and brought up a command box I have never seen before, read about or still have not accessed again. Today at 15 I got him a laptop that had Win 7 on it. In 24 hours he had switched it to Linux Mint on his own. Guess those toddler years count most ;-)
Reply
I am curious when you plan on introducing them to something like Python or Haskell.
I mean, I’m curious exactly what they do with Bash, but I would think that C64/Apple II basic was a nicer introduction to algorithmic type things. Still, your thesis may well prove to be correct.
Reply
This sounds like a story from the ’80s… An Android tablet should be much more interesting for kids nowadays.
Reply
Per Andersson Reply:
June 25th, 2012 at 6:48 pm
Definitely not so.
As John states, this way gives a sense of ownership which beats nice user interfaces any day.
You are probably projecting what YOU think is more interesting. AFAIK and have seen, kids do not have a particular fancy for nice graphics, they even pick up sticks from the ground and have a field day.
How do you explore a so called “smartphone” or a tablet if you are 3-5 years old? Those devices reduce you into a consumer, they do not invite to exploration. Especially if you are not tech savvy.
For the record I tried tuxpaint with my 8 month old child, definitely not ready for it. Nor ready for the command line, we are in literal bash (everything with your hands) mode. :-)
Reply
boom, nailed it. ;)
Reply
I think that teaching your kids the command-line interface is good; that’s likely to foster more creativity and independence than simply teaching them to point and click. But I think you might want to switch to an X display manager soon. Having them use startx every time might send the message, “Your computer is a stubborn, intractable thing that won’t do what you really want unless you continually repeat some arcane steps.” Better to show them that a computer serves its human user, not the other way around. Set them up with a display manager that will give them xmonad as soon as they log in. Who knows, maybe this will be all the more effective in demonstrating the malleability of computers now that they’ve been starting X manually for a little while.
One question: Which X terminal are they using? The one from Xfce, or something simpler like rxvt?
Also, you should check out the MARY speech synthesizer (http://mary.dfki.de/). It requires Java, so it’s more memory-hungry than eSpeak. But the cmu-bdl-hsmm voice is very nice, and it’s free software. The default client is a GUI app, but it’ll be easy for you to whip up a command-line client once you learn the HTTP interface (you’ll be running a server on the local machine). Too bad MARY isn’t in Debian.
Reply
John Goerzen Reply:
July 5th, 2012 at 4:03 pm
They’re using the XFCE terminal emulator right now, but I may switch them to xterm since it doesn’t have a menubar with pesky persistent settings. (Less to accidentally mess up).
They have no problem with running startx. It is a command like any other to them.
Reply
But then you should use ncurse based programmes. Like elinks (webbrowser), htop (fancy top). mutt (mail client), midnight commander (filemanager).
https://en.wikipedia.org/wiki/Ncurses
Reply
You my friend are an awesome commenter!
Reply
Watch your slurs and generalisations. I was a Mac user from 86, when I was 7, had only used computers which booted to basic, and here i am a linux nerd, because I was curious.
It’s more important to instil the curiosity into learners than indoctrinating them in some mad keyboard only world, in which the rest of the real world don’t live.
Feel free to make your kids different (remember kids can be cruel and always look to the different), but make them different by building on the norms. Let them use windows/mac/linuxgui, and let them experiment with everything else, its a complete non-sequitur that a GUI user cannot be as educated as a terminal user.
Reply
John Goerzen Reply:
July 7th, 2012 at 6:25 pm
I don’t know what you’re referring to with “slurs and generalizations”. I think you are reading a lot more into what was said than there is. You may have missed the part where we hooked up a mouse (thus it’s not a “mad keyboard-only world”).
While I made no such claim, nevertheless it seems that in general, people familiar with the command line — any command line — have a better understanding of computing than those that don’t. Causation – maybe not. Perhaps correlation. I don’t intend to withhold GUIs or Windows or whatever from them. Just introduce them to a broader world.
Reply
[...] I introduced my 5-year-old and 2-year-old to startx and xmonad. They’re DELIGHTED! (via MeFi) [...]
I am delighted to read about your kids’ experiences and how playfully they progress into what scares off most Windows users so easily. I admire your skill of not pushing them towards anything, yet letting them progress in their proficiency with the basics of computing instead of choking their sense of curiosity with the kind of stimulus overkill that gaming consoles and “modern” GUIs present. Carry on and write about it. Please.
Reply
[...] friend matt sent me this Article about a guy who is introducing his kids to computers for the first time. Quick summary is that he [...]
If you’re looking for more text based games, try nInvaders, it’s a console based space invaders.
Reply
lovely. so inspiring. :)
Reply
[...] Vater zeigt seinen Kindern X11 — schon etwas aelter: Dieser Vater hat fuer seinen damals dreijaehrigen Sohn eine Linux-Maschine nur mit Kommandozeile eingerichtet. Nun bekommen er und sein zweijaehriger kleiner Bruder zum ersten Mal xmonad gezeigt. Dieser Eintrag wurde veröffentlicht in Allgemein. Bookmark the Permanent-Link. Kommentieren oder ein Trackback hinterlassen: Trackback-URL. « “Nach diesem Urteil sollten wir uns über die NSU nicht mehr wundern” Kleine Kamera, grosse Bilder » [...]
Brilliant! I remember a similar excitement programming my zx spectrum as a child.
You may like this physics game:
http://numptyphysics.garage.maemo.org/
Thanks for the article.
Reply
John Goerzen Reply:
September 10th, 2012 at 6:02 am
Very interesting – thanks for the link, I’m taking a look.
Reply
One of your prior articles got me to introduce Debian to my son. Got him an old Apple PPC clamshell to load it on. gave hime a login and let him go. wurm and snake are his favorites (per your other post, I installed bsd-games), but he likes “dad not found” “mom not found” etc too. He can name most of the keys as he hits them, even semi-colon and equal sign. Pretty good for 3yrs 2 mths imo.
Thank you for doing this, it was inspirational to me.
Reply
John Goerzen Reply:
September 10th, 2012 at 6:03 am
That’s cute and great! My son has loved producing various error messages too.
Reply
A clarification for someone wondering – I never said he’s never seen a GUI. (In fact, I mention that he’s seen them before.) He had simply never had a GUI on *HIS* computer.
Reply
You should install the ‘sl’ command if you haven’t already, a kid would love that I reckon. Basically an ASCII train comes across the terminal if you mistype ‘ls’ as ‘sl’.
Reply
Hey there. I just stumbled upon this completely randomly, whilst looking for some xmonad resources, and I just wanted to pop in and tell you that this was awesome. I think I will raise my kids like that myself.
This is asked out of complete, genuine curiosity, so I hope you don’t take offense: is there no part of you that feels like you are perhaps forcing some interests upon the kids, though? I mean, I can see both sides of the argument here. On one side.. they’re 2 and 5. How do they know what they think is interesting?
Maybe they’ll just grow out of it if they really don’t like it.
Anyhow, thanks for the read!
Reply
John Goerzen Reply:
October 1st, 2012 at 7:43 pm
No problem!
It’s a chicken and egg problem, isn’t it? They will discover what’s interesting as they go along. It might be computers, it might not. I’ve provided them an option. I don’t see xmonad as being particularly different from Windows in that regard. Everybody with kids that use computers makes some choices for them about operating system and software, and it’s that way here too. I’m not sure that’s precisely what you asked, but I hope it helps.
They certainly have many non-computer interests as well, though.
Reply
John Arnold Reply:
January 9th, 2013 at 6:03 am
I’m a little mixed about what you’re doing with your kids here. On the one hand I have the same command line background as you and I would like my kids to have the same joy of learning about computers as I had. I’m hoping I can do something like that with my Raspberry Pi. But on the other hand I don’t think young people will think of a computer as being a box with a keyboard, mouse and screen like you and I do. I think tablet computing is the future of computing for the masses. I’m not saying traditional computers are going away. They’ll just be for those that need something beefier. For the vast majority a tablet will be all they need and more.
So it’s great that your kids are learning the fundamentals, and I hope to teach my kids some of that too. But just as I know about punched cards but never use that knowledge I feel our kids will probably know about command lines but never ever use them.
Reply
John Goerzen Reply:
January 9th, 2013 at 9:40 am
One person on Lifehacker responded to this article this way: “The point is that in order to be a master of technology, and not a slave to it, you must know how and why it works. And the best way to understand computers is to run them starting with the console.”
My first computer was a TRS-80 CoCo II running BASIC. I haven’t touched BASIC in many, many, many years. The *tool* became obsolete but the *knowledge* and problem-solving skills didn’t. I learned about the fundamental logical nature of computers, about loops and commands, about moving data from disk to RAM and such.
Kids love to explore. They don’t start out with preconceived notions of what’s good or bad. Linux isn’t the only thing, and computers aren’t the only thing. The boys have plenty of other activities and will encounter other operating systems. But somebody that only ever uses a tablet will have no idea how to write software to run on that tablet!
[...] I introduced my 5-year-old and 2-year-old to startx and xmonad. They’re DELIGHTED! | The Changelog. Dit bericht werd geplaatst in Nieuws door Wielke . Bookmark de permalink [...]
I enjoyed reading every bit of this, simply amazing.
Reply
[...] I introduced my 5-year-old and 2-year-old to startx and xmonad. They’re DELIGHTED! | The Chang… – December 11th ( tags: xmonad startx gui computing skills kids development tips ideads parenting ) December 11th, 2012, @ 10:04 pm | Tags: links | Category: delicious links | Comments are closed | Trackback this Post | 0 views [...]
[...] stuff that is already existing out there.Blog post The blog post I enjoyed reading most was “I introduced my 5-year-old and 2-year-old to startx and xmonad. They’re DELIGHTED!“. A father has started to introduce his sons from an early age on to Unix. The whole series [...]
[...] I introduced my 5-year-old and 2-year-old to startx and xmondad. They’re DELIGHTED! | The Changelog [...]
[...] I introduced my 5-year-old and 2-year-old to startx and xmondad. They’re DELIGHTED! [The Changelog] [...]
The first thing I had (born in ’78) was an Atari VCS. I’ll always be grateful for my dad. Now IT is my life, make a lot of money, and enjoy it as much as ever. I’m keeping one from when the time comes; later I’ll get a Mac II which had an awesome mouse tutorial and lots of educative games were available (more than any other plattform). Obviously the net is out of the question maybe until he’s 9 or so… I hope. I’ll have to assess if I’m not crippling him as time comes. Meanwhile will do the same; start as I did so he’s able to get it as I did.. Hope so.. Very inspiring article!!
Reply
well done!
regarding the vtech toy camera, we had also considered it, but then decided to give our 5-year old daughter a GE DV1 camera which is easy to use, makes HD video, decent 5 MP photos (but no flash and no macro), is shockproof and water-resistant, and reasonably priced at 85$. The only disadvantage: she won’t let me borrow it unless she gets chocolates ;)
Reply
You are really a very successful father.
Reply
John Goerzen Reply:
January 9th, 2013 at 9:41 am
Thank you everyone for the kind words!
Reply
I found this on lifehacker and I was just so happy all the way through, while also filled with immense jealousy. I am 17 now and just got into programming. I had used the terminal on my mac (messed around opening programs, deleting files, and making my mac say things to me. Also to hack into macs FOR GOOD REASONS – says every criminal ever) a few years ago. But i felt confused at the meaning and syntax of it all. This is all me explaining why you, sir, are an awesome father.
So anyways, I was wondering what you chose for them, and why.
DFTBA
Reply
John Goerzen Reply:
January 9th, 2013 at 10:09 pm
Hi Wyatt,
First, thank you for the kind words. I appreciate it!
Don’t think that 17 is too late to start programming. There’s still a lot of years left and a lot of time to pursue your dream, whatever it may be. I might suggest you take a look at diveintopython.net. It’s a way to help you get started hands-on.
I’ve actually written a number of posts about what they’re doing; you can see them at: http://changelog.complete.org/archives/category/technology/children-computing
Good luck!
Reply
Wyatt Reply:
January 9th, 2013 at 10:23 pm
Yeah thanks! I actually just started an Intro to Programming class and I think that was one of the resources we are going to use!
And good luck with the kids! I have heard the teenage years can be difficult ;)
Reply
Grin… you might be on an excellent position to giveME some advice to remember there… any tips?
Reply
Wyatt Reply:
January 10th, 2013 at 12:22 am
Instill in them the importance of honesty while you still can, never overlook the option of bribes, and remember that we can be very irrational creatures that sometimes need updates and recalibration. But I am sure your two boys will be perfect children. I NEVER have problems with my brother. *sarcasmsarcsmsarcasm*
Reply
Thumbs up to you! This was a very nice read – it was just what I needed to brighten up this cold and dark winter morning.
Linux, CLI and xmonad for your two young sons = awesome. You sound like a pretty darn cool father. :)
Reply
[...] aside, it’s a neat post. The original was from way back in June and can be found here. The re-post to Lifehacker was from just last week. Share this: Pin ItDigg Posted in Fatherhood [...]