Yakuake (Русский)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Состояние перевода: На этой странице представлен перевод статьи Yakuake. Дата последней синхронизации: 20 декабря 2020. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Yakuake (англ.) — выпадающий сверху эмулятор терминала для KDE в стиле Guake для GNOME, Tilda (англ.) или консоли в игре Quake.

Установка

Установите пакет yakuake.

Использование

После установки можно запустить Yakuake следующей командой:

$ yakuake

Теперь можно настроить Yakuake, нажав на кнопку Открыть меню (средняя кнопка в правом нижнем углу окна терминала) и выбрав Комбинации клавиш для изменения сочетания клавиш для показа/скрытия терминала. По умолчанию используется клавиша F12.

Управление Yakuake из скрипта

Как и Guake, Yakuake позволяет контролировать себя во время исполнения посредством передачи сигналов через D-Bus. Таким образом, его можно использовать в сеансе, определяемом пользователем (user defined session). Возможно создавать вкладки, задавать им названия, запрашивать запуск конкретной команды в любой открытой вкладке или просто показывать/скрывать окно Yakuake, вручную в терминале или создав для этого отдельный скрипт.

Ниже приведён пример такого скрипта. Он включает в себя открытие и переименование вкладок, разделение окна терминала и запуск команд.

#!/bin/bash
# Запуск Yakuake с настройками пользователя. Информация основана на https://forums.gentoo.org/viewtopic-t-873915-start-0.html
# Добавление сессий с предыдущего сайта больше не работает, используйте этот: http://pawelkoston.pl/blog/sublime-text-3-cheatsheet-modules-web-develpment/

# Данная строка нужна в случае, если Yakuake не воспринимает ввод через fcitx.
/usr/bin/yakuake --im /usr/bin/fcitx --inputstyle onthespot &

# Это даёт Yakuake несколько секунд перед отправкой сигналов D-Bus.
sleep 2      
                                                 
# Запуск htop в отдельной вкладке, разделение терминала и запуск iotop.                                                        
TERMINAL_ID_0=$(qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.terminalIdsForSessionId 0)
qdbus org.kde.yakuake /yakuake/tabs setTabTitle 0 "user"
qdbus org.kde.yakuake /yakuake/sessions runCommandInTerminal 0 "htop"
qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.splitTerminalLeftRight "$TERMINAL_ID_0"
qdbus org.kde.yakuake /yakuake/sessions runCommandInTerminal 1 "iotop

# Запуск нескольких сессий root-пользователя в одной вкладке (сверху и снизу).                                                                                
SESSION_ID_1=$(qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.addSession)
TERMINAL_ID_1=$(qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.terminalIdsForSessionId "$SESSION_ID_1")
qdbus org.kde.yakuake /yakuake/tabs setTabTitle 1 "root"
qdbus org.kde.yakuake /yakuake/sessions runCommandInTerminal 2 "su"
qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.splitTerminalTopBottom "$TERMINAL_ID_1"
qdbus org.kde.yakuake /yakuake/sessions runCommandInTerminal 3 "su" 

# Запуск irssi в отдельной вкладке.                                                                                          
qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.addSession
qdbus org.kde.yakuake /yakuake/tabs setTabTitle 2 "irssi"
qdbus org.kde.yakuake /yakuake/sessions runCommandInTerminal 4 "ssh home -t 'tmux attach -t irssi; bash -l'" 

# Запуск нескольких терминалов SSH в одной вкладке.                                                                                   
SESSION_ID_2=$(qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.addSession)
TERMINAL_ID_2=$(qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.terminalIdsForSessionId "$SESSION_ID_2")
qdbus org.kde.yakuake /yakuake/tabs setTabTitle 3 "work server"
qdbus org.kde.yakuake /yakuake/sessions runCommandInTerminal 5 "ssh work"
qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.splitTerminalLeftRight "$TERMINAL_ID_2"
qdbus org.kde.yakuake /yakuake/sessions runCommandInTerminal 6 "ssh work"

dbus-send вместо qdbus

Можно заменить qdbus из состава Qt более традиционной утилитой dbus-send. Например, чтобы показать/скрыть окно Yakuake:

$ dbus-send --type=method_call --dest=org.kde.yakuake /yakuake/window org.kde.yakuake.toggleWindowState

Смотрите также