Blog
Opera without Ads
To today Opera released their browser for free (as in beer) without advertisement. This is really good news for me because Opera is my favorite browser and a great piece of software.
And before someone is arguing that i should use Firefox instead because Opera is not opensource (free as in speech), i _am_ a supporter of Free Software but Opera is just an exception. Out of curiosity i have even installed vrms to show the non-free packages on my system and here is the result.
Non-free packages installed on mydebian
opera The Opera Web Browser
1 non-free packages, 0.2% of 617 installed packages.
So you see it is really just opera but i can't actually describe why i like it. It is simpy the best internet experience, (except lynx of course ;).
A quote from Slashdot illustrates it quite well.
So thanks Opera for releasing your great browser.
XPM Icons for the fluxbox menu
I recently needed some xpm icons for my fluxbox menu, i found the following recources quite useful.
Integrating the icons into the fluxbox menu is straight forward.
[exec] (text) { command } <~/.fluxbox/icons/icon.xpm>
Below is a screenshot of my current menu.

Testing multiple window manager simultanously with Xnest
My favorite window manager is currently fluxbox but i recently wnated to try out wmii. So i searched for a way to run multiple window managers and still be able to switch between them. This is were Xnest comes in. With Xnest it is possible to nest a xserver huh suprised aren't you ;)
We have to pass another display number to Xnest because the default 0:0 is normally already in use.
Xnest -ac :1Afterwards we can start any application on our nested Xserver the easiest way is probably to launch an xterm and issue further commands from there.
xterm -display :1Note that within our new xterm the display environment variable is set to :1.0
echo $DISPLAY
:1.0Another way would be to simply set the display variable to 1 instead of 0 in the terminal where you started Xnest. All application will redirect their graphical output to the nested x server.
export DISPLAY=":1.0"Next step would probably be to start a window manager in my case i just typed /usr/bin/wmii in my xterm and everything worked as expected.
Sound mixing with the ALSA Dmix plugin instead of a soundserver
Im quite sure you have already tried to play 2 or more sounds simultaneously, you probably got a message saying that /dev/dsp is busy that's because only one process can open the sound device at a time.
Of course there are different solutions to work around this problem. One possibility is to use a soundserver like aRtsd, EsoundD or jackd. Applications will no longer talk directly to the sound device, instead they will send their data to the soundserver which will then mixe several audio streams for playback by a single audio device.
However for my purpose a soundserver is overkill, there is another way to achieve the same thing with dmix which is a alsa plugin. I honestly don't know why they call it plugin because at least in my alsa it was already integrated and i just had to create a ~/.asoundrc configuration file to work with my sound chip (snd_intel8x0).
pcm.dmixer {
type dmix
ipc_key 1024
slave {
pcm "hw:0,0"
period_time 0
period_size 1024
buffer_size 8192
rate 44100
}
bindings {
0 0
1 1
}
}
pcm.dsp0 {
type plug
slave.pcm "dmixer"
}
pcm.!default {
type plug
slave.pcm "dmixer"
}
pcm.default {
type plug
slave.pcm "dmixer"
}
ctl.mixer0 {
type hw
card 0
}The downside of this method is that you have to configure each sound application to use the alsa:dmix plugin. In xmms this can be done in the Preference window by choosing the "ALSA output plugin [libALSA.so]" and configuring it to use "plug:dmix" as audio device. For vlc you have to install an additionally package.
apt-get install vlc-plugin-alsaAfterwards you can change your ~/.vlc/vlcrc to use the plugin.
[alsa] # ALSA audio output
# ALSA Device Name (string)
alsadev=plug:dmixThe correct settings for other applications can be found with google. This howto could also be of interest.
Bootsplash on Debian Sid
First of all i do normally not so much care about eye candy stuff, but recently my girlfriend told me that she found it quite boring to see the bootlog scrolling over the screen. And because i have never set up a bootsplash before i gave it a try.
Patching the kernel
First of all we need to patch our kernel, the patches can be found on bootsplash.org or bootsplash.de. They can be applied as usual.
cd /usr/src/linux;
patch -Np1 -i bootsplash.diff
Configuring the kernel
Afterwards we can configure our kernel with make menuconfig. The following options should be compiled in.
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
Processor type and features --->
[*] MTRR (Memory Type Range Register) support
Device Drivers --->
Block devices --->
<*> Loopback device support
<*> RAM disk support
(4096) Default RAM disk size
[*] Initial RAM disk (initrd) support
Graphics support --->
[*] Support for frame buffer devices
[*] VESA VGA graphics support
Console display driver support --->
[*] Video mode selection support
<*> Framebuffer Console support
Bootsplash configuration --->
[*] Bootup splash screen
Userspace modifications
Next we have to set up some userspace tools, to accomplish this we add 2 temporary lines to our sources.list
cat >> /etc/apt/sources.list << "EOF"
deb http://debian.bootsplash.de unstable main
deb-src http://debian.bootsplash.de unstable main
EOFNow we are ready to install a the needed packages.
apt-get install bootsplash sysv-rc-bootsplashNormally debconf should ask you a few questions and create a initrd.splash. However if this doesn't happen you can do it manually.
splash -s -f /etc/bootsplash/themes/default/config/bootsplash-1024x768.cfg > /boot/initrd.splash
Adjusting the bootloader
The last step is to adjust our bootloader configuration. Here are the relevant entries from my /boot/grub/menu.lst
title Debian GNU/Linux Sid / 2.6.13 splash
root(hd0,0)
kernel /linux-2.6.13-splash vga=791 splash=silent
initrd /initrd.splashEnjoy your bootsplash.
