CrunchBang 11 Interlude

[If you don’t know who or what these (*) are, check the Glossary page]

First Pothole

I hit my first CrunchBang 11 pothole last night. I sat down to do some work on Defiant*. I wasn’t happy with the speed of the trackpad. The pointer was moving too fast for my taste, so I Googled it and came up with a page from the CrunchBang Wiki. We’ve used a lot of lx**** stuff with good results. While TheFrog* likes command line, I prefer nice, tidy, easy-to-use GUI* utilities. The CrunchBang Wiki page told me that if I loaded lxinput I’d get a GUI utility that allowed me to adjust mouse and keyboard settings. Terrific! Using a terminal window, I installed lxinput. (Can also be done with Synaptic: Settings->Synaptic Package Manager, search for lxinput.)


sudo aptitude update

sudo aptitude full-upgrade

sudo aptitude install lxinput

sudo reboot


This can be done in one line:

sudo aptitude update && sudo aptitude full-upgrade && sudo aptitude install lxinput && sudo reboot

[&& means AND]

I did an update and upgrade before installing lxinput, then rebooted. It probably wasn’t necessary to reboot, but as a survivor of the Windows 3.1 era, I always feel more secure after a reboot.

My login window came up…I entered user id and password…and:

failed to execute login command

Tried again with the same result. With growing feelings of trepidation and despair, I realized that I needed to get RoboFrog* involved. (Don’t get me wrong. TheFrog is able to fix most of our problems, but wow! It’s usually pretty ugly. HE can’t help tinkering. I just want to get some work done.)

“What’s up?”

“I broke Defiant. I can’t log on.”

“Really,” said TheFrog. “Cool! What did you do?”

Cool! See what I mean?

“I updated her and loaded lxinput.”

“What did you do for?” HE’s giving me that look. (Not that look; the other one.)

“I wanted to change the mouse speed. The pointer is too sensitive.”

“Why didn’t you say something?” said RoboFrog. “I could have fixed that without lxinput. Did you reboot before you loaded lxinput?”

“No…after.”

“So you don’t know whether the update or lxinput broke Defiant?”

“I guess not.” This conversation wasn’t doing much to cheer me up.

“Let me see her.”

Hands shaking, I handed Defiant to TheFrog. HE* sat down with her, tried a few reboots without success. Then HE switched to a console window (Ctl+Alt+F4) and logged on (It really is handy to know CLI*); poked around in a few configuration files, then loaded something and rebooted.

“Here.” He handed Defiant back to me. “She’ll work now. Tomorrow I’ll figure out what happened.”

Mouth hanging open, I blinked a couple of times and said, “That’s it? What did you do?”

“Not much. Slim’s not working, so I loaded gdm. I’ll fix her tomorrow.” (sudo aptitide install gdm3)

[Slim and gdm (Gnome Display Manager) are display managers. They manage your login when you start your system. CrunchBang 10 uses gdm as its default display manager while CrunchBang 11 uses Slim. Debian Wheezy (testing), on which CrunchBang 11 is based, uses gdm as its display manager. I suspect that’s how TheFrog knew it would work. Also, I suspect that the CrunchBang team switched to Slim because its a much lighter-weight display manager than gdm.]

I tried logging on.

“It’s still not letting me log in.”

“What does it say in the login session box?,” asked TheFrog.

“Default session,” I reply.

“Click on the drop-down box and set the session to Openbox.”

I did, and sure enough, everything was fine. Other than having a different login screen, I couldn’t tell the difference. And…I got a lot of work done. For once, RoboFrog simply fixed the problem without tearing the machine apart. Now that was cool.

Good to HIS word, by the time I got to the RFCC* this morning, RoboFrog had Defiant completely restored to her pre-lxinput condition. Apparently, HE wasn’t interested in worrying about what lxinput did. HE confirmed, though, that is was lxinput and not the system update that caused the problem. HE reinstalled CrunchBang 11 and restored my backup.

