diff --git a/ly.service b/ly.service index 8f8f970..56d7156 100755 --- a/ly.service +++ b/ly.service @@ -1,13 +1,13 @@ [Unit] Description=ly ncurses display manager After=systemd-user-sessions.service plymouth-quit-wait.service -After=getty@tty2.service +After=getty@tty1.service [Service] Type=simple ExecStart=/usr/bin/ly StandardInput=tty -TTYPath=/dev/tty2 +TTYPath=/dev/tty1 TTYReset=yes TTYVHangup=yes diff --git a/src/login.c b/src/login.c index 94861e9..11db9a3 100644 --- a/src/login.c +++ b/src/login.c @@ -100,13 +100,19 @@ const char* de_command, enum deserv_t display_server) int display_id; char display_name[3]; char tty_id[3]; - char vt[5]; + char vt[5] = "vtXX"; + char *tty_name; /* */ /* generates console and display id and updates the environment */ destroy_env(); display_id = get_free_display(); snprintf(display_name, sizeof(display_name), ":%d", display_id); - snprintf(tty_id, sizeof(tty_id), "%d", LY_CONSOLE_TTY); - snprintf(vt, sizeof(vt), "vt%d", LY_CONSOLE_TTY); + tty_name = ttyname(STDIN_FILENO); /* */ + if (strncmp(tty_name, "/dev/tty", 8) == 0) { + strcpy(tty_id, tty_name + 8); + } else { /* technically an error, but who really cares about XDG settings anyway? */ + snprintf(tty_id, sizeof(tty_id), "%d", LY_CONSOLE_TTY); + } + strcpy(vt + 2, tty_id); /* */ init_xdg(tty_id, display_name, display_server); /* pam_start and error handling */ pam_result = pam_start(LY_SERVICE_NAME, username, &conv, &login_handle); @@ -537,6 +543,7 @@ enum deserv_t display_server) { case shell: setenv("XDG_SESSION_TYPE", "tty", 0); + break; /* */ case wayland: setenv("XDG_SESSION_TYPE", "wayland", 0); diff --git a/src/ncui.c b/src/ncui.c index e29db3e..9c677fa 100644 --- a/src/ncui.c +++ b/src/ncui.c @@ -22,12 +22,14 @@ size_t max(size_t a, size_t b) void init_ncurses(FILE* desc) { - int filedesc = fileno(desc); + /* int filedesc = fileno(desc); */ /* required for ncurses */ putenv(LY_CONSOLE_TERM); +#if 0 /* */ /* switches tty */ ioctl(filedesc, VT_ACTIVATE, LY_CONSOLE_TTY); ioctl(filedesc, VT_WAITACTIVE, LY_CONSOLE_TTY); +#endif /* ncurses startup */ initscr(); raw();