Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问Gnome外壳扩展中的环境变量_Javascript_Gnome_Gnome Shell_Gnome 3_Gnome Shell Extensions - Fatal编程技术网

Javascript 如何访问Gnome外壳扩展中的环境变量

Javascript 如何访问Gnome外壳扩展中的环境变量,javascript,gnome,gnome-shell,gnome-3,gnome-shell-extensions,Javascript,Gnome,Gnome Shell,Gnome 3,Gnome Shell Extensions,我想从Gnome外壳扩展访问环境变量 一些上下文:我想创建一个扩展,根据环境变量$XDG\u SESSION\u TYPE将“Xorg”或“Wayland”添加到面板中。我必须这样做,因为我经常切换(Wine与Wayland之间存在问题),并且我不记得正在运行哪种类型的会话。我能够找到如何在源代码中获取环境变量: const GLib=imports.gi.GLib; const rawEnv=GLib.get_environ(); 此外,环境变量存储为字符串数组,应进行解析,即:在第一次出现

我想从Gnome外壳扩展访问环境变量


一些上下文:我想创建一个扩展,根据环境变量
$XDG\u SESSION\u TYPE
将“Xorg”或“Wayland”添加到面板中。我必须这样做,因为我经常切换(Wine与Wayland之间存在问题),并且我不记得正在运行哪种类型的会话。

我能够找到如何在源代码中获取环境变量:

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中测试


编辑:仅从扩展名开始,不可从prefs获得。

您也可以使用
GLib.getenv('XDG\U会话类型')
@andy.holmes Nice!将它添加到答案中!