Jump to content

WSL: Difference between revisions

From Official NixOS Wiki
imported>Onny
Initial page
 
Phobos (talk | contribs)
m Updated intructions
 
(10 intermediate revisions by 5 users not shown)
Line 1: Line 1:
Notes on running NixOS on the Windows Subsystem for Linux (WSL, WSL2)
Notes on running NixOS on the Windows Subsystem for Linux (WSL, WSL2).


== Setup ==
== Setup ==


Download the latest release of <code>nixos-wsl.tar.gz</code> from the [https://github.com/nix-community/NixOS-WSL/releases NixOS-WSL Github page].
Ensure that WSL is installed and up to date.


Import the WSL container
<syntaxhighlight lang="powershell">
wsl --install
wsl --update
</syntaxhighlight>
 
Sometimes you'll have to install WSL2 manually by [https://github.com/microsoft/WSL/releases downloading the msi-installation package].
 
NixOS is [https://github.com/microsoft/WSL/issues/11206 not yet packaged] as a official WSL distribution or on the Microsoft store. Download the latest release of <code>nixos.wsl</code> from the [https://github.com/nix-community/NixOS-WSL/releases NixOS-WSL Github page].
 
Double-click the file you just downloaded (requires WSL >= 2.4.4).
 
== Usage ==
 
Start it with PowerShellː
 
<syntaxhighlight lang="powershell">
wsl -d NixOS
</syntaxhighlight>
 
== Tips and tricks ==
 
=== Run container on startup ===
 
To run the distro <code>NixOS</code> on Windows startup or user login in the background, use these commands in PowerShellː


<syntaxhighlight lang="bash">
<syntaxhighlight lang="powershell">
wsl --import NixOS .\NixOS\ nixos-wsl.tar.gz --version 2
echo "" > $HOME\run_wsl2_at_startup.vbs
notepad $HOME\run_wsl2_at_startup.vbs
</syntaxhighlight>
</syntaxhighlight>


Start it
Inside the script we define <code>NixOS</code> as the distribution name, as imported in the setup step above.
 
{{file|$HOME\run_wsl2_at_startup.vbs|vbscript|<nowiki>
set object = createobject("wscript.shell")
object.run "wsl.exe --distribution NixOS", 0
</nowiki>}}
 
Open the task schedulerː


<syntaxhighlight lang="bash">
<syntaxhighlight lang="powershell">
wsl -d NixOS
taskschd.msc
</syntaxhighlight>
</syntaxhighlight>
Click on <code>Create task</code> on the right pane, set name to <code>WSL</code>. On the tab "Triggers" click on "New ..." and select "run task on user login" in the dropdown menu. On the tab "Action" click on "New ..." and insert as command: <code>%USERPROFILE%\run_wsl2_at_startup.vbs</code>
[[Category:Container]]

Latest revision as of 20:42, 10 March 2026

Notes on running NixOS on the Windows Subsystem for Linux (WSL, WSL2).

Setup

Ensure that WSL is installed and up to date.

wsl --install
wsl --update

Sometimes you'll have to install WSL2 manually by downloading the msi-installation package.

NixOS is not yet packaged as a official WSL distribution or on the Microsoft store. Download the latest release of nixos.wsl from the NixOS-WSL Github page.

Double-click the file you just downloaded (requires WSL >= 2.4.4).

Usage

Start it with PowerShellː

wsl -d NixOS

Tips and tricks

Run container on startup

To run the distro NixOS on Windows startup or user login in the background, use these commands in PowerShellː

echo "" > $HOME\run_wsl2_at_startup.vbs
notepad $HOME\run_wsl2_at_startup.vbs

Inside the script we define NixOS as the distribution name, as imported in the setup step above.

≡︎ $HOME\run_wsl2_at_startup.vbs
set object = createobject("wscript.shell") 
object.run "wsl.exe --distribution NixOS", 0

Open the task schedulerː

taskschd.msc

Click on Create task on the right pane, set name to WSL. On the tab "Triggers" click on "New ..." and select "run task on user login" in the dropdown menu. On the tab "Action" click on "New ..." and insert as command: %USERPROFILE%\run_wsl2_at_startup.vbs