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 that
FYI, 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 row
case 222:
return 49; // ²
case 49:
return 10; //1
case 50:
return 11; //2
case 51:
return 12; //3
case 52:
return 13; //4
case 53:
return 14; //5
case 54:
return 15; //6
case 55:
return 16; //7
case 56:
return 17; //8
case 57:
return 18; //9
case 48:
return 19; //0
case 169:
return 20; //°
case 61:
return 21; //+
case 8:
return 22; //BSP
//2 row
case 9 :
return 23; //TAB
case 65:
return 24; //a
case 90:
return 25; //z
case 69 :
return 26; //e
case 82 :
return 27; //r
case 84 :
return 28; //t
case 89:
return 29; //y
case 85:
return 30; //u
case 73:
return 31; //i
case 79:
return 32; //o
case 80:
return 33; //p
case 160:
return 34; //[
case 164:
return 35; //]
case 13:
return 36; //ENT
//3 row
case 20 :
return 66; //CAPS
case 81 :
return 38; //q
case 83 :
return 39; //s
case 68 :
return 40; //d
case 70 :
return 41; //f
case 71 :
return 42; //g
case 72 :
return 43; //h
case 74 :
return 44; //j
case 75 :
return 45; //k
case 76 :
return 46; //l
case 77 :
return 47; //m
case 165 :
return 48; //ù
case 170 :
return 51; // *
//4 row
case 16 :
return 50; //Shift Left
case 60 :
return 94; //<
case 87 :
return 52; //w
case 88 :
return 53; //x
case 67 :
return 54; //c
case 86 :
return 55; //v
case 66 :
return 56; //b
case 78 :
return 57; //n
case 188 :
return 58; //,
case 59 :
return 59; //;
case 58 :
return 60; //:
case 161 :
return 61; //!
case 16 :
return 62; //Shift Right
//5 row
case 17 :
return 37; //LCTRL
case 91 :
return 133; //LMETA
case 18 :
return 64; //LALT
case 32 :
return 65; //SPACE
case 18 :
return 108; //RALT
+// case 92 : +// return 134; //RMETA +// case 93 : +// return 135; //MENU
case 17 :
return 105; //RCTRL
//specials
case 27 :
return 9; //ESC
case 112 :
return 67; //F1
case 113 :
return 68; //F2
case 114 :
return 69; //F3
case 115 :
return 70; //F4
case 116 :
return 71; //F5
case 117 :
return 72; //F6
case 118 :
return 73; //F7
case 119 :
return 74; //F8
case 120 :
return 75; //F9
case 121 :
return 76; //F10
case 122 :
return 95; //F11
case 123 :
return 96; //F12
case 44 :
return 107; //print
+// case 145 : +// return 78; //scroll +// case 19 : +// return 127; //break
case 45 :
return 118; //ins
case 36 :
return 110; //home
case 33 :
return 112; //pgup
case 46 :
return 119; //del
case 35 :
return 115; //end
case 34 :
return 117; //pgdn
//arrows
case 38 :
return 111;
case 37 :
return 113;
case 40 :
return 116;
case 39 :
return 114;
//numlock
case 144 :
return 77; //NLCK
case 111 :
return 106; ///
case 106 :
return 63; // *
case 109 :
return 82; //-
case 36 :
return 79; //home
case 38 :
return 80; //up
case 33 :
return 81; //pgup
case 107 :
return 86; //+
case 37 :
return 83; //left
case 12 :
return 84; //clear
case 39 :
return 85; //right
case 35 :
return 87; //end
case 40 :
return 88; //dwn
case 34 :
return 89; //pgdn
case 13 :
return 104; //enter
case 45 :
return 90; //ins
case 46 :
return 91; //del
case 96 :
return 90; //0
case 97 :
return 87; //1
case 98 :
return 88; //2
case 99 :
return 89; //3
case 100 :
return 83; //4
case 101 :
return 84; //5
case 102 :
return 85; //6
case 103 :
return 79; //7
case 104 :
return 80; //8
case 105 :
return 81; //9
case 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