Shortcuts

You can change them in the settings. Some key sequences may not be available due to OS limitations.

Wayland does not support global shortcuts registration, but you can use D-Bus to bind actions in the system settings. For desktop environments that support additional applications actions (KDE, for example) you will see them predefined in the system shortcut settings. You can also use them for X11 sessions, but you need to disable global shortcuts registration in the application settings to avoid conflicts.

Global

Key Description
Ctrl + Alt + E Translate selected text
Ctrl + Alt + S Speak selected text
Ctrl + Alt + F Speak translation of selected text
Ctrl + Alt + G Stop speaking
Ctrl + Alt + C Show main window
Ctrl + Alt + O Translate text in screen area

In main window

Key Description
Ctrl + Return Translate
Ctrl + R Swap languages
Ctrl + Q Close window
Ctrl + S Speak source / pause text speaking
Ctrl + Shift + S Speak translation / pause text speaking
Ctrl + Shift + C Copy translation to clipboard

D-Bus API

io.crow_translate.CrowTranslate
└── /io/crow_translate/CrowTranslate/MainWindow
    |   # Global shortcuts
    ├── method void io.crow_translate.CrowTranslate.MainWindow.translateSelection();
    ├── method void io.crow_translate.CrowTranslate.MainWindow.speakSelection();
    ├── method void io.crow_translate.CrowTranslate.MainWindow.speakTranslatedSelection();
    ├── method void io.crow_translate.CrowTranslate.MainWindow.stopSpeaking();
    ├── method void io.crow_translate.CrowTranslate.MainWindow.open();
    ├── method void io.crow_translate.CrowTranslate.MainWindow.copyTranslatedSelection();
    ├── method void io.crow_translate.CrowTranslate.MainWindow.translateScreenArea();
    |   # Main window shortcuts
    ├── method void io.crow_translate.CrowTranslate.MainWindow.clearText();
    ├── method void io.crow_translate.CrowTranslate.MainWindow.abortTranslation();
    ├── method void io.crow_translate.CrowTranslate.MainWindow.swapLanguages();
    ├── method void io.crow_translate.CrowTranslate.MainWindow.openSettings();
    ├── method void io.crow_translate.CrowTranslate.MainWindow.setAutoTranslateEnabled(bool enabled);
    ├── method void io.crow_translate.CrowTranslate.MainWindow.copySourceText();
    ├── method void io.crow_translate.CrowTranslate.MainWindow.copyTranslation();
    ├── method void io.crow_translate.CrowTranslate.MainWindow.copyAllTranslationInfo();
    └── method void io.crow_translate.CrowTranslate.MainWindow.quit();

For example, you can show main window using dbus-send:

dbus-send --type=method_call --dest=io.crow_translate.CrowTranslate /io/crow_translate/CrowTranslate/MainWindow io.crow_translate.CrowTranslate.MainWindow.open

Or via qdbus:

qdbus io.crow_translate.CrowTranslate /io/crow_translate/CrowTranslate/MainWindow io.crow_translate.CrowTranslate.MainWindow.open
# or shorter
qdbus io.crow_translate.CrowTranslate /io/crow_translate/CrowTranslate/MainWindow open