Testing “Safari” via Bash for Windows & JS

I’ve already talked about writing native applications with JavaScript and Gtk, covering Linux, my primary OS, and macOS too via Homebrew or Macports. What was missing at that time was a proper way to write the same app on Windows too.

WSL / Bash on Windows to the rescue

I have also talked, a while ago, about the good, the bad, and the ugly part of Bash for Windows, where the main bad point was the missing display.

However, and somehow, developers managed to fill the gap through Xming, a good old Xorg port for windows and cross platform software written for Mac or Linux.

Connecting the dots together, we can assume writing GJS applications on Bash for Windows should be possible, right?

Upgrade Trusty to Xenial

The first thing to do, is to be sure your Ubuntu version is at least the LTS 16.

To know which version is it, type the following in the console and read the output:

lsb_release -a

If it says 14 or “trusty” anywhere, you need to follow the only procedure that actually worked for me, found through this ticket.

Follow the instructions, and if once finished, closed, and reopened Bash you have issues, have a look at these two possible solutions. The one that worked for me was the following one, performed from the Command Prompt:

lxrun /setdefaultuser root

You should now be able to start Bash and do apt-get updateand other operations to be sure you have the latest.

If there’s some warning about some ignored file, feel free to ignore, or actually remove it.

Theoretically, we could already use gjsbut if we want to see something, we’ll need a DISPLAYtarget. Type echo $DISPLAYto be sure there isn’t one already, and in such case add the display to your user env.

echo 'export DISPLAY=:0.0' >> ~/.bashrc

You can now restart bash or simply type export DISPLAY=:0.0and move on … but …

Configuring Xming

If you haven’t installed it yet, this is the right time or nothing could possibly work today. I’ve left the configuration with all defaults and it should just work so … feel free to do the same.

You need to launch Xming before trying to use anything graphical on WSL.

Testing GJS

Hello World in GJS and Gtk3 for Windows

You can simply curlthe “hello world” or write it yourself, it’s that simple:

curl -LO archibold.io/test/gjs/hello

You can launch it directly as executable after a chmod a+x helloor simply launch through gjs hello.

If you don’t see the widget on top of the others, look your system bar, I’m sure something is blinking asking for attention.

Trying WebKit2GTK in all its glory

Well, to be honest, GNOME Web, once known as Epiphany, already uses the latest WebKit2 engine, so installing it would be one option.