diff --git a/app/data/bash-completion/scrcpy b/app/data/bash-completion/scrcpy index 7f94458b..3b0e09cd 100644 --- a/app/data/bash-completion/scrcpy +++ b/app/data/bash-completion/scrcpy @@ -27,6 +27,7 @@ _scrcpy() { --force-adb-forward --forward-all-clicks -h --help + -K --keyboard --kill-adb-on-close --legacy-paste @@ -37,6 +38,7 @@ _scrcpy() { --lock-video-orientation --lock-video-orientation= -m --max-size= + -M --max-fps= --mouse= -n --no-control diff --git a/app/data/zsh-completion/_scrcpy b/app/data/zsh-completion/_scrcpy index 2e68dca0..0df17a81 100644 --- a/app/data/zsh-completion/_scrcpy +++ b/app/data/zsh-completion/_scrcpy @@ -34,6 +34,7 @@ arguments=( '--force-adb-forward[Do not attempt to use \"adb reverse\" to connect to the device]' '--forward-all-clicks[Forward clicks to device]' {-h,--help}'[Print the help]' + '-K[Use UHID keyboard (same as --keyboard=uhid)]' '--keyboard[Set the keyboard input mode]:mode:(disabled sdk aoa uhid)' '--kill-adb-on-close[Kill adb when scrcpy terminates]' '--legacy-paste[Inject computer clipboard text as a sequence of key events on Ctrl+v]' @@ -43,6 +44,7 @@ arguments=( '--list-encoders[List video and audio encoders available on the device]' '--lock-video-orientation=[Lock video orientation]:orientation:(unlocked initial 0 90 180 270)' {-m,--max-size=}'[Limit both the width and height of the video to value]' + '-M[Use UHID mouse (same as --mouse=uhid)]' '--max-fps=[Limit the frame rate of screen capture]' '--mouse[Set the mouse input mode]:mode:(disabled sdk aoa uhid)' {-n,--no-control}'[Disable device control \(mirror the device in read only\)]' diff --git a/app/scrcpy.1 b/app/scrcpy.1 index 20200b77..b4932207 100644 --- a/app/scrcpy.1 +++ b/app/scrcpy.1 @@ -171,6 +171,10 @@ By default, right-click triggers BACK (or POWER on) and middle-click triggers HO .B \-h, \-\-help Print this help. +.TP +.B \-K +Same as \fB\-\-keyboard=uhid\fR. + .TP .BI "\-\-keyboard " mode Select how to send keyboard inputs to the device. @@ -234,6 +238,10 @@ Limit both the width and height of the video to \fIvalue\fR. The other dimension Default is 0 (unlimited). +.TP +.B \-M +Same as \fB\-\-mouse=uhid\fR. + .TP .BI "\-\-max\-fps " value Limit the framerate of screen capture (officially supported since Android 10, but may work on earlier versions). diff --git a/app/src/cli.c b/app/src/cli.c index 24e45de3..b63ee758 100644 --- a/app/src/cli.c +++ b/app/src/cli.c @@ -95,6 +95,8 @@ enum { OPT_ORIENTATION, OPT_KEYBOARD, OPT_MOUSE, + OPT_HID_KEYBOARD_DEPRECATED, + OPT_HID_MOUSE_DEPRECATED, }; struct sc_option { @@ -360,6 +362,10 @@ static const struct sc_option options[] = { .longopt = "help", .text = "Print this help.", }, + { + .shortopt = 'K', + .text = "Same as --keyboard=uhid.", + }, { .longopt_id = OPT_KEYBOARD, .longopt = "keyboard", @@ -391,7 +397,8 @@ static const struct sc_option options[] = { }, { // deprecated - .shortopt = 'K', + //.shortopt = 'K', // old, reassigned + .longopt_id = OPT_HID_KEYBOARD_DEPRECATED, .longopt = "hid-keyboard", }, { @@ -447,9 +454,14 @@ static const struct sc_option options[] = { }, { // deprecated - .shortopt = 'M', + //.shortopt = 'M', // old, reassigned + .longopt_id = OPT_HID_MOUSE_DEPRECATED, .longopt = "hid-mouse", }, + { + .shortopt = 'M', + .text = "Same as --mouse=uhid.", + }, { .longopt_id = OPT_MAX_FPS, .longopt = "max-fps", @@ -2088,20 +2100,17 @@ parse_args_with_getopt(struct scrcpy_cli_args *args, int argc, char *argv[], args->help = true; break; case 'K': -#ifdef HAVE_USB - LOGW("-K/--hid-keyboard is deprecated, use --keyboard=aoa " - "instead."); - opts->keyboard_input_mode = SC_KEYBOARD_INPUT_MODE_AOA; + opts->keyboard_input_mode = SC_KEYBOARD_INPUT_MODE_UHID; break; -#else - LOGE("HID over AOA (-K/--hid-keyboard) is disabled."); - return false; -#endif case OPT_KEYBOARD: if (!parse_keyboard(optarg, &opts->keyboard_input_mode)) { return false; } break; + case OPT_HID_KEYBOARD_DEPRECATED: + LOGE("--hid-keyboard has been removed, use --keyboard=aoa or " + "--keyboard=uhid instead."); + return false; case OPT_MAX_FPS: if (!parse_max_fps(optarg, &opts->max_fps)) { return false; @@ -2113,19 +2122,17 @@ parse_args_with_getopt(struct scrcpy_cli_args *args, int argc, char *argv[], } break; case 'M': -#ifdef HAVE_USB - LOGW("-M/--hid-mouse is deprecated, use --mouse=aoa instead."); - opts->mouse_input_mode = SC_MOUSE_INPUT_MODE_AOA; + opts->mouse_input_mode = SC_MOUSE_INPUT_MODE_UHID; break; -#else - LOGE("HID over AOA (-M/--hid-mouse) is disabled."); - return false; -#endif case OPT_MOUSE: if (!parse_mouse(optarg, &opts->mouse_input_mode)) { return false; } break; + case OPT_HID_MOUSE_DEPRECATED: + LOGE("--hid-mouse has been removed, use --mouse=aoa or " + "--mouse=uhid instead."); + return false; case OPT_LOCK_VIDEO_ORIENTATION: if (!parse_lock_video_orientation(optarg, &opts->lock_video_orientation)) {