There are times you want to share your android phone’s screen with your Linux/Windows desktop. Like if you have got broken screen or for some purpose.

So this post may help you.


  • Android phone
  • ADB installed

In Arch Linux, you can install ADB with:

$ sudo pacman -S android-tools

There is a program which is used to screen sharing. You can install it using AUR in Arch Linux, use apt if you are using Ubuntu/Debian. It’s called scrcpy in repositories.

For Arch Linux, you can go to this link . And here is the Windows link .

Once installed, enable USB debugging,plug your android device. And run:

$ scrcpy

Scrcpy has many options which you can explore like this:

$ scrcpy --help

Usage: scrcpy [options]


        Make scrcpy window always on top (above other windows).

    -b, --bit-rate value
        Encode the video at the given bit-rate, expressed in bits/s.
        Unit suffixes are supported: 'K' (x1000) and 'M' (x1000000).
        Default is 8000000.

    --codec-options key[:type]=value[,...]
        Set a list of comma-separated key:type=value options for the
        device encoder.
        The possible values for 'type' are 'int' (default), 'long',
        'float' and 'string'.
        The list of possible codec options is available in the
        Android documentation:

    --crop width:height:x:y
        Crop the device screen on the server.
        The values are expressed in the device natural orientation
        (typically, portrait for a phone, landscape for a tablet).
        Any --max-size value is computed on the cropped size.

    --display id
        Specify the display id to mirror.

        The list of possible display ids can be listed by:
            adb shell dumpsys display
        (search "mDisplayId=" in the output)

        Default is 0.

        Do not attempt to use "adb reverse" to connect to the
        the device.

    -f, --fullscreen
        Start in fullscreen.

    -h, --help
        Print this help.

    --lock-video-orientation value
        Lock video orientation to value.
        Possible values are -1 (unlocked), 0, 1, 2 and 3.
        Natural device orientation is 0, and each increment adds a
        90 degrees rotation counterclockwise.
        Default is -1 (unlocked).

    --max-fps value
        Limit the frame rate of screen capture (officially supported
        ince Android 10, but may work on earlier versions).

    -m, --max-size value
        Limit both the width and height of the video to value. The
        other dimension is computed so that the device aspect-ratio
        is preserved.
        Default is 0 (unlimited).

    -n, --no-control
        Disable device control (mirror the device in read-only).

    -N, --no-display
        Do not display device (only when screen recording is

        If the renderer is OpenGL 3.0+ or OpenGL ES 2.0+, then
        mipmaps are automatically generated to improve downscaling
        quality. This option disables the generation of mipmaps.

    -p, --port port[:port]
        Set the TCP port (range) used by the client to listen.
        Default is 27183:27199.

        Inject alpha characters and space as text events instead of
        key events.
        This avoids issues when combining multiple keys to enter a
        special character, but breaks the expected behavior of alpha
        keys in games (typically WASD).

    --push-target path
        Set the target directory for pushing files to the device by
        drag & drop. It is passed as-is to "adb push".
        Default is "/sdcard/".

    -r, --record file.mp4
        Record screen to file.
        The format is determined by the --record-format option if
        set, or by the file extension (.mp4 or .mkv).

    --record-format format
        Force recording format (either mp4 or mkv).

    --render-driver name
        Request SDL to use the given render driver (this is just a
        Supported names are currently "direct3d", "opengl",
        "opengles2", "opengles", "metal" and "software".

        By default, to minimize latency, scrcpy always renders the
        last available decoded frame, and drops any previous ones.
        This flag forces to render all frames, at a cost of a
        possible increased latency.

    --rotation value
        Set the initial display rotation.
        Possibles values are 0, 1, 2 and 3. Each increment adds a 90
        degrees rotation counterclockwise.

    -s, --serial serial
        The device serial number. Mandatory only if several devices
        are connected to adb.

    -S, --turn-screen-off
        Turn the device screen off immediately.

    -t, --show-touches
        Enable "show touches" on start, restore the initial value
        on exit.
        It only shows physical touches (not clicks from scrcpy).

    -v, --version
        Print the version of scrcpy.

    -V, --verbosity value
        Set the log level (debug, info, warn or error).
        Default is info.

    -w, --stay-awake
        Keep the device on while scrcpy is running.

        Disable window decorations (display borderless window).

    --window-title text
        Set a custom window title.

    --window-x value
        Set the initial window horizontal position.
        Default is "auto".

    --window-y value
        Set the initial window vertical position.
        Default is "auto".

    --window-width value
        Set the initial window width.
        Default is 0 (automatic).

    --window-height value
        Set the initial window width.
        Default is 0 (automatic).


        Switch fullscreen mode

        Rotate display left

        Rotate display right

        Resize window to 1:1 (pixel-perfect)

    Double-click on black borders
        Resize window to remove black borders

        Click on HOME

    Right-click (when screen is on)
        Click on BACK

        Click on APP_SWITCH

        Click on MENU

        Click on VOLUME_UP

        Click on VOLUME_DOWN

        Click on POWER (turn screen on/off)

    Right-click (when screen is off)
        Power on

        Turn device screen off (keep mirroring)

        Turn device screen on

        Rotate device screen

        Expand notification panel

        Collapse notification panel

        Copy device clipboard to computer

        Paste computer clipboard to device

        Copy computer clipboard to device (and paste if the device
        runs Android >= 7)

        Enable/disable FPS counter (print frames/second in logs)

    Drag & drop APK file
        Install APK from computer

Here is YouTube video for demonstration.

I hope you’ve enjoyed this article. If you have any questions, ask in comment sections.