Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

TisVlay brings TV Display control for Linux, including: power, volume, backlight, AV mute, input switching plus more, with per-device profile automation via desktop session integration (idle/lock, boot/suspend, remote login/streaming, etc), and in reverse, letting the TV lock, sleep or wake the PC and its remote drive the desktop, while supporting various vendor interface protocols for multi-display setups, mitigating energy usage and OLED panel burn-in or projector bulb burn-out.

CI Pipeline Coverage Latest release License

✨ Features

  • 📺 PC desktop monitor control
    • TV power on/off with PC, Screen on/off with lock screen
    • Easily adjust backlight, volume, active input, and more
  • 🤖 Automation via system/user events
    • System boot, reboot, shutdown, suspend, wake, DPMS
    • User lock/unlock, idle, stream connect/disconnect
  • 🎮 TV console remote control
    • PC sleep/wake/lock with TV power state or TV’s remote
    • Navigate PC via TV remote keypress (via HDMI CEC)
  • 🧰 Flexible profile customization
    • System-wide and per-user profiles for per-device behavior
    • Unified CLI and SDK for further scripting and integrations
  • 🧩 Modular & vendor agnostic
    • Supports HDMI CEC, Network IP Control (LG WebOS SSAP)
    • Generalized for further interfaces, protocols, and transports
  • 🩺 Self-healing connectivity
    • Interface status monitoring for automatic reconnect and retry
    • Per-NIC kernel carrier detection with route-aware failover
  • 📡 Input-aware automation gating
    • Suppress automation when TV already in use via another input
    • Prevent PC from interrupting movie sessions or console gaming
  • 🖱️ Graphical User Interfaces
    • GUI app for device pairing, profile editing, and user setting
    • System tray for quick access controls and device status
  • 🛋️ Couch mode for the big screen
    • Drive the GUI from a TV remote or gamepad, no mouse needed
    • Scaled-up 10-foot layout, automatic under Plasma Bigscreen

📸 Screenshots

GUI and system tray track user DE themes and accent color settings.

TVs — devices, status, profiles (dark theme)Controls — picture, audio, input (light theme)
Discovery — local device detectionPairing — auto populate configuration
System profiles — machine lifecycle eventsUser profiles — session events and idle timers
Settings — desktop notification preferencesAbout — components, their status and versions
Tray menu — per-TV quick control settingsTray tooltip — at a glance or scroll to adjust

🏛️ Architecture

TisVlay is comprised of a collection of cooperating components:

graph LR

subgraph User
    Gui["tisvlay-gui<br/><i>user settings</i>"]
    Cli["tisvlay<br/><i>CLI</i>"]
    Session["tisvlay-session<br/><i>desktop events</i>"]
    Tray["tisvlay-tray<br/><i>system tray</i>"]
end

subgraph System
    Daemon["tisvlay-daemon<br/><i>system daemon</i>"]
    Greeter["tisvlay-greeter<br/><i>login greeter</i>"]
end

subgraph Devices
    TV1["CEC TV"]
    TV2["LG TV"]
end

Session -->|socket| Daemon
Tray -->|socket| Daemon
Gui -->|socket| Daemon
Cli -->|socket| Daemon
Daemon -.->|HDMI-CEC| TV1
Daemon -.->|WebSocket / WoL| TV2
ComponentDescription
tisvlayCLI for direct TisVlay control and configuration
tisvlay-daemonSystem profile actor and device interface driver
tisvlay-sessionUser profile actor and session event integration
tisvlay-traySystem tray for quick access and desktop notifications
tisvlay-guiDevice management, profile editor, settings panel
tisvlay-greeterLogin greeter idle detection absent of active session

Services ship as tisvlay CLI subcommands; tisvlay-gui as separate binary.

📖 Where to go next