Developer Hub

Cara Bikin Scrcpy Auto Jalan Pas HP Android Dicolok ke Linux

Cara Bikin Scrcpy Auto Jalan Pas HP Android Dicolok ke Linux

Pernah nggak sih ngerasa ribet tiap mau mirror HP ke PC harus buka terminal terus ketik scrcpy manual? Apalagi kalau sering cabut-colok, scrcpy langsung nutup dan harus dijalankan ulang.

Nah, di tutorial ini kita bakal bikin scrcpy auto kebuka sendiri tiap HP Android dicolok via USB. Cabut = mati, colok lagi = nyala lagi. Full otomatis pakai udev + systemd.

Tested di Ubuntu/Fedora/Arch, Wayland & X11.


1. Syarat Awal

  1. scrcpy udah ke-install dan bisa jalan manual. Tes dulu: scrcpy kebuka normal.
  2. USB Debugging aktif di HP. Cek adb devices harus muncul device bukan unauthorized.
  3. Tau username Linux kamu. Di tutorial ini gue pake fi, ganti sesuai punya kamu.

2. Bikin Script Pembuka Scrcpy

Kita butuh script perantara karena udev nggak bisa langsung buka aplikasi GUI.

Bikin file /home/fi/scrcpy/auto-scrcpy.sh:

#!/bin/bash
# Tunggu sampai adb bener-bener detect device
adb wait-for-device

# Jalanin scrcpy. Flag -w biar kalau HP disconnect, scrcpy nunggu nggak langsung exit
/home/fi/scrcpy/scrcpy --keyboard=uhid -w

Jangan lupa kasih izin eksekusi:

chmod +x /home/fi/scrcpy/auto-scrcpy.sh

Ganti /home/fi/scrcpy/scrcpy sesuai lokasi scrcpy kamu. Kalau install via apt, biasanya path-nya /usr/bin/scrcpy.

3. Bikin Service Systemd Biar Jalan Sebagai User

Ini triknya biar scrcpy bisa buka window di sesi desktop kamu.

Bikin folder kalau belum ada: mkdir -p ~/.config/systemd/user

Bikin file ~/.config/systemd/user/scrcpy-auto.service:

[Unit]
Description=Auto start scrcpy when Android connected

[Service]
Type=simple
ExecStart=/home/fi/scrcpy/auto-scrcpy.sh

Reload systemd biar kebaca:

systemctl --user daemon-reload

4. Bikin Udev Rules Buat Deteksi HP

Ini yang ngasih tau sistem "kalau ada HP ADB dicolok, tolong jalanin service tadi".

Cek vendor ID HP kamu dulu pake lsusb. Punya gue 18d1 buat Google/HTC.

Bikin file rules: sudo nano /etc/udev/rules.d/90-scrcpy.rules

Isi dengan 1 baris ini:

SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="18d1", ENV{adb_adb}=="yes", TAG+="systemd", ENV{SYSTEMD_USER_WANTS}="scrcpy-auto.service"

Penjelasan singkat:

  1. ATTR{idVendor}=="18d1" = filter cuma buat device Android. Ganti kalau vendor ID kamu beda.
  2. ENV{adb_adb}=="yes" = cuma jalan kalau USB Debugging aktif. Jadi nggak ganggu kalau cuma mau ngecas.
  3. SYSTEMD_USER_WANTS = nyuruh systemd user buat ngejalanin service kita.

Reload rules:

sudo udevadm control --reload-rules
sudo udevadm trigger

5. Selesai! Cara Ngetes

Sekarang cabut kabel HP kamu, terus colok lagi. Dalam 2-3 detik scrcpy harusnya langsung kebuka sendiri.

Kalau HP dicabut, window scrcpy otomatis ketutup. Colok lagi, kebuka lagi.

Troubleshooting

Masalah Solusi
Dicolok nggak muncul apa-apa Jalanin journalctl --user -u scrcpy-auto.service -f sambil colok HP. Liat errornya di situ. Paling sering path scrcpy di script salah.
Muncul error cannot open display Kamu pakai Wayland. Tambahin Environment=QT_QPA_PLATFORM=wayland di file .service di bawah [Service]
Mau matiin fitur auto-nya Jalanin systemctl --user disable scrcpy-auto.service. Buat nyalain lagi ganti disable jadi enable
Biar cuma jalan kalau layar HP unlock Edit auto-scrcpy.sh, tambahin ini sebelum baris scrcpy: if adb shell dumpsys window | grep -q mDreamingLockscreen=true; then exit 0; fi

Penutup

Sekarang workflow mirror HP jadi 0 klik. Tinggal colok, langsung kerja.

Cara ini jauh lebih stabil daripada pake RUN+= langsung di udev karena kita manfaatin systemd --user yang emang udah punya akses ke sesi desktop kita.

Selamat nyoba. Kalau ada error, tulis di komentar ya.

Tags: linux, android, scrcpy, udev, systemd, tutorial, otomatis

Developer
Roffi
Tutorial Linux & tempat download Aplikasi Android open-source premium. Deployed via Nero Engine.

User Reviews & Discussion

Tidak ada komentar:

Posting Komentar