Windows X-server based on the xorg git sources (like xming or cygwin’s xwin), but compiled with Visual C++ 2012 Express Edition. Source code can also be compiled with VS2008, VS2008 Express Edition and VS2010 Express Edition, although current project and makefile are not fully compatible anymore.
Versions starting from 1.14.3.0 are not compatible with Windows XP anymore.
Project Samples
License
GNU General Public License version 3.0 (GPLv3)
As the largest commercial provider of hosting and support services for the open-source Moodle™ learning platform, we help organizations and institutions deliver great learning experiences without complexities
User Ratings
4.9
out of 5 stars
★★★★★
★★★★
★★★
★★
★
ease
1 of 5
2 of 5
3 of 5
4 of 5
5 of 5
4 / 5
features
1 of 5
2 of 5
3 of 5
4 of 5
5 of 5
4 / 5
design
1 of 5
2 of 5
3 of 5
4 of 5
5 of 5
4 / 5
support
1 of 5
2 of 5
3 of 5
4 of 5
5 of 5
4 / 5
User Reviews
- All
- ★★★★★
- ★★★★
- ★★★
- ★★
- ★
-
WOW 32 bit versions !!
great !! thanks !! -
Perfect for WSL on Windows 10
-
good program, of course there are cons, but it’s not bad
-
before connecting to remote export DISPLAY=localhost:0.0 and in ssh use «-XY» parameters
1 user found this review helpful.
-
It does it’s job. I’m using it with WSL. Thanks to the devs.
Read more reviews >
Additional Project Details
Intended Audience
Advanced End Users, System Administrators, Developers, End Users/Desktop
User Interface
X Window System (X11), OpenGL, Win32 (MS Windows), Project is a window manager
Programming Language
C++, C
In this post I will demonstrate how to run Linux GUI (Graphical User Interface) applications on Windows Desktop platform.
For now, it is necessary to install a third-party App to run the GUI Apps, but Microsoft announced on //build 2020 that they will release soon an improvement that will not require any third-party component to run Linux GUI Apps on Windows Desktop.
Pre-requirements:
- Windows 10
- WSL
If you want to know how to install WSL on Windows 10, please check the following post:
Using WSL2 in a Docker Linux container on Windows to run a Minecraft Java Server
It will be demonstrated the three ways to run the Linux GUI Apps on Windows 10 through:
- VcXsrv Windows X Server (free)
- X410 App available on Microsoft Store (paid app)
- Kali App available on Microsoft Store (free)
First option: VcXsrv Windows X Server
The X server is a provider of graphics resources and keyboard/mouse events. I am using the VcXsrv Windows X Server that is open-source and is frequently update.
The first step is to install the third-part display manager called VcXsrv Windows X Server available at:
https://sourceforge.net/projects/vcxsrv/
During setup is important to disable the access control to avoid the permission denied error when trying to run a GUI application:
To warranty that the “Disable access control” will be always checked, save the configuration and always launch VcXsrv using the configuration file (config.xlaunch) :
NOTE: Don’t forget to allow VcXsrv in the Windows firewall settings.
Windows Security -> Firewall & network protection -> Allow an app through firewall -> make sure VcXsrv has both public and private checked.
The next step is to set the DISPLAY environment variable on Linux to use the Windows host’s IP address as WSL2 and the Windows host are not in the same network device. It is necessary to set the DISPLAY environment variable with the correct IP address on launch. There are different ways to set the DISPLAY variable, thank you @ZeevS and @Barry_Bazza for the updates.
Follows some ways that you can choose:
export DISPLAY="`grep nameserver /etc/resolv.conf | sed 's/nameserver //'`:0"
export DISPLAY="`sed -n 's/nameserver //p' /etc/resolv.conf`:0"
export DISPLAY=$(ip route|awk '/^default/{print $3}'):0.0
Running the following command, it is possible to see that the $DISPLAY environment variable now has the Windows Host’s IP set:
Echo $DISPLAY
To avoid having to run that command every time that WSL is launched, you can include the command at the end of the /etc/bash.bashrc file:
UPDATE: I would like to thank @samuel_skeen for let me know that now it is also necessary to create a .xsession file in the user’s home directory (/home/<user>/.xsession) with the content xfce4-session:
echo xfce4-session > ~/.xsession
Done! Now you can run the Linux GUI Apps on Windows desktop.
Let’s try this out!
Follows some Apps that you can use to test:
Install Chromium Dev :
sudo add-apt-repository ppa:saiarcot895/chromium-dev
sudo apt-get update
sudo apt-get install chromium-browser
Install GEDIT:
sudo apt install gedit
gedit
Install x11-apps:
sudo apt install x11-apps
xeyes
xcalc
Make sure that XLaunch is running and before calling the Linux GUI Apps on Windows Desktop environment.
What about running Windows 10 Apps and Linux GUI Apps in the same Desktop?
Run the following command to launch the xfce-panel:
xfsettingsd --sm-client-disable; xfce4-panel --sm-client-disable --disable-wm-check &
What about accessing the Linux Desktop Environment via RDP?
The first thing that you need to do is to install a Linux Desktop Environment. I will user Xfce as it is a lightweight one.
Run the following commands to install Xfce:
sudo apt install xfce4
The next step is to install the xrdp that provides a graphical login to remote machines using RDP (Microsoft Remote Desktop Protocol).
sudo apt install xrdp
Type the following command to get the WSL IP address:
ip a
Make sure that xrdp service is running:
Run the Remote Desktop Client (MSTSC) and type the WSL IP address to connect to xfce4:
Done! Now you can access your favorite Linux IDE on WSL.
Second option: X410 App
The app is available on Microsoft Store:
https://www.microsoft.com/store/productId/9NLP712ZMN9Q
In the image below I am using the the X Server X410 App available in the Windows 10 store, that has a better graphic performance:
Enabling Sound
X410 X Server App, as well as XLaunch, supports sound on Ubuntu (18;04 and 20.04). If you are using X410, please following the steps available at:
I only had to change the third step to use auth-anonymous instead of the auth-ip-acl:
load-module module-native-protocol-tcp auth-anonymous=1
More details here: https://github.com/microsoft/WSL/issues/4205
I defined the PULSE_SERVER environment variable too, as:
export PULSE_SERVER=tcp:$(grep nameserver /etc/resolv.conf | awk '{print $2}')
Thank you @Barry_Bazza, for letting me know that the following Pulse Audio version also works: pulseaudio-5.0-rev 18 .
This is the code bat file that I am using to load X410:
@echo off
start /B x410.exe /wm
start "" /B "C:wslpulseaudiobinpulseaudio.exe"
ubuntu2004.exe run "if [ -z $(pidof xfce4-panel) ]; then export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2; exit;}'):0;export PULSE_SERVER=tcp:$(grep nameserver /etc/resolv.conf | awk '{print $2}'):0; cd ~; xfsettingsd --sm-client-disable; xfce4-panel --sm-client-disable --disable-wm-check; taskkill.exe /IM x410.exe;taskkill.exe /IM pulseaudio.exe /F; fi;"
For more details about how to enable the xfce-panel steps, please check:
https://x410.dev/cookbook/wsl/xidekick/
Follows a great thread about how to fix sound issues:
No sound in wsl2 · Issue #4205 · microsoft/WSL (github.com)
Third option: Kali App
Kali Linux Windows Application is available on Microsoft Store:
https://www.microsoft.com/store/productId/9PKR34TNCV07
Once installed, after having providing the credentials, run the following command to install Win-KeX to allow running GUI Linux Apps on KALI for Windows:
sudo apt update && sudo apt install kali-win-kex
Run the following command to run Kali:
kex wstart
The KALI environment will be loaded:
With Kali, you don’t have to worry about setting environment variables or starting services.
Follows the Kali page with more details:
Kali Linux in the Windows App Store | Kali Linux
Win-KeX Version 2.0 | Kali Linux
In this post we see how to run GUI Linux Apps using XServer on Windows Desktop environment and how to access the full WSL Linux desktop environment.
I hope you liked!
This used to be the repo providing the code for the version of VcXsrv that got shipped
with the Windows client of x2go (https://www.x2go.org). Starting with version 4.1.2.0
of the client (released 2018-06-25) VcXsrv’s (then current) upstream version 1.20.0.0
is shipped. So this repo is no longer updated. Bug reports regarding the X server should
be opened at the upstream VcXsrv site: https://sourceforge.net/projects/vcxsrv/
VcXsrv Windows X Server (Custom builds by X2Go & Arctica)
The X2Go Project and Arctica Project are maintaining 1.15.2.x & 1.17.0.0-x branches of VcXsrv.
VcXsrv is a Windows X-server based on the xorg git sources (like xming or cygwin’s xwin), but compiled with Visual Studio.
The upstream VcXsrv project can be found on SourceForge. Their last release of VcXsrv 1.15.2.x was 1.15.2.0, and it lacks Windows XP support.
Differences from VcXsrv
The primary differences from upstream VcXsrv are:
- Compatibility with Windows XP
- Prompt security updates
There are frequent security updates because numerous 3rd-party components are in the source tree. In addition to xorg-server, there are components such as openssl, freetype2 & various X11 libraries.
Other changes are:
- Only 32-bit builds (for the time being)
- Fixes for issues when used with nx-libs
- Improvements for contributors: Build Instructions are current & correct, we accept pull requests/patches, we respond to issues (although we cannot guarantee timely fixes), etc
- Better compression within the installer (for 1.17.0.0-x)
Download Builds:
Current versions of both 1.15.2.x & 1.17.0.0-x and be found on the Releases page on GitHub.:
1.15.2.6
and earlier, as well as 1.17.0.0-1
, can be found here.
Community Support
You can post issues using GitHub.
You can also ask questions about VcXsrv usage or discuss development on the X2Go mailing lists. Note that this may change in the future.
Professional Support
Professional Support is available from one of the X2Go Developers.
Info for Developers
Why this repo and these builds exist.
You might be wondering why this repo and these builds exist. Why not upstream your changes?
- The primary developer of this repo and these builds (Mike DePaulo) tried multiple times to submit merge requests (the SourceForge equivalent of pull requests) and bug reports to the upstream VcXsrv project. The upstream VcXsrv developer (marha) only replied once. He rejected the merge request (for a legit reason), and gave good advice. However, he did not reject the merge request via the actual SourceForge system, and he has not responded since.
- SourceForge’s support for git is terrible. For example, whenever I tried to merge request from branch Y on my personal repo to the master branch on the upstream VcXsrv repo, it tried to merge my master branch instead.
- SourceForge has recently done terrible things as GitHub has gained popularity
- Using a GitHub repo is much preferable to using a personal SourceForge repo in terms of visibility.
Explanation of Branches:
- master — The upstream VcXsrv branch that upstream VcXsrv is built from. Currently on the 1.16.x version series.
- release/1.15.2.x — the 1.15.2.x branch maintained by Arctica and X2Go.
- release/1.17.0.0-x — the 1.17.0.0-x branch maintained by Arctica and X2Go.
- release/external — Upstream copies the released (or git) versions of the various packages into this branch, which they call
released
. They then update the packages.txt file at the root. This branch contains 0 modifications to those packages. Upstream then uses git’s merge feature to merge these packages updates/upgrades into master, where upstream does make modifications to those packages. - release/external-1.15.2.x — same as
release/external
, but forrelease/1.15.2.x
rather thanmaster
. - release/external-1.17.0.0-x — same as
release/external
, but forrelease/1.17.0.0-x
rather thanmaster
.
Когда Microsoft впервые представила свой WSL чуть менее 4 лет назад, многие пользователи были в восторге от новинки. Помимо прочего, наличие терминала Linux в Windows позволяет нам использовать множество инструментов. Но у такой «виртуальной машины» есть небольшая проблема: на самом деле, что объясняется быстро и плохо, она не подключена ни к какому устройству вывода, поэтому мы не можем запускать приложения с графическим интерфейсом пользователя. Или не официально, потому что VcXsrv если он позволит нам.
VcXsrv — это сервер Windows X на базе xorg. Это небольшое приложение позволит нам смоделировать, что у нас есть монитор, подключенный к нашему WSL, с помощью которого мы можем запускать приложения с пользовательским интерфейсом. Потому что их установка уже была возможна, но когда мы пытались их запустить, выскакивала ошибка. В этой статье мы покажем вам шаги, которые вы должны выполнить, если, например, вы хотите установить Gedit в Windows 10.
Индекс
- 1 Как запускать приложения Linux с графическим интерфейсом в Windows 10 благодаря VcXsrv
- 2 поиск неисправностей
- 3 Будьте внимательны, могут быть проблемы с мультимедийными приложениями.
- Первое, что нам нужно сделать, это установить WSL. В В этой статье с сентября прошлого года вы объяснили все, что вам нужно для этого. ВАЖНО: На момент написания нет необходимости обновляться до WSL 2; Есть некоторые ошибки, которые блокируют запуск приложений Linux с графическим интерфейсом пользователя в Windows 10. Они, вероятно, будут исправлены в будущем, но сейчас это невозможно.
- Затем мы устанавливаем VcXsrv, доступный по адресу ссылку.
- Во время установки оставим все по умолчанию. В конце установки VcXsrv будет работать в фоновом режиме, и мы сможем получить доступ к его параметрам из панели задач.
- Если он показывает нам предупреждение брандмауэра, мы разрешаем доступ «VcXsrv windows xserver».
- Следующим шагом будет запуск тестов. Теоретически мы можем установить любое приложение, и команда будет зависеть от установленного нами дистрибутива Linux. В Ubuntu и производных это обычная команда (sudo apt install APP). Мы помним, что установка приложений в WSL — это долгий процесс, поэтому вам придется набраться терпения.
- После установки приложения мы выполним следующую команду:
export DISPLAY=:0
- После выполнения команды мы должны запустить приложение. Для этого мы должны написать свое имя в терминале. В случае с «Gedit» мы должны написать «gedit».
Если мы хотим запускать несколько приложений Linux одновременно, мы должны запускать их из оконный терминал. Помните, что для этого перед любой командой мы должны ввести «wsl» без кавычек. Нам нужно будет использовать команду из шага 6 перед запуском каждого приложения.
поиск неисправностей
Обычно проблем не так много, но наиболее распространенной является то, что мы используем WSL 2, который, как мы уже объяснили, в настоящее время содержит некоторые ошибки. Что нам нужно сделать, это понизить рейтинг (переход на более раннюю версию). Сделаем это так:
- Мы открываем Windows PowerShell и вводим следующую команду, чтобы показать нам, какую версию WSL мы используем:
wsl -l -v
- Если он показывает нам только параметры справки, предполагается, что мы находимся в WSL 1. Если появляется информация о версии и в разделе «ВЕРСИЯ» отображается «2», мы должны спуститься вниз, введя следующую команду:
wsl --set-version Ubuntu 1
- Следующий шаг — терпение. Переход на более раннюю версию может занять от 20 до 30 минут (или больше), в зависимости от используемого нами оборудования. После завершения процесса графические приложения Linux должны работать без сбоев.
Будьте внимательны, могут быть проблемы с мультимедийными приложениями.
То, что объясняется в этой статье, относится к изображению. Это означает, что мы можем без проблем запускать такие приложения, как Gedit, но не рекомендуется устанавливать такие приложения, как Rythmbox, потому что звук не будет таким, как ожидалось. В остальном приложения работают достаточно хорошо, как если бы они были родными. Независимо от всей графической среды, «виртуальная машина» работает гораздо более плавно, чем другие, как и любые, которые мы устанавливаем в Virtualbox или в собственном Hyper-V Microsoft.
Не исключено, что в будущем ситуация улучшится и по звуку. В любом случае, то, что объясняется в этой статье, будет полезно всем тем, кто хочет использовать некоторые инструменты Linux в Windows, которые в противном случае были бы невозможны. Какое эксклюзивное приложение для Linux вы хотели бы запускать в Windows 10?
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Вы можете быть заинтересованы
Руководство основателя:
Как установить рабочий стол Ubuntu с графическим пользовательским интерфейсом в WSL2
Расширенное руководство с пояснениями и скриншотами
Внимание: эта статья была переписана, чтобы упростить процесс и включить в него обновления. См. Обновленную статью «здесь ».
Скачать VcXsrv:
SourceForge — это веб-служба, которая используется для бесплатной загрузки программного обеспечения с открытым исходным кодом и размещения репозиториев программного обеспечения с открытым исходным кодом. Он обеспечивает централизованную систему контроля версий для управления проектами с открытым исходным кодом. Он также предоставляет конечным пользователям простой способ загрузки и установки программного обеспечения.
- Посетите официальный сайт
- Нажмите «Скачать».
Установите VcXsrv:
Visual C ++ X Server (VcXsrv) — это сервер отображения для Windows X System (X11), совместимый с Windows. Он может отображать графический интерфейс пользователя (GUI) для программ Linux, запущенных на удаленном компьютере Linux. Он также может отображать графический интерфейс для окружения рабочего стола Linux.
- Откройте «vcxsrv-64.1.20.8.1.installer.exe».
- Нажмите «Далее»
- Нажмите «Установить».
- Нажмите «Закрыть».
Разрешить доступ к VcXsrv:
Параметр Разрешить доступ указывает Брандмауэру Windows разрешить безопасный и незащищенный трафик в указанных сетях для конкретной программы. Это позволяет программе отправлять данные на компьютер и с него, используя различные порты. Это может быть необходимо для работы программы, но это снижает безопасность компьютера.
- Отметьте «Частные сети»
- Нажмите «Разрешить доступ».
Откройте PowerShell:
PowerShell — это оболочка командной строки и объектно-ориентированный язык сценариев, который используется для автоматизации административных задач и настройки параметров системы. Его можно использовать для автоматизации практически всего в операционной системе. Он также заменил командную строку в качестве системной оболочки по умолчанию для Windows 10.
- Нажмите «⊞ Windows».
- Введите «PowerShell» в строку поиска.
- Щелкните правой кнопкой мыши «Windows PowerShell».
- Нажмите «Запуск от имени администратора».
Измените Политику выполнения:
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
Set-ExecutionPolicy Unrestricted -Force
Откройте WSL2:
Подсистема Windows для Linux 2 (WSL2) — это функция Windows 10, которая позволяет пользователям запускать Linux в Windows без использования двойной загрузки или виртуальной машины. Он имеет полный доступ к обеим файловым системам, поддержке графического процессора и поддержки сетевых приложений. Он также обеспечивает доступ к тысячам инструментов командной строки Linux.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
wsl
Установите Ubuntu Desktop:
Ubuntu Desktop — это операционная система для настольных ПК, известная своей быстрой, безопасной и бесплатной. Он устанавливает метапакет, содержащий все пакеты, составляющие среду рабочего стола, которая по умолчанию использует GNOME 3. Это обеспечивает графический пользовательский интерфейс для дистрибутива Linux Ubuntu.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
sudo apt --yes install ubuntu-desktop
Установите переменную имени пользователя:
Подстановка команд $ () — это операция, которая выполняет команду, заключенную в скобки, и сохраняет выходные данные в переменной для дальнейшего использования. Он запускает команду в подоболочке, заменяет эту команду выводом и удаляет все символы новой строки. Он также может быть вложен в другие подстановки команд.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
username=$(wslvar USERNAME)
Создайте каталог Ubuntu:
Команда Создать каталог (mkdir) используется для создания новых каталогов. Он может указывать один или несколько относительных или абсолютных путей с именем создаваемых новых каталогов. Его также можно использовать с флагом «Родители» для создания родительских каталогов по мере необходимости без перезаписи пути, который уже существует.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
mkdir --parents /mnt/c/users/$username/.ubuntu/
Откройте каталог Ubuntu:
Команда Изменить каталог (cd) используется для изменения текущего рабочего каталога на указанный каталог. Он может переходить к абсолютным и относительным путям, которые начинаются с корневого и текущего рабочего каталога соответственно. Он также может переходить по путям, хранящимся в переменных и переменных среды.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
cd /mnt/c/users/$username/.ubuntu
Получите открытый ключ Microsoft:
Apt-key — это программа, которая использует пары ключей для предотвращения загрузки пользователями пакетов, содержащих вредоносные данные. Он хранит закрытый ключ на сервере, на котором хранятся пакеты, и раздает открытый ключ пользователям. Он также использует открытый ключ для проверки закрытого ключа перед загрузкой пакетов.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
sudo apt-key adv --fetch-keys https://packages.microsoft.com/keys/microsoft.asc
Добавьте Microsoft в каталог исходного списка:
Каталог списка источников — это каталог, содержащий отдельные файлы списка источников для отдельных репозиториев. В нем хранится информация, которая используется для загрузки и обновления пакетов из репозитория. Он также дополняет основной файл списка источников, в котором хранится информация о существующих репозиториях на компьютере.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
Ubuntu 20.04: sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/ubuntu/20.04/prod focal main" > /etc/apt/sources.list.d/microsoft-prod.list' Ubuntu 18.04: sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/ubuntu/18.04/prod bionic main" > /etc/apt/sources.list.d/microsoft-prod.list'
Обновите репозитории:
Команда Обновить используется для проверки актуальности списка доступных пакетов. Он загружает список пакетов из репозиториев системы, который содержит информацию о новых и обновляемых пакетах. Он только обновляет информацию о пакетах и фактически не обновляет никакие пакеты.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
sudo apt update
Добавьте Arkane Systems в каталог со списком источников:
Каталог списка источников — это каталог, содержащий отдельные файлы списка источников для отдельных репозиториев. В нем хранится информация, которая используется для загрузки и обновления пакетов из репозитория. Он также дополняет основной файл списка источников, в котором хранится информация о существующих репозиториях на компьютере.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
sudo sh -c 'echo"deb [trusted=yes] https://wsl-translinux.arkane-systems.net/apt/ /"
> /etc/apt/sources.list.d/wsl-translinux.list
'
Обновите репозитории:
Команда Обновить используется для проверки актуальности списка доступных пакетов. Он загружает список пакетов из репозиториев системы, который содержит информацию о новых и обновляемых пакетах. Он только обновляет информацию о пакетах и фактически не обновляет никакие пакеты.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
sudo apt update
Установите Genie:
Genie — это программа, которая может запускать службы в WSL2, для которых требуется systemd. Он создает контейнер, запускает systemd как процесс с идентификатором №1 внутри контейнера и входит в него. Это необходимо, потому что WSL2 не поддерживает systemd, но многие программы полагаются на него для инициализации, управления и отслеживания служб и демонов.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
sudo apt install --yes systemd-genie
Добавить Genie в каталог Sudoers:
Каталог Sudoers — это каталог, содержащий отдельные файлы sudoers, включенные в основной файл sudoers. Он хранит информацию, которая используется для управления пользователями, которым предоставлены разрешения sudo. Он также должен использовать тот же синтаксис, что и основной файл sudoers, поэтому рекомендуется редактировать эти файлы с помощью visudo.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
echo "$USER ALL=(ALL) NOPASSWD:/usr/bin/genie" | sudo EDITOR="tee" visudo --file /etc/sudoers.d/$USER
Создайте сценарий среды рабочего стола:
Сценарий среды рабочего стола используется для создания сценария Bash, запускающего рабочий стол Ubuntu. В основном он устанавливает переменные среды, которые необходимы для того, чтобы среда рабочего стола GNOME 3 работала должным образом. Он также устанавливает переменную display, которая добавляет настраиваемый номер отображения к имени хоста.
- Скопируйте код из нижеприведенных инструкций
- Вставьте код в PowerShell
- Нажмите Ввод»
Загрузите образы дизайна Ubuntu:
Wget — это программа, которая используется для получения файлов из Интернета с использованием протоколов HTTP, HTTPS и FTP. Он может выполнять рекурсивные загрузки, конвертировать ссылки для просмотра HTML в автономном режиме и поддерживать прокси. Он также может выполнять несколько загрузок, возобновлять загрузки и загружать в фоновом режиме.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
wget https://assets.ubuntu.com/v1/9fbc8a44-circle-of-friends-web.zip
Установите Unzip:
Программа Unzip используется для извлечения файлов из zip-файла. По умолчанию он извлекает файлы в новый каталог текущего каталога, но может извлечь их в конкретный каталог, включив параметр «d». Он также может распаковать несколько архивных файлов, перечислив их последовательно или используя подстановочный знак.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
sudo apt --yes install unzip
Разархивируйте образы дизайна Ubuntu:
Ubuntu Design — это веб-сайт компании, на котором представлены рекомендации по созданию профессиональных материалов, веб-сайтов и программ, использующих бренд Ubuntu. Он включает официальные логотипы, шрифты, значки и цветовую палитру. Он также включает рекомендуемые практики для веб-дизайна, дизайна, фотографии продуктов и снимков экрана.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
unzip 9fbc8a44-circle-of-friends-web.zip
Установите ImageMagick:
ImageMagick — это программа, которая используется для отображения, создания, преобразования, изменения и редактирования изображений в более чем 200 форматах файлов. Он может обрабатывать большие пакеты изображений и вносить точные изменения в одно изображение. Он также может управлять изображениями из командной строки или графического пользовательского интерфейса.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
sudo apt --yes install imagemagick
Создайте значок Ubuntu:
Команда Преобразовать используется ImageMagick для преобразования изображений между форматами файлов. Он может выполнять широкий спектр операций с изображениями, таких как изменение размера, размытие, отражение, обрезка, объединение, поворот, масштабирование и преобразование. Он также может использовать 237 опций для совмещения операций обработки изображений и получения сложных результатов.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
convert -resize 64x64
./circle-of-friends-web/png/cof_orange_hex.png ubuntu.ico
Выход из WSL2:
Команда Exit используется для закрытия текущего окна WSL2 без завершения его процесса. Он повторно открывает ту оболочку, которая была запущена ранее, и поддерживает текущий сеанс WSL2 в фоновом режиме. Это позволяет пользователям продолжать работу с того места, где они остановились, после повторного открытия WSL2.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
exit
Создайте сценарий VcXsrv:
Сценарий VcXsrv используется для создания сценария PowerShell, который перезапускает VcXsrv. В основном он ищет VcXsrv в запущенных процессах и останавливает процессы, которые используют определенный номер дисплея. Он также запускает новый процесс VcXsrv, который повторно использует номер дисплея и отображает программы Linux в большом окне.
- Скопируйте код из нижеприведенных инструкций
- Вставьте код в PowerShell
- Нажмите Ввод»
Создайте сценарий рабочего стола Ubuntu:
Сценарий рабочего стола Ubuntu используется для создания сценария Visual Basic, который запускает сценарии PowerShell и Bash. В основном он перезапускает VcXsrv, закрывая все запущенные процессы и запуская новый процесс. Он также запускает рабочий стол Ubuntu путем настройки и запуска среды рабочего стола GNOME 3.
- Скопируйте код из нижеприведенных инструкций
- Вставьте код в PowerShell
- Нажмите Ввод»
Создайте ярлык:
Значок ярлыка используется для выполнения сценария Visual Basic, который перезапускает процесс VcXsrv и запускает среду рабочего стола. Он создается с использованием метода объекта WshShell в Windows Script Host, который указывает расположение значка ярлыка, изображения значка ярлыка и сценария Visual Basic.
- Скопируйте код из нижеприведенных инструкций
- Вставьте код в PowerShell
- Нажмите Ввод»
Откройте каталог Ubuntu:
Команда Изменить каталог (cd) используется для изменения текущего рабочего каталога на указанный каталог. Он может переходить к абсолютным и относительным путям, которые начинаются с корневого и текущего рабочего каталога соответственно. Он также может переходить к путям, хранящимся в переменных и переменных среды.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
cd $HOME.ubuntu
Запустите рабочий стол Ubuntu:
File Explorer — это программа, которая предоставляет пользователям графический интерфейс для открытия файлов и программ. Он может перемещаться по диску и отображать содержимое каталогов и подкаталогов. Он также может открываться в конкретный каталог, указав относительный или абсолютный путь из командной строки.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в PowerShell
- Нажмите Ввод»
- Дважды щелкните ярлык «Ubuntu».
- Подождите 180 секунд, пока рабочий стол Ubuntu загрузится
explorer.exe .
Открытый терминал:
Терминал GNOME — это эмулятор терминала по умолчанию для среды рабочего стола Ubuntu. Он может запускать команды Bash, работать с файлами, взаимодействовать с другими компьютерами, а также выполнять административные задачи и настройки. Он также имеет несколько вкладок, профили пользователей и настраиваемые команды запуска.
- Нажмите «Действия» в верхнем левом углу.
- Введите «Терминал» в строку поиска.
- Нажмите «Терминал».
Отключить блокировку экрана:
Функция блокировки экрана в GNOME 3 не работает должным образом. Он блокирует доступ пользователя к системе, что требует перезапуска рабочего стола Ubuntu для разблокировки экрана. Это также происходит независимо от того, блокирует ли система экран автоматически или пользователь делает это вручную, но этого можно избежать, отключив блокировку экрана.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в Терминал
- Нажмите Ввод»
gsettings set org.gnome.desktop.lockdown disable-lock-screen true
Установите Snap Store:
Snap Store — это программа, которая предоставляет пользователям графический интерфейс для обнаружения, установки и управления снимками в Linux. Это помогает им находить избранные и популярные снимки, используя описания, рейтинги, обзоры и снимки экрана. Это также позволяет им находить снимки с помощью категорий просмотра и поиска.
- Скопируйте команду ниже этих инструкций
- Вставьте команду в Терминал
- Нажмите Ввод»
sudo snap install snap-store
Следующие шаги:
Эта статья является частью мини-серии, которая помогает читателям настроить все необходимое, чтобы начать использовать WSL2 для искусственного интеллекта, машинного обучения, глубокого обучения или анализа данных. Он включает статьи, содержащие инструкции с кодом копирования и вставки, а также снимки экрана, чтобы помочь читателям получить результат как можно быстрее. Он также включает статьи, содержащие инструкции с пояснениями и снимками экрана, чтобы помочь читателям понять, что происходит.
01. Install Windows Subsystem for Linux 2 (WSL2) 02. Install the NVIDIA CUDA Driver and Toolkit in WSL2 03. Install Software From Source Code in WSL2 04. Install the Jupyter Notebook Home and Public Server in WSL2 05. Install Virtual Environments in Jupyter Notebook in WSL2 06. Install Programs With a Graphical User Interface in WSL2 07. Install Ubuntu Desktop With a Graphical User Interface in WSL2
Надеюсь, эта статья помогла всем получить приз. Если вы хотите помочь, удерживайте «👋» и нажмите «Подписаться», чтобы получить больше информации. Спасибо за прочтение!
Глоссарий:
Централизованная система управления версиями (CVCS) — это система управления версиями, которая имеет отношения клиент-сервер, где репозиторий расположен на одном сервере, который предоставляет доступ множеству клиентов. Он хранит все файлы и исторические данные на сервере. Он также может контролировать доступ пользователей, но не может быть доступен в автономном режиме.
[Вернуться]
X Windows System (X11) — это стандартный набор инструментов и протокол, который используется для создания графического пользовательского интерфейса в операционных системах на базе Unix. Он обрабатывает внешний вид окон, фреймов, кнопок, панелей инструментов и строк заголовка. Он также принимает данные, вводимые пользователем с помощью мыши, клавиатуры и сенсорного экрана.
[Return]
Брандмауэр Windows — это приложение безопасности, которое защищает компьютер от атак из локальной сети и Интернета. Он фильтрует трафик на основе IP-адреса и информации о порте. Он разрешает весь исходящий трафик, но ограничивает входящий трафик источниками, которые явно указаны в правилах брандмауэра.
[Возврат]
Shell — это интерпретатор, который представляет пользователям интерфейс командной строки и позволяет им взаимодействовать с ядром. Это позволяет им управлять системой с помощью команд, вводимых с клавиатуры. Он также переводит команды с языка программирования на машинный язык ядра.
[Возврат]
Интерпретатор — это программа, которая читает инструкции, написанные
на понятных человеку языках программирования, и выполняет инструкции
сверху вниз. Он переводит каждую инструкцию на машинный язык, который
понимает оборудование, выполняет ее и переходит к следующей инструкции.
[Return]
Интерфейс командной строки (CLI) — это программа, которая принимает текстовый ввод от пользователя для выполнения команд в операционной системе. Он позволяет им настраивать систему, устанавливать программное обеспечение и получать доступ к функциям, недоступным в графическом пользовательском интерфейсе. Его также называют терминалом или консолью.
[Возврат]
Ядро — это программа, лежащая в основе операционной системы, которая контролирует все на компьютере. Это облегчает управление памятью, управление процессами, управление дисками и управление задачами. Это также облегчает обмен данными между программами и оборудованием на машинном языке.
[Возврат]
Среда рабочего стола — это набор программ поверх операционной системы, составляющих графический пользовательский интерфейс. Он включает в себя такие компоненты, как диспетчер окон, панели, меню, панель задач, значки и виджеты. Также он определяет, как выглядит система и как с ней взаимодействовать.
[Возврат]
GNOME 3 — очень популярная среда рабочего стола, которая отличается простой, удобной и надежной работой с пользователем. Он предоставляет уникальный пользовательский интерфейс, предназначенный для сосредоточения внимания на задачах и устранения отвлекающих факторов. Он также имеет чистый рабочий стол без значков, мощный поиск, обзор задач и расширения рабочего стола.
[Return]
Ubuntu — это операционная система с открытым исходным кодом, построенная на основе Debian и включающая тысячи поддерживающих программ. Он стал одним из самых популярных дистрибутивов Linux, который известен своей простотой в использовании, надежностью и бесплатным доступом. Его также можно использовать на настольных компьютерах, серверах и устройствах с Интернетом вещей.
[Возврат]
Команда wslvar используется для доступа ко всем переменным среды из Windows 10 в WSL2. Он указывает переменную среды, но не требует, чтобы имя переменной заключалось в знаки процента. Его также можно использовать с подстановкой команд для сохранения вывода в переменной.
[Return]
Переменная — это контейнер, который используется для хранения различных типов значений. Он может назначать или обновлять значение, помещая знак равенства между указанным именем переменной и значением без пробела вокруг него. Он также может ссылаться на сохраненное значение, помещая знак доллара перед существующим именем переменной.
[Return]
Переменная среды — это переменная, которая автоматически создается и поддерживается компьютером. Это помогает системе узнать, где устанавливать файлы, находить программы и проверять пользовательские и системные настройки. Его также можно использовать в графических программах и программах командной строки из любого места на компьютере.
[Возврат]
Репозиторий — это место для хранения двоичных пакетов, находящихся на удаленных серверах. Он должен присутствовать в списке источников, чтобы компьютер мог устанавливать или обновлять содержащиеся в нем пакеты. Это помогает обеспечить высокий уровень безопасности и упрощает установку программ в дистрибутивах Linux.
[Возврат]
Двоичный пакет — это архивный файл, содержащий файлы и каталоги, необходимые для правильной работы содержащей его программы. Он сохраняется в репозитории, который содержит все программы для конкретного дистрибутива Linux. Также для доступа к нему, извлечения и установки требуется менеджер пакетов Linux.
[Возврат]
Файл Sudoers — это текстовый файл, который команда sudo использует для управления тем, какие пользователи могут выполнять какие команды. Он может позволить пользователям запускать определенную команду с повышенными привилегиями без пароля. Он также может нарушить работу программы sudo из-за неправильного синтаксиса, поэтому рекомендуется редактировать этот файл с помощью visudo.
[Return]
Команда Super User Do (sudo) используется для предоставления привилегий корневого уровня определенным пользователям. Это позволяет им вводить свой пароль для выполнения команд, которые в противном случае были бы запрещены. По умолчанию он также работает только для основного пользователя Ubuntu, но может использоваться другими пользователями, редактируя файл sudoers.
[Return]
Команда Visudo используется для открытия модифицированной версии текстового редактора nano, который может редактировать файл sudoers без случайного нарушения работы программы sudo. Он блокирует файл, так что только один человек может вносить изменения одновременно. Он также анализирует файл перед сохранением, чтобы убедиться в отсутствии синтаксических ошибок.
[Return]
Переменная Display — это переменная среды, которая используется для определения того, какой экран использовать при подключении к серверу дисплея. Он содержит отображаемое имя, которое включает имя хоста, отображаемый номер и номер экрана. Его тоже нужно установить, потому что без него программа работать не будет.
[Возврат]
Номер экрана — это необязательный номер, который используется для обозначения определенного экрана из набора мониторов, которые используют мышь и клавиатуру. Это должно быть число, которое начинается с нуля и увеличивается на единицу для каждого экрана. Это также применимо только к компьютерам, у которых действительно есть несколько экранов.
[Возврат]
Номер дисплея — это номер, который относится к набору мониторов с общей мышью и клавиатурой. Это должно быть число, за которым следует точка, начинающаяся с нуля и увеличивающаяся на единицу для каждой коллекции. Его также необходимо включить в отображаемое имя, иначе программа не запустится.
[Возврат]
Имя хоста — это интернет-адрес, который программа использует для подключения к компьютеру, на котором работает сервер отображения. Это должен быть IP-адрес, доменное имя или сокращенное имя, за которым следует двоеточие. Также по умолчанию используется localhost, если интернет-адрес не указан.
[Return]
Visual Basic Script (VBScript) — это язык сценариев, основанный на Visual Basic. Он был создан для разработки веб-страниц, но стал популярным языком для написания командных файлов в Windows. Его также можно запустить с помощью Windows Scripting Host для взаимодействия с операционной системой Windows.
[Возврат]
Объект WshShell — это объект Windows Script Host, который позволяет пользователям взаимодействовать с операционной системой Windows. Он может получить доступ к переменным среды, системным папкам и реестру. Он также может создавать ярлыки, отображать всплывающие окна и запускать программы с аргументами командной строки и нажатиями клавиш.
[Return]
Блокировка экрана — это функция безопасности, которая предотвращает доступ к компьютеру других людей. Он блокирует экран после периода бездействия, который требует ввода пароля для разблокировки экрана. Он также может быть заблокирован вручную пользователем, что также требует ввода пароля для разблокировки экрана.
[Возврат]
Snap — это автономный пакет, содержащий все зависимости, необходимые для безупречной и безопасной работы в любом дистрибутиве Linux. Он объединяет программу, вспомогательные библиотеки и метаданные в сжатый пакет, который можно автоматически обновлять и откатывать до предыдущей версии.
[Возврат]
I needed to set up a WSL2 GUI recently on my machine (WSL2 running uBuntu 20.04.1 LTS). I found a guide that runs through the process but found that a few tweaks needed to be made. Specifically, the communication to VcXsrv was being blocked by Windows Firewall.
There were also a couple of extra tweaks needed for audio passthrough using PulseAudio and setting a windowed resolution.
Setting up a WSL2 GUI X-Server in Windows
Start by installing xfce4 and goodies.
sudo apt install xfce4 xfce4-goodies
If you’re running Kali you should use:
sudo apt install kali-desktop-xfce
During the install you’ll be prompted about which display manager to use. This is up to you, though I personally chose lightdm.
Download this .zip package which contains VcXsrv and PulseAudio along with some configuration and a shortcut to launch.
Extract it to the root of your C: drive. You should end up with contents under C:WSL VcXsrv.
Run the vcxsrv-64.1.20.8.1.installer.exe installer in this folder, choosing defaults for the install.
Once installed, you’ll want to enable High DPI scaling for VcXsrv in Windows.
- Navigate to C:Program FilesVcXsrv
- Right-click xlaunch.exe and go to Compatibility
- Click Change high DPI settings and choose Override high DPI scaling behavior. Ensure Application is in the dropdown.
Next, edit the startWSLVcXsrv.bat batch file and change the last line that reads ubuntu.exe run
to one of:
ubuntu2004.exe run
in the case you are using uBuntu 20.04 from the Microsoft Store for WSL-
ubuntu1804.exe run
if you are using uBuntu 18.04 from the Microsoft Store for WSL -
ubuntu.exe run
for when you are using standard uBuntu from the Microsoft Store for WSL -
kali.exe run
if you installed Kali-Linux from the Microsoft Store for WSL
Pin the WSL VcXsrv shortcut somewhere convenient like the taskbar.
Opening Windows Firewall for VcXsrv and PulseAudio
Next you need to allow inbound traffic to Windows for VcXsrv and PulseAudio.
Open Windows Defender Firewall with Advanced Security and add two new Inbound Rules as follows:
- Type: Program
- Program path: %ProgramFiles%VcXsrvvcxsrv.exe for VcXsrv and %SystemDrive%WSL VcXsrvpulseaudio-1.1binpulseaudio.exe for PulseAudio
- Allow the connection
- Profile: Domain, Private
- Name: vcxsrv or pulseaudio depending which rule you are adding
I personally added the following to ExtraParams
under the XLaunch
node of config.xlaunch. This sets windowed mode to 1920×1080 for monitor #1 on my machine.
-screen 0 1920x1080@1
Viewing your WSL2 GUI
With all of that setup out of the way, you should be able to simply launch VcXsrv from the pinned shortcut and everything should work.
Try it out and you should get Desktop up and running for your WSL2 environment.
PulseAudio passthrough should also be available if you check your sound / volume settings. Try an audio test using alsa-utils:
sudo apt install alsa-utils speaker-test
Kudos to this guide on reddit for most of the setup instructions. As mentioned before, I needed to configure my firewall and also added some tweaks for windowed mode.
Troubleshooting
If you find your VcXsrv Server display window is blank when launching, try the following:
- Double-check your firewall rule is allowing inbound connections for vcxsrv.exe for the domain and private scopes.
- With the black X-server / display window from VcXsrv still open, launch a WSL shell separately, and run the following to set your DISPLAY environment variable:
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0
This takes the IP address of your host machine (conveniently used as a nameserver in your WSL Linux environment for DNS lookups) and sets it as the Display remote location (with :0 for the display number appended).
Now, try to launch a xfce4 session with:
xfce4-session
If all goes to plan, the session should target your machine where VcXsrv Server is running and your display window should come to life with your WSL environment desktop.
If you have already read some of my WSL related articles, chances are that you are using and/or have discovered the potential of WSL 2. However, you might have experimented problems if tried to launch any graphical application within it.
Nowadays, a third-party app is required to run GUI apps, but Microsoft announced on Build 2020 that adding Linux GUI app native support to WSL is on their roadmap. I currently use VcXsrv Windows X Server for that purpose, and that’s the tool I will explain on this post. It’s an old open-source tool that updates quite frequently. You can check it on Sourceforge.
Installing and configuring VcXsrv
The first step is to download and run the .exe
installer from Sourceforge. On the installation wizard, be sure to check the Disable access control option. This will save us time, avoiding some permission denied errors.
To be sure that this option is always checked, save the configuration to later launch VcXsrv using that config file.
Setting permissions in Windows Firewall
Once VcXsrv is installed, we need to set the proper permissions on our firewall. Here, I assume you use the default Windows Firewall, but if you use a custom firewall (like a firewall provided by an antivirus), you may need to configure it manually.
When executing VcXsrv for the first time, a Windows Firewall pop-up should appear. Just be sure to give it permissions on both private and public networks.
If the pop-up doesn’t appear, or if you gave it the wrong permissions by mistake, you can just change the permissions manually. To do so, open Windows Security
app and go to Firewall & network protection -> Allow an app through firewall
and ensure VcXsrv windows x server has both permissions.
Setting the DISPLAY
env var
The last step is to set the DISPLAY
environment variable on our WSL 2 Linux instance. We need to configure the Windows host’s IP address as DISPLAY
(where the VcXsrv X server is running). Also, because WSL 2 network changes on every restart, so the Windows host’s IP does too, it’s needed to dynamically set this value on WSL2 launch.
We can use one of the following statements to dynamically set the DISPLAY
env var to the correct value.
export DISPLAY="`grep nameserver /etc/resolv.conf | sed 's/nameserver //'`:0"
export DISPLAY="`sed -n 's/nameserver //p' /etc/resolv.conf`:0"
export DISPLAY=$(ip route|awk '/^default/{print $3}'):0.0
If you run one of the above commands on your Linux terminal, then, you should see and local IP address when reading the var value. Just use whatever of the above that works correctly on your machine.
export DISPLAY=....
echo $DISPLAY # Example working output: 192.168.128.1:0.0
Lastly, to ensure the DISPLAY env var is updated on every restart, we should add the chosen export
statement to our ~/.bashrc
file (if you are using bash as your command interpreter) or in ~/.zshrc
(if using zsh instead).
Testing it out
Let’s test it! First, ensure the VcXsrv is running. You can check it by looking at the icons on your task bar. You should be able to see the VcXsrv icon if the server is up and running.
If you can’t see any icon, just start the server by double-clicking on the config file you saved when installing. It will launch VcXsrv server with the configuration on that file. You can open the file with a text editor, if you want to check the configuration inside.
If you have followed all the above steps, you should be able to execute GUI apps within WSL2 already. Let’s try with the x11-apps
, some very low resources and low dependencies apps made for testing X server configurations.
sudo apt install x11-apps
xeyes
xcalc
After executing the above commands, you should see two eyes following your mouse. Congratulations! You have successfully configured your WSL2 instance to run GUI apps.
Now what’s next? If you want to know how to write code inside WSL with VS Code and run containerized apps using Docker, I wrote about it too.
Troubleshooting
I particularly had an issue trying to use the default 0.0
display as my X server. Indeed, trying to use 0.0
will make the X server to crash on my Windows machine. It took me a few hours to realize, after searching on Google for a while and trying multiple different fixing options.
If you have the same problem, may you can fix it by using the 1.0
display instead. This is how I set the DISPLAY
value.
export DISPLAY=$(ip route | awk '/default/ { print $3 }'):1.0
And this is my VcXsrv config.xlaunch
config file.
<?xml version="1.0" encoding="UTF-8"?>
<XLaunch WindowMode="MultiWindow" ClientMode="NoClient" LocalClient="False" Display="1" LocalProgram="xcalc" RemoteProgram="xterm" RemotePassword="" PrivateKey="" RemoteHost="" RemoteUser="" XDMCPHost="" XDMCPBroadcast="False" XDMCPIndirect="False" Clipboard="True" ClipboardPrimary="True" ExtraParams="" Wgl="True" DisableAC="True" XDMCPTerminate="False"/>