upower, consolekit, lid-close ja sleep

Ainult Gentooga seotud probleemid, küsimused, uudised

Moderaator: Moderaatorid

Vasta
Kasutaja avatar
sips
Pingviini aktivist
Pingviini aktivist
Postitusi: 288
Liitunud: 20.05.2006, 18:34

upower, consolekit, lid-close ja sleep

Postitus Postitas sips »

kas keegi tark oskab ütelda, kuidas panna läpakas magama nö (lid) kaane sulgemisel, ja seda tavakasutaja õigustes?

X tõmmatakse käima nö "startx" käsuga (.xinitrc)

Kood: Vali kõik

export LC_MESSAGES="et_EE.UTF-8"
export LC_ALL="et_EE.UTF-8"

test for an existing bus daemon, just to be safe
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
    eval `dbus-launch --sh-syntax --exit-with-session`
fi

exec ck-launch-session lxsession -s MidaIganes
lxsession käivitab aknahalduri, paneelid ja muud vidinad, ning lisaks ka batti, mis omakorda tõmbab käima upower'i.

Ehk, kui kogu see kupatus käima tiritakse on meil (tava kasutaja õigustega) jooksmas dbus'i-session, consolekit-session, upower-daemon jne.

Nii, kui see batti "töötab/jookseb", siis on meil nn systray's ilus batareii ikoon millele klikates avaneb menüü [[siin]] ("Suspend", "Hibernate"), kui sealt valida nt "Suspend", siis masin ka magama läheb (ka selle postituse kribamise ajal, kui kilkkisin ikoonil, et näha millise menüü see batti täpselt kuvab, käis kogemata masin "uinakul" ära kohal [[siin]] ja peale seda kirjutan oma jura edasi täpselt sealt, kust pooleli jäi).

Lihtsustatult - mul on tavakasutajana olemas kõik õigused masina "magama" panekuks (mida ma ka saan teha läbi "systray'l" oleva ikooni menüü), kuid kuidagi tuleks see toiming automatiseetida läbi läpaka kaane sulgemise.

PS! # upower --monitor-detail
annab "kaane" sulgemisel/avamisel väljundiks

Kood: Vali kõik

Monitoring activity from the power daemon. Press Ctrl+C to cancel.
[11:57:28.357]	daemon changed:
  daemon-version:  0.9.4
  can-suspend:     yes
  can-hibernate    yes
  on-battery:      no
  on-low-battery:  no
  lid-is-closed:   yes
  lid-is-present:   yes

[11:57:31.669]	daemon changed:
  daemon-version:  0.9.4
  can-suspend:     yes
  can-hibernate    yes
  on-battery:      no
  on-low-battery:  no
  lid-is-closed:   no
  lid-is-present:   yes
PS! Vanaisale ei saa Linuxit peale lasta.
-ordi-
Vana Pingviin
Vana Pingviin
Postitusi: 821
Liitunud: 13.12.2008, 21:22

Re: upower, consolekit, lid-close ja sleep

Postitus Postitas -ordi- »

sips kirjutas:kas keegi tark oskab ütelda, kuidas panna läpakas magama nö (lid) kaane sulgemisel, ja seda tavakasutaja õigustes?

X tõmmatakse käima nö "startx" käsuga (.xinitrc)

Kood: Vali kõik

export LC_MESSAGES="et_EE.UTF-8"
export LC_ALL="et_EE.UTF-8"

test for an existing bus daemon, just to be safe
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
    eval `dbus-launch --sh-syntax --exit-with-session`
fi

exec ck-launch-session lxsession -s MidaIganes
lxsession käivitab aknahalduri, paneelid ja muud vidinad, ning lisaks ka batti, mis omakorda tõmbab käima upower'i.

Ehk, kui kogu see kupatus käima tiritakse on meil (tava kasutaja õigustega) jooksmas dbus'i-session, consolekit-session, upower-daemon jne.

