Skip to content

Instantly share code, notes, and snippets.

@camullen
Created December 10, 2022 23:52
Show Gist options
  • Save camullen/0c41d989ac2ad7a89e75eb3be0f8fb16 to your computer and use it in GitHub Desktop.
Save camullen/0c41d989ac2ad7a89e75eb3be0f8fb16 to your computer and use it in GitHub Desktop.
KDE Install on WSL2

Installing KDE on WSL2

Inspiration: https://www.most-useful.com/kde-plasma-on-wsl.html

Setup

  1. Update WSL
    • In windows command prompt run: wsl --update
  2. 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

Installing KDE

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

Setting up x server

Download and install this software for windows:

https://sourceforge.net/projects/vcxsrv/

Launch Desktop

  • From windows open the XLaunch program
  • Select the One window without titlebar option and click Next
  • 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
  • Copy the ip address above and paste into the text box next to Connect to host in the XLaunch window and click next
  • Modify the default settings to uncheck Native opengl and check Disable 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

Speeding up KDE

Fixing rendering

  • From the KDE desktop, click the start menu, go to Computer then click System Settings
  • Underneath Hardware in the left panel, click Display and Monitor
  • Select Compositor from the left panel
  • Change the rendering backend to XRender
  • Check Enable compositor on startup
  • Click Apply
@hcschuetz
Copy link

hcschuetz commented Jan 16, 2024

(Sorry, @camullen, for spamming your page. But it might have become the place for exchanging information about KDE on WSL.)

Ok, I have found a solution for running Firefox in xrdp:

env WAYLAND_DISPLAY=wayland-10 firefox

(This assumes that the DISPLAY environment variable is :10.0 for accessing xrdp.)

You can also use WAYLAND_DISPLAY=wayland-0 to render Firefox directly on the Windows desktop, but it is a bit suboptimal. For example the title bar lacks buttons for minimizing/maximizing the window. And quitting with the last entry of Firefox' burger menu doesn't work either. (These problems do not exist when running under xrdp.)

Edit: I should make clear that this is not on top of the weston stuff from my previous comment, but instead of it.

@meownyaaa
Copy link

Thanks for all previous comments, I add some steps to fix "no audio device" issue, this is my current workaround :

sudo apt update && sudo apt upgrade
sudo apt install kde-plasma-desktop xrdp unzip
# install this xrdp&pulseaudio fix script
wget https://www.c-nergy.be/downloads/xRDP/xrdp-installer-1.4.8.zip
unzip xrdp-installer-1.4.8.zip
chmod +x xrdp-installer-1.4.8.sh
./xrdp-installer-1.4.8.sh -s
# restart and fix the owner issue of this directory, it has been assigned to root, don't know who has messed up this, perhaps wsl
sudo chown -R your_user:your_user /run/user/1000
# restart again and remote connect to the subsystem, then the "xrdp output/input" devices should be there

By the way I set guiApplications=false in .wslconfig, this may cause some other issue

image lovely

@acotor
Copy link

acotor commented Mar 2, 2024

Thanks, it works.

But XRender was removed, and rendering backend option is deprecated. Seems Plasma 6 will shift to Wayland. Are there alternative methods to get KDE speed up for now(Plasma 5.24.7)?

@itsyashuvo
Copy link

Thanks, it works.

But XRender was removed, and rendering backend option is deprecated. Seems Plasma 6 will shift to Wayland. Are there alternative methods to get KDE speed up for now(Plasma 5.24.7)?

What works? I have tried hundred times and still not able to see the desktop environment in any way!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment