mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2025-12-13 00:42:49 -05:00
switch hto monorepo structure
This commit is contained in:
88
backend/internal/server/loginctl/actions.go
Normal file
88
backend/internal/server/loginctl/actions.go
Normal file
@@ -0,0 +1,88 @@
|
||||
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()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user