From ba80b9f6cd448f362aa37079a51d430af4ad468c Mon Sep 17 00:00:00 2001 From: NPScript Date: Wed, 24 Feb 2021 11:25:55 +0100 Subject: cleanup --- config.h | 7 +++---- slock | Bin 27496 -> 27432 bytes slock.c | 41 ++++++++++++++++++++++++++++++----------- slock.o | Bin 13856 -> 13912 bytes 4 files changed, 33 insertions(+), 15 deletions(-) diff --git a/config.h b/config.h index c9d7ba3..0fe7055 100644 --- a/config.h +++ b/config.h @@ -3,9 +3,7 @@ static const char *user = "nobody"; static const char *group = "nogroup"; static const char *colorname[NUMCOLS] = { - [INIT] = "#181818", /* after initialization */ - [INPUT] = "#181818", /* during input */ - [FAILED] = "#181818", /* wrong password */ + [BACKGROUND] = "#181818", /* Background */ }; /* treat a cleared input like a wrong password (color) */ @@ -13,5 +11,6 @@ static const int failonclear = 1; const char * fonts[] = {"Source Code Pro:size=24"}; const char * schemes[] = {"#547f62", "#181818", "#181818"}; const int diasize[] = {320, 320}; -const char * lock_message = "Nathan Reiner"; +const char * lock_message = "> Nathan Reiner"; const char * pass_char = "•"; +const char * cursor_char = "_"; diff --git a/slock b/slock index db54289..f112d78 100755 Binary files a/slock and b/slock differ diff --git a/slock.c b/slock.c index 4a8ad63..d5ea2cf 100644 --- a/slock.c +++ b/slock.c @@ -27,9 +27,7 @@ char *argv0; enum { - INIT, - INPUT, - FAILED, + BACKGROUND, NUMCOLS }; @@ -130,7 +128,6 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, len = 0; running = 1; failure = 0; - oldc = INIT; XRRScreenResources * scr; XRRCrtcInfo * crtc_info; @@ -154,6 +151,20 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, drw_rect(drw, 0, 0, crtc_info->width, crtc_info->height, 1, 1); drw_text(drw, t_pos[0], t_pos[1], t_len[0], t_len[1], 0, lock_message, 0); + + drw_text(drw, + ((strlen(passwd)) * 15) + (crtc_info->width / 2 - (strlen(passwd) + 1) * 15 / 2), + w_pos[1] + diasize[1], + w_len[0], + diasize[1], + 0, + cursor_char, + 0 + ); + drw_rect(drw, crtc_info->width / 2 - (strlen(passwd) + 1) * 15 / 2 - 15, w_pos[1] + diasize[1] + 140, (strlen(passwd) + 1) * 15 + 33, 47, 0, 0); + + drw_rect(drw, crtc_info->width / 2 - (strlen(passwd) + 1) * 15 / 2, w_pos[1] + diasize[1] + 140, (strlen(passwd) + 1) * 15 + 3, 47, 0, 1); + drw_map(drw, locks[0]->win, 0, 0, crtc_info->width, crtc_info->height); @@ -205,7 +216,7 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, } break; } - color = len ? INPUT : ((failure || failonclear) ? FAILED : INIT); + color = BACKGROUND; if (running && oldc != color) { for (screen = 0; screen < nscreens; screen++) { XSetWindowBackground(dpy, @@ -223,7 +234,7 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, for (int i = 0; i < strlen(passwd); i++) { drw_text(drw, - (i * 15) + (crtc_info->width / 2 - strlen(passwd) * 15 / 2), + (i * 15) + (crtc_info->width / 2 - (strlen(passwd) + 1) * 15 / 2), w_pos[1] + diasize[1], w_len[0], diasize[1], @@ -233,15 +244,23 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, ); } + drw_text(drw, + ((strlen(passwd)) * 15) + (crtc_info->width / 2 - (strlen(passwd) + 1) * 15 / 2), + w_pos[1] + diasize[1], + w_len[0], + diasize[1], + 0, + cursor_char, + 0 + ); + } else { drw_text(drw, t_pos[0], w_pos[1] + diasize[1], w_len[0], diasize[1], 0, "\u274c", 0); failure = 0; } - if (strlen(passwd) > 0) - drw_rect(drw, crtc_info->width / 2 - strlen(passwd) * 15 / 2 - 15, w_pos[1] + diasize[1] + 140, strlen(passwd) * 15 + 33, 47, 0, 0); - else - drw_rect(drw, crtc_info->width / 2 - 15 / 2 - 15, w_pos[1] + diasize[1] + 140, 15 + 33, 47, 0, 0); + drw_rect(drw, crtc_info->width / 2 - (strlen(passwd) + 1) * 15 / 2 - 15, w_pos[1] + diasize[1] + 140, (strlen(passwd) + 1) * 15 + 33, 47, 0, 0); + drw_rect(drw, crtc_info->width / 2 - (strlen(passwd) + 1) * 15 / 2, w_pos[1] + diasize[1] + 140, (strlen(passwd) + 1) * 15 + 3, 47, 0, 1); drw_map(drw, locks[0]->win, 0, 0, crtc_info->width, crtc_info->height); @@ -291,7 +310,7 @@ lockscreen(Display *dpy, struct xrandr *rr, int screen) /* init */ wa.override_redirect = 1; - wa.background_pixel = lock->colors[INIT]; + wa.background_pixel = lock->colors[BACKGROUND]; lock->win = XCreateWindow(dpy, lock->root, 0, 0, DisplayWidth(dpy, lock->screen), DisplayHeight(dpy, lock->screen), diff --git a/slock.o b/slock.o index 2946ec3..c166ced 100644 Binary files a/slock.o and b/slock.o differ -- cgit v1.2.3-70-g09d2