If you’re running CrunchBang 11…DO NOT…install lxinput!

By the way, TheFrog also fixed my mouse pointer speed. That’s a story for another time.

CrunchBang 11, Apple Extended Keyboard

[If you don’t know who or what these (*) are, check the Glossary page.]

I’m surprised by the things that capture Robofrog’s* attention. I came into the RoboFrog Computing Center (RFCC) this morning and HE’s* hopping up and down all over the place.

“You gotta see this!”

Do I really want to know? It’s too early for this.

“Whatcha got?,” I ask.

“Look. I searched for [apple extended keyboard insert f13] and there we are at the top of Google’s search results.”

Forgive my vanity. There on HIS screen was The Robotic Frog right at the top of the Google search list. Trust me on this one. The first time you see your web site pop up on a Google search is pretty cool. You get a little tingle that runs all the way up your back. And, there’s Lazy Robot close at hand.

I’ve already lost TheFrog’s attention. Looking over HIS shoulder, I see that HE’s entering another search. It’s the same search except he removes the f13 keyword. Now, we’re nowhere in sight. RoboFrog clicks through a couple of pages and there we are on the third search-result page. Lazy Robot is gone altogether (at least as far as we checked…6-7 pages).

This post isn’t about how to do a Google search, but I can see that look on RoboFrog’s face. You know the one I told you about. HE’s frozen in place with knitted brow and I can see the wheels turning. Google knows about us. Google knows about Lazy Robot. So, why did Lazy Robot disappear and why did we drop so far back in the search results? For now, I’ll let TheFrog do HIS thing and I’ll tell you what HE comes up with another time.

Update: RoboFrog left one really important keyword out of his search: Linux! That’s a big oversight. It’s usually HIS first keyword when searching for information to solve a problem on a Linux system. HE got lucky with the f13 thing , but if HE had included ‘Linux’, HE wouldn’t have needed the f13. I’m thinking search is as much art as science.

More Apple Extended Keyboard

Apple Aluminum Keyboard

Apple Aluminum Keyboard (Photo credit: jgarber)

RoboFrog forgot to include ‘linux’ in HIS keywords and fortuitously threw in f13. What if the f13 had not occurred to HIM? Could HE still have assigned Insert to the F13 function key? Sure. The information from the ArchWiki combined with the man pages was enough to fix this problem.

From our previous post:

********************

Reading down the ArchWiki page, we find a few more clues. Under the Media Keys section are the following:

  • ~/.Xmodmap
  • keycode 49 = less greater less greater bar brokenbar
  • “Then run xmodmap ~/.Xmodmap. This command can also go into ~/.bashrc.”
  • xev

It’s rare that we get a perfectly tailored post like the one from Lazy Robot. More often, we get clues like those from the Arch Linux Wiki. All of the clues we need to assign Insert to F13 are contained in those four bullet-points.

First, we need to find the keycode for our F13 function key. We learned from the ArchWiki that xev is a command line utility that displays keycode information. xev is already installed on our systems; we suspect that’s the case with most Linux distributions. On Debian-based systems, it’s included in the x11-utils. So, let’s fire up xev and see what we get.

  • Open a terminal window.
  • Execute xev.
  • Press the F13 key.

In the terminal window you’ll see a description of two events: KeyPress, KeyRelease. Most of the information is of no use to us, but under both KeyPress and KeyRelease we see keycode 191. This agrees exactly with Lazy Robot’s information. So far, so good.

The Dreaded Man Pages

We don’t really need the man pages. With the information from the ArchWiki, xev, and a common-sense guess, we can get the job done. It is a mistake to avoid the man pages, though. They’re difficult to read for Newbies and early HAC (Have-A-Clue) Linux-ers, but the only way to get comfortable with them is to struggle with them a bit. In the case of xmodmap, the man pages have some important stuff.

