README.pt-br.md 21.9 KB
Newer Older
N
Natan Junges 已提交
1
_Apenas o [README](README.md) original é garantido estar atualizado._
2

N
Natan Junges 已提交
3
# scrcpy (v1.17)
L
latreta 已提交
4

N
Natan Junges 已提交
5 6
Esta aplicação fornece exibição e controle de dispositivos Android conectados via
USB (ou [via TCP/IP][article-tcpip]). Não requer nenhum acesso _root_.
L
latreta 已提交
7 8 9 10 11 12
Funciona em _GNU/Linux_, _Windows_ e _macOS_.

![screenshot](assets/screenshot-debian-600.jpg)

Foco em:

N
Natan Junges 已提交
13
 - **leveza** (nativo, mostra apenas a tela do dispositivo)
L
latreta 已提交
14 15 16 17 18 19 20 21 22 23 24
 - **performance** (30~60fps)
 - **qualidade** (1920×1080 ou acima)
 - **baixa latência** ([35~70ms][lowlatency])
 - **baixo tempo de inicialização** (~1 segundo para mostrar a primeira imagem)
 - **não intrusivo** (nada é deixado instalado no dispositivo)

[lowlatency]: https://github.com/Genymobile/scrcpy/pull/646


## Requisitos

N
Natan Junges 已提交
25
O dispositivo Android requer pelo menos a API 21 (Android 5.0).
L
latreta 已提交
26

N
Natan Junges 已提交
27
Tenha certeza de ter [ativado a depuração adb][enable-adb] no(s) seu(s) dispositivo(s).
L
latreta 已提交
28 29 30

[enable-adb]: https://developer.android.com/studio/command-line/adb.html#Enabling

N
Natan Junges 已提交
31 32
Em alguns dispositivos, você também precisa ativar [uma opção adicional][control] para
controlá-lo usando teclado e mouse.
L
latreta 已提交
33 34 35 36

[control]: https://github.com/Genymobile/scrcpy/issues/70#issuecomment-373286323


N
Natan Junges 已提交
37
## Obter o app
L
latreta 已提交
38

N
Natan Junges 已提交
39
<a href="https://repology.org/project/scrcpy/versions"><img src="https://repology.org/badge/vertical-allrepos/scrcpy.svg" alt="Packaging status" align="right"></a>
L
latreta 已提交
40 41 42

### Linux

N
Natan Junges 已提交
43
No Debian (_testing_ e _sid_ por enquanto) e Ubuntu (20.04):
L
latreta 已提交
44 45 46 47 48

```
apt install scrcpy
```

N
Natan Junges 已提交
49
Um pacote [Snap] está disponível: [`scrcpy`][snap-link].
L
latreta 已提交
50 51 52 53 54

[snap-link]: https://snapstats.org/snaps/scrcpy

[snap]: https://en.wikipedia.org/wiki/Snappy_(package_manager)

N
Natan Junges 已提交
55 56 57 58 59
Para Fedora, um pacote [COPR] está disponível: [`scrcpy`][copr-link].

[COPR]: https://fedoraproject.org/wiki/Category:Copr
[copr-link]: https://copr.fedorainfracloud.org/coprs/zeno/scrcpy/

L
latreta 已提交
60 61 62 63 64 65 66 67 68 69
Para Arch Linux, um pacote [AUR] está disponível: [`scrcpy`][aur-link].

[AUR]: https://wiki.archlinux.org/index.php/Arch_User_Repository
[aur-link]: https://aur.archlinux.org/packages/scrcpy/

Para Gentoo, uma [Ebuild] está disponível: [`scrcpy/`][ebuild-link].

[Ebuild]: https://wiki.gentoo.org/wiki/Ebuild
[ebuild-link]: https://github.com/maggu2810/maggu2810-overlay/tree/master/app-mobilephone/scrcpy

N
Natan Junges 已提交
70 71
Você também pode [compilar o app manualmente][BUILD] (não se preocupe, não é tão
difícil).
L
latreta 已提交
72 73 74 75 76



### Windows

N
Natan Junges 已提交
77
Para Windows, por simplicidade, um arquivo pré-compilado com todas as dependências
L
latreta 已提交
78 79
(incluindo `adb`) está disponível:

80
 - [README](README.md#windows)
L
latreta 已提交
81

N
Natan Junges 已提交
82
Também está disponível em [Chocolatey]:
L
latreta 已提交
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

[Chocolatey]: https://chocolatey.org/

```bash
choco install scrcpy
choco install adb    # se você ainda não o tem
```

E no [Scoop]:

```bash
scoop install scrcpy
scoop install adb    # se você ainda não o tem
```

[Scoop]: https://scoop.sh

N
Natan Junges 已提交
100
Você também pode [compilar o app manualmente][BUILD].
L
latreta 已提交
101 102 103 104


### macOS

N
Natan Junges 已提交
105
A aplicação está disponível em [Homebrew]. Apenas instale-a:
L
latreta 已提交
106 107 108 109 110 111 112

[Homebrew]: https://brew.sh/

```bash
brew install scrcpy
```

N
Natan Junges 已提交
113
Você precisa do `adb`, acessível pelo seu `PATH`. Se você ainda não o tem:
L
latreta 已提交
114 115

```bash
N
Natan Junges 已提交
116 117 118 119
# Homebrew >= 2.6.0
brew install --cask android-platform-tools

# Homebrew < 2.6.0
L
latreta 已提交
120 121 122
brew cask install android-platform-tools
```

N
Natan Junges 已提交
123
Você também pode [compilar o app manualmente][BUILD].
L
latreta 已提交
124 125 126 127


## Executar

N
Natan Junges 已提交
128
Conecte um dispositivo Android e execute:
L
latreta 已提交
129 130 131 132 133 134 135 136 137 138 139 140 141 142 143

```bash
scrcpy
```

Também aceita argumentos de linha de comando, listados por:

```bash
scrcpy --help
```

## Funcionalidades

### Configuração de captura

N
Natan Junges 已提交
144
#### Reduzir tamanho
L
latreta 已提交
145 146

Algumas vezes, é útil espelhar um dispositivo Android em uma resolução menor para
N
Natan Junges 已提交
147
aumentar a performance.
L
latreta 已提交
148

N
Natan Junges 已提交
149
Para limitar ambos (largura e altura) para algum valor (ex: 1024):
L
latreta 已提交
150 151 152

```bash
scrcpy --max-size 1024
N
Natan Junges 已提交
153
scrcpy -m 1024  # versão curta
L
latreta 已提交
154 155 156
```

A outra dimensão é calculada para que a proporção do dispositivo seja preservada.
N
Natan Junges 已提交
157
Dessa forma, um dispositivo de 1920x1080 será espelhado em 1024x576.
L
latreta 已提交
158 159


N
Natan Junges 已提交
160
#### Mudar bit-rate
L
latreta 已提交
161

N
Natan Junges 已提交
162
O bit-rate padrão é 8 Mbps. Para mudar o bit-rate do vídeo (ex: para 2 Mbps):
L
latreta 已提交
163 164 165

```bash
scrcpy --bit-rate 2M
N
Natan Junges 已提交
166
scrcpy -b 2M  # versão curta
L
latreta 已提交
167 168
```

N
Natan Junges 已提交
169
#### Limitar frame rate
L
latreta 已提交
170

N
Natan Junges 已提交
171
O frame rate de captura pode ser limitado:
L
latreta 已提交
172 173 174 175 176

```bash
scrcpy --max-fps 15
```

N
Natan Junges 已提交
177 178
Isso é oficialmente suportado desde o Android 10, mas pode funcionar em versões anteriores.

L
latreta 已提交
179 180 181 182
#### Cortar

A tela do dispositivo pode ser cortada para espelhar apenas uma parte da tela.

N
Natan Junges 已提交
183
Isso é útil por exemplo, para espelhar apenas um olho do Oculus Go:
L
latreta 已提交
184 185 186 187 188

```bash
scrcpy --crop 1224:1440:0:0   # 1224x1440 no deslocamento (0,0)
```

N
Natan Junges 已提交
189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204
Se `--max-size` também for especificado, o redimensionamento é aplicado após o corte.


#### Travar orientação do vídeo


Para travar a orientação do espelhamento:

```bash
scrcpy --lock-video-orientation 0   # orientação natural
scrcpy --lock-video-orientation 1   # 90° sentido anti-horário
scrcpy --lock-video-orientation 2   # 180°
scrcpy --lock-video-orientation 3   # 90° sentido horário
```

Isso afeta a orientação de gravação.
L
latreta 已提交
205

N
Natan Junges 已提交
206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
A [janela também pode ser rotacionada](#rotação) independentemente.


#### Encoder

Alguns dispositivos têm mais de um encoder, e alguns deles podem causar problemas ou
travar. É possível selecionar um encoder diferente:

```bash
scrcpy --encoder OMX.qcom.video.encoder.avc
```

Para listar os encoders disponíveis, você pode passar um nome de encoder inválido, o
erro dará os encoders disponíveis:

```bash
scrcpy --encoder _
```
L
latreta 已提交
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238

### Gravando

É possível gravar a tela enquanto ocorre o espelhamento:

```bash
scrcpy --record file.mp4
scrcpy -r file.mkv
```

Para desativar o espelhamento durante a gravação:

```bash
scrcpy --no-display --record file.mp4
scrcpy -Nr file.mkv
N
Natan Junges 已提交
239
# interrompa a gravação com Ctrl+C
L
latreta 已提交
240 241
```

N
Natan Junges 已提交
242 243 244
"Frames pulados" são gravados, mesmo que não sejam exibidos em tempo real (por
motivos de performance). Frames têm seu _horário carimbado_ no dispositivo, então [variação de atraso nos
pacotes][packet delay variation] não impacta o arquivo gravado.
L
latreta 已提交
245

N
Natan Junges 已提交
246
[packet delay variation]: https://en.wikipedia.org/wiki/Packet_delay_variation
L
latreta 已提交
247 248 249 250


### Conexão

N
Natan Junges 已提交
251 252 253 254
#### Sem fio

_Scrcpy_ usa `adb` para se comunicar com o dispositivo, e `adb` pode [conectar-se][connect] a um
dispositivo via TCP/IP:
L
latreta 已提交
255

N
Natan Junges 已提交
256 257 258 259 260 261 262
1. Conecte o dispositivo no mesmo Wi-Fi do seu computador.
2. Pegue o endereço IP do seu dispositivo, em Configurações → Sobre o telefone → Status, ou
   executando este comando:

    ```bash
    adb shell ip route | awk '{print $9}'
    ```
L
latreta 已提交
263 264

3. Ative o adb via TCP/IP no seu dispositivo: `adb tcpip 5555`.
N
Natan Junges 已提交
265 266
4. Desconecte seu dispositivo.
5. Conecte-se ao seu dispositivo: `adb connect DEVICE_IP:5555` _(substitua `DEVICE_IP`)_.
L
latreta 已提交
267 268 269 270 271 272
6. Execute `scrcpy` como de costume.

Pode ser útil diminuir o bit-rate e a resolução:

```bash
scrcpy --bit-rate 2M --max-size 800
N
Natan Junges 已提交
273
scrcpy -b2M -m800  # versão curta
L
latreta 已提交
274 275
```

N
Natan Junges 已提交
276
[connect]: https://developer.android.com/studio/command-line/adb.html#wireless
L
latreta 已提交
277 278


N
Natan Junges 已提交
279
#### Múltiplos dispositivos
L
latreta 已提交
280

N
Natan Junges 已提交
281
Se vários dispositivos são listados em `adb devices`, você deve especificar o _serial_:
L
latreta 已提交
282 283 284

```bash
scrcpy --serial 0123456789abcdef
N
Natan Junges 已提交
285
scrcpy -s 0123456789abcdef  # versão curta
L
latreta 已提交
286 287 288 289 290 291
```

Se o dispositivo está conectado via TCP/IP:

```bash
scrcpy --serial 192.168.0.1:5555
N
Natan Junges 已提交
292 293 294 295 296 297 298 299 300 301 302
scrcpy -s 192.168.0.1:5555  # versão curta
```

Você pode iniciar várias instâncias do _scrcpy_ para vários dispositivos.

#### Iniciar automaticamente quando dispositivo é conectado

Você pode usar [AutoAdb]:

```bash
autoadb scrcpy -s '{}'
L
latreta 已提交
303 304
```

N
Natan Junges 已提交
305
[AutoAdb]: https://github.com/rom1v/autoadb
L
latreta 已提交
306

N
Natan Junges 已提交
307
#### Túnel SSH
L
latreta 已提交
308

N
Natan Junges 已提交
309 310 311
Para conectar-se a um dispositivo remoto, é possível conectar um cliente `adb` local a
um servidor `adb` remoto (contanto que eles usem a mesma versão do protocolo
_adb_):
L
latreta 已提交
312 313

```bash
N
Natan Junges 已提交
314
adb kill-server    # encerra o servidor adb local em 5037
L
latreta 已提交
315
ssh -CN -L5037:localhost:5037 -R27183:localhost:27183 your_remote_computer
N
Natan Junges 已提交
316
# mantenha isso aberto
L
latreta 已提交
317 318 319 320 321 322 323 324
```

De outro terminal:

```bash
scrcpy
```

N
Natan Junges 已提交
325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341
Para evitar ativar o encaminhamento de porta remota, você pode forçar uma conexão
de encaminhamento (note o `-L` em vez de `-R`):

```bash
adb kill-server    # encerra o servidor adb local em 5037
ssh -CN -L5037:localhost:5037 -L27183:localhost:27183 your_remote_computer
# mantenha isso aberto
```

De outro terminal:

```bash
scrcpy --force-adb-forward
```


Igual a conexões sem fio, pode ser útil reduzir a qualidade:
L
latreta 已提交
342 343 344 345 346

```
scrcpy -b2M -m800 --max-fps 15
```

N
Natan Junges 已提交
347
### Configuração de janela
L
latreta 已提交
348 349 350

#### Título

N
Natan Junges 已提交
351
Por padrão, o título da janela é o modelo do dispositivo. Isso pode ser mudado:
L
latreta 已提交
352 353 354 355 356 357 358 359 360 361 362 363 364 365 366

```bash
scrcpy --window-title 'Meu dispositivo'
```

#### Posição e tamanho

A posição e tamanho iniciais da janela podem ser especificados:

```bash
scrcpy --window-x 100 --window-y 100 --window-width 800 --window-height 600
```

#### Sem bordas

N
Natan Junges 已提交
367
Para desativar decorações de janela:
L
latreta 已提交
368 369 370 371 372

```bash
scrcpy --window-borderless
```

N
Natan Junges 已提交
373
#### Sempre no topo
L
latreta 已提交
374

N
Natan Junges 已提交
375
Para manter a janela do scrcpy sempre no topo:
L
latreta 已提交
376 377 378 379 380 381 382 383 384 385 386

```bash
scrcpy --always-on-top
```

#### Tela cheia

A aplicação pode ser iniciada diretamente em tela cheia:

```bash
scrcpy --fullscreen
N
Natan Junges 已提交
387
scrcpy -f  # versão curta
L
latreta 已提交
388 389
```

N
Natan Junges 已提交
390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418
Tela cheia pode ser alternada dinamicamente com <kbd>MOD</kbd>+<kbd>f</kbd>.

#### Rotação

A janela pode ser rotacionada:

```bash
scrcpy --rotation 1
```

Valores possíveis são:
 - `0`: sem rotação
 - `1`: 90 graus sentido anti-horário
 - `2`: 180 graus
 - `3`: 90 graus sentido horário

A rotação também pode ser mudada dinamicamente com <kbd>MOD</kbd>+<kbd></kbd>
_(esquerda)_ e <kbd>MOD</kbd>+<kbd></kbd> _(direita)_.

Note que _scrcpy_ controla 3 rotações diferentes:
 - <kbd>MOD</kbd>+<kbd>r</kbd> requisita ao dispositivo para mudar entre retrato
   e paisagem (a aplicação em execução pode se recusar, se ela não suporta a
   orientação requisitada).
 - [`--lock-video-orientation`](#travar-orientação-do-vídeo) muda a orientação de
   espelhamento (a orientação do vídeo enviado pelo dispositivo para o
   computador). Isso afeta a gravação.
 - `--rotation` (ou <kbd>MOD</kbd>+<kbd></kbd>/<kbd>MOD</kbd>+<kbd></kbd>)
   rotaciona apenas o conteúdo da janela. Isso afeta apenas a exibição, não a
   gravação.
L
latreta 已提交
419 420 421 422 423 424


### Outras opções de espelhamento

#### Apenas leitura

N
Natan Junges 已提交
425 426
Para desativar controles (tudo que possa interagir com o dispositivo: teclas de entrada,
eventos de mouse, arrastar e soltar arquivos):
L
latreta 已提交
427 428 429 430 431 432

```bash
scrcpy --no-control
scrcpy -n
```

N
Natan Junges 已提交
433
#### Display
L
latreta 已提交
434

N
Natan Junges 已提交
435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467
Se vários displays estão disponíveis, é possível selecionar o display para
espelhar:

```bash
scrcpy --display 1
```

A lista de IDs dos displays pode ser obtida por:

```
adb shell dumpsys display   # busca "mDisplayId=" na saída
```

O display secundário pode apenas ser controlado se o dispositivo roda pelo menos Android
10 (caso contrário é espelhado como apenas leitura).


#### Permanecer ativo

Para evitar que o dispositivo seja suspenso após um delay quando o dispositivo é conectado:

```bash
scrcpy --stay-awake
scrcpy -w
```

O estado inicial é restaurado quando o scrcpy é fechado.


#### Desligar tela

É possível desligar a tela do dispositivo durante o início do espelhamento com uma
opção de linha de comando:
L
latreta 已提交
468 469 470 471 472 473

```bash
scrcpy --turn-screen-off
scrcpy -S
```

N
Natan Junges 已提交
474 475 476 477 478 479 480 481
Ou apertando <kbd>MOD</kbd>+<kbd>o</kbd> a qualquer momento.

Para ligar novamente, pressione <kbd>MOD</kbd>+<kbd>Shift</kbd>+<kbd>o</kbd>.

No Android, o botão de `POWER` sempre liga a tela. Por conveniência, se
`POWER` é enviado via scrcpy (via clique-direito ou <kbd>MOD</kbd>+<kbd>p</kbd>), ele
forçará a desligar a tela após um delay pequeno (numa base de melhor esforço).
O botão `POWER` físico ainda causará a tela ser ligada.
L
latreta 已提交
482

N
Natan Junges 已提交
483
Também pode ser útil evitar que o dispositivo seja suspenso:
L
latreta 已提交
484

N
Natan Junges 已提交
485 486 487 488 489 490 491
```bash
scrcpy --turn-screen-off --stay-awake
scrcpy -Sw
```


#### Renderizar frames expirados
L
latreta 已提交
492

N
Natan Junges 已提交
493 494
Por padrão, para minimizar a latência, _scrcpy_ sempre renderiza o último frame decodificado
disponível, e descarta o anterior.
L
latreta 已提交
495

N
Natan Junges 已提交
496 497
Para forçar a renderização de todos os frames (com o custo de um possível aumento de
latência), use:
L
latreta 已提交
498 499 500 501 502 503 504

```bash
scrcpy --render-expired-frames
```

#### Mostrar toques

N
Natan Junges 已提交
505 506
Para apresentações, pode ser útil mostrar toques físicos (no dispositivo
físico).
L
latreta 已提交
507

N
Natan Junges 已提交
508
Android fornece esta funcionalidade nas _Opções do desenvolvedor_.
L
latreta 已提交
509

N
Natan Junges 已提交
510 511
_Scrcpy_ fornece esta opção de ativar esta funcionalidade no início e restaurar o
valor inicial no encerramento:
L
latreta 已提交
512 513 514 515 516 517 518 519 520

```bash
scrcpy --show-touches
scrcpy -t
```

Note que isto mostra apenas toques _físicos_ (com o dedo no dispositivo).


N
Natan Junges 已提交
521 522 523 524 525 526 527 528 529 530 531
#### Desativar descanso de tela

Por padrão, scrcpy não evita que o descanso de tela rode no computador.

Para desativá-lo:

```bash
scrcpy --disable-screensaver
```


L
latreta 已提交
532 533 534 535
### Controle de entrada

#### Rotacionar a tela do dispositivo

N
Natan Junges 已提交
536 537 538 539 540 541 542 543 544 545
Pressione <kbd>MOD</kbd>+<kbd>r</kbd> para mudar entre os modos retrato e
paisagem.

Note que só será rotacionado se a aplicação em primeiro plano suportar a
orientação requisitada.

#### Copiar-colar

Sempre que a área de transferência do Android muda, é automaticamente sincronizada com a
área de transferência do computador.
L
latreta 已提交
546

N
Natan Junges 已提交
547 548 549 550 551
Qualquer atalho com <kbd>Ctrl</kbd> é encaminhado para o dispositivo. Em particular:
 - <kbd>Ctrl</kbd>+<kbd>c</kbd> tipicamente copia
 - <kbd>Ctrl</kbd>+<kbd>x</kbd> tipicamente recorta
 - <kbd>Ctrl</kbd>+<kbd>v</kbd> tipicamente cola (após a sincronização de área de transferência
   computador-para-dispositivo)
L
latreta 已提交
552

N
Natan Junges 已提交
553
Isso tipicamente funciona como esperado.
L
latreta 已提交
554

N
Natan Junges 已提交
555 556 557
O comportamento de fato depende da aplicação ativa, no entanto. Por exemplo,
_Termux_ envia SIGINT com <kbd>Ctrl</kbd>+<kbd>c</kbd>, e _K-9 Mail_
compõe uma nova mensagem.
L
latreta 已提交
558

N
Natan Junges 已提交
559 560 561 562 563
Para copiar, recortar e colar em tais casos (mas apenas suportado no Android >= 7):
 - <kbd>MOD</kbd>+<kbd>c</kbd> injeta `COPY`
 - <kbd>MOD</kbd>+<kbd>x</kbd> injeta `CUT`
 - <kbd>MOD</kbd>+<kbd>v</kbd> injeta `PASTE` (após a sincronização de área de transferência
   computador-para-dispositivo)
L
latreta 已提交
564

N
Natan Junges 已提交
565 566 567 568
Em adição, <kbd>MOD</kbd>+<kbd>Shift</kbd>+<kbd>v</kbd> permite injetar o
texto da área de transferência do computador como uma sequência de eventos de tecla. Isso é útil quando o
componente não aceita colar texto (por exemplo no _Termux_), mas pode
quebrar conteúdo não-ASCII.
L
latreta 已提交
569

N
Natan Junges 已提交
570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597
**ADVERTÊNCIA:** Colar a área de transferência do computador para o dispositivo (tanto via
<kbd>Ctrl</kbd>+<kbd>v</kbd> quanto <kbd>MOD</kbd>+<kbd>v</kbd>) copia o conteúdo
para a área de transferência do dispositivo. Como consequência, qualquer aplicação Android pode ler
o seu conteúdo. Você deve evitar colar conteúdo sensível (como senhas) dessa
forma.

Alguns dispositivos não se comportam como esperado quando a área de transferência é definida
programaticamente. Uma opção `--legacy-paste` é fornecida para mudar o comportamento
de <kbd>Ctrl</kbd>+<kbd>v</kbd> e <kbd>MOD</kbd>+<kbd>v</kbd> para que eles
também injetem o texto da área de transferência do computador como uma sequência de eventos de tecla (da mesma
forma que <kbd>MOD</kbd>+<kbd>Shift</kbd>+<kbd>v</kbd>).

#### Pinçar para dar zoom

Para simular "pinçar para dar zoom": <kbd>Ctrl</kbd>+_clicar-e-mover_.

Mais precisamente, segure <kbd>Ctrl</kbd> enquanto pressiona o botão de clique-esquerdo. Até que
o botão de clique-esquerdo seja liberado, todos os movimentos do mouse ampliar e rotacionam o
conteúdo (se suportado pelo app) relativo ao centro da tela.

Concretamente, scrcpy gera eventos adicionais de toque de um "dedo virtual" em
uma posição invertida em relação ao centro da tela.


#### Preferência de injeção de texto

Existem dois tipos de [eventos][textevents] gerados ao digitar um texto:
 - _eventos de tecla_, sinalizando que a tecla foi pressionada ou solta;
L
latreta 已提交
598 599
 - _eventos de texto_, sinalizando que o texto foi inserido.

N
Natan Junges 已提交
600 601
Por padrão, letras são injetadas usando eventos de tecla, assim o teclado comporta-se
como esperado em jogos (normalmente para teclas WASD).
L
latreta 已提交
602

N
Natan Junges 已提交
603 604
Mas isso pode [causar problemas][prefertext]. Se você encontrar tal problema, você
pode evitá-lo com:
L
latreta 已提交
605 606 607 608 609

```bash
scrcpy --prefer-text
```

N
Natan Junges 已提交
610
(mas isso vai quebrar o comportamento do teclado em jogos)
L
latreta 已提交
611 612 613 614 615

[textevents]: https://blog.rom1v.com/2018/03/introducing-scrcpy/#handle-text-input
[prefertext]: https://github.com/Genymobile/scrcpy/issues/650#issuecomment-512945343


N
Natan Junges 已提交
616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638
#### Repetir tecla

Por padrão, segurar uma tecla gera eventos de tecla repetidos. Isso pode causar
problemas de performance em alguns jogos, onde esses eventos são inúteis de qualquer forma.

Para evitar o encaminhamento eventos de tecla repetidos:

```bash
scrcpy --no-key-repeat
```


#### Clique-direito e clique-do-meio

Por padrão, clique-direito dispara BACK (ou POWER) e clique-do-meio dispara
HOME. Para desabilitar esses atalhos e encaminhar os cliques para o dispositivo:

```bash
scrcpy --forward-all-clicks
```


### Soltar arquivo
L
latreta 已提交
639 640 641

#### Instalar APK

N
Natan Junges 已提交
642 643
Para instalar um APK, arraste e solte o arquivo APK (com extensão `.apk`) na janela
_scrcpy_.
L
latreta 已提交
644 645 646 647

Não existe feedback visual, um log é imprimido no console.


N
Natan Junges 已提交
648
#### Enviar arquivo para dispositivo
L
latreta 已提交
649

N
Natan Junges 已提交
650 651
Para enviar um arquivo para `/sdcard/` no dispositivo, arraste e solte um arquivo (não-APK) para a
janela do _scrcpy_.
L
latreta 已提交
652 653 654 655 656 657 658 659 660 661 662 663

Não existe feedback visual, um log é imprimido no console.

O diretório alvo pode ser mudado ao iniciar:

```bash
scrcpy --push-target /sdcard/foo/bar/
```


### Encaminhamento de áudio

N
Natan Junges 已提交
664
Áudio não é encaminhado pelo _scrcpy_. Use [sndcpy].
L
latreta 已提交
665 666 667

Também veja [issue #14].

N
Natan Junges 已提交
668
[sndcpy]: https://github.com/rom1v/sndcpy
L
latreta 已提交
669 670 671 672 673
[issue #14]: https://github.com/Genymobile/scrcpy/issues/14


## Atalhos

N
Natan Junges 已提交
674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717
Na lista a seguir, <kbd>MOD</kbd> é o modificador de atalho. Por padrão, é
<kbd>Alt</kbd> (esquerdo) ou <kbd>Super</kbd> (esquerdo).

Ele pode ser mudado usando `--shortcut-mod`. Possíveis teclas são `lctrl`, `rctrl`,
`lalt`, `ralt`, `lsuper` e `rsuper`. Por exemplo:

```bash
# usar RCtrl para atalhos
scrcpy --shortcut-mod=rctrl

# usar tanto LCtrl+LAlt quanto LSuper para atalhos
scrcpy --shortcut-mod=lctrl+lalt,lsuper
```

_<kbd>[Super]</kbd> é tipicamente a tecla <kbd>Windows</kbd> ou <kbd>Cmd</kbd>._

[Super]: https://en.wikipedia.org/wiki/Super_key_(keyboard_button)

 | Ação                                        |   Atalho
 | ------------------------------------------- |:-----------------------------
 | Mudar modo de tela cheia                    | <kbd>MOD</kbd>+<kbd>f</kbd>
 | Rotacionar display para esquerda            | <kbd>MOD</kbd>+<kbd></kbd> _(esquerda)_
 | Rotacionar display para direita             | <kbd>MOD</kbd>+<kbd></kbd> _(direita)_
 | Redimensionar janela para 1:1 (pixel-perfect) | <kbd>MOD</kbd>+<kbd>g</kbd>
 | Redimensionar janela para remover bordas pretas | <kbd>MOD</kbd>+<kbd>w</kbd> \| _Clique-duplo¹_
 | Clicar em `HOME`                            | <kbd>MOD</kbd>+<kbd>h</kbd> \| _Clique-do-meio_
 | Clicar em `BACK`                            | <kbd>MOD</kbd>+<kbd>b</kbd> \| _Clique-direito²_
 | Clicar em `APP_SWITCH`                      | <kbd>MOD</kbd>+<kbd>s</kbd>
 | Clicar em `MENU` (desbloquear tela          | <kbd>MOD</kbd>+<kbd>m</kbd>
 | Clicar em `VOLUME_UP`                       | <kbd>MOD</kbd>+<kbd></kbd> _(cima)_
 | Clicar em `VOLUME_DOWN`                     | <kbd>MOD</kbd>+<kbd></kbd> _(baixo)_
 | Clicar em `POWER`                           | <kbd>MOD</kbd>+<kbd>p</kbd>
 | Ligar                                       | _Clique-direito²_
 | Desligar tela do dispositivo (continuar espelhando) | <kbd>MOD</kbd>+<kbd>o</kbd>
 | Ligar tela do dispositivo                   | <kbd>MOD</kbd>+<kbd>Shift</kbd>+<kbd>o</kbd>
 | Rotacionar tela do dispositivo              | <kbd>MOD</kbd>+<kbd>r</kbd>
 | Expandir painel de notificação              | <kbd>MOD</kbd>+<kbd>n</kbd>
 | Colapsar painel de notificação              | <kbd>MOD</kbd>+<kbd>Shift</kbd>+<kbd>n</kbd>
 | Copiar para área de transferência³          | <kbd>MOD</kbd>+<kbd>c</kbd>
 | Recortar para área de transferência³        | <kbd>MOD</kbd>+<kbd>x</kbd>
 | Sincronizar áreas de transferência e colar³ | <kbd>MOD</kbd>+<kbd>v</kbd>
 | Injetar texto da área de transferência do computador | <kbd>MOD</kbd>+<kbd>Shift</kbd>+<kbd>v</kbd>
 | Ativar/desativar contador de FPS (em stdout) | <kbd>MOD</kbd>+<kbd>i</kbd>
 | Pinçar para dar zoom                        | <kbd>Ctrl</kbd>+_clicar-e-mover_
L
latreta 已提交
718 719

_¹Clique-duplo em bordas pretas para removê-las._  
N
Natan Junges 已提交
720 721 722 723 724
_²Clique-direito liga a tela se ela estiver desligada, pressiona BACK caso contrário._
_³Apenas em Android >= 7._

Todos os atalhos <kbd>Ctrl</kbd>+_tecla_ são encaminhados para o dispositivo, para que eles sejam
tratados pela aplicação ativa.
L
latreta 已提交
725 726 727 728


## Caminhos personalizados

N
Natan Junges 已提交
729 730
Para usar um binário _adb_ específico, configure seu caminho na variável de ambiente
`ADB`:
L
latreta 已提交
731 732 733 734 735 736 737 738 739 740 741

    ADB=/caminho/para/adb scrcpy

Para sobrepor o caminho do arquivo `scrcpy-server`, configure seu caminho em
`SCRCPY_SERVER_PATH`.

[useful]: https://github.com/Genymobile/scrcpy/issues/278#issuecomment-429330345


## Por quê _scrcpy_?

N
Natan Junges 已提交
742
Um colega me desafiou a encontrar um nome tão impronunciável quanto [gnirehtet].
L
latreta 已提交
743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758

[`strcpy`] copia uma **str**ing; `scrcpy` copia uma **scr**een.

[gnirehtet]: https://github.com/Genymobile/gnirehtet
[`strcpy`]: http://man7.org/linux/man-pages/man3/strcpy.3.html


## Como compilar?

Veja [BUILD].

[BUILD]: BUILD.md


## Problemas comuns

N
Natan Junges 已提交
759
Veja o [FAQ](FAQ.md).
L
latreta 已提交
760 761 762 763


## Desenvolvedores

N
Natan Junges 已提交
764
Leia a [página dos desenvolvedores][developers page].
L
latreta 已提交
765 766 767 768 769 770 771

[developers page]: DEVELOP.md


## Licença

    Copyright (C) 2018 Genymobile
R
Romain Vimont 已提交
772
    Copyright (C) 2018-2021 Romain Vimont
L
latreta 已提交
773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

## Artigos

- [Introducing scrcpy][article-intro]
- [Scrcpy now works wirelessly][article-tcpip]

[article-intro]: https://blog.rom1v.com/2018/03/introducing-scrcpy/
[article-tcpip]: https://www.genymotion.com/blog/open-source-project-scrcpy-now-works-wirelessly/