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.

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

      1. not XFCE specific, but there’s oneko which causes a little white cat to chase the cursor, which still works as normal

      1. Other interesting applications:
        – potato guy (ktuberling)
        – blinken

        and maybe they will soon enjoy things like
        – kanagram
        – khangman

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

  1. My son is now 7 months old, and I’m already thinking about how to introduce this stuff to him when he’s old enough. Your stories are a great inspiration. Thank you.

    1. I have a few principles:

      1) Open discovery. On their computer, they can do anything. (It is blocked from public Internet at the firewall.) I don’t give them the root password, so there’s really no harm they can cause.

      2) I don’t get bothered if they don’t use it a lot, or if they do. Kids seem to have a natural cycle of interest that waxes and wanes, and that’s OK.

      3) I try to make things that challenge them a bit be available, while also letting them have fun with things that are easier.

      1. Regarding blocked internet access, are you specifically exempting web access to repositories for apt-get, have a local repository, or something else?

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

  2. Nice article! I was contemplating how to raise kids in this day and age without sacrificing all the computer knowledge that the previous generation inadvertently acquired. You seem to nail it with your kids :)

  3. I wish that I was taught command line before GUI as a child. Let them absorb the information while they’re young, and they’re doomed to use linux forever once they feel the comforting feeling of “I know what I’m doing, and if I mess up I know how to fix it”. It’s an empowering feeling to feel at a young age.

    Very inspiring, and you have a smart kid!

  4. Sounds like he’d be very excited to play around with a Raspberry Pi. I know I am, I just started playing with it today and I’m 25.

  5. Are they familiar with any iPhone or iPad-like devices? If so, has that hindered them at all from using the command line?

    1. No, they have never really used them. They’ve used my Android phone very briefly (I have a game or two on it that is targeted at children), but that’s about it. They haven’t expressed a great desire to use our phones; I think they lump them in with the “boring phone” category and haven’t yet realized how much else an Android phone really does.

      That’s OK with me. I’d rather they learn about their technology first anyhow.

      They HAVE been exposed to GUIs for awhile. They love to watch youtube videos of trains and combines with me, and to occasionally play games from pbskids.org with Terah. That didn’t dampen their excitement for the command line in the least.

    2. I should add that I think part of the key here is they have a sense of ownership in it. I doubt they would enjoy spending much time with the command line on my computer. But they gathered up the parts for this, helped plug in the cables, and it’s in their room. That makes a huge difference.

  6. I enjoyed reading this very much, and I admire what you do for your children!

    One question comes to my mind immediately after reading this: How are you planning to deal with unsafe content on the internet? Considering the amount of computer knowledge your children are exposed to, I guess they are going to figure out pretty quickly (in a few years) what they can/cannot do on the internet with their computer. How do you plan to deal with this? DNS filtering? Proxy?

    Also, how do you plan to teach them how to deal with their data and make them aware of the potential dangers of putting their data online (facebook, google)?

    Cheers

    1. I really haven’t had the chance to think about the Internet much yet. I am sort of a “figure it out when the time comes” sort of person. Right now, the machine can get on the LAN but is completely blocked from the Internet by the firewall. (It can install Debian packages via my apt-cacher-ng proxy, but that’s all.)

  7. And in 25 years time, when he hits 30 doing a soul destroying IT job, he’ll curse your name and all you stand for.

    1. No, in 25 years’ time, he will be able to AVOID the soul-destroying IT job (if he sticks with IT, anyhow.)

      If you are really good, then you get to work the really good jobs.

  8. Please don’t think I’m trolling. We must remember that the world is different for our children. Mine expect on-demand. They are considered daft by their peers if they CANNOT operate an XBOX. Standing out from the crowd can be a potentially dangerous thing for a yung ‘un.

    1. If they can have the confidence to be different and happy with it — a hard thing as a child, I know from personal experience — all the better.

      They will probably never know as much about video games and pop TV as their peers.

      I am completely fine with that.

  9. Silicon Valley Elite Send Their Kids to School with No Screens

    http://www.nytimes.com/2011/10/23/technology/at-waldorf-school-in-silicon-valley-technology-can-wait.html?pagewanted=all

    LOS ALTOS, Calif. — The chief technology officer of eBay sends his children to a nine-classroom school here. So do employees of Silicon Valley giants like Google, Apple, Yahoo and Hewlett-Packard.

    But the school’s chief teaching tools are anything but high-tech: pens and paper, knitting needles and, occasionally, mud. Not a computer to be found. No screens at all. They are not allowed in the classroom, and the school even frowns on their use at home.

    Schools nationwide have rushed to supply their classrooms with computers, and many policy makers say it is foolish to do otherwise. But the contrarian point of view can be found at the epicenter of the tech economy, where some parents and educators have a message: computers and schools don’t mix.

    1. What makes you think that our boys don’t get a choice in what they do with technology? (Or religion, for that matter.)

      I thought I explicitly explained that it’s their choice what they do with it, and even IF they do anything with it.

      1. Yeah, anything, so long as they’re using your religion to do it.

        Learning how things work for the sake of learning is great, but your kids would be better served by familiarizing themselves with the same tools they’ll be using when they go to school.

        1. Forgot to say, it’s great that you’re getting involved with your kids in this fashion. A lot of parents don’t put in the effort.. Kudos to you.

        2. I couldn’t disagree more vehemently.

          Knowledge is a worthwhile end in itself. If they know how a computer works, they will be able to pick up Word or whatever without any trouble – and the other things they’ll need in life.

          School will teach them what they need for school. Let them explore otherwise.

          Who benefits if I just teach them what they’ll learn in school anyway? Maybe they’ll “get ahead” a bit, but that doesn’t really benefit anybody. Contrast this with the benefit they get from a lifetime of exploration, of problem solving, of tenacity, of being able to cope with failures and rise above them.

          I truly do not understand what you mean with your religion comments. As near as I can tell, some sort of trolling?

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

  10. oneko is likely to result in at least a day of enjoyment. It did for me even as an adult.

    There are a few other toys like that (xsnow, xroach), but they don’t seem to be packaged for Debian already.

  11. Wish I had someone to teach me how to use Linux when I was that age. All I had since ’95 was DOS and win95. It sounds awesome to hear that someone can teach linux to a child and the excitement that involves learning about a computer with such a powerful and diverse OS.

    Congrats!

  12. Hi John, great piece, I really enjoyed reading it. As someone with similar goals for my young son, I am interested in how you kept your 3 year old interested in the command line for so long. Did you use games, creating files, something else? If you could expand on this, I’d really appreciate it.

    Cheers!

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

        Thanks for the response!

  13. Why didn’t you let him run the install on this? teach him how to access that. the last few computers I have run I had my kids help with various bits, one of them my oldest daughter did almost by herself. The result: kids going to school and asking why the school uses MS products and then explaining to the teacher why Linux is better over all…

  14. Wow I had completely forgotten the joy I felt discovering the first computers I learnt on until reading this article. It was definitely the little things that excited me (seeing trash in the trash can). Great article!

  15. Thanks for sharing such a wonderful story. I really enjoyed reading it and had to smile a lot! I hope Jacob still has a lot of fun exploring linux space. To me it seems as if you’re doing a great – even very specific – job as father! Keep it up
    ! :-)

  16. Awesome! Very nice reading!

    Learning how to use the mouse is good for their coordination. Tuxpaint is a nice way to exercise this.

    But don’t forget to introduce them to xeyes! If they like, put a xeyes on their desktop.

    Also, if you have a new X server, connect another mouse, use the “xinput” command and put 2 pointers on the screen! Yes, it is possible! Use xinput –create-master and then xinput –reattach. I’ve seen many adults excited with 2 pointers, I can only imagine how children would react :)

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

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

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

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

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

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

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

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

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

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

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

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.