GUI app support has arrived for the Windows Subsystem for Linux on the latest Windows Insiders Preview build 21362+ and Pengwin supports it out of the box

Today is a historic day. Microsoft unveiled official GUI support for WSL without installing an X Server and also comes with GPU accelerated OpenGL support. With Pengwin, this support comes already built-in.

The announcement was made via the official WSL blog: The Initial Preview of GUI app support is now available for the Windows Subsystem for Linux | Windows Command Line (microsoft.com)

Let’s follow some steps so you can squeeze the best of this technology.

WSLg installation

Once you have upgraded your Windows Insider to at least build 21362, you will need to upgrade your WSL installation.

  1. Be sure that Pengwin is already running in WSL 2. If not, first switch it with wsl --set-version WLinux 2. Then run wsl --shutdown

  2. Upgrade WSL running wsl --update from an elevated command prompt or PowerShell. And restart WSL with wsl --shutdown.

Installing the graphic driver in Windows

It recommended running WSLg on a system with virtual GPU (vGPU) enabled for WSL so you can benefit from hardware-accelerated OpenGL rendering. You can find a preview driver supporting WSL from each of our partners below.

For more information: GitHub - microsoft/wslg: Enabling the Windows Subsystem for Linux to include support for Wayland and X server related scenarios

Tune Pengwin

Upgrade Pengwin

If you are installing a fresh version of Pengwin, you have GUI and GPU support out of the box. If not, you need to update it. Run:

pengwin-setup update
pengwin-setup install GUI GUILIB

Enable D-Bus

Many Linux apps rely on D-Bus to work properly. This support is installed in Pengwin running:

pengwin-setup install GUI GUILIB

Enable High DPI

If your DPI is more than 100%, you will need to adjust it with:

pengwin-setup install GUI HIDPI

Install GUI apps

You can install some terminal applications directly on the GUI menu. Also, you can install any GUI app just using the apt command. Install what you need and then create the start menu options:

pengwin-setup startmenu

WSLg comes built-in with Start Menu shortcuts, but we still recommend the ones generated by Pengwin to take advantage of the High DPI settings. The WSLg generated ones will say (WLinux) at the end of the name, whereas the Pengwin ones will end with (WSL)

Uninstall automatic X Server launch

If you already installed VcXSvr via pengwin-setup or automatic X410 server launch, it is time to uninstall them:

pengwin-setup uninstall X410
pengwin-setup uninstall VCXSRV

Some screenshots

glxinfo showing OpenGL GPU Accelerated

glxgears from Terminator with High DPI

Linux version of Blender

Ongoing support

We will work to give the best experience with WSLg but without lowering the support for other use cases like WSL1, x servers, or full desktop experience. We try that the experience is very similar to use one or another depending on your needs.

Enjoy It !!!

Place your Java project in Pengwin WSL2 and use IntelliJ 2021 to build and run it

Recently JetBrains shipped the IntelliJ 2021.1 Beta 3 with an interesting addition; the possibility to compile and run Java programs whose source code is in WSL2. Everything from the Windows version of the IDE.

https://blog.jetbrains.com/idea/2021/01/intellij-idea-2021-1-eap-1/

https://blog.jetbrains.com/idea/2021/02/intellij-idea-2021-1-eap-5/

Let's create a new Java project (Gradle / Maven) inside Pengwin and run it using IntelliJ from Windows

Install Java in Pengwin

