从桌面快捷方式打开 Windows10 中的 Cygwin X11 应用程序
Opening Cygwin X11 applications in Windows 10 from desktop shortcuts
我在 Windows10 上安装了 64 位 Cygwin,我想从桌面快捷方式打开 Cygwin GUI 应用程序,例如 atril,而不必打开 Cygwin 终端并从命令行启动它们手动。
我有:
- 创建了一个包含行“exec sleep infinity”的 ~/.startxwinrc 文件
- 将这些行添加到 ~/.bashrc
export DISPLAY=:0.0
which startxwin > /dev/null 2>&1
if [ $? -eq 0 ]; then
startxwin > /dev/null 2>&1 &
fi
我现在可以通过启动 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 之后包含以下文本(我无法在此处尝试 post shebang 时获得正确的格式。)。它可以从 Cygwin 终端内成功启动。
nohup /bin/atril.exe &
sleep 3s
我在互联网上搜索了关于这个问题的信息,其中大部分已经过时(Cygwin 现在使用 /bin 而不是 /usr/bin,Cygwin 不再有 X11R6 文件夹,而是 DISPLAY=:0.0 DISPLAY=localhost:0.0, etc...) 但在这一点上我已经束手无策了。
看来我找到了我自己问题的部分答案。由于各种原因,它并不完美:
这可能取决于已经在其他地方作为后台进程启动的 startxwin。
应用程序启动缓慢;有几秒钟的延迟。
用户无法与之交互的终端 windows(大概是充当 GUI 应用程序父进程的 shell)出现在应用程序 windows.[=12= 旁边]
但这可能足以继续下去。假设 pluma 是我们的应用程序,这里是成功启动它的快捷方式:
C:\cygwin64\bin\mintty.exe /bin/bash -l -c "export DISPLAY=:0.0; pluma"
我要感谢答案 的作者 - 我没有通过谷歌搜索找到它,只是在发布时它出现在 "Related" 列表中。
我在 Windows10 上安装了 64 位 Cygwin,我想从桌面快捷方式打开 Cygwin GUI 应用程序,例如 atril,而不必打开 Cygwin 终端并从命令行启动它们手动。
我有:
- 创建了一个包含行“exec sleep infinity”的 ~/.startxwinrc 文件
- 将这些行添加到 ~/.bashrc
export DISPLAY=:0.0
which startxwin > /dev/null 2>&1
if [ $? -eq 0 ]; then
startxwin > /dev/null 2>&1 &
fi
我现在可以通过启动 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 之后包含以下文本(我无法在此处尝试 post shebang 时获得正确的格式。)。它可以从 Cygwin 终端内成功启动。
nohup /bin/atril.exe &
sleep 3s
我在互联网上搜索了关于这个问题的信息,其中大部分已经过时(Cygwin 现在使用 /bin 而不是 /usr/bin,Cygwin 不再有 X11R6 文件夹,而是 DISPLAY=:0.0 DISPLAY=localhost:0.0, etc...) 但在这一点上我已经束手无策了。
看来我找到了我自己问题的部分答案。由于各种原因,它并不完美:
这可能取决于已经在其他地方作为后台进程启动的 startxwin。
应用程序启动缓慢;有几秒钟的延迟。
用户无法与之交互的终端 windows(大概是充当 GUI 应用程序父进程的 shell)出现在应用程序 windows.[=12= 旁边]
但这可能足以继续下去。假设 pluma 是我们的应用程序,这里是成功启动它的快捷方式:
C:\cygwin64\bin\mintty.exe /bin/bash -l -c "export DISPLAY=:0.0; pluma"
我要感谢答案 的作者 - 我没有通过谷歌搜索找到它,只是在发布时它出现在 "Related" 列表中。