To mirror a new virtual display instead of the device screen:
scrcpy --new-display=1920x1080
scrcpy --new-display=1920x1080/420 # force 420 dpi
scrcpy --new-display # use the main display size and density
scrcpy --new-display=/240 # use the main display size and 240 dpiThe new virtual display is destroyed on exit.
To continuously resize the virtual display to match the window size, enable
"flex display" using --flex-display (or -x):
# Start Android Settings in a window
scrcpy --new-display=1024x768 --start-app=com.android.settings --flex-display
# -x is equivalent to --flex-display
scrcpy --new-display=1024x768 --start-app=com.android.settings -x
# By default, the display size/dpi is 1280x960/160
scrcpy --new-display --start-app=com.android.settings --flex-displayUse --keep-active to prevent the screen from turning off:
scrcpy --new-display --flex-display --keep-activeIncrease the bit rate (and/or change the codec) to maintain good quality even with large windows:
scrcpy --new-display -x --video-codec=h265 -b16MOn some devices, a launcher is available in the virtual display.
When no launcher is available (or if is explicitly disabled by
--no-vd-system-decorations), the virtual display is
empty. In that case, you must start an Android
app.
For example:
scrcpy --new-display=1920x1080 --start-app=org.videolan.vlcThe app may itself be a launcher. For example, to run the open source Fossify Launcher:
scrcpy --new-display=1920x1080 --no-vd-system-decorations --start-app=org.fossify.homeBy default, virtual display system decorations are enabled. To disable them, use
--no-vd-system-decorations:
scrcpy --new-display --no-vd-system-decorationsThis is useful for some devices which might display a broken UI, or to disable any default launcher UI available in virtual displays.
Note that if no app is started, no content will be rendered, so no video frame will be produced at all.
By default, when the virtual display is closed, the running apps are destroyed.
To move them to the main display instead, use:
scrcpy --new-display --no-vd-destroy-contentBy default, the virtual display IME appears on the default display.
To make it appear on the local display, use --display-ime-policy=local:
scrcpy --display-id=1 --display-ime-policy=local
scrcpy --new-display --display-ime-policy=local