蓝盟弱电工程,在Linux上为您的任务创建自定义系统托盘指示器

发布者:上海IT外包 发布时间:2019/7/8 9:40:16来源:www.linemore.com

 
  系统托盘图标今天仍然是一个神奇的功能。只需右键单击图标并选择所需的操作,即可大大简化您的生活并减少日常活动中无用的点击量。
  当谈到有用的系统托盘图标时,很容易想到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

>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部