Repository files navigation

kWSL.cmd • KDE Neon 6 Desktop for WSL

  • Online install of KDE Neon in WSL, accessible via RDP. If you prefer GTK, see xWSL or Kali-xRDP
  • Runs on Windows 10 / Windows Server 2019 and newer, including Hyper-V Core.
  • xRDP Display Server; no additional Xserver download/configuration required.
  • High-quality RDP audio playback; video playback and YouTube work well and maintains audio sync.
  • If you want to accesss kWSL remotely, Chrome Remote Desktop is pre-installed (Never expose RDP servers to the Internet.) Configuration steps are here

image

IMPORTANT!

  • Windows 11 requires 22H2 Update (Sun Valley 2, September 2022)
  • Windows Server / Windows 10 require latest updates from Windows Update.

INSTALL INSTRUCTIONS

From an elevated CMD.EXE prompt change to your desired install directory and type/paste the following command:

PowerShell -executionpolicy bypass -command "wget https://github.com/DesktopECHO/kWSL/raw/master/kWSL.cmd -UseBasicParsing -OutFile kWSL.cmd ; .\kWSL.cmd"

You will be asked a few questions. The install script will determine current DPI scaling, or set your own value if preferred:

[KDE Neon 6 Installer for WSL v.20240301]
Set a name for this KDE Neon instance. Hit Enter to use default.
Keep this name simple, no space or underscore characters [Neon]:
Port number for xRDP traffic or hit Enter to use default [3399]:
Port number for SSHd traffic or hit Enter to use default [3322]:
Set a custom DPI scale, or hit Enter for Windows default [1]: 1.25
[Not recommended!] Type X to eXclude from Windows Defender:
Installing kWSL Distro [Neon] to "C:\Neon"
This will take a few minutes, please wait...

The installer will download all the necessary packages to transform the Jammy base image into KDE Neon User Edition. Reference times will vary depending on system performance and the presence of antivirus software. A fast system/network can complete the install in about 10 minutes.

[19:19:01] Importing distro userspace (~0m30s)
[19:19:14] Git clone and update repositories (~1m00s)
[19:20:22] Prepare userspace (~1m00s)
[19:20:45] Installing Prerequisites (~2m00s)
[19:23:12] KDE Neon 6 (~7m00s)
[19:31:12] Web Browser, CRD, VLC 4 (~1m00s)
[19:32:10] Cleaning-up... (~0m15s)

Near the end of the script you will be prompted to create a non-root user. This user will be automatically added to sudo'ers.

Open Windows Firewall Ports for xRDP, SSH, mDNS...
Building RDP Connection file, Console link, Init system...
Building Scheduled Task...
SUCCESS: The scheduled task "Neon" has successfully been created.
Start: Fri 03/01/2024 @ 19:18
End: Fri 03/01/2024 @ 19:32
Packages: 1434
- xRDP Server listening on port 3399 and SSHd on port 3322.
- Links for GUI and Console sessions have been placed on your desktop.
- (Re)launch init from the Task Scheduler or by running the following command:
schtasks /run /tn Neon
Neon Installation Complete! GUI will start in a few secon

When the script completes you will be logged-in to your KDE Neon Desktop.

Optional: Set KDE to start at boot (like a service) instead of starting at login (default setting)

  • Right-click the task in Task Scheduler, click properties
  • Click the checkbox for Run whether user is logged on or not and click OK
  • Click the Triggers tab and change the trigger from At log on to At startup
  • Enter your Windows credentials when prompted

Reboot your PC when complete and kWSL will startup automatically.

Optional: Convert WSL Instance

Example of conversion to WSL2:

  • Stop WSL instance (Using default instance name NeonWSL in this example): wsl --terminate Neon
  • Convert the instance to WSL2: wsl --set-version Neon 2
  • Restart KDE Neon Instance under WSL2: schtasks /run /tn Neon

Procedure is the same for switching back to WSL1: wsl --set-version NeonWSL 1

Make it your own

It's best to fork this project so you (and only you) control the packages and files in the deployment.

  • Sign into GitHub and fork this project
  • Edit kWSL.cmd. On line 2 you will see SET GITORG=DesktopECHO - Change DesktopECHO to the name of your own repository.
  • Customize the script any way you like.
  • Launch the script using your repository name: PowerShell -executionpolicy bypass -command "wget https://github.com/YOUR-REPO-NAME/kWSL/raw/master/kWSL.cmd -UseBasicParsing -OutFile kWSL.cmd ; .\kWSL.cmd"

Quirks / Limitations / Additional Info:

  • H.264 Enabled in XRDP
  • Kwin desktop composition is enabled by default
  • When you log out out of a KDE session the WSL instance is restarted. This is the equivilent to having a freshly-booted desktop environment at every login, but the 'reboot' process only takes about 5 seconds.
  • kWSL should work fine with an X Server instead of xRDP but this has not been thoroughly tested. The file /etc/profile.d/kWSL.sh contains WSL-centric environment variables that may need adjustment such as LIBGL_ALWAYS_INDIRECT.
  • Plasma-discover doesn't work in Server 2019 / Win 10 v.1809 -- The installer will remove it if you're running an affected OS.
  • WSL1 Doesn't work with PolicyKit. Enabled kdesu/gksu for apps needing elevated rights (plasma-discover, ksystemlog, muon, root console.)
  • KDE Lockscreen is not implemented (due to policykit)
  • Patched KDE Activity Manager to disable WAL in sqlite3.
  • Mozilla Seamonkey is included as a stable/maintained browser.
  • QtWebEngine (Chromium-based) browsers like Falkon and Konqueror now work. (July/21)
  • Installed image consumes approximately 3 GB of disk space.
  • Apt-fast added to improve download speed and reliability.
  • Default installation uses the Breeze theme and Windows fonts (Segoe UI / Cascadia Code)
  • This is a basic installation of KDE to save bandwidth. If you want the complete KDE Desktop environment (+3GB Disk) run sudo pkcon -y install neon-all

image

image

About

KDE Neon 6.0 installer for WSL1 or WSL2.

Topics

Resources

Stars

206 stars

Watchers

