Design ● OS ● Apps ● Whiteboards ● GNOME Shell ● System Settings ● How to contribute
Big Screen Mode/TV Mode
Contents
Introduction
This concept is based upon the idea that GNOME current UI shouldn't require much tweaking to keep being usable in the context of a TV appliance. The hypothesis here is that you should be able to boot your GNOME session on a "Big Screen Mode" and use most of GNOME apps with a remote controller (such as a Xbox 360 game controller or an Apple Remote). Of course, not all GNOME apps are relevant on a big screen, but a surprising amount of them - Music, Videos, Games, Quadrapassel, etc. - could be. It is also relevant to 3rd party applications - Steam, Minigalaxy, Kodi, etc. - and games.
Participants
Laurent Pointecouteau (design).
Adrien Plazas (design).
Status
Needs design
Design in progress
Needs implementation
Implementation in progress
Stable
Relevant Art
Ubuntu TV
Apple TV
Kodi
Plex Media Center
Steam (Big Picture)
Xbox 360
XMB
Nintendo Switch
Discussion
Currently, there aren't much third-party solutions to make your GNOME computer usable on a TV with remote controller. Kodi, which is a popular choice, has some drawbacks : it has to use his own library and doesn't read as much formats as a full GStreamer setup. A GNOME-integrated solution could mean that you'll be able to write an app for the big screen, using only the existing GNOME framework.
Also, a lot of existing 10-foot user interfaces tend to evolve into closed multimedia ecosystems, with integrated stores and digital rights management. This project could opt for another approach, less focused on buying content and more on finding and viewing it.
Input Model
Currently to access a gamepad each software can and has to open the gamepad file and read events from it. This means any applications can receive the input events intended for another application.
This is problematic from a security POV as if you type a password on an OSK in the shell or some application, a rogue application could sniff it by assuming the keyboard layout and replaying the events on it.
It is also problematic as you may have multiple gamepad-enabled applications open at the same time, and you don't want inputs inteded for the focused application to have effects on another.
Finally we probably want the shell to be the only one able to handle the home button, to make it act as a system-button like Super does with keyboards.
Application Compatibility
Most applications likely won't be designed for TVs, including relevant ones in the early days where such a shell will be available. To solve that issue, applications could state in their desktop entry that they support gamepads or remotes. If they don't, a keyboard-navigation compatibility layer could be used to emulate the most important keyboard keys: the arrows, escape, enter, backspace…
Game Providers
A common usage of TVs is to play video games, so they need to be quickly accessible. Problem, games nowadays are mostly handled by applications:
- your Steam library is only available through the Steam client,
- your GOG library is most easily accessed via Minigalaxy,
- your emulated retro games are mostly accessible via GNOME Games,
- etc.
Taking inspiration from the Shell's search providers, we probably could let applications have game providers to expose they library. The shell could then mix the games of all providers and native games providing desktop entries to offer a quick-access to games.
Tentative Design
Comments
I think the display of remote button mapping ( (B) Cancel ) etc can be a bit confusing, as it adds quite a bit of visual clutter to the screen, and also because remote controls usually have labels. Developers tend to hack their xbox remote to work with linux, because its easy and they have it at hand, but it creates a terrible user experience as a remote control, as it is designed for gaming. Real dvd player / tv remotes have much better layout for navigation and buttons actually have labels that make sense (Back, Enter etc) - so if this kind of solution would be implemented, it would be nice to support a few good, widely available DVD style generic remotes with good button mapping and have a control panel config for choosing one. Then you wouldnt need to show any button usage hints really. I guess remote controls created for Windows Media Center would be one possibility (search amazon/whatever for "windows media center remote". Remote control support could be useful for presentations and other uses as well. - TuomasKuosmanen