Hey folks, for about 10 months or so been working on a hobby project just to get more practice in Linux application packaging, the Rust ecosystem/utilities, and software development on Nix and NixOS (as well as solve some personal pain points in using a HDMI TVs and projectors with PCs). Disclosure: this project includes AI assisted development, documentation and research, and has been a great help given my physical disabilities in typing.
While I enjoy using large, affordable OLED TVs as a PC display, they do lack in ways compared to regular desktop monitors, such as native power synchronization, programmatic volume and backlight control, etc. Thankfully there are a plethora of PC software projects to replicate these features, with LGTVCompanion for Windows and WebOS hardware being a prominent example. However, having migrated to Linux, and wanting something that would work just as well with projectors as with TVs, I began work on a display vendor/interface agnostic project, named TisVlay.
Over the past year it has grown from a simple CLI into a full system daemon with a GUI, a system tray, and webOS and HDMI-CEC support, plus the desktop integration and profile automation you’d expect from such a tool, like login and idle detection and remote-streaming awareness. That last one matters to me: my desktop pulls triple duty as a workstation, a media PC, and a game-streaming host for my office, living room, and tablet via Sunshine/Moonlight.
The app itself follows more of a distributed pub/sub architecture (my background is in robotics and cyber-physical system design, not desktop software), so converging on IPC and middle-ware libraries I’ve been meaning to experiment while keeping the installable setup self contained was a balance.
While still beta (pre v1.0), it’s already daily drivable and fully documented. Being largely feature-complete, my current focus has shifted towards distro packaging. If you’d like to give it a try, the installation guide and docs are linked below. Or if not and you’re already use something else, I’d like to give a shout-out to netflector, especially for privacy-conscious home-automation users, given how common spyware is in smart TVs and projectors these days. The docs cover using it to keep displays on an isolated network.


I took an initial pass at implementing a “couch mode” for remote/gamepad navigation of the GUI while using Plasma Bigscreen, then made another release if you want to try it out:
https://github.com/TisVlay/TisVlay/pull/248#issuecomment-6717483735
Everything is now more reachable, but it still took a lot of extra slint code, so I may raise that with upstream with folks at SixtyFPS to ask about simpler patterns for special navigation. Also asked the KDE devs if they have any more recommendations on human interface guidelines:
https://discuss.kde.org/t/app-design-and-interface-guidelines-targeting-plasma-bigscreen/51666?u=ruffsl