Pet*_*rch 12 windows x11 windows-subsystem-for-linux
xfce4-terminal我在通过 Windows 任务栏上的按钮从 VcXsrv 下的 WSL 安装启动时遇到了一些困难。完成后,除了 xfce4-terminal 之外,我不需要任何 DOS 框/控制台/终端。我已经可以使用了,但是它太丑了。有人有更干净的方法吗?
这是我所做的工作:我在桌面上使用此目标创建了一个 Windows 快捷方式(全部在一行中,为了便于阅读,用换行符分隔):
\nC:\\Windows\\System32\\wscript.exe\n \\\\wsl$\\Ubuntu-20.04\\home\\peter\\bin\\windows\\startTerminal.vbs\nRun Code Online (Sandbox Code Playgroud)\nstartTerminal.vbs灵感来自10 Ways To Run Batch Files And Hide The Console Window \xe2\x80\xa2 Raymond.CC(少数不需要为此安装单独程序的解决方案之一!),它包含:
CreateObject("Wscript.Shell").Run "C:\\Windows\\System32\\wsl.exe -u peter --exec /home/peter/bin/windows/startTerminal.sh",0,True\nRun Code Online (Sandbox Code Playgroud)\n并startTerminal.sh包含:
export DISPLAY=localhost:0.0\nxfce4-terminal --command=/bin/zsh\nRun Code Online (Sandbox Code Playgroud)\n尽管我在 ~/.zshrc 中设置了 DISPLAY 环境,但显然需要设置 DISPLAY。除非您运行登录 shell,否则 wsl.exe 显然不会执行此操作。
\n一旦所有这些都正常工作,我可以将快捷方式拖到任务栏并单击那里。
\n我数数3,三个文件合作来实现这个简单的目标?我可以在不安装外部程序的情况下将其限制为一两个吗?
\nSaj*_*Saj 11
是的,我认为您可以在一个快捷方式文件中执行我所做的操作。我将分享对我有用的内容,然后你就必须摆弄你的程序了。
尝试将所有命令放入快捷方式链接文件的目标部分。
步骤 1. 右键单击桌面,然后单击“新建”,然后单击“快捷方式”,然后将其命名为 (LaunchXFCE4)
步骤 2. 右键单击 LaunchXFCE4 选择属性
步骤 3. 在“目标”部分中输入所有启动序列
步骤 4. 右键单击 LaunchXFCE4 选择固定到任务栏
我将使用这段代码在 WSL 2 上启动 Emacs 27.1,并在 Windows 10 上使用 Ubuntu 20.10,您也许可以修改该代码。
C:\Windows\System32\wsl.exe --distribution Ubuntu20 bash -c "export DISPLAY=$(ip route | awk '{print $3; exit}'):0 && export LIBGL_ALWAYS_INDIRECT=1 && export XCURSOR_SIZE=16 && setsid emacs"
Run Code Online (Sandbox Code Playgroud)
第一个导出显示与您的 localhost:0.0 类似,因此请将其替换或尝试我的。也许你的 xfce4 取代了我的 emacs。阅读这篇关于双 & 符号的文章。所以可能是这个
C:\Windows\System32\wsl.exe --distribution Ubuntu20 bash -c "export DISPLAY=localhost:0.0 && export LIBGL_ALWAYS_INDIRECT=1 && export XCURSOR_SIZE=16 && setsid xfce4-terminal --command=/bin/zsh"
Run Code Online (Sandbox Code Playgroud)
请注意,我的 VcXsrv 在 Windows 启动时启动,方法是在我的 C:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 中放置 config.xlaunch 的快捷方式。
顺便说一下,根据微软的博客,微软将在几个月内为 WSL 提供 GUI
WSL 中的 GUI 应用程序支持正在成为现实!我们距离初始预览版越来越近,并很高兴地宣布在接下来的几个月内为 Windows Insiders 推出预览版。
我通过以下方式消除了对文件的需求startTerminal.sh:
编辑startTerminal.vbs以包含:
CreateObject("Wscript.Shell").Run "C:\Windows\System32\wsl.exe -u peter bash -l -c xfce4-terminal",0,True
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个~/.bash_profile来设置$DISPLAY变量,无论如何这可能应该完成:
$ cat .bash_profile
if [ -z "$DISPLAY" ]; then
export DISPLAY=:0
fi
Run Code Online (Sandbox Code Playgroud)
现在有了快捷方式和startTerminal.vbs启动它的 a 。它仍然不是很优雅......
| 归档时间: |
|
| 查看次数: |
20595 次 |
| 最近记录: |