我有一个GTK应用程序,使用以下代码片段创建“透明”窗口
GdkScreen* screen = gtk_window_get_screen(window);
GdkVisual* screen_visual = gdk_screen_get_rgba_visual(screen);
gtk_widget_set_visual(GTK_WIDGET(window), screen_visual);
gtk_widget_set_app_paintable(GTK_WIDGET(window), true);
当在“常规”显示器上运行并且窗口正确地在彼此之上分层时,这可以正常工作,但是当在Xvfb
屏幕中运行它时,使用类似这样的Xvfb :0 -nocursor -screen 0 1920x1080x24+32 +extension RANDR +extension XVideo +extension RENDER
,GTK完全禁用透明度并且窗口最终成为不透明。 (仅在可见的顶层窗口中进行调整)
有没有办法让GTK在无头屏幕内创造这种透明度?
对于任何寻找相同问题的人,我都缺少Xvfb的x复合管理器(例如xcompmgr)。当为Xvfb显示器运行它时,它按预期工作。