You are press.

My previous blogentry caught quite some attention.
Within 36 hours, I burnt 90GB of traffic (thanks jorik for bearing with me!), and at first apache
choked on the number of incoming request. But that was only a configuration problem, apache needed
its maximum number of concurrent connections increased. I blame the web-2.0 buzzword for this.

So most of the users were eager to see screenshots of what’s going to become KDE 4.0, Aaron’s
changed to parts of the plasma user interface (panel and krunner theming were updated shortly
before) probably helped a bit. Right before my blogentry, we released KDE 4.0 rc1, which didn’t
have those new looks, and we didn’t really bother posting screenshots along with the announcement.
So why that? It has everything to do with our current release process. Dirk usually tags the next
release on wednesday, then it gets roughly a week of testing, making compile and fixing obviously
stupid things you inevitably get when snapshotting an source code repository that’s heavily worked
on. So it takes about a week to prepare the release and distribute it to the packagers of various
distributions to give them some time to build the code. The announcement is usually done the week
thereafter on Tuesdays. And in this case, those running KDE trunk have the more recent code when
the release that has been tagged one week before is announced. This will probably change once we
branch 4.0 and trunk/ becomes KDE 4.1-in-progress. This, however, will also still take some time.
It has been shortly discussed in the release team, and most people think that we should not distract
ourselves by branching off 4.1 too quickly.

So you are press. A lot of KDE’s PR comes from people within the community. It’s
quite natural, given the interesting blogposts on PlanetKDE.

We can make it even more popular by reaching out and being more verbose about the cool desktop,
apps and libraries we create.
I gather that KDE is also read by quite some people who might not
be following the traffic on various mailinglists, and it’s always beneficial for us if we know
better what’s going on in other parts of the project. Let’s feel encouraged by the amount of
people eagerly waiting for information to pop up. Create screenshots of cool things in KDE,
explain them shortly and blog it. We can probably also amaze ourselves quite a bit by all those
tricks that can be done with our new KDE — such blogs also make nice additions to the
documentation and might also enlighten those people longing for this handy feature to dump their
proprietary platform and switch to KDE.

My favourite feature this week was the “undo close tab” which konqueror now has. When logging
into my KDE 4 desktop, konqueror friendly asked when starting up if it should also restore the
previously opened tabs. Sure, do it. Works like a charm! :-)

Last week, my favourite feature certainly was Kate’s sessions. It’s not a new thing, but I
never bothered looking at it and considering it. Now, my kate has a couple of sessions that
save me the tedious work of opening 5 documents (that often are located in different
directories). Now it’s two clicks away and I can get to work right away.

KDE 4 snapshot screenshots.


The current look of the desktop.

Without ado, here’s a bunch of screenshots of how KDE 4.0 currently
looks like. Please note that this is very recent, and not all of it
is part of the just-released KDE 4.0 RC1. It’s that
fresh.
Click here to get
to all the screenshots.
This is the desktop, showing some plasmoids, the panel (which really is a container
for plasmoids, konsole, nothing really fancy ;-)).


KSysguard. the System monitor and systemsettings, the settings dialogue.

KSysguard and systemsettings, configure and monitor what’s going on. Systemsettings replaces
kcontrol, ksysguard has seen a huge overhaul, using vectorgraphics now. Mix that with some
usability improvements and you get this.

Dolphin is KDE4's filemanager. Dolphin is very stable already, and looking good. Have a peak at its configuration dialogue.

KRunner and Kickoff, parts of plasma.
Pressing Alt+F2 opens the KRunner interface. It gives you access to starting applications,
but it’s also a pocket calculator (type in =42*42), a converter for various units and
can be used to start a search via strigi, KDE4’s desktop indexer.

Gwenview, the image viewer. Gwenview, KDE’s image viewer has seen major improvements in the user interface, making it
quicker and easier to use.

Okular, KDE's multi-format document reader. Okular is the new document reader, it supports multiple formats. The focus lies on ease
of use.

KWrite, the simple text editor. KWrite is the simple text editor shipped with KDE 4.0. It shares the text editing
component with Kate, the advanced text editor.

Kwin's handy expose effect. KWin has new compositing features. The handy expose effect can be accessed by putting
the mouse cursor in the upper left corner. The just click on the window you want to
select.

Kwin, KDE's window manager has learned some cool compositing tricks
… while typing text, kwin will filter and show only those windows that match. If you’re down
to one match, press enter and get your window of choice in front of your nose.

Kwin, KDE's window manager has learned some cool compositing tricks Since virtual desktops are there to stay, KWin also has their handling improved. Press Control+F8
and see the Desktopgrid effect. Klik on one of those desktop to choose it, or drag applications
from one virtual desktop to the other.

That’s it for now. Remember, this can change by the day. Not all artwork is final, there are
some glitches left, but it’s really shaping up well. Thanks everybody for getting this far!

Oxygen battery.

