Automatische Arbeitsflächenumschaltung

19/09/2013 - 15:00 von Albrecht Mehl | Report spam
opensuse 12.3, kde 4.10.5

Eine Sitzung schließe ich nicht mit abschalten, sondern mit
Verlassen>Tiefschlaf, um Zeit zu sparen. Dies erfolgt mal aus dieser,
mal aus jener Arbeitsflàche heraus. Unabhàngig davon soll nach dem
Aufwecken immer Arbeitsflàche 2 oben sein. Da mir das nicht gelingt,
bitte ich um Hilfe.

Bei opensuse kann ein Skript, ein sogenannter hook, automatisch beim
Einfrieren und Aufwecken ausgeführt werden, siehe

http://old-de.opensuse.org/Pm-utils

(Der Inhalt für 11.* gilt auch noch für 12.*. Ich kann die neue Seite
auf Teufel komm raus nicht finden, obwohl ich sie schon einmal gesehen
habe.)

Ein hilfreicher Mensch - ich selbst kenne mich mit den Innereien nicht
gut aus - hat mir die Zeile

qdbus org.kde.kwin /KWin org.kde.KWin.setCurrentDesktop 2

geschrieben. Dies führt zu dem gewünschten Resultat - Umschalten zur
Arbeitsflàche 2 -, wenn es nach Alt+F2 aus der Kommandozeile heraus
ausgeführt wird. Es funktioniert _nicht_ bei Ausführung aus dem
root-Terminal oder dem Benutzerterminal:

-

linux-l05b:~ # qdbus org.kde.kwin /KWin org.kde.KWin.setCurrentDesktop 2
Cannot find 'org.kde.KWin.setCurrentDesktop' in object /KWin at org.kde.kwin
linux-l05b:~ # su -l am
Directory: /home/am
Mi 18. Sep 07:22:01 CEST 2013
am@linux-l05b:~> qdbus org.kde.kwin /KWin org.kde.KWin.setCurrentDesktop 2
Could not connect to D-Bus server:
org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a
dbus-daemon without a $DISPLAY for X11
am@linux-l05b:~>



und daher folgerichtig auch nicht aus dem hook heraus:



#!/bin/bash

. $PM_UTILS_LIBDIR/functions

case "$1" in
hibernate|suspend)
stopservice atd
export DISPLAY=:0.0
qdbus org.kde.kwin /KWin org.kde.KWin.setCurrentDesktop 2
;;
thaw|resume)
restartservice atd
rcnetwork restart
su -l am
export DISPLAY=:0.0
qdbus org.kde.kwin /KWin org.kde.KWin.setCurrentDesktop 2
;;
*)
;;
esac

exit 0

-

Die Fehlermeldungen und das Wirken von qdbus überfordern mich leider, so
dass ich für Hilfe dankbar wàre.

A. Mehl
Albrecht Mehl |eBriefe an:mehlBEIfreundePUNKTtu-darmstadtPUNKTde
Veilchenweg 7 |Tel. (06151) 37 39 92
D-64291 Darmstadt, Germany|sehenswert - ungefàhr 'Wir einsam im All'
http://www.phrenopolis.com/perspect...index.html
 

Lesen sie die antworten

#1 Reinhard Tchorz
21/09/2013 - 17:20 | Warnen spam
Am 19.09.2013 15:00, schrieb Albrecht Mehl:
opensuse 12.3, kde 4.10.5

Eine Sitzung schließe ich nicht mit abschalten, sondern mit
Verlassen>Tiefschlaf, um Zeit zu sparen. Dies erfolgt mal aus dieser, mal aus jener Arbeitsflàche heraus. Unabhàngig davon soll nach dem Aufwecken immer Arbeitsflàche 2 oben sein. Da mir das nicht gelingt, bitte ich um Hilfe.

Bei opensuse kann ein Skript, ein sogenannter hook, automatisch beim
Einfrieren und Aufwecken ausgeführt werden, siehe

http://old-de.opensuse.org/Pm-utils

(Der Inhalt für 11.* gilt auch noch für 12.*. Ich kann die neue Seite
auf Teufel komm raus nicht finden, obwohl ich sie schon einmal gesehen
habe.)

Ein hilfreicher Mensch - ich selbst kenne mich mit den Innereien nicht
gut aus - hat mir die Zeile

qdbus org.kde.kwin /KWin org.kde.KWin.setCurrentDesktop 2

geschrieben. Dies führt zu dem gewünschten Resultat - Umschalten zur
Arbeitsflàche 2 -, wenn es nach Alt+F2 aus der Kommandozeile heraus
ausgeführt wird. Es funktioniert _nicht_ bei Ausführung aus dem
root-Terminal oder dem Benutzerterminal:



Aus Sicherheitsgründen wird für jeden angemeldeten Benutzer ein eigener Bus für den Datenaustausch
eingerichtet. Sonst könnte Nutzer A die Anwendungen von Nutzer B fernsteuern und manipulieren.
Ein Hook für die pm-utils làuft jedoch unter root, also ein anderer Nutzer, weshalb es nicht
funktionieren kann.
Abhilfe: Man schaltet erst auf die Arbeitsflàche 2 um und löst dann ein Suspend-to-disk aus.
Dies muss aber unter dem Konto des aktuellen Nutzers geschehen. Speichert man die folgenden
drei Zeilen zum Beispiel unter ~/bin/hibernate ab, macht diese Datei noch mit chmod ausführbar
und ruft dann ~/bin/hibernate auf, wird das den gewünschten Effekt haben.

#!/bin/bash
qdbus org.kde.kwin /KWin org.kde.KWin.setCurrentDesktop 2
qdbus org.kde.Solid.PowerManagement /org/freedesktop/PowerManagement Hibernate


MfG
Reinhard

Gentoo Kernel 3.10.9 X-Server 1.13.4 KDE 4.11.0
Asus M2A-VM AMD Athlon X2 4450e Nvidia 7300LE

Ähnliche fragen