精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

在Linux上為你的任務創建一個自定義的系統托盤指示器

系統 Linux
系統托盤圖標如今仍是一個很神奇的功能。只需要右擊圖標,然后選擇想要的動作,你就可以大幅簡化你的生活并且減少日常行為中的大量無用的點擊。

https://s1.51cto.com/oss/201907/07/2e03a21933ee2e42e7b893ebc7abf6df.png

系統托盤圖標如今仍是一個很神奇的功能。只需要右擊圖標,然后選擇想要的動作,你就可以大幅簡化你的生活并且減少日常行為中的大量無用的點擊。

一說到有用的系統托盤圖標,我們很容易就想到 Skype、Dropbox 和 VLC:

然而系統托盤圖標實際上要更有用得多;你可以根據自己的需求創建自己的系統托盤圖標。本指導將會教你通過簡單的幾個步驟來實現這一目的。

前置條件

我們將要用 Python 來實現一個自定義的系統托盤指示器。Python 可能已經默安裝在所有主流的 Linux 發行版中了,因此你只需要確定一下它已經被安裝好了(此處使用版本為 2.7)。另外,我們還需要安裝好 gir1.2-appindicator3 包。該庫能夠讓我們很容易就能創建系統圖標指示器。

在 Ubuntu/Mint/Debian 上安裝:

  1. sudo apt-get install gir1.2-appindicator3

在 Fedora 上安裝:

  1. sudo dnf install libappindicator-gtk3

對于其他發行版,只需要搜索包含 “appindicator” 的包就行了。

在 GNOME Shell 3.26 開始,系統托盤圖標被刪除了。你需要安裝 這個擴展(或者其他擴展)來為桌面啟用該功能。否則你無法看到我們創建的指示器。

基礎代碼

下面是該指示器的基礎代碼:

  1. #!/usr/bin/python
  2. import os
  3. from gi.repository import Gtk as gtk, AppIndicator3 as appindicator
  4. def main():
  5. indicator = appindicator.Indicator.new("customtray", "semi-starred-symbolic", appindicator.IndicatorCategory.APPLICATION_STATUS)
  6. indicator.set_status(appindicator.IndicatorStatus.ACTIVE)
  7. indicator.set_menu(menu())
  8. gtk.main()
  9. def menu():
  10. menu = gtk.Menu()
  11. command_one = gtk.MenuItem('My Notes')
  12. command_one.connect('activate', note)
  13. menu.append(command_one)
  14. exittray = gtk.MenuItem('Exit Tray')
  15. exittray.connect('activate', quit)
  16. menu.append(exittray)
  17. menu.show_all()
  18. return menu
  19. def note(_):
  20. os.system("gedit $HOME/Documents/notes.txt")
  21. def quit(_):
  22. gtk.main_quit()
  23. if __name__ == "__main__":
  24. main()

我們待會會解釋一下代碼是怎么工作的。但是現在,讓我們將該文本保存為 tray.py,然后使用 Python 運行之:

  1. python tray.py

我們會看到指示器運行起來了,如下圖所示:

Create a Custom System Tray Indicator For Your Tasks on Linux

Create a Custom System Tray Indicator For Your Tasks on 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('My Notes') 僅僅使用文本 “My notes” 來初始化第一個菜單項,接下來 command_one.connect('activate',note) 將菜單的 activate 信號與后面定義的 note() 函數相連接;換句話說,我們告訴我們的系統:“當該菜單項被點擊,運行 note() 函數”。最后,menu.append(command_one) 將菜單項添加到列表中。
  • exittray 相關的行是為了創建一個退出的菜單項,以便讓你在想要的時候關閉指示器。
  • menu.show_all() 以及 return menu 只是返回菜單項給指示器的常規代碼。
  • note(_) 下面是點擊 “My Notes” 菜單項時需要執行的代碼。這里只是 os.system("gedit $HOME/Documents/notes.txt") 這一句話;os.system 函數允許你在 Python 中運行 shell 命令,因此這里我們寫了一行命令來使用 gedit 打開家目錄下 Documents 目錄中名為 notes.txt 的文件。例如,這個可以稱為你今后的日常筆記程序了!

添加你所需要的任務

