系统托盘图标今天仍然是一个神奇的功能。只需右键单击图标并选择所需的操作,即可大大简化您的生活并减少日常活动中无用的点击量。
当谈到有用的系统托盘图标时,很容易想到Skype,Dropbox和VLC:
但是,系统托盘图标实际上更有用;您可以创建自己的系统托盘图标以满足您的需求。本指南将通过几个简单的步骤教您如何执行此操作。
前提
我们将在Python中实现自定义系统托盘指示器。 Python可能已经在所有主要Linux发行版中静默安装,因此您只需要确保它已安装(此处使用的版本为2.7)。另外,我们还需要安装gir1.2-appindicator3包。该库可以轻松创建系统图标指示器。
在Ubuntu/Mint/Debian上安装:
Sudo apt-get install gir1.2-appindicator3
在Fedora上安装:
Sudo dnf安装libappindicator-gtk3
对于其他发行版,您只需要搜索包含“appindicator”的包。
从GNOME Shell 3.26开始,删除了系统托盘图标。您需要安装此扩展程序(或其他扩展程序)才能为您的桌面启用此功能。否则您将无法看到我们创建的指标。
基本代码
以下是此指标的基本代码:
#!的/usr/bin中/蟒蛇
导入os
从gi.repository导入Gtk作为gtk,AppIndicator3作为appindicatorDef main():
Indicator=appindicator.Indicator.new('customtray','semi-starred-symbolic',appindicator.IndicatorCategory.APPLICATION_STATUS)
Indicator.set_status(appindicator.IndicatorStatus.ACTIVE)
Indicator.set_menu(菜单())
Gtk.main()
Def菜单():
Menu=gtk.Menu()
Command_one=gtk.MenuItem('我的笔记')
Command_one.connect('激活',注意)
Menu.append(command_one)
Exittray=gtk.MenuItem('退出托盘')
Exittray.connect('激活',退出)
Menu.append(exittray)
Menu.show_all()
返回菜单
Def note(_):
Os.system('gedit $ HOME/Documents/notes.txt')
Def退出(_):
Gtk.main_quit()
如果__name__=='__ main__':
主要()
稍后我们将解释代码的工作原理。但是现在,让我们将文本保存为tray.py并在Python中运行它:
Python tray.py
我们将看到指标正在运行,如下所示:
在Linux上为您的任务创建自定义系统托盘指示器
在Linux上为您的任务创建自定义系统托盘指示器
现在让我们解释一下这个魔法的原理:
前三行代码仅用于指示Python的路径并导入所需的库。
Def main():这是指标的主要功能。此函数的代码用于初始化和创建指标。Indicator=appindicator.Indicator.new('customtray','semi-starred-symbolic',appindicator.IndicatorCategory.APPLICATION_STATUS):这里我们指出创建一个名为customtray的新指标。这是指标的唯一名称,因此系统不会与其他运行指标混淆。同时,我们使用名为semi-starred-symbolic的图标作为指标的默认图标。您可以将其更改为任何其他值;例如,firefox(如果您希望指示器使用FireFox的图标),或您要使用的任何其他图标名称。与APPLICATION_STATUS相关的最后一部分是指示指标类别/范围的通用代码。
Indicator.set_status(appindicator.IndicatorStatus.ACTIVE):此行激活指标。
Indicator.set_menu(menu()):这里我们将使用menu()函数(稍后我们将定义)为我们的指标创建菜单项。这很重要,您可以右键单击指标并查看可以实施的操作列表。
Gtk.main():运行GTK主循环。
在menu()中,我们定义指标想要提供的行为或项目。 Command_one=gtk.MenuItem('我的笔记')只使用文本“我的笔记”初始化第一个菜单项,然后command_one.connect('activate',note)将激活菜单,后面定义了note()。功能已连接;换句话说,我们告诉我们的系统:“当单击菜单项时,运行note()函数。”最后,menu.append(command_one)将菜单项添加到列表中。
与exittray相关的行是创建一个退出菜单项,以便您可以在需要时关闭指示器。
Menu.show_all()和返回菜单只是将菜单项返回到指标的常规代码。
下面的注释(_)是单击“我的注释”菜单项时需要执行的代码。这里只是os.system('gedit $ HOME/Documents/notes.txt')语句; os.system函数允许你在Python中运行shell命令,所以在这里我们编写一行命令来使用gedit打开文档下的主目录。目录中有一个名为notes.txt的文件。例如,这可以称为您未来的日常记笔记计划!添加您需要的任务
您只需修改代码中的两个位置:
在菜单中定义所需任务的新菜单项()。
单击菜单项时,创建一个新功能以执行特定操作。
因此,例如,如果要创建新的菜单项,在单击它之后,您是否会使用VLC在硬盘上播放特定的视频/音频文件?为此,只需在第17行添加以下三行:
Command_two=gtk.MenuItem('播放视频/音频')
Command_two.connect('激活',播放)
Menu.append(command_two)
然后在第30行添加以下内容:
Def play(_):
Os.system('vlc /home//Videos/somevideo.mp4')
将/video //Videos/somevideo.mp4`替换为您要播放的视频/音频文件路径。现在保存文件并再次运行指标:
Python tray.py
你会看见:
在Linux上为您的任务创建自定义系统托盘指示器
在Linux上为您的任务创建自定义系统托盘指示器
当您点击新创建的菜单项时,VLC将开始播放!
要创建其他项目/任务,只需重复上述步骤即可。但要小心,您需要将command_two替换为其他命令,例如command_three,因此变量之间不存在冲突。然后定义一个新函数,就像play(_)函数一样。
可能性是无止境;例如,我使用此方法从Web获取数据(使用urllib2库)并显示它。我还使用它在后台使用mpg123命令播放mp3文件,我还定义了另一个菜单项到killall mpg123以随时停止播放音频。例如,Steam上的CS: GO退出非常耗时(窗口不会自动关闭),所以作为一种解决方法,我只是最小化窗口并单击自建菜单项,它将执行killall -9 csgo_linux64命令。
您可以使用此指示器执行任何操作:升级系统包,运行其他脚本——字面上的任何内容。 Sghttps://linux.cn/article-11061-1.html b 7 //////////////////////自动启动
我们希望系统托盘指示灯在系统启动后自动启动,而不是每次都手动运行。为此,只需将以下命令添加到自启动应用程序(但您需要用您自己的路径替换tray.py的路径):
Nohup python /home//tray.py&
下次重启系统时,系统启动后指示灯将自动开始工作!
上海IT外包服务网 链接:http://www.linemore.com