I introduced my 5-year-old and 2-year-old to startx and xmonad. They’re DELIGHTED!

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.

138 thoughts on “I introduced my 5-year-old and 2-year-old to startx and xmonad. They’re DELIGHTED!

  1. This is awesome. The next generation should grow up by learning the right things. What I dislike is seeing children playing with ipads and iphones because the concepts will be obsolete some day and don’t encourage for deep understanding. Keep it going!


  2. Awesome, thanks so much! I think its really cool to start with the building blocks before diving into a GUI.

    Thanks for the response!


  3. Great read, as a linux user, and future parent, I wish I could be the cool dad you come across as being. Children are the future for technology, great way to excite young minds


  4. My 9 months old daughter knew how to use two keys on keyboard (Space and Esc) to stop/play movies for kids. Now she is 2,5 years old and she is playing simple web browser flash games on Ubuntu.


  5. Love your story. I remember when I was younger learning to use DOS and eventually hacking into the old school computers with the sole purpose of installing Teenage Mutant Ninja Turtles PC game on everything. I wish I could still remember all that I’d learned!

    My friend Todd is also a videogame player with a new-born son and when I asked him how he’d let Finn (his son) play games, he said that he’d allow Finn to play games beginning on his old Commodore 64, progressing through consoles like the NES, SNES and Megadrive, then Nintendo 64 as he grows older, before being allowed to play Xbox 360s at home. Todd’s hope is that FInn will learn to appreciate the basic mechanics of videogames before he appreciates the visuals of them.

    I’ll make sure Todd reads this article, haha.


  6. well done, they will learn very fast now, and they will learn good things… Congratulations !

    I really hope I will be able to do the same, thanks for the idea :D


  7. how do you plan to deal with (or not deal with) the possible cat and mouse games of things like porn?

    for most people competent enough to punch in some numbers in some boxes can proxy and tunnel through most firewalls.

    do you ever plan to allow them to have their “own” computer? or will you always at least share one with them or just always try to be around them when they use it (wich i think is the best and only way to effective filter what anyone does)?

    overall, what i think you are doing is great, but can cause real headaches depending on how they are when get older, and how restrictive you want to be.


    jason Reply:

    I had access to computers, internet and porn from a very young age. I saw my first porn website around age 10. I recall images taking REALLY long to load with our 14.4k modem.

    My sisters and I were on late 80’s/early 90’s chat rooms pretending to be transsexuals while in grammar school. We in no way are sexual predators, and my palms are not covered in fur.

    If you take it away, they’ll make a point to find it. If you let them look, they’ll get over it quickly. Now it seems most fellow parents ask mine what they did right.


    André Mendes Reply:

    That’s true, it also happened to me and I have no sexual problems because of it. I saw porn at age of 11 and with an ADSL connection (I’m 20).
    And honestly, I don’t think John should build plans or be worried about it.


    John Goerzen Reply:

    I’m a “figure it out as it comes along” sort of person. For now, it is simply inaccessible. Their computer is firewalled off, and they don’t have the root password, and something more drastic (reinstalling the OS, say) is beyond their capability.

    It’s hard enough to predict what technology will be like 2 years down the road, let alone children!


  8. This makes me feel nostalgic of my early childhood spent on a Commodore PC-10 :)
    I was 2.5 years old when I first started, I couldn’t even read, but I could type the commands letter by letter.
    I spent hours typing random letters in the text editor, to hear it complain about screen full.
    And I loved the touch typing teaching program.
    It was all in english too :D (I’m italian)
    My mother taught me a bit of BASIC, but I didn’t go back to programming for more than a decade.
    You won’t regret it, I think the gift of starting your lifelong journey in computing with a command line is huge. 
    They wouldn’t get exposed to it in school until way too late.
    Whatever career path they choose at first, they might find that computing is, after all, best suited to them and end up going back to it as I did :)
    I really regret not taking programming up earlier and so skipping all the 8/16 bit CPUs era. 
    So you might want to teach them programming on the cli, too.
    If a kid is interested he can learn anything, there’s no such thing as too young to learn.


  9. Being a Xmonad user, I really enjoyed this post :)
    I’m surprised about the very last part though, typing tuxpaint in terminal.

    I would have expected a Alt-p to launch dmenu, start typing tuxpaint as it is autocompleted magically :)


    John Goerzen Reply:

    Yes, well we’ll get there eventually…. Right now, I want them to learn the command line before we introduce too many shortcuts ;-)


  10. Lovely :) I laughed and ‘ACK’ed more than a few times reading this article! I myself started on TOS and had to use Windows after that until I stumbled upon Linux. The years of using Windows and not knowing about any alternatives were wasted time in terms of obtaining computer knowledge and I’d wish I stayed with the Atari back then.


  11. 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! :)


  12. 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!!!


  13. 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 ;-)


  14. how about introducing the mto net hack, then later to alternate tilesets, then onto fancy isometrric view.


  15. 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.


  16. This sounds like a story from the ’80s… An Android tablet should be much more interesting for kids nowadays.


    Per Andersson Reply:

    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. :-)


  17. 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.


    John Goerzen Reply:

    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.


  18. 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.


    John Goerzen Reply:

    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.


  19. 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.


  20. As far as I can tell, he has the impression that linux users are some sort of religious cult, and probably thinks he’s quite funny.


Leave a Reply

Your email address will not be published. Required fields are marked *