====== scrcpy ======
* https://github.com/Genymobile/scrcpy
* 오픈소스 Android 화면 미러링, 조작 도구. adb 사용
* [[linux:snap|Snap]] 으로 모든 리눅스 배포판에서 설치가능.
* WiFi 로 연결도 가능.
* [[android:sndcpy|sndcpy]]와 함께 실행해서 오디오도 PC로 미러링
===== brew 로 설치 =====
* [[https://formulae.brew.sh/formula/scrcpy|scrcpy — Homebrew Formulae]] 로 설치하는게 가장 최신 버전을 따라가기 좋다. 단, ''adb'' 는 따로 설치해야 한다.
brew install scrcpy
# adb 는 따로 설치 필요
sudo apt install adb
===== Snap Debian/Ubuntu 설치 =====
* https://snapcraft.io/scrcpy : 안정버전
* https://snapcraft.io/scrcpy-updated : 최신 버전
snap 으로 설치시 ''/snap/bin/scrcpy'', ''/snap/bin/scrcpy.adb'' 가 생성됨.
===== Flatpak =====
* [[https://github.com/12wk34/scrcpy-flatpak|scrcpy-flatpak]]
===== Manjaro/Arch 설치 =====
* [[https://aur.archlinux.org/packages/scrcpy/|scrcpy AUR]]
===== 실행 =====
* Android 장치에서 USB Debugging 을 켜고,
* [[https://developer.android.com/studio/debug/dev-options?hl=ko#enable|Android 개발자 옵션 켜기]]
* 9.0 이상 : **설정 -> 시스템 -> 휴대폰 정보 -> 소프트웨어 정보 -> 빌드번호**를 7회 터치
* **설정 -> 시스템 -> 개발자옵션**에서 디버그 모드 설정
* 화면이 on 된 상태에서
* ''scrcpy'' 실행.
* Linux 의 경우 제대로 안되다가 재부팅하고 여러번 재시도 하니까 됐음. MTP 파일 전송모드를 끄고 충전모드로 바꾸니까 되기도함. 혹은 ''scrcpy''를 여러번 실행하면서 Android 폰의 권한 허용을 안내에 따라 몇번 눌러줌.
* ''scrcpy.adb kill-server'' 로 떠있는 서버 중단.
==== 현재 실행 방식 ====
# 원하는 IME(세벌식용)로 변경. adb 혹은 scrcpy.adb
adb shell ime set "com.egloos.woongyee.sesak/.SesakKeyboardService"
# 실행
scrcpy --hid-keyboard --stay-awake --turn-screen-off
# IME 원상복구
adb shell ime set "com.lge.ime/.LgeImeImpl"
===== 실행 옵션 =====
* ''%%--turn-screen-off%%'' : 기기 화면은 끈 상태로 실행
* ''%%--window-height=숫자pixel --window-width=숫자pixel%%'' : 화면 높이/너비 크기 제한. 너비/높이 둘중의 하나만 지정하면 나머지는 비율에 따라 자동 계산됨.
===== 단축키 =====
* ''Ctrl-P'' : 전원버튼
* ''Ctrl-O'' : 폰 화면만 끄기. ''%%--turn-screen-off%%'' 명령으로 실행해도 됨.
* ''Ctrl-F'' : Full Screen
* ''Ctrl-S'' : App Switch
* ''Ctrl-N'' : 알림 영역 열기, ''Ctrl-Shift-N''은 닫기
* ''Ctrl-C'' : 먼저 안드로에드에서 복사하기를 한 뒤에 다시 한 번 ''Ctrl-C''를 누르면 컴퓨터의 클립보드에 저장된다.
* ''Ctrl-V'' : 컴퓨터 클립보드를 안드로이드에 붙여넣기
* ''Ctrl-Shift-V'' : 컴퓨터 클립보드를 안드로이드 클립보드로
* ''Ctrl-X'' : 창크기를 기기 화면 크기에 맞게 조정
* 홈 : ''Ctrl-H'', 마우스 가운데 클릭
* Back : ''Ctrl-B'', 마우스 오른쪽 클릭(화면이 켜진 상태일때)
* 전원켜기 : 마우스 오른쪽 클릭(화면이 꺼진상태일때)
* 마우스 스크롤 : 화면 좌우 이동 혹은 위아래 스크롤
===== OTG - on the go 모드 =====
* 화면 공유 없이, OTG로 키보드와 마우스만 시뮬레이션 해주는 모드임.
* 화면고유 없이 OTG만 할 경우에는 케이블 연결시 debug 모드로 연결할 필요없음.
scrcpy --otg
# --hid-keyboard --hid-mouse 원하는 기기만 명시
===== 물리 키보드 시뮬레이션 - 한글 입력 & Keyboard =====
* PC 키보드를 물리 키보드 연결된 것으로 시뮬레이션하는 기능이 들어갔음.
scrcpy --hid-keyboard
scrcpy -K # short version
* [[https://play.google.com/store/apps/details?id=com.egloos.woongyee.sesak&hl=ko|세삭 세벌식 입력기]]를 사용하면 세벌식을 화면에서 바로 입력할 수 있음.
* 세삭입력기의 경우 한영 전환을 ''shift+space''로 해야 올바로 한영전환이 작동했음.
===== 자동실행 =====
* [[android:autoadb|autoadb]] : USB연결시 ''scrcpy'' 자동실행
===== 참조 =====
* [[https://www.linuxuprising.com/2019/03/install-scrcpy-on-linux-from-snap.html|Install scrcpy on Linux From Snap Package (App To Display And Remote Control Android From PC) - Linux Uprising Blog]]
* [[https://www.linuxuprising.com/2019/03/control-android-devices-from-your.html|Control Android Devices From A Desktop With scrcpy (Ubuntu, Fedora, Debian, Linux Mint Installation) - Linux Uprising Blog]]
* https://github.com/npes87184/SocketIME
* [[https://kmyers.me/blog/android/dexonlinux-dexonchromeos-how-to-no-root/|DexOnLinux/DexOnChromeOS – How To (NO ROOT) | Keith I Myers]]