2017-04-11 72 views
1

我寫一個簡單的擴展點擊擴展按鈕,打開瀏覽器。我想知道是否有一個函數可以執行傳遞shell命令作爲參數。此外,如果任何人都可以提出一個很好的簡單參考來進行擴展開發,那將會非常有用。GNOME擴展 - 運行shell命令

+0

你在尋找類似[這](http://stackoverflow.com/a/20638212/5725669) –

回答

2

https://github.com/GNOME/gnome-shell/blob/master/js/misc/util.js

// Runs @command_line in the background, handling any errors that 
// occur when trying to parse or start the program. 
function spawnCommandLine(command_line) { 
    try { 
     let [success, argv] = GLib.shell_parse_argv(command_line); 
     trySpawn(argv); 
    } catch (err) { 
     _handleSpawnError(command_line, err); 
    } 
} 

有在那裏,方法有一些變化。保存自己的頭痛山脈,只需將GitHub存儲庫添加爲書籤。

是一些快速鏈接:

  • popupMenu.js:很好看的實施 「托盤」 圖標
  • modalDialog.js:用彈出菜單
  • panel.js工作的一些用戶界面元素被用來被重用,runDialog。 js使用這個例如
  • mpris.js:也有很好的例子使用框架如DBUS在gjs

我不能強調不夠,你會得到多少讀碼侏儒殼源。不幸的是,它現在被編譯成一個資源文件,所以我們沒有本地副本偶然發現。

+0

我缺少一個方式,使用我的擴展這些功能而無需複製和粘貼。有沒有? – raphinesse

+1

你剛纔導入的模塊,然後實例或子類的類和調用的函數:'常量的Util = imports.misc.util; Util.spawnCommandLine( 「...」);' –