问题描述
我想从Gnome-Shell扩展名访问环境变量。
某些环境:我想基于环境变量$XDG_SESSION_TYPE
创建一个扩展,在面板上添加“ Xorg”或“ Wayland”。我之所以必须这样做,是因为我经常切换(Wineland在Wayine方面遇到问题),而且我并不总是记得正在运行哪种类型的会话。
解决方法
我能够在Argos extension的源代码中找到如何获取环境变量:
const GLib = imports.gi.GLib ;
const rawEnv = GLib.get_environ() ;
环境变量也存储为字符串数组,应进行解析,即:在第一个“ =”出现时拆分以分隔键和值。
编辑: GLib.getenv('ENV_VAR_NAME')
更加方便,因为它避免了解析环境变量(由于@andyholmes)。
另一种检测 Wayland 的方法是询问窗口管理器:
Meta.is_wayland_compositor()
在 GS 3.36、3.38 和 40 中测试。
https://gjs-docs.gnome.org/meta3~3.30.2/meta.is_wayland_compositor
编辑:仅来自扩展,不能从首选项。