Clarifications: Not only Openbox-LXDE, but also Metacity wm is affected. It is a mystery for me why with Compiz window manager the notifications are OK...
Knoppix version: 8.6.0. But I am sure that the latest Knoppix version (8.6.1) has the same notification problem since notify-osd is the same version: 0.9.35+15.04.20150126-1+b1. So, not the notify-send is the problem, but notify-osd daemon.
I think this problem cannot be resolved because notify-osd is unconfigurable. I use this workaround:
* use notify-send always with "-t 0" option or zenity, xmessage instead of notify-send in scripts
* switch off notifications of applications to get rid of annoying black boxes
I run this script after X-start to disable notifications:
Code:
#!/bin/sh
################################################################################
# gsettings v2020.02.12
# (C) SZILÁGYI Zsolt; License: GPL V2
# Knoppix 8.6.0: notify-osd bug: LXDE, openbox-lxde and metacity: unreadable
# messages. Use notify send with "-t 0" or zenity (xmessage) for your scripts.
# This script disable messages of nm-applet and gnome-mplayer (and more...).
# Edit the script to add more applications. Execute in GUI.
################################################################################
type gsettings >/dev/null 2>&1 || exit
test "$DISPLAY" || exit
if type nm-applet >/dev/null 2>&1; then
for i in disable-disconnected-notifications disable-vpn-notifications \
disable-connected-notifications suppress-wireless-networks-available; do
gsettings list-keys org.gnome.nm-applet | grep -q "$i" &&
test $(gsettings get org.gnome.nm-applet "$i") = false &&
gsettings set org.gnome.nm-applet "$i" true
done
fi
if type gnome-mplayer >/dev/null 2>&1; then
for i in show-status-icon show-notification; do
gsettings list-keys apps.gnome-mplayer.preferences | grep -q "$i" &&
test $(gsettings get apps.gnome-mplayer.preferences "$i") = true &&
gsettings set apps.gnome-mplayer.preferences "$i" false
done
gsettings list-keys apps.gnome-mplayer.preferences | \
grep -q disable-cover-art-fetch &&
test $(gsettings get apps.gnome-mplayer.preferences disable-cover-art-fetch) \
= false &&
gsettings set apps.gnome-mplayer.preferences disable-cover-art-fetch true
gsettings list-keys apps.gnome-mplayer.preferences | grep -q resume-mode &&
test $(gsettings get apps.gnome-mplayer.preferences resume-mode) -eq 0 &&
gsettings set apps.gnome-mplayer.preferences resume-mode 1
fi
exit
Start it with /etc/xdg/autostart/gsettings.desktop
Code:
[Desktop Entry]
Name=GSettings
Exec=/.../.../gsettings
Terminal=false
Type=Application
Currently I do not use persistence, so I do not know if the script must be run at every start (/etc/xdg/autostart/gsettings.desktop) in that case.