-
Notifications
You must be signed in to change notification settings - Fork 40
Session management
Michael Spencer edited this page Jun 21, 2015
·
2 revisions
Abilities
- Offer to log out from the existing session
- Launch a D-Bus session bus?
- Detect the Qt platform (eglfs, etc)
- Detect hardware-specific platform options
- Detect libinput
- Listen for SIGINT/SIGTERM and log out of the session
- Set up the process environment
- Launch and manage applications
- Provide the freedesktop screensaver interface
- Manage the lock screen state
- Lock screen authentication?
- Manage virtual terminals
- Power management
- Log out functionality
Architecture
- Shell
- Separate QML UI instance for each screen
- Listen to the session to:
- Unlock/lock the screen
- Black out the screen before sleeping
- Display a wave animation and spinner when shutting down
- Register to the power buttons and display the power dialog as appropriate
- Check and display inhibitors before shutting down/logging out/etc
- Pass idle status to the session
- Session
- Send power actions to logind
- Register for local control of the hardware power keys
- Pass idle status to the session
- Register a session instance
- Listen for lock/unlock signals and pass it to the shell
- Provide the freedesktop screensaver interface
- Provide a session manager interface
- Manage inhibit locks from applications
- Manage login-related inhibitor locks locally
- Pass system-related locks on to logind
- Listen for logout/power-related actions from the shell
- Do any local work and then call logind as necessary
- Manage inhibit locks from applications
- Autostart applications when the shell starts
- Handle launching applications and stopping them on logout/poweroff