Add shortcuts for COPY and CUT
Send COPY and CUT on MOD+c and MOD+x (only supported for Android >= 7). The shortcuts Ctrl+c and Ctrl+x should generally also work (even before Android 7), but the active Android app may use them for other actions instead.
This commit is contained in:
parent
8f64a5984b
commit
56a115b5c5
4 changed files with 38 additions and 1 deletions
|
@ -608,12 +608,15 @@ _[Super] is typically the "Windows" or "Cmd" key._
|
|||
| Rotate device screen | `MOD`+`r`
|
||||
| Expand notification panel | `MOD`+`n`
|
||||
| Collapse notification panel | `MOD`+`Shift`+`n`
|
||||
| Copy to clipboard³ | `MOD`+`c`
|
||||
| Cut to clipboard³ | `MOD`+`x`
|
||||
| Paste computer clipboard to device | `MOD`+`v`
|
||||
| Copy computer clipboard to device and paste | `MOD`+`Shift`+`v`
|
||||
| Enable/disable FPS counter (on stdout) | `MOD`+`i`
|
||||
|
||||
_¹Double-click on black borders to remove them._
|
||||
_²Right-click turns the screen on if it was off, presses BACK otherwise._
|
||||
_²Right-click turns the screen on if it was off, presses BACK otherwise._
|
||||
_³Only on Android >= 7._
|
||||
|
||||
|
||||
## Custom paths
|
||||
|
|
|
@ -292,6 +292,14 @@ Expand notification panel
|
|||
.B MOD+Shift+n
|
||||
Collapse notification panel
|
||||
|
||||
.TP
|
||||
.B Mod+c
|
||||
Copy to clipboard (inject COPY keycode, Android >= 7 only)
|
||||
|
||||
.TP
|
||||
.B Mod+x
|
||||
Cut to clipboard (inject CUT keycode, Android >= 7 only)
|
||||
|
||||
.TP
|
||||
.B MOD+v
|
||||
Paste computer clipboard to device
|
||||
|
|
|
@ -260,6 +260,12 @@ scrcpy_print_usage(const char *arg0) {
|
|||
" MOD+Shift+n\n"
|
||||
" Collapse notification panel\n"
|
||||
"\n"
|
||||
" MOD+c\n"
|
||||
" Copy to clipboard (inject COPY keycode, Android >= 7 only)\n"
|
||||
"\n"
|
||||
" MOD+x\n"
|
||||
" Cut to clipboard (inject CUT keycode, Android >= 7 only)\n"
|
||||
"\n"
|
||||
" MOD+v\n"
|
||||
" Paste computer clipboard to device\n"
|
||||
"\n"
|
||||
|
|
|
@ -129,6 +129,16 @@ action_menu(struct controller *controller, int actions) {
|
|||
send_keycode(controller, AKEYCODE_MENU, actions, "MENU");
|
||||
}
|
||||
|
||||
static inline void
|
||||
action_copy(struct controller *controller, int actions) {
|
||||
send_keycode(controller, AKEYCODE_COPY, actions, "COPY");
|
||||
}
|
||||
|
||||
static inline void
|
||||
action_cut(struct controller *controller, int actions) {
|
||||
send_keycode(controller, AKEYCODE_CUT, actions, "CUT");
|
||||
}
|
||||
|
||||
// turn the screen on if it was off, press BACK otherwise
|
||||
static void
|
||||
press_back_or_turn_screen_on(struct controller *controller) {
|
||||
|
@ -382,6 +392,16 @@ input_manager_process_key(struct input_manager *im,
|
|||
rotate_client_right(im->screen);
|
||||
}
|
||||
return;
|
||||
case SDLK_c:
|
||||
if (control && !shift && !repeat) {
|
||||
action_copy(controller, action);
|
||||
}
|
||||
return;
|
||||
case SDLK_x:
|
||||
if (control && !shift && !repeat) {
|
||||
action_cut(controller, action);
|
||||
}
|
||||
return;
|
||||
case SDLK_v:
|
||||
if (control && !repeat && down) {
|
||||
if (shift) {
|
||||
|
|
Loading…
Reference in a new issue