shithub: riscv

Download patch

ref: 2bf642de9d62e6cd10dbcb009fa6e1c700f56d00
parent: f03260bf257c34bd261493806b963feddd3df42b
author: cinap_lenrek <[email protected]>
date: Fri Dec 1 18:13:01 EST 2017

screenlock: blank screen using /dev/mousectl (thanks sl)

--- a/sys/src/cmd/screenlock.c
+++ b/sys/src/cmd/screenlock.c
@@ -8,7 +8,6 @@
 
 char pic[] = "/lib/bunny.bit";
 
-int vgactl;
 int debug;
 int doblank;
 int chatty = 0;
@@ -16,16 +15,6 @@
 char user[256];
 
 void
-blankscreen(int blank)
-{
-	if(vgactl < 0)
-		return;
-	seek(vgactl, 0, 0);
-	if(fprint(vgactl, blank? "blank": "unblank") < 0)
-		fprint(2, "blankscreen: can't blank: %r\n");
-}
-
-void
 error(char *fmt, ...)
 {
 	Fmt f;
@@ -122,7 +111,6 @@
 			fprint(2, "%s's screenlock password: ", user);
 		memset(buf, 0, sizeof buf);
 		readline(buf, sizeof buf);
-		blankscreen(0);
 		if(chatty || !must)
 			fprint(2, "\n");
 		if(buf[0] == '\0' || buf[0] == '\04'){
@@ -142,14 +130,16 @@
 		doblank = 1;
 	}
 	memset(buf, 0, sizeof buf);
-	blankscreen(0);
 }
 
 void
 blanker(void *)
 {
-	int tics;
+	int fd, tics;
 
+	fd = open("/dev/mousectl", OWRITE);
+	if(fd < 0)
+		return;
 	tics = 0;
 	for(;;){
 		if(doblank > 0){
@@ -157,7 +147,7 @@
 			tics = 10;
 		}
 		if(tics > 0 && --tics == 0)
-			blankscreen(1);
+			write(fd, "blank", 5);
 		sleep(1000);
 	}
 }
@@ -268,10 +258,6 @@
 threadmain(int argc, char *argv[])
 {
 	readfile("#c/user", user, sizeof user, 1);
-
-	if((vgactl = open("/dev/vgactl", OWRITE)) < 0)
-		vgactl = open("#v/vgactl", OWRITE);
-
 	ARGBEGIN{
 	case 'd':
 		debug++;