gpt4 book ai didi

linux - 如何在 Linux 上获取虚拟桌面名称/编号?

转载 作者:太空宇宙 更新时间:2023-11-04 11:34:52 26 4
gpt4 key购买 nike

我正在为 openbox 开发一个图标管理器应用程序,并且需要知道创建图标的特定虚拟桌面,以便在重新启动时将其恢复到相同状态。

是否有一些标准方法可以确定当前虚拟桌面的信息?

最佳答案

如果您的窗口管理器符合 EWMH,您可以使用此处列出的属性:

http://standards.freedesktop.org/wm-spec/1.4/ar01s03.html

特别是 _NET_NUMBER_OF_DESKTOPS_NET_DESKTOP_NAMES


来自 this site 的修改代码将列出所有可用的虚拟桌面。它打开一个到 wmctrl -d 的管道,它返回列表,其中包含用 *:

指示的当前 virt.desktop
#include <stdio.h>
#include <stdlib.h>

#ifdef WIN32
FILE *popen ( const char* command, const char* flags) {return _popen(command,flags);}
int pclose ( FILE* fd) { return _pclose(fd);}
#endif

int main(int argc, char* argv[])
{
char psBuffer[4096];
FILE *iopipe;

if( (iopipe = popen( "wmctrl -d", "r" )) == NULL )
exit( 1 );

while( !feof( iopipe ) )
{
if( fgets( psBuffer, 4095, iopipe ) != NULL )
printf( psBuffer );
}

printf( "\nProcess returned %d\n", pclose( iopipe ) );
return 0;
}

捕获的输出看起来像这样:(用于解释的 man wmctrl)

0  * DG: 1680x1050  VP: 0,0  WA: 36,36 3564x1044  (Unnamed desktop)
1 - DG: 1680x1050 VP: 0,0 WA: 36,36 3564x1044 desktop 2
2 - DG: 1680x1050 VP: 0,0 WA: 36,36 3564x1044 desktop 3
3 - DG: 1680x1050 VP: 0,0 WA: 36,36 3564x1044 desktop 4
4 - DG: 1680x1050 VP: 0,0 WA: 36,36 3564x1044 desktop 5
5 - DG: 1680x1050 VP: 0,0 WA: 36,36 3564x1044 desktop 6

关于linux - 如何在 Linux 上获取虚拟桌面名称/编号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8575864/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com