For setup of WSL2 Ubuntu version and running a Qt for Python application, read:
https://github.com/eliranwong/UniqueBible/wiki/Install-UBA-on-Windows-via-WSL2-Ubuntu
Notes on setup of Windows Subsystem for Linux (version 2)
Notes in this repository mainly describe the setup of pengwin version 1.3.4 in WSL2
We write these notes for personal use. Please use at your own risk.
In our testings, micrsoft "Windows Update" app does not detect newer version of wifi driver on one of our devices. The old driver did cause an issue under WSL2 [e.g. a link here, another link here].
If you use Intel hardware, to make sure you get the latest drivers, go to the following link and install "Intel Driver & Support Assistant":
https://www.intel.com/content/www/us/en/support/intel-driver-support-assistant.html
Do a scan with the assistant and install the latest network drivers if newer versions are found.
https://docs.microsoft.com/en-us/windows/wsl/install-win10
https://learn.microsoft.com/en-us/windows/wsl/install-manual
https://learn.microsoft.com/en-us/windows/wsl/connect-usb
DPI Scaling > High Quality (Windowed Apps Only)
Shared Clipboard > Enable
Miscellaneous Options > Capture Windows Key
To work with WSL2, select "Allow Public Access"
Remarks: Set Windows firewall according to your needs.
You may consider VCXSRV as an alternative to X410.
We do not recommended installing VCXSRV via pengwin-setup.
Instead, we recommend installing VCXSRV via Windows PowerShell (Admin): [Reason: It is easier to use XLaunch from start menu for configuration.]
choco install vcxsrv
To make "vcxsrv" to work with google web engine or QtWebEngine, select from XLaunch "Native OpenGL".
To make "vcxsrv" to work with WSL2, select from XLaunch "Disable Access Control".
Comment:
In our testing, windowed apps work better and look nicer in X410, as it offers a feature "DPI Scaling > High Qaulity". You don't need to install VCXSRV if you have X410 installed.
It is better to start display server before launching a GUI app. To start a display server automatically, for example, X410
Open Windows "Run" app,
to open apps folder
shell:appsfolder
to open startup folder
shell:startup
To create link in startup, drag X410 from apps folder to startup folder
sudo apt update
sudo apt dist-upgrade
sudo nano /etc/profile.d/00-pengwin.sh
Change from:
alias ll='ls -al'
To:
alias ll='ls -alh'
RECOMMENDED:
GUI > GUILIB
GUI > SYNAPTIC
PROGRAMMING > GO
PROGRAMMING > PYTHONPI
SETTINGS > EXPLORER
SETTINGS > COLORTOOL
NOT RECOMMENDED:
GUI > FCITX [It breaks in many GUI apps under WSL2]
GUI > HIDPI [instead, use X410 > DPI Scaling > High Quality (Windowed Apps Only)]
EDITORS > CODE [read: https://github.com/eliranwong/wsl2/blob/master/programming/vs_code.md]
There were mutliple issues about running GUI apps with pengwin version earlier than 1.3.4 under WSL2. Most know issues had been fixed with pengwin version 1.3.4.
Two suggestions here:
- Add the following line to "~/.profile", if you need to work with .Xresources, e.g. https://github.com/eliranwong/wsl2/blob/master/terminal/urxvt.md#to-customise:
xrdb -merge ~/.Xresources
- To assign QStandardPaths for running Qt applications, app the following lines to file "~/.profile":
mkdir -p /tmp/runtime-$USER
chmod 7700 /tmp/runtime-$USER
export XDG_RUNTIME_DIR=/tmp/runtime-$USER
sudo apt install apt-utils build-essential cmake tree wget curl git zip unzip xz-utils nano lib32stdc++6 sqlite3 libsqlite3-dev libasound2 libnss3 libncurses5 libncurses5-dev libgl1-mesa-dev mesa-utils lsb-release binutils dbus-x11 youtube-dl ffmpeg gawk translate-shell opencc rar unrar mlocate
- Useful tools
https://github.com/eliranwong/wsl2/blob/master/cli_tools/Readme.md
- Download Youtube Video / Audio
https://github.com/eliranwong/wsl2/blob/master/multimedia/youtube-dl.md
- video conversion:
https://github.com/eliranwong/wsl2/blob/master/multimedia/ffmpeg.md
"fcitx", bundled with pengwin, is not working in WSL2 at the time of writing.
We recommend "ibus" instead. For setup of ibus, read:
https://github.com/eliranwong/wsl2/blob/master/input_method/ibus.md
For issues with official pengwin terminal window and alternatives, you may read:
https://github.com/eliranwong/wsl2/blob/master/terminal/Readme.md
https://github.com/eliranwong/wsl2/blob/master/file_manager/thunar.md
For example to open a file, say "my_word_document.docx", located on WSL, with Microsoft Word installed on Windows:
powershell.exe start "my_word_document.doc"
Remarks: Use double quote "" for file names, which contain space characters.
- To create an alias:
echo "alias start='powershell.exe start'" >> ~/.bashrc
- To create a custom action in Thunar:
Name & Description:
Open with Default Windows Application
Command:
powershell.exe start "%n"
Appearance Conditions:
Text Files, Audio Files, Video Files, Image Files, Other Files
For more about Thunar: https://github.com/eliranwong/wsl2/blob/master/file_manager/thunar.md
explorer.exe .
https://github.com/eliranwong/wsl2/blob/master/terminal/gnome-terminal.md
On Windows Explorer,
Enter "wsl" on address bar
or
right-click and select "Open with Pengwin"
or
shift & right-click and select "Open with Pengwin"
or
shift & right-click and select "Open Linux shell here"
e.g.
pengwin.exe run "bash -l -c google-chrome"
WSL Utilities are bundled with pengwin. Read more about these utilities at https://github.com/wslutilities/wslu.
For example, to open a website, say https://github.com, using Windows default web browser, run
wslview https://github.com
- To WSL2 Users, wslusc, bundled with pengwin version 1.3.4 does not work with WSL2.
Use /usr/local/pengwin-setup.d/generate-shortcut.sh instead. For example: https://github.com/eliranwong/wsl2/blob/master/bible_apps/desktop.md#create-a-windows-shortcut-recommended-for-pengwin-version-134
Alternatively, you can create a Windows shrotcut directly with Windows GUI. For example: https://github.com/eliranwong/wsl2/blob/master/bible_apps/desktop.md#create-a-windows-shortcut-directly-on-windows
Command line version of UniqueBible.app:
https://github.com/eliranwong/wsl2/blob/master/bible_apps/command_line.md
Desktop version of UniqueBible.app:
https://github.com/eliranwong/wsl2/blob/master/bible_apps/desktop.md
To install available packages:
sudo apt install gedit geany geany-plugins rxvt-unicode gnome-terminal thunar thunar-archive-plugin thunar-media-tags-plugin sqlitebrowser firefox-esr flashplugin-nonfree falkon gnome-keyring libsecret* libreoffice gthumb gimp
[Remarks: ibus works with all the above GUI apps tested in both WSL1 & WSL2 whereas fcitx works only in some applications in WSL1. At the time of writing, fcitx is broken in WSL2.]
[Remarks: Some of GUI apps above, e.g. falkon, work only in version 2 of WSL.]
[Remarks: gnome-keyring & libsecret* are required for running mailspring.]
-
Office
wps office [https://www.wps.com/download] shows better compatibilities with ms files than libreoffice. You can also open an office file located on WSL with Microsoft Office installed on Windows. Read: https://github.com/eliranwong/wsl2#open-a-file-on-wsl-with-default-windows-application -
mail client
mailspring is available for download at https://getmailspring.com/. Mailspring works with gmail signin whereas thunderbird doesn't. To verify gmail signin with mailspring, use Linux browser installed in WSL2 instead of using browser installed in Windows directory. Use Firefox / Chrome / Opera instead of falkon for gmail signin verification. -
Web browser
In our testings, chrome and opera browsers work in WSL2, but not in WSL1
Chrome is available at: https://www.google.com/chrome/
Opera is available at: https://www.opera.com/
Chrome works the best with signin of mutliple gmail accounts.
sudo synaptic
For issues before pengwin version 1.3.4, you may read WhitewaterFoundry/Pengwin#551. Issues mentioned in the post had been fixed in pengwin version 1.3.4.
After installing multiple gui apps, run:
pengwin-setup
select GUI > STARTMENU
The problem with creating shortcuts with pengwin-setup is that existing shortcuts are created again each time you run pengwin-setup > GUI > STARTMENU. For examples, after installing 10 gui apps and run pengwin-setup > GUI > STARTMENU. When you install one more gui app, running pengwin-setup > GUI > STARTMENU is ineffective because it creates shortcuts for all 11 gui apps.
A workaround is to use /usr/local/pengwin-setup.d/generate-shortcut.sh directly. For example: https://github.com/eliranwong/wsl2/blob/master/bible_apps/desktop.md#create-a-windows-shortcut-recommended-for-pengwin-version-134
Alternatively, you can create a Windows shrotcut directly with Windows GUI. For example: https://github.com/eliranwong/wsl2/blob/master/bible_apps/desktop.md#create-a-windows-shortcut-directly-on-windows
We find that we don't have to to add any fonts on Linux side, as with pengwin, our tested GUI applications can use fonts installed on Windows side directly.
For examples, we have fonts "NSimSun" and "Calibri" instalaled on Windows on our device.
We assign Windows font "NSimSun" to a Linux terminal app:
https://github.com/eliranwong/wsl2/blob/master/terminal/urxvt.md#to-customise
We assign Windows font "Calibri" to a Linux GUI app:
https://github.com/eliranwong/wsl2/blob/master/bible_apps/desktop.md#change-default-font
To build font information cache files:
fc-cache -f -v
To check all available fonts:
fc-list
To install additional fonts, e.g. ubuntu fonts:
- Download the latest version of Ubuntu Fonts from http://font.ubuntu.com/ or run:
wget https://assets.ubuntu.com/v1/0cef8205-ubuntu-font-family-0.83.zip
- Unzip font package:
unzip 0cef8205-ubuntu-font-family-0.83.zip
- Create user fonts directory:
mkdir -p ~/.fonts
- Copy ubuntu fonts to user fonts directory:
cp -r ubuntu-font-family-0.83/ ~/.fonts
- Build fonts information cache files:
fc-cache -f -v
https://github.com/eliranwong/wsl2/blob/master/accessories/usb_drive.md
To check the name and version of a distro
wsl.exe -l -v
To terminate a distro, e.g.
wsl.exe -t WLinux
wsl.exe -t Debian
wsl.exe -t Ubuntu
Use $WSL_DISTRO_NAME:
wsl.exe -t $WSL_DISTRO_NAME
To create an alias, e.g.
echo 'alias shutdown="wsl.exe -t $WSL_DISTRO_NAME"' >> ~/.bashrc
Open Control Panel > Networking and Internet > View network status and tasks and click on Change adapter settings on the left panel. Find the vEthernel (WSL) adapter, right click and select Properties. Click on Configure and open the Advanced tab. Search through each of the properties until you find Large Send Offload Version 2 (IPv4) and Large Send Offload Version 2 (IPv6). Disable both of these properties.
Read https://townsyio.medium.com/wsl2-how-to-fix-download-speed-3edb0c348e29
Immediately terminates all running distributions and the WSL 2 lightweight utility virtual machine.
wsl.exe --shutdown
Run from Windows PowerShell (Admin):
Get-Service LxssManager | Restart-Service
To backup, open Windows PowerShell and run, e.g.:
wsl --export WLinux WLinux.tar
wsl --export Ubuntu Ubuntu.tar
wsl --export Debian Debian.tar
To restore, e.g.
wsl --import WLinux C:\Users\Eliran\WLinux C:\Users\Eliran\WLinux.tar
To unregister, e.g.
wsl --unregister WLinux
https://docs.microsoft.com/en-us/windows/wsl/tutorials/gui-apps