I know of a lot of people who enjoy having a terminal window with scrolling logs on their desktop. Setting one up was never a challange, but there are some nice KDE options that one could use that not so many people know about. At least I didn’t know until today.
First of all, the simpliest way you could have it is
konsole -e tail -f some_log_file. Substitute
some_log_file with your choice of log file. If you are out of ideas,
/var/log/httpd/access.log might be a good start.
The problem that you might have discovered just now is that you’re running KDE as a regular user, while most of log files require root priviledges. At least all the interesting ones. Not to worry –
sudo will save the day. As root edit
/etc/sudoers and add the following line:
someuser ALL=(ALL) NOPASSWD: ALL
someuser to your username. From now on, you can do whatever root can do by prepending
sudo to your command. For example:
sudo tail -f /var/log/messages. Nice, eh?
Back to that
konsole window of yours. Simple watching of logs in it can now be done with
konsole -e sudo tail -f some_log_file.
Good. What else?
konsole window has a lot of attributes that are otherwise useful, but not when scrolling logs in it. I am talking about menubar, statusbar, scrollbar, history, and things like that. You can switch them all off. Take a look at the output of
konsole --help. It suggests a number of options. Here is my first selection:
konsole --nohist --nomenubar --noframe \ --noscrollbar -e sudo tail -f some_log_file
It looks better now, but not perfect. More options are available with profiles. Right-click in
konsole window and choose
Settings menu. Change everything else to suit your needs. For example, make font smaller and configure proper encoding. Now select the
Save Sessions Profile menu. You’ll be asked for a name of the profile. Name it “Logs” or something meaningful.
Here is the full
konsole command line that I use. Except for the
some_log_file, of course.
konsole --vt_sz 120x3 --profile Logs \ --nohist --nomenubar --noframe --noscrollbar \ --schema Transparent.schema \ -e sudo tail -f some_log_file
You can see that I specify the profile to use, the schema that I want and terminal window size (columns by rows), as well as use all arguments discussed previously.
Now my terminal window looks even better, but there is still room for improvement. What else can be done? A bit. I want to get rid of the window title bar as I don’t need at all. And I want to have my logs terminal on all desktops.
KDE has an excellent utility which one could use to control window’s properties from the command line (as opposite from activating Window menu by pressing
Alt+F3). It’s called
kstart. You can have a look at its options by executing
Here is how the whole thing looks like:
kstart --alldesktops --type Override \ konsole --vt_sz 120x3 --profile Logs --nohist \ --nomenubar --noframe --noscrollbar \ --schema Transparent.schema \ -e sudo tail -f some_log_file
kstart starts on all desktops with the window that has no titlebar (type: Override) in which it runs
konsole in turn resizes the window to 120 columns by 3 rows, switches off menus, scrollbars, frames, etc. Than it makes the window transparent, decreases the font size and executes the
sudo adjusts the access level of the current user and makes it possible for
tail -f some_log_file to work.