mirror of https://github.com/fairyglade/ly.git
fixed .xinitrc support
This commit is contained in:
parent
f521202310
commit
22f906bc3e
|
@ -26,7 +26,7 @@
|
||||||
#define LY_CMD_X "/usr/bin/X"
|
#define LY_CMD_X "/usr/bin/X"
|
||||||
#define LY_CMD_TPUT "/usr/bin/tput"
|
#define LY_CMD_TPUT "/usr/bin/tput"
|
||||||
#define LY_CMD_HALT "/sbin/shutdown"
|
#define LY_CMD_HALT "/sbin/shutdown"
|
||||||
#define LY_CMD_XINITRC "exec /bin/bash --login ~/.xinitrc "
|
#define LY_CMD_XINITRC ".xinitrc"
|
||||||
#define LY_CMD_MCOOKIE "/usr/bin/mcookie"
|
#define LY_CMD_MCOOKIE "/usr/bin/mcookie"
|
||||||
#define LY_XAUTHORITY ".lyxauth"
|
#define LY_XAUTHORITY ".lyxauth"
|
||||||
|
|
||||||
|
|
|
@ -98,7 +98,7 @@ struct delist_t* init_list(int count)
|
||||||
list->props[0].cmd = strdup("");
|
list->props[0].cmd = strdup("");
|
||||||
list->props[0].type = shell;
|
list->props[0].type = shell;
|
||||||
list->props[1].cmd = strdup(LY_CMD_XINITRC);
|
list->props[1].cmd = strdup(LY_CMD_XINITRC);
|
||||||
list->props[1].type = xorg;
|
list->props[1].type = xinitrc;
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef _DESKTOP_H_
|
#ifndef _DESKTOP_H_
|
||||||
#define _DESKTOP_H_
|
#define _DESKTOP_H_
|
||||||
|
|
||||||
enum deserv_t {shell, xorg, wayland};
|
enum deserv_t {shell, xorg, xinitrc, wayland};
|
||||||
|
|
||||||
struct deprops_t
|
struct deprops_t
|
||||||
{
|
{
|
||||||
|
|
10
src/login.c
10
src/login.c
|
@ -339,8 +339,12 @@ const char* de_command, enum deserv_t display_server)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case xorg:
|
case xorg:
|
||||||
|
launch_xorg(pwd, login_handle, de_command, display_name, vt, 0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case xinitrc:
|
||||||
default :
|
default :
|
||||||
launch_xorg(pwd, login_handle, de_command, display_name, vt);
|
launch_xorg(pwd, login_handle, de_command, display_name, vt, 1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -430,7 +434,7 @@ const char* de_command, enum deserv_t display_server)
|
||||||
}
|
}
|
||||||
|
|
||||||
void launch_xorg(struct passwd* pwd, pam_handle_t* pam_handle,
|
void launch_xorg(struct passwd* pwd, pam_handle_t* pam_handle,
|
||||||
const char* de_command, const char* display_name, const char* vt)
|
const char* de_command, const char* display_name, const char* vt, int xinitrc)
|
||||||
{
|
{
|
||||||
FILE* file;
|
FILE* file;
|
||||||
pid_t xauth_pid;
|
pid_t xauth_pid;
|
||||||
|
@ -455,7 +459,7 @@ const char* de_command, const char* display_name, const char* vt)
|
||||||
reset_terminal(pwd);
|
reset_terminal(pwd);
|
||||||
/* starts session */
|
/* starts session */
|
||||||
snprintf(cmd, sizeof(cmd),
|
snprintf(cmd, sizeof(cmd),
|
||||||
"exec xinit /usr/bin/%s -- %s %s %s -auth %s", de_command, LY_CMD_X,
|
"exec xinit %s%s -- %s %s %s -auth %s", xinitrc ? "~/" : "/usr/bin/", de_command, LY_CMD_X,
|
||||||
display_name, vt, getenv("XAUTHORITY"));
|
display_name, vt, getenv("XAUTHORITY"));
|
||||||
execl(pwd->pw_shell, pwd->pw_shell, "-c", cmd, NULL);
|
execl(pwd->pw_shell, pwd->pw_shell, "-c", cmd, NULL);
|
||||||
exit(0);
|
exit(0);
|
||||||
|
|
|
@ -10,7 +10,7 @@ struct pam_response** resp, void* appdata_ptr);
|
||||||
int start_env(const char* username, const char* password,
|
int start_env(const char* username, const char* password,
|
||||||
const char* de_command, enum deserv_t display_server);
|
const char* de_command, enum deserv_t display_server);
|
||||||
void launch_xorg(struct passwd* pwd, pam_handle_t* pam_handle,
|
void launch_xorg(struct passwd* pwd, pam_handle_t* pam_handle,
|
||||||
const char* de_command, const char* display_name, const char* vt);
|
const char* de_command, const char* display_name, const char* vt, int xinitrc);
|
||||||
void launch_wayland(struct passwd* pwd, pam_handle_t* pam_handle,
|
void launch_wayland(struct passwd* pwd, pam_handle_t* pam_handle,
|
||||||
const char* de_command);
|
const char* de_command);
|
||||||
void launch_shell(struct passwd* pwd, pam_handle_t* pam_handle);
|
void launch_shell(struct passwd* pwd, pam_handle_t* pam_handle);
|
||||||
|
|
Loading…
Reference in New Issue