What is keyboard International1 in "Universal Serial Bus HID Usage Tables" - keyboard

I have an exercise where I'm given a .pcap file that was captured from a USB keyboard, and I have to give back the original string that was typed on that keyboard.
Every thing works great, and I almost got all the sentence. but when mapping, I meet this value in 0200870000000000. When I looked in the "Universal Serial Bus HID Usage Tables" I saw that that key represent keyboard international1 but I looked for an hour in the internet and I have no idea what letter that key represents and how to write it down.
Can any one tell what does that key represents in the keyboard.

You should check footnotes 15 and 28.
28: Keyboard International1 should be identified via footnote as the appropriate usage for the Brazilian forward-slash (/) and question-mark (?) key. This usage should also be renamed to either "Keyboard Non-US / and ?" or to "Keyboard International1" now that it's become clear that it does not only apply to Kanji keyboards anymore.
Additionally, International1 has the "Typical AT-101 Position" of 56, which we can find a key map to show where is this key.
On Brazilian keyboard, Internation1 is just the / key. The original key is used for the ; key.
On the PC-98 or DOS/V-109 Japanese keyboard, the key is used for entering the kana ろ (ro).

According to this it means:
KEY_RO 0x87 // Keyboard International 1

Related

Catching special characters with ncurses

I am currently working on a project for mapping every possible keyboard and mouse interrupt.
The mapping is done in linux environment and with ncurses library.
The question is how to catch the following keyboard keys :
Home
End
page up / down
when pressing those keys the terminal itself is catching them and the program itself cant see them (spent a few hours of configuration and found no solution yet)
pause/break (above page up in standard keyboard)
PrtScreen
Num Locked keys (0 to 9 and < . >).
Windows button
the following just not getting any response at all, neither from the terminal or the program.
short: you cannot catch all keys with ncurses
long: the usual problems lie in a failure to initialize things properly:
you probably forgot to call keypad(stdscr,TRUE) (or whatever window you might be using with wgetch). That will allow an application to read any of the keys defined in the terminal description as an integer.
If it is not in the terminal description, (n)curses will return the sequence of bytes which make up the key as sent from the keyboard.
That's two likely problems. There are other keys (or combinations of keys) which the terminal will not send (in a way which makes distinct keyboard sequences). For instance, using the Control key with other keys may change the sequence sent by the keyboard, or it may not. To see this, use experiment with the control key with comma, period or the other punctuation keys in that area of the keyboard.

How to insert an "—" direclty from my Keyboard without numberpad?

