是否可以使用批处理脚本在WSL2中启动xfce4?

时间:2020-06-15 17:14:41

标签: ubuntu batch-file autohotkey windows-subsystem-for-linux xfce

因此,我刚刚开始使用自动热键来简化一些我必须要做的事情。其中之一是使Windows + Shift + L成为启动虚拟桌面的快捷方式。

一些注意事项:

  • 我在Windows 10 Home(2004版)上
  • 我正在使用WSL2
  • 我正在使用Ubuntu 20.04
  • 我正在将XLaunch用于XServer

AHK文件如下:

; Global hotkeys
#+l::Run, C:\Users\conne\WSL\linuxmachine.bat

此文件运行我的批处理文件,这是问题所在。

要运行我的虚拟桌面,我必须运行XLaunch文件来运行XServer,然后(在Ubuntu 20.04中)运行

startxfce4

我尝试通过如下所示的批处理文件来执行此操作。

START C:\Users\conne\WSL\XLaunch.xlaunch

wsl.exe startxfce4

这样可以很好地启动XServer,但是当它必须运行xfce4启动时,我会收到一条错误消息:

/usr/bin/startxfce4: Starting X server

/usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server

我的猜测是,除非我实际上使用的是Ubuntu,否则机器将拒绝我运行命令的权限。

任何建议将不胜感激!

1 个答案:

答案 0 :(得分:2)

您无权运行X服务器。要更改此设置,请编辑/etc/X11/Xwrapper.config,使其显示为:

allowed_users=anybody
needs_root_rights=yes

完成此操作后,您很可能会遇到另一个问题,即找不到任何屏幕。我不知道您是否注意到了这一点,但是如果您在~/.bashrc中创建一个别名并尝试使用“ wsl command”运行它,它将不会接受它说“找不到命令”。这意味着您需要使wsl.exe在执行任何操作之前也查看~/.bashrc文件,因为DISPLAY配置位于该文件中。

我将粘贴从这里https://superuser.com/questions/1444767/how-to-use-alias-created-commands-with-wsl-command-wsl-ubuntu找到的解决方案

wsl bash -ic command

所以在这种情况下会是

wsl bash -ic startxfce4

执行此操作后,如果在.bashrc文件中正确配置了显示,则它应该可以工作。无论如何,它对我有用。