I have been using gizmod for a while now, but one or two weeks ago, it suddenly stopped working. If I run gizmod in debug mode, it detect all the input events as before, but it does nothing with them. I tried to add some print instructions in my scripts, but nothing was outputed. I haven't touched the scripts in a while, the only thing that changed on my machine is that I apply regularly the updates. Anyone knows what's happening?
Dom
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Here it is the output. By the way, I can never terminate gizmod via a CTRL-C. I always have to kill the process by hand. Is that normal?
[dom@localhost ~]$ gizmod -g
GizmoDaemon v3.4 -=- (c) 2007, Tim Burrell <tim.burrell@gmail.com>
Debug Mode Enabled
Registering Devices:
Standard - Directory [/dev/input]
Mouse - Macintosh mouse button emulation [/dev/input/event0]
Mouse - Logitech USB Receiver [/dev/input/event1]
Mouse - Logitech USB Receiver [/dev/input/event2]
Standard - Logitech Logitech BT Mini-Receiver [/dev/input/event3]
Standard - Logitech Logitech BT Mini-Receiver [/dev/input/event4]
Standard - Power Button (FF) [/dev/input/event5]
Standard - Power Button (CM) [/dev/input/event6]
Standard - PC Speaker [/dev/input/event7]
LIRC device node [/dev/lircd] does not exist -- disabling LIRC support
It's definitely not normal that you can't ctrl-c gizmod. That's a new one to me! It might be SELinux or some kind of advanced security policy related. Do any other apps have problems being terminated with ctrl-c?
Now, despite that I believe I know what's going on. Not sure what changed between fedorah versions but it looks like the description and vendor / product ID codes being spit out by your devices are no longer unique. Meaning, gizmod can't tell what some of the devices are.
Unfortunately, until I figure out the best way to handle this (as it's becoming more and more common amongst device manufacturers) you'll have to manually specify which device event node is which kind of device.
To figure out which device is which manually cat the device node and create some events on the devices until you know which is which. Ie:
cat /dev/input/event1 (move mouse, type on keyboard) -- if garbage gets spit out you know event1 is the device that made the garbage
Then, set the appropriate settings in GizmoDeviceString.py
For example, if event1 is the mouse you'd do:
MOUSE_GIZMOS = ["/dev/input/event1"]
Although in your case you have that mouse emulation device which can cause problems for creating mouse events. So try something like:
It's not that gizmod doesn't detect the keyboard and mouse input, it's that it doesn't run my scripts when it gets input from the mouse or the keyboard. It used to work fine until 2-3 weeks ago, when it stopped to work all of a sudden. Here is an example of gizmod's execution:
[dom@localhost ~]$ gizmod -g
GizmoDaemon v3.4 -=- (c) 2007, Tim Burrell <tim.burrell@gmail.com>
Debug Mode Enabled
Registering Devices:
Standard - Directory [/dev/input]
Standard - Macintosh mouse button emulation [/dev/input/event0]
Standard - Logitech USB Receiver [/dev/input/event1]
Standard - Logitech USB Receiver [/dev/input/event2]
Standard - Logitech Logitech BT Mini-Receiver [/dev/input/event3]
Standard - Logitech Logitech BT Mini-Receiver [/dev/input/event4]
Standard - Power Button (FF) [/dev/input/event5]
Standard - Power Button (CM) [/dev/input/event6]
Standard - PC Speaker [/dev/input/event7]
LIRC device node [/dev/lircd] does not exist -- disabling LIRC support
Sorry I didn't make myself clear. I know it's not that gizmod isn't detecting keyboard and mouse input. Gizmod works by creating events directly on a device. This way the kernel can't distinguish between a fake event and a real event. The downfall to this approach is that if you want to create a fake keyboard event you need to have a device registered with the kernel that itself creates the type of events you're interested.
Thus, if you want to create mouse or keyboard events you need to have a mouse and keyboard attached to the system. Also, currently most of the gizmod scripts are set up so that if either a keyboard or mouse isn't detected the script won't do anything.
This is why you're seeing the behavior you are. Gizmod isn't detecting a mouse / keyboard pair, so it's unable to translate the events from one device to another.
In the future I'd like to get gizmod to register its own mouse and keyboard modules with the kernel, but until that happens this is the best compromise I could think of.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
First try manually catting each device node to see if you can figure out which device corresponds with which evdev node.
Ie:
cat /dev/input/event0
mouse mouse around / type keyboard keys
If garbage comes out when you press a key, you know that event0 is the keyboard. Repeat until you know which one is the keyboard and which one is the mouse. Fix GizmoDeviceStrings.py to match.
Then if that still doesn't work, can you post both the output of gizmod -g starting up and the relevant portions of GizmoDeviceStrings.py?
Thanks,
Tim.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I had already done that before posting the above. In my previous post are the relevant portions fo GizmoDeviceStrings.py, and the "gizmod -g" output just above was done after the modifications to GizmoDeviceStrings.py.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
(or whatever the device nodes are in your case). When you start up gizmod look in the "registering devices" section -- It should say "Mouse" or "Keyboard" instead of "Standard".
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
I have been using gizmod for a while now, but one or two weeks ago, it suddenly stopped working. If I run gizmod in debug mode, it detect all the input events as before, but it does nothing with them. I tried to add some print instructions in my scripts, but nothing was outputed. I haven't touched the scripts in a while, the only thing that changed on my machine is that I apply regularly the updates. Anyone knows what's happening?
Dom
Of course I meant "Gizmod stopped working *on* fedora 8.
Can you post the output of Gizmod starting up via 'gizmod -g'?
Thanks,
Tim.
Here it is the output. By the way, I can never terminate gizmod via a CTRL-C. I always have to kill the process by hand. Is that normal?
[dom@localhost ~]$ gizmod -g
GizmoDaemon v3.4 -=- (c) 2007, Tim Burrell <tim.burrell@gmail.com>
Debug Mode Enabled
Registering Devices:
Standard - Directory [/dev/input]
Mouse - Macintosh mouse button emulation [/dev/input/event0]
Mouse - Logitech USB Receiver [/dev/input/event1]
Mouse - Logitech USB Receiver [/dev/input/event2]
Standard - Logitech Logitech BT Mini-Receiver [/dev/input/event3]
Standard - Logitech Logitech BT Mini-Receiver [/dev/input/event4]
Standard - Power Button (FF) [/dev/input/event5]
Standard - Power Button (CM) [/dev/input/event6]
Standard - PC Speaker [/dev/input/event7]
LIRC device node [/dev/lircd] does not exist -- disabling LIRC support
Loading User Scripts:
CatchAllDebug - CatchAll Event Mapping for Testing
KeyboardAcrobatReader - AcrobatReader Fancy Keyboard Event Mapping
KeyboardFirefox - Firefox Fancy Keyboard Event Mapping
KeyboardGedit - Gedit Fancy Keyboard Event Mapping
KeyboardMplayer - Mplayer Fancy Keyboard Event Mapping
KeyboardGnomeTerminal - Gnome Terminal Fancy Keyboard Event Mapping
KeyboardXChat - XChat Fancy Keyboard Event Mapping
KeyboardDefault - Default Fancy Keyboard Event Mapping
Attached to Sound Card [hw:0] -- Audigy 4 [SB0610]
onEvent: SoundCard -- SoundCardAttach [Audigy 4 [SB0610]]
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Master>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Master> Vol: 6.0
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Master>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Master>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Master>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Master>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Bass>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Bass> Vol: 52.5
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Tone>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Tone>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Treble>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Treble> Vol: 50.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <PCM Center>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <PCM Center> Vol: 100.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <PCM Front>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <PCM Front> Vol: 100.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <PCM LFE>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <PCM LFE> Vol: 100.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <PCM Out Path & Mute>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <PCM Out Path & Mute>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <PCM Side>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <PCM Side> Vol: 100.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <PCM Surround>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <PCM Surround> Vol: 100.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <PCM>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Front>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Front> Vol: 64.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Surround>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Center>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <LFE>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Synth>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Synth> Vol: 64.0
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Synth>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Wave>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Wave> Vol: 25.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Line>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Line>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Line>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Line>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <CD>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <CD>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <CD>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <CD>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Mic Boost (+20dB)>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Mic Boost (+20dB)> Unmute
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Mic Select>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Mic Select>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Mic>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Mic>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Mic>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Mic>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Phone>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Phone>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Phone>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Video>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Video>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Video>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Video>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <PC Speaker>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <PC Speaker>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <PC Speaker>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Aux2>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Aux2> Vol: 0.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Aux>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Aux>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Aux>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Aux>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Mono Output Select>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Mono Output Select>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <IEC958 Optical>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <IEC958 Optical> Vol: 0.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <IEC958 Optical Raw>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <IEC958 Optical Raw>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <AMic>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Analog Mix>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Analog Mix>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Analog Mix> Vol: 0.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Audigy Analog/Digital Output Jack>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Audigy Analog/Digital Output Jack> Unmute
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Audigy CD>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Audigy CD> Vol: 0.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <External Amplifier>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <External Amplifier> Unmute
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Side>
onEvent: Standard -- /dev/input/event3 | [EV_KEY] <KEY_ENTER> c: 0x1c v: 0x0
onEvent: WindowFocus [FocusIn] -- <WindowTitle:dom-temp@localhost:~> <FormalName:gnome-terminal> <Class:Gnome-terminal>
onEvent: Standard -- /dev/input/event3 | [EV_KEY] <KEY_LEFTCTRL> c: 0x1d v: 0x1
onEvent: Standard -- /dev/input/event3 | [EV_KEY] <KEY_C> c: 0x2e v: 0x1
Keyboard Interrupt Received...
GizmoDaemon Shutting Down... |Killed
[dom@localhost ~]$
It's definitely not normal that you can't ctrl-c gizmod. That's a new one to me! It might be SELinux or some kind of advanced security policy related. Do any other apps have problems being terminated with ctrl-c?
Now, despite that I believe I know what's going on. Not sure what changed between fedorah versions but it looks like the description and vendor / product ID codes being spit out by your devices are no longer unique. Meaning, gizmod can't tell what some of the devices are.
Unfortunately, until I figure out the best way to handle this (as it's becoming more and more common amongst device manufacturers) you'll have to manually specify which device event node is which kind of device.
To figure out which device is which manually cat the device node and create some events on the devices until you know which is which. Ie:
cat /dev/input/event1 (move mouse, type on keyboard) -- if garbage gets spit out you know event1 is the device that made the garbage
Then, set the appropriate settings in GizmoDeviceString.py
For example, if event1 is the mouse you'd do:
MOUSE_GIZMOS = ["/dev/input/event1"]
Although in your case you have that mouse emulation device which can cause problems for creating mouse events. So try something like:
MOUSE_GIZMOS = ["/dev/input/event1", "!Macintosh mouse button emulation"]
Which says: register event1 as a mouse, and make sure the macintosh emulation device does NOT get registered as a mouse.
Then make sure you do the same for KEYBOARD_GIZMOS:
KEYBOARD_GIZMOS = ["/dev/input/event2"]
(for example).
Hope this helps, and let me know you make out.
Thanks,
Tim.
Thanks Tim for you attention.
It's not that gizmod doesn't detect the keyboard and mouse input, it's that it doesn't run my scripts when it gets input from the mouse or the keyboard. It used to work fine until 2-3 weeks ago, when it stopped to work all of a sudden. Here is an example of gizmod's execution:
[dom@localhost ~]$ gizmod -g
GizmoDaemon v3.4 -=- (c) 2007, Tim Burrell <tim.burrell@gmail.com>
Debug Mode Enabled
Registering Devices:
Standard - Directory [/dev/input]
Standard - Macintosh mouse button emulation [/dev/input/event0]
Standard - Logitech USB Receiver [/dev/input/event1]
Standard - Logitech USB Receiver [/dev/input/event2]
Standard - Logitech Logitech BT Mini-Receiver [/dev/input/event3]
Standard - Logitech Logitech BT Mini-Receiver [/dev/input/event4]
Standard - Power Button (FF) [/dev/input/event5]
Standard - Power Button (CM) [/dev/input/event6]
Standard - PC Speaker [/dev/input/event7]
LIRC device node [/dev/lircd] does not exist -- disabling LIRC support
Loading User Scripts:
CatchAllDebug - CatchAll Event Mapping for Testing
KeyboardAcrobatReader - AcrobatReader Fancy Keyboard Event Mapping
KeyboardFirefox - Firefox Fancy Keyboard Event Mapping
KeyboardGedit - Gedit Fancy Keyboard Event Mapping
KeyboardMplayer - Mplayer Fancy Keyboard Event Mapping
KeyboardGnomeTerminal - Gnome Terminal Fancy Keyboard Event Mapping
KeyboardXChat - XChat Fancy Keyboard Event Mapping
KeyboardDefault - Default Fancy Keyboard Event Mapping
Attached to Sound Card [hw:0] -- Audigy 4 [SB0610]
onEvent: SoundCard -- SoundCardAttach [Audigy 4 [SB0610]]
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Master>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Master> Vol: 23.0
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Master>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Master>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Master>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Master>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Bass>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Bass> Vol: 52.5
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Tone>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Tone>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Treble>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Treble> Vol: 50.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <PCM Center>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <PCM Center> Vol: 100.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <PCM Front>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <PCM Front> Vol: 100.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <PCM LFE>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <PCM LFE> Vol: 100.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <PCM Out Path & Mute>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <PCM Out Path & Mute>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <PCM Side>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <PCM Side> Vol: 100.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <PCM Surround>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <PCM Surround> Vol: 100.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <PCM>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Front>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Front> Vol: 64.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Surround>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Center>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <LFE>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Synth>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Synth> Vol: 64.0
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Synth>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Wave>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Wave> Vol: 100.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Line>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Line>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Line>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Line>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <CD>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <CD>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <CD>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <CD>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Mic Boost (+20dB)>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Mic Boost (+20dB)> Unmute
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Mic Select>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Mic Select>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Mic>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Mic>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Mic>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Mic>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Phone>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Phone>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Phone>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Video>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Video>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Video>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Video>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <PC Speaker>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <PC Speaker>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <PC Speaker>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Aux2>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Aux2> Vol: 0.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Aux>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Aux>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Aux>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Aux>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Mono Output Select>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Mono Output Select>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <IEC958 Optical>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <IEC958 Optical> Vol: 0.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <IEC958 Optical Raw>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <IEC958 Optical Raw>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <AMic>
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Analog Mix>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Analog Mix>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Analog Mix> Vol: 0.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Audigy Analog/Digital Output Jack>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Audigy Analog/Digital Output Jack> Unmute
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Audigy CD>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <Audigy CD> Vol: 0.0
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <External Amplifier>
onEvent: SoundCard -- MixerElementChange [Audigy 4 [SB0610]] <External Amplifier> Unmute
onEvent: SoundCard -- MixerElementAttach [Audigy 4 [SB0610]] <Side>
onEvent: WindowFocus [FocusIn] -- <WindowTitle:dom-temp@localhost:~> <FormalName:gnome-terminal> <Class:Gnome-terminal>
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x5
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x4
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x6
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x5
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x4
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x4
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x4
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x4
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x4
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x4
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x4
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x5
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: 0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: 0x5
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: 0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: 0x4
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x6 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x6 Val: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x1
onEvent: Standard -- /dev/input/event2 | [EV_KEY] <KEY_SEARCH> c: 0xd9 v: 0x1
onEvent: Standard -- /dev/input/event2 | [EV_KEY] <KEY_SEARCH> c: 0xd9 v: 0x0
onEvent: Standard -- /dev/input/event2 | [EV_KEY] <KEY_SEARCH> c: 0xd9 v: 0x1
onEvent: Standard -- /dev/input/event2 | [EV_KEY] <KEY_SEARCH> c: 0xd9 v: 0x0
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_KEY] <BTN_EXTRA> c: 0x114 v: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_KEY] <BTN_EXTRA> c: 0x114 v: 0x0
onEvent: Standard -- /dev/input/event1 | [EV_KEY] <BTN_SIDE> c: 0x113 v: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_KEY] <BTN_SIDE> c: 0x113 v: 0x0
onEvent: Standard -- /dev/input/event1 | [EV_KEY] <BTN_RIGHT> c: 0x111 v: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_KEY] <BTN_RIGHT> c: 0x111 v: 0x0
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x4
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_KEY] <BTN_LEFT> c: 0x110 v: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_KEY] <BTN_LEFT> c: 0x110 v: 0x0
onEvent: WindowFocus [FocusOut] -- <WindowTitle:Terminal> <FormalName:gnome-terminal> <Class:Gnome-terminal>
onEvent: Standard -- /dev/input/event1 | [EV_KEY] <BTN_LEFT> c: 0x110 v: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_KEY] <BTN_LEFT> c: 0x110 v: 0x0
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x8 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_KEY] <BTN_RIGHT> c: 0x111 v: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_KEY] <BTN_RIGHT> c: 0x111 v: 0x0
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x4
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x5
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0xb
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x4
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x6
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x6
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x6
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x6
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x5
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x5
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x2
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x4
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x3
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x4
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x1 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_REL] c: 0x0 Val: -0x1
onEvent: Standard -- /dev/input/event1 | [EV_KEY] <BTN_LEFT> c: 0x110 v: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_KEY] <BTN_LEFT> c: 0x110 v: 0x0
onEvent: Standard -- /dev/input/event1 | [EV_KEY] <280> c: 0x118 v: 0x1
onEvent: Standard -- /dev/input/event1 | [EV_KEY] <280> c: 0x118 v: 0x0
onEvent: Standard -- /dev/input/event3 | [EV_KEY] <KEY_LEFTCTRL> c: 0x1d v: 0x1
onEvent: Standard -- /dev/input/event3 | [EV_KEY] <KEY_C> c: 0x2e v: 0x1
Keyboard Interrupt Received...
GizmoDaemon Shutting Down... |Killed
[dom@localhost ~]$
Sorry I didn't make myself clear. I know it's not that gizmod isn't detecting keyboard and mouse input. Gizmod works by creating events directly on a device. This way the kernel can't distinguish between a fake event and a real event. The downfall to this approach is that if you want to create a fake keyboard event you need to have a device registered with the kernel that itself creates the type of events you're interested.
Thus, if you want to create mouse or keyboard events you need to have a mouse and keyboard attached to the system. Also, currently most of the gizmod scripts are set up so that if either a keyboard or mouse isn't detected the script won't do anything.
This is why you're seeing the behavior you are. Gizmod isn't detecting a mouse / keyboard pair, so it's unable to translate the events from one device to another.
In the future I'd like to get gizmod to register its own mouse and keyboard modules with the kernel, but until that happens this is the best compromise I could think of.
Oh I see. Well, I performed the modifications to
Sorry, I clicked on the post button by mistake.
I was going to write that I performed the modifications you suggested, namely changing the relevant lines in GizmoDeviceStrings.py to
MOUSE_GIZMOS = ["/dev/input/event1", "!Macintosh mouse button emulation"]
and
KEYBOARD_GIZMOS = ["/dev/input/event3"]
but sadly that did not change things.
First try manually catting each device node to see if you can figure out which device corresponds with which evdev node.
Ie:
cat /dev/input/event0
mouse mouse around / type keyboard keys
If garbage comes out when you press a key, you know that event0 is the keyboard. Repeat until you know which one is the keyboard and which one is the mouse. Fix GizmoDeviceStrings.py to match.
Then if that still doesn't work, can you post both the output of gizmod -g starting up and the relevant portions of GizmoDeviceStrings.py?
Thanks,
Tim.
Hi Tim,
I had already done that before posting the above. In my previous post are the relevant portions fo GizmoDeviceStrings.py, and the "gizmod -g" output just above was done after the modifications to GizmoDeviceStrings.py.
Try changing setting:
MOUSE_GIZMOS = ["event1"]
KEYBOARD_GIZMOS = ["event2"]
(or whatever the device nodes are in your case). When you start up gizmod look in the "registering devices" section -- It should say "Mouse" or "Keyboard" instead of "Standard".
I tried, but that did not work. However, I tried the following:
# List of devices to enumerate as keyboards
KEYBOARD_GIZMOS = ["logitech bt mini-receiver"]
# List of devices to enumerate as mice
MOUSE_GIZMOS = ["logitech usb receiver"]
and now it works again! What a relief!
But it says "Standard" on all event, not "Mouse" or "Keyboard".