Skip to content
Bakkeby edited this page Feb 27, 2024 · 4 revisions

The Debug functionality enables additional debug information to be output to standard error.

This is easily observed if the window manager is run via Xephyr.

To take advantage of this for the main installation the standard error output must be redirected to a file.

One way of doing this can be to have a wrapper script which can be called from your ~/.xinitrc if you use startx or from the /usr/share/xsessions/dusk.desktop file if you are using a login manager.

$ cat /usr/local/bin/startdusk
#!/bin/sh
echo "$(date): Starting dusk" >> /path/to/logs/$(date +%Y-%m-%d_%H.dusk.log)
dusk >> /path/to/logs/$(date +%Y-%m-%d_%H.dusk.log) 2>&1

The reason standard error is used instead of standard out is that the latter is buffered for performance reasons and the output is only written to the log file when a chunk of data can be written in one go. Standard error on the other hand is flushed immediately which means that you have direct feedback in the logs when you perform certain actions that produce debug logs.

Some of the additional debug logging this functionality enables are:

  • applyrules - the client's attributes used for rule matching (class, instance, etc.)
  • applyrules - the rule that matched (if any)
  • clientmessage - the message type and associated data
  • configurenotify - details of the XConfigureEvent received
  • configurerequest - details of the XConfigureRequestEvent received
  • destroynotify - the event received
  • propertynotify - the message type received
  • unmapnotify - details of the event received

Back to Functionality.

Clone this wiki locally