Nii, kui see batti "töötab/jookseb", siis on meil nn systray's ilus batareii ikoon millele klikates avaneb menüü [[siin]] ("Suspend", "Hibernate"), kui sealt valida nt "Suspend", siis masin ka magama läheb (ka selle postituse kribamise ajal, kui kilkkisin ikoonil, et näha millise menüü see batti täpselt kuvab, käis kogemata masin "uinakul" ära kohal [[siin]] ja peale seda kirjutan oma jura edasi täpselt sealt, kust pooleli jäi).

Lihtsustatult - mul on tavakasutajana olemas kõik õigused masina "magama" panekuks (mida ma ka saan teha läbi "systray'l" oleva ikooni menüü), kuid kuidagi tuleks see toiming automatiseetida läbi läpaka kaane sulgemise.

PS! # upower --monitor-detail
annab "kaane" sulgemisel/avamisel väljundiks

Kood: Vali kõik

Monitoring activity from the power daemon. Press Ctrl+C to cancel.
[11:57:28.357]	daemon changed:
  daemon-version:  0.9.4
  can-suspend:     yes
  can-hibernate    yes
  on-battery:      no
  on-low-battery:  no
  lid-is-closed:   yes
  lid-is-present:   yes

[11:57:31.669]	daemon changed:
  daemon-version:  0.9.4
  can-suspend:     yes
  can-hibernate    yes
  on-battery:      no
  on-low-battery:  no
  lid-is-closed:   no
  lid-is-present:   yes
Miks sa KDE enda seadistusi vms ei kasuta, ma saan valida küll seda, kas mu läpakas läheb magama kaane sulgemisel või mitte, või sain ma kõigest valesti aru, ei viitsinud väga süveneda.
Kasutaja avatar
sips
Pingviini aktivist
Pingviini aktivist
Postitusi: 288
Liitunud: 20.05.2006, 18:34

Re: upower, consolekit, lid-close ja sleep

Postitus Postitas sips »

-ordi- kirjutas:Miks sa KDE enda seadistusi vms ei kasuta, ma saan valida küll seda, kas mu läpakas läheb magama kaane sulgemisel või mitte, või sain ma kõigest valesti aru, ei viitsinud väga süveneda.
Sest pole ei kde, gnome, xfce, ega ühegi teise DE "powermanageri" installitud ja ei tunne puudust kah.

Oma läpaka kaane sulgemise ja "sleep'i" probleemi lahendasin väikse skriptiga, mis teeb täpselt seda mis vaja

Kood: Vali kõik

#!/usr/bin/env python

import gobject
import dbus, dbus.service
from dbus.mainloop.glib import DBusGMainLoop
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)

sess_bus = dbus.SystemBus()

try:
	upower_obj = sess_bus.get_object('org.freedesktop.UPower', '/org/freedesktop/UPower')
	upower_manager = dbus.Interface(upower_obj, 'org.freedesktop.UPower')
except dbus.DBusException: # No other copy running
	exit('--- Kas upower jookseb? ---')

properties = dbus.Interface(upower_obj, 'org.freedesktop.DBus.Properties')

if not properties.Get('org.freedesktop.UPower', 'LidIsPresent'):
	exit ('!LidIsPresent')

if not properties.Get('org.freedesktop.UPower', 'CanSuspend'):
	exit ('!CanSuspend')

def try_to_sleep():
	if properties.Get('org.freedesktop.UPower', 'LidIsClosed'):
		upower_manager.AboutToSleep()
		print 'LidIsClosed, let\'s sleep'
		try:
			upower_manager.Suspend()
		except:
			print 'Nagu arvata oligi, viskas errori'
		#dbus.Interface(upower_obj, 'org.freedesktop.UPower').Suspend()

sess_bus.add_signal_receiver(try_to_sleep, dbus_interface="org.freedesktop.UPower", signal_name="Changed")

loop = gobject.MainLoop()
loop.run()
Vähe bugine on, aga vähemalt teeb seda mis vaja.
PS! Vanaisale ei saa Linuxit peale lasta.
Vasta