Let's prepare Pengwin for run Java project from IntelliJ:

  1. Install SDK Man from pengwin-setup. SDK Man is a very versatile distribution manager, where you can install and update not only any supported Java version but also Ant, Gradle, Maven, and many other tools. (https://sdkman.io/sdks)

    $ pengwin-setup update $ pengwin-setup install PROGRAMMING JAVA $ source /etc/profile.d/sdkman.sh

  2. List the JVM available and install one of them or simply install the default one.

    $ sdk list java $ sdk install java 11.0.3.hs-adpt # For example

Or the default

$ sdk install java

Create a new project in IntelliJ

  1. Create a new Java project. You can choose Java, Gradle, or Maven.
  2. Choose the just installed JDK from the drop-down
  1. Remember to create the project in Pengwin home: \\wsl$\WLinux\home\user
  1. Now refresh the Gradle project (or maven) in IntelliJ and you are ready to start coding, at the IO speed of Linux on Windows:

Additional instructions for Maven

Maven needs some more tweaks:

  1. If you haven't installed java from apt, create a symbolic link from the default path
    $ sudo ln -s "$(which java)" /usr/bin/java    
    $ sudo ln -s "$(which javac)" /usr/bin/javac
  2. Install Maven using SDKMAN
    $ sdk install maven

Permission problems

Sometimes IntelliJ creates the project and its own cache directory as root, and then itself fails due to permission problems. To fix that execute:

$ cd
$ sudo chown user:user -R .cache # Replace 'user' by your username
$ sudo chown user:user -R untitled # Replace 'user' by your username and 'untitled' by your project folder

Raft WSL March update - Open distro home in File Explorer

Raft WSL 21.3.0 has been released

Changelog

  • A new command button allows opening the distro home directory in File Explorer.

  • Improved the Windows Terminal Synchronization when the custom distros are renamed.

  • For Custom distros in Windows Terminal will now start with the home directory.

  • Added KDE Neon definition

Run Oracle Linux on WSL with Pengwin Enterprise (Updated 23-02-2021)

Pengwin Enterprise supports several enterprise Linux distributions, including Oracle Linux. You can upgrade to Oracle Linux completely free, no strings attached, using a handy script provided by Oracle. This is the exact same Oracle Linux that Oracle provides to its enterprise customers. And it ‘just works’ on the personal use demo build of Pengwin Enterprise built with Scientific Linux in the Microsoft Store.

101e08a1-58fa-4470-b85c-a4f89c8b802c.png
{1FEE154C-C58C-43B4-A06D-3097CDFA05C3}.png.jpg
{0A941B3E-4934-4DB5-8BDE-2852281A1B3F}.png.jpg

2.

Set a password for root and create a default non-privileged user. 

{2C760724-63F4-4D99-82CE-5C1BE700BB27}.png.jpg

3.

Change to root:

$ su -
{53623AF7-D003-46A1-9A16-56DF17962B38}.png.jpg

4.

Download and run Oracle's script: 

# curl https://raw.githubusercontent.com/oracle/centos2ol/main/centos2ol.sh | bash

That’s it.

If you are in WSL1 remove sudo due to it halts the distribution. Use su -c or su - instead.

# yum remove sudo -y

Bonus:

Install wslutilities

# yum install wslu -y
{99D2A3B5-BE21-489B-92D3-2058CCB19D07}.png.jpg

See more on Oracle Linux.

Oracle Linux has not endorsed Pengwin Enterprise.

Pengwin February Update. See what's new.

Pengwin 21.2.1:

  • Improved Java installation via SDKMan and now it is compatible with IntelliJ IDEA 2021.1 EAP 3. You can now have your entire Java project on Pengwin, compile and execute everything from IntelliJ in Windows.

  • Upgraded to Homebrew 3

  • Upgraded the embedded VCXsrv to 1.20.9.0

  • Fixed a problem with the AWS CLI installer. We are working to bring the AWS CLI version 2 soon.

  • Ported the integration for CLion to every JetBrains tool. A new pengwin-setup item was added to support it. If you face problems with JetBrains tools, especially 2020 and older, run this command.

0eebf63c-5613-4dac-b676-6e50d0a64b82.png
  • Fixed a leftover of the Cassandra installer. If you see an error message about “proc” please reinstall Cassandra or uninstall it if you are not using it anymore.

  • Upgraded Ruby on pengwin-setup and added compatibility with RubyMine

  • Adjust pinning rules to enable regular PPAs

  • Now Pengwin shows a helpful Message of the day giving information about the WSL environment.

  • Improved the winhome link creation with non-standard Windows Home Folder, like the ones that are in H:

Existing users can update immediately by running $ pengwin-setup update.

Report bugs here.

Huge thanks to Andrew Fehr, Javier Santos, Sascha Manns, all contributors, and issue reporters.

-Carlos

Raft WSL first 2021 version has released with the anticipated custom distros support

We released Raft about one year ago. During this time, we have received feedback, and we understood better our users' needs. Bringing proper custom distros support required us to rethink the user interface. Thinking in after you install your favorite distro, Raft's focus should be the installed ones; we made a UI redesign that allows you to accommodate your custom distros and allows you to concentrate on your installed ones. We also took advantage of this change to incorporate the most recent Fluent Design controls.

Here is the result; we hope that you enjoy the changes.

Changelog

  • Now, the Available and Installed distros are separated, giving more relevance to the installed ones.

  • The installed distributions are now grouped by distribution name and grouping; for example, all Ubuntus below the same icon.

  • Clicking the distro name or icon shows a short command bar with the most used commands.

  • The right-click menu was redesigned to be more intuitive.

  • Now, the default WSL version can be selected from the toolbar with one click.

  • The main screen now is responsive, reducing the icons and titles to give you more information even if the window is small.

  • Added some acrylic effects on the title bar to give a more fluent feeling.

Custom distributions support

  • Every distribution you manually imported with wsl --import is now visible and administered from Raft.

  • You can rename the imported distros in Raft

  • If you synchronize with Windows Terminal, the logos and labels of the custom distros will be migrated as well.

  • Now, when restoring a snapshot, a new option will be presented, allowing you to create a new custom distro instead of restoring in place.

  • Now, you can specify the default directory for all your newly created custom distros in the settings.

Miscellaneous

  • Added SLES 15.1 and SLES 15.2

  • Now, in ARM64, the available distros shown are restricted to the ones available for the ARM64 platform.

  • For Custom distros in Windows Terminal will now start with the home directory.

  • Added KDE Neon definition


Upgrade Fedora Remix for WSL to 33

Hello,

You can upgrade your existing installation of Fedora 32 with the following steps.

First, if you are in Windows 1903 or newer first backup your installation:

wsl --export fedoraremix fedoraremix32_backup.tar.gz

Then proceed:

upgrade.sh
sudo dnf upgrade --refresh
sudo dnf install dnf-plugin-system-upgrade
sudo rpm --import https://src.fedoraproject.org/rpms/fedora-repos/blob/rawhide/f/RPM-GPG-KEY-fedora-33-primary
sudo dnf install distribution-gpg-keys
sudo dnf system-upgrade --allowerasing --skip-broken download --releasever=33
sudo dnf system-upgrade reboot

At this point, it will raise an error, ignore it, and execute the following commands:

sudo dnf system-upgrade upgrade
sudo rpm --rebuilddb
sudo dnf -y autoremove
sudo dnf -y clean all
sudo mandb
upgrade.sh
cat /etc/fedora-release

exit

If you face an error like: "Failed to obtain the transaction lock (logged in as root).". Run this:

upgrade.sh

And repeat the last command that you attempted and keep following the steps.

Pengwin December Update. See what's new.

Pengwin 20.12.1 features:

  • Improved the Homebrew installer and added fish support

  • Increased the Python version to 3.9.1

  • Improved the Python installation menu in pengwin-setup

  • pengwin-setup now installs .NET SDK 5.0

  • Upgrade node.js to 15

  • Added Poetry package manager as an option in the Python installer.

  • Now, if you backup your distro using wsl --export, when you restore it, the default user will be kept instead of root.

  • The Go installer now plays nice with fish; also, it creates a default structure in the home directory. "pengwin-setup install PROGRAMMING GO" now works.

  • You can now call "pengwin-setup install XX YY" instead of autoinstall.

  • You can now call "pengwin-setup uninstall XX" instead of autoinstall UNINSTALL.

Existing users can update immediately by running $ pengwin-setup update.

Report bugs here.

Huge thanks to Javier Santos, Andrew Fehr, Sascha Manns, WSLUser, all contributors, and issue reporters.

-Carlos

Pengwin 20.10.1 released. See what's new.

Pengwin 20.10.1 features:

  • Fix docker installer if Pengwin is switched from WSL2 to WSL1.

  • Now you can put in your home a file named .pengwinbackupignore to exclude files and folders from the home backup in pengwin-setup

  • Node.js was upgraded to version 14.

  • Fixed a problem with the fish installer.

  • Fix a problem with rc.local support

  • pengwin-setup now has the "update" command to update the packages

  • Add an "autoinstall" command to pengwin-setup to issue automated installations, for example, pengwin-setup autoinstall GUI HIGHDPI

  • Added a "startmenu" command to pengwin-setup to automatically regenerate the shortcuts added to Windows Start Menu.

  • Fix a problem with .NET Core and PowerShell installers.

  • The default apt sources now include Debian stable to help with installations made for Debian Buster

  • Upgrade WSLU to 3.2.1 with fixes in wslusc and wslview.

  • Now includes fonts from the Windows user local path.

Existing users can update immediately by running $ pengwin-setup update.

Report bugs here.

Huge thanks to Javier Santos, Andrew Fehr, all contributors, and issue reporters.

-Carlos

Raft WSL 20.8.4 support WSL2 in WIndows 1903 and 1909

Recently Microsoft announced that WSL2 was ported to the Windows versions that were released in 2019. (WSL 2 Support is coming to Windows 10 Versions 1903 and 1909)

Be sure that you apply the update: KB4566116. Let’s now refresh what improvements you will see once you get WSL2 support:

  • Raft will show if your distribution is in WSL 1 or 2: A visual indicator over the distribution will indicate to you which version your distribution is installed.

  • Change the default WSL between versions 1 and 2: You can choose every time which version do you want to be used for new installations and for snapshot restoring.

  • Change the WSL version for any installed distribution: Your existing distributions can be switched to WSL 2 and switched back to WSL 1. Raft will offer to create a snapshot in case something goes bad.

  • Enable WSL 2 support in Windows if it is needed: When you receive your Windows Update, Raft WSL will help you enabling WSL 2 support upon your request.

This update will help you squeeze the best of WSL.

Cheers

Which version is installed

Which version is installed

Switching WSL versions

Switching WSL versions

Set version as default

Set version as default

Windows Terminal support comes to Raft WSL 20.8.1

Hello,

After months of work and tests, we are proud to release Widows Terminal support in Raft WSL.

This version includes:

  • Run any installed distribution with Windows Terminal instead of the default console.

  • Update distro data in Windows Terminal like name and icon.

  • Make Windows Terminal the default when you double click a distro in Raft.

  • Added OpenSUSE Leap 15.2

26fd9a9d-fa57-41bf-b3a4-8a63713c35ea.png

For the next release, we are preparing more Windows Terminal tweaks and something new. Stay tuned!

-Carlos

Pengwin 20.7.0 released. See what's new.

Pengwin 20.7.0 has been released, including pengwin-base build 615 and pengwin-setup build 1542.

Pengwin 20.7.0 features:

  • Solves an incompatibility between glibc 2.31 and WSL 1. Pengwin now provides a patched version 2.31-1.wsl. Thank you ChrisTX for the patch: https://gist.github.com/ChrisTX/391fe201b3d72d3b3dac17066100347d

  • Enable unattended installations with pengwin-setup. For example to enable high-dpi write: pengwin-setup --noupdate -y GUI HIDPI

  • Improve High DPI support for GTK, the feature is not experimental anymore and we recommend to use it with Qt and GTK apps with high-resolution displays. 

  • Updated the C++ integration with IDEs to include newer versions of CLion (and other JetBrains IDEs). Just run the C++ option again in pengwin-setup.

  • Fixed the dbus configuration so the FIle Manager in XFCE runs. Run again GUILIB in pengwin-setup

  • Fixed a regression with the MariaDB installation in the LAMP installation.

  • pengwin-setup now installs Python 3.8.3

6c39f3cb-9811-4afc-8641-e97f0f21d296.png

Existing users can update immediately by running $ sudo apt-get update && sudo apt-get upgrade -y.

Report bugs here.

Huge thanks to Patrick, all contributors, and issue reporters.

-Carlos

Upgrade Fedora Remix for WSL to 32

Hello,

You can upgrade your existing installation of Fedora 31 with the following steps. To do a fresh install just run wsl --unregister fedoraremix and run fedoraremix.exe again:

First, if you are in Windows 1903 or newer first backup your installation:

wsl --export fedoraremix fedoraremix31_backup.tar.gz

Then proceed:

upgrade.sh
sudo dnf upgrade --refresh
sudo dnf install dnf-plugin-system-upgrade
sudo dnf system-upgrade --allowerasing --skip-broken download --releasever=32
sudo dnf system-upgrade reboot

At this point, it will raise an error, ignore it, and execute the following commands:

sudo dnf system-upgrade upgrade
sudo dnf -y autoremove
sudo dnf -y clean all
sudo mandb
cat /etc/fedora-release
exit

If you face an error like: "Failed to obtain the transaction lock (logged in as root).". Run this:

upgrade.sh

And repeat the last command that you attempted and keep following the steps.

Raft WSL 20.4.3 released with full support for ARM64 and Ubuntu 20.04

Hello,

After dealing with a bug that prevented Raft to run in ARM64 devices, we could release a fix, and now every characteristic is available on devices like Surface Pro X.

This version includes:

  • Full support for ARM64.

  • Now Ubuntu 20.04 is listed and can be managed.

  • We made a small UI fix in the restore warning message.

For the next release, we are preparing Windows Terminal support. Stay tuned!

-Carlos

New Fedora Remix for WSL 31.4.1 released with a new upgrade script

We released a new version of Fedora Remix for WSL, and these are the improvements:

  • Now dbus-daemon is automatically launched if it is installed. Applications like Terminator or MATE desktop won’t need further configuration besides installing the package.

  • A problem was fixed when the Windows home folder is a shared network drive.

  • WSLU was upgraded to 3.0 giving many improvements and a fix in shortcut generation command wslusc.

  • A new upgrade.sh is included to ease the upgrade process.

Existing users can update immediately by running:

$ curl "https://raw.githubusercontent.com/WhitewaterFoundry/Fedora-Remix-for-WSL/master/linux_files/upgrade.sh" | bash

After that, you only need to run

$ upgrade.sh 

each time that you want to keep your distro up to date.

Also, if you find an issue with dnf try first running this:

$ upgrade.sh

Thank you to all the contributors and issue reporters that helped in shaping this new version.

-Carlos

Installing MATE in Fedora Remix for WSL

These instructions assume that you have just installed Fedora Remix, and the users have been created.

Install MATE

sudo dnf -y update 
sudo dnf -y group install "mate-desktop" --skip-broken

Setting up dbus daemon

echo -e '\neval "$(timeout 2s dbus-launch --auto-syntax)"'>>~/.bashrc 
source ~/.bashrc

Running MATE

Run your preferred server in desktop mode. In the case of X410: x410.exe /desktop

8d9c3ce3-8b89-45dd-ba7d-6cd9390a04d7.png
mate-session
39e9982b-af03-4712-84de-13081a0705ba.png

Pengwin 20.4.1 released. See what's new.

Pengwin 20.4.1 has been released, including pengwin-base build 485 and pengwin-setup build 1398.

Pengwin 20.4.1 features:

  • Switch from testing to bullseye (more info to come)

  • Fixed a regression in pengwin startup when zsh is the default shell.  (thanks @jkugiya)

  • Avoid asking for a password when setting the default shell in pengwin-setup

  • Fix error with MySQL and 00-pengwin.sh also with su -

  • Prepare for WSLU 3 release. When it is released just an apt upgrade will be enough.

  • New section in pengwin-setup-> GUI. Terminals to install Linux GUI terminals

71cd00aa-4967-49c5-a085-ed89299aca66.png
  • Now the non-Latin support will give the option to install iBus

73f9a2ed-3ff3-4365-8670-72ba2e16fef6.png
  • Extended MariaDB installation option for LAMP

  • Added libnss3 libegl1-mesa to GUILIB

  • Upgraded Openstack dependences and upgraded Terraform.

  • Made docker install more compatible with WSL2 and upgraded to the latest version

Existing users can update immediately by running $ sudo apt-get update ; sudo apt-get upgrade -y.

An updated build for new installs has been released yesterday via the Microsoft Store.

Report bugs here.

Huge thanks to Patrick, all contributors, and issue reporters.

-Carlos

Whitewater Foundry version scheme change

To make our versioning system more accurate to the aim of each product, we will make the following changes visible in the next release of each product:

Pengwin:

Pengwin is our rolling update distribution based on Debian. It receives updates every month. It is more logical that the version reflects the release date. So the version numbers now will be: YY.MM.## and the next release will be 20.04.0.

Fedora Remix for WSL:

This distribution is wholly tied to Fedora mainstream release. The logic says that we should number it according to the Fedora version, which it is based. So the version numbers now will be: FEDORA_RELEASE.MM.##, and the next release will be 31.04.0.

Pengwin Enterprise:

These are a set of builds based on distributions in the RedHat world. RHEL, CentOS, Scientific Linux, and Oracle Linux all have the same version scheme. So the version numbers now will be RHEL_RELEASE_MAYOR.RHEL_RELEASE_MINOR.##. The next release depends on the build generated, but the version published in Microsoft Store based on Scientific Linux will be 7.7.3

We are hoping that this change will help everyone better follow the releases.

-Carlos

Pengwin 1.4.6 released. See what's new and what's coming next

Pengwin 1.4.6 has been released, including pengwin-base build 429 and pengwin-setup build 1289. In this release we have many contributions made, so thank you to all.

Pengwin 1.4.6 features:

  • Fixes WSL2 support for fish. Thanks to @laventillelion

  • Correctly detects switch from WSL1 to WSL2 and WSL2 to WSL2 and IP changes to apply those changes to /etc/environment enabling some tools and scripts like CLion to see the X server environment.

  • Correctly updates /etc/environment when mesa-utils is installed to correctly enable software-based OpenGL

  • Fixed NodeJS installation via apt.

  • Added the option to autostart X410 depending on the WSL is being used. Thanks to @branchard

  • Fixed NodeJS startup environment variables.

  • Fix NVM install to correctly install the latest NodeJS version. Thanks to @haodeon

  • The pyenv was fixed for fish. Thanks to @nickolasclarke

  • Added more icon sources to the shortcut creation including KDE ones.

  • Upgraded the embedded server VCXsrv to 1.20.6.0

Existing users can update immediately by running

$ sudo apt-get update ; sudo apt-get upgrade -y.

An updated build for new installs has been released yesterday via the Microsoft Store.

Report bugs here.

Planned for Pengwin 1.4.7:

  • Installers for the most used GUI terminals

  • Support for ibus to improve the experience with non-latin alphabets

Huge thanks to Patrick, all contributors and issue reporters.

-Carlos