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
@gegentan
Copy link

gegentan commented Nov 25, 2023

@valsamis-d @guitarpicva @hcschuetz @camullen @pete-akl-nz @Alixbot2

This person has the answer to the acpi issues: microsoft/WSL#3344 (comment)

This prevents the problem from happening: apt-mark hold acpid acpi-support modemmanager

And this fixes it if its already happened: apt purge -y acpid acpi-support modemmanager

It works for me if I run sudo apt install kubuntu-desktop acpi-support-

@astkaasa
Copy link

astkaasa commented Dec 10, 2023

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

@artur-pf
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

Works! But somehow very slow. Do you have good performance ? @astkaasa

@astkaasa
Copy link

Works! But somehow very slow. Do you have good performance ? @astkaasa

@artur-pf

Yes. I watched some youtube video on Firefox and got at least normal performance. Dolphin, Konsole and Settings panel also worked fine. I'm using a notebook with 6800HS CPU.

@hcschuetz
Copy link

I was quite happy with my xrdp-based solution, but now a new problem arose: When I restarted Firefox in Linux it said that it cannot connect to the display. Looks like this is due to the fact that Firefox 121 has switched from X11 to Wayland. (It cost me hours to figure that out #@%$! The error message on the console was not that helpful.)

My provisional solution is

sudo apt install weston
weston --backend=x11-backend.so

and then start firefox from within the weston window. But that is really just an ugly work-around.

Since Weston has an RDP backend, it probably makes more sense to move my entire KDE session into Weston and then connect to Weston directly from the Windows RDP client, bypassing xrdp. (But it might turn out that some of my Linux-GUI-Apps require X11 and don't support Wayland...)

I need to figure out how to set this up, but maybe someone reading this comment already knows how to do this.

@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