How to use Scrcpy on Linux: installation, USB, Wi-Fi, and tricks

  • Scrcpy controls and mirrors Android on Linux with low latency and without root.
  • Flexible installation: official repos, Snap, COPR, AUR or build.
  • Connection via USB or Wi‑Fi (TCP/IP) and options for quality, recording and window.
  • Limitations: No audio; shortcuts and gestures facilitate presentations and testing.

Scrpy Guide on Linux to Control Android

If you're looking for a fast and reliable way to view and manage your mobile phone from your computer, scrcpy is the reference tool in LinuxDeveloped by Genymobile, this open-source utility mirrors your Android screen in a desktop window and lets you control it with your keyboard and mouse, with a fluidity that surprises even demanding users.

Unlike an emulator, nothing is simulated here: you work on your real device in real time, both via USB and network (TCP/IP). You don't need root, latency is very low, and you can record, take screenshots, drag APKs to install, or drop files to transfer. It's a powerful combination for developers, content creators, or anyone who prefers typing on a physical keyboard.

What is scrcpy and how does it work?

How scrcpy works with Android and Linux

scrcpy, short for “screen copy”, launch a small server on the phone via ADB and streams the H.264 video from your screen to the client running on your PC. The client decodes and displays the stream without buffering to minimize latency, while keyboard and mouse input from your computer is sent back to the device.

In practice, this translates into 30–60 FPS with very decent quality, configurable resolution, and immediate response when interacting. The experience is so direct that many use it for presentations, live demos, or even for playing mobile games with a mouse and keyboard when low latency is required.

As if that were not enough, scrcpy is multiplatform (Linux, Windows and macOS) and supports connection via USB or wirelessly. It also includes useful extras: copy and paste in both directions, start in full screen, show touches on screen for presentations, using the phone as a webcam on Linux, simulating a physical keyboard/mouse, or operating in OTG mode in specific scenarios.

There is an important detail to keep in mind: Audio forwarding is not supported due to Android limitationsThe focus is on video and control. Still, for most uses (development, training, support, demos) it's more than sufficient.

Prerequisites and device preparation

For everything to work, your phone must meet a minimum: Android 5.0 (API 21) or higher. Rooting is not required, so access is secure and non-intrusive.

On your mobile, activate the Developer Options and within them, the USB Debugging (ADB) option. It's generally enabled by going to Settings > About phone and tapping "Build number" repeatedly until you see the corresponding prompt; you'll then find USB debugging in the new developer options.

When you first connect your phone to your computer via USB, A window will appear asking to authorize debugging; accept your device's fingerprint. Without this step, ADB won't see the device, and scrcpy won't be able to log in.

To check that everything is correct, open a terminal and run adb devices to verify that it appears in the “device” statusIf it doesn't appear, check your cable, udev permissions, and that you authorized debugging in the phone's pop-up.

adb devices

Installation on Linux (repositories, Snap, COPR, AUR, and compilation)

Install scrcpy on Linux step by step

The fastest way on Debian/Ubuntu based systems is to use the default repository: Install scrcpy with APT in secondsPlease note that on some versions of Ubuntu, the package from the official repos may be behind the latest release; if you want the most recent version, you have compilation options below.

sudo apt update && sudo apt install scrcpy

On Fedora, the recommended way is to enable the COPR repository “zeno/scrcpy” and then install the package. COPR is similar to AUR on Arch: community-maintained third-party repos.

sudo dnf copr enable zeno/scrcpy
sudo dnf install scrcpy

If you use Arch Linux (or derivatives like Manjaro), scrcpy is in the official repos, along with android-tools for ADB when needed.

sudo pacman -S scrcpy

Another cross-platform option is Snap. It is useful in RHEL/CentOS/Rocky/AlmaLinux environments where no recent package exists in the repos. First enable snapd and then install scrcpy as a snap.

sudo yum install snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
sudo snap install scrcpy

To get the latest version directly from the project, you can compile on Ubuntu/Debian and derivatives. Install the dependencies, download the server, and compile with Meson/Ninja or use the installation script from the repository.

sudo apt install ffmpeg libsdl2-2.0-0 adb wget \
  gcc git pkg-config meson ninja-build libsdl2-dev \
  libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev \
  libswresample-dev libusb-1.0-0 libusb-1.0-0-dev

Download the latest file from scrcpy-server .jar from the releases and copy it to the system path intended for the server:

sudo mkdir -p /usr/local/share/scrcpy
sudo mv scrcpy-server-v*.jar /usr/local/share/scrcpy/scrcpy-server.jar

Now compile the application with Meson and Ninja, specifying the server path with override_server_path To use the precompiled .jar:

server_path='/usr/local/share/scrcpy/scrcpy-server.jar'
cd $HOME/scrcpy
meson build --buildtype release --strip -Db_lto=true -Dbuild_server=false \
  -Doverride_server_path="${server_path}"
cd build
ninja
sudo ninja install

As a more direct alternative, you can clone the repo and run ./install_release.sh, which automates the process and leaves scrcpy ready in the system with hardly any intervention.

git clone https://github.com/Genymobile/scrcpy
cd scrcpy
./install_release.sh

Getting started via USB

With the phone unlocked and ADB debugging authorized, connect the cable and run scrcpy in a terminalA window will open with your device's screen, ready for interaction with your mouse and keyboard.

scrcpy

The window title, by default, shows your device modelIf you prefer, you can set a custom title with the appropriate command-line option.

scrcpy --window-title='Mi dispositivo'