5 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

kWSL.cmd • KDE Neon 6 Desktop for WSL

  • Online install of KDE Neon in WSL, accessible via RDP. If you prefer GTK, see xWSL or Kali-xRDP
  • Runs on Windows 10 / Windows Server 2019 and newer, including Hyper-V Core.
  • xRDP Display Server; no additional Xserver download/configuration required.
  • High-quality RDP audio playback; video playback and YouTube work well and maintains audio sync.
  • If you want to accesss kWSL remotely, Chrome Remote Desktop is pre-installed (Never expose RDP servers to the Internet.) Configuration steps are here

image

IMPORTANT!

  • Windows 11 requires 22H2 Update (Sun Valley 2, September 2022)
  • Windows Server / Windows 10 require latest updates from Windows Update.

INSTALL INSTRUCTIONS

From an elevated CMD.EXE prompt change to your desired install directory and type/paste the following command:

PowerShell -executionpolicy bypass -command "wget https://github.com/DesktopECHO/kWSL/raw/master/kWSL.cmd -UseBasicParsing -OutFile kWSL.cmd ; .\kWSL.cmd"

You will be asked a few questions. The install script will determine current DPI scaling, or set your own value if preferred:

[KDE Neon 6 Installer for WSL v.20240301]
Set a name for this KDE Neon instance. Hit Enter to use default.
Keep this name simple, no space or underscore characters [Neon]:
Port number for xRDP traffic or hit Enter to use default [3399]:
Port number for SSHd traffic or hit Enter to use default [3322]:
Set a custom DPI scale, or hit Enter for Windows default [1]: 1.25
[Not recommended!] Type X to eXclude from Windows Defender:
Installing kWSL Distro [Neon] to "C:\Neon"
This will take a few minutes, please wait...

The installer will download all the necessary packages to transform the Jammy base image into KDE Neon User Edition. Reference times will vary depending on system performance and the presence of antivirus software. A fast system/network can complete the install in about 10 minutes.

[19:19:01] Importing distro userspace (~0m30s)
[19:19:14] Git clone and update repositories (~1m00s)
[19:20:22] Prepare userspace (~1m00s)
[19:20:45] Installing Prerequisites (~2m00s)
[19:23:12] KDE Neon 6 (~7m00s)
[19:31:12] Web Browser, CRD, VLC 4 (~1m00s)
[19:32:10] Cleaning-up... (~0m15s)

Near the end of the script you will be prompted to create a non-root user. This user will be automatically added to sudo'ers.

Open Windows Firewall Ports for xRDP, SSH, mDNS...
Building RDP Connection file, Console link, Init system...
Building Scheduled Task...
SUCCESS: The scheduled task "Neon" has successfully been created.
Start: Fri 03/01/2024 @ 19:18
End: Fri 03/01/2024 @ 19:32
Packages: 1434
- xRDP Server listening on port 3399 and SSHd on port 3322.
- Links for GUI and Console sessions have been placed on your desktop.
- (Re)launch init from the Task Scheduler or by running the following command:
schtasks /run /tn Neon
Neon Installation Complete! GUI will start in a few secon

When the script completes you will be logged-in to your KDE Neon Desktop.

Optional: Set KDE to start at boot (like a service) instead of starting at login (default setting)

  • Right-click the task in Task Scheduler, click properties
  • Click the checkbox for Run whether user is logged on or not and click OK
  • Click the Triggers tab and change the trigger from At log on to At startup
  • Enter your Windows credentials when prompted

Reboot your PC when complete and kWSL will startup automatically.

Optional: Convert WSL Instance

Example of conversion to WSL2:

  • Stop WSL instance (Using default instance name NeonWSL in this example): wsl --terminate Neon
  • Convert the instance to WSL2: wsl --set-version Neon 2
  • Restart KDE Neon Instance under WSL2: schtasks /run /tn Neon

Procedure is the same for switching back to WSL1: wsl --set-version NeonWSL 1

Make it your own

It's best to fork this project so you (and only you) control the packages and files in the deployment.

  • Sign into GitHub and fork this project
  • Edit kWSL.cmd. On line 2 you will see SET GITORG=DesktopECHO - Change DesktopECHO to the name of your own repository.
  • Customize the script any way you like.
  • Launch the script using your repository name: PowerShell -executionpolicy bypass -command "wget https://github.com/YOUR-REPO-NAME/kWSL/raw/master/kWSL.cmd -UseBasicParsing -OutFile kWSL.cmd ; .\kWSL.cmd"

Quirks / Limitations / Additional Info:

  • H.264 Enabled in XRDP
  • Kwin desktop composition is enabled by default
  • When you log out out of a KDE session the WSL instance is restarted. This is the equivilent to having a freshly-booted desktop environment at every login, but the 'reboot' process only takes about 5 seconds.
  • kWSL should work fine with an X Server instead of xRDP but this has not been thoroughly tested. The file /etc/profile.d/kWSL.sh contains WSL-centric environment variables that may need adjustment such as LIBGL_ALWAYS_INDIRECT.
  • Plasma-discover doesn't work in Server 2019 / Win 10 v.1809 -- The installer will remove it if you're running an affected OS.
  • WSL1 Doesn't work with PolicyKit. Enabled kdesu/gksu for apps needing elevated rights (plasma-discover, ksystemlog, muon, root console.)
  • KDE Lockscreen is not implemented (due to policykit)
  • Patched KDE Activity Manager to disable WAL in sqlite3.
  • Mozilla Seamonkey is included as a stable/maintained browser.
  • QtWebEngine (Chromium-based) browsers like Falkon and Konqueror now work. (July/21)
  • Installed image consumes approximately 3 GB of disk space.
  • Apt-fast added to improve download speed and reliability.
  • Default installation uses the Breeze theme and Windows fonts (Segoe UI / Cascadia Code)
  • This is a basic installation of KDE to save bandwidth. If you want the complete KDE Desktop environment (+3GB Disk) run sudo pkcon -y install neon-all

image

image

About

KDE Neon 6.0 installer for WSL1 or WSL2.

Topics

Resources

Stars

206 stars

Watchers

