1

我想在GJS中使用Gvc(libgnome-volume-controlas used in Gnome Shell GIR,但是除Gnome Shell環境(例如Gnome Shell擴展)外無法找到訪問它的方法。其實,我甚至無法弄清楚它在哪裏。這可能嗎?是否可以在Gnome Shell環境之外導入Gvc typelib?

UPDATE

在與菲利普Withnall的評論線(約哈克解決方法),我發現它可以導入像這樣:

const GIRepository = imports.gi.GIRepository; 
GIRepository.Repository.prepend_search_path("/usr/lib/gnome-shell"); 
GIRepository.Repository.prepend_library_path("/usr/lib/gnome-shell"); 
const Gvc = imports.gi.Gvc; 

回答

1

是。

libgnome-volume-control是currently only meant to be used as a submodule。 gnome-shell在其.gitmodules file中列出它以導入代碼,然後在meson.build中構建它。

應該可以在項目中同樣使用libgnome-volume-control。

(我確定這一點使用git grep -i gvc上的gnome-shell代碼。)

+0

啊,可惜我的項目是一個GJS(只)外殼擴展,只需用GJS守護進程運行的shell環境之外(因爲外殼擴展是禁用「會話模式」更改)。儘管如此,仍然回答我的問題,感謝您的快速回復。 –

+0

你能不能將libgvc編譯爲子模塊,並將'.so'和'.typelib'私密地發送到你的守護進程中? –

+0

我認爲這會取決於架構嗎?即使不是這樣,extensions.gnome.org審查過程中的透明度通常是「做功」 - >「拒絕/接受」。我想知道是否可以單獨提供關於運送它的錯誤,因爲Cinnamon/Mint似乎是這樣做的(ubuntu回購中的gir1.2-cvc-1.0),或者如果有充分的理由,它只是子模塊。 –

相關問題