你只需要修改代碼中的兩塊地方:

  1. menu() 中為你想要的任務定義新的菜單項。
  2. 創建一個新的函數讓給該菜單項被點擊時執行特定的行為。

所以,比如說你想要創建一個新菜單項,在點擊后,會使用 VLC 播放硬盤中某個特定的視頻/音頻文件?要做到這一點,只需要在第 17 行處添加下面三行內容:

  1. command_two = gtk.MenuItem('Play video/audio')
  2. command_two.connect('activate', play)
  3. menu.append(command_two)

然后在第 30 行添加下面內容:

  1. def play(_):
  2. os.system("vlc /home/<username>/Videos/somevideo.mp4")

將/home//Videos/somevideo.mp4` 替換成你想要播放的視頻/音頻文件路徑。現在保存該文件然后再次運行該指示器:

  1. python tray.py

你將會看到:

Create a Custom System Tray Indicator For Your Tasks on Linux

Create a Custom System Tray Indicator For Your Tasks on Linux

而且當你點擊新創建的菜單項時,VLC 會開始播放!

要創建其他項目/任務,只需要重復上面步驟即可。但是要小心,需要用其他命令來替換 command_two,比如 command_three,這樣在變量之間才不會產生沖突。然后定義新函數,就像 play(_) 函數那樣。

可能性是無窮的;比如我用這種方法來從網上獲取數據(使用 urllib2 庫)并顯示出來。我也用它來在后臺使用 mpg123 命令播放 mp3 文件,而且我還定義了另一個菜單項來 killall mpg123 以隨時停止播放音頻。比如 Steam 上的 CS:GO 退出很費時間(窗口并不會自動關閉),因此,作為一個變通的方法,我只是最小化窗口然后點擊某個自建的菜單項,它會執行 killall -9 csgo_linux64 命令。

你可以使用這個指示器來做任何事情:升級系統包、運行其他腳本——字面上的任何事情。

自動啟動

我們希望系統托盤指示器能在系統啟動后自動啟動,而不用每次都手工運行。要做到這一點,只需要在自啟動應用程序中添加下面命令即可(但是你需要將 tray.py 的路徑替換成你自己的路徑):

  1. nohup python /home/<username>/tray.py &

下次重啟系統,指示器會在系統啟動后自動開始工作了!

結論

你現在知道了如何為你想要的任務創建自己的系統托盤指示器了。根據每天需要運行的任務的性質和數量,此方法可以節省大量時間。有些人偏愛從命令行創建別名,但是這需要你每次都打開終端窗口或者需要有一個可用的下拉式終端仿真器,而這里,這個系統托盤指示器一直在工作,隨時可用。 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2019-07-05 14:20:10

Linux系統托盤

2021-01-06 05:25:56

項目Springboot應用

2012-11-19 11:07:42

IBMdw

2011-04-18 15:33:33

Ubuntu 11.0

2021-01-07 05:24:38

SpringbootSpringBanner

2022-08-24 14:11:13

GNOME桌面應用

2022-04-14 06:20:25

GNOME桌面應用

2021-07-17 15:31:20

ChromeHTTPS瀏覽器

2021-03-05 14:02:51

LinuxWindows管理器

2012-01-17 10:43:26

Java

2011-08-23 09:33:19

Ubuntu系統托盤

2017-02-08 20:21:03

Windows 10Windows任務欄

2020-11-05 09:38:44

Linux 系統 數據工具

2009-08-27 12:58:44

C#索引指示器

2009-04-28 13:25:36

Ajax函數Java

2010-01-20 15:00:09

Visual C++開

2011-04-21 13:46:54

Ubuntu Unit

2022-06-06 09:28:36

ReactHook

2011-01-19 14:40:45

Thunderbird

2021-06-15 15:28:31

谷歌Android開發
點贊
收藏

51CTO技術棧公眾號

