remote-desktop

Connect to dev-secondary graphical desktop from dev-primary via VNC over SSH tunnel

5 stars

Best use case

remote-desktop is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Connect to dev-secondary graphical desktop from dev-primary via VNC over SSH tunnel

Teams using remote-desktop should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/remote-desktop/SKILL.md --create-dirs "https://raw.githubusercontent.com/vamseeachanta/workspace-hub/main/.agents/skills/workspace-hub/remote-desktop/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/remote-desktop/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How remote-desktop Compares

Feature / Agentremote-desktopStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Connect to dev-secondary graphical desktop from dev-primary via VNC over SSH tunnel

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Remote Desktop — dev-secondary

Connect to dev-secondary graphical desktop from dev-primary via VNC over SSH tunnel.

## Quick Start

```bash
bash scripts/operations/connection/vnc-dev-secondary.sh
```

Script is fully self-contained: detects display+auth, auto-starts x11vnc if needed, opens tunnel, launches viewer.

## How It Works

1. Checks if x11vnc is listening on port 5900
2. If not: parses live Xorg `ps` entry to find display + auth file dynamically
3. Starts x11vnc (no sudo if vamsee owns display; sudo prompt if GDM/root owns it)
4. Opens SSH tunnel `localhost:5900 → dev-secondary:5900`
5. Launches `xtigervncviewer localhost:5900`

## Required Flags (Hard-Won)

| Flag | Why Required |
|---|---|
| `-noshm` | MIT-SHM denied when x11vnc user ≠ X server owner |
| `-noxdamage` | GNOME/Mutter compositor causes XIO crash via XDAMAGE |
| `-noscr` | GNOME conflicts with RECORD extension scroll detection |
| `-auth <explicit-path>` | `-auth guess` fails when running as root on GDM display |
| `-o /dev/null` | Avoids stale root-owned log file permission errors |

## Auth File Location

Resolved dynamically from `ps wwwaux | grep Xorg`:
- **GDM only (no user login)**: `/run/user/120/gdm/Xauthority` — requires sudo
- **User session active**: `/run/user/1000/gdm/Xauthority` — no sudo needed

## Persistent Setup (Optional)

To avoid needing to start x11vnc each time, create a systemd service on dev-secondary:

```bash
sudo tee /etc/systemd/system/x11vnc.service <<'EOF'
[Unit]
Description=x11vnc VNC server for display :0
After=display-manager.service
Requires=display-manager.service

[Service]
ExecStart=/usr/bin/x11vnc -display :0 -auth /run/user/120/gdm/Xauthority -noshm -noxdamage -noscr -forever -nopw -listen localhost -rfbport 5900
Restart=on-failure
RestartSec=3

[Install]
WantedBy=graphical.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now x11vnc
```

Note: systemd service uses GDM auth path — update if user session display changes.

## Viewer Notes

- `SetDesktopSize failed: 1` — harmless; physical display ignores client resize requests
- `End of stream` immediately — x11vnc not running; rerun the script
- `Connection refused` — SSH tunnel failed or nothing on port 5900

Related Skills

repo-sync-deleted-remote-branch-and-unrelated-history-recovery

5
from vamseeachanta/workspace-hub

Recover multi-repo sync failures caused by deleted upstream branches, stale git index locks, and local branches with unrelated history to the remote default branch.

test-oversized-skill

5
from vamseeachanta/workspace-hub

A test fixture skill that exceeds 200 lines with multiple H2/H3 sections for split testing.

interactive-report-generator

5
from vamseeachanta/workspace-hub

Generate interactive HTML reports with Plotly visualizations from data analysis results. Supports dashboards, charts, and professional styling.

data-validation-reporter

5
from vamseeachanta/workspace-hub

Generate interactive validation reports with quality scoring, missing data analysis, and type checking. Combines Pandas validation, Plotly visualization, and YAML configuration for comprehensive data quality reporting.

agent-os-framework

5
from vamseeachanta/workspace-hub

Generate standardized .agent-os directory structure with product documentation, mission, tech-stack, roadmap, and decision records. Enables AI-native workflows.

OrcaFlex Specialist Skill

5
from vamseeachanta/workspace-hub

```yaml

repo-ecosystem-hygiene

5
from vamseeachanta/workspace-hub

Interpret the daily read-only repo ecosystem hygiene audit and route remediation through approved workflows.

domain-knowledge-sweep

5
from vamseeachanta/workspace-hub

Systematic multi-source research of an engineering domain. Spawns parent issue → 6 research subissues (Standards, Academic, Industry, LinkedIn-marketing, Code-audit, Synthesis) → gap implementation subissues. Replaces LinkedIn-only extraction with defensible comprehensive sourcing.

subagent-write-verification

5
from vamseeachanta/workspace-hub

Independently verify subagent-claimed file writes with filesystem and git checks before treating the artifact as real, before committing it, and before referencing the path in downstream prompts.

git-operation-serialization-preflight

5
from vamseeachanta/workspace-hub

Before any commit, stash, merge, reset, rebase, or checkout in a multi-agent or shared-checkout environment, run a bounded preflight to detect active git writers and stale index/config locks, then serialize the mutating step under a single-writer guarantee.

public-knowledge-graph-governance

5
from vamseeachanta/workspace-hub

Maintain public-safe knowledge graph artifacts for llm-wiki and similar markdown knowledge bases. Use when changing graph generators, validators, schema docs, weekly freshness checks, or public/private source-scope boundaries.

llm-wiki-weekly-freshness

5
from vamseeachanta/workspace-hub

Class-level governance workflow for keeping llm-wiki-style markdown knowledge bases current, public-safe, graph/index-valid, and useful for code development. Use when reviewing llm-wiki architecture/content, scanning new LLM concepts, maintaining public knowledge graphs, producing an issue roadmap, or running recurring freshness cadence.