summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/cmd/screenlock.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/sys/src/cmd/screenlock.c b/sys/src/cmd/screenlock.c
index 9ac9fa064..1b46fc97e 100644
--- a/sys/src/cmd/screenlock.c
+++ b/sys/src/cmd/screenlock.c
@@ -119,14 +119,19 @@ grabmouse(void*)
void
top(void*)
{
- int fd;
+ int fd, n;
+ char buf[128];
- if((fd = open("/dev/wctl", OWRITE)) < 0)
+ if((fd = open("/dev/wctl", ORDWR)) < 0)
return;
for(;;){
- write(fd, "current", 7);
- sleep(500);
+ n = read(fd, buf, sizeof buf-1);
+ if(n > 48){
+ buf[n] = '\0';
+ if(strstr(buf+48, "notcurrent"))
+ write(fd, "current", 7);
+ }
}
}
@@ -186,7 +191,7 @@ lockscreen(void)
tm = localtime(time(&blank));
s = smprint("user %s at %d:%02.2d", getuser(), tm->hour, tm->min);
p = subpt(p, Pt(stringwidth(font, "m") * strlen(s) / 2, 0));
- string(screen, p, screen->display->white, ZP, font, s);
+ stringbg(screen, p, display->white, ZP, font, s, display->black, ZP);
}
flushimage(display, 1);