标签: x11

你可以在Docker容器中运行GUI应用程序吗?

如何在Docker容器中运行GUI应用程序?

是否有任何图像设置vncserver或某些东西,以便你可以 - 例如 - 在Firefox周围添加一个额外的speedbump沙箱?

x11 vnc sandbox docker

380
推荐指数
17
解决办法
26万
查看次数

Webdriver无法在45000 ms后连接到端口7055上的主机127.0.0.1

我有运行测试的盒子.看起来Jenkins会ssh并执行正在运行的特定作业中描述的命令.

在这里,我试图运行我的Selenium Webdriver测试,但它告诉我在启动firefox时出错.最终的想法是完全在这个盒子上运行网络测试,并拍摄一些错误的截图.

我正在使用selenium-java-2.25.jar,firefox 10,linux OS.

有趣的是,我可以手动ssh到框中,临时从盒子上的另一个用户复制魔术cookie(获得X隧道),做一个export DISPLAY=mydisplay:1.0,然后使用ant启动我的硒测试.这将带来firefox和测试就好了.

这里有各种各样的线程似乎有完全相同的问题,我想我已经尝试了大部分.这就是我所做的:

  • 重新启动该框,使用VNC重新登录.

  • 在运行selenium测试之前,在Jenkins中放置一个bash脚本来运行.bash脚本基本上只是做了一个export DISPLAY=mydisplay:1.0.它也执行xclock.这可以工作,因为我可以看到在VNC中显示xclock.

  • iptables已被关闭

  • firefox正确位于/ usr/bin/firefox中

  • sshd_config显示X11Forwarding为true.

  • 据称降级firefox帮助了一些人,但我不想这样做.无论如何,Webdriver应该支持FF 10.

但是,上述都没有解决问题.

它似乎不存在localhost上的端口7055甚至存在:

netstat -an | grep 7055 - 什么都没打印

这是我的/ etc/hosts所说的:

  1 127.0.0.1               localhost.localdomain localhost
  2 ::1             localhost6.localdomain6 localhost6
Run Code Online (Sandbox Code Playgroud)

也许它与localhost有关:7055不存在?我不确定从哪里开始.仍然,为什么错误输出说它display: :0.0在我指定时正在寻找mydisplay:1.0

最后我得到的错误输出:

[testng] org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified …
Run Code Online (Sandbox Code Playgroud)

x11 firefox selenium jenkins selenium-webdriver

138
推荐指数
7
解决办法
31万
查看次数

Octave-Gnuplot-AquaTerm错误:设置终端aqua增强标题"图1"......未知终端类型"

我通过Homebrew安装了Octave和gnuplot,并下载了AquaTerm.dmg.当我尝试绘图时,我收到以下消息:

octave:4> plot(x,y)

gnuplot> set terminal aqua enhanced title "Figure 1" font "*,6"

                  ^
     `line 0: unknown or ambiguous terminal type; type just 'set terminal' for a list`
Run Code Online (Sandbox Code Playgroud)

在bash终端set terminal,set Terminal,set term,(和相同的,其次是"AQUA"太)等给予什么.我已经尝试从八度音阶再次绘制"AquaTerm"已经打开,但没有.我已经尝试直接从gnuplot绘图,但同样的问题..我怎么能这样做"设置终端aqua"?

Gnuplot启动消息说" Terminal type set to 'x11'"但不知道如何更改它,以前的命令也不起作用.

由于AquaTerm没有从Homebrew安装,也许octave/gnupot找不到它......但不知道.有什么猜测?谢谢!

x11 terminal homebrew gnuplot octave

133
推荐指数
12
解决办法
7万
查看次数

如何在 WSL2 上设置工作 X11 转发

当从 WSL1 迁移到 WSL2 时,很多事情都会发生变化;显然这也适用于 X11 转发。
为了在 Windows 10 上使用 WSL2 的 X11 转发,我需要采取哪些步骤,就像我在 WSL1 上所做的那样?

x11 x11-forwarding windows-10 windows-subsystem-for-linux wsl-2

124
推荐指数
8
解决办法
12万
查看次数

"没有X11 DISPLAY变量" - 这是什么意思?

我正在尝试在我的Linux机器(Slackware)上安装Java应用程序.

我收到了以下错误,我不明白.

你能告诉我如何处理这个问题吗?谢谢.

这是我得到的:(我看到需要设置一些X11 DISPLAY变量,但我应该给它什么值以及如何?)

~$ java -jar gate-5.0-beta1-build3048-installer.jar
- ERROR -

java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(Graphic sEnvironment.java:159)
at java.awt.Window.<init>(Window.java:407)
at java.awt.Frame.<init>(Frame.java:402)
at net.sourceforge.mlf.metouia.borders.MetouiaDotsBuf fer.<init>(MetouiaDotsBuffer.java:105)
at net.sourceforge.mlf.metouia.borders.MetouiaDots.<i nit>(MetouiaDots.java:66)
at net.sourceforge.mlf.metouia.borders.MetouiaToolBar Border.<init>(MetouiaToolBarBorder.java:49)
at net.sourceforge.mlf.metouia.MetouiaLookAndFeel.ini tComponentDefaults(MetouiaLookAndFeel.java:241)
at javax.swing.plaf.basic.BasicLookAndFeel.getDefault s(BasicLookAndFeel.java:130)
at javax.swing.plaf.metal.MetalLookAndFeel.getDefault s(MetalLookAndFeel.java:1591)
at javax.swing.UIManager.setLookAndFeel(UIManager.jav a:537)
at javax.swing.UIManager.setLookAndFeel(UIManager.jav a:581)
at com.izforge.izpack.installer.GUIInstaller.loadLook AndFeel(GUIInstaller.java:373) …
Run Code Online (Sandbox Code Playgroud)

java linux x11 variables headless

94
推荐指数
5
解决办法
41万
查看次数

Java无法使用"localhost:10.0"作为DISPLAY变量的值连接到X11窗口服务器

我有一个脚本使用java连接到localhost上的端口10.0中显示X11

但我总是得到这个错误

java.lang.InternalError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.
    at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
    at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:62)
    at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:178)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:142)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:186)
    at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:82)
    at sun.awt.X11.XToolkit.<clinit>(XToolkit.java:112)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:186)
    at java.awt.Toolkit$2.run(Toolkit.java:849)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:841)
    at ij.io.Opener.openJpegOrGif(Opener.java:367)
    at ij.io.Opener.openImage(Opener.java:220)
    at ij.io.Opener.openImage(Opener.java:249)
    at ij.io.Opener.open(Opener.java:116)
    at ij.IJ.open(IJ.java:1112)
    at ij.macro.Functions.open(Functions.java:2006)
    at ij.macro.Functions.doFunction(Functions.java:129)
    at ij.macro.Interpreter.doStatement(Interpreter.java:205)
    at ij.macro.Interpreter.doBlock(Interpreter.java:515)
    at ij.macro.Interpreter.runUserFunction(Interpreter.java:278)
    at ij.macro.Interpreter.getFactor(Interpreter.java:1200)
    at ij.macro.Interpreter.getTerm(Interpreter.java:1162)
    at ij.macro.Interpreter.getExpression(Interpreter.java:1145)
    at ij.macro.Interpreter.getBooleanExpression(Interpreter.java:881)
    at …
Run Code Online (Sandbox Code Playgroud)

java linux x11 xserver

85
推荐指数
9
解决办法
25万
查看次数

无法在Windows上使用cygwin启动git gui

我曾经在我的cygwin控制台中启动git gui没有任何问题,但是因为我更新了cygwin,我收到以下错误消息:

$ git gui
Application initialization failed: no display name and no $DISPLAY environment variable
Error in startup script: invalid command name "tk_messageBox"
    while executing
"tk_messageBox  -icon error  -type ok  -title "git-gui: fatal error"  -message $err"
    invoked from within
"if {[catch {package require Tcl 8.4} err]
 || [catch {package require Tk  8.4} err]
} {
        catch {wm withdraw .}
        tk_messageBox \
                -icon error \
                -typ..."
    (file "/usr/lib/git-core/git-gui" line 34)
Run Code Online (Sandbox Code Playgroud)

谁知道如何解决这个问题?

git x11 cygwin tk-toolkit tcl

67
推荐指数
4
解决办法
4万
查看次数

Xlib和Firefox的行为

我正在尝试创建一个小窗口管理器(只是为了好玩),但我在处理由Firefox创建的窗口时遇到问题(只有该应用程序,其他应用程序工作正常)

问题是,在我启动Firefox后,添加我的装饰,它似乎工作正常,但如果我尝试单击菜单按钮,则不会出现(子)窗口.

似乎发生的是,在单击之后,会使用以下值触发ClientMessage事件:

Data: (null)
Data: _NET_WM_STATE_HIDDEN
Data: (null)
Data: (null)
Data: (null)
Run Code Online (Sandbox Code Playgroud)

现在的问题是我不知道如何显示窗口,哪个窗口.我尝试过:

  • XRaiseWindow
  • XMapWindow
  • 我试图获得瞬态窗口并显示它

但没有成功.我不明白的是,如果此客户端消息是由菜单子窗口生成的.

我应该如何显示_NET_WM_STATE_HIDDEN中的窗口?

另一个奇怪的问题是,在收到ClientMessage后,我总是收到2个UnMapNotify事件.

我还有另一个问题,如果我想显示"文件,编辑"菜单(在Firefox中显示,如果我没记错,当你按下Alt键时).

也许Firefox创建了一个窗口树?

这是我处理事件的循环:

while(1){
    XNextEvent(display, &local_event);
    switch(local_event.type){
        case ConfigureNotify:
            configure_notify_handler(local_event, display);
        break;
        case MotionNotify:
            motion_handler(local_event, display);
        break;
        case CreateNotify:
            cur_win = local_event.xcreatewindow.window;
            char *window_name;
            XFetchName(display, cur_win, &window_name);
            printf("Window name: %s\n", window_name);
            if(window_name!=NULL){
                if(!strcmp(window_name, "Parent")){
                    printf("Adding borders\n");
                    XSetWindowBorderWidth(display, cur_win, BORDER_WIDTH);
                }
                XFree(window_name);
            }
        break;
        case MapNotify:
            map_notify_handler(local_event,display, infos);
        break;
        case UnmapNotify: 
            printf("UnMapNotify\n");
        break;
        case DestroyNotify:
            printf("Destroy Event\n");
            destroy_notify_handler(local_event,display);
        break;
        case ButtonPress: …
Run Code Online (Sandbox Code Playgroud)

c x11 xlib

61
推荐指数
1
解决办法
1360
查看次数

Mountain Lion rvm安装1.8.7 x11错误

更新到Mountain Lion后,我尝试安装1.8.7,然后出错了.找不到X11文件,我安装了Xquarkz,但没有任何改变.怎么了?

Fail to find [tclConfig.sh, tkConfig.sh]
Use MacOS X Frameworks.

Find Tcl/Tk libraries. Make tcltklib.so which is required by Ruby/Tk.
clang -I. -I../.. -I../../. -I../.././ext/tk -DHAVE_RB_SAFE_LEVEL -DHAVE_RB_HASH_LOOKUP -DHAVE_RB_PROC_NEW -DHAVE_RB_OBJ_TAINT -DHAVE_ST_PTR -DHAVE_ST_LEN -DRUBY_VERSION=\"1.8.7\" -DRUBY_RELEASE_DATE=\"2012-06-29\"  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -DWITH_TCL_ENABLE_THREAD=0 -fno-common -g -O2  -fno-common -pipe -fno-common   -c stubs.c
In file included from stubs.c:10:
/usr/include/tk.h:78:11: fatal error: 'X11/Xlib.h' file not found
#       include <X11/Xlib.h>
                ^
1 error generated.
make[1]: *** [stubs.o] Error 1
make: *** [all] Error 1
Run Code Online (Sandbox Code Playgroud)

ruby x11 rvm osx-mountain-lion

60
推荐指数
3
解决办法
2万
查看次数

如何检查X服务器是否正在运行?

有没有办法找出当前会话用户是否正在运行Xserver(在Linux下)?

我开始做的事情如下:

ps -e | grep X 
Run Code Online (Sandbox Code Playgroud)

但这并不总是有效

我尝试的另一件事是检查$DISPLAY变量

有没有其他方法来检查这个?

编辑:有人建议使用$ DISPLAY变量,但如果用户摆弄这个变量怎么办?如果他试图做某事并改变这个变量然后当我检查它时,它不再反映系统的准确状态.有没有具体的方法来做到总会得到正确的答案?

我发现它可以以编程方式完成:

#include <X11/Xlib.h> 
int main()
    { exit(XOpenDisplay(NULL) ? 0 : 1);  } 

$ gcc -o xprobe xprobe.c -L/usr/X11R6/lib -lX11 
Run Code Online (Sandbox Code Playgroud)

但我正在寻找一种脚本方式.

linux x11 xserver

59
推荐指数
6
解决办法
15万
查看次数