Skip to content
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
    • Autostart applications when the shell starts
    • Handle launching applications and stopping them on logout/poweroff

Clone this wiki locally