{"id":42579899,"url":"https://github.com/jaredcat/plasmoid-lgtv-remote","last_synced_at":"2026-02-18T05:02:45.963Z","repository":{"id":335027663,"uuid":"1139388614","full_name":"jaredcat/plasmoid-lgtv-remote","owner":"jaredcat","description":"Control LG TVs from your tray or plasma desktop","archived":false,"fork":false,"pushed_at":"2026-02-18T00:52:51.000Z","size":754,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-18T01:27:52.947Z","etag":null,"topics":["cross-platform","lg","lg-tv","lgtv","linux","nix-flake","nixos","webos","webos-service","webos-tv","windows"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jaredcat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-21T22:32:24.000Z","updated_at":"2026-02-18T00:52:00.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jaredcat/plasmoid-lgtv-remote","commit_stats":null,"previous_names":["jaredcat/plasmoid-lgtv-remote"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/jaredcat/plasmoid-lgtv-remote","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredcat%2Fplasmoid-lgtv-remote","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredcat%2Fplasmoid-lgtv-remote/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredcat%2Fplasmoid-lgtv-remote/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredcat%2Fplasmoid-lgtv-remote/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaredcat","download_url":"https://codeload.github.com/jaredcat/plasmoid-lgtv-remote/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredcat%2Fplasmoid-lgtv-remote/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29569853,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T04:18:28.490Z","status":"ssl_error","status_checked_at":"2026-02-18T04:13:49.018Z","response_time":162,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cross-platform","lg","lg-tv","lgtv","linux","nix-flake","nixos","webos","webos-service","webos-tv","windows"],"created_at":"2026-01-28T22:05:53.561Z","updated_at":"2026-02-18T05:02:45.957Z","avatar_url":"https://github.com/jaredcat.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LG TV Remote - Cross-Platform Tray App\n\nControl your LG webOS TV from your desktop. System tray application for **Windows**, **macOS**, and **Linux**.\n\n![Screenshot](screenshot.png)\n\n## Features\n\n- System tray icon with popup remote control\n- D-pad navigation (Up, Down, Left, Right, OK)\n- **Media controls** (Rewind, Play/Pause, Stop, Fast Forward)\n- Volume control (Up, Down, Mute, Unmute)\n- Power On (Wake-on-LAN) and Power Off\n- **Wake streaming device** (Android TV / NVIDIA Shield via Wake-on-LAN, or Roku via ECP)\n- Home and Back buttons\n- Keyboard shortcuts\n- Auto-reconnect on startup\n- **Start with computer** (autostart at login) — option in Settings\n- Persistent TV configuration\n\n## Installation\n\n### NixOS / Nix\n\n**Enable binary cache** (recommended - avoids building from source):\n\n```bash\n# One-time setup\nnix run nixpkgs#cachix -- use lgtv-tray-remote\n```\n\nOr add to your NixOS configuration:\n\n```nix\nnix.settings = {\n  substituters = [ \"https://lgtv-tray-remote.cachix.org\" ];\n  trusted-public-keys = [ \"lgtv-tray-remote.cachix.org-1:no3KeuRIc/+Msy8eQLsIVy29FZ85KI2GC6/jJkMMrvg=\" ];\n};\n```\n\n**Run directly** (no install):\n\n```bash\nnix run github:jaredcat/plasmoid-lgtv-remote\n```\n\n**Install to profile**:\n\n```bash\nnix profile install github:jaredcat/plasmoid-lgtv-remote\n```\n\n**Add to NixOS configuration** (flake-based):\n\n```nix\n# flake.nix\n{\n  inputs.lgtv-remote.url = \"github:jaredcat/plasmoid-lgtv-remote\";\n}\n\n# configuration.nix\n{ inputs, pkgs, ... }: {\n  environment.systemPackages = [\n    inputs.lgtv-remote.packages.${pkgs.system}.default\n  ];\n}\n```\n\n**Build locally**:\n\n```bash\nnix build\n./result/bin/lgtv-tray-remote\n```\n\n### Pre-built Binaries\n\nDownload from the [Releases](https://github.com/jaredcat/plasmoid-lgtv-remote/releases) page:\n\n- **Windows**: `lgtv-tray_x.x.x_x64-setup.exe` or `.msi`\n- **macOS**: `lgtv-tray_x.x.x_aarch64.dmg` (Apple Silicon) or `lgtv-tray_x.x.x_x64.dmg` (Intel)\n- **Linux**: `lgtv-tray_x.x.x_amd64.AppImage` or `.deb`\n\n#### macOS: Removing Quarantine\n\nSince the app isn't signed with an Apple Developer certificate, macOS Gatekeeper will block it. After installing, run:\n\n```bash\nxattr -cr \"/Applications/LG TV Remote.app\"\n```\n\nThen you can open the app normally.\n\n### Build from Source\n\n#### Using Nix (Recommended)\n\nIf you have Nix with flakes enabled:\n\n```bash\n# Enter development shell with all dependencies\nnix develop\n\n# Generate icons and build\n./generate-icons.sh\ncargo tauri build\n```\n\n**Running the dev build on NixOS:** Use the flake directly (e.g. after a push to `dev`):\n\n```bash\nnix run github:jaredcat/plasmoid-lgtv-remote?ref=dev\n```\n\nOr from a local checkout:\n\n```bash\nnix run .#default\n```\n\n#### Manual Setup\n\n##### Prerequisites\n\n1. **Rust** (1.70+): \u003chttps://rustup.rs/\u003e\n2. **Tauri CLI**:\n\n   ```bash\n   cargo install tauri-cli\n   ```\n\n3. **Platform-specific dependencies**:\n\n   **Linux (Debian/Ubuntu)**:\n\n   ```bash\n   sudo apt install libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf\n   ```\n\n   **Linux (Fedora)**:\n\n   ```bash\n   sudo dnf install webkit2gtk4.1-devel libappindicator-gtk3-devel librsvg2-devel\n   ```\n\n   **Linux (Arch)**:\n\n   ```bash\n   sudo pacman -S webkit2gtk-4.1 libappindicator-gtk3 librsvg\n   ```\n\n   **macOS**: Xcode Command Line Tools\n\n   ```bash\n   xcode-select --install\n   ```\n\n   **Windows**: [Build Tools for Visual Studio](https://visualstudio.microsoft.com/visual-cpp-build-tools/)\n\n##### Generate Icons\n\nBefore building, generate the required icon files:\n\n```bash\nchmod +x generate-icons.sh\n./generate-icons.sh\n```\n\nThis requires one of: `librsvg` (rsvg-convert), `inkscape`, or `imagemagick`.\n\n##### Build\n\n```bash\n# Development (with hot reload)\ncargo tauri dev\n\n# Production build\ncargo tauri build\n```\n\nBuild outputs are in `src-tauri/target/release/bundle/`.\n\n## Usage\n\n### First Time Setup\n\n1. Launch the app - it will appear in your system tray\n2. Click the tray icon to open the remote\n3. Expand **Settings** and enter:\n   - **TV Name**: A friendly name (e.g., \"LivingRoom\")\n   - **TV IP**: Your TV's IP address (find it in TV Settings \u003e Network)\n   - **Use SSL**: Leave checked (recommended)\n4. Click **Authenticate**\n5. **Accept the pairing prompt on your TV screen**\n6. You're connected!\n\n### Keyboard Shortcuts\n\nDefault shortcuts (customizable in **Keyboard shortcuts** in the app):\n\n| Key | Action |\n| ----- | -------- |\n| Arrow keys | Navigate |\n| Enter | Select/OK |\n| Backspace | Back |\n| **Space** | Play |\n| `[` | Rewind |\n| `]` | Fast Forward |\n| `P` | Pause |\n| `S` | Stop |\n| `=` | Volume Up |\n| `-` | Volume Down |\n| Shift + `=` | Unmute |\n| Shift + `-` | Mute |\n| F7 | Power On |\n| F8 | Power Off |\n| Home | Home |\n\n### Power On (Wake-on-LAN)\n\nFor **Power On** to work:\n\n1. Enable \"Wake on LAN\" in your TV's network settings\n2. The TV must have been authenticated at least once while powered on (to save its MAC address)\n3. Your computer must be on the same network as the TV\n\n### Streaming device (Android TV, Roku)\n\nIf you use a set-top box (e.g. **NVIDIA Shield**, other Android TV, or **Roku**) on an HDMI input, you can wake it from standby so the remote works when the box was off.\n\n- **Wake-on-LAN (Android TV / Shield)**: In Settings → Streaming device, choose \"Wake-on-LAN\", enter the device's **MAC address** (from your router, or Shield: Settings → Device preferences → About → Network). Optionally set **Subnet broadcast IP** (e.g. `10.0.0.255` for a 10.0.0.x network) — some networks only deliver WoL to the subnet broadcast; try this if the default (255.255.255.255) doesn't wake the device. Works best when the device is on Ethernet.\n- **ADB (Android TV / Shield)**: Choose \"ADB\" and enter the device's **IP address** (and port, default 5555). Requires **Network debugging** enabled on the device (Shield: Settings → Developer options → Network debugging). The app uses the system `adb` (install Android platform tools if needed, e.g. `brew install android-platform-tools`). ADB wake works when the device is in standby but still listening on the network.\n- **Roku**: Choose \"Roku\" and enter the Roku's **IP address**. The app sends a power-on command over the local network (Roku ECP). Ensure \"Control by mobile apps\" is enabled on the Roku (Settings → System → Advanced system settings).\n\nYou can enable **\"Also wake streaming device when using Power On\"** so one Power On action wakes both the TV and the streaming device. You can also assign a keyboard shortcut to \"Wake streaming device\" in the shortcuts panel.\n\n### Configuration\n\nSettings are stored in:\n\n- **Linux**: `~/.config/lgtv-remote/config.json`\n- **macOS**: `~/Library/Application Support/lgtv-remote/config.json`\n- **Windows**: `%APPDATA%\\lgtv-remote\\config.json`\n\n## Troubleshooting\n\n### Power On not working\n\n- The saved MAC address might be incorrect\n- Try manually setting the MAC address from the settings in the TV\n\n### \"MAC address not saved\" (Power On fails)\n\n- Power on the TV manually\n- Re-authenticate using the Settings panel\n- The app will save the MAC address for future Wake-on-LAN\n\n### Connection drops frequently\n\n- Some TVs close WebSocket connections after inactivity\n- The app will auto-reconnect when you send a command\n\n### \"Connection timeout\"\n\n- Verify the TV IP address is correct\n- Ensure your computer and TV are on the same network\n- Check if the TV is powered on\n\n### \"Registration timeout - check TV for pairing prompt\"\n\n- Look at your TV screen for the pairing dialog\n- Accept the connection request within 60 seconds\n\n## Development\n\n### Cross-Compilation\n\nBuild for other platforms:\n\n```bash\n# From Linux, target Windows (requires cross-compilation setup)\ncargo tauri build --target x86_64-pc-windows-msvc\n\n# Build for specific Linux target\ncargo tauri build --target x86_64-unknown-linux-gnu\n```\n\nSee [Tauri Cross-Compilation Guide](https://tauri.app/v1/guides/building/cross-platform) for details.\n\n---\n\n## Alternative: KDE Plasma Widget\n\nIf you use **KDE Plasma 6** on Linux and prefer a panel widget over the tray app, see [plasmoid/README.md](plasmoid/README.md). The plasmoid is maintained as an alternative and may be retired in the future.\n\n## License\n\nMIT\n\n## Credits\n\n- Protocol based on [LGWebOSRemote](https://github.com/klattimer/LGWebOSRemote)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaredcat%2Fplasmoid-lgtv-remote","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaredcat%2Fplasmoid-lgtv-remote","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaredcat%2Fplasmoid-lgtv-remote/lists"}