Recent insider builds of Microsft's Windows 10 includes a system that they call The Windows Subsystem for Linux (WSL). This is a really cool system that allows you to run linux binaries on Windows 10, without using virtual machines or emulators. The Winbuntu project (Windows + Ubuntu = Winbuntu) aims to help blur the lines between Linux and Windows by making it super easy to set up an awesome Linux system on your Windows 10 install.
To use Winbuntu, you will first need to set up WSL. You will then be able to launch Winbuntu by running the linux.bat batch script. Doing so will launch a local X server (needed for the graphical environment) and then pass control over to environment.sh, which will configure everything and launch our Linux GUI.
To get started, you will need to download and run the Winbuntu Cygwin Installer. This is just a simple Windows installer that sets up the minimum Cygwin configuration required to run our GUI. You can find the source for the Installer here.
For this to be at all useful, you will need a git repository with your dotfiles and install scripts. You can use mine to help get you started. There are 3 things this is used for:
- The PACKAGES file: This is a simple text file containing a list of packages that should be present on your system. If they aren't present, Winbuntu will install them for you. Each package name goes on a new line. The file also supports comments:
# This is a comment in the PACKAGES file
-
The dotfiles Directory: Any files located in this directory will be copied to your home directory. This makes importing and keeping your dotfiles up to date easy.
-
The scripts Directory: Any scripts located in this directory will be ran by Winbuntu. This is useful for setting up more complicated things. For example, I have a script to install Oh-My-ZSH.
It's also worth noting that Winbuntu will copy your dotfile before running scripts. This means you can have scripts to do fancy things with your dotfiles, if you so desire.
The environment.sh file contians the following structure towardst the top of the file:
#####The p
# The environment configuration
#####
typeset -A config # init array
config=( # set default values in config array
[gitRepo]="https://github.com/serialphotog/winbuntu-config.git"
[workingDir]="/tmp/winbuntu/"
[guiCommand]="i3"
)
You will want to configure these settings to match your needs. The settings are:
- gitRepo The git repository containing your PACKAGES file, scripts, and dotfiles
- workingDir You probably won't need to change this, but this is where Winbuntu clones your git repository to
- guiCommand This is the command Winbuntu uses to start the Linux GUI on our X server.
The only issues I am aware of thus far are with trying to run certain Linux GUIs, specifically the big desktop environments (like XFCE and Gnome). The problem is the lack of D-bus. So far I have not been able to find a successful way to run a D-bus daemon between the Linux system and the X server.