5 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

kWSL.cmd • KDE Neon 6 Desktop for WSL

  • Online install of KDE Neon in WSL, accessible via RDP. If you prefer GTK, see xWSL or Kali-xRDP
  • Runs on Windows 10 / Windows Server 2019 and newer, including Hyper-V Core.
  • xRDP Display Server; no additional Xserver download/configuration required.
  • High-quality RDP audio playback; video playback and YouTube work well and maintains audio sync.
  • If you want to accesss kWSL remotely, Chrome Remote Desktop is pre-installed (Never expose RDP servers to the Internet.) Configuration steps are here

image

IMPORTANT!

  • Windows 11 requires 22H2 Update (Sun Valley 2, September 2022)
  • Windows Server / Windows 10 require latest updates from Windows Update.

INSTALL INSTRUCTIONS

From an elevated CMD.EXE prompt change to your desired install directory and type/paste the following command:

PowerShell -executionpolicy bypass -command "wget https://github.com/DesktopECHO/kWSL/raw/master/kWSL.cmd -UseBasicParsing -OutFile kWSL.cmd ; .\kWSL.cmd"

You will be asked a few questions. The install script will determine current DPI scaling, or set your own value if preferred:

[KDE Neon 6 Installer for WSL v.20240301]
Set a name for this KDE Neon instance. Hit Enter to use default.
Keep this name simple, no space or underscore characters [Neon]:
Port number for xRDP traffic or hit Enter to use default [3399]:
Port number for SSHd traffic or hit Enter to use default [3322]:
Set a custom DPI scale, or hit Enter for Windows default [1]: 1.25
[Not recommended!] Type X to eXclude from Windows Defender:
Installing kWSL Distro [Neon] to "C:\Neon"
This will take a few minutes, please wait...

The installer will download all the necessary packages to transform the Jammy base image into KDE Neon User Edition. Reference times will vary depending on system performance and the presence of antivirus software. A fast system/network can complete the install in about 10 minutes.

[19:19:01] Importing distro userspace (~0m30s)
[19:19:14] Git clone and update repositories (~1m00s)
[19:20:22] Prepare userspace (~1m00s)
[19:20:45] Installing Prerequisites (~2m00s)
[19:23:12] KDE Neon 6 (~7m00s)
[19:31:12] Web Browser, CRD, VLC 4 (~1m00s)
[19:32:10] Cleaning-up... (~0m15s)

Near the end of the script you will be prompted to create a non-root user. This user will be automatically added to sudo'ers.

Open Windows Firewall Ports for xRDP, SSH, mDNS...
Building RDP Connection file, Console link, Init system...
Building Scheduled Task...
SUCCESS: The scheduled task "Neon" has successfully been created.
Start: Fri 03/01/2024 @ 19:18
End: Fri 03/01/2024 @ 19:32
Packages: 1434
- xRDP Server listening on port 3399 and SSHd on port 3322.
- Links for GUI and Console sessions have been placed on your desktop.
- (Re)launch init from the Task Scheduler or by running the following command:
schtasks /run /tn Neon
Neon Installation Complete! GUI will start in a few secon

When the script completes you will be logged-in to your KDE Neon Desktop.

Optional: Set KDE to start at boot (like a service) instead of starting at login (default setting)

  • Right-click the task in Task Scheduler, click properties
  • Click the checkbox for Run whether user is logged on or not and click OK
  • Click the Triggers tab and change the trigger from At log on to At startup
  • Enter your Windows credentials when prompted

Reboot your PC when complete and kWSL will startup automatically.

Optional: Convert WSL Instance

Example of conversion to WSL2:

  • Stop WSL instance (Using default instance name NeonWSL in this example): wsl --terminate Neon
  • Convert the instance to WSL2: wsl --set-version Neon 2
  • Restart KDE Neon Instance under WSL2: schtasks /run /tn Neon

Procedure is the same for switching back to WSL1: wsl --set-version NeonWSL 1

Make it your own

It's best to fork this project so you (and only you) control the packages and files in the deployment.

  • Sign into GitHub and fork this project
  • Edit kWSL.cmd. On line 2 you will see SET GITORG=DesktopECHO - Change DesktopECHO to the name of your own repository.
  • Customize the script any way you like.
  • Launch the script using your repository name: PowerShell -executionpolicy bypass -command "wget https://github.com/YOUR-REPO-NAME/kWSL/raw/master/kWSL.cmd -UseBasicParsing -OutFile kWSL.cmd ; .\kWSL.cmd"

Quirks / Limitations / Additional Info:

  • H.264 Enabled in XRDP
  • Kwin desktop composition is enabled by default
  • When you log out out of a KDE session the WSL instance is restarted. This is the equivilent to having a freshly-booted desktop environment at every login, but the 'reboot' process only takes about 5 seconds.
  • kWSL should work fine with an X Server instead of xRDP but this has not been thoroughly tested. The file /etc/profile.d/kWSL.sh contains WSL-centric environment variables that may need adjustment such as LIBGL_ALWAYS_INDIRECT.
  • Plasma-discover doesn't work in Server 2019 / Win 10 v.1809 -- The installer will remove it if you're running an affected OS.
  • WSL1 Doesn't work with PolicyKit. Enabled kdesu/gksu for apps needing elevated rights (plasma-discover, ksystemlog, muon, root console.)
  • KDE Lockscreen is not implemented (due to policykit)
  • Patched KDE Activity Manager to disable WAL in sqlite3.
  • Mozilla Seamonkey is included as a stable/maintained browser.
  • QtWebEngine (Chromium-based) browsers like Falkon and Konqueror now work. (July/21)
  • Installed image consumes approximately 3 GB of disk space.
  • Apt-fast added to improve download speed and reliability.
  • Default installation uses the Breeze theme and Windows fonts (Segoe UI / Cascadia Code)
  • This is a basic installation of KDE to save bandwidth. If you want the complete KDE Desktop environment (+3GB Disk) run sudo pkcon -y install neon-all

image

image

About

KDE Neon 6.0 installer for WSL1 or WSL2.

Topics

Resources

Stars

206 stars

Watchers

5 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