plasma's digital clock applet.
The artwork for the battery was initially taken from powermanager, the small application
we developed for Kubuntu. KDE4’s batteryapplet would need an Oxygen battery. There is one
shipped with the icon set, so I sat down, wrestled with inkscape and beat it into shape
so it can be used as a theme for the batteryapplet in KDE4’s plasma.

Yesterday, Aaron landed a series of larger changes in plasma, making it possible to drag
applets onto the panel. I noticed that the battery got stretched out far too much, so
I added some hinting taking the aspectratio of the SVG file into account. The result is
an Oxygen battery on the panel and on the desktop. For those that prefer the more classic
artwork, I’ve left that in as an option.

The KDE 4 desktop has come to a point where it’s well usable, if you can live with some
minor kinks. With the arrival of new artwork for krunner and properly themed panel
background, the various pieces of plasma are falling into place now. I’m starting to
experience the first bits of the real KDE 4 user experience, and I love it. This is going
to be a great desktop.

clockwork.

plasma's digital clock applet.
I’ve been giving the digital clock in plasma some love. For one, I added a ‘plain mode’ that just draws
text on it. The clock is now also a bit more configurable. I’ve made some improvements to
the clock’s layout and size handling. It now behaves a bit better in the panel and on the
desktop.

Today I’ve also booked tickets and hotel for a hacking week in Athens in early december. We’ll
be working on the implementation of the SQO-OSS platform.
Tomorrow, ade and I have our weekly meeting at a local coffee roaster’s cafe. The perfect
place to wrestle with java obviously.

Coming Friday, some friends come over, we’re planning do a
port-wine tasting. On Saturday,
CodeYard’s monthly Community Day is held at the
university here in Nijmegen. If you’re a dutch or flemish student, interested in free
software stuff or programming, email
us and come by. The day will be spent with talks about various computer-related issues, and
there’s a room full of computers to show each other cool stuff and hack a bit.

Greenwheels.

Jeff Bailey writes about carsharing,
and it being critical to solving the problem of mass-transit. First, and foremost, I do agree
with that.

In the Netherlands, while public transport is quite good (if not cheap) and fairly reliable
(compared to say, India :-)), the “if it costs me ten minutes more to get there, I’d rather
go by car” is quite apparent. That’s not to say that people don’t go by train, they do. Usually
though, trains during rush hours are pretty packed. Getting a 1st class ticket solves that in
most cases, it makes the difference between getting a place to sit, and often enables you to do
some work on the train. Or take a nap which is hardly possible in an overcrowded train.

So there’s Greenwheels, a car sharing
company that manages to get quite some coverage over the
whole country. Taking part in this programme costs between 12.50 EUR and 25 EUR so it is quite
cheap not to use the car. Those cars (small Peugeots) are usually near to a train station, making
combined journeys easy. In most cities, you also find one within a short footwalk. There’s three
cars here within 10 minutes walk, one of them just around the corner. I’ve been using this for
more than a year now, and my impressions are really good. If you need a car quickly, it’s usually
available, but it makes you think twice whether to actually go by car and not by bike. I don’t
really like driving (worked as a courier for some time after school, so I’ve seen enough of it)
but those shopping visits some time make it useful. I get to use the car once a month, roughly.

It doesn’t work very well for those cases with lots of idle time, you pay per hour (at least
in the evenings and weekends), and longer journeys (couple of hundred km) can become quite
expensive. But then, get a train and only do the last mile by car — that’s what trains are
bad at.

I’m sure it’s not an option for everyone, but still good to consider this before you add yet
another car to those traffic jams. And having lots of cars in the streets in front of your
house doesn’t improve the quality of living as well. So for the Dutchies, there’s Greenwheels.
Now go looking for something similar in your country.

Workshops in a Flying Saucer.

The Evoluon conference center in Eindhoven / NL. (image from Wikipedia)
I’ve been spending the last two days in this spacy
building
you can see on the photo, getting in
touch with 15 year-old pupils. The building has this distinctive “Thunderbirds are Go!” charme
you find in sixties Sci-Fi, but it’s certainly a nice building, spacy from the inside, but still
not to big to make it a huge boring exhibition hall.

There’s a “Technology Career Event” here in Eindhoven, which is
being attended by 2500 kids around the age of 15, all with at least some technical subjects at
school. I’m doing 30-minute Subversion workshops here with my colleague Donna. We’re explaining
how Subversion (and version control in general) works to the kids and have some demo machines set
up for them to try it out. The feedback is amazingly positive. The kids understand quickly how to
work with SVN, even if we’re not getting much further than touching the basics (commit, update,
resolve, diff). The understand that SVN is a solution to a broken workflow which is often email-
and/or USB-stick-based. Most of those kids haven’t heard of Free Software yet, but there certainly
are some who do. Moreover, quite a few of those kids have heard of Linux. We have three demo
machines here, one running Ubuntu, one Kubuntu (mine!) and one Windows XP. IBM is kindly hosting
us at their huge stand, so we’re next to “Raving Robots” all the time. I don’t get the impression
that the kids are less excited by subversion, it does make them think about how they work, and how
programming in teams works. There’s also the occasional ‘geek-kid’, knowing Linux, and being
susceptible to Free Software stuff and of course “CodeYard”. For those that don’t know CodeYard,
here comes the shameless plug:

