diff --git a/app/data/bash-completion/scrcpy b/app/data/bash-completion/scrcpy index 8d1f1e13..de298056 100644 --- a/app/data/bash-completion/scrcpy +++ b/app/data/bash-completion/scrcpy @@ -16,9 +16,9 @@ _scrcpy() { --display= --display-buffer= -e --select-tcpip + -f --fullscreen --force-adb-forward --forward-all-clicks - -f --fullscreen -K --hid-keyboard -h --help --legacy-paste @@ -26,16 +26,16 @@ _scrcpy() { --list-encoders --lock-video-orientation --lock-video-orientation= - --max-fps= - -M --hid-mouse -m --max-size= + -M --hid-mouse + --max-fps= + -n --no-control + -N --no-playback --no-audio --no-audio-playback --no-cleanup --no-clipboard-autosync --no-downsize-on-error - -n --no-control - -N --no-playback --no-key-repeat --no-mipmaps --no-power-on @@ -47,15 +47,15 @@ _scrcpy() { --prefer-text --print-fps --push-target= - --raw-key-events -r --record= + --raw-key-events --record-format= --render-driver= --require-audio --rotation= -s --serial= - --shortcut-mod= -S --turn-screen-off + --shortcut-mod= -t --show-touches --tcpip --tcpip= @@ -63,8 +63,8 @@ _scrcpy() { --tunnel-port= --v4l2-buffer= --v4l2-sink= - -V --verbosity= -v --version + -V --verbosity= --video-codec= --video-codec-options= --video-encoder= diff --git a/app/data/zsh-completion/_scrcpy b/app/data/zsh-completion/_scrcpy index 6e742fd7..17e30dc5 100644 --- a/app/data/zsh-completion/_scrcpy +++ b/app/data/zsh-completion/_scrcpy @@ -23,25 +23,25 @@ arguments=( '--display=[Specify the display id to mirror]' '--display-buffer=[Add a buffering delay \(in milliseconds\) before displaying]' {-e,--select-tcpip}'[Use TCP/IP device]' + {-f,--fullscreen}'[Start in fullscreen]' '--force-adb-forward[Do not attempt to use \"adb reverse\" to connect to the device]' '--forward-all-clicks[Forward clicks to device]' - {-f,--fullscreen}'[Start in fullscreen]' {-K,--hid-keyboard}'[Simulate a physical keyboard by using HID over AOAv2]' {-h,--help}'[Print the help]' '--legacy-paste[Inject computer clipboard text as a sequence of key events on Ctrl+v]' '--list-displays[List displays available on the device]' '--list-encoders[List video and audio encoders available on the device]' '--lock-video-orientation=[Lock video orientation]:orientation:(unlocked initial 0 1 2 3)' - '--max-fps=[Limit the frame rate of screen capture]' - {-M,--hid-mouse}'[Simulate a physical mouse by using HID over AOAv2]' {-m,--max-size=}'[Limit both the width and height of the video to value]' + {-M,--hid-mouse}'[Simulate a physical mouse by using HID over AOAv2]' + '--max-fps=[Limit the frame rate of screen capture]' + {-n,--no-control}'[Disable device control \(mirror the device in read only\)]' + {-N,--no-playback}'[Disable video and audio playback]' '--no-audio[Disable audio forwarding]' '--no-audio-playback[Disable audio playback]' '--no-cleanup[Disable device cleanup actions on exit]' '--no-clipboard-autosync[Disable automatic clipboard synchronization]' '--no-downsize-on-error[Disable lowering definition on MediaCodec error]' - {-n,--no-control}'[Disable device control \(mirror the device in read only\)]' - {-N,--no-playback}'[Disable video and audio playback]' '--no-key-repeat[Do not forward repeated key events when a key is held down]' '--no-mipmaps[Disable the generation of mipmaps]' '--no-power-on[Do not power on the device on start]' @@ -53,23 +53,23 @@ arguments=( '--prefer-text[Inject alpha characters and space as text events instead of key events]' '--print-fps[Start FPS counter, to print frame logs to the console]' '--push-target=[Set the target directory for pushing files to the device by drag and drop]' - '--raw-key-events[Inject key events for all input keys, and ignore text events]' {-r,--record=}'[Record screen to file]:record file:_files' + '--raw-key-events[Inject key events for all input keys, and ignore text events]' '--record-format=[Force recording format]:format:(mp4 mkv)' '--render-driver=[Request SDL to use the given render driver]:driver name:(direct3d opengl opengles2 opengles metal software)' '--require-audio=[Make scrcpy fail if audio is enabled but does not work]' '--rotation=[Set the initial display rotation]:rotation values:(0 1 2 3)' {-s,--serial=}'[The device serial number \(mandatory for multiple devices only\)]:serial:($("${ADB-adb}" devices | awk '\''$2 == "device" {print $1}'\''))' - '--shortcut-mod=[\[key1,key2+key3,...\] Specify the modifiers to use for scrcpy shortcuts]:shortcut mod:(lctrl rctrl lalt ralt lsuper rsuper)' {-S,--turn-screen-off}'[Turn the device screen off immediately]' + '--shortcut-mod=[\[key1,key2+key3,...\] Specify the modifiers to use for scrcpy shortcuts]:shortcut mod:(lctrl rctrl lalt ralt lsuper rsuper)' {-t,--show-touches}'[Show physical touches]' '--tcpip[\(optional \[ip\:port\]\) Configure and connect the device over TCP/IP]' '--tunnel-host=[Set the IP address of the adb tunnel to reach the scrcpy server]' '--tunnel-port=[Set the TCP port of the adb tunnel to reach the scrcpy server]' '--v4l2-buffer=[Add a buffering delay \(in milliseconds\) before pushing frames]' '--v4l2-sink=[\[\/dev\/videoN\] Output to v4l2loopback device]' - {-V,--verbosity=}'[Set the log level]:verbosity:(verbose debug info warn error)' {-v,--version}'[Print the version of scrcpy]' + {-V,--verbosity=}'[Set the log level]:verbosity:(verbose debug info warn error)' '--video-codec=[Select the video codec]:codec:(h264 h265 av1)' '--video-codec-options=[Set a list of comma-separated key\:type=value options for the device video encoder]' '--video-encoder=[Use a specific MediaCodec video encoder]' diff --git a/app/scrcpy.1 b/app/scrcpy.1 index 04098b9c..9b08f182 100644 --- a/app/scrcpy.1 +++ b/app/scrcpy.1 @@ -113,6 +113,10 @@ Use TCP/IP device (if there is exactly one, like adb -e). Also see \fB\-d\fR (\fB\-\-select\-usb\fR). +.TP +.B \-f, \-\-fullscreen +Start in fullscreen. + .TP .B \-\-force\-adb\-forward Do not attempt to use "adb reverse" to connect to the device. @@ -121,10 +125,6 @@ Do not attempt to use "adb reverse" to connect to the device. .B \-\-forward\-all\-clicks By default, right-click triggers BACK (or POWER on) and middle-click triggers HOME. This option disables these shortcuts and forward the clicks to the device instead. -.TP -.B \-f, \-\-fullscreen -Start in fullscreen. - .TP .B \-h, \-\-help Print this help. @@ -167,10 +167,6 @@ Default is "unlocked". Passing the option without argument is equivalent to passing "initial". -.TP -.BI "\-\-max\-fps " value -Limit the framerate of screen capture (officially supported since Android 10, but may work on earlier versions). - .TP .BI "\-m, \-\-max\-size " value Limit both the width and height of the video to \fIvalue\fR. The other dimension is computed so that the device aspect\-ratio is preserved. @@ -189,6 +185,18 @@ It may only work over USB. Also see \fB\-\-hid\-keyboard\fR. +.TP +.BI "\-\-max\-fps " value +Limit the framerate of screen capture (officially supported since Android 10, but may work on earlier versions). + +.TP +.B \-n, \-\-no\-control +Disable device control (mirror the device in read\-only). + +.TP +.B \-N, \-\-no\-playback +Disable video and audio playback on the computer (equivalent to --no-video-playback --no-audio-playback). + .TP .B \-\-no\-audio Disable audio forwarding. @@ -215,14 +223,6 @@ By default, on MediaCodec error, scrcpy automatically tries again with a lower d This option disables this behavior. -.TP -.B \-n, \-\-no\-control -Disable device control (mirror the device in read\-only). - -.TP -.B \-N, \-\-no\-playback -Disable video and audio playback on the computer (equivalent to --no-video-playback --no-audio-playback). - .TP .B \-\-no\-key\-repeat Do not forward repeated key events when a key is held down. @@ -284,10 +284,6 @@ Set the target directory for pushing files to the device by drag & drop. It is p Default is "/sdcard/Download/". -.TP -.B \-\-raw\-key\-events -Inject key events for all input keys, and ignore text events. - .TP .BI "\-r, \-\-record " file Record screen to @@ -297,6 +293,10 @@ The format is determined by the .B \-\-record\-format option if set, or by the file extension (.mp4 or .mkv). +.TP +.B \-\-raw\-key\-events +Inject key events for all input keys, and ignore text events. + .TP .BI "\-\-record\-format " format Force recording format (either mp4 or mkv). @@ -322,6 +322,10 @@ Set the initial display rotation. Possibles values are 0, 1, 2 and 3. Each incre .BI "\-s, \-\-serial " number The device serial number. Mandatory only if several devices are connected to adb. +.TP +.B \-S, \-\-turn\-screen\-off +Turn the device screen off immediately. + .TP .BI "\-\-shortcut\-mod " key\fR[+...]][,...] Specify the modifiers to use for scrcpy shortcuts. Possible keys are "lctrl", "rctrl", "lalt", "ralt", "lsuper" and "rsuper". @@ -332,6 +336,12 @@ For example, to use either LCtrl+LAlt or LSuper for scrcpy shortcuts, pass "lctr Default is "lalt,lsuper" (left-Alt or left-Super). +.TP +.B \-t, \-\-show\-touches +Enable "show touches" on start, restore the initial value on exit. + +It only shows physical touches (not clicks from scrcpy). + .TP .BI "\-\-tcpip\fR[=\fIip\fR[:\fIport\fR]] Configure and reconnect the device over TCP/IP. @@ -340,16 +350,6 @@ If a destination address is provided, then scrcpy connects to this address befor If no destination address is provided, then scrcpy attempts to find the IP address and adb port of the current device (typically connected over USB), enables TCP/IP mode if necessary, then connects to this address before starting. -.TP -.B \-S, \-\-turn\-screen\-off -Turn the device screen off immediately. - -.TP -.B \-t, \-\-show\-touches -Enable "show touches" on start, restore the initial value on exit. - -It only shows physical touches (not clicks from scrcpy). - .TP .BI "\-\-tunnel\-host " ip Set the IP address of the adb tunnel to reach the scrcpy server. This option automatically enables --force-adb-forward. @@ -362,6 +362,16 @@ Set the TCP port of the adb tunnel to reach the scrcpy server. This option autom Default is 0 (not forced): the local port used for establishing the tunnel will be used. +.TP +.B \-v, \-\-version +Print the version of scrcpy. + +.TP +.BI "\-V, \-\-verbosity " value +Set the log level ("verbose", "debug", "info", "warn" or "error"). + +Default is "info" for release builds, "debug" for debug builds. + .TP .BI "\-\-v4l2-sink " /dev/videoN Output to v4l2loopback device. @@ -376,16 +386,6 @@ This option is similar to \fB\-\-display\-buffer\fR, but specific to V4L2 sink. Default is 0 (no buffering). -.TP -.BI "\-V, \-\-verbosity " value -Set the log level ("verbose", "debug", "info", "warn" or "error"). - -Default is "info" for release builds, "debug" for debug builds. - -.TP -.B \-v, \-\-version -Print the version of scrcpy. - .TP .BI "\-\-video\-codec " name Select a video codec (h264, h265 or av1). diff --git a/app/src/cli.c b/app/src/cli.c index 533e63ca..eb784ebc 100644 --- a/app/src/cli.c +++ b/app/src/cli.c @@ -257,6 +257,11 @@ static const struct sc_option options[] = { .longopt = "encoder", .argdesc = "name", }, + { + .shortopt = 'f', + .longopt = "fullscreen", + .text = "Start in fullscreen.", + }, { .longopt_id = OPT_FORCE_ADB_FORWARD, .longopt = "force-adb-forward", @@ -270,11 +275,6 @@ static const struct sc_option options[] = { "middle-click triggers HOME. This option disables these " "shortcuts and forwards the clicks to the device instead.", }, - { - .shortopt = 'f', - .longopt = "fullscreen", - .text = "Start in fullscreen.", - }, { .shortopt = 'K', .longopt = "hid-keyboard", @@ -330,11 +330,13 @@ static const struct sc_option options[] = { "\"initial\".", }, { - .longopt_id = OPT_MAX_FPS, - .longopt = "max-fps", + .shortopt = 'm', + .longopt = "max-size", .argdesc = "value", - .text = "Limit the frame rate of screen capture (officially supported " - "since Android 10, but may work on earlier versions).", + .text = "Limit both the width and height of the video to value. The " + "other dimension is computed so that the device aspect-ratio " + "is preserved.\n" + "Default is 0 (unlimited).", }, { .shortopt = 'M', @@ -348,13 +350,22 @@ static const struct sc_option options[] = { "Also see --hid-keyboard.", }, { - .shortopt = 'm', - .longopt = "max-size", + .longopt_id = OPT_MAX_FPS, + .longopt = "max-fps", .argdesc = "value", - .text = "Limit both the width and height of the video to value. The " - "other dimension is computed so that the device aspect-ratio " - "is preserved.\n" - "Default is 0 (unlimited).", + .text = "Limit the frame rate of screen capture (officially supported " + "since Android 10, but may work on earlier versions).", + }, + { + .shortopt = 'n', + .longopt = "no-control", + .text = "Disable device control (mirror the device in read-only).", + }, + { + .shortopt = 'N', + .longopt = "no-playback", + .text = "Disable video and audio playback on the computer (equivalent " + "to --no-video-playback --no-audio-playback).", }, { .longopt_id = OPT_NO_AUDIO, @@ -390,17 +401,6 @@ static const struct sc_option options[] = { "again with a lower definition.\n" "This option disables this behavior.", }, - { - .shortopt = 'n', - .longopt = "no-control", - .text = "Disable device control (mirror the device in read-only).", - }, - { - .shortopt = 'N', - .longopt = "no-playback", - .text = "Disable video and audio playback on the computer (equivalent " - "to --no-video-playback --no-audio-playback).", - }, { // deprecated .longopt_id = OPT_NO_DISPLAY, @@ -484,11 +484,6 @@ static const struct sc_option options[] = { "drag & drop. It is passed as is to \"adb push\".\n" "Default is \"/sdcard/Download/\".", }, - { - .longopt_id = OPT_RAW_KEY_EVENTS, - .longopt = "raw-key-events", - .text = "Inject key events for all input keys, and ignore text events." - }, { .shortopt = 'r', .longopt = "record", @@ -497,6 +492,11 @@ static const struct sc_option options[] = { "The format is determined by the --record-format option if " "set, or by the file extension (.mp4 or .mkv).", }, + { + .longopt_id = OPT_RAW_KEY_EVENTS, + .longopt = "raw-key-events", + .text = "Inject key events for all input keys, and ignore text events." + }, { .longopt_id = OPT_RECORD_FORMAT, .longopt = "record-format", @@ -535,6 +535,11 @@ static const struct sc_option options[] = { .text = "The device serial number. Mandatory only if several devices " "are connected to adb.", }, + { + .shortopt = 'S', + .longopt = "turn-screen-off", + .text = "Turn the device screen off immediately.", + }, { .longopt_id = OPT_SHORTCUT_MOD, .longopt = "shortcut-mod", @@ -548,11 +553,6 @@ static const struct sc_option options[] = { "shortcuts, pass \"lctrl+lalt,lsuper\".\n" "Default is \"lalt,lsuper\" (left-Alt or left-Super).", }, - { - .shortopt = 'S', - .longopt = "turn-screen-off", - .text = "Turn the device screen off immediately.", - }, { .shortopt = 't', .longopt = "show-touches", @@ -593,6 +593,22 @@ static const struct sc_option options[] = { "Default is 0 (not forced): the local port used for " "establishing the tunnel will be used.", }, + { + .shortopt = 'v', + .longopt = "version", + .text = "Print the version of scrcpy.", + }, + { + .shortopt = 'V', + .longopt = "verbosity", + .argdesc = "value", + .text = "Set the log level (verbose, debug, info, warn or error).\n" +#ifndef NDEBUG + "Default is debug.", +#else + "Default is info.", +#endif + }, { .longopt_id = OPT_V4L2_SINK, .longopt = "v4l2-sink", @@ -613,22 +629,6 @@ static const struct sc_option options[] = { "Default is 0 (no buffering).\n" "This option is only available on Linux.", }, - { - .shortopt = 'V', - .longopt = "verbosity", - .argdesc = "value", - .text = "Set the log level (verbose, debug, info, warn or error).\n" -#ifndef NDEBUG - "Default is debug.", -#else - "Default is info.", -#endif - }, - { - .shortopt = 'v', - .longopt = "version", - .text = "Print the version of scrcpy.", - }, { .longopt_id = OPT_VIDEO_CODEC, .longopt = "video-codec",