kWSL.cmd • KDE Neon 6 Desktop for WSL

  • Online install of KDE Neon in WSL, accessible via RDP. If you prefer GTK, see xWSL or Kali-xRDP
  • Runs on Windows 10 / Windows Server 2019 and newer, including Hyper-V Core.
  • xRDP Display Server; no additional Xserver download/configuration required.
  • High-quality RDP audio playback; video playback and YouTube work well and maintains audio sync.
  • If you want to accesss kWSL remotely, Chrome Remote Desktop is pre-installed (Never expose RDP servers to the Internet.) Configuration steps are here

image

IMPORTANT!

  • Windows 11 requires 22H2 Update (Sun Valley 2, September 2022)
  • Windows Server / Windows 10 require latest updates from Windows Update.

INSTALL INSTRUCTIONS

From an elevated CMD.EXE prompt change to your desired install directory and type/paste the following command:

PowerShell -executionpolicy bypass -command "wget https://github.com/DesktopECHO/kWSL/raw/master/kWSL.cmd -UseBasicParsing -OutFile kWSL.cmd ; .\kWSL.cmd"

You will be asked a few questions. The install script will determine current DPI scaling, or set your own value if preferred:

[KDE Neon 6 Installer for WSL v.20240301]
Set a name for this KDE Neon instance. Hit Enter to use default.
Keep this name simple, no space or underscore characters [Neon]:
Port number for xRDP traffic or hit Enter to use default [3399]:
Port number for SSHd traffic or hit Enter to use default [3322]:
Set a custom DPI scale, or hit Enter for Windows default [1]: 1.25
[Not recommended!] Type X to eXclude from Windows Defender:
Installing kWSL Distro [Neon] to "C:\Neon"
This will take a few minutes, please wait...

The installer will download all the necessary packages to transform the Jammy base image into KDE Neon User Edition. Reference times will vary depending on system performance and the presence of antivirus software. A fast system/network can complete the install in about 10 minutes.

[19:19:01] Importing distro userspace (~0m30s)
[19:19:14] Git clone and update repositories (~1m00s)
[19:20:22] Prepare userspace (~1m00s)
[19:20:45] Installing Prerequisites (~2m00s)
[19:23:12] KDE Neon 6 (~7m00s)
[19:31:12] Web Browser, CRD, VLC 4 (~1m00s)
[19:32:10] Cleaning-up... (~0m15s)

Near the end of the script you will be prompted to create a non-root user. This user will be automatically added to sudo'ers.

Open Windows Firewall Ports for xRDP, SSH, mDNS...
Building RDP Connection file, Console link, Init system...
Building Scheduled Task...
SUCCESS: The scheduled task "Neon" has successfully been created.
Start: Fri 03/01/2024 @ 19:18
End: Fri 03/01/2024 @ 19:32
Packages: 1434
- xRDP Server listening on port 3399 and SSHd on port 3322.
- Links for GUI and Console sessions have been placed on your desktop.
- (Re)launch init from the Task Scheduler or by running the following command:
schtasks /run /tn Neon
Neon Installation Complete! GUI will start in a few secon

When the script completes you will be logged-in to your KDE Neon Desktop.

Optional: Set KDE to start at boot (like a service) instead of starting at login (default setting)

  • Right-click the task in Task Scheduler, click properties
  • Click the checkbox for Run whether user is logged on or not and click OK
  • Click the Triggers tab and change the trigger from At log on to At startup
  • Enter your Windows credentials when prompted

Reboot your PC when complete and kWSL will startup automatically.

Optional: Convert WSL Instance

Example of conversion to WSL2:

  • Stop WSL instance (Using default instance name NeonWSL in this example): wsl --terminate Neon
  • Convert the instance to WSL2: wsl --set-version Neon 2
  • Restart KDE Neon Instance under WSL2: schtasks /run /tn Neon

Procedure is the same for switching back to WSL1: wsl --set-version NeonWSL 1

Make it your own

It's best to fork this project so you (and only you) control the packages and files in the deployment.

  • Sign into GitHub and fork this project
  • Edit kWSL.cmd. On line 2 you will see SET GITORG=DesktopECHO - Change DesktopECHO to the name of your own repository.
  • Customize the script any way you like.
  • Launch the script using your repository name: PowerShell -executionpolicy bypass -command "wget https://github.com/YOUR-REPO-NAME/kWSL/raw/master/kWSL.cmd -UseBasicParsing -OutFile kWSL.cmd ; .\kWSL.cmd"

Quirks / Limitations / Additional Info:

  • H.264 Enabled in XRDP
  • Kwin desktop composition is enabled by default
  • When you log out out of a KDE session the WSL instance is restarted. This is the equivilent to having a freshly-booted desktop environment at every login, but the 'reboot' process only takes about 5 seconds.
  • kWSL should work fine with an X Server instead of xRDP but this has not been thoroughly tested. The file /etc/profile.d/kWSL.sh contains WSL-centric environment variables that may need adjustment such as LIBGL_ALWAYS_INDIRECT.
  • Plasma-discover doesn't work in Server 2019 / Win 10 v.1809 -- The installer will remove it if you're running an affected OS.
  • WSL1 Doesn't work with PolicyKit. Enabled kdesu/gksu for apps needing elevated rights (plasma-discover, ksystemlog, muon, root console.)
  • KDE Lockscreen is not implemented (due to policykit)
  • Patched KDE Activity Manager to disable WAL in sqlite3.
  • Mozilla Seamonkey is included as a stable/maintained browser.
  • QtWebEngine (Chromium-based) browsers like Falkon and Konqueror now work. (July/21)
  • Installed image consumes approximately 3 GB of disk space.
  • Apt-fast added to improve download speed and reliability.
  • Default installation uses the Breeze theme and Windows fonts (Segoe UI / Cascadia Code)
  • This is a basic installation of KDE to save bandwidth. If you want the complete KDE Desktop environment (+3GB Disk) run sudo pkcon -y install neon-all

image

image

About

KDE Neon 6.0 installer for WSL1 or WSL2.

Topics

Resources

Stars

206 stars

Watchers

5 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

