From 0d3f481f791d918380a1b5587529cb8642d3e407 Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Tue, 23 May 2023 18:54:30 +0800 Subject: [PATCH] loginctl: also show idle hint in session-status (cherry picked from commit 82449055af97cf92466dbe132a89c9d889440c3d) Related: #2156786 --- src/login/loginctl.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/login/loginctl.c b/src/login/loginctl.c index 1131267015..80d0a302d3 100644 --- a/src/login/loginctl.c +++ b/src/login/loginctl.c @@ -473,6 +473,8 @@ static int print_session_status_info(sd_bus *bus, const char *path, bool *new_li { "Remote", "b", NULL, offsetof(SessionStatusInfo, remote) }, { "Timestamp", "t", NULL, offsetof(SessionStatusInfo, timestamp.realtime) }, { "TimestampMonotonic", "t", NULL, offsetof(SessionStatusInfo, timestamp.monotonic) }, + { "IdleHint", "b", NULL, offsetof(SessionStatusInfo, idle_hint) }, + { "IdleSinceHint", "t", NULL, offsetof(SessionStatusInfo, idle_hint_timestamp) }, { "User", "(uo)", prop_map_first_of_struct, offsetof(SessionStatusInfo, uid) }, { "Seat", "(so)", prop_map_first_of_struct, offsetof(SessionStatusInfo, seat) }, {} @@ -571,6 +573,14 @@ static int print_session_status_info(sd_bus *bus, const char *path, bool *new_li if (i.state) printf("\t State: %s\n", i.state); + if (i.idle_hint && i.idle_hint_timestamp > 0) { + s1 = format_timestamp_relative(since1, sizeof(since1), i.idle_hint_timestamp); + s2 = format_timestamp(since2, sizeof(since2), i.idle_hint_timestamp); + + printf("\t Idle: %s since %s (%s)\n", yes_no(i.idle_hint), s2, s1); + } else + printf("\t Idle: %s\n", yes_no(i.idle_hint)); + if (i.scope) { printf("\t Unit: %s\n", i.scope); show_unit_cgroup(bus, "org.freedesktop.systemd1.Scope", i.scope, i.leader);