Hi Dj ZU, On Di 20 Aug 2024 18:30:16 CEST, Dj ZU wrote:
Hi team,
Thank you for the development of X2go, I'm using Kdrive on the Windows client on a daily basis and very happy with it! I am also using the HTML client but faced limitations with the keyboard that I could fix. I made the changes directly on the compiled JS but it all happens in [x2gohtmlclient.git] / src / x2gokdrivehtmlclient.js
CapsLock and AltGr modifier keys were not effective. Fix: @@ -1419,10 +1691,17 @@ X2GoKDriveHTMLClient { v32[1] |= Mod4Mask; }
- if (e.getModifierState("AltGraph")) {
- v32[1] |= Mod5Mask;
- }
- if (e.getModifierState("CapsLock")) {
- v32[1] |= LockMask;
} v32[2] = this.web2pc105(e.keyCode);// console.log(v32[1], v32[2]);
e.preventDefault(); e.stopPropagation();Minor issue with parsing: @@ -1249,7 +1249,7 @@ X2GoKDriveHTMLClient case 111 : return 106; /// case 106 :
return 63; //*
nano/gedit do not get confused with syntax highlighting) case 109 : return 82; //-return 63; // * (putting a space before * here, so thatFYI, since I'm using a French keyboard, I also created a new keymap, but this should probably be written differently and add a UI setting in the HTML to choose the keyboard mapping.
v32[2] = this.web2pc105(e.keyCode);
v32[2] = this.web2pc105fr(e.keyCode);@@ -1312,6 +1312,273 @@ X2GoKDriveHTMLClient return nativeCode; }
web2pc105fr(nativeCode)
{
switch (nativeCode){//1st rowcase 222:return 49; // ²case 49:return 10; //1case 50:return 11; //2case 51:return 12; //3case 52:return 13; //4case 53:return 14; //5case 54:return 15; //6case 55:return 16; //7case 56:return 17; //8case 57:return 18; //9case 48:return 19; //0case 169:return 20; //°case 61:return 21; //+case 8:return 22; //BSP//2 rowcase 9 :return 23; //TABcase 65:return 24; //acase 90:return 25; //zcase 69 :return 26; //ecase 82 :return 27; //rcase 84 :return 28; //tcase 89:return 29; //ycase 85:return 30; //ucase 73:return 31; //icase 79:return 32; //ocase 80:return 33; //pcase 160:return 34; //[case 164:return 35; //]case 13:return 36; //ENT//3 rowcase 20 :return 66; //CAPScase 81 :return 38; //qcase 83 :return 39; //scase 68 :return 40; //dcase 70 :return 41; //fcase 71 :return 42; //gcase 72 :return 43; //hcase 74 :return 44; //jcase 75 :return 45; //kcase 76 :return 46; //lcase 77 :return 47; //mcase 165 :return 48; //ùcase 170 :return 51; // *//4 rowcase 16 :return 50; //Shift Leftcase 60 :return 94; //<case 87 :return 52; //wcase 88 :return 53; //xcase 67 :return 54; //ccase 86 :return 55; //vcase 66 :return 56; //bcase 78 :return 57; //ncase 188 :return 58; //,case 59 :return 59; //;case 58 :return 60; //:case 161 :return 61; //!case 16 :return 62; //Shift Right//5 rowcase 17 :return 37; //LCTRLcase 91 :return 133; //LMETAcase 18 :return 64; //LALTcase 32 :return 65; //SPACEcase 18 :return 108; //RALT+// case 92 : +// return 134; //RMETA +// case 93 : +// return 135; //MENU
case 17 :return 105; //RCTRL//specialscase 27 :return 9; //ESCcase 112 :return 67; //F1case 113 :return 68; //F2case 114 :return 69; //F3case 115 :return 70; //F4case 116 :return 71; //F5case 117 :return 72; //F6case 118 :return 73; //F7case 119 :return 74; //F8case 120 :return 75; //F9case 121 :return 76; //F10case 122 :return 95; //F11case 123 :return 96; //F12case 44 :return 107; //print+// case 145 : +// return 78; //scroll +// case 19 : +// return 127; //break
case 45 :return 118; //inscase 36 :return 110; //homecase 33 :return 112; //pgupcase 46 :return 119; //delcase 35 :return 115; //endcase 34 :return 117; //pgdn//arrowscase 38 :return 111;case 37 :return 113;case 40 :return 116;case 39 :return 114;//numlockcase 144 :return 77; //NLCKcase 111 :return 106; ///case 106 :return 63; // *case 109 :return 82; //-case 36 :return 79; //homecase 38 :return 80; //upcase 33 :return 81; //pgupcase 107 :return 86; //+case 37 :return 83; //leftcase 12 :return 84; //clearcase 39 :return 85; //rightcase 35 :return 87; //endcase 40 :return 88; //dwncase 34 :return 89; //pgdncase 13 :return 104; //entercase 45 :return 90; //inscase 46 :return 91; //delcase 96 :return 90; //0case 97 :return 87; //1case 98 :return 88; //2case 99 :return 89; //3case 100 :return 83; //4case 101 :return 84; //5case 102 :return 85; //6case 103 :return 79; //7case 104 :return 80; //8case 105 :return 81; //9case 110 :return 91; //.}return nativeCode;}
Cheers!
DjZU
Could you sign up for gitlab.x2go.org and file a merge request there? https://gitlab.x2go.org/x2go/client/html/x2gohtmlclient Ideally, one MR per observed issue. Let me know if that works for you... Mike -- DAS-NETZWERKTEAM c\o Technik- und Ökologiezentrum Eckernförde Mike Gabriel, Marienthaler Str. 17, 24340 Eckernförde mobile: +49 (1520) 1976 148 landline: +49 (4351) 850 8940 GnuPG Fingerprint: 9BFB AEE8 6C0A A5FF BF22 0782 9AF4 6B30 2577 1B31 mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de