kWSL.cmd • KDE Neon 6 Desktop for WSL

  • Online install of KDE Neon in WSL, accessible via RDP. If you prefer GTK, see xWSL or Kali-xRDP
  • Runs on Windows 10 / Windows Server 2019 and newer, including Hyper-V Core.
  • xRDP Display Server; no additional Xserver download/configuration required.
  • High-quality RDP audio playback; video playback and YouTube work well and maintains audio sync.
  • If you want to accesss kWSL remotely, Chrome Remote Desktop is pre-installed (Never expose RDP servers to the Internet.) Configuration steps are here

image

IMPORTANT!

  • Windows 11 requires 22H2 Update (Sun Valley 2, September 2022)
  • Windows Server / Windows 10 require latest updates from Windows Update.

INSTALL INSTRUCTIONS

From an elevated CMD.EXE prompt change to your desired install directory and type/paste the following command:

PowerShell -executionpolicy bypass -command "wget https://github.com/DesktopECHO/kWSL/raw/master/kWSL.cmd -UseBasicParsing -OutFile kWSL.cmd ; .\kWSL.cmd"

You will be asked a few questions. The install script will determine current DPI scaling, or set your own value if preferred:

[KDE Neon 6 Installer for WSL v.20240301]
Set a name for this KDE Neon instance. Hit Enter to use default.
Keep this name simple, no space or underscore characters [Neon]:
Port number for xRDP traffic or hit Enter to use default [3399]:
Port number for SSHd traffic or hit Enter to use default [3322]:
Set a custom DPI scale, or hit Enter for Windows default [1]: 1.25
[Not recommended!] Type X to eXclude from Windows Defender:
Installing kWSL Distro [Neon] to "C:\Neon"
This will take a few minutes, please wait...

The installer will download all the necessary packages to transform the Jammy base image into KDE Neon User Edition. Reference times will vary depending on system performance and the presence of antivirus software. A fast system/network can complete the install in about 10 minutes.

[19:19:01] Importing distro userspace (~0m30s)
[19:19:14] Git clone and update repositories (~1m00s)
[19:20:22] Prepare userspace (~1m00s)
[19:20:45] Installing Prerequisites (~2m00s)
[19:23:12] KDE Neon 6 (~7m00s)
[19:31:12] Web Browser, CRD, VLC 4 (~1m00s)
[19:32:10] Cleaning-up... (~0m15s)

Near the end of the script you will be prompted to create a non-root user. This user will be automatically added to sudo'ers.

Open Windows Firewall Ports for xRDP, SSH, mDNS...
Building RDP Connection file, Console link, Init system...
Building Scheduled Task...
SUCCESS: The scheduled task "Neon" has successfully been created.
Start: Fri 03/01/2024 @ 19:18
End: Fri 03/01/2024 @ 19:32
Packages: 1434
- xRDP Server listening on port 3399 and SSHd on port 3322.
- Links for GUI and Console sessions have been placed on your desktop.
- (Re)launch init from the Task Scheduler or by running the following command:
schtasks /run /tn Neon
Neon Installation Complete! GUI will start in a few secon

When the script completes you will be logged-in to your KDE Neon Desktop.

Optional: Set KDE to start at boot (like a service) instead of starting at login (default setting)

  • Right-click the task in Task Scheduler, click properties
  • Click the checkbox for Run whether user is logged on or not and click OK
  • Click the Triggers tab and change the trigger from At log on to At startup
  • Enter your Windows credentials when prompted

Reboot your PC when complete and kWSL will startup automatically.

Optional: Convert WSL Instance

Example of conversion to WSL2:

  • Stop WSL instance (Using default instance name NeonWSL in this example): wsl --terminate Neon
  • Convert the instance to WSL2: wsl --set-version Neon 2
  • Restart KDE Neon Instance under WSL2: schtasks /run /tn Neon

Procedure is the same for switching back to WSL1: wsl --set-version NeonWSL 1

Make it your own

It's best to fork this project so you (and only you) control the packages and files in the deployment.

  • Sign into GitHub and fork this project
  • Edit kWSL.cmd. On line 2 you will see SET GITORG=DesktopECHO - Change DesktopECHO to the name of your own repository.
  • Customize the script any way you like.
  • Launch the script using your repository name: PowerShell -executionpolicy bypass -command "wget https://github.com/YOUR-REPO-NAME/kWSL/raw/master/kWSL.cmd -UseBasicParsing -OutFile kWSL.cmd ; .\kWSL.cmd"

Quirks / Limitations / Additional Info:

  • H.264 Enabled in XRDP
  • Kwin desktop composition is enabled by default
  • When you log out out of a KDE session the WSL instance is restarted. This is the equivilent to having a freshly-booted desktop environment at every login, but the 'reboot' process only takes about 5 seconds.
  • kWSL should work fine with an X Server instead of xRDP but this has not been thoroughly tested. The file /etc/profile.d/kWSL.sh contains WSL-centric environment variables that may need adjustment such as LIBGL_ALWAYS_INDIRECT.
  • Plasma-discover doesn't work in Server 2019 / Win 10 v.1809 -- The installer will remove it if you're running an affected OS.
  • WSL1 Doesn't work with PolicyKit. Enabled kdesu/gksu for apps needing elevated rights (plasma-discover, ksystemlog, muon, root console.)
  • KDE Lockscreen is not implemented (due to policykit)
  • Patched KDE Activity Manager to disable WAL in sqlite3.
  • Mozilla Seamonkey is included as a stable/maintained browser.
  • QtWebEngine (Chromium-based) browsers like Falkon and Konqueror now work. (July/21)
  • Installed image consumes approximately 3 GB of disk space.
  • Apt-fast added to improve download speed and reliability.
  • Default installation uses the Breeze theme and Windows fonts (Segoe UI / Cascadia Code)
  • This is a basic installation of KDE to save bandwidth. If you want the complete KDE Desktop environment (+3GB Disk) run sudo pkcon -y install neon-all

image

image

About

KDE Neon 6.0 installer for WSL1 or WSL2.

Topics

Resources

Stars

206 stars

Watchers

5 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

