Inspiration: https://www.most-useful.com/kde-plasma-on-wsl.html
- Update WSL
- In windows command prompt run:
wsl --update
- In windows command prompt run:
- Add systemd to ubuntu
- In ubuntu prompt run:
sudo nano /etc/wsl.conf
- Add the following to the file:
[boot] systemd=true
- Save and exit by pressing ctrl + o and then ctrl + x
- Shutdown WSL by running the following in the windows command prompt:
wsl --shutdown
- Restart WSL by opening a new terminal session for Ubuntu
- In ubuntu prompt run:
sudo apt update
sudo apt install kubuntu-desktop
Select SDDM as display manager during setup
sudo apt install lightdm
During installation, select lightdm as default display manager using arrow keys
Edit the lightdm configuration as follows:
sudo nano /etc/lightdm/lightdm.conf
Add the following text
[Seat:*]
user-session=plasma
[LightDM]
start-default-seat=false
[XDMCPServer]
enabled=true
port=177
Save and exit by pressing ctrl + o and then ctrl + x
Download and install this software for windows:
https://sourceforge.net/projects/vcxsrv/
- From windows open the XLaunch program
- Select the
One window without titlebar
option and clickNext
- Selct
Open session via XDMCP
and click next - In your ubuntu terminal you need to get the ip address of the wsl2 instance:
- Run:
sudo apt install net-tools
- Run:
ifconfig eth0 | grep inet
- The ip address will be listed after the
inet
item and usually looks like 172.xxx.xxx.xxx
- Run:
- Copy the ip address above and paste into the text box next to
Connect to host
in the XLaunch window and clicknext
- Modify the default settings to uncheck
Native opengl
and checkDisable access control
- Click
Next
- Click
Save configuration
and save the file to your desktop and name the file whatever you want - VITALLY IMPORTANT: When you first run VcXSrv (or XLaunch) you’ll get a Windows Firewall popup. You will need to allow it to accept connections on both the PRIVATE and PUBLIC networks. If you don’t allow PUBLIC networks you will not get a connection as the WSL Virtual Network is considered to be PUBLIC
- Click
Finish
- From the KDE desktop, click the start menu, go to
Computer
then clickSystem Settings
- Underneath
Hardware
in the left panel, clickDisplay and Monitor
- Select
Compositor
from the left panel - Change the
rendering backend
toXRender
- Check
Enable compositor on startup
- Click
Apply
@valsamis-d I had the same problem. Looks like the reason is that
kubuntu-desktop
wants to access system resources (acpi, gpu, ...) which are not available on a WSL guest. Installing justkde-plasma-desktop
(plus the KDE applications actually needed) instead ofkubuntu-desktop
solved it for me.
More notes:
"localhost" in XLaunch in the "Connect to host" field.
sudo apt install kde-plasma-desktop xrdp
(andsudo apt remove lightdm
if it was installed before) and restart the Linux guest.(Sometimes the login does not work, apparently if you are too quick and not all services are properly running yet.
Just try again a few seconds later.)