In a terminal window, type ‘man xmodmap’ (without the single quotes). You’ll get something like the picture above. To navigate the man pages press <spacebar> to page down, <down-arrow> to move down a line at a time, <up-arrow> to move up a line at a time, <b> to move up a page. Let’s look at some important things that we find in this man page.

NAME
xmodmap – utility for modifying keymaps and pointer button mappings in X

Man pages are divided into sections. The first, NAME, tells us that xmodmap is a utility. So it’s a program that we’re going to run from the command line or from a script. And, it’s for modifying ‘keymaps and pointer button mappings’. When you press a key on the keyboard, it produces a number. In our case, F13, produces 191. The keymap tells the system what to do with the number 191 received from the keyboard. We need to modify the keymap so that it tells the system to do the Insert function.

Here’s an important point. I don’t know what ‘pointer button mappings’ are. I suspect it’s mapping buttons from something like a mouse, but that’s a guess. I don’t have to understand everything in a man page. There’s useful stuff in them that I do understand and the more I read them, the more I understand.

SYNOPSIS
xmodmap [-options …] [filename]

Synopsis is a pretty important section. It tells us how to use the command; it describes what we are to type on the command line. Anytime something is enclosed in square brackets, […], it means that it’s optional. You may have that thing…or, you may not have it. To execute xmodmap, we type xmodmap on the command line, a space, zero or more options, a space, and a filename…or no filename. That means that we can execute xmodmap without any options and without a filename. Try it. You’ll get some interesting information.

DESCRIPTION
The xmodmap program is used to edit and display the keyboard modifier map and keymap table that are used by client applications to convert event keycodes into keysyms. It is usually run from the user’s session startup script to configure the keyboard according to
personal tastes.

Exactly what we want to do, and something really important. It runs from our startup script. This is why we lost our Insert key when we rebooted (see previous post). The ArchWiki gave us the same information when it said that this can be included in ~/.bashrc.

OPTIONS
The following options may be used with xmodmap:

  •  
  •  
  •  

The filename specifies a file containing xmodmap expressions to be executed. This file is usually kept in the user’s home directory with a name like .xmodmaprc.

We know from the information from the ArchWiki that we don’t need any options. We just need the filename of our configuration file (.Xmodmap). The man page recommends a name like .xmodmaprc. We like that suggestion because the rc on the end of the filename reminds us that it’s a configuration file. On our systems, we’re taking the man page recommendation and naming our configuration file .xmodmaprc. Use what feels best to you.

Finally, there is interesting (and potentially important) information in the next section.

EXPRESSION GRAMMAR

The list of keysym names may be found in the header file <X11/keysymdef.h> (without the XK_ prefix), supplemented by the keysym database /usr/share/X11/XKeysymDB. Keysyms matching Unicode characters may be specified as “U0020” to “U007E” and “U00A0” to “U10FFFF” for all possible Unicode characters.

keycode NUMBER = KEYSYMNAME
The list of keysyms is assigned to the indicated keycode (which may be specified in decimal, hex or octal and can be determined by running the xev program). Up to eight keysyms may be attached to a key, however the last four are not used in any major X server implementation. The first keysym is used when no modifier key is pressed in conjunction with this key, the second with Shift, the third when the Mode_switch key is used with this key and the fourth when both the Mode_switch and Shift keys are used.

  •  
  •  
  •  

Remember that I said that I would have guessed at Insert for the keysymname? We don’t have to guess, though. The man page tells us that the keysym names are defined in the file keysyndef.h, that they are prefixed with XK_, and that we use the name without the XK_ when we assign the name to a number.

Tip: Do yourself a favor. CrunchBang doesn’t install the locate command. I find this command particularly helpful when trying to find a file like keysymdef.h. No problem; just install it.

aptitude install locate

or

apt-get install locate

Then:

sudo updatedb

To see locate in action: locate keysymdef.h. Now, it’s easy to open keysymdef.h in a text editor and find the definition of the Insert function (XK_Insert). Cool.