kWSL.cmd • KDE Neon 6 Desktop for WSL

  • Online install of KDE Neon in WSL, accessible via RDP. If you prefer GTK, see xWSL or Kali-xRDP
  • Runs on Windows 10 / Windows Server 2019 and newer, including Hyper-V Core.
  • xRDP Display Server; no additional Xserver download/configuration required.
  • High-quality RDP audio playback; video playback and YouTube work well and maintains audio sync.
  • If you want to accesss kWSL remotely, Chrome Remote Desktop is pre-installed (Never expose RDP servers to the Internet.) Configuration steps are here

image

IMPORTANT!

  • Windows 11 requires 22H2 Update (Sun Valley 2, September 2022)
  • Windows Server / Windows 10 require latest updates from Windows Update.

INSTALL INSTRUCTIONS

From an elevated CMD.EXE prompt change to your desired install directory and type/paste the following command:

PowerShell -executionpolicy bypass -command "wget https://github.com/DesktopECHO/kWSL/raw/master/kWSL.cmd -UseBasicParsing -OutFile kWSL.cmd ; .\kWSL.cmd"

You will be asked a few questions. The install script will determine current DPI scaling, or set your own value if preferred:

[KDE Neon 6 Installer for WSL v.20240301]
Set a name for this KDE Neon instance. Hit Enter to use default.
Keep this name simple, no space or underscore characters [Neon]:
Port number for xRDP traffic or hit Enter to use default [3399]:
Port number for SSHd traffic or hit Enter to use default [3322]:
Set a custom DPI scale, or hit Enter for Windows default [1]: 1.25
[Not recommended!] Type X to eXclude from Windows Defender:
Installing kWSL Distro [Neon] to "C:\Neon"
This will take a few minutes, please wait...

The installer will download all the necessary packages to transform the Jammy base image into KDE Neon User Edition. Reference times will vary depending on system performance and the presence of antivirus software. A fast system/network can complete the install in about 10 minutes.

[19:19:01] Importing distro userspace (~0m30s)
[19:19:14] Git clone and update repositories (~1m00s)
[19:20:22] Prepare userspace (~1m00s)
[19:20:45] Installing Prerequisites (~2m00s)
[19:23:12] KDE Neon 6 (~7m00s)
[19:31:12] Web Browser, CRD, VLC 4 (~1m00s)
[19:32:10] Cleaning-up... (~0m15s)

Near the end of the script you will be prompted to create a non-root user. This user will be automatically added to sudo'ers.

Open Windows Firewall Ports for xRDP, SSH, mDNS...
Building RDP Connection file, Console link, Init system...
Building Scheduled Task...
SUCCESS: The scheduled task "Neon" has successfully been created.
Start: Fri 03/01/2024 @ 19:18
End: Fri 03/01/2024 @ 19:32
Packages: 1434
- xRDP Server listening on port 3399 and SSHd on port 3322.
- Links for GUI and Console sessions have been placed on your desktop.
- (Re)launch init from the Task Scheduler or by running the following command:
schtasks /run /tn Neon
Neon Installation Complete! GUI will start in a few secon

When the script completes you will be logged-in to your KDE Neon Desktop.

Optional: Set KDE to start at boot (like a service) instead of starting at login (default setting)

  • Right-click the task in Task Scheduler, click properties
  • Click the checkbox for Run whether user is logged on or not and click OK
  • Click the Triggers tab and change the trigger from At log on to At startup
  • Enter your Windows credentials when prompted

Reboot your PC when complete and kWSL will startup automatically.

Optional: Convert WSL Instance

Example of conversion to WSL2:

  • Stop WSL instance (Using default instance name NeonWSL in this example): wsl --terminate Neon
  • Convert the instance to WSL2: wsl --set-version Neon 2
  • Restart KDE Neon Instance under WSL2: schtasks /run /tn Neon

Procedure is the same for switching back to WSL1: wsl --set-version NeonWSL 1

Make it your own

It's best to fork this project so you (and only you) control the packages and files in the deployment.

  • Sign into GitHub and fork this project
  • Edit kWSL.cmd. On line 2 you will see SET GITORG=DesktopECHO - Change DesktopECHO to the name of your own repository.
  • Customize the script any way you like.
  • Launch the script using your repository name: PowerShell -executionpolicy bypass -command "wget https://github.com/YOUR-REPO-NAME/kWSL/raw/master/kWSL.cmd -UseBasicParsing -OutFile kWSL.cmd ; .\kWSL.cmd"

Quirks / Limitations / Additional Info:

  • H.264 Enabled in XRDP
  • Kwin desktop composition is enabled by default
  • When you log out out of a KDE session the WSL instance is restarted. This is the equivilent to having a freshly-booted desktop environment at every login, but the 'reboot' process only takes about 5 seconds.
  • kWSL should work fine with an X Server instead of xRDP but this has not been thoroughly tested. The file /etc/profile.d/kWSL.sh contains WSL-centric environment variables that may need adjustment such as LIBGL_ALWAYS_INDIRECT.
  • Plasma-discover doesn't work in Server 2019 / Win 10 v.1809 -- The installer will remove it if you're running an affected OS.
  • WSL1 Doesn't work with PolicyKit. Enabled kdesu/gksu for apps needing elevated rights (plasma-discover, ksystemlog, muon, root console.)
  • KDE Lockscreen is not implemented (due to policykit)
  • Patched KDE Activity Manager to disable WAL in sqlite3.
  • Mozilla Seamonkey is included as a stable/maintained browser.
  • QtWebEngine (Chromium-based) browsers like Falkon and Konqueror now work. (July/21)
  • Installed image consumes approximately 3 GB of disk space.
  • Apt-fast added to improve download speed and reliability.
  • Default installation uses the Breeze theme and Windows fonts (Segoe UI / Cascadia Code)
  • This is a basic installation of KDE to save bandwidth. If you want the complete KDE Desktop environment (+3GB Disk) run sudo pkcon -y install neon-all

image

image

About

KDE Neon 6.0 installer for WSL1 or WSL2.

Topics

Resources

Stars

206 stars

Watchers

5 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

