Just realized, if all you need to know (On linux) is the basic keyboard information, you can likely do this..
put url "file:/etc/default/keyboard" into <whatevercontainer> and then parse it. Mine contains KBMODEL="pc105" KBLAYOUT="us" KBVARIANT="" KBOPTIONS="" BACKSPACE="guess" On windows, if the system has powershell (uncertain as to versions?) you might be able to get useful information set the hideconsolewindows to true set the shellcommand to "powershell" get shell("(Get-Culture).keyboardLayoutID") This will put a number into "it" in my case, 1033. Looking at this page.. https://www.science.co.il/language/Locale-codes.php shows that 1033 is en_us. Alternatively, also with powershell set the hideconsolewindows to true set the shellcommand to "powershell" get shell("Get--WinUserLanguageList") At which point IT contains something like.. *LanguageTag : en-US* *Autonym : English (United States)* *EnglishName : English* *LocalizedName : English (United States)* *ScriptName : Latin script* *InputMethodTips : {0409:00000409}* *Spellchecking : True* *Handwriting : False* The number for InputMethodTips means qwerty us, and is in the registry key (for me) The registry key: HKEY_CURRENT_USER\Keyboard Layout\Preload\1 contains the same 0409 number so perhaps queryRegister could be used to grab that. If the user is using a different preferred layout (overriding normal mapping,) it might show in HKEY_CURRENT_USER\Keyboard Layout\Substitutes\1 For example, looking at the number 00010409 denotes 409 english us keyboard layout overridden to be a dvorak layout. After all this, i'm thinking that having the user do a nice keyboard faceroll might still be the easiest solution. On Sun, Feb 25, 2018 at 9:26 AM, Mike Bonner <bonnm...@gmail.com> wrote: > Hmm. On linux you might be able to use a shell command to get some info, > though I don't know enough about theh output to be much help. > > the command xkbcom :0 - dumps a truckload of info, might be useful for > your task. > I'm guessing there is a way to do this on macos too but I don't currently > have access to a mac. > Unsure about how to go about it on windows. > > For example, on my system one of the first lines contains qwerty as part > of the line. The only issue with this, is that custom mapings are > possible, though it looks like the aliases are part of the information. > > I've seen operating systems do the "press the key to the right of the left > shift key.." sequence to determine base layout (which again, wouldn't cover > every base if the user has changed the keyboard map, so you might need to > have them press every key... xkbcom might get around that if you can > figure out enough to interpret the results) > > > > On Sun, Feb 25, 2018 at 8:22 AM, Richmond Mathewson via use-livecode < > use-livecode@lists.runrev.com> wrote: > >> Either I did not explain things very well or you got hold of the wrong >> end of the stick >> (or, most probably a bit of both: probably the latter as a consequence of >> the former). >> >> Imagine, if you will, I need to know what an end-user's standard keyboard >> layout is. >> Let's call our theoretical end-user Farhad, and Iranian who uses an >> Iranian keyboard layout >> (something I don't know), and let's call our me Richmond owing to a >> slight lack of imagination >> on my part; and I use a US English keyboard layout, which I know, but >> isn't useful information >> under the circumstances. >> >> Now if I click on the key that yields a rawKey of 113 I get a "q". >> >> If Farhad clicks on the key that yields a rawKey of 113 he gets a "ق >> >> And I am unable to type close-quotes there. >> >> So I should like to find a way to fake someone pressing down on a key on >> their home-computer >> to see what the keyUp result is. >> >> Now I realise I cannot SEND a command telling the key on the keyboard to >> do >> "a pianola" and depress itself (wouldn't that be fun?). >> >> It would, however, be groovy if one could work out Farhad's keys without >> having him to >> go "bash, bash" all the way along the rows of his keyboard. >> >> Richmond. >> >> >> >> On 25/2/2018 4:13 pm, Mike Bonner via use-livecode wrote: >> >>> A quick example placed in the card script. >>> >>> local sKeysPushed --keys kept in this variable for the example >>> >>> on rawkeydown pkey >>> if sKeysPushed is empty then >>> put pkey into sKeysPushed >>> else >>> put comma & pkey after sKeysPushed >>> end if >>> >>> -- You would want to remove this block of course, but for testing >>> -- it lets you push the shift key to see whats been captured >>> if the shiftkey is down then >>> put sKeysPushed >>> end if >>> >>> pass rawkeydown --pass the key >>> >>> end rawkeydown >>> >>> I know it was just pseudocode, but as far as I know you can't "send" a >>> message to a key so.. >>> If you want to be able to click a button to send a rawkeydown (rather >>> than >>> just typing them) you could use something like: >>> >>> on mouseup >>> send "rawkeydown 110" to this card >>> end mouseup >>> >>> or >>> on mouseup >>> displatch "rawkeydown" with (any item of "119,240,43") --<list of >>> random keys to send >>> end mouseup >>> >>> Now.. If you need to track keypresses while NOT actively using your >>> application, it requires a different method. You'd need to use a >>> different >>> method. You would need to use a send loop and check the keysdown and >>> build >>> up your keys list that way. Using this method would be problematic >>> though, >>> for example.. A user holds a key down long enough for several loops to >>> happen, so the keysdown would show the key multiple times. Which might >>> be >>> appropriate if autorepeat is being used, but then you have no idea how >>> many >>> "repeats" there were because its based on the repeat rate. It would be >>> very difficult to have much accuracy using this method. (easiest might >>> be >>> to check current keysdown against previous keysdown and only log if there >>> is a difference, then use your own noggin to realize that litle is >>> little) >>> >>> >>> On Sun, Feb 25, 2018 at 3:09 AM, Richmond Mathewson via use-livecode < >>> use-livecode@lists.runrev.com> wrote: >>> >>> Erm . . . >>>> >>>> I want to set up a stack that will list an end-user's keyDowns by >>>> sending >>>> their system >>>> a set of rawKeyUps . . . >>>> >>>> PseudoCode: >>>> >>>> in a button: >>>> >>>> on mouseUp >>>> send "rawKeyDown" to key 113 >>>> end mouseUp >>>> >>>> in the cardScript: >>>> >>>> on rawKeyDown XX >>>> get keyUp XX >>>> put XX somewhere useful >>>> end rawKeyDown >>>> >>>> Richmond. >>>> _______________________________________________ >>>> use-livecode mailing list >>>> use-livecode@lists.runrev.com >>>> Please visit this url to subscribe, unsubscribe and manage your >>>> subscription preferences: >>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>>> >>>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode@lists.runrev.com >>> Please visit this url to subscribe, unsubscribe and manage your >>> subscription preferences: >>> http://lists.runrev.com/mailman/listinfo/use-livecode >>> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode@lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your >> subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode >> > > _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode