7

I am new to Linux. I use Ubuntu 11.04. Whenever I open a file with kate from the commandline, with 'kate &' (or without ampersand), Kate starts out giving messages on the console. It continuously gives them out as I save a file or close one. They look like debug messages to me (sample below). I have used Synaptic package manager to install Kate. Uninstalling and installing the dev version did not make any change. Soon my console becomes cluttered. Is there a way to suppress these messages? There was nothing explicit in Kate settings either.

Thank you,

The messages look like

kate(13412)/kate-filetree KateFileTreeModel::handleInsert: BEGIN!
kate(13412)/kate-filetree KateFileTreeModel::handleInsert: creating a new root
kate(13412)/kate-filetree ProxyItem::ProxyItem: ProxyItem(0x1796840,0x0,-1,QObject(0x0)
....
kate(13435)/kate-filetree KateFileTreeModel::documentActivated: adding viewHistory ProxyItem(0x1eb7cf0,0x1eb6830,0,KateDocument(0x1d93ea0) , "Untitled" )
kate(13435)/kate-filetree KateFileTreeModel::updateBackgrounds: BEGIN!
kate(13435)/kate-filetree KateFileTreeModel::updateBackgrounds: END!
kate(13435)/kate-filetree KateFileTreeModel::documentActivated: END!
kate(13435)/kate-filetree KateFileTreePluginView::viewChanged: END!
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 20 (X_GetProperty)
  Resource id:  0x5601b42
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 20 (X_GetProperty)
  Resource id:  0x5601b42
Elan
  • 183

3 Answers3

12

This post on the KDE forum explains what it is doing and how to stop it.

http://forum.kde.org/viewtopic.php?f=22&t=93955

Because you did not disable debug-messages.

Open "kdebugdialog", search for "kate" and unselect all checkboxes. Now kate won't talk to you, anymore.

1

Debug messages are usually written to the standard error, which is the filehandle denoted by 2 in the console. You can redirect that without affecting output to the standard out (file handle 1), by starting your application like this

kate 2>/dev/null

You can append the & if you'd like as well.

The number 2 here represents file handle 2, the > is a redirection operator in the shell, /dev/null is a "blackhole" device -- it eats up everything that is written to it, so it "disappears" (does not appear in console).

You can capture the standard error output by replacing /dev/null with a filename. In that case the output goes to the file, not to the console.

In case the application is writing debug messages to the standard output, you can replace the number 2 with number 1 (see above) -- note that in this case normal messages are going to be redirected as well.

You can redirect both standard out and error at the same time, the easiest way to do so is

kate 2>&1 1>/dev/null

Here the &1 denotes the file handle 1 where standard error should be redirected. The use of & is to differentiate it from the file named 1.

For further info on redirection, read the manual of your shell (e.g. bash)

0

Turning off all the debug stil gave me some context errors - which is annoying. So I resorted to another trick (partially explained by Attila:

Move the kate executable and replace it with a script:

cd /usr/bin
sudo mv kate kate_exec
sudo touch kate
sudo chmod 755 kate
sudo vim kate

The in vim (or what ever editor) change kate (now a script) to

kate_exec $@ 2> /dev/null &

You don't need the & at the end, that's just my preference so I can keep typing in my terminal - Attila goes on to explain most of that stuff. The key here is passing all parameters on to the kate execuatable $@ and the redirection of the stderr 2> /dev/null.

code_fodder
  • 1,687