Mon 21 Jul 22:43:21 CEST 2025
This commit is contained in:
		
							parent
							
								
									2ffbc18528
								
							
						
					
					
						commit
						980ebf0cee
					
				
							
								
								
									
										47
									
								
								js/x11/examples/smoketest/keyboard/getkeyboardmapping.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								js/x11/examples/smoketest/keyboard/getkeyboardmapping.js
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,47 @@ | |||
| var x11 = require('../../../lib'); | ||||
| var keysym = require('keysym'); | ||||
| 
 | ||||
| 
 | ||||
| var ks = x11.keySyms; | ||||
| var ks2Name = {}; | ||||
| for (var key in ks) | ||||
|     ks2Name[ ks[key].code ] = key; | ||||
| var kk2Name = {}; | ||||
| 
 | ||||
| x11.createClient(function(err, display) { | ||||
|     var X = display.client; | ||||
|     var min = display.min_keycode; | ||||
|     var max = display.max_keycode; | ||||
|     X.GetKeyboardMapping(min, max-min, function(err, list) { | ||||
| 	for (var i=0; i < list.length; ++i) | ||||
|         { | ||||
|             var name = kk2Name[i+min] = []; | ||||
|             var sublist = list[i]; | ||||
|             for (var j =0; j < sublist.length; ++j) | ||||
| 		name.push([ks2Name[sublist[j]], sublist[j]]); | ||||
|         } | ||||
| 
 | ||||
|         var root = display.screen[0].root; | ||||
|         var wid = X.AllocID(); | ||||
|         var white = display.screen[0].white_pixel; | ||||
|         var black = display.screen[0].black_pixel; | ||||
|         X.CreateWindow(wid, root, 10, 10, 400, 300, 0, 0, 0, 0, { backgroundPixel: white, eventMask: x11.eventMask.KeyPress}); | ||||
|         X.MapWindow(wid); | ||||
| 
 | ||||
|         X.on('event', function(ev) { | ||||
|             console.log(ev.type); | ||||
|             console.log(ev); | ||||
|             //console.log([ev.keycode, kk2Name[ev.keycode], keysym.fromKeysym(kk2Name[ev.keycode][0][1])]);
 | ||||
|             var shift = ev.buttons & 1; | ||||
|             var keySyms = kk2Name[ev.keycode]; | ||||
|             if (keySyms) { | ||||
|               var codePoint = keysym.fromKeysym(keySyms[shift ? 1 : 0][1]).unicode; | ||||
|               if (codePoint == 13) | ||||
|                 codePoint = 10; | ||||
|               if (codePoint != 0) | ||||
|                 process.stdout.write(String.fromCharCode(codePoint)); | ||||
|                //console.log('\n', codePoint);
 | ||||
|             } | ||||
|         }); | ||||
|     }); | ||||
| }); | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user