We love pull requests from everyone. By participating in this project, you agree to abide by Code of Conduct.

Code contributions


Run the following to get started:

git clone --recursive --branch dev/master
sudo make res_install


|  |-etc
|  |  |-wslview.desktop: XDG-style app definition for wslview
|  |  |-wsl.ico: legacy default icon for wslusc
|  |  |-wsl-gui.ico: default icon for wslusc GUI shortcut
|  |  |-wsl-term.ico: default icon for wslusc cli shortcut
|  |  |-sudo.ps1: helper script for wslgsu
|  |  |-get_dpi.ps1: helper script for dpi function in wslsys
|  |  | helper script for wslusc on WSL side
|  |  \-runHidden.vbs: helper script for wslusc on Windows side
|  |-wslu-header: Header file of all script
|  \-<components>.sh: Components of script
|-tests: location for script tests
   |-bats: testing utility
   |-scripts: scripts
      |-debian: files for building .deb
      |-rpm: files for building .rpm
      |-fedora: files for building Fedora versions of .rpm (4+)
      |-arch: files for building Arch Linux packages
      \-alpine: files for building Alpine Linux packages is the script to complete some preprocessing task for both developing and packaging building.

Following parameter is available for developing:

  • -e, --env -- Environment Check, check whether it is using Fake WSL Environment, normal Linux or WSL.
  • -p, --prsh -- Check Status of powershell.exe.
  • -P, --pkg -- Install Needed Packages required by your system for building.

Following parameter is available for package building:

  • --build -- helper to add the version to wslu header.
  • --deb <distro> -- preprocessing script for deb packages.<distro> should be version code name like bionic, stable, kali-rolling or buster.
  • --rpm -- preprocessing script for rpm packages.

Build & Install

run make to build executables to out folder and manages to out-docs folder. run make doc to build manpage only. run make clean to remove out and out-docs folder. run make test to run tests. run make install to install. run make res_install to install just resources. run make uninstall to uninstall. run cd extras/scripts && ./ to build docs to gendocs.

Pass necessary environment variables if necessary. The default installation is in /usr folder:

  • DESTDIR: You can change the destination installation folder. It is empty by default.
  • PREFIX: You can change the prefix for where to install. It is /usr by default.


wslu use batsopen in new window for testing. Please refer to its guideopen in new window to write tests.

Push Requests

Make sure that the codes changed are tested.

Then create Pull requests hereopen in new window.

Financial contributions

We also welcome financial contributions in full transparency on our open collectiveopen in new window. Anyone can file an expense. If the expense makes sense for the development of the community, it will be "merged" in the ledger of our open collective by the core contributors and the person who filed the expense will be reimbursed.


Thank you to all the people who have already contributed to wslu!


Thank you to all our backers! [Become a backeropen in new window]


Thank you to all our sponsors! (please ask your company to also support this open source project by becoming a sponsoropen in new window)