The only thing left is to put it all together. We end up with the same solution we had in our previous post:

  • create a configuration text file in our home directory (/home/robofrog/.Xmodmap)
  • Add a line to the file: keycode 191 = Insert
  • From the command line execute: xmodmap ~/.Xmodmap
  • Add ‘xmodmap ~/.Xmodmap &’ to our autostart script (see previous post)

That’s it for the Insert key. Next time, a couple of other tweaks to our Apple Extended Keyboard and we’re finished. The perfect keyboard. Thanks CrunchBang!

CrunchBang 11 (Waldorf)

[If you don’t know who or what these (*) are, check the Glossary page.]

At The Robotic Frog, we like newbies! But…CrunchBang is NOT a distributions for newbies. If you’re brand new to Linux, we recommend Xubuntu 12.04. Does that mean that a newbie can’t get CrunchBang to work? Not at all. It’ll just takes some patience and hard work. If you’re a newbie and you think you really want to give CrunchBang a try…and you need help…drop us a comment and we’ll do the best we can to help.

I’ve spent roughly three days with CrunchBang 11…and I think TheFrog got it right. I have never used a Linux distribution that grew on me so fast.

When RoboFrog first loaded CrunchBang, the only thing going through my head was “Wow. That’s just butt-ugly!” Call me shallow, but I like a Linux distribution that at least makes an attempt at looking attractive. Xubuntu is difficult to beat for initial impressions. It is stunningly attractive. The impression is that the Xubuntu team put a lot of work into getting everything right. As I said last time, CrunchBang comes up with a face that only a mother could love. Thankfully, it only takes a few minutes to make it much better.

CrunchBang has a minimalist user interface and we like that. Actually, I don’t think it’s as minimalist as it looks; rather, it’s efficient and elegant. In the three days I’ve been using CrunchBang 11, I’m completely in love with it. Now I understand the look in RoboFrog’s eyes. I’m still waiting, holding my breath, hoping a big disappointment doesn’t show up. So far, it hasn’t; CrunchBang just keeps getting better and better.

Their web site says that CrunchBang is infinitely hackable. Being slightly mathematically inclined, I’m not altogether comfortable with the word infinitely in this context, but let me say emphatically: We haven’t found anything that we want to change that we can’t…easily. Let’s see  how to make CrunchBang more presentable.

The unreadable text on the right side of the screen is Conky. Conky solved a couple of problems we’ve had for a long time. We’ll tell you about that another time. First, lets change the Conky display so that we can read it.

Settings!

You get the System Menu by right-clicking anywhere on the screen. No more chasing after a panel-button in a corner of the screen or on a shortcut panel. You simply right-click wherever your mouse is. There’s one exception. If the screen is covered with an application, you’ll have to move your mouse to the panel (default: top of screen) and right-click there to get the System Menu. In practice, we don’t find that we have to do that much.

[Update: Just found this. If you have a Super key (Windows key on PC keyboard, Command key on Apple keyboard) Conky comes to the rescue. Super+space brings up the system menu even with the screen covered by an application.]

Right-click to bring up the System Menu. Search downward until you find Settings. You’ll want to spend a lot of time in the Settings menu. You can change almost everything about how your system looks or operates from this menu.

Choose: Settings->Conky->Edit .conkyrc

This brings up the configuration file for Conky. Once you get used to editing these configuration files, you can turn your system into almost anything you want.

.conkyrc comes up in a text editor. We made three changes to the Conky configuration: 1) We changed the xtfont to Droid Sans, 2) We changed size=12, and 3) changed default_color to ffffff’. We weren’t sure Conky would accept color codes in hex, but it appears to work. The lines we changed look like this:

xtfont Droid Sans:size=12

default_color ffffff

Save your changes, and finally, you can read the Conky display. We think it’s pretty cool…and useful.