成人影院在线观看| 九九热在线免费观看| 久久九九精品视频| 亚洲一区av在线| 精品人伦一区二区三区| 中文字幕在线欧美| 五月天久久777| 精品国产成人在线影院 | 欧美一区二区视频免费观看| 日本a级片在线播放| 欧美日韩国产综合视频| 国产在线视频一区二区| 欧美有码在线观看| 特一级黄色录像| 美女网站一区| 欧美电影免费观看完整版| 免费午夜视频在线观看| av网站在线免费| 国产亚洲欧美色| 99re在线观看视频| 影音先锋国产资源| 国产日韩欧美三区| 欧美猛交免费看| 成人一级片免费看| 网红女主播少妇精品视频| 日韩欧美一级二级| 欧美午夜aaaaaa免费视频| 国产伦子伦对白在线播放观看| 亚洲欧美在线视频观看| 日本亚洲自拍| 视频二区在线观看| 国产成+人+日韩+欧美+亚洲| 国产精品一区二区电影| 天堂а√在线中文在线新版| 亚洲高清在线| 欧美黑人巨大xxx极品| 啪啪一区二区三区| 欧美激情在线免费| 国产丝袜一区视频在线观看| 91传媒理伦片在线观看| 日韩欧美激情电影| 7777精品伊人久久久大香线蕉| 成人性做爰aaa片免费看不忠| 超碰在线99| 午夜久久久影院| 国产成人永久免费视频| 日本h片在线观看| 亚洲精品日日夜夜| 日韩视频一二三| 国产精品刘玥久久一区| 成人欧美一区二区三区1314| 视频一区二区综合| 97电影在线| 国产精品萝li| 在线观看日韩片| 免费在线观看黄色| 自拍偷拍亚洲欧美日韩| 中文字幕乱码一区二区三区| 激情视频在线观看| 亚洲男人的天堂在线aⅴ视频| 中文字幕av导航| 菠萝蜜视频国产在线播放| 亚洲乱码国产乱码精品精的特点| 懂色av一区二区三区四区五区| 国产二区三区在线| 亚洲最大的成人av| 成人免费播放器| 亚洲黄色免费看| 欧美亚洲免费在线一区| 91高清国产视频| 美女久久精品| 亚洲国产一区二区三区在线观看| 永久免费未满蜜桃| 综合国产视频| 中文字幕欧美在线| 五月婷婷一区二区| 亚洲一区二区三区免费在线观看 | 国产成人愉拍精品久久 | 婷婷中文字幕在线观看| 精品国产不卡一区二区| 亚洲成人av片在线观看| 国产肉体xxxx裸体784大胆| 国产精品一在线观看| 日韩视频在线一区| 免费一级a毛片夜夜看| 亚洲视频1区| 国产伦精品一区二区三区精品视频| 国产精品久久久久久无人区| 国产大陆a不卡| 好吊色欧美一区二区三区 | 久久久国产精品视频| 国产亚洲精品成人| 青娱乐精品视频在线| 亚洲综合在线播放| 青青草视频在线免费观看| 国产精品美女久久久久久久久久久| 亚洲精品少妇一区二区| 波多野结衣久久精品| 69p69国产精品| 亚洲男人在线天堂| 欧美一区二区三区另类| 欧美在线欧美在线| 精品毛片在线观看| 国产婷婷色一区二区三区在线| 欧美做暖暖视频| 久久xxx视频| 亚洲国产精品资源| 疯狂撞击丝袜人妻| 玖玖在线精品| 国产成人看片| 日本a在线播放| 欧美性猛交xxxx黑人| 91视频福利网| 欧美亚洲国产一区| 55夜色66夜色国产精品视频| 99久久一区二区| 中文字幕av一区二区三区高| 一二三四视频社区在线| 精品三级久久久| 伊人久久久久久久久久| 在线观看亚洲欧美| 国产99久久久精品| 日本黄色a视频| 99精品国自产在线| 亚洲人成网在线播放| 国产无码精品在线观看| 国产伦精品一区二区三区视频青涩| 日韩精品国内| 芒果视频成人app| 亚洲国产精品一区二区久| 精品97人妻无码中文永久在线| 久久成人免费网站| 亚洲国产精品日韩| 芒果视频成人app| 国产视频久久网| 亚洲免费激情视频| 成人性生交大合| 日韩视频 中文字幕| 日韩精品一区国产| 欧美成人免费播放| 国产偷拍一区二区| 综合网在线视频| 中文字幕成人免费视频| 天天操夜夜操国产精品| 国产日韩在线视频| 日韩在线观看www| 欧美日韩久久久一区| 337人体粉嫩噜噜噜| 久久综合九色| 性欧美精品一区二区三区在线播放| 唐人社导航福利精品| 亚洲人成电影网站| 国产主播第一页| 国产女同互慰高潮91漫画| 色婷婷综合久久久久中文字幕 | 成年丰满熟妇午夜免费视频| 国产精品视频一区视频二区| 久久精品亚洲一区| 99久久精品无免国产免费 | 日韩在线观看你懂的| 在线免费观看高清视频| 亚洲欧美在线观看| 精品国产aⅴ一区二区三区东京热| 国产精品v亚洲精品v日韩精品| 国产二区不卡| 中国字幕a在线看韩国电影| 亚洲欧美国产精品va在线观看| jizz国产在线观看| 国产精品久久久久久久裸模| 日本高清一区二区视频| 一区在线观看| 日本不卡二区| 成人网av.com/| 4p变态网欧美系列| 成人在线二区| 日韩免费电影一区| 久久午夜免费视频| 日本一区二区免费在线| 日本高清免费观看| 国产农村妇女精品一二区| 日本中文不卡| 视频在线观看免费影院欧美meiju| 久久久久久久影院| 国产精品秘入口| 欧美一区二区三区成人| 中文字幕在线观看视频网站| 亚洲国产精品高清| 好吊操视频这里只有精品| 亚洲综合99| 国产系列第一页| 台湾色综合娱乐中文网| 国产在线观看一区二区三区| 91高清视频在线观看| 亚洲色图50p| 成人免费视频国产免费麻豆| 91久久精品一区二区三| 欧美成人免费看| 日本一区二区三区免费乱视频 | 久久亚洲精品国产精品紫薇| 污污网站免费观看| 99国产精品自拍| 在线成人性视频| 亚洲人成网77777色在线播放 | 日韩高清电影免费| 国产日产欧美a一级在线| 电影在线观看一区| 美女少妇精品视频| 国产综合在线观看| 精品国产免费人成电影在线观看四季 | 艳女tv在线观看国产一区| 精品国产免费一区二区三区 | 久久亚洲精品欧美| 国产精品美女久久久久人| 国产激情999| 精品人人视频| 九九九热精品免费视频观看网站| 国产黄在线看| 精品亚洲一区二区三区| 亚洲第一色视频| 91精品国产乱| 中文字幕有码无码人妻av蜜桃| 欧美午夜美女看片| 国产亚洲精品码| 一区二区三区在线视频观看| 女同久久另类69精品国产| 国产色91在线| 90岁老太婆乱淫| 91视视频在线观看入口直接观看www | 五月天丁香视频| 精品日韩一区二区| 国产高清免费观看| 91精品欧美福利在线观看| 中文字幕制服诱惑| 欧美三级视频在线观看| www.国产毛片| 在线这里只有精品| 波多野结衣高清视频| 色成年激情久久综合| 久久精品视频7| 色综合久久久久综合体| 999这里只有精品| 亚洲已满18点击进入久久| 国产成人综合在线视频| 日韩理论片一区二区| 99鲁鲁精品一区二区三区| 国产精品区一区二区三| 国产亚洲精品久久久久久豆腐| 国产精品麻豆久久久| 亚洲欧美精品久久| 亚洲日本青草视频在线怡红院| 国产尤物在线播放| 一区二区在线电影| 国产在线视频99| 精品福利在线观看| 国产一级淫片a视频免费观看| 懂色av一区二区三区| 无码人妻丰满熟妇精品| 欧美影视一区在线| 91成年人视频| 日韩视频免费观看高清完整版| 亚洲国产精品久久人人爱潘金莲 | 亚洲天堂网一区二区| 国产日韩欧美综合一区| 999福利视频| 一区二区三区欧美| 天天插天天操天天干| 一本久道久久综合中文字幕| 午夜视频网站在线观看| 69堂成人精品免费视频| 亚洲免费国产视频| 亚洲人成绝费网站色www| 日韩大片在线永久免费观看网站| 久久伊人精品一区二区三区| 欧美1234区| 日韩av免费看网站| 自拍偷拍欧美日韩| 国产精品久久久久久免费观看 | 成人精品视频在线播放| 亚洲一区二区三区高清| 性生生活大片免费看视频| 高清久久久久久| 久久av无码精品人妻系列试探| 国产精品久久久久影院亚瑟| 久久久夜色精品| 色婷婷亚洲婷婷| 99久久亚洲精品日本无码| 亚洲国产婷婷香蕉久久久久久| 国产精品视频二区三区| 欧美日韩成人在线观看| 性欧美gay| 超碰97在线资源| 色综合久久一区二区三区| 日本黄色片一级片| 日本中文字幕一区二区视频| 久久久久99人妻一区二区三区 | 欧美三级小视频| 日本高清无吗v一区| 亚洲国产剧情在线观看| 一区二区在线视频| 97久久人人超碰caoprom| 国产噜噜噜噜久久久久久久久| 免费观看成人www动漫视频| 亚洲精品在线观看免费| 99亚洲伊人久久精品影院红桃| 97超碰成人在线| 久久综合一区二区| 免费一级肉体全黄毛片| 欧美日韩电影在线| 日韩成人黄色| 久久久久久久激情视频| 亚洲人成网站在线在线观看| 麻豆蜜桃91| 亚洲一本视频| www.亚洲自拍| 国产欧美一区二区三区在线老狼| 日韩手机在线观看| 日韩欧美中文一区二区| 色开心亚洲综合| 国产成人精品在线观看| 国产精品毛片视频| 欧洲金发美女大战黑人| 老司机免费视频一区二区| 成人片黄网站色大片免费毛片| 亚洲第一福利视频在线| 99riav国产| 日韩小视频在线观看| 日本精品裸体写真集在线观看| 久久99精品久久久水蜜桃| 黄色精品网站| 丰满少妇xbxb毛片日本| 亚洲综合一区二区精品导航| 国产免费av观看| 日韩视频在线一区| 午夜不卡一区| 中文字幕日韩精品一区二区| 麻豆成人av在线| 少妇太紧太爽又黄又硬又爽小说 | 97在线免费视频| 成人自拍在线| av在线播放天堂| 成人天堂资源www在线| 久久国产在线观看| 欧美成人女星排行榜| 深夜国产在线播放| 7777精品久久久大香线蕉小说| 一区二区电影在线观看| www.偷拍.com| 亚洲一区二区三区爽爽爽爽爽 | 久久这里只有精品8| 国产成人精品亚洲日本在线桃色| 黄色一级免费视频| 精品乱人伦一区二区三区| 美女精品导航| 国产一区二区三区色淫影院| 99热精品在线观看| theav精尽人亡av| 色综合视频一区二区三区高清| 久草视频在线看| 国产日韩综合一区二区性色av| 希岛爱理av一区二区三区| 日本网站在线看| 亚洲国产综合在线| 视频一区二区在线播放| 日韩免费视频在线观看| 欧美成人milf| 毛毛毛毛毛毛毛片123| 亚洲国产日韩综合久久精品| 香蕉人妻av久久久久天天| 国产精品黄色av| 一区二区三区午夜探花| 人妻激情偷乱频一区二区三区| 精品日韩视频在线观看| eeuss影院在线播放| 亚洲综合大片69999| 一区二区三区福利| 极品尤物一区二区| 日韩欧美国产麻豆| 夜鲁夜鲁夜鲁视频在线播放| 亚洲欧美影院| 丁香婷婷综合激情五月色| 无码日韩精品一区二区| 视频直播国产精品| 成人性生交大片免费看96| 日本精品久久久久中文字幕| 中文字幕人成不卡一区| 日本高清视频免费观看| 国产精品入口日韩视频大尺度| 欧美日韩网站| 变态另类ts人妖一区二区| 欧美一区二区免费| 成人av观看| 成年人视频大全| 国产日韩高清在线| 亚洲av无码国产精品久久不卡 | 国产日韩av一区| 北条麻妃一二三区| 国产精品久久不能| 亚洲性人人天天夜夜摸| 国产一区在线观看免费| 日韩电影在线观看中文字幕|