1

I'm using WSL2 on Ubuntu 18.04 to run Ruby code in Windows 10. For example, running Ruby on Rails is easily done with no special setup required.

In case of Ruby2D: The installation went fine but, I get an error when running any Ruby2D file, even the most basic one:

require 'ruby2d'
show

I get this error in Console:

error: XDG_RUNTIME_DIR not set in the environment.
Error: (SDL_Init) No available video device
error: XDG_RUNTIME_DIR not set in the environment.
Error: (SDL_CreateWindow) No available video device
Error: (GL2 / SDL_GL_CreateContext) Video subsystem has not been initialized
Error: An OpenGL context could not be created

How do I "add" (or config) a "video device" to my Ubuntu on the WSL2?

taz mazia
  • 182
  • 10

1 Answers1

3

As you've noticed, WSL under Windows 10 doesn't have any GUI/X/windowing capabilities built in. There are a few possibilities:

  • If you have the ability to upgrade to Windows 11, it supports WSLg (built-in) for running Linux GUI apps directly on Windows. I did just install Ruby, ruby2d (and its dependencies) and was able to successfully execute your example. I assume it is just supposed to show a blank GUI window ...

If you can't upgrade to Windows 11, there are still several possible alternatives for running Linux GUI apps. I have not had a chance to test ruby2d in this type of environment, but I believe it should work. If you run into issues, I can at least get the first option up and running to try it out and see if we can work through it:

  • First, my preference is to install xrdp and a simple window manager like xfce. See my answer here for details and instructions. You don't need the full Gnome environment (which requires Systemd) - A simple installation of Xfce should do.

  • However, the most popular method is to install a third-party X server on Windows 10 and set up the DISPLAY variable manually. If you'd like to go this route, see this question and its answer for details.

NotTheDr01ds
  • 15,620
  • 5
  • 44
  • 70