Skip to contentSkip to conversation

input-linux: provide hotkeys for evdev toggle

PATCH Superseded byxk 2 participants 4 messages Jan 7, 2018

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

byxk

author
#0 lore raw

cover input-linux: provide hotkeys for evdev toggle

Hi QEMU,

This patch allows one to pass either one or both of --evdev-lhotkey {keycode} and --evdev-rhotkey {keycode} to change the default key combo to toggle evdev grab.

I had trouble figuring out where to set defaults (LCTRL + RCTRL), so ended up setting it directly.

This is my first patch ever to anything so any help/feedback is appreciated.

Thanks,
byxk

byxk (1):
input-linux: provide hotkeys for evdev toggle

 include/ui/input.h |  3 +++
 qemu-options.hx    | 13 +++++++++++++
 ui/input-linux.c   |  4 ++--
 vl.c               |  8 ++++++++
 4 files changed, 26 insertions(+), 2 deletions(-)
Signature · 1 line
2.15.1
author
#1 lore raw

PATCH 1/1 input-linux: provide hotkeys for evdev toggle

---
 include/ui/input.h |  3 +++
 qemu-options.hx    | 13 +++++++++++++
 ui/input-linux.c   |  4 ++--
 vl.c               |  8 ++++++++
 4 files changed, 26 insertions(+), 2 deletions(-)
include/ui/input.h +3 -0
index 5cc76d6e41..94b1468159 100644
@@ -80,4 +80,7 @@ extern const guint16 qemu_input_map_qnum_to_qcode[];
 extern const guint qemu_input_map_qcode_to_linux_len;
 extern const guint16 qemu_input_map_qcode_to_linux[];
 
+extern int qemu_evdev_rhotkey;
+extern int qemu_evdev_lhotkey;
+
 #endif /* INPUT_H */
qemu-options.hx +13 -0
index 94647e21e3..56cafd7592 100644
@@ -4264,6 +4264,19 @@ contents of @code{iv.b64} to the second secret
 
 ETEXI
 
+DEF("evdev-lhotkey", HAS_ARG, QEMU_OPTION_evdev_lhotkey, "--evdev-lhotkey    left hotkey for evdev input toggle, default=LEFTCTRL(29)\n", QEMU_ARCH_ALL)
+STEXI
+@item --evdev-lhotkey @var{evdevLHotkey}
+@findex --evdev-lhotkey
+Left keycode to use in toggling evdev
+ETEXI
+
+DEF("evdev-rhotkey", HAS_ARG, QEMU_OPTION_evdev_rhotkey, "--evdev-rhotkey     right hotkey for evdev input toggle, default=RIGHTCTRL(97)\n", QEMU_ARCH_ALL)
+STEXI
+@item --evdev-rhotkey @var{evdevRHotkey}
+@findex --evdev-rhotkey
+Right keycode to use in toggling evdev
+ETEXI
 
 HXCOMM This is the last statement. Insert new options before this line!
 STEXI
ui/input-linux.c +2 -2
index 9720333b2c..8af1450dce 100644
@@ -134,8 +134,8 @@ static void input_linux_handle_keyboard(InputLinux *il,
         }
 
         /* hotkey -> record switch request ... */
