ArchWsl 运行图形界面程序

最新的WSL2已经支持图形界面(wslg)了,这里教大家运行GUI应用(桌面环境同理,但是我建议大家不要安装桌面环境,没有桌面环境也可以单独运行GUI应用)

更新WSL

建议更新到最新版本,早期的WSL2不支持wslg,如果你是wsl1,请先升级wsl2

# 更新wsl版本
wsl --update
# 停止正在运行的实例,不停的话不会生效
wsl --shutdown

安装ArchWSL

安装好了的请直接跳过此步骤

下载

Releases · yuk7/ArchWSL · GitHub

安装请看如下官方说明

如何安装 | ArchWSL official documentation

运行GUI应用

原文如下

使用 WSL 运行 Linux GUI 应用 | Microsoft Learn

文中以ubuntu为例的,其实其他linux也是一样,直接安装GUI应用就可以了

本文以firefox为例,原文中是gimp、vlc

# 安装
sudo pacman -S firefox firefox-i18n-zh-cn
# 启动
firefox

 如果此时出现以下错误

[2950] Wayland Proxy [0x7f1ae414d350] Error: CheckWaylandDisplay(): Failed to connect to Wayland display '/run/user/0//wayland-0' error: No such file or directory
Error: Failed to open Wayland display, fallback to X11. WAYLAND_DISPLAY='wayland-0' DISPLAY=':0'
[GFX1-]: glxtest: Could not connect to wayland display, WAYLAND_DISPLAY=(null)

如下图

不要慌,链接wslg的接口套接字到x11

sudo rm -r /tmp/.X11-unix
ln -s /mnt/wslg/.X11-unix /tmp/.X11-unix

再执行firefox命令就会弹出窗口了。

建议再创建一个配置文件/etc/tmpfiles.d/wslg.conf写入以下内容,这样重启就不会再出现上面的问题了

#  This file is part of the debianisation of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.

# See tmpfiles.d(5) for details

# Type Path           Mode UID  GID  Age Argument
L+     /tmp/.X11-unix -    -    -    -   /mnt/wslg/.X11-unix

这里的解决方案是通过后面的链接找到的,如果有其他问题,建议翻阅。

问题排除

Diagnosing "cannot open display" type issues with WSLg · microsoft/wslg Wiki · GitHub

中文乱码

这种方式打开GUI程序,如果需要展示中文,就会展示成小方块,需要按以下步骤配置中文字体

# 修改字体配置
sudo sed -i 's/#zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/g' /etc/locale.gen
sudo locale-gen

# 安装中文字体
sudo pacman -S noto-fonts-cjk noto-fonts-emoji

# 重启wsl生效
wsl --shutdown
wsl

中文输入法

安装fcitx5, 详细配置可参考

# 安装
sudo pacman -S fcitx5-im fcitx5-chinese-addons fcitx5-material-color

# 启动
fcitx5 &

配置环境变量,写入~/.bashrc

export LANG=zh_CN.UTF-8
export LC_CTYPE="zh_CN.UTF-8"

# 一般只需要这三行就可以了
export QT_IM_MODULE=fcitx
export GTK_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

export DefaultIMModule=fcitx
export SDL_IM_MODULE=fcitx
export GLFW_IM_MODULE=ibus

export XIM=fcitx
export XIM_PROGRAM=fcitx

配置fcitx5,运行命令

fcitx5-configtool

如果运行出现这个错误:无法通过DBus连接到Fcitx,Fcitx是否正在运行?

这是应该是wsl在开启systemctl的一个bug,没有自动创建dbus的用户进程。可以通过systemctl status --user验证,会报错:“Failed to connect to bus: No such a file or dirctory”,手动启动dbus可以解决这个问题,但是需要每次都允许dbus-damon,github issues有解决方法

sudo loginctl enable-linger $USER

 原文:microsoft/WSL#10205 (comment)

其他问题可以运行fcitx5命令,看一下日志,或者执行下诊断命令fcitx5-diagnose

如果由于wayland的原因导致连接不上,可以禁用wayland

方法一:能打开fcitx5配置窗口(fcitx5-configtool)

方法二:不能打开fcitx5配置窗口(fcitx5-configtool)

# 在配置文件 /home/$USER/.config/fcitx5/config 后面追加 以下内容
[Behavior/DisabledAddons]
0=wayland

方法三:直接删除wayland附加组件

rm /usr/share/fcitx5/addon/wayland*

在Windows环境下,你可以使用ConEmu来改善命令行界面的使用体验。ConEmu是一个开源的命令行终端模拟器,它可以集成诸如ping、ipconfig等命令,避免乱码。你可以从中提供的链接获取有关在Windows上配置ConEmu的详细指南。ConEmu可以解决Windows命令行界面的一些问题,例如窗口宽度不能全屏、字体难看且无法调整、窗口背景不能更换等。它还提供复制和粘贴功能,可以方便地进行操作。使用ConEmu,你可以更好地使用Windows命令行界面。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Window 10下使用zsh的多种体验——ConEmu&Msys2+ConEmu_ChildGUI&Msys2&Mintty+ConEmu&ArchWSL](https://blog.csdn.net/sherpahu/article/details/101903539)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [定制windows环境下cmd替代软件ConEmu](https://blog.csdn.net/weixin_30659829/article/details/98567433)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值