diff options
author | NPScript <nathan@reinerweb.ch> | 2022-06-19 09:25:25 +0200 |
---|---|---|
committer | NPScript <nathan@reinerweb.ch> | 2022-06-19 09:25:25 +0200 |
commit | af93a7a473de8bc46a00a40c52e3e56439ff7dc2 (patch) | |
tree | 26111e84a401d96ece2fcf43239514098717b0fa | |
parent | ac23be740a8b39f73c8dfebd2c391a0ef637c7ee (diff) |
design update
-rw-r--r-- | config.h | 6 | ||||
-rw-r--r-- | drw.c | 2 | ||||
-rw-r--r-- | drw.o | bin | 10616 -> 0 bytes | |||
-rw-r--r-- | explicit_bzero.o | bin | 1408 -> 0 bytes | |||
-rwxr-xr-x | slock | bin | 27432 -> 27448 bytes | |||
-rw-r--r-- | slock.c | 90 | ||||
-rw-r--r-- | slock.o | bin | 13912 -> 0 bytes | |||
-rw-r--r-- | util.o | bin | 2256 -> 0 bytes |
8 files changed, 33 insertions, 65 deletions
@@ -9,8 +9,6 @@ static const char *colorname[NUMCOLS] = { /* treat a cleared input like a wrong password (color) */ 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 * textcolor[] = {"#547f62", "#181818", "#181818"}; +const char * decoration[] = {"#7f5471", "#181818", "#181818"}; const char * pass_char = "•"; -const char * cursor_char = "_"; @@ -385,7 +385,7 @@ drw_map(Drw *drw, Window win, int x, int y, unsigned int w, unsigned int h) if (!drw) return; - XCopyArea(drw->dpy, drw->drawable, win, drw->gc, x, y, w, h, x, y); + XCopyArea(drw->dpy, drw->drawable, win, drw->gc, 0, 0, w, h, x, y); XSync(drw->dpy, False); } diff --git a/explicit_bzero.o b/explicit_bzero.o Binary files differBinary files differdeleted file mode 100644 index 5c022a6..0000000 --- a/explicit_bzero.o +++ /dev/null @@ -119,13 +119,15 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, const char *hash) { XRRScreenChangeNotifyEvent *rre; - char buf[32], passwd[256], *inputhash; + char buf[32] = {0}, passwd[256] = {0}, *inputhash; int num, screen, running, failure, oldc; - unsigned int len, color; + unsigned int len, lastlen, color; + int line = 20; KeySym ksym; XEvent ev; len = 0; + lastlen = 0; running = 1; failure = 0; @@ -134,40 +136,24 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, scr = XRRGetScreenResources(dpy, locks[0]->win); crtc_info = XRRGetCrtcInfo(dpy, scr, scr->crtcs[0]); - int w_pos[] = { (crtc_info->width - diasize[0]) / 2, (crtc_info->height - diasize[1]) / 2 }; - - int w_len[] = {diasize[0] + w_pos[0], diasize[1] + w_pos[1]}; - Drw * drw = drw_create(dpy, locks[0]->screen, locks[0]->win, crtc_info->width, crtc_info->height); - Clr * scm = drw_scm_create(drw, schemes, 3); + Drw * drw = drw_create(dpy, locks[0]->screen, locks[0]->win, crtc_info->x + crtc_info->width, crtc_info->y + 300); + Clr * tscm = drw_scm_create(drw, textcolor, 3); + Clr * dscm = drw_scm_create(drw, decoration, 3); Fnt * font = drw_fontset_create(drw, fonts, 1); drw_setfontset(drw, font); - drw_setscheme(drw, scm); - - int l_size = drw_fontset_getwidth(drw, lock_message); - int t_pos[] = {(diasize[0] / 2) - (l_size / 2) + w_pos[0], w_pos[1]}; - int t_len[] = {diasize[0] + w_pos[0], w_pos[1] / 3}; + const char * text = getenv("USER"); + unsigned int twidth = drw_fontset_getwidth(drw, text); + drw_setscheme(drw, tscm); 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_text(drw, (crtc_info->width - twidth) / 2, 0, twidth, 20, 0, text, 0); - drw_map(drw, locks[0]->win, 0, 0, crtc_info->width, crtc_info->height); - + drw_setscheme(drw, dscm); + drw_rect(drw, (crtc_info->width - len * line) / 2, 200, len * line, 5, 1, 0); + drw_map(drw, locks[0]->win, crtc_info->x, crtc_info->y + (crtc_info->height - 300) / 2, crtc_info->width, 300); while (running && !XNextEvent(dpy, &ev)) { if (ev.type == KeyPress) { @@ -227,42 +213,26 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, oldc = color; } + drw_setscheme(drw, tscm); 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); - - if (!failure) { - - for (int i = 0; i < strlen(passwd); i++) { - drw_text(drw, - (i * 15) + (crtc_info->width / 2 - (strlen(passwd) + 1) * 15 / 2), - w_pos[1] + diasize[1], - w_len[0], - diasize[1], - 0, - pass_char, - 0 - ); - } + drw_text(drw, (crtc_info->width - twidth) / 2, 0, twidth, 20, 0, text, 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 - ); - - } else { - drw_text(drw, t_pos[0], w_pos[1] + diasize[1], w_len[0], diasize[1], 0, "\u274c", 0); - failure = 0; - } + drw_setscheme(drw, running ? dscm : tscm); + if (lastlen < len) + for (int i = lastlen * line; i <= len * line; ++i) { + drw_rect(drw, (crtc_info->width - i) / 2, 200, i, 5, 1, 0); + + drw_map(drw, locks[0]->win, crtc_info->x, crtc_info->y + (crtc_info->height - 300) / 2, crtc_info->width, 300); + } + else + for (int i = lastlen * line; i > len * line; --i) { + drw_rect(drw, (crtc_info->width - i) / 2, 200, i, 5, 1, 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, crtc_info->x, crtc_info->y + (crtc_info->height - 300) / 2, crtc_info->width, 300); + drw_rect(drw, (crtc_info->width - i) / 2, 200, i, 5, 1, 1); + } - drw_map(drw, locks[0]->win, 0, 0, crtc_info->width, crtc_info->height); + lastlen = len; } else if (rr->active && ev.type == rr->evbase + RRScreenChangeNotify) { rre = (XRRScreenChangeNotifyEvent*)&ev; diff --git a/slock.o b/slock.o Binary files differBinary files differdeleted file mode 100644 index c166ced..0000000 --- a/slock.o +++ /dev/null |