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. Then I’m sure they’ll be delighted by the Xfce mouse :)

    Reply

    John Goerzen Reply:

    I’m not quite sure what you mean – is there a “mouse chases cursor” type of program for XFCE?

    Reply

    juanefren Reply:

    IIRC, cursor often converts into a mouse (I think that happens when “waiting”).

    Reply

    Joseph Reply:

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

    Reply

  2. You should perhaps have a look at gcompris.

    Reply

    John Goerzen Reply:

    That does look interesting. Thanks.

    Reply

    Sune Reply:

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

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

    Reply

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

    Reply

    John Goerzen Reply:

    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.

    Reply

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

    Reply

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

    Reply

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

    Reply

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

    Reply

    John Goerzen Reply:

    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.

    Reply

    John Goerzen Reply:

    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.

    Reply

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

    Reply

    John Goerzen Reply:

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

    Reply

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

    Reply

    John Goerzen Reply:

    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.

    Reply

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

    Reply

    John Goerzen Reply:

    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.

    Reply

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

    Reply

  12. You know how devout Christians push their religion onto their kids?

    Reply

    John Goerzen Reply:

    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.

    Reply

    Dude West Reply:

    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.

    Reply

    Dude West Reply:

    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.

    John Goerzen Reply:

    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?

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

    Reply

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

    Reply

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

    Reply

    John Goerzen Reply:

    Quite a few things: ASCII art animation, audio things, interactivity. I wrote about most of them in earlier posts: see the index here: http://changelog.complete.org/archives/category/technology/children-computing

    Reply

  16. 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…

    Reply

    John Goerzen Reply:

    Jacob sat on my lap while we installed Debian originally. http://changelog.complete.org/archives/1451-jacob-has-a-new-computer-and-a-favorite-shell

    He typed in part of one apt-get command for this, but as I didn’t know the exact package names off the top of my head, he lost interest (or I should say, lost interest in doing it himself) for this week’s stuff. That’s OK. He’ll probably get into it later.

    Reply

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

    Reply

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

    Reply

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

    Reply

Leave a Reply

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