I have searched all corners of the internet, yet to find an answer to my simple question:
How to place, directly from keyboard input, the Em-Dash "—" character onto a code editor such as Notepad++ or Dreamweaver using modern notebooks (such as a dell xps 13" 2015, win10 64bit) without:
any extended keyboard numbpad, obviously;
any third party automation scripting softwares;
any charactermap insertion tools such as windows charactermap
How? Thanks!
I imagine you're asking about how to do it in Windows here.
I assume you know how you'd do it if you had a numeric keypad (Alt + 0151 if as it seems you are on the 1252 code page).
See also Insert Unicode characters via the keyboard? , in order to use the unicode value (Alt + +2014) .
This is an at least related question: How to emulate numpad on a PC laptop?
Possible solutions:
Most notebooks do have an hidden "numpad", accessible through the Fn key (see for example https://www.dummies.com/computers/pcs/the-hidden-numeric-keypad-on-your-laptop/ ).
I couldn't find out for sure if the Dell XPS 13 specifically does, but it is very likely.
This Me and My Dell manual (Using numeric keypad on a laptop) seems to explain its usage for all Dell laptops.
Use copy and paste (copy the character from some place and paste in the editor). A clipboard manager might help you if you choose to go this way.
You might also use some third-party software to have that character emitted when you press a key or shortcut, but I guess that is included in your "third party automation scripting softwares" prescription.
Use the unicode combination! I now found out that with that one you can use indifferently both numbers from the keypad and normal ones !
Unfortunately it still requires the numpad's "plus" (add) key, so you need to be able to type at least that.
See Insert Unicode characters via the keyboard? or https://en.wikipedia.org/wiki/Unicode_input to learn how to enable the combination, if it is not already enabled.
If there indeed exist laptops with no numeric keypad support unfortunately the Windows developers didn't fully anticipate for that; it probably wouldn't take much and wouldn't have negative repercussions for Windows to support the insertion via the normal numeric keys (or the normal + for the Unicode combination), but for now it's not supported (as far as I know).
It would be a bad mistake on the part of the laptops' developers to not include any way to type the numpad keys, though, as they are required by many programs.

How to emulate integrated numeric keypad cursor keys in linux

On many older laptops and some compact keyboards there is an integrated numeric keypad in the main keyboard area. This alternate keypad is activated with a special 'Fn' key next to the left Ctrl key.
As a programmer I learned to use the cursor movement keys (arrows, PgUp, PgDn etc.) and found it greatly improved my programming speed. And the benefits were not bound to just a single application as is the case with specialised shortcut keys.
On conventional PC keyboards, the 'Windows Key' can be used to emulate the 'Fn' key and a corresponding integrated numeric keypad. When I used to use MS Windows I found Autohotkey was able to map the keys using a simple script.
Recently I learned about xkb and how it can be used to map keystrokes at a very low level.
What is the xkb keyboard mapping profile that will emulate an integrated numeric keypad using the windows key as the fn key?
Hint(?): I suspect the file will look a lot like the '/usr/share/X11/xkb/symbols/keypad' file on a Debian-derivative linux distro. This 'keypad' file is included at the top of the '/usr/share/X11/xkb/symbols/pc' file.
The corresponding autohotkey script for reference (# == WinKey):
#8::Up
#k::Down
#u::Left
#o::Right
#7::Home
#j::End
#9::PgUp
#l::PgDn
#m::Insert
#.::Delete
;(Scroll with the left-over keys)
#i::WheelUp
#,::WheelDown
Note that all these keys need to work with any combination of Ctrl, Alt, Shift as well as the Windows Key.
Steps to install numeric keypad-like cursor keys on the main keyboard in Linux / XKB...
xkbcomp $DISPLAY original.xkb (just in case ;)
xkbcomp $DISPLAY custom.xkb
Edit custom.xkb
Add the following at the end of section: xkb_types "..." {
type "WinKeyAsFnKey" {
modifiers = Shift+Super;
map[Shift] = level2;
map[Super] = level3;
map[Super+Shift] = level3;
level_name[Level1] = "Base";
level_name[Level2] = "Caps";
level_name[Level3] = "Fn";
};
Add the following at the end of section xkb_symbols "..." {
key <AE07> {type="WinKeyAsFnKey",symbols[Group1]=[7,ampersand,NoSymbol],actions=[NoAction(),NoAction(),RedirectKey(key=<HOME>,clearmods=Super)]};
key <AE08> {type="WinKeyAsFnKey",symbols[Group1]=[8,asterisk,NoSymbol],actions=[NoAction(),NoAction(),RedirectKey(key=<UP>,clearmods=Super)]};
key <AE09> {type="WinKeyAsFnKey",symbols[Group1]=[9,parenleft,NoSymbol],actions=[NoAction(),NoAction(),RedirectKey(key=<PGUP>,clearmods=Super)]};
key <AD07> {type="WinKeyAsFnKey",symbols[Group1]=[u,U,NoSymbol],actions=[NoAction(),NoAction(),RedirectKey(key=<LEFT>,clearmods=Super)]};
key <AD09> {type="WinKeyAsFnKey",symbols[Group1]=[o,O,NoSymbol],actions=[NoAction(),NoAction(),RedirectKey(key=<RGHT>,clearmods=Super)]};
key <AC07> {type="WinKeyAsFnKey",symbols[Group1]=[j,J,NoSymbol],actions=[NoAction(),NoAction(),RedirectKey(key=<END>,clearmods=Super)]};
key <AC08> {type="WinKeyAsFnKey",symbols[Group1]=[k,K,NoSymbol],actions=[NoAction(),NoAction(),RedirectKey(key=<DOWN>,clearmods=Super)]};
key <AC09> {type="WinKeyAsFnKey",symbols[Group1]=[l,L,NoSymbol],actions=[NoAction(),NoAction(),RedirectKey(key=<PGDN>,clearmods=Super)]};
key <AB07> {type="WinKeyAsFnKey",symbols[Group1]=[m,M,NoSymbol],actions=[NoAction(),NoAction(),RedirectKey(key=<INS>,clearmods=Super)]};
key <AB09> {type="WinKeyAsFnKey",symbols[Group1]=[period,greater,NoSymbol],actions=[NoAction(),NoAction(),RedirectKey(key=<DELE>,clearmods=Super)]};
Save custom.xkb
xkbcomp custom.xkb $DISPLAY
I'm still working on the mouse scroll with 'i' and ','.
EDIT:
The above solution does not play nice with Google Chrome and Chrome-based apps (like Slack).
Alternative approach is to use a programmable keyboard. I use an after-market PCB for a CoolerMaster Masterkeys S keyboard. The Easy AVR layout is available online (although currently the left win-key now doesn't work by itself...I use the right one).

Getting the pressed key regardless of the keyboard locale?

Let's say I pressed "=" on my English keyboard. If I switch my keyboard language to Turkish, pressing the same key gives me a "-". So I am easly able to say that my operation system interprets the key presses.
My question is, is it possible to get the a key's real value so that no matter which language is used, I can know which key is pressed? Later, I need to use this value(s) with RegisterHotKey.
You use virtual key codes, vs keyboard scan codes which are language dependant.
You didn't specify a programming language, but these should be independant of language and OS. Virtual-Key Codes link

Linux single key presses triggering multiple-key combinations

I understand that new keyboards can be ordered online, but now that this problem has proven to be hard I am completely fascinated by it.
Many old laptop keyboards as they wear develop consistent shorts which cause multiple keys to react when a single key is pressed. For example, on my little sister's computer if you press "r" the system outputs "vr", "i" outputs ",i" and so-on.
Assuming the user is not a vim/emacs power user, the keyboard still seems salvageable. It seems that if the keyboard driver was changed so that pressing the "r" key resulted in the computer accepting "backspace r" the "v" would disappear and not be such a hassle anymore.
Xmodmap XKB and other systems seem to assume that each single key depression will result in a single command. Does anybody understand the missing link where more than one character can come from a single keypress? There seem to be many places in the stack where this can be pulled off, but none of them are particularly clearly documented. Another fun fact is that you can't force this in the ubuntu keyboard shortcuts editor, ubuntu will stop you from entering the changes there under the premise that "this will make it impossible to type."
Hacking around in xev shows that the computer believes that when you hit and release 'r' that it gets a keypress event for 'v' then a keypress event for 'r' then a keyrelease event for 'v' then one for 'r'. If you could change the configuration to ignore a first keypress if there is no corresponding key release before the next key is pressed, that would work too.

Resources