PDA

View Full Version : Openbox-LXDE notification problem: message color unreadable



szzsqing1
02-10-2020, 03:28 AM
Hallo,

I succeeded to start Knoppix with Openbox-LXDE window manager instead of Metacity. I wanted this because I am not satisfied with Compiz, nor Metacity. Bugs, high resource-usage, they does not support the effective work. But Openbox-LXDE is very fast, highly customizable, lightweight and just works. In one word: it is wonderful! :p
How I achieved this:
First, you have to appply "nocompiz" and "kopik_ncwm" cheatcodes.
Then edit /etc/X11/Xsession.d/45knoppix file.

# kopik.m: use openbox-lxde instead of metacity with "kopik_ncwm" cheatcode
kopik_ncwm=metacity
case "$CMDLINE" in *\ kopik_ncwm*) kopik_ncwm=openbox-lxde;; esac
for LXDECONFIG in "$HOME/.config/lxsession/LXDE/config" "$HOME/.config/lxsession/LXDE/desktop.conf"; do
[ -r "$LXDECONFIG" ] || continue
if [ -n "$COMPIZ" ]; then
if grep -q -v '^window_manager *= *compiz' "$LXDECONFIG" 2>/dev/null; then
# CAUTION: lxsession no longer supports commandline optione for window_manager!
sed -i -e 's|^window_manager *=.*|window_manager=compiz|g' "$LXDECONFIG"
fi
else
if grep -q '^window_manager *= *compiz' "$LXDECONFIG" 2>/dev/null; then
sed -i -e 's|^window_manager *= *compiz.*|window_manager='"$kopik_ncwm"'|g' "$LXDECONFIG"
fi
fi
done
As you can see, one still can use Metacity by not applying "kopik_ncwm" boot option.

Unfortunately, nothing is perfect: now there is an annoying problem: if Knoppix starts with Openbox-LXDE window manager, the notifications are invisible: maybe with black fonts in a very dark background. So, they are totally unreadable. But if I apply "-t 0" option, the text is still visible.

$ notify-send test -t 0
The bug is like described in the following page:
Notification message colour unreadable with "GNOME Classic" session (https://bugs.launchpad.net/ubuntu/+source/gnome-shell-extensions/+bug/1719106)
So, the problem is related somehow to the Openbox-LXDE session, but I do not understand how. Anyone has idea how to resolve this issue?

szzsqing1
02-12-2020, 04:23 PM
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:

#!/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

[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.