如何在任务栏上创建一个按钮,其中包含时间和执行特定任务的内容?我希望能够借助键盘快捷键禁用和启用键盘,但我意识到一旦使用快捷键禁用键盘,我就无法使用键盘再次启用它。因此,我希望在任务栏上有一个按钮,只需单击按钮即可完成此操作,因此不需要使用键盘。
谢谢。
答案1
这可以通过创建 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"
]
}
完成两个文件的复制粘贴后,使用 Alt+F2 r Enter 方法刷新 gnome-shell,或者注销并登录。
然后要启用扩展,请运行以下命令。
gnome-extensions enable KBD
再次使用 Alt+F2 r Enter 方法刷新 gnome-shell 或者注销并登录。
现在您将看到右上角的键盘按钮。当您单击它时,它会运行您准备的脚本。
请注意,扩展程序在屏幕锁定时被禁用,在解锁后启用。因此您无法在锁定屏幕上单击此按钮。
答案2
一个非常优雅的解决方案已经提供这个答案UnKNOWn 的方法,但技术性较强。为了完整性,我想添加一种更直接的方法,即使用桌面启动器,但在这个特定情况下,我会选择 UnKNOWn 的方法。
您可以随时创建运行命令或脚本的自定义桌面启动器。放置在适当的位置后,它将出现在应用程序概览中,您可以从那里将其固定到仪表板上。在 Ubuntu 中,您还可以将其放置在桌面上,以便从那里启动它。
桌面启动器是一个带有扩展名的文本文件.desktop
,采用特定格式。如果您将其放在文件夹中.local/share/applications
,它将在应用程序概览中被选中。
因此,您可以创建文件~/.local/share/applications/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;
答案3
这是一个有点核建议,但其他可选桌面,如 MATE 或 Metacity(可能还有其他),仍然通过鼠标单击面板提供“创建自定义启动器”选项。