Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

mviereck/runx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

79 Commits

Repository files navigation

runx - Run Linux GUI applications on MS Windows

runx allows to easily run Linux GUI applications and desktops on MS Windows in Cygwin, MSYS2 or WSL.

  • This is especially of interest for WSL in Windows 10 that does not support graphical applications on itself.

Background:

  • runx starts an X server, either VcXsrv or XWin, to provide a graphical environment for Linux applications.
  • runx creates an authorization cookie to restrict access to the X server to allowed clients only.
  • runx runs the desired Linux GUI application with the credentials needed to access the X server.

For similar functionality on native Linux systems use x11docker with options --backend=host or --xonly.

Table of contents

Linux environments on MS Windows

runx can run in:

  • WSL: Windows subsystem for Linux.
  • Cygwin: Cygwin is a large collection of Open Source tools which provide functionality similar to a Linux distribution on Windows.
  • MSYS2: MSYS2 is a software distro and building platform for Windows and serves as a base for git for windows and MingW. It is mainly used by developers.

Installation

Installation in general:

  • Install an X server, VcXsrv or XWin.
  • Copy runx into folder /usr/local/bin and make it executeable with chmod +x /usr/local/bin/runx.
  • Install Linux dependency xauth if available.
  • Install Linux dependency telnet.

Installation of X server

runx needs an X server. Install on MS Windows one or both of:

  • VcXsrv to provide X server VcXsrv.
    • Easier to install than XWin.
  • Cygwin with packages xinit and xauth.
    • This provides X server XWin for Cygwin and WSL.
    • XWin has a better --gpu support than VcXsrv.

runx will automatically use XWin if available. You can specify the desired X server with options --xwin or --vcxsrv.

Installation in WSL

  • Run the following commands in WSL/Ubuntu terminal to install runx and its dependencies:
    sudo wget https://raw.githubusercontent.com/mviereck/runx/master/runx -O /usr/local/bin/runx
    sudo chmod +x /usr/local/bin/runx
    sudo apt update
    sudo apt install xauth
    

Installation in Cygwin

  • Run the Cygwin installer and install packages xinit, xauth and wget.
  • In Cygwin terminal run the commands:
    wget https://raw.githubusercontent.com/mviereck/runx/master/runx -O /usr/local/bin/runx
    chmod +x /usr/local/bin/runx
    

Installation in MSYS2

  • In MSYS2 terminal run the commands:
    mkdir /usr/local/bin
    wget https://raw.githubusercontent.com/mviereck/runx/master/runx -O /usr/local/bin/runx
    chmod +x /usr/local/bin/runx
    
  • Constraint in MSYS2: runx only supports X server VcXsrv, but not XWin.

GPU hardware acceleration

runx supports GPU hardware accelerated graphics with option --gpu.

  • GPU access can cause issues with X server VcXsrv, especially with NVIDIA cards. For that reason GPU usage is disabled by default in runx.
  • If you encounter issues with option --gpu, try X server XWin instead of VcXsrv.

Usage examples

  • File manager pcmanfm in WSL:
    • Installation:
      sudo apt update
      sudo apt install pcmanfm
      
    • Run:
      runx -- pcmanfm
      
  • Mate desktop environment in WSL:
    • Installation:
      sudo apt update
      sudo apt install mate-desktop-environment
      
    • Run:
      runx --desktop --gpu -- mate-session
      

Providing X server in background

You can make an entry in the file ~/.bashrc to have an X server always available. Possible entry in ~/.bashrc:

source /usr/local/bin/runx

In future runs of the terminal you can directly run Linux GUI applications, e.g.:

pcmanfm

Use an already running X server

  • If you specify option --display, runx will check if an X server is already running with the specified display number and will only provide the access credentials DISPLAY and XAUTHORITY instead of running an additional X server.
  • The access credentials are also stored in file ~/.Xenv. You can make them available in a new terminal sourcing the file with . ~/.Xenv or source ~/.Xenv.

Output of runx --help

runx - Run Linux GUI applications on MS Windows.
Provides an X server on MS Windows in Cygwin, MSYS2 or WSL.
Syntax:
 runx [OPTIONS] -- [COMMAND]
Options:
 -h, --help Show this help.
 -d, --desktop Open a parent window for desktop environments.
 -g, --gpu Enable GPU hardware acceleration. Can fail 
 with NVIDIA cards. Works best with XWin.
 --size WIDTHxHEIGHT Window size for option --desktop, e.g. 800x600.
 --vcxsrv Use X server VcXsrv.
 --xwin Use X server XWin.
 --clipboard [=yes|no] Enable clipboard sharing yes/no. Default: yes.
 --display N Use display number N for new X server.
 If the display number is already in use, runx will 
 only provide the likely access credentials.
 --ip ADRESS IP adress to use. Default: First found 192.168.*
 --no-auth Disable X cookie authentication. Discouraged.
 --cleanup Stop all X servers and delete cookies.
 -v, --verbose Be verbose.
Installation of runx in WSL:
 - Copy runx into /usr/local/bin/
 - Make runx executeable: sudo chmod +x /usr/local/bin/runx
 - Install xauth: sudo apt update
 sudo apt install xauth
 
Install an X server on Windows:
 runx supports two X servers: VcXsrv and XWin. Install at least one of them.
 - VcXsrv: Download and install from: 
 https://sourceforge.net/projects/vcxsrv/
 - XWin: Download and install Cygwin64 with packages: xinit xauth
 https://www.cygwin.com
VcXsrv is easier to install. XWin provides a better GPU support.
WSL, Cygwin: runx starts XWin if available, otherwise it starts VcXsrv.
MSYS2: runx supports VcXsrv only.
Usage:
Example to directly run an application with runx:
 - Install file manager pcmanfm: sudo apt update
 sudo apt install pcmanfm
 - Run pcmanfm with: runx -- pcmanfm
Example to run Mate desktop:
 - Install Mate desktop with: sudo apt install mate-desktop-environment
 - Run Mate desktop with: runx --desktop -- mate-session
 
Example to get a Wayland environment:
 - Install Wayland compositor: sudo apt install weston
 - Run Weston with: XDG_RUNTIME_DIR=/tmp runx -- weston
Providing an X server in background all the time:
 - Create an entry in ~/.bashrc: source /usr/local/bin/runx
 - In future terminal session you can directly run GUI commands.
 E.g. just type: 'pcmanfm' instead of 'runx -- pcmanfm'.
 - If you specify a display number with --display, runx will re-use
 a possibly already running X server with same display number
 and only provide the access credentials DISPLAY and XAUTHORITY.
 This allows to use the same X server across several terminals.
runx stores the access credentials DISPLAY and XAUTHORITY in ~/.Xenv
This allows sourcing the file for custom access setups.
runx version 0.4.20
Please report issues and get help at: https://github.com/mviereck/runx

Screenshot

runx running Mate desktop on MS Windows: Mate Desktop on MS Windows

Releases

No releases published

Packages

No packages published

Contributors 2

Languages

AltStyle によって変換されたページ (->オリジナル) /