从桌面快捷方式在Windows 10中打开Cygwin X11应用程序

时间:2018-01-16 11:34:25

标签: bash cygwin x11

我在Windows 10上安装了64位Cygwin,我想从桌面快捷方式打开Cygwin GUI应用程序,例如atril,而无需打开Cygwin终端并手动从命令行启动它们。

我有:

  • 创建了一个〜/ .startxwinrc文件,其中包含行" exec sleep infinity"
  • 将这些行添加到〜/ .bashrc
  

export DISPLAY =:0.0

     

startxwin> / dev / null 2>& 1

     

如果[$? -eq 0];然后

startxwin > /dev/null 2>&1 &
     

网络连接

我现在可以通过启动Cygwin终端打开应用程序,输入应用程序的名称,然后按Enter键。但是,我创建的桌面快捷方式无声地失败。其中之一是:

  

C:\ cygwin64 \ bin \ run.exe -p / bin xterm -display 0.0 -e / bin / bash -l /cygdrive/c/Users/MYNAME/atril-launcher.sh

(我认为一个失败是因为xterm和startxwin不兼容;我可能错了。)

我尝试过其他包含run.exe的命令行,但无法启动应用程序或获取有意义的错误消息。

atril-launcher.sh拥有正确的权限,并且在shebang之后包含以下文本(我无法在此处尝试发布shebang格式化权限。)。它可以在Cygwin终端内成功启动。

  

nohup /bin/atril.exe&

     

睡3s

我在互联网上搜索了有关此问题的信息,其中大部分都已过时(Cygwin现在使用/ bin而不是/ usr / bin,Cygwin不再使用X11R6文件夹,DISPLAY =:0.0而不是DISPLAY = localhost:0.0等等...但是在这一点上,我在我的智慧'端。

1 个答案:

答案 0 :(得分:0)

看起来我已经找到了对我自己的问题的部分答案。由于各种原因,它并不完美:

  • 这可能取决于已经在其他地方启动的startxwin作为后台进程。

  • 应用程序启动缓慢;有几秒钟的延迟。

  • 用户无法与之交互的终端窗口(可能是作为GUI应用程序的父进程的shell)出现在应用程序窗口旁边。

但这可能足以让你继续下去。假设pluma是我们的应用程序,这里是成功启动它的快捷方式:

C:\cygwin64\bin\mintty.exe /bin/bash -l -c "export DISPLAY=:0.0; pluma"

我要感谢回答https://stackoverflow.com/a/12215570/9223868的作者 - 这是我通过谷歌搜索找不到的,只是通过它出现在"相关"发布时列出。