pplockd: Simple power management/CRUST daemon for X11 GUIs on PinePhone
So now that I've gotten it working how I want, I'll post the daemon I'm using on Fedora XFCE to handle power management, CRUST, etc.
It's written with the following assumptions:
  • You're on an Xorg desktop-oriented GUI on a real Linux distro
  • You don't wanna have to set up essential apps to use wakelocks and all that stuff
  • You can run something as root
  • You have the Xorg utilities xset, xinput, and xrandr installed
  • You have set your DE's power manager to ignore the power button
  • You have Python 3.6 or above. Fedora 32 etc use 3.8 by default.
You can run it from its git repository directory, just ./pplockd, or ./pplockd --nodaemon to keep running in foreground.

You can also copy 'components' to /usr/local/share/pplockd/components, and PPConfig.py to /etc/pplockd/PPConfig.py.

You will need to edit the default user in PPConfig.py, the config file, which also handles the triggers for different buttons.

By default, the buttons are mapped as follows:
  • Hit up then down volume keys to rotate screen from portrait to landscape, including touchscreen input (in sequence, since hardware doesn't allow vol up+down at same time)
  • Hit power button to 'soft lock', leaving the phone running, e.g. if you're playing music but keep the phone in your pocket. This shuts off all but 1 core and scales the remaining one to 600Mhz, in addition to shutting off the screen and touch input. It sets monitor inactivity to 5 seconds (changeable in PPConfig.py) to prevent battery wasteage, since it seems the modem is 'chatty', sending random events quite often, which light up the screen.
  • Hit vol down + power (at same time) to 'hard lock', this does everything soft lock does, but puts the phone to sleep as well. It should wake on incoming calls and texts if you've configured your modem properly. You are given (changeable in PPConfig.py) 30 seconds to hit the power button, then the phone sleeps again. 
  • In any case, you can always wake the phone fully using the power button.
Here's the repo: https://github.com/Subsentient/pplockd
So as a minor update, right now the LED indicators are used to show the sleep state. It flashes green every 3 seconds for a soft lock, the LED is off for a hard lock, and when temporarily woken by a modem event from a hard lock, that's indicated by the LED being solid blue, until it resumes a sleep state. Just use the latest git/master, I haven't dealt with versioning yet.

Possibly Related Threads…
Thread Author Replies Views Last Post
  openSUSE for Pinephone Alefnode 73 74,840 11-26-2022, 12:07 PM
Last Post: Eugo
Lightbulb Article: Experiments for super low PinePhone power consumption with Genode Surehand53 0 165 11-19-2022, 02:43 PM
Last Post: Surehand53
  Fedora + Phosh for PinePhone njha 73 91,624 11-18-2022, 09:12 PM
Last Post: Alho
  Article: NuttX RTOS for PinePhone: Render Graphics in Zig lupyuen 0 142 11-15-2022, 04:16 AM
Last Post: lupyuen
Tongue Android Auto on Pinephone via Waydroid: a pipe dream? slondr 1 237 11-06-2022, 01:46 PM
Last Post: wibble
  Article: Rendering PinePhone's Display (DE and TCON0) lupyuen 0 230 10-29-2022, 06:09 PM
Last Post: lupyuen
  Article: NuttX RTOS for PinePhone: Display Driver in Zig lupyuen 0 269 10-17-2022, 07:02 PM
Last Post: lupyuen
Question Proprietary apps for PinePhone/PineTab Benoit 10 9,044 10-14-2022, 12:29 AM
Last Post: groomsb31
  Amazfish on Pinephone pagesix1536 11 7,308 10-10-2022, 08:01 PM
Last Post: thomzane
  Article: Understanding PinePhone's Display (MIPI DSI) lupyuen 2 467 10-01-2022, 05:52 PM
Last Post: lupyuen

Forum Jump:

Users browsing this thread: 1 Guest(s)