diff --git a/gui/shaviankb/assets.tal b/gui/shaviankb/assets.tal
index 9d09334..8fdc1b3 100644
--- a/gui/shaviankb/assets.tal
+++ b/gui/shaviankb/assets.tal
@@ -69,53 +69,53 @@
 
 @keys
 &peep    0000 0060 1008 0808 0808 0808 0000 0000 ={ f090 9190 }
-&tot     0000 0008 1868 0808 0808 0808 0000 0000 ={ f090 9190 }
-&kick    0000 0004 0404 3c40 4040 403c 0000 0000 ={ f090 9190 }
-&fee     0000 0008 0808 0808 0808 1060 0000 0000 ={ f090 9190 }
-&thigh   0000 0060 1008 3844 8484 8870 0000 0000 ={ f090 9190 }
-&so      0000 0038 4440 2010 0804 4438 0000 0000 ={ f090 9190 }
-&sure    0000 0008 1020 2040 4040 4438 0000 0000 ={ f090 9190 }
-&church  0000 0008 10e0 2040 4040 4438 0000 0000 ={ f090 9190 }
-&yea     0000 0040 4020 2010 1008 0804 0000 0000 ={ f090 9190 }
-&hung    0000 0030 4848 4848 4848 30cc 0000 0000 ={ f090 9190 }
-&bib     0000 0000 0000 2020 2020 2020 2010 0c00 ={ f090 9190 }
-&dead    0000 0000 0000 4040 4040 4040 5860 4000 ={ f090 9190 }
-&gag     0000 0000 0000 7804 0404 0478 4040 4000 ={ f090 9190 }
-&vow     0000 0000 0000 1820 4040 4040 4040 4000 ={ f090 9190 }
-&they    0000 0000 0000 3844 8484 8870 4020 1800 ={ f090 9190 }
-&zoo     0000 0000 0000 3844 0408 1020 4044 3800 ={ f090 9190 }
-&measure 0000 0000 0000 3844 0404 0408 0810 2000 ={ f090 9190 }
-&judge   0000 0000 0000 3844 0404 0408 0e10 2000 ={ f090 9190 }
-&woe     0000 0000 0000 0408 0810 1020 2040 4000 ={ f090 9190 }
-&haha    0000 0000 0000 cc30 4848 4848 4848 3000 ={ f090 9190 }
-&loll    0000 0000 0000 3840 4040 4038 0000 0000 ={ f090 9190 }
-&mime    0000 0000 0000 0c10 1010 1060 0000 0000 ={ f090 9190 }
-&if      0000 0000 0000 1010 1010 1010 0000 0000 ={ f090 9190 }
-&egg     0000 0000 0000 4040 4040 201c 0000 0000 ={ f090 9190 }
-&ash     0000 0000 0000 0404 0404 0870 0000 0000 ={ f090 9190 }
-&ado     0000 0000 0000 1c20 4040 4040 0000 0000 ={ f090 9190 }
-&on      0000 0000 0000 7008 0404 0404 0000 0000 ={ f090 9190 }
-&wool    0000 0000 0000 4444 2828 1010 0000 0000 ={ f090 9190 }
-&out     0000 0000 0000 0810 6010 1008 0000 0000 ={ f090 9190 }
-&ah      0000 0000 0000 1c20 2018 0870 0000 0000 ={ f090 9190 }
-&roar    0000 0000 0000 3804 0404 0438 0000 0000 ={ f090 9190 }
-&nun     0000 0000 0000 6010 1010 100c 0000 0000 ={ f090 9190 }
-&eat     0000 0000 0000 404c 5464 0404 0000 0000 ={ f090 9190 }
-&age     0000 0000 0000 7c40 4040 201c 0000 0000 ={ f090 9190 }
-&ice     0000 0000 0000 7c04 0404 0870 0000 0000 ={ f090 9190 }
-&up      0000 0000 0000 7c08 1010 2020 0000 0000 ={ f090 9190 }
-&oak     0000 0000 0000 3844 4444 4438 0000 0000 ={ f090 9190 }
-&ooze    0000 0000 0000 1010 2828 4444 0000 0000 ={ f090 9190 }
-&oil     0000 0000 0000 2010 0c10 1020 0000 0000 ={ f090 9190 }
-&awe     0000 0000 0000 7008 0830 201c 0000 0000 ={ f090 9190 }
-&are     0000 0000 0000 3c42 4232 12e4 0000 0000 ={ f090 9190 }
-&or      0000 0000 0000 cc22 22c2 8478 0000 0000 ={ f090 9190 }
-&air     0000 0000 0000 1c22 2272 8264 0000 0000 ={ f090 9190 }
-&err     0000 0000 0000 6482 7222 221c 0000 0000 ={ f090 9190 }
-&array   0000 0000 0000 3c42 8282 828c 0000 0000 ={ f090 9190 }
-&ear     0000 0000 0000 bcc2 8282 829c 0000 0000 ={ f090 9190 }
-&ian     0000 0000 0000 4e50 6040 4040 0000 0000 ={ f090 9190 }
-&yew     0000 0080 8080 4848 5454 2222 0000 0000 ={ f090 9190 }
+&tot     0000 0008 1868 0808 0808 0808 0000 0000 ={ f090 9191 }
+&kick    0000 0004 0404 3c40 4040 403c 0000 0000 ={ f090 9192 }
+&fee     0000 0008 0808 0808 0808 1060 0000 0000 ={ f090 9193 }
+&thigh   0000 0060 1008 3844 8484 8870 0000 0000 ={ f090 9194 }
+&so      0000 0038 4440 2010 0804 4438 0000 0000 ={ f090 9195 }
+&sure    0000 0008 1020 2040 4040 4438 0000 0000 ={ f090 9196 }
+&church  0000 0008 10e0 2040 4040 4438 0000 0000 ={ f090 9197 }
+&yea     0000 0040 4020 2010 1008 0804 0000 0000 ={ f090 9198 }
+&hung    0000 0030 4848 4848 4848 30cc 0000 0000 ={ f090 9199 }
+&bib     0000 0000 0000 2020 2020 2020 2010 0c00 ={ f090 919a }
+&dead    0000 0000 0000 4040 4040 4040 5860 4000 ={ f090 919b }
+&gag     0000 0000 0000 7804 0404 0478 4040 4000 ={ f090 919c }
+&vow     0000 0000 0000 1820 4040 4040 4040 4000 ={ f090 919d }
+&they    0000 0000 0000 3844 8484 8870 4020 1800 ={ f090 919e }
+&zoo     0000 0000 0000 3844 0408 1020 4044 3800 ={ f090 919f }
+&measure 0000 0000 0000 3844 0404 0408 0810 2000 ={ f090 91a0 }
+&judge   0000 0000 0000 3844 0404 0408 0e10 2000 ={ f090 91a1 }
+&woe     0000 0000 0000 0408 0810 1020 2040 4000 ={ f090 91a2 }
+&haha    0000 0000 0000 cc30 4848 4848 4848 3000 ={ f090 91a3 }
+&loll    0000 0000 0000 3840 4040 4038 0000 0000 ={ f090 91a4 }
+&mime    0000 0000 0000 0c10 1010 1060 0000 0000 ={ f090 91a5 }
+&if      0000 0000 0000 1010 1010 1010 0000 0000 ={ f090 91a6 }
+&egg     0000 0000 0000 4040 4040 201c 0000 0000 ={ f090 91a7 }
+&ash     0000 0000 0000 0404 0404 0870 0000 0000 ={ f090 91a8 }
+&ado     0000 0000 0000 1c20 4040 4040 0000 0000 ={ f090 91a9 }
+&on      0000 0000 0000 7008 0404 0404 0000 0000 ={ f090 91aa }
+&wool    0000 0000 0000 4444 2828 1010 0000 0000 ={ f090 91ab }
+&out     0000 0000 0000 0810 6010 1008 0000 0000 ={ f090 91ac }
+&ah      0000 0000 0000 1c20 2018 0870 0000 0000 ={ f090 91ad }
+&roar    0000 0000 0000 3804 0404 0438 0000 0000 ={ f090 91ae }
+&nun     0000 0000 0000 6010 1010 100c 0000 0000 ={ f090 91af }
+&eat     0000 0000 0000 404c 5464 0404 0000 0000 ={ f090 91b0 }
+&age     0000 0000 0000 7c40 4040 201c 0000 0000 ={ f090 91b1 }
+&ice     0000 0000 0000 7c04 0404 0870 0000 0000 ={ f090 91b2 }
+&up      0000 0000 0000 7c08 1010 2020 0000 0000 ={ f090 91b3 }
+&oak     0000 0000 0000 3844 4444 4438 0000 0000 ={ f090 91b4 }
+&ooze    0000 0000 0000 1010 2828 4444 0000 0000 ={ f090 91b5 }
+&oil     0000 0000 0000 2010 0c10 1020 0000 0000 ={ f090 91b6 }
+&awe     0000 0000 0000 7008 0830 201c 0000 0000 ={ f090 91b7 }
+&are     0000 0000 0000 3c42 4232 12e4 0000 0000 ={ f090 91b8 }
+&or      0000 0000 0000 cc22 22c2 8478 0000 0000 ={ f090 91b9 }
+&air     0000 0000 0000 1c22 2272 8264 0000 0000 ={ f090 91ba }
+&err     0000 0000 0000 6482 7222 221c 0000 0000 ={ f090 91bb }
+&array   0000 0000 0000 3c42 8282 828c 0000 0000 ={ f090 91bc }
+&ear     0000 0000 0000 bcc2 8282 829c 0000 0000 ={ f090 91bd }
+&ian     0000 0000 0000 4e50 6040 4040 0000 0000 ={ f090 91be }
+&yew     0000 0080 8080 4848 5454 2222 0000 0000 ={ f090 91bf }
 
 &zero    0000 0078 8484 8484 8484 8478 0000 0000 ={ "0 }
 &one     0000 0010 3010 1010 1010 1010 0000 0000 ={ "1 }
diff --git a/gui/shaviankb/shaviankb.tal b/gui/shaviankb/shaviankb.tal
index 6c74f62..4614f32 100644
--- a/gui/shaviankb/shaviankb.tal
+++ b/gui/shaviankb/shaviankb.tal
@@ -9,6 +9,7 @@
 
 	@hover $2
 	@lock $1
+	@layer $1
 
 |0100
 
@@ -56,6 +57,7 @@
 	JMP2r
 
 @<set-press> ( id* -- )
+	DUP #1b NEQ ?{ POP2 !<toggle-layer> }
 	.hover LDZ2 ;btn-chr <draw-key-id>
 	DUP2 ;btn-press-chr <draw-key-id>
 	( | event )
@@ -67,6 +69,10 @@
 		INC2 GTH2k ?&l
 	POP2 POP2 JMP2r
 
+@<toggle-layer> ( -- )
+	.layer LDZ INC #03 DIVk MUL SUB .layer STZ
+	!<draw-keyboard>
+
 @<set-hover> ( id* -- )
 	DUP2 .hover LDZ2 EQU2 ?{
 		.hover LDZ2 ;btn-chr <draw-key-id>
@@ -116,15 +122,15 @@
 	.Screen/x DEI2k #0002 SUB2 ROT DEO2
 	.Screen/y DEI2k #0024 STHr SUB STHr SUB SUB2 ROT DEO2
 	( | a )
-	#00 <draw-glyph>
+	#0a00 [ LIT2 01 -layer ] LDZ EQU [ JMP SWP POP ] <draw-glyph>
 	.Screen/x DEI2k #0002 SUB2 ROT DEO2
 	.Screen/y DEI2k #000c ADD2 ROT DEO2
 	( | b )
-	#0a <draw-glyph>
+	#0a00 [ LIT2 00 -layer ] LDZ EQU [ JMP SWP POP ] <draw-glyph>
 	.Screen/x DEI2k #0002 SUB2 ROT DEO2
 	.Screen/y DEI2k #000c ADD2 ROT DEO2
 	( | c )
-	#05 <draw-glyph>
+	#0a05 [ LIT2 02 -layer ] LDZ EQU [ JMP SWP POP ] <draw-glyph>
 	.Screen/x DEI2k #0006 ADD2 ROT DEO2
 	.Screen/y DEI2k #001c SUB2 ROT DEO2
 	JMP2r
@@ -202,6 +208,6 @@
 	&c ( -- )
 		#0f AND DUP #09 GTH #27 MUL ADD [ LIT "0 ] ADD #18 DEO
 		JMP2r
-	
+
 ~assets.tal