Which KEY_ macro in Linux input.h matches the menu key? - linux

I want to use uinput to emulate pressing the menu key just next to the right Alt key. I tried KEY_MENU and KEY_CONTEXT_MENU, but neither of them worked. The key in Win32 API is VK_APPS.

KEY_COMPOSE is the correct Kernel keycode.
Some elaboration from Chromium’s keyboard event notes:
'Menu' and 'Props' naming differs between evdev and USB / UI Events. USB 0x010085 [System Main Menu] and USB 0x0C0040 [Menu Mode] both map to evdev 0x8B KEY_MENU (which has no corresponding UI Events |code|). USB 0x070076 [Keyboard Menu] does not map to KEY_MENU; it maps to evdev 0x82 KEY_PROPS, which is not the same as USB and UI Events "Props". USB 0x0700A3 [Props], which does correspond to UI Events "Props", is not mapped by the kernel. (And all of these are distinct from UI Events' "ContextMenu", which corresponds to USB 0x070065 [Keyboard Application] via evdev 0x7F KEY_COMPOSE, following Windows convention.)

Related

How to simulate press a key in linux kernel module?

How to simulate press a key in linux kernel module?
I saw keybdev.c, but in my case I cant compile it `
error: implicit declaration of function ‘handle_scancode’
Maybe it's obsolete.
In the kernel, keyboards can call input_report_key which generates a keyboard event. The USB keyboard driver in /drivers/hid/usbhid/usbkbd.c is a good example of code to do both keyboard input and LED output.

How to hide CoreAudio's HAL plugin devices

In the kernel extensions, there was setDeviceCanBeDefault() that I could hide and show audio devices. How I can achieve something similar in CoreAudio's HAL plugin? I want to hide and show my plugin, from sound devices, at runtime.
Implement the kAudioDevicePropertyIsHidden property and return (UInt32)1 from it in your device.
Don't forget to call PropertiesChanged() on the host when you modify this non IO-related property. Also keep in mind that hidden devices cannot become the default device.

Why is the Windows/Meta/Command key called GUI?

Some keyboard related software like Karabiner for macOS and the QMK firmware uses the names left_gui, right_gui, KC_RGUI, KC_LGUI for the Command key. And I found that also corresponds to the Windows key if using Windows OS.
Where does the name GUI come from historically?
The name GUI comes from the USB HID (Human Interface Device) specification.
The scancodes/keycodes for the keys labeled Windows/Meta/Command are named GUI in the USB HID specification. For example the section 8.3 Report Format for Array Items of the USB Device Class Definition for Human Interface Devices (HID) 1.1 spec says :
For example, key such as CTRL, SHIFT, ALT, and GUI keys make up the 8 bit modifier bytes in a standard keyboard report.

PIC32MZ USB Host mode device enumeration issue

I try to use USB keyboard with PIC32MZ1024ECG64 in USB host mode, but the PIC can recognize the keyboard only if the keyboard already connected before I release the PIC from reset.
If I disconnect the keyboard and I attach it back then the PIC cannot recognize it, but if I just disconnect the D- and D+ lines only and I connect those lines back then the PIC can recognize the keyboard again.
When I disconnect the keyboard (not only D- and D+) and take look the USBOTG register, the PIC switched itself to the USB-B mode and stay in this mode.
I using MPLAB Harmony with 1.06 library.
The VBUS3V3 pin connected to 3,3V supply, the VBUS pin connected to 5V supply and the USBID pin connected to the ground.
Anybody has any idea why the PIC switching itself to the USB-B mode when I disconnect the USB connector of the keyboard?
Any suggestion will be appreciated.
Br,
Viktor Venczel

How HID devices work when programming?

I have a barcode scanner works as HID device. Everytime a barcode scans it goes directly to windows keyboard, for example if I open notepad I can see the barcode typed there.
As far as I know programmatically is it possible to to read HID data from your HID devices.
But what happens if the user is already on a form with a text edit control? The scanned code will go inside the text box.
Can you block incoming text and make a background-only processing?
Can you explain the theory please?
See if your barcode scanner can emulate a serial port and just read the data directly from the the serial port into your app.
That is cleaner and less expensive then a global keyboard hook. When I was looking into this awhile ago I found that most USB barcode scanners can emulate a serial port, it's a cinch to read serial port data in most programming languages. I happened to be doing mine in Java, I posted an example in answer to this question actually.
You can set up your scanner to use USB-HID(POS) setting. Your datasheet of barcode settings for the scanner device should have it. I use this project to test my scanners. http://www.codeproject.com/Articles/18099/A-USB-HID-Component-for-C
Sure, just capture keypresses before they are handled by the control and suppress normal handling of the events. In VB.NET you might override the OnKeyPress method in your form and set KeyPreview to true, for example.

Resources