CodeYard offers a controlled Free Software development
environment — documented in their mother tongue — and a community for
high-school-aged kids, free of charge. Its purpose is — depending on who you ask in different
order — to make computer science more popular among students, and to raise awareness for Free
Software.

It indeed is a good feeling to see those kids making First Contact (HA!) with Linux, KDE and Free
Software, and not being scared. (Didn’t get a single comment about “But I want Windows because I
don’t know this thing” or worse. In fact, it got some of them thinking and asking those questions
that show “I might try it”, otherwise, at least now they’ve heard of it and experienced that it
doesn’t eat their first borns (not that most 15 year-olds in the Netherlands have first borns, of
course).

Yesterday, during the idle time you have at this kind of events, I fixed most of the remaining CSS
issues with the brand-new Planet CodeYard, where
we’re collecting weblogs of CodeYarders, today is mostly spent talking to people here.

konsole tabs on steroids.

konsole with dynamic tab names.
In the category “little gems that make my life better” (which in fact is synonym for “Why
everyone would be better off with the Z-Shell”
), today I’m reading from my .zshrc file. Zsh has
those fine pre- and post-exec hooks. Those let you specify functions that are run before a command
is executed, and right after. I’m using a tabbed konsole all of the time, with some DCOP magic,
it’s easy to monitor your commands from another tab.
But let the .zshrc script speak:

# Define colors
BLACK="%{"$'\033[01;30m'"%}"
GREEN="%{"$'\033[01;32m'"%}"
RED="%{"$'\033[01;31m'"%}"
YELLOW="%{"$'\033[01;33m'"%}"
BLUE="%{"$'\033[01;34m'"%}"
BOLD="%{"$'\033[01;39m'"%}"
NORM="%{"$'\033[00m'"%}"

if [ "$KONSOLE_DCOP_SESSION" ]
then
        if [ `/usr/bin/whoami` != 'root' ]
                then
                alias ssh='konsolewrap  ssh'
                alias lftp='konsolewrap  lftp'
                alias sftp='konsolewrap  sftp'
                alias ssh='konsolewrap  ssh'
                alias su='konsolewrap su'
                alias ipy='konsolewrap ipython'
        preexec () {konsole-rename-cmd $1}
        precmd () {
            konsole-rename-path
            if [ `/bin/hostname` = 'luna' ]; then
                RPROMPT="${BLUE}[${YELLOW}%*${NORM} `battery`${BLUE}]${NORM}"
            fi
        }
        fi
fi
    

This involves two small scripts, konsole-rename-path and konsole-rename-cmd. Those basically
change the name of the tab with a dcop call. konsole-rename-path looks like this:

#!/bin/bash
# This small script renames the konsole tab to the current working directory

if [ "$KONSOLE_DCOP_SESSION" ]
then
    dcop `echo ${KONSOLE_DCOP_SESSION}` renameSession "`echo $PWD | sed s,^$HOME,~,`"
fi
    

This is konsole-rename-cmd:

#!/bin/bash
# This small script renames the konsole tab to the current command

if [ "$KONSOLE_DCOP_SESSION" ]
then
    dcop `echo ${KONSOLE_DCOP_SESSION}` renameSession "$1"
fi
    

konsolewrap is for commands like ssh, tabs get the hostname in this case:

#!/bin/sh
dcop $KONSOLE_DCOP_SESSION renameSession "$*"
exec $cmd "$@"
    

This can of course all be neatified, but it does the job pretty well. I can start a job in
one tab, switch to another, and I see the tabname change when the command is finished. This
is somewhat similar to the “Monitor for Silence / Activity” in konsole, but a bit more
flexible.

As you see, there’s also a variable set, RPROMPT. This produces a clock and the current
battery charge state. In colors and all.

battery(){
        CBS=`acpi | awk '{print $4}' | awk -F % '{print $1}'`
        if [[ ${CBS} -lt 35 ]] && [[ ${CBS} -gt 10 ]]; then
                echo "${YELLOW}${CBS}%%${NORM}"
        elif [[ ${CBS} -lt 10 ]] || [[ ${CBS} -eq 10 ]]; then
                echo "${RED}${CBS}%%${NORM}"
        else
                echo "${GREEN}${CBS}%%${NORM}"
        fi
}
    

Low battery value, and the right hand side prompt’s battery percentage goes yellow, then red.

KDE4’s konsole has a very similar feature built in, so less fiddling with scripts in the
future. :-)