-        if (il->keydown[KEY_LEFTCTRL] &&
-            il->keydown[KEY_RIGHTCTRL]) {
+        if (il->keydown[qemu_evdev_lhotkey] &&
+            il->keydown[qemu_evdev_rhotkey]) {
             il->grab_request = true;
         }
 
vl.c +8 -0
index d3a5c5d021..7bdf6030cf 100644
@@ -184,6 +184,8 @@ bool boot_strict;
 uint8_t *boot_splash_filedata;
 size_t boot_splash_filedata_size;
 uint8_t qemu_extra_params_fw[2];
+int qemu_evdev_lhotkey = 29;  /* LEFTCONTROL */
+int qemu_evdev_rhotkey = 97;  /* RIGHTCONTROL */
 
 int icount_align_option;
 
@@ -3378,6 +3380,12 @@ int main(int argc, char **argv, char **envp)
                 qemu_opts_set(qemu_find_opts("machine"), 0, "initrd", optarg,
                               &error_abort);
                 break;
+            case QEMU_OPTION_evdev_rhotkey:
+                qemu_evdev_rhotkey = strtol(optarg, NULL, 0);
+                break;
+            case QEMU_OPTION_evdev_lhotkey:
+                qemu_evdev_lhotkey = strtol(optarg, NULL, 0);
+                break;
             case QEMU_OPTION_append:
                 qemu_opts_set(qemu_find_opts("machine"), 0, "append", optarg,
                               &error_abort);
Signature · 1 line
2.15.1
#2 lore raw
In reply to byxk
This series seems to have some coding style problems. See output below for more information:

Hi,

This series seems to have some coding style problems. See output below for more information:

Type: series
Message-id: [email protected]
Subject: [Qemu-devel] [PATCH 0/1] input-linux: provide hotkeys for evdev toggle

=== TEST SCRIPT BEGIN ===
#!/bin/bash

BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0

git config --local diff.renamelimit 0
git config --local diff.renames True

commits="$(git log --format=%H --reverse $BASE..)" for c in $commits; do

    echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
    if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
        failed=1
        echo
    fi
    n=$((n+1))

done

exit $failed
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 Switched to a new branch 'test'
8d2dfcbd73 input-linux: provide hotkeys for evdev toggle

=== OUTPUT BEGIN ===
Checking PATCH 1/1: input-linux: provide hotkeys for evdev toggle...
ERROR: consider using qemu_strtol in preference to strtol #77: FILE: vl.c:3384:
+ qemu_evdev_rhotkey = strtol(optarg, NULL, 0);

ERROR: consider using qemu_strtol in preference to strtol #80: FILE: vl.c:3387:
+ qemu_evdev_lhotkey = strtol(optarg, NULL, 0);

ERROR: Missing Signed-off-by: line(s)

total: 3 errors, 0 warnings, 56 lines checked

Your patch has style problems, please review. If any of these errors are false positives report them to the maintainer, see CHECKPATCH in MAINTAINERS.

=== OUTPUT END ===

Test command exited with code: 1

---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to [email protected]

#3 lore raw

Please disregard this patch, I'll have another one ready and actually isolated to input-linux.

Quoted 65 lines · On Sun, Jan 7, 2018 at 3:31 AM, <[email protected]> wrote:

Hi,

This series seems to have some coding style problems. See output below for more information:

Type: series
Message-id: [email protected]
Subject: [Qemu-devel] [PATCH 0/1] input-linux: provide hotkeys for evdev toggle

=== TEST SCRIPT BEGIN ===
#!/bin/bash

BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0

git config --local diff.renamelimit 0
git config --local diff.renames True

commits="$(git log --format=%H --reverse $BASE..)" for c in $commits; do

    echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
    if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback
-; then
        failed=1
        echo
    fi
    n=$((n+1))

done

exit $failed
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 Switched to a new branch 'test'
8d2dfcbd73 input-linux: provide hotkeys for evdev toggle

=== OUTPUT BEGIN ===
Checking PATCH 1/1: input-linux: provide hotkeys for evdev toggle...
ERROR: consider using qemu_strtol in preference to strtol #77: FILE: vl.c:3384:
+ qemu_evdev_rhotkey = strtol(optarg, NULL, 0);

ERROR: consider using qemu_strtol in preference to strtol #80: FILE: vl.c:3387:
+ qemu_evdev_lhotkey = strtol(optarg, NULL, 0);

ERROR: Missing Signed-off-by: line(s)

total: 3 errors, 0 warnings, 56 lines checked

Your patch has style problems, please review. If any of these errors are false positives report them to the maintainer, see CHECKPATCH in MAINTAINERS.

=== OUTPUT END ===

Test command exited with code: 1

---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to [email protected]