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
- scrcpy udah ke-install dan bisa jalan manual. Tes dulu:
scrcpykebuka normal. - USB Debugging aktif di HP. Cek
adb devicesharus munculdevicebukanunauthorized. - 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:
ATTR{idVendor}=="18d1"= filter cuma buat device Android. Ganti kalau vendor ID kamu beda.ENV{adb_adb}=="yes"= cuma jalan kalau USB Debugging aktif. Jadi nggak ganggu kalau cuma mau ngecas.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

User Reviews & Discussion
Tidak ada komentar:
Posting Komentar