Как мне создать кнопку на моей панели задач вместе со временем и прочим, которая выполняет определенную задачу? Я хотел иметь возможность отключать и включать свою клавиатуру с помощью сочетания клавиш, но я понял, что как только я отключу свою клавиатуру с помощью сочетания клавиш, я не смогу использовать клавиатуру, чтобы снова включить ее. Итак, мне нужна кнопка на моей панели задач, которая делает это за меня одним нажатием кнопки, не требуя клавиатуры.
Спасибо.
это может быть достигнуто путем создания gnome-shell-extension.
Проверено в gnome-shell --version 3.38.1
Выполните следующие команды одну за другой для создания необходимых файлов.
mkdir -p $HOME/.local/share/gnome-shell/extensions/KBD
touch $HOME/.local/share/gnome-shell/extensions/KBD/extension.js
touch $HOME/.local/share/gnome-shell/extensions/KBD/metadata.json
extension.js
содержимое файла, скопируйте и вставьте в созданный выше файл extension.js
.
Обратите внимание на 11-ю строку Util.spawnCommandLine ("bash /home/admin/mykbd.sh")
замените /home/admin/mykbd.sh
на путь вашего скрипта, который переключает вы ищете содержимое файла.
'use strict';
const St = imports.gi.St;
const Main = imports.ui.main;
const Util = imports.misc.util;
let button;
function _myKBD () {
Util.spawnCommandLine("bash /home/admin/mykbd.sh")
}
function init() {
button = new St.Bin({ style_class: 'panel-button',
reactive: true,
can_focus: true,
track_hover: true });
let icon = new St.Icon ({ icon_name: 'input-keyboard-symbolic',
style_class: 'system-status-icon' });
button.set_child(icon);
button.connect('button-press-event', _myKBD);
}
function enable() {
Main.panel._rightBox.insert_child_at_index(button, 0);
}
function disable() {
Main.panel._rightBox.remove_child(button);
}
metadata.json
, скопируйте и вставьте в созданный выше файл metadata.json
.
{
"name": "KBD",
"description": "KBD",
"uuid": "KBD",
"shell-version": [
"3.36"
]
}
как только вы закончите копирование и вставку в два файла. Обновите оболочку gnome с помощью Alt + F2 r Введите метод или выйдите из системы и войдите.
Затем, чтобы включить расширение, выполните команду ниже.
gnome-extensions enable KBD
Снова Обновите оболочку gnome с помощью Alt + F2 r Введите метод или выйдите из системы и войдите в систему .
Теперь вы увидите кнопку клавиатуры в правом верхнем углу. при нажатии на нее запускается подготовленный вами сценарий.
Обратите внимание, что расширения отключаются, когда экран заблокирован, и включаются после разблокировки. Таким образом, вы не сможете нажать эту кнопку на экране блокировки.
Немного ядерное предложение, но другие дополнительные рабочие столы, такие как MATE или Metacity (и, возможно, другие), по-прежнему предлагают опцию «Создать настраиваемую программу запуска» через щелкните мышью на панели.
Очень элегантное решение было предоставлено в этом ответе UnKNOWn, но оно довольно техническое. Для полноты картины я хотел бы добавить более простой метод с использованием настольных пусковых установок, но в данном конкретном случае я бы выбрал подход UnKNOWn.
Вы можете в любое время создать собственную настольную пусковую установку, которая запускает вашу команду или скрипт. . Размещенный в соответствующем месте, он появится в обзоре приложений, откуда вы сможете закрепить его на панели. В Ubuntu вы также можете разместить его на рабочем столе, чтобы запускать его оттуда.
Средство запуска рабочего стола - это текстовый файл с расширением .desktop
,отформатированы определенным образом. Если вы поместите его в папку .local / share / applications
, он будет обнаружен в обзоре приложения.
Таким образом, вы можете создать файл ~ / .local / share / application / toggle-keyboard.desktop
, чтобы запустить сценарий. Содержимое должно выглядеть так:
[Desktop Entry]
Name=Toggle Keyboard
Comment=Toggle keyboard on or off
Exec=<name or path to your script>
Terminal=false
Type=Application
Icon=<name or path to the icon >
Categories=Utility;