kWSL.cmd • KDE Neon 6 Desktop for WSL

  • Online install of KDE Neon in WSL, accessible via RDP. If you prefer GTK, see xWSL or Kali-xRDP
  • Runs on Windows 10 / Windows Server 2019 and newer, including Hyper-V Core.
  • xRDP Display Server; no additional Xserver download/configuration required.
  • High-quality RDP audio playback; video playback and YouTube work well and maintains audio sync.
  • If you want to accesss kWSL remotely, Chrome Remote Desktop is pre-installed (Never expose RDP servers to the Internet.) Configuration steps are here

image

IMPORTANT!

  • Windows 11 requires 22H2 Update (Sun Valley 2, September 2022)
  • Windows Server / Windows 10 require latest updates from Windows Update.

INSTALL INSTRUCTIONS

From an elevated CMD.EXE prompt change to your desired install directory and type/paste the following command:

PowerShell -executionpolicy bypass -command "wget https://github.com/DesktopECHO/kWSL/raw/master/kWSL.cmd -UseBasicParsing -OutFile kWSL.cmd ; .\kWSL.cmd"

You will be asked a few questions. The install script will determine current DPI scaling, or set your own value if preferred:

[KDE Neon 6 Installer for WSL v.20240301]
Set a name for this KDE Neon instance. Hit Enter to use default.
Keep this name simple, no space or underscore characters [Neon]:
Port number for xRDP traffic or hit Enter to use default [3399]:
Port number for SSHd traffic or hit Enter to use default [3322]:
Set a custom DPI scale, or hit Enter for Windows default [1]: 1.25
[Not recommended!] Type X to eXclude from Windows Defender:
Installing kWSL Distro [Neon] to "C:\Neon"
This will take a few minutes, please wait...

The installer will download all the necessary packages to transform the Jammy base image into KDE Neon User Edition. Reference times will vary depending on system performance and the presence of antivirus software. A fast system/network can complete the install in about 10 minutes.

[19:19:01] Importing distro userspace (~0m30s)
[19:19:14] Git clone and update repositories (~1m00s)
[19:20:22] Prepare userspace (~1m00s)
[19:20:45] Installing Prerequisites (~2m00s)
[19:23:12] KDE Neon 6 (~7m00s)
[19:31:12] Web Browser, CRD, VLC 4 (~1m00s)
[19:32:10] Cleaning-up... (~0m15s)

Near the end of the script you will be prompted to create a non-root user. This user will be automatically added to sudo'ers.

Open Windows Firewall Ports for xRDP, SSH, mDNS...
Building RDP Connection file, Console link, Init system...
Building Scheduled Task...
SUCCESS: The scheduled task "Neon" has successfully been created.
Start: Fri 03/01/2024 @ 19:18
End: Fri 03/01/2024 @ 19:32
Packages: 1434
- xRDP Server listening on port 3399 and SSHd on port 3322.
- Links for GUI and Console sessions have been placed on your desktop.
- (Re)launch init from the Task Scheduler or by running the following command:
schtasks /run /tn Neon
Neon Installation Complete! GUI will start in a few secon

When the script completes you will be logged-in to your KDE Neon Desktop.

Optional: Set KDE to start at boot (like a service) instead of starting at login (default setting)

  • Right-click the task in Task Scheduler, click properties
  • Click the checkbox for Run whether user is logged on or not and click OK
  • Click the Triggers tab and change the trigger from At log on to At startup
  • Enter your Windows credentials when prompted

Reboot your PC when complete and kWSL will startup automatically.

Optional: Convert WSL Instance

Example of conversion to WSL2:

  • Stop WSL instance (Using default instance name NeonWSL in this example): wsl --terminate Neon
  • Convert the instance to WSL2: wsl --set-version Neon 2
  • Restart KDE Neon Instance under WSL2: schtasks /run /tn Neon

Procedure is the same for switching back to WSL1: wsl --set-version NeonWSL 1

Make it your own

It's best to fork this project so you (and only you) control the packages and files in the deployment.

  • Sign into GitHub and fork this project
  • Edit kWSL.cmd. On line 2 you will see SET GITORG=DesktopECHO - Change DesktopECHO to the name of your own repository.
  • Customize the script any way you like.
  • Launch the script using your repository name: PowerShell -executionpolicy bypass -command "wget https://github.com/YOUR-REPO-NAME/kWSL/raw/master/kWSL.cmd -UseBasicParsing -OutFile kWSL.cmd ; .\kWSL.cmd"

Quirks / Limitations / Additional Info:

  • H.264 Enabled in XRDP
  • Kwin desktop composition is enabled by default
  • When you log out out of a KDE session the WSL instance is restarted. This is the equivilent to having a freshly-booted desktop environment at every login, but the 'reboot' process only takes about 5 seconds.
  • kWSL should work fine with an X Server instead of xRDP but this has not been thoroughly tested. The file /etc/profile.d/kWSL.sh contains WSL-centric environment variables that may need adjustment such as LIBGL_ALWAYS_INDIRECT.
  • Plasma-discover doesn't work in Server 2019 / Win 10 v.1809 -- The installer will remove it if you're running an affected OS.
  • WSL1 Doesn't work with PolicyKit. Enabled kdesu/gksu for apps needing elevated rights (plasma-discover, ksystemlog, muon, root console.)
  • KDE Lockscreen is not implemented (due to policykit)
  • Patched KDE Activity Manager to disable WAL in sqlite3.
  • Mozilla Seamonkey is included as a stable/maintained browser.
  • QtWebEngine (Chromium-based) browsers like Falkon and Konqueror now work. (July/21)
  • Installed image consumes approximately 3 GB of disk space.
  • Apt-fast added to improve download speed and reliability.
  • Default installation uses the Breeze theme and Windows fonts (Segoe UI / Cascadia Code)
  • This is a basic installation of KDE to save bandwidth. If you want the complete KDE Desktop environment (+3GB Disk) run sudo pkcon -y install neon-all

image

image

About

KDE Neon 6.0 installer for WSL1 or WSL2.

Topics

Resources

Stars

206 stars

Watchers

5 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

