Files
miasma-installer/examples/danklinux/internal/server/loginctl/actions.go
tumillanino 33dd952ad4
Some checks failed
Build / build (push) Failing after 5m23s
updated the installer so that it should actually work
2025-11-11 18:57:02 +11:00

89 lines
2.2 KiB
Go

package loginctl
import (
"fmt"
)
func (m *Manager) Lock() error {
if m.sessionObj == nil {
return fmt.Errorf("session object not available")
}
err := m.sessionObj.Call(dbusSessionInterface+".Lock", 0).Err
if err != nil {
if refreshErr := m.refreshSessionBinding(); refreshErr == nil {
err = m.sessionObj.Call(dbusSessionInterface+".Lock", 0).Err
}
if err != nil {
return fmt.Errorf("failed to lock session: %w", err)
}
}
return nil
}
func (m *Manager) Unlock() error {
err := m.sessionObj.Call(dbusSessionInterface+".Unlock", 0).Err
if err != nil {
if refreshErr := m.refreshSessionBinding(); refreshErr == nil {
err = m.sessionObj.Call(dbusSessionInterface+".Unlock", 0).Err
}
if err != nil {
return fmt.Errorf("failed to unlock session: %w", err)
}
}
return nil
}
func (m *Manager) Activate() error {
err := m.sessionObj.Call(dbusSessionInterface+".Activate", 0).Err
if err != nil {
if refreshErr := m.refreshSessionBinding(); refreshErr == nil {
err = m.sessionObj.Call(dbusSessionInterface+".Activate", 0).Err
}
if err != nil {
return fmt.Errorf("failed to activate session: %w", err)
}
}
return nil
}
func (m *Manager) SetIdleHint(idle bool) error {
err := m.sessionObj.Call(dbusSessionInterface+".SetIdleHint", 0, idle).Err
if err != nil {
if refreshErr := m.refreshSessionBinding(); refreshErr == nil {
err = m.sessionObj.Call(dbusSessionInterface+".SetIdleHint", 0, idle).Err
}
if err != nil {
return fmt.Errorf("failed to set idle hint: %w", err)
}
}
return nil
}
func (m *Manager) Terminate() error {
err := m.sessionObj.Call(dbusSessionInterface+".Terminate", 0).Err
if err != nil {
if refreshErr := m.refreshSessionBinding(); refreshErr == nil {
err = m.sessionObj.Call(dbusSessionInterface+".Terminate", 0).Err
}
if err != nil {
return fmt.Errorf("failed to terminate session: %w", err)
}
}
return nil
}
func (m *Manager) SetLockBeforeSuspend(enabled bool) {
m.lockBeforeSuspend.Store(enabled)
}
func (m *Manager) SetSleepInhibitorEnabled(enabled bool) {
m.sleepInhibitorEnabled.Store(enabled)
if enabled {
// Re-acquire inhibitor if enabled
m.acquireSleepInhibitor()
} else {
// Release inhibitor if disabled
m.releaseSleepInhibitor()
}
}