In addition to direct control, scrcpy facilitates common tasks: Drag an APK to the window to install it or drop any other file to /sdcard/Download/ on the device without any intermediate cables or file browsers.

If you need to capture a single image, you can take a screenshot with the key combination (on Linux/Windows, Ctrl+S; on macOS, Command+S) directly from the scrcpy window, without any external tools.

Wireless connection via Wi‑Fi (TCP/IP)

Working wirelessly is extremely convenient. To configure ADB over the network, Make sure you have adb installed on your PC and that both devices are on the same Wi-Fi network. Start by connecting your phone via USB the first time to activate TCP/IP mode.

sudo apt install adb        # Debian/Ubuntu/Mint
sudo yum install adb        # RHEL/CentOS/Fedora/Rocky/AlmaLinux
sudo pacman -S adb          # Arch Linux

Enable TCP/IP listening on standard port 5555. This step Enable your Android's ADB daemon over the network and is usually only necessary after reboots or network changes.

adb tcpip 5555

Get the phone's IP address from the Wi-Fi settings or with a quick command. With the address in hand, connect wirelessly from your PC and you will be able to run scrcpy without the cable.

adb shell ip route
adb connect 192.168.1.4:5555
scrcpy

scrcpy also allows connect with a single command using the –tcpip parameter, useful when you already know the IP and port of the device.

scrcpy --tcpip=192.168.1.4:5555

Quality, recording and window options

One of scrcpy's strengths is how customizable it is. You can limit the resolution sent to save bandwidth and CPU on modest computers or congested networks.

scrcpy -m 1024
# Equivalente
scrcpy --max-size=1024

If you are looking to control the flow, change the frame rate per second depending on the task: less FPS for power savings or more for smooth animations.

scrcpy --max-fps 30

The bitrate parameter adjusts the visual quality. Wireless connections or more limited hardware They appreciate lowering the bitrate to maintain stability without cuts.

scrcpy -b 4M
# o, por ejemplo, 2 Mbps
scrcpy -b 2M

For presentations, it is useful start in full screen, keep the window on top of the rest or show finger taps on the device so the audience can follow your actions.

scrcpy -f                      # pantalla completa
scrcpy --always-on-top         # siempre encima
scrcpy --show-touches          # mostrar toques

You can also crop the visible area if you need to focus on a specific region of the screen (useful with tablets or ultra-wide panels).

scrcpy --crop 1224:1440:0:0    # ancho:alto:x:y

The recording is direct and straightforward. Add the appropriate option for save an MP4 or MKV while duplicating; if you want to record without showing the window, turn off the display and stop with Ctrl+C.

scrcpy --record demo.mp4
scrcpy -Nr solo_grabacion.mp4   # no display + record

To see all the possibilities, use the built-in help, which documents a huge range of parameters to fine-tune every detail of behavior.

scrcpy --help

Keyboard and mouse shortcuts and control

Interaction with the device is natural and precise. In Linux, the key MOD is usually Alt, and with simple combinations you can emulate complex touch gestures without touching the phone.

The pinch (zoom) gesture is simulated with Ctrl + click and move, and two-finger swipes are emulated with Shift + click and move (vertical) or Ctrl + Shift + click and move (horizontal). It's incredibly convenient when browsing or testing gesture-sensitive interfaces.

For the window, you have accesses like Ctrl+f for full screen, plus options to set custom titles or keep it on top of the rest when making demos or recordings.

If you work with several phones at the same time, open scrcpy instances indicating the device ID (You'll see it in adb devices.) It's perfect for comparing apps on different phones or for simultaneous recordings.

Performance and Image Quality Tips

If what matters to you is immediacy, USB offers the lowest latency and stability you'll hardly match over Wi-Fi. It's the go-to choice for smooth debugging, gaming, or recording.

On wireless networks, lower the bitrate and limit FPS It often experiences a drop in stability, especially if the router or coverage isn't conducive. Adjusting the maximum size (–max-size) also reduces CPU load.

Remember that scrcpy can run at 30–60 FPS depending on your hardware and settings. Adjust until you find the balance between sharpness and responsiveness that best suits your equipment.

If you are going to record long sessions, prioritize –no-display (-N) to record in the background and save resources. And if you're giving presentations, enable touchscreen so everyone can clearly follow your steps.

Limitations and important notes

By Android design, no audio forwarding In scrcpy, the focus is on video and control, so if you need sound, you'll have to resort to alternative solutions.

In certain models, so that the keyboard and mouse work as you expect You may need to enable additional system options. You'll find manufacturer- and system-specific notes on the project's GitHub page.

scrcpy includes little gems: you can show physical touches For training, launching directly in full screen, or even using the device as a webcam in Linux. And best of all, it still doesn't require root, making it ideal for corporate or testing environments.

Uninstallation

If you installed scrcpy by compiling it with the .jar on your system, you can remove it with these commands to leave the environment clean in seconds.

sudo rm /usr/local/share/scrcpy/scrcpy-server.jar
sudo rm /usr/local/bin/scrcpy

When the installation was done with the release script or the Meson/Ninja flow, you can use the uninstall target already prepared in the project.

sudo ninja -Cbuild-auto uninstall

scrcpy has become the preferred choice for controlling Android from the desktop because of its performance, simplicity and versatility: Works via USB or Wi-Fi, doesn't require root, allows you to record, adjust resolution, FPS, and bitrate, and offers shortcuts and options designed for development, presentations, and support. With a simple installation on almost any distro and fine-tuning for all types of computers, it's a tool that deserves a place in your toolbox.