Repository navigation
Releases
Lounge 0.7.0
A release with a Weather plugin, more room for rows below the first, and Search, setup and plugin settings that are easier to use with a remote. Messages on the TV and the phone now read as plain sentences that say what to do.
What's new
Weather plugin. A row of small tiles with the town, how it is now, and each day's high for the week ahead, with Yr's weather symbols. The forecast comes from Open-Meteo, which needs no account or key. Name a town, add the region after a comma when the name is shared, as in Portland, Maine, or give coordinates. Celsius or Fahrenheit. The last forecast is kept, so its days still show while the network is away.
More room for rows. From the second row down, the lowered Stage closes into a line under the top bar and the rows rise into its place, so a third row fits where there were two. Up to the first row opens it again.
Search. The keyboard's search key, or Down, puts the keyboard away and lands on the first result. Results are ranked: titles that start with what you typed come first, then titles where each word starts a word, then the rest. Accents don't matter.
Hidden apps stay in All apps and Search, dimmed and marked hidden. Hold OK on one to show it again.
Setup resumes. Pressing Home or reopening Lounge during first-run setup brings it back on the step you were on. Each step starts with focus on its choice rather than on Next.
Plugin settings on the TV. A text field is a row: OK opens the keyboard, and Done or Back puts it away and returns to the row in one press. Turn on with a required field empty takes you to that field. Help of up to about three lines shows whole, including a toggle's.
Power Setup. A failed action says why in a sentence, with what the command printed kept in its box. An action that ran but changed nothing reads Didn't take, with what to do next. Actions carry on after Back and keep their result. A failed Connect keeps its reason on screen, and allowing the TV's prompt without Always allow says to connect again and tick it.
What's fixed
Messages. Errors on the TV and the phone are sentences with the cause and what to do, never raw exception text or shell output. A plugin's own message shows as written.
Focus.
- Left from Search stays in the top bar instead of moving into the Stage.
- A focused button shows a rim in its label's colour, visible in every theme.
- Holding OK on a tile with no menu, such as All apps, opens it.
Phone companion.
- Typing with no field open on the TV asks you to open Search or a field in Lounge first, and keeps the text.
- With another app in front and Power Setup not connected, the d-pad, OK and Back say Power Setup is needed.
- The TV shows a fresh pairing code as soon as one is used, and a phone that pairs by code goes straight to Home.
- "← Plugins" on a plugin's page goes to Plugins.
- Remove plugin, Forget a phone, Forget this phone and Restore ask for a second tap. On the TV, forgetting the paired phones asks for a second OK.
Plugins.
- A plugin turned off by its own update reads "Turned off by its update", and turns back on when a later update stops asking for more.
- A row whose refresh fails keeps what it showed, with "Offline, showing what we have" beside its title.
- A failed press on a plugin's tile shows the plugin's message, and a tile whose plugin has been turned off says so.
- Plugins that fell due while the screen was off refresh as soon as it comes back on.
- Remove plugin and Forget this connection confirm what they did.
Text. Failure and status lines on settings rows show in full. A long title on the Stage takes two lines and ends at a whole word. Tile text over pale pictures has a deeper shade behind it.
Continue watching leaves out titles already on the Stage.
Updates. A failed update names its cause and what happens next, and no longer says it will try again when the twice-a-day check is off. Before opening Android's list of apps allowed to install, Lounge says what to turn on there.
Accessibility. Tiles, settings rows, top-bar buttons, the guide and All apps take a press from services such as Switch Access and Voice Access, and a tile's menu is offered as an Options action.
Other fixes.
- Switching back to the screensaver you had before works when screensavers were off.
- Twitch keeps a game's name as written.
- Spotify asks for a new sign-in when the old one covers too little.
- Toggle settings no longer say "(optional)".
For plugin authors
- A
programin a row with noactionis a tile to read, such as a day's weather. OK opens nothing and makes no sound, it can't be pinned to the Stage, and search leaves it out. - Errors show on the TV and the phone exactly as written. A failed
resolveshows as written when it reads as a sentence: a capital letter first, a full stop or question mark last, and at most 400 characters. - A setting's
helpof up to about 160 characters shows whole on the TV.
PLUGINS.md has the details.
Full Changelog: v0.6.1...v0.7.0
Lounge 0.6.1
A release about a smoother home screen and tidier live TV. Moving between rows no longer stutters, live channels fill their tiles, and long titles can be read in full.
What's new
Live channels fill their tiles. Some sources, TCL Channel among them, give each channel a wide picture card where a small logo is expected, and no pictures for programmes. That card used to sit small in the corner of an otherwise empty tile. A wide card now fills the tile. It already says the channel's name, so the tile leaves out what the programme's title repeats of it.
A channel with only a logo shows it large. A live tile with no picture drew its channel's logo small in the corner. The logo now sits large in the tile, above the words. Over a programme's own picture it keeps its corner.
Long titles run across the tile. A title too long for its tile was cut with an ellipsis, and reading the rest meant opening the tile's menu. Rest on a tile for a moment and its title now runs across, pauses and starts over, on landscape tiles and under a focused poster. With reduced motion it stays cut.
Updates are set up to arrive ready to run. After an update, Android left Lounge uncompiled until the TV had sat idle overnight, and the home screen was noticeably slower until then. Each release now carries a small profile that Lounge installs with the update, so Android compiles it as it installs. The install takes longer for it, about 18 seconds on a TCL TV against 5. If a TV won't take the profile, the update goes in without one. This starts with the update after this one, because this one is installed by the version already on your TV.
What's fixed
Moving between rows no longer stutters. Moving to a row the home had not drawn yet built it in the middle of the move, and the screen froze for a moment, worst on a TV that had just been updated. Rows are now built in idle moments soon after the home opens and kept ready, and the light on tiles follows focus with far less work. On a TCL TV straight after an update, the longest pause in a move fell from about 350 ms to about 40 ms.
Live now repeats itself less. Every tile in the row is on now, so its line reads "42 minutes left" rather than "Now, 42 minutes left". The row's title already wears the live dot, so its tiles no longer each carry a Live badge over the corner of the channel's picture, on the TV and the phone. Live tiles in other rows keep theirs.
Full Changelog: v0.6.0...v0.6.1
Lounge 0.6.0
A release about where Continue watching comes from. You choose which apps feed it, seven new plugins bring more in, and Plex and Jellyfin sign in with a code.
What's new
You choose what feeds Continue watching. Settings, Rows has a new list, "Continue watching comes from", with every app and plugin that brings something to continue and how many titles each brings. OK hides one or shows it again. On the home screen, hold OK on a title and "Hide everything from Netflix" does the same without leaving it. Everything is shown until you hide it, so nothing goes missing by default, and the phone's Layout page has the same list.
The Stage is shared between apps. The big pictures up top used to go to whatever you watched most recently, so one busy app could take every place. Now no app gets more than half of the free places while another has something to continue. What you pin still comes first.
Seven new plugins.
- Stremio and Nuvio: paused titles and next episodes in Continue watching, the library as a row, and search. Tiles open in the Stremio or Nuvio TV app.
- Simkl: what you paused, what's next, what you plan to watch and what airs this week, for shows, anime and films.
- Sonarr and Radarr: this week's episodes and releases, what's downloading and what just arrived. Tiles search for the title in whichever app has it.
- Spotify: recently played, playlists, saved albums and podcasts with a Spotify developer app, or any Spotify links you paste without one.
- Podcasts: new episodes from feeds, Apple Podcasts links or an OPML export, played in a player app.
- Moonlight: your gaming PCs and their games from Sunshine, as tiles that start a stream. A game left running shows up in Continue watching.
Plex and Jellyfin sign in with a code. Turn the Plex plugin on with nothing filled in and it shows a code and a QR for plex.tv/link. Once you've linked, the page tells you the address of your server to enter. Jellyfin does the same with Quick Connect: leave the username empty and enter the code it shows in Jellyfin on a phone or computer. The TV notices within a few seconds, with no button to press, and the phone shows the same card with a button that opens the link. A token or a password still works if you'd rather.
A plugin is suggested when its app is on the TV. Some apps don't tell the TV what you were watching, so their titles never reach Continue watching on their own. A plugin asks the server instead. With Plex, Jellyfin, Emby, Kodi, Stremio or Nuvio installed, the home now shows a tile that opens the matching plugin's page. "Don't show this again" in its menu, on the TV or the phone, puts it away.
YouTube follows more. With a Google sign-in the plugin brings your subscriptions, playlists and liked videos. Without one it takes channel handles as well as links and ids, and a Google Takeout export of your subscriptions can be pasted in whole. A long list is read in turns, so every channel gets refreshed.
Lists get room. Channels, podcast feeds and Spotify links go in a field of several lines on the phone, one entry a line, and a setting can now be as large as another podcast app's OPML export.
For plugin authors. A manifest can say which apps a plugin is for (for_apps), name several servers in one setting, accept a home server's own certificate (self_signed_servers), tie a secret to the server it belongs to (sent_to), and declare a setting of kind list. A plugin can stop to ask the person for something, a sign-in or a missing setting, with sdk::ask and sdk::sign_in, and the TV and phone show it as a step to take, not a failure. PLUGINS.md has the details.
What's fixed
A title that has gone keeps a readable name. A pinned or hidden title that its app no longer lists showed as a long id on the phone's Layout page and in Settings, Rows. It now reads "A title Jellyfin no longer lists".
A plugin that failed is tried again when Lounge opens, rather than up to five minutes later.
The phone's setting fields are tidier. An empty field repeated its help text inside itself, cut off at the field's width. The help now sits only under the field, and example addresses in it are no longer links.
Full Changelog: v0.5.0...v0.6.0
Lounge 0.5.0
A release about your apps. Rows you can hide and move, a proper screen for every app, a Your apps row that stays short, and a menu that says what each choice does.
What's new
Rows you can hide, show and move. Settings has a new Rows page that lists every row the home could show, with what each one holds: "49 titles", "188 channels", "Jellyfin · 20 titles". OK hides a row or shows it again. Hold OK to pick a row up, Up and Down to move it, OK to set it down. Hidden tiles sit at the bottom of the same page with a Show button, so everything that is off the screen is in one place. A row with nothing in it says why, and a tile's menu now offers "Hide the Live now row" when you want a row gone without leaving the home.
All apps, as a screen. Your apps now ends with an All apps tile that opens every app on the TV as a grid of banners, six across, with the alphabet down the left to jump by. Sort it A to Z, by what you opened last, or by what you installed last, and the choice is remembered. Type on the remote or the phone to narrow it as you go. Hold OK on any app there to pin it to Your apps, pin it to the Stage, or hide it. A hundred apps are a few presses away instead of a long scroll, and the old All apps row, which mostly repeated Your apps, is gone.
Your apps stays short. The row holds the apps you pin, in your order, then the five you opened last, then the All apps tile. Everything else waits in All apps. Settings and the phone can make that five into ten, fifteen or pinned only. Games keep to their own row. Apps you open from Lounge count as opened even without usage access.
The menu explains itself. "Pin to the Stage" now says "Stays in the big pictures up top". "Pin to the front of Your apps" says "Stays put ahead of recent apps". Hide says "Off every row until you show it". Pinned tiles wear a small pin so you can see what you've done, and unpinning confirms with a toast like everything else.
The phone catches up. Hold a tile on What's on for the same menu as the remote's. The Layout tab shows and hides rows and drags them into order, pins any app, and names everything hidden or on the Stage instead of showing raw ids. Your apps' recent count is there too.
Something playing with no picture wears its app's banner. An app that plays without attaching artwork, a live channel, a radio station, a podcast, reaches Continue watching as a blank card. Those tiles now borrow the app's banner under a deeper scrim with the title on it, so they read as something from the app rather than nothing at all.
What's fixed
The phone drew app banners at the wrong size. The TV sends tile kinds as AppBanner and Live while the page compared them to APP_BANNER and LIVE, so banners rendered at their picture's natural size under a title scrim, compact rows lost their layout, and Live badges never showed. All three are right now.
Two Lounges in the app rows. With a debug build installed beside the release, each showed the other as a "Lounge" app. Any app whose home activity is Lounge's is left out.
Long titles on the lowered Stage take two lines instead of being cut.
Menu items and settings rows no longer wrap. The tile menu is 480 wide and the settings sheets 640, so "Pin to the front of Your apps" and "Use Lounge as the screensaver" fit on one line.
Hidden rows stay searchable. Hiding Games or Continue watching takes the row off the home, not out of Search, and the Guide button stays while channels exist.
The home no longer republishes itself while music plays. App tiles carried a timestamp that moved with every playback report, which meant a new snapshot, a database write and a push to every phone twice a second. Tiles now carry only their place in each order.
TV listings are published before their artwork is fetched, so Continue watching fills in at once and the pictures follow.
Full Changelog: v0.4.6...v0.5.0
Lounge 0.4.6
A small release of fixes for the phone companion and Now Playing.
What's fixed
Forgetting a phone now sticks. If the TV couldn't save its list of paired phones, for example because its storage was full, forgetting a phone looked like it had worked, but the phone could sign in again after the next restart. Now the phone is shut out straight away, the phone page or the TV says the change wasn't saved, and the TV keeps trying to save it. On the TV, Paired phones reads "Couldn't save, try again" until it is saved. A new phone is no longer paired when the TV can't save it, so it can't quietly come unpaired at the next restart.
Now Playing no longer shows an app that has stopped. When saving album art slowed one update down, an older list of what was playing could arrive after a newer one. An app that had already finished then stayed on screen until something else changed.
A layout that fails to save no longer takes effect. If the TV couldn't save a layout change or a restored backup from the phone, the phone showed an error, but the TV kept the rejected layout until the next restart. Now nothing changes unless the save works.
A broken link no longer stops the phone app from opening. An address with a malformed escape, such as /#/plugins/%, stopped the companion page from starting at all, even after a reload. It now opens normally.
Full Changelog: v0.4.5...v0.4.6
Lounge 0.4.5
Full Changelog: v0.4.4...v0.4.5
Lounge 0.4.4
Full Changelog: v0.4.3...v0.4.4
Lounge 0.4.3
Full Changelog: v0.4.2...v0.4.3
Lounge 0.4.2
Lounge 0.4.2 is about plugins: what they show, where their tiles take you, and what they say when something goes wrong.
TVs already running Lounge update themselves within half a day. To install it fresh, see Installing on a TV.
Picking up where you left off
- Jellyfin tiles open on the item's own page in the Jellyfin app, not on its home screen.
- Continue watching has each show's next episode from Jellyfin and Emby, shown as up next rather than as something to continue.
- Continue on a part-watched NextPVR or Channels DVR recording starts where you stopped, in players that take a start position, such as VLC.
- Come back from something a plugin offered and that plugin refreshes straight away, so Continue watching is up to date.
New rows and settings
- Favourites rows for Jellyfin and Emby.
- IPTV finds its guide without a Guide URL, from the playlist itself or from an Xtream provider.
- YouTube leaves Shorts out of its row unless Include Shorts is on.
- Immich takes custom /s/ share links, signs in to password-protected links on Immich 2.6 and later, and hangs portrait photos whole instead of cropping them.
- Episode tiles in rows say which episode they are, like S2 E4.
Fixes
- NextPVR servers with about 1,000 channels or more could stop refreshing for good.
- Xtream playlists no longer turn their films and series into channels.
- A guide that fails to download no longer wipes the one already showing.
- Changing IPTV's guide address no longer erases the playlist address.
- Trakt and Twitch show their rows as soon as you sign in, and a Trakt tile no longer hides a server's tile that would resume the episode.
- The Internet Archive plays a series from its first episode, and search keeps to the same collections and filter as the rows.
- Kodi search finds shows again when many films match, and a Kodi on the TV itself is reached through localhost.
- The New badge means added in the past week, in every plugin.
- The screensaver takes turns between Immich and Art instead of filling up from one.
- Art's American paintings and its largest Met pictures show up, Tvheadend search lists each programme once with when it airs, and a mistyped Plex library name no longer empties the row.
Clearer messages
When a plugin cannot reach its server or gets an answer it does not expect, its page now says which server and what to check, such as "Jellyfin didn't answer at 192.168.0.20:8096. Check the server, then try again."
Full list of changes: v0.4.1...v0.4.2
Lounge 0.4.1
Lounge 0.4.1 gives the lowered Stage a new look. Tested on a Google TV Streamer and a TCL Google TV.
TVs already running Lounge update themselves within half a day. To install it fresh, see Installing on a TV.
The picture, out of focus
When you move down into the rows, the Stage no longer crops its picture into a strip. As it lowers, the picture goes out of focus into its own light: its colours spread across the band where they sat in the picture, with its light glowing toward the right. Charade's yellow coat becomes a pool of amber; a black and white film becomes a quiet silver.
- The title sits on the room's own dark, with the progress bar and the time left beneath it.
- The light drifts very slowly, and stops a minute after your last key press, like the rest of the room.
- It costs the TV no more to draw than the old band did.
The first time 0.4.1 starts it reads every picture again to find its colours, so the home may take a little longer to fill than usual.
Full list of changes: v0.4.0...v0.4.1