Verständnisfrage zu Problemlösung von fehlender Funktionalität hp-systray unter MATE

cabriofahrer

Well-Known Member
Ich hatte immer genau dieses Problem wie in diesem Artikel beschrieben, nämlich dass unter MATE der hp-systray von hplip nicht funktioniert und nur einen leeren Balken anzeigt. Unter xfce oder anderen Windowmanagern hingegen scheint dieses Problem jedoch nicht zu existieren:


Die in diesem Artikel beschriebene Lösung funktioniert, man muss natürlich die anderen Pfade unter FreeBSD berücksichtigen. Kernpunkt der Lösung ist die Aussage "To fix the menu display we need to launch hplip with help of DBus", womit sich auch erklärt, dass man in der "hp-systray.desktop"- Datei den Eintrag "hp-systray -x" mit "dbus-launch hp-systray -x" ersetzen muss.

Jetzt zu meiner Verständnisfrage: Warum ist das so? DBus wird doch automatisch durch die /etc/rc.conf gestartet, unabhängig davon, ob man dann in xfce oder MATE bootet. Weitere Beobachtung: Wenn ich zuerst in MATE bootete, trat der Fehler auf. Wenn ich dann in xfce bootete (wo es sowieso immer korrekt funktionierte) und dann wieder in MATE, funktionierte es dann auch in MATE. Wie ist das zu erklären?
Handelt es sich um einen immenoch nicht behobenen Bug, und wenn ja, wovon genau? Von MATE oder von hplip?
 
Nur der dbus-daemon wird mittels rc.conf enabled - das startet aber noch keine "session";

die musst du entweder selber starten ("exec dbus-session...") oder der WM/das Desktop-Environment startet die mit;
Vermutlich startet ein "exec xfce4-session" die dbus-Session von sich aus mit, und diese Session läuft hernach noch wenn du aus xfce4 aus- und in MATE einloggst, anstatt umgekehrt MATE eben keine solche Session von sich aus startet.

Kannst du mit "ck-list-sessions" prüfen - Log in xfce ein und ruf ck-list-sessions auf - dann in MATE;

Siehe auch Kommentar hier
 
Vielen Dank für die Erklärung und auch den Link zum internationalen Thread, jetzt ist alles klar. Der Thread erwähnt auch, dass beispielsweise SDDM die dbus-session startet, andere Loginmanager aber nicht. Ich verwende LightDM.
Die Lösung ist so einfach wie in MATE Control Center -> Starup Programs den Eintrag von hplip zu editieren und einfach "dbus-launch" vor den Eintrag "hp-systray -x" zu setzen.

Die Lösung
die musst du entweder selber starten ("exec dbus-session...")
würde mich aber auch interessieren. Was muss da genau in Startup Programs eingetragen werden? Wenn ich einen neuen Eintrag mit nur "exec dbus-session" erstelle, funktioniert es nicht.
Die Ausgabe von "ck-list-sessions" ist sowohl unter MATE als auch unter xfce folgende (kein merklicher Unterschied):

Code:
$ ck-list-sessions
Session4:
    unix-user = '1001'
    realname = 'Werner Lehmann'
    seat = 'Seat1'
    session-type = 'unspecified'
    session-class = 'user'
    session-state = 'active'
    session-service = 'unspecified'
    active = TRUE
    x11-display = ':0'
    x11-display-device = '/dev/ttyv8'
    display-device = '/dev/   ?   '
    remote-host-name = ''
    is-local = TRUE
    on-since = '2023-07-20T17:09:10.702670Z'
    login-session-id = ''
    XDG_RUNTIME_DIR = '/var/run/user/1001'
    VTNr = '9'
$
 
das stellst du dem Aufruf des wm/de voran, das sollten die '...' andeuten;

ich starte Xorg z.B aus der Konsole, da hab ich folgendes für kde5 in der .xinitrc

exec ck-launch-session startplasma-x11

ich schätze 'xfce4-session' hat den Aufruf 'mit eingebaut'
 
hast du bei dir eine Datei /etc/machine-id?
Nein. Ich habe zu dem Thema das hier gefunden:


Ich habe irgendwie nicht das Gefühl, dass das Fehlen dieser Datei irgendwelche Probleme bei mir verursacht? Wenn ich die Erklärung richtig verstehe, guckt DBus auch in /var/db/dbus/machine-id nach?

Kann ich bei folgender Ausgabe von ps -x | grep dbus nicht davon ausgehen, dass DBus bei mir richtig funktioniert?

Code:
$ ps -x | grep dbus
2809  -  I    0:00.00 dbus-launch --exit-with-session mate-session
2810  -  Is   0:00.17 /usr/local/bin/dbus-daemon --syslog --fork --print-pid 5
2813  -  S    0:00.20 /usr/local/bin/dbus-daemon --config-file=/usr/local/share
2859  -  Is   0:00.00 /usr/local/bin/dbus-daemon --syslog --fork --print-pid 5
3189  0  S+   0:00.00 grep dbus
$
 
Kde5 hatte ich nur mal ausprobiert, um mal den Stand zu sehen;

die machine-id hatte ich vorher schon erstellt; ich meine wg xfce4 bzw ner Fehlermeldung dessen.

komisch war, dass bei ner anderen, zweiten Installation (beide 12.4) die Datei da war und nicht automatisch erstellt werden musste
 
Zurück
Oben