Note: We like the Droid fonts. I can’t remember whether the system comes with them loaded or RoboFrog loaded them. If they aren’t loaded on your system: $ sudo aptitude install droid-fonts.

Okay, so how about the background? Even easier. Bring up the Settings menu; go to Choose Wallpaper…and you’ll find a few really ugly wallpapers. Maybe it wasn’t as easy as I implied. Not a big problem, though. Find some wallpapers that you like, maybe you already have some favorites or download some from the Internet. Here’s the important part: AS ROOT (sudo cp …), copy them to /home/<username>/images/wallpapers/shared. Once they’re copied to this folder, you can go back to Settings->Choose Wallpaper, select the one you want, apply, close, and you have a new background. Now things are getting much better. Most of the ugly is gone.

I don’t get all the grayed-out text. We simply can’t read it, especially on a gray background. Here’s the last change we made for our initial setup. Let’s make the clock and workspace numbers so we can read them.

Settings->tint2->edit config file

In this configuration file, we made the following changes:

taskbar_name_font = Droid Sans 12

taskbar_name_active_font_color = #ffffff 100

time1_format = %H:%M

time1_font = Droid Sans Mono 12

clock_font_color = #ffffff 100

Then:

Settings->tint2->Restart tint2

That’s it! Now, you have an attractive, efficient, elegant user interface, a large selection of up-to-date applications, and a very stable system. Very cool!

Appeal to Reason

Let me make a plea for Linux developers everywhere. These folk put a lot of time, blood, sweat, and tears into creating amazing, free (as in freedom…and beer) OS’s and software that enrich our lives. At The Robotic Frog, we’ve looked for the “right” Linux for a long time. We like Xubuntu, but we LOVE CrunchBang 11. We’re so convinced that CrunchBang is what we’ve been looking for, that yesterday, we sent them a donation. It won’t be the last. Some developers are paid for the work they share with us. Most aren’t. They do it and make their work available to us for the joy of doing it. That doesn’t pay for the servers, the rent, or feed their families, though. Time is ultimately the only currency we have. Let’s help these folk keep doing what they love so they can keep providing us with stuff WE love. If you have a Linux distribution…if you have embraced a distribution that you intend to use for more than a few days…consider sending them a donation…even if it’s just $1 (US or equivalent). We tried more Linux distributions in the past 9 months than in the entire time we’ve used Linux. If we had sent $1 (US) to every distribution we tried, it would be less than $30 (US). As I sit here thinking about it…that’s not much. I could…and will in the future…gladly pay $1 (US) just for the privilege of being able to try a new Linux distribution. Please consider donating to your favorite Linux distribution. You know what the alternative is if there were no Linux.

CrunchBang Linux 2

[If you don’t know who or what these (*) are, check the Glossary page.]

It’s Not a Job…It’s an Adventure!

In the morning, I have a routine. I’m an early riser; I come downstairs, grab a cup of tea or coffee, go to my computer (BigDog*), and check out the morning news. It’s quiet in the house, just me and the dog…and that’s the way I like it. Once I have my dose of legal stimulants and make sure that the world hasn’t blown itself to hell overnight, I’m ready to leap tall buildings with a single bound. I hope you infer from this, that for me, this might not be the best time for big surprises. This morning, I power up BigDog and here’s what greets me: !!! This isn’t Xubuntu 12.04.

What in the world did TheFrog do? We have an agreement here on the LilyPad. I need at least one machine that always works…one machine that RoboFrog keeps his hands off. BigDog is supposed to be that machine. HE comes in; without a word, HE sits down at Untouchable* and starts tinkering.

We spent months trying Linux distributions before Xubuntu 12.04 was released. It was like an answer to our prayers. Other than the problem with Thunar (file manager), it just worked…and it’s beautiful. If we were recommending Linux for a newbie, Xubuntu 12.04 would be it.

“What did YOU do!?”

TheFrog continues tinkering with Untouchable.

“Try it. You’ll like it.” HE doesn’t even look up.

I take a big breath and look at BigDog. Clearly, we’re not in Kansas anymore. It is attractive, though. What is it? CrunchBang!

“I though YOU had a big problem with CrunchBang.”

“Yeah, I did,” HE replies. “But I fixed it. I loaded CrunchBang on all of our machines.”

“!!!!!!…What!?” I’m trying not to scream.

“Try it. You’ll like it; I promise.” HE still doesn’t look up.

For RoboFrog, it wasn’t an issue at all. For me…well, I was doing everything I could not to crawl under my desk, and thumb-in-mouth, curl up into the fetal position. The last time I talked with TheFrog, HE had a deal-breaking problem with CrunchBang. Now, HE had loaded it onto every machine we have and I was supposed to take it in stride. Wow!

Problems in CrunchBang-ville

TheFrog loaded CrunchBang 10 onto Dellbert* and it exceeded all of our expectations. Then, HE moved on to Untouchable. That’s where the problems began. HE tried the same tests HE did on Dellbert (previous post).

RoboFrog couldn’t get a movie to play properly on Untouchable. Untouchable would transfer part of the movie, play it, stop and think for awhile, transfer some more, play it, stop and think for awhile, and so on. Totally un-watchable. TheFrog decided to copy the movie file (3.1 GB) to Untouchable and try playing it from the local hard drive. At 1 hr 5 min, HE shut it down. The transfer still hadn’t completed. It should have taken 5 or 6 minutes. Clearly, there was a problem with NFS (Network File System). Dellbert had done a phenomenal job. Untouchable was a much more capable machine. Why was it taking so long to transfer the file?

RoboFrog decided to start with Debian 6.0.5 and work HIS way forward from there. Debian 6.0.5 had the same problem. HE tried transferring the 3.1 GB file. HE stopped it at 1 hr. It was transferring, but at a glacial pace. The problem was with Debian 6, not CrunchBang. What was the difference between Dellbert and Untouchable? 32-bit vs 64-bit version. TheFrog’s conclusion was that there’s something wrong with the 64-bit version of Debian 6 with respect to NFS. Xubuntu had worked perfectly. We used NFS for all of our backups and for access to our movie library. This was a deal-breaker. CrunchBang 10 (Debian 6.0.5) wasn’t going to work for us.

The wheels were turning, though. When TheFrog wants something, HE’s not easily put off. HE was smitten with CrunchBang and…NO…simply wasn’t an option. Then it came to HIM. Debian 6 was timing out. They were well along the way with Wheezy (Debian Testing). CrunchBang had to be well along the way with a Wheezy-based distribution as well. HE poked around the CrunchBang web site, and sure enough, there was CrunchBang 11 (based on Debian Testing). HE downloaded CrunchBang 11, loaded it onto Untouchable, and repeated the file transfer test.

It took only 4 min 50 seconds to transfer the 3.1 GB file from Whitestar* to Untouchable. That was more like it. HE still had CrunchBang 10 loaded on Dellbert, so HE tried the file transfer with Dellbert: 6 min 10 sec. CrunchBang 11 worked almost perfectly on Untouchable. In addition, we got lots of updated applications. There was one minor problem with CrunchBang 11.

CrunchBang 11 experienced the same problem with Thunar (file manager) that plagued Xubuntu. We verified that it was a Debian/Xfce problem, not CrunchBang. Thunar was a minor problem because HE simply replaced Thunar with PCManFM. Problem solved.

It was at this point that RoboFrog got the bright idea to switch all of our machines over to CrunchBang. For now, HE was leaving Dellbert on CrunchBang 10. Everything else had been converted to CrunchBang 11.

Here’s a look at CrunchBang 11 on Untouchable. Now that I’m over the initial shock of having all of our machines converted to CrunchBang, I’m looking forward to giving it a try. TheFrog says “Try it; you’ll like it.” We’ll see. Next time…How HE transformed an ugly duckling into a beautiful swan.