如何检查 weston 环境

How to check a weston environment

如何在运行时检查程序是否在 Weston 环境中 运行。 我在 C 中编写了一个 Gtk+-3.0,我希望根据显示服务器技术,GUI 是 运行 不同的 windows 大小和类似的提示。

更准确地说。我的系统是一个很小的嵌入式linux。我通过 systemd 启动 weston:

# weston systemd service unit file                                                                          

[Unit]
Description=Weston launcher
After=systemd-user-sessions.service

[Service]
Environment=PATH=/usr/bin:/bin:/usr/sbin:/sbin
Environment=HOME=/root
ExecStart=/root/weston.sh
Restart=always
RestartSec=10

[Install]
Alias=display-manager.service
WantedBy=graphical.target

这是启动脚本:

#!/bin/bash
# Weston startup file.
export XDG_RUNTIME_DIR="/run/shm/wayland"
mkdir -p "$XDG_RUNTIME_DIR"
chmod 0700 "$XDG_RUNTIME_DIR"

/usr/bin/weston --tty=1 --log=/var/log/weston.log

http://manpages.ubuntu.com/manpages/saucy/man1/weston.1.html

尝试获取此环境变量 -

WAYLAND_DISPLAY

示例,使用 getenv() ...

#include <stdio.h>
#include <stdlib.h>

int main ()
{
   printf("WESTON : %s\n", getenv("WAYLAND_DISPLAY"));
   return(0);
}