Windows 上 Ubuntu 上的 Bash 上的 Gnome 3

Windows 上 Ubuntu 上的 Bash 上的 Gnome 3

是否可以在 Windows10 的 Linux 子系统上用 Gnome3 替换 explorer.exe?我看过 Cgywin 的教程,但我想知道是否有人让它使用 WSL?

我遇到了问题

DISPLAY=localhost:0

答案1

我刚刚测试了 Gnome 3,看起来运行起来并不容易,但是我目前在 PC 和笔记本电脑上设置了双任务栏,一个是 Windows 任务栏,另一个是 XFCE4。以下是我设置的方式:

  • 首先确保 WSL 已设置。
  • 下一步安装虚拟主机在 Windows 端,这将用于显示来自 WSL 的图形输出。
  • 现在我们需要告诉 WSL 指向 VcXsrv,执行此运行:echo "export DISPLAY=:0.0" >> ~/.bashrc每次启动时都会读取此文件bash
  • 我们还需要解决 dbus 的问题,为此只需 sudo sed -i 's$<listen>.*</listen>$<listen>tcp:host=localhost,port=0</listen>$' /etc/dbus-1/session.conf在 bash 中运行:。
  • 让我们全面测试一下它的工作原理,启动 XLaunch(VcXsrv 的一部分),选择“多个窗口”,并将 0 作为显示数字。单击下一步两次,然后完成。
  • 运行一些图形程序进行测试,尝试 xeyes(您可能需要先安装 x11-apps sudo apt-get install x11-apps:)
  • 成功了吗?很好,现在我们需要运行一个桌面,我将展示 XFCE4 的步骤,但是我看到 Unity 可以运行,我怀疑 LXDE 应该也可以运行。(我知道 Cinnamon 有多个问题似乎与 Gnome 类似)
  • 跑步:sudo apt-get install xfce4
  • 完成后运行:xfce4-session,等待一分钟,你应该会看到一个询问面板的弹出窗口,我建议选择默认配置,除非你习惯使用 XFCE4。
  • 如果所有这一切正常,我们就可以开始了,请随意定位和配置您的新任务栏。
  • 接下来我们需要一种方法来阻止窗口在新任务栏下方最大化,为此我使用了桌面珊瑚,它是免费的,但有点烦人,你必须每六个月获得一个新密钥,但一段时间后你会得到一个终身密钥。如果你不想使用它,那么寻找一个可以保留屏幕空间的程序。
  • 设置完成后,对其进行配置,使其保留与面板所在位置相同的空间,并检查窗口是否未在其下方绘制。如果满意,请勾选透明模式选项
  • 现在我们需要让这一切无缝地“正常工作”,Desktop Coral 已经在启动时运行,所以这已经涵盖了。我们现在需要在 Windows 端编写一个脚本,以便在启动时运行 bash 和 XFCE4。启动一个文本编辑器(记事本就可以)并粘贴以下内容:

    set ws=wscript.createobject("wscript.shell")
    ws.run """C:\Program Files\VcXsrv\vcxsrv.exe"" :0 -ac -terminate -lesspointer -multiwindow -clipboard -wgl",0
    WScript.Sleep 500
    ws.run "C:\Windows\System32\bash.exe -c 'export DISPLAY=:0.0; xfce4-session'",0
    
  • 这将同时启动我们的 X 服务器和桌面环境,将其保存为<somewhere important>/<whatever>.vbs

  • 通过退出 VcXsrv 然后双击该脚本来测试该脚本是否正常工作,等待一会儿,你的新任务栏就会出现。
  • 现在我们需要在启动时运行它,因此启动任务计划程序,转到操作->创建基本任务...
  • 为您的任务命名,单击下一步,然后选择“当我登录时”。单击下一步两次,然后输入或浏览到您的脚本。单击下一步,最后完成。
  • 最后一件事是重新启动,看看它是否有效!

这应该会给你一个在 Windows 中可以正常使用的 Linux 环境,虽然它不是完美的(可能需要关闭屏幕保护程序),但它确实有效!我还没有找到如何替换 Explorer,我怀疑这是不可能的,因为你从新任务栏运行的任何程序都会出现在 Windows 任务栏上,而不是 XFCE4 任务栏上。

顺便说一句,不要被 XFCE4 的糟糕外观所打动,它是完全可主题化的,并带有大量内置主题可供选择,还有更多主题可供下载。

最后要注意的是,这个任务栏将绘制在全屏窗口之上,我目前使用涡轮顶当我需要它时关闭它,不是特别优雅,所以要注意这个问题寻求解决方案。

答案2

顺便说一下,您需要做的就是:

apt update && apt upgrade -y && apt install xfce4 x11-apps lightdm

然后,

xfce4-session --display=0:0

只要确保你在 Windows 上使用 xming 或 vcxsrv 或其他东西即可

答案3

我认为这是不可能的。

explorer.exe是 Windows 的 Shell。explorer.exe在成功验证后由 WinLogon 启动。WinLogon 通过查看Shell此处的注册表项将其识别为 shell:

 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

我认为您说的 cygwin 方法是这个(我通过快速搜索只能找到这种古老的方法): https://marc.info/?l=kde-cygwin&m=103072530327420&w=2

从我所看到的,我们只需将explorer.exe上面指定的注册表项替换为c:\cygwin\bin\bash --login -c startx

这意味着当我们登录时,Windows 资源管理器不会启动,而是会启动 bash 并启动 X 服务器(意味着 KDE [或 GNOME] 将启动)。现在,让我们分析一下这里会发生什么。

首先,没有 Windows 资源管理器。如果您曾经从任务管理器中终止所有 explorer.exe 进程,您可能会注意到屏幕一片空白。如果您打开了一些应用程序,即使您最小化它们,它们也会浮在屏幕上,因为没有 explorer.exe 来处理打开的窗口。

现在,启动的 bash(以及 GNOME)是一个全屏应用程序(很像游戏)。它将像普通窗口管理器一样运行,它将浏览文件,拥有(自己的)任务栏和通知区域等。但最终,它只是一个普通的应用程序,与notepad.exe(当然,除了全屏之外)没有什么不同。上面的链接本身暗示了这一点:

注意:如果您想从这里运行 Windows 程序,在 Windows 2000 上,您可以按 Ctrl-Shift-Esc 调出任务管理器,然后转到文件/运行。

启动任务管理器将退出全屏模式并显示任务管理器在 GNOME 界面“上方”,而不是“内部”。

关于退出,有这么一段话:

从 KDE 注销并不是真正注销,您需要以另一种方式关闭 KDE,然后按 Ctrl-Alt-Del 并选择注销。根据您的 .xserverrc 参数,可以使用 Ctrl-Alt-Backspace 或 Alt-F4 关闭 X 服务器。否则,您可以从任务管理器关闭它(选择 Cygwin 任务并说结束任务)。

因此,毫无疑问,当您登录时,您会看到一个 GNOME 界面,您可能会应用所有繁琐的技巧通过快捷方式启动 Windows 应用程序,但是这不是 explorer.exe 的替代品

相关内容