kWSL.cmd • KDE Neon 6 Desktop for WSL

  • Online install of KDE Neon in WSL, accessible via RDP. If you prefer GTK, see xWSL or Kali-xRDP
  • Runs on Windows 10 / Windows Server 2019 and newer, including Hyper-V Core.
  • xRDP Display Server; no additional Xserver download/configuration required.
  • High-quality RDP audio playback; video playback and YouTube work well and maintains audio sync.
  • If you want to accesss kWSL remotely, Chrome Remote Desktop is pre-installed (Never expose RDP servers to the Internet.) Configuration steps are here

image

IMPORTANT!

  • Windows 11 requires 22H2 Update (Sun Valley 2, September 2022)
  • Windows Server / Windows 10 require latest updates from Windows Update.

INSTALL INSTRUCTIONS

From an elevated CMD.EXE prompt change to your desired install directory and type/paste the following command:

PowerShell -executionpolicy bypass -command "wget https://github.com/DesktopECHO/kWSL/raw/master/kWSL.cmd -UseBasicParsing -OutFile kWSL.cmd ; .\kWSL.cmd"

You will be asked a few questions. The install script will determine current DPI scaling, or set your own value if preferred:

[KDE Neon 6 Installer for WSL v.20240301]
Set a name for this KDE Neon instance. Hit Enter to use default.
Keep this name simple, no space or underscore characters [Neon]:
Port number for xRDP traffic or hit Enter to use default [3399]:
Port number for SSHd traffic or hit Enter to use default [3322]:
Set a custom DPI scale, or hit Enter for Windows default [1]: 1.25
[Not recommended!] Type X to eXclude from Windows Defender:
Installing kWSL Distro [Neon] to "C:\Neon"
This will take a few minutes, please wait...

The installer will download all the necessary packages to transform the Jammy base image into KDE Neon User Edition. Reference times will vary depending on system performance and the presence of antivirus software. A fast system/network can complete the install in about 10 minutes.

[19:19:01] Importing distro userspace (~0m30s)
[19:19:14] Git clone and update repositories (~1m00s)
[19:20:22] Prepare userspace (~1m00s)
[19:20:45] Installing Prerequisites (~2m00s)
[19:23:12] KDE Neon 6 (~7m00s)
[19:31:12] Web Browser, CRD, VLC 4 (~1m00s)
[19:32:10] Cleaning-up... (~0m15s)

Near the end of the script you will be prompted to create a non-root user. This user will be automatically added to sudo'ers.

Open Windows Firewall Ports for xRDP, SSH, mDNS...
Building RDP Connection file, Console link, Init system...
Building Scheduled Task...
SUCCESS: The scheduled task "Neon" has successfully been created.
Start: Fri 03/01/2024 @ 19:18
End: Fri 03/01/2024 @ 19:32
Packages: 1434
- xRDP Server listening on port 3399 and SSHd on port 3322.
- Links for GUI and Console sessions have been placed on your desktop.
- (Re)launch init from the Task Scheduler or by running the following command:
schtasks /run /tn Neon
Neon Installation Complete! GUI will start in a few secon

When the script completes you will be logged-in to your KDE Neon Desktop.

Optional: Set KDE to start at boot (like a service) instead of starting at login (default setting)

  • Right-click the task in Task Scheduler, click properties
  • Click the checkbox for Run whether user is logged on or not and click OK
  • Click the Triggers tab and change the trigger from At log on to At startup
  • Enter your Windows credentials when prompted

Reboot your PC when complete and kWSL will startup automatically.

Optional: Convert WSL Instance

Example of conversion to WSL2:

  • Stop WSL instance (Using default instance name NeonWSL in this example): wsl --terminate Neon
  • Convert the instance to WSL2: wsl --set-version Neon 2
  • Restart KDE Neon Instance under WSL2: schtasks /run /tn Neon

Procedure is the same for switching back to WSL1: wsl --set-version NeonWSL 1

Make it your own

It's best to fork this project so you (and only you) control the packages and files in the deployment.

  • Sign into GitHub and fork this project
  • Edit kWSL.cmd. On line 2 you will see SET GITORG=DesktopECHO - Change DesktopECHO to the name of your own repository.
  • Customize the script any way you like.
  • Launch the script using your repository name: PowerShell -executionpolicy bypass -command "wget https://github.com/YOUR-REPO-NAME/kWSL/raw/master/kWSL.cmd -UseBasicParsing -OutFile kWSL.cmd ; .\kWSL.cmd"

Quirks / Limitations / Additional Info:

  • H.264 Enabled in XRDP
  • Kwin desktop composition is enabled by default
  • When you log out out of a KDE session the WSL instance is restarted. This is the equivilent to having a freshly-booted desktop environment at every login, but the 'reboot' process only takes about 5 seconds.
  • kWSL should work fine with an X Server instead of xRDP but this has not been thoroughly tested. The file /etc/profile.d/kWSL.sh contains WSL-centric environment variables that may need adjustment such as LIBGL_ALWAYS_INDIRECT.
  • Plasma-discover doesn't work in Server 2019 / Win 10 v.1809 -- The installer will remove it if you're running an affected OS.
  • WSL1 Doesn't work with PolicyKit. Enabled kdesu/gksu for apps needing elevated rights (plasma-discover, ksystemlog, muon, root console.)
  • KDE Lockscreen is not implemented (due to policykit)
  • Patched KDE Activity Manager to disable WAL in sqlite3.
  • Mozilla Seamonkey is included as a stable/maintained browser.
  • QtWebEngine (Chromium-based) browsers like Falkon and Konqueror now work. (July/21)
  • Installed image consumes approximately 3 GB of disk space.
  • Apt-fast added to improve download speed and reliability.
  • Default installation uses the Breeze theme and Windows fonts (Segoe UI / Cascadia Code)
  • This is a basic installation of KDE to save bandwidth. If you want the complete KDE Desktop environment (+3GB Disk) run sudo pkcon -y install neon-all

image

image

About

KDE Neon 6.0 installer for WSL1 or WSL2.

Topics

Resources

Stars

206 stars

Watchers

5 watching

Forks

Contributors

Languages