{"id":14069720,"url":"https://github.com/mviereck/runx","last_synced_at":"2025-04-14T04:08:32.173Z","repository":{"id":54566655,"uuid":"188979305","full_name":"mviereck/runx","owner":"mviereck","description":"Provide X server on MS Windows with cookie authentication.","archived":false,"fork":false,"pushed_at":"2023-07-31T07:36:40.000Z","size":214,"stargazers_count":89,"open_issues_count":6,"forks_count":15,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-27T18:01:39.043Z","etag":null,"topics":["cookie","cygwin","gui","linux-gui-applications","ms-windows","msys2","vcxsrv","windows","wsl","wsl2","x","x11docker","xauthority","xserver","xwin"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mviereck.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["mviereck"]}},"created_at":"2019-05-28T07:42:24.000Z","updated_at":"2025-03-03T01:43:55.000Z","dependencies_parsed_at":"2024-08-13T07:15:31.626Z","dependency_job_id":"b669d34f-4c2f-4558-bf2d-a224cb94dd75","html_url":"https://github.com/mviereck/runx","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mviereck%2Frunx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mviereck%2Frunx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mviereck%2Frunx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mviereck%2Frunx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mviereck","download_url":"https://codeload.github.com/mviereck/runx/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248819403,"owners_count":21166477,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cookie","cygwin","gui","linux-gui-applications","ms-windows","msys2","vcxsrv","windows","wsl","wsl2","x","x11docker","xauthority","xserver","xwin"],"created_at":"2024-08-13T07:07:10.037Z","updated_at":"2025-04-14T04:08:32.153Z","avatar_url":"https://github.com/mviereck.png","language":"Shell","readme":"# runx - Run Linux GUI applications on MS Windows\n`runx` allows to easily run Linux GUI applications and desktops on MS Windows in Cygwin, MSYS2 or WSL.\n\n - This is especially of interest for [WSL](https://docs.microsoft.com/en-us/windows/wsl/about) in Windows 10 that does not support graphical applications on itself.\n\n*Background*:\n - `runx` starts an X server, either *VcXsrv* or *XWin*, to provide a graphical environment for Linux applications.\n - `runx` creates an authorization cookie to restrict access to the X server to allowed clients only.\n - `runx` runs the desired Linux GUI application with the credentials needed to access the X server.\n \nFor similar functionality on native Linux systems use [x11docker](https://github.com/mviereck/x11docker) with options `--backend=host` or `--xonly`.\n\n## Table of contents\n - [Linux environments on MS Windows](#linux-environments-on-ms-windows)\n - [Installation](#installation)\n   - [Installation of X server](#installation-of-x-server)\n   - [Installation in WSL](#installation-in-wsl)\n   - [Installation in Cygwin](#installation-in-cygwin)\n   - [Installation in MSYS2](#installation-in-msys2)\n - [GPU hardware acceleration](#gpu-hardware-acceleration)\n - [Usage examples](#Usage-examples)\n   - [Providing X server in background](#providing-x-server-in-background)\n - [Output of `runx --help`](#output-of-runx---help)\n - [Screenshot](#screenshot)\n\n## Linux environments on MS Windows\n`runx` can run in:\n - [WSL](https://docs.microsoft.com/en-us/windows/wsl/about): Windows subsystem for Linux.\n - [Cygwin](https://www.cygwin.com/): Cygwin is a large collection of Open Source tools which provide functionality similar to a Linux distribution on Windows.\n - [MSYS2](https://www.msys2.org/): MSYS2 is a software distro and building platform for Windows and serves as a base for [git for windows](https://gitforwindows.org/) and [MingW](http://www.mingw.org/). It is mainly used by developers.\n   \n\n## Installation\nInstallation in general:\n - Install an X server, *VcXsrv* or *XWin*.\n - Copy `runx` into folder `/usr/local/bin` and make it executeable with `chmod +x /usr/local/bin/runx`.\n - Install Linux dependency `xauth` if available.\n - Install Linux dependency `telnet`.\n \n### Installation of X server\n`runx` needs an [X server](https://en.wikipedia.org/wiki/X_Window_System). Install on MS Windows one or both of:\n - [VcXsrv](https://sourceforge.net/projects/vcxsrv/) to provide X server *VcXsrv*. \n   - Easier to install than *XWin*.\n - [Cygwin](https://www.cygwin.com) with packages `xinit` and `xauth`. \n   - This provides X server *XWin* for Cygwin and WSL.\n   - *XWin* has a better `--gpu` support than *VcXsrv*.\n \n`runx` will automatically use *XWin* if available. You can specify the desired X server with options `--xwin` or `--vcxsrv`. \n\n### Installation in WSL\n - Run the following commands in WSL/Ubuntu terminal to install `runx` and its dependencies:\n   ```\n   sudo wget https://raw.githubusercontent.com/mviereck/runx/master/runx -O /usr/local/bin/runx\n   sudo chmod +x /usr/local/bin/runx\n   sudo apt update\n   sudo apt install xauth\n   ```\n   \n### Installation in Cygwin\n - Run the Cygwin installer and install packages `xinit`, `xauth` and `wget`.\n - In Cygwin terminal run the commands:\n   ```\n   wget https://raw.githubusercontent.com/mviereck/runx/master/runx -O /usr/local/bin/runx\n   chmod +x /usr/local/bin/runx\n   ```\n   \n### Installation in MSYS2\n - In MSYS2 terminal run the commands:\n   ```\n   mkdir /usr/local/bin\n   wget https://raw.githubusercontent.com/mviereck/runx/master/runx -O /usr/local/bin/runx\n   chmod +x /usr/local/bin/runx\n   ```\n - Constraint in MSYS2: `runx` only supports X server *VcXsrv*, but not *XWin*.\n\n## GPU hardware acceleration\n`runx` supports GPU hardware accelerated graphics with option `--gpu`.\n - GPU access can cause issues with X server *VcXsrv*, especially with NVIDIA cards. For that reason GPU usage is disabled by default in `runx`.\n - If you encounter issues with option `--gpu`, try X server *XWin* instead of *VcXsrv*.\n\n## Usage examples\n - File manager pcmanfm in WSL:\n   - Installation:\n     ```\n     sudo apt update\n     sudo apt install pcmanfm\n     ```\n   - Run:\n     ```\n     runx -- pcmanfm\n     ```\n - Mate desktop environment in WSL:\n   - Installation:\n     ```\n     sudo apt update\n     sudo apt install mate-desktop-environment\n     ```\n   - Run:\n     ```\n     runx --desktop --gpu -- mate-session\n     ```\n\n### Providing X server in background\nYou can make an entry in the file `~/.bashrc` to have an X server always available.\nPossible entry in `~/.bashrc`:\n```\nsource /usr/local/bin/runx\n```\nIn future runs of the terminal you can directly run Linux GUI applications, e.g.:\n```\npcmanfm\n```\n\n### Use an already running X server\n - If you specify option `--display`, runx will check if an X server is already running\nwith the specified display number and will only provide the access credentials\n`DISPLAY` and `XAUTHORITY` instead of running an additional X server.\n - The access credentials are also stored in file `~/.Xenv`.\nYou can make them available in a new terminal sourcing the file with `. ~/.Xenv` or `source ~/.Xenv`.\n\n## Output of `runx --help`\n```\nrunx - Run Linux GUI applications on MS Windows.\nProvides an X server on MS Windows in Cygwin, MSYS2 or WSL.\n\nSyntax:\n  runx [OPTIONS]  --  [COMMAND]\n\nOptions:\n  -h, --help                   Show this help.\n  -d, --desktop                Open a parent window for desktop environments.\n  -g, --gpu                    Enable GPU hardware acceleration. Can fail \n                               with NVIDIA cards. Works best with XWin.\n      --size WIDTHxHEIGHT      Window size for option --desktop, e.g. 800x600.\n      --vcxsrv                 Use X server VcXsrv.\n      --xwin                   Use X server XWin.\n      --clipboard [=yes|no]    Enable clipboard sharing yes/no. Default: yes.\n      --display N              Use display number N for new X server.\n                               If the display number is already in use, runx will \n                               only provide the likely access credentials.\n      --ip ADRESS              IP adress to use. Default: First found 192.168.*\n      --no-auth                Disable X cookie authentication. Discouraged.\n      --cleanup                Stop all X servers and delete cookies.\n  -v, --verbose                Be verbose.\n\nInstallation of runx in WSL:\n - Copy runx into /usr/local/bin/\n - Make runx executeable:        sudo chmod +x /usr/local/bin/runx\n - Install xauth:                sudo apt update\n                                 sudo apt install xauth\n \nInstall an X server on Windows:\n  runx supports two X servers: VcXsrv and XWin. Install at least one of them.\n   - VcXsrv: Download and install from: \n       https://sourceforge.net/projects/vcxsrv/\n   - XWin: Download and install Cygwin64 with packages: xinit xauth\n       https://www.cygwin.com\nVcXsrv is easier to install. XWin provides a better GPU support.\n\nWSL, Cygwin: runx starts XWin if available, otherwise it starts VcXsrv.\nMSYS2:       runx supports VcXsrv only.\n\nUsage:\n\nExample to directly run an application with runx:\n - Install file manager pcmanfm: sudo apt update\n                                 sudo apt install pcmanfm\n - Run pcmanfm with:             runx -- pcmanfm\n\nExample to run Mate desktop:\n - Install Mate desktop with:    sudo apt install mate-desktop-environment\n - Run Mate desktop with:        runx --desktop -- mate-session\n \nExample to get a Wayland environment:\n - Install Wayland compositor:   sudo apt install weston\n - Run Weston with:              XDG_RUNTIME_DIR=/tmp  runx -- weston\n\nProviding an X server in background all the time:\n - Create an entry in ~/.bashrc: source /usr/local/bin/runx\n - In future terminal session you can directly run GUI commands.\n   E.g. just type:  'pcmanfm'  instead of 'runx -- pcmanfm'.\n - If you specify a display number with --display, runx will re-use\n   a possibly already running X server with same display number\n   and only provide the access credentials DISPLAY and XAUTHORITY.\n   This allows to use the same X server across several terminals.\n\nrunx stores the access credentials DISPLAY and XAUTHORITY in ~/.Xenv\nThis allows sourcing the file for custom access setups.\n\nrunx version 0.4.20\nPlease report issues and get help at:   https://github.com/mviereck/runx\n ```\n \n ## Screenshot\n `runx` running Mate desktop on MS Windows:\n ![Mate Desktop on MS Windows](https://raw.githubusercontent.com/mviereck/x11docker/screenshots/screenshot-runx.png)\n \n","funding_links":["https://github.com/sponsors/mviereck"],"categories":["Shell"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmviereck%2Frunx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmviereck%2Frunx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmviereck%2Frunx/lists"}