Category Archives: Linux

Customizing BunsenLabs Linux

bunsenlabsI’m configuring a new Y400 Lenovo laptop with BunsenLabs (Debian 8) Linux today, and figured I should document some of my changes here for future reference.

Install

After you boot the BunsenLabs image, don’t use the graphics installer. The text-mode installer connects to WIFI better, in my opinion. Installation was fairly smooth, but I had to change the Lenovo Ideapad Bios boot order, because my USB stick wasn’t booting.

Tint2

One of the first things I like to do with Tint2, I change the height from 30px to 18px, especially if it’s a laptop with poor resolution. Overall, the default Tint2 configuration is really excellent. Two desktops is really all you need and BunsenLabs gets this right. I also change the clock to something like this, because the default 24-hour format doesn’t make as much sense.

# Clock
time1_format = %A. %B %d, %-I:%M%P
time1_font = Sans bold 7

I also move Tint2 from the top to the bottom. After years of using CrunchBang, this is just how I like it best.

I also disable the “clipboard” app in /home/pj/.config/openbox/autostart because I never use it and I figure it’s a security risk.

Fonts

Before I get into my video card issues, here’s an easy, quick win. Install all the Google Web Fonts: https://github.com/qrpike/Web-Font-Load

One problem I had with this laptop: Is the integrated Nvidia card busted? That’s what the previous owner said. However, I’m not convinced that it’s really damaged. It’s possible that it’s just a configuration issue. That said, this looks like the problem I had initially: http://askubuntu.com/questions/584922/how-do-i-fix-fonts-not-rendering-and-missing-letters

Update: If you skip down to the “YouTube” section below, you’ll notice I found a better solution to this problem, that doesn’t involve disabling subpixel smoothing. But some of the info below is still pertinent.

According to that answer, it’s some kind of subpixel smoothing glitch. Perhaps subpixel smoothing activates or aggravates the integrated GeForce Nvidia card. Anyway, I disabled subpixel smoothing.

The gotcha here, if you go back into System / Appearance at a later date, Debian reverts back to subpixel smoothing. In my experience, “lxappearance” is not a very serious solution, as it forgets your customizations. If there’s something specific you want changed permanently, it’s better to edit the gtk files yourself, by hand.

Shortly after writing this, the screen went bonkers (unreadable) and I’m 99% sure this was due to the Nvidia GeForce GT M650 graphics card integrated into this Lenovo Y400. So last night, I gave Nvidia the benefit of doubt and made the mistake of running nvidia-detect and subsequently installing nvidia-driver. After that, the system wouldn’t start.

In retrospect, I suppose it could have been some kind of xserver configuration problem caused by installing nvidia-driver onto BunsenLabs? But I’m not going that route right now.

How did I get things back to normal? I booted into “recovery mode” (text mode terminal) and did this:

apt list --installed|grep nvidia

That showed me all the nvidia stuff that was installed that I didn’t want. The graphics hardware could be damaged, which means I don’t want my system using nvidia drivers at all. My logic is, without the nvidia drivers, the system will fall back to a safer mode. That worked and I was able to boot up again. However, the crazy fonts problem remained. Now what?

I used grep to search /etc and /home/pj/.config for “rgba” (this was the best explanation as per Stack Exchange) and found there was a config file (fonts.conf?) that was still using subpixel smoothing. I set that to “none” and set the lcd mode to “false”. This more or less solves the problem.

Geany

I also spend a good amount of time customizing Geany, which makes editing the various config files less annoying. For this laptop, I’m using DejaVu Sans Book 6 for most of the system. I also invert the default color scheme.

PyTyle & Openbox

Also very important for my workflow, I get PyTyle and add it to /home/pj/.config/openbox/autostart and the .deb file is here, very easy to install: http://notesalexp.org/

After PyTyle is installed, I can turn off window decorations in Openbox config. And/or it might be possible to turn off the window decorations under “MISCELLANEOUS OPTIONS” in the pytyle configuration:

/home/pj/.config/pytyle/pytylerc

Power Management

By default, BunsenLabs suspends the system when the lid is closed. Unfortunately, this doesn’t work with the Y400. So I disabled that in the power management settings.

Suspend works, but not if you close the lid. Hibernate works, lid closed or not, which is what I plan to use going forward. I’ve found with most devices, with Debian, you get one or the other, rarely both. However, hibernate is not perfect, I think because I enabled encryption on the drive. It’s not a big deal though, you just enter your password before it un-hibernates.

Update: After adding `quiet splash nouveau.noaccel=1` (see notes below) I can suspend the laptop, no problem. However, hibernation isn’t working well now, and I think that’s either because I incorrectly mapped the internal 16GB SD drive during the installation process, or because I chose the “encrypted disk” option during installation. If I could go back in time, I would have avoided the internal SD drive altogether, because I think it messed up the boot order somehow. If you know the answer, email me.

I had to disable the screen saver, which was closing my applications after just a few minutes. I think this app is part of the problem and I just removed it. I prefer “slock” anyway. As far as I can tell, it’s safe to remove light-locker.

apt-get remove light-locker

Earlier today, I made the mistake of uninstalling xfce4-power-manager. Don’t do that, because it activates your brightness/darkness backlight Y400 Ideapad function keys. Xfce4-power-manager-settings is too aggressive with power-savings IMO. Nonetheless, it’s important if you want your backlight keys to work.

YouTube

The Nvidia GeForce will freeze in YouTube, most likely because YouTube uses the nvidia hardware acceleration. I’ve watched a dozen videos so far and I think this is the solution: Open /etc/grub.d/10_linux and add the line GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nouveau.noaccel=1". Then don’t forget to run update-grub. It works, but here’s the part I don’t understand. If I run glxinfo|grep direct (after rebooting) it says, “direct rendering: Yes.” Which I believe means hardware acceleration is still on. Maybe the direct rendering is simulated somehow by nouveau? I can’t complain, because YouTube is working. Now I’m thinking, if this “noaccel” switch really works, then I can turn subpixel smoothing back on.

Notifications

I figured out how to send myself notifications. This is a cool way to monitor various things. For example, here’s how to monitor your public IP address every 20 minutes:

5 * * * * pj export DISPLAY=:0 ; notify-send "$(wget http://ipinfo.io/ip -qO -)"
25 * * * * pj export DISPLAY=:0 ; notify-send "$(wget http://ident.me -qO -)"
45 * * * * pj export DISPLAY=:0 ; notify-send "$(wget http://icanhazip.com -qO -)

What else did I do?

It’s been a long journey, mostly because I’m picky, curious, and figure that I’ll be using BunsenLabs for years to come. One tip, if you forget what you installed or uninstalled, you can find the whole history in /var/log/apt/history.log

Assuming you have a 64bit system now, you can get 32bit Skype following these instructions. There might be a 64bit Alpha version of Skype, but I didn’t try it yet.

Is this all worth it? Yes. That’s how much I like Debian and the Crunchbang-BunsenLabs tweaks. Originally I came from Fedora, and still use CentOS on my servers, but now I feel at home with Debian. Until I looked around at other options, I didn’t realize how familiar I am with BunsenLabs Debian. Once it’s setup, it just works and works for years.

If you have any feedback/comments, email pj@pjbrunet.com, thanks.