mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-08-06 05:28:29 -04:00
lock: set LockedHint when locking with loginctl lock integration
- was previously read-only fixes #2732
This commit is contained in:
@@ -46,6 +46,19 @@ func (m *Manager) Activate() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Manager) SetLockedHint(locked bool) error {
|
||||
err := m.sessionObj.Call(dbusSessionInterface+".SetLockedHint", 0, locked).Err
|
||||
if err != nil {
|
||||
if refreshErr := m.refreshSessionBinding(); refreshErr == nil {
|
||||
err = m.sessionObj.Call(dbusSessionInterface+".SetLockedHint", 0, locked).Err
|
||||
}
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to set locked hint: %w", err)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Manager) SetIdleHint(idle bool) error {
|
||||
err := m.sessionObj.Call(dbusSessionInterface+".SetIdleHint", 0, idle).Err
|
||||
if err != nil {
|
||||
|
||||
@@ -21,6 +21,8 @@ func HandleRequest(conn net.Conn, req models.Request, manager *Manager) {
|
||||
handleActivate(conn, req, manager)
|
||||
case "loginctl.setIdleHint":
|
||||
handleSetIdleHint(conn, req, manager)
|
||||
case "loginctl.setLockedHint":
|
||||
handleSetLockedHint(conn, req, manager)
|
||||
case "loginctl.setLockBeforeSuspend":
|
||||
handleSetLockBeforeSuspend(conn, req, manager)
|
||||
case "loginctl.setSleepInhibitorEnabled":
|
||||
@@ -78,6 +80,20 @@ func handleSetIdleHint(conn net.Conn, req models.Request, manager *Manager) {
|
||||
models.Respond(conn, req.ID, models.SuccessResult{Success: true, Message: "idle hint set"})
|
||||
}
|
||||
|
||||
func handleSetLockedHint(conn net.Conn, req models.Request, manager *Manager) {
|
||||
locked, err := params.Bool(req.Params, "locked")
|
||||
if err != nil {
|
||||
models.RespondError(conn, req.ID, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if err := manager.SetLockedHint(locked); err != nil {
|
||||
models.RespondError(conn, req.ID, err.Error())
|
||||
return
|
||||
}
|
||||
models.Respond(conn, req.ID, models.SuccessResult{Success: true, Message: "locked hint set"})
|
||||
}
|
||||
|
||||
func handleSetLockBeforeSuspend(conn net.Conn, req models.Request, manager *Manager) {
|
||||
enabled, err := params.Bool(req.Params, "enabled")
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user