我已经厌倦了在 Windows 上使用不太好的终端仿真 + CygWin 组合时遇到的 (视觉) 问题。现在,我在终端中工作时只需从我的服务器运行转发的 gnome 终端。设置非常简单,使用我通过 cygwin 获得的 Xserver,我通过发出“startx -- -multiwindows -clipboard”从命令行启动它。这些参数意味着每个程序都有自己的窗口。在本地网络上,性能足以满足我的需求。
我当前的设置有三个问题
- 我需要从控制台手动发出startx。我希望它可以在我登录时在后台启动。
- 看来 startx,或者更确切地说 ~/.xinitrc 需要发出“exec some-program”。目前启动了一些 xterm,但我用不到。我希望这个程序不可见。
- 我需要启动一个控制台(或者使用 xinit 为我启动的 xterm 窗口),然后手动发出“ssh -Y myuser@myserver gnome-terminal”来开始运行。如果我从另一个 cygwin 控制台发出该命令,那么我还必须手动将“DISPLAY”设置为当前的值。
我如何才能自动化/改进这个设置?
答案1
以下是我迄今为止的发现:除 #3 外,所有功能均正常。
发现开始菜单中的快捷方式满足了我的要求。它
DISPLAY=:0
通过运行 启动 XserverC:\cygwin\bin\run.exe /usr/bin/bash.exe -l -c /usr/bin/startxwin.exe
,并使用多窗口作为默认设置。因此,只需将此快捷方式(或使用相同内容创建自己的快捷方式)复制到开始菜单中的“启动”文件夹,X server 就会在登录时启动。我阅读了 startxwin 上的手册文件。似乎如果找不到文件,它就会启动 xterm
~/.startxwinrc
。只需创建一个以此名称命名的空文件,我就能得到我想要的结果:什么都没有启动,X 服务器正在运行。还没完成。我创建了一个运行以下命令的快捷方式
bash.exe -l -c "DISPLAY=:0 ssh -Y myuser@myserver gnome-terminal"
。这会创建一个控制台窗口,该窗口登录到我的服务器,然后启动 gnome-terminal。除了“虚拟”控制台外,这几乎已经完成了。我尝试将"C:\cygwin\bin\run.exe"
命令添加到前面,但它只是默默地执行,没有任何反应。