From 9c62b1936688349b46c597bc9c7110ff7234620b Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 6 Mar 2019 21:46:45 +0100 Subject: some logind vt switch bits --- logind.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'logind.c') diff --git a/logind.c b/logind.c index a2e9add..9e64013 100644 --- a/logind.c +++ b/logind.c @@ -69,6 +69,33 @@ void logind_dbus_input(void) } while (ret > 0); } +int logind_switch_vt(int vt) +{ + sd_bus_error error = SD_BUS_ERROR_NULL; + sd_bus_message *m = NULL; + int r; + + if (!logind_dbus) + return -1; + + r = sd_bus_call_method(logind_dbus, + "org.freedesktop.login1", + "/org/freedesktop/login1/seat/self", + "org.freedesktop.login1.Seat", + "SwitchTo", + &error, + &m, + "u", + vt); + if (r < 0) { + fprintf(stderr, "SwitchTo failed: %s\n", error.message); + sd_bus_error_free(&error); + } + sd_bus_message_unref(m); + + return r; +} + int logind_take_control(void) { sd_bus_error error = SD_BUS_ERROR_NULL; @@ -230,11 +257,21 @@ void logind_dbus_input(void) { } +int logind_switch_vt(int vt) +{ + return -1; +} + int logind_take_control(void) { return -1; } +int logind_release_control(void) +{ + return -1; +} + int logind_open(const char *path, int flags, void *user_data) { fprintf(stderr, "error: compiled without logind support.\n"); -- cgit