Add gdm-switch-user, run by dwmstatus
This commit is contained in:
parent
9908181467
commit
2825c89961
|
@ -25,6 +25,9 @@ include (AddThreads)
|
||||||
|
|
||||||
find_package (PkgConfig REQUIRED)
|
find_package (PkgConfig REQUIRED)
|
||||||
pkg_check_modules (dependencies REQUIRED libpulse x11)
|
pkg_check_modules (dependencies REQUIRED libpulse x11)
|
||||||
|
pkg_check_modules (gdm gdm glib-2.0 gio-2.0)
|
||||||
|
|
||||||
|
option (WITH_GDM "Compile with GDM support" ${gdm_FOUND})
|
||||||
|
|
||||||
set (project_libraries ${dependencies_LIBRARIES})
|
set (project_libraries ${dependencies_LIBRARIES})
|
||||||
include_directories (${dependencies_INCLUDE_DIRS})
|
include_directories (${dependencies_INCLUDE_DIRS})
|
||||||
|
@ -44,6 +47,12 @@ target_link_libraries (brightness ${project_libraries})
|
||||||
add_executable (fancontrol-ng fancontrol-ng.c)
|
add_executable (fancontrol-ng fancontrol-ng.c)
|
||||||
target_link_libraries (fancontrol-ng ${project_libraries})
|
target_link_libraries (fancontrol-ng ${project_libraries})
|
||||||
|
|
||||||
|
if (WITH_GDM)
|
||||||
|
include_directories (${gdm_INCLUDE_DIRS})
|
||||||
|
add_executable (gdm-switch-user gdm-switch-user.c)
|
||||||
|
target_link_libraries (gdm-switch-user ${gdm_LIBRARIES})
|
||||||
|
endif (WITH_GDM)
|
||||||
|
|
||||||
# The files to be installed
|
# The files to be installed
|
||||||
include (GNUInstallDirs)
|
include (GNUInstallDirs)
|
||||||
|
|
||||||
|
@ -54,6 +63,10 @@ install (FILES ${PROJECT_BINARY_DIR}/fancontrol-ng.service
|
||||||
install (FILES fancontrol-ng.conf.example
|
install (FILES fancontrol-ng.conf.example
|
||||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/fancontrol-ng)
|
DESTINATION ${CMAKE_INSTALL_DATADIR}/fancontrol-ng)
|
||||||
|
|
||||||
|
if (WITH_GDM)
|
||||||
|
install (TARGETS gdm-switch-user DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||||
|
endif (WITH_GDM)
|
||||||
|
|
||||||
install (TARGETS dwmstatus brightness fancontrol-ng
|
install (TARGETS dwmstatus brightness fancontrol-ng
|
||||||
DESTINATION ${CMAKE_INSTALL_BINDIR})
|
DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||||
install (PROGRAMS shellify DESTINATION ${CMAKE_INSTALL_BINDIR})
|
install (PROGRAMS shellify DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||||
|
|
|
@ -14,6 +14,8 @@ to other people as well.
|
||||||
in general it doesn't handle everything the original does
|
in general it doesn't handle everything the original does
|
||||||
- 'shellify' is a simple script that sets up a shell for commands like vgdb
|
- 'shellify' is a simple script that sets up a shell for commands like vgdb
|
||||||
and nmcli that are painfully lacking it
|
and nmcli that are painfully lacking it
|
||||||
|
- 'gdm-switch-user' tells the running GDM daemon, if any, to show the switch
|
||||||
|
user screen
|
||||||
|
|
||||||
Don't expect them to work under any OS that isn't Linux.
|
Don't expect them to work under any OS that isn't Linux.
|
||||||
|
|
||||||
|
|
15
dwmstatus.c
15
dwmstatus.c
|
@ -2637,6 +2637,18 @@ on_volume_set (struct app_context *ctx, int arg)
|
||||||
ctx->sink_name, &volume, on_volume_finish, ctx));
|
ctx->sink_name, &volume, on_volume_finish, ctx));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
on_lock (struct app_context *ctx, int arg)
|
||||||
|
{
|
||||||
|
(void) arg;
|
||||||
|
|
||||||
|
// One of these will work
|
||||||
|
char *argv_gdm[] = { "gdm-switch-user", NULL };
|
||||||
|
spawn (ctx, argv_gdm);
|
||||||
|
char *argv_ldm[] = { "dm-tool", "lock", NULL };
|
||||||
|
spawn (ctx, argv_ldm);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
on_brightness (struct app_context *ctx, int arg)
|
on_brightness (struct app_context *ctx, int arg)
|
||||||
{
|
{
|
||||||
|
@ -2655,6 +2667,9 @@ struct
|
||||||
}
|
}
|
||||||
g_keys[] =
|
g_keys[] =
|
||||||
{
|
{
|
||||||
|
// This key should be labeled L on normal Qwert[yz] layouts
|
||||||
|
{ Mod4Mask, XK_n, on_lock, 0 },
|
||||||
|
|
||||||
// MPD
|
// MPD
|
||||||
{ Mod4Mask, XK_Up, on_mpd_play, 0 },
|
{ Mod4Mask, XK_Up, on_mpd_play, 0 },
|
||||||
{ Mod4Mask, XK_Down, on_mpd_stop, 0 },
|
{ Mod4Mask, XK_Down, on_mpd_stop, 0 },
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
// Public domain
|
||||||
|
#include <gdm-user-switching.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main (int argc, char *argv[])
|
||||||
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
|
|
||||||
|
GError *e = NULL;
|
||||||
|
if (!gdm_goto_login_session_sync (g_cancellable_new (), &e))
|
||||||
|
{
|
||||||
|
g_printerr ("%s\n", e->message);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue