{"id":30024268,"url":"https://github.com/uskhokhar/linux-display-extend","last_synced_at":"2026-06-04T10:00:19.334Z","repository":{"id":307609599,"uuid":"1030148887","full_name":"USKhokhar/linux-display-extend","owner":"USKhokhar","description":"Use your Android device as a real extended display for Linux X11 sessions.","archived":false,"fork":false,"pushed_at":"2026-04-03T14:00:08.000Z","size":64,"stargazers_count":47,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-20T19:41:03.829Z","etag":null,"topics":["bash","good-first-issue","linux","shell","vnc-server","x11","x11vnc","xrandr"],"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/USKhokhar.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"docs/SECURITY.md","support":"docs/SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-01T06:57:27.000Z","updated_at":"2026-04-17T00:31:54.000Z","dependencies_parsed_at":"2025-08-01T07:42:38.309Z","dependency_job_id":null,"html_url":"https://github.com/USKhokhar/linux-display-extend","commit_stats":null,"previous_names":["uskhokhar/linux-display-extend"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/USKhokhar/linux-display-extend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/USKhokhar%2Flinux-display-extend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/USKhokhar%2Flinux-display-extend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/USKhokhar%2Flinux-display-extend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/USKhokhar%2Flinux-display-extend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/USKhokhar","download_url":"https://codeload.github.com/USKhokhar/linux-display-extend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/USKhokhar%2Flinux-display-extend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33899697,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-04T02:00:06.755Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bash","good-first-issue","linux","shell","vnc-server","x11","x11vnc","xrandr"],"created_at":"2025-08-06T06:38:19.184Z","updated_at":"2026-06-04T10:00:19.328Z","avatar_url":"https://github.com/USKhokhar.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Linux Display Extend\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"public/logo.svg\" height=\"180\" alt=\"Linux Display Extend logo\" /\u003e\n\u003c/p\u003e\n\nUse your Android device as a real extended display for Linux X11 sessions.\n\n[![MIT License](https://img.shields.io/github/license/USKhokhar/linux-display-extend?color=green)](LICENSE)\n[![Stars](https://img.shields.io/github/stars/USKhokhar/linux-display-extend?style=social)](https://github.com/USKhokhar/linux-display-extend/stargazers)\n[![Issues](https://img.shields.io/github/issues/USKhokhar/linux-display-extend?color=yellow)](https://github.com/USKhokhar/linux-display-extend/issues)\n![Platform](https://img.shields.io/badge/platform-linux-blue)\n![Display Server](https://img.shields.io/badge/display%20server-X11-informational)\n\n## What It Does\n\n`linux-display-extend` combines:\n\n- `xrandr` to attach and position an extra display output\n- `x11vnc` to stream only that extended desktop region\n- an Android VNC client to render and interact with the new display\n\nIt is designed for X11 sessions today. Wayland support is not implemented yet.\n\n## Quick Start\n\nInstall with the canonical repo-root installer:\n\n```bash\nbash \u003c(curl -fsSL https://raw.githubusercontent.com/USKhokhar/linux-display-extend/main/universal_installer.sh)\n```\n\nThen validate your machine and launch:\n\n```bash\ndisplay-extend doctor\ndisplay-extend install-deps\ndisplay-extend start\n```\n\nOn Android:\n\n1. Install a VNC client such as RealVNC Viewer or MultiVNC.\n2. Connect to the host and port printed by `display-extend start`.\n3. If prompted, use the password stored in `~/.config/linux-display-extend/connection.secret`.\n\n## Why This Release Is Better\n\n- the runtime now respects configured resolution and position\n- the tool tracks its own PID, output, and clip geometry instead of killing unrelated `x11vnc` processes\n- config is parsed safely instead of being executed as shell\n- VNC defaults now use password authentication instead of open `-nopw`\n- the installer and package builder now have one canonical source of truth\n- the CLI is branded and includes diagnostics, logs, and password management commands\n\n## Commands\n\n```bash\ndisplay-extend \u003ccommand\u003e [options]\n```\n\nCore commands:\n\n- `display-extend start`\n- `display-extend stop`\n- `display-extend restart`\n- `display-extend status`\n- `display-extend config`\n\nSupport commands:\n\n- `display-extend doctor`\n- `display-extend install-deps`\n- `display-extend logs`\n- `display-extend set-password`\n- `display-extend install-vnc`\n- `display-extend update`\n- `display-extend --help`\n- `display-extend --version`\n\nUseful start options:\n\n- `--resolution WxH`\n- `--position right|left|above|below`\n- `--monitor \u003cname\u003e`\n- `--port \u003cport\u003e`\n- `--bind \u003caddr\u003e`\n- `--quality low-bandwidth|balanced|high-quality`\n- `--insecure-lan`\n- `--debug`\n\n## Support Matrix\n\nCurrently supported and expected:\n\n- Linux only\n- X11 desktop sessions\n- `xrandr`, `x11vnc`, and `cvt` available on the host\n- at least one connected monitor plus one usable disconnected output target\n\nSee [DISTROS.md](DISTROS.md) for the current Linux distribution support matrix.\n\nCurrently not supported:\n\n- Wayland sessions\n- multi-device streaming\n- encrypted transport without a separate tunnel or network layer\n\n## Repository Layout\n\n- `scripts/display-extend.sh`: canonical runtime source\n- `universal_installer.sh`: canonical installer\n- `display_extend_package.sh`: canonical Debian package tree builder\n- `DISTROS.md`: Linux distribution support matrix\n- `installer/`: compatibility wrappers around the root scripts\n- `docs/`: architecture, testing, and security documentation\n\n## Development\n\nCommon commands:\n\n```bash\nmake test\nmake package\n```\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for contributor workflow, architecture guidance, and pre-PR testing instructions across Linux, macOS, and Windows setups.\n\nProject health files:\n\n- [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)\n- [SECURITY.md](SECURITY.md)\n- [SUPPORT.md](SUPPORT.md)\n- [docs/RELEASE.md](docs/RELEASE.md)\n\n## Troubleshooting\n\nIf the session will not start:\n\n1. Run `display-extend doctor`.\n2. If dependencies are missing, run `display-extend install-deps`.\n3. Confirm you are on X11, not Wayland.\n4. Check that `xrandr` shows a connected main monitor and at least one disconnected output.\n5. Read the runtime logs with `display-extend logs`.\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuskhokhar%2Flinux-display-extend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuskhokhar%2Flinux-display-extend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuskhokhar%2Flinux-display-extend/lists"}