mirror of https://github.com/fairyglade/ly.git
removed dbus launch and added required xdg runtime env var
This commit is contained in:
parent
beb6ef975c
commit
24ab6ed55f
|
@ -33,6 +33,7 @@
|
||||||
/* paths */
|
/* paths */
|
||||||
#define LY_PATH "/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/env"
|
#define LY_PATH "/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/env"
|
||||||
#define LY_PATH_XSESSIONS "/usr/share/xsessions"
|
#define LY_PATH_XSESSIONS "/usr/share/xsessions"
|
||||||
|
#define LY_PATH_RUNTIME_DIR "/run/user/1000"
|
||||||
|
|
||||||
/* console */
|
/* console */
|
||||||
#define LY_CONSOLE_DEV "/dev/console"
|
#define LY_CONSOLE_DEV "/dev/console"
|
||||||
|
|
33
src/login.c
33
src/login.c
|
@ -463,6 +463,8 @@ int xinitrc)
|
||||||
pid_t child;
|
pid_t child;
|
||||||
int status;
|
int status;
|
||||||
char cmd[LY_LIM_CMD];
|
char cmd[LY_LIM_CMD];
|
||||||
|
char* argv[] = {pwd->pw_shell, "-c", cmd, NULL};
|
||||||
|
extern char** environ;
|
||||||
/* updates cookie */
|
/* updates cookie */
|
||||||
snprintf(cmd, sizeof(cmd), "exec xauth add %s . `%s`", display_name,
|
snprintf(cmd, sizeof(cmd), "exec xauth add %s . `%s`", display_name,
|
||||||
LY_CMD_MCOOKIE);
|
LY_CMD_MCOOKIE);
|
||||||
|
@ -479,29 +481,13 @@ int xinitrc)
|
||||||
}
|
}
|
||||||
|
|
||||||
waitpid(child, &status, 0);
|
waitpid(child, &status, 0);
|
||||||
/* starts X */
|
reset_terminal(pwd);
|
||||||
child = fork();
|
snprintf(cmd, sizeof(cmd),
|
||||||
|
"exec xinit %s%s -- %s %s %s -auth %s", xinitrc ? "" : "/usr/bin/",
|
||||||
if(child == 0)
|
de_command, LY_CMD_X,
|
||||||
{
|
display_name, vt, getenv("XAUTHORITY"));
|
||||||
reset_terminal(pwd);
|
execve(pwd->pw_shell, argv, environ);
|
||||||
/* starts session */
|
exit(0);
|
||||||
snprintf(cmd, sizeof(cmd),
|
|
||||||
"exec xinit %s%s -- %s %s %s -auth %s", xinitrc ? "" : "/usr/bin/",
|
|
||||||
de_command, LY_CMD_X,
|
|
||||||
display_name, vt, getenv("XAUTHORITY"));
|
|
||||||
execl(pwd->pw_shell, pwd->pw_shell, "-c", cmd, NULL);
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* handles DBus */
|
|
||||||
snprintf(cmd, sizeof(cmd),
|
|
||||||
"exec dbus-launch --exit-with-session %s", de_command);
|
|
||||||
waitpid(child, &status, 0);
|
|
||||||
execl(pwd->pw_shell, "-c", cmd, NULL);
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void launch_wayland(struct passwd* pwd, pam_handle_t* pam_handle,
|
void launch_wayland(struct passwd* pwd, pam_handle_t* pam_handle,
|
||||||
|
@ -537,6 +523,7 @@ enum deserv_t display_server)
|
||||||
setenv("XDG_SESSION_CLASS", "user", 0);
|
setenv("XDG_SESSION_CLASS", "user", 0);
|
||||||
setenv("XDG_SEAT", "seat0", 0);
|
setenv("XDG_SEAT", "seat0", 0);
|
||||||
setenv("XDG_VTNR", tty_id, 0);
|
setenv("XDG_VTNR", tty_id, 0);
|
||||||
|
setenv("XDG_RUNTIME_DIR", LY_PATH_RUNTIME_DIR, 0);
|
||||||
setenv("DISPLAY", display_name, 1);
|
setenv("DISPLAY", display_name, 1);
|
||||||
|
|
||||||
switch(display_server)
|
switch(display_server)
|
||||||
|
|
Loading…
Reference in New Issue