Repository navigation
Releases: Shantil-K/OpenLauncher
Release list
OpenLauncher v1.0.1
What's new since v1.0.0
Update from the TV itself (rooted TVs). Settings > App info now has an Update button. It downloads the newest release's .ipk from GitHub, checks it against the SHA-256 checksum GitHub publishes for the file, installs it with the TV's own installer and reopens the launcher, in about 20 seconds. Your settings are kept. When Check for updates finds a newer release, an Update to vX button also appears next to it and shows progress while it runs. If something goes wrong (no internet, checksum mismatch, install refused), the page and a TV notification say why.
Also: App info now shows the Picture wallpaper source correctly.
Install
Download com.homebrew.openlauncher_2.0.0_all.ipk below and install it with Homebrew Channel or ares-install. Coming from v1.0.0 or older, install this one by hand; later releases can then be installed from Settings > App info.
Notes
- In-app updating needs root (Homebrew Channel). The download-and-install script was tested on an LG C2 (webOS 22).
OpenLauncher v1.0.0
The first stable release of OpenLauncher, a custom home screen for LG webOS TVs.
What's new since v0.7.2-beta
Picture wallpaper. Settings > Wallpaper > Video source now has a Picture option: pick one of the launcher's built-in photos from a thumbnail grid and it stays as a fixed wallpaper. No video at all, so nothing to stream, buffer or decode. The photo is shown at full resolution; only the picker's previews are small.
Smooth hovering on the Picture wallpaper. The photo is drawn on its own layer behind the tiles, so moving the pointer over apps no longer makes the TV redraw the full 4K photo.
Faster start for the built-in video. The Offline loop starts at a random point, which used to make webOS buffer the video twice. After the first launch the start point is handed straight to the media pipeline (mediaOption), saving roughly 250-450 ms on a real TV.
Online launches go straight to the stream instead of briefly starting the local loop first.
System-app folders were trimmed (Settings and Sharing).
Install
Download com.homebrew.openlauncher_2.0.0_all.ipk below and install it with Homebrew Channel, or ares-install. Listing and launching apps needs a rooted TV.
Notes
- The Picture wallpaper hover fix was tested in Chrome and installed on an LG C2 (webOS 22). Please report anything odd.
Home button binding, self-uninstall, cold-start speedup
What's new since v0.7.1-beta
Settings > TV > Replace stock Home binds the physical Home button (and gets the launcher to start on boot) without SSH. It auto-detects whether your TV is on webOS 6-24 or 25+ from a system file, runs the matching script from src/access/replace through the root service (Homebrew Channel), and persists it via webosbrew's init.d. Restore stock Home undoes whichever method was applied.
Settings > App info > Uninstall OpenLauncher restores stock Home first (if it was replaced), then uninstalls the app itself - the one place in the launcher where self-uninstall is allowed (Edit mode's own Uninstall button refuses to, on purpose, everywhere else).
Cold launch is measurably faster. Every <script> tag moved from <head> to the end of <body>, and the local loop.mp4 now starts immediately via a tiny inline script right after #bgvideo, instead of waiting on all 19 scripts plus DOMContentLoaded first. Measured on a real TV: ~2.6s -> ~1.7s to a visible first frame, in both Offline and Online (streamed) modes. The remaining ~1s is the TV's own hardware video-decoder warm-up - paid once regardless of source, a platform floor rather than something fixable at this layer. Separately confirmed that relaunching an already-running instance resumes instantly rather than reloading the page.
Notes
- The Replace/Restore/Uninstall features need root (Homebrew Channel) and have only been tested via SSH-driven install/launch cycles on a real TV, not through the physical remote's Home button on every webOS generation - report back if a specific method doesn't do anything on your firmware.
- This is a beta. Please report anything odd.
One-way pinning, Hide pinned apps, cyan accent, real resolution
What's new since v0.7.0-beta
Pinning is one way now. Carrying an app from the app menu onto the bottom bar still pins it, but it can't be carried back. The only way to take an app off the bar is the Unpin button on its tile in Edit mode (or "Unpin from the bar" in that tile's OK menu). Carrying a bar app over the app menu, or pressing Up out of the bar, no longer does anything.
Settings
- Hide pinned apps (Settings > Apps > App menu): leaves the apps that are on the bottom bar out of the app menu, so each app shows once. Edit mode still lists them so you can move, rename or unpin them. Off by default.
- The default hover colour is now cyan. (Other colours are unchanged; anyone who chose a colour keeps it.)
- The panel is titled OpenLauncher Settings.
App info
- Resolution now shows the panel's real pixels ("3840 x 2160 (4K)") instead of the size the page is drawn at, and a new Page size line shows that ("1920 x 1080 @ 2x"). It uses the page size times the pixel ratio, the screen size the browser and webOS report, and the TV's UHD flag.
- If the TV's own service refuses the model and firmware lookup, webOS's own device info fills them in.
- "Based on: QwQHome by exkc" has its own row.
Cleanup: removed the unused old icon file, debug logging, a settings layout rule that could never trigger, some duplicate CSS and a stray id.
Notes
- Uninstall is not offered for the launcher itself or apps the TV reports as not removable.
- The cursor-timeout highlight uses webOS's
cursorStateChangeevent and was tested with a simulated event, not yet on a real Magic Remote. The resolution fix was tested in a browser; on the TV it depends on what webOS reports. - The settings panels use flex
gap, which needs Chromium 84+ (webOS 22 and newer). - Streaming uses roughly 6 Mbps (about 2.7 GB per hour). Use Game or Filmmaker picture mode to avoid grainy video.
- This is a beta. Please report anything odd.
App info, rename, dim level, cursor-timeout focus
What's new since v0.6.0-beta
New: App info (Settings, last tab) - a system-information page for the launcher, like the one on a PC:
- the icon, release, package and when it was last updated, and whether it runs as a trusted app or with root
- whether a settings backup is saved (with root it finds the backup file and shows its date), how many settings you changed, and your layout (pinned, folders, hidden, renamed)
- the wallpaper source, the screen resolution and web engine, the TV's model and firmware, and the GitHub project (address, where to report a problem, licence)
- Check for updates asks GitHub for the newest release. The internet is only used when you press it.
Settings
- Dim level (Settings > Screen): how bright things stay when the TV is idle, 5-100% (30% as before), with a dimmed miniature screen beside it.
- Idle dimming now darkens the clock, bar and buttons instead of making them see-through, so it looks the same over the wallpaper and over the black moment between two videos.
- Video sources (Settings > Wallpaper): lists where the streamed videos come from and how many there are of each.
- A line at the bottom explains the little i icons ("Hover over the info icon next to a setting to view more info"). The panel is now titled OpenLauncherSettings.
Apps
- Rename (pencil button in Edit mode, or "Rename..." in the OK menu): give an app your own name. It is used in the app menu, the bottom bar and Recent, and is kept in your backup.
- An Unpin button on the bottom bar's tiles (only there; the app menu still pins by dragging an app onto the bar).
- The launcher's own tile is no longer listed in the app menu; its information is in App info.
- The "hover the bottom bar to pin it" tip moved to the bottom right so it no longer covers the folder chips.
Remote control
- When the Magic Remote's cursor times out, the item it was on keeps the highlight and the arrow keys carry on from it. Pressing an arrow while the cursor is still showing starts from the item under it.
- Right from the Edit/Done button wraps round to the Apps button.
Also: a new launcher icon and a redesigned README, and a fix so two folders made in the same moment can't share an id.
Notes
- Uninstall is not offered for the launcher itself or apps the TV reports as not removable.
- The cursor-timeout behaviour uses webOS's
cursorStateChangeevent and was tested with a simulated event, not on a real Magic Remote yet. - The settings panels use flex
gap, which needs Chromium 84+ (webOS 22 and newer). - Streaming uses roughly 6 Mbps (about 2.7 GB per hour). Use Game or Filmmaker picture mode to avoid grainy video.
- This is a beta. Please report anything odd.
Live previews, folders for TV apps, pin by dragging, uninstall, loop
What's new since v0.5.0-beta
Settings
- Every tab has an icon. On/Off settings are switches, sizes are S / M / L / XL, and long lists (clock style, date format) step with arrows.
- Live previews beside the Clock, Date, Weather and Apps tabs: a miniature screen with the clock, date and weather where they will be, and the bottom bar and app menu at the size you picked.
- Explanations moved into a strip under the panel (for the setting you are on, also with the remote). Choosing a position fades the panel for a moment so you can see where it went.
- App menu background: a 0-100% slider. The clock, date and weather are hidden while the app menu is open.
Folders
- A bar at the top of the app menu with All apps and a chip per folder (with counts) to jump between folders. Folder tiles show a 2x2 peek at their apps.
- A new Move to window: cards for the main list and every folder (peek, count, tick on the current one), one-press folder names (Games, Streaming, Media...), or type a name, and a line at the bottom saying what happened.
- The TV's own apps in folders. The TV hides 134 of 189 apps from an app list (
visible: false). Those are now left out, except the ones people use, which go into folders on first run: Inputs (HDMI, DisplayPort, AV, Component, USB-C), TV, Settings, Sharing, Help. They are normal folders (rename, take apps out, delete; Settings > Apps > Folders > Restore brings them back). System apps in Settings > Apps lists everything.
Apps
- Pin by dragging: rest on an app's reorder icon, drag it onto the bottom bar to pin it, back onto the app menu to unpin. With the remote, Reorder and press Down past the last row / Up out of the bar. The pin button is gone.
- Uninstall (Edit mode, trash button or the OK menu). Always asks first.
- Hidden apps go to the end of the list; unhiding keeps the place until you press Done, then it is the last app.
- Names too long for their tile scroll sideways while hovered or focused.
- Edit mode ends when you close the app menu. Recent apps can't be reordered, and their label lines up with the first icon.
Wallpaper
- Loop video on the info card repeats the video that is playing.
Also: a new launcher icon, and a fix so two folders made in the same moment can't share an id.
Notes
- Uninstall is not offered for the launcher itself or apps the TV reports as not removable.
- The settings panels use flex
gap, which needs Chromium 84+ (webOS 22 and newer). - Streaming uses roughly 6 Mbps (about 2.7 GB per hour). Use Game or Filmmaker picture mode to avoid grainy video.
- This is a beta. Please report anything odd.
D-pad navigation, folders, weather, OLED protection, custom wallpapers
What's new since v0.4.0-beta
- Remote control (D-pad). Everything now works with the arrow keys and OK, not only the Magic Remote pointer. Arrows move a highlight to the nearest item, OK activates, Back goes up a level. Yellow opens Settings, Red the info card, Blue turns Edit on and off. In Edit mode, OK on an app opens a menu (pin, hide, move to folder, reorder), and Reorder moves it with the arrows.
- Folders. Group apps in the app menu: folders show first, open one to see its apps. Use the folder button in Edit mode, and rename or delete folders in Settings > Apps.
- Recent apps. An optional row of the apps you launched last, above the bottom bar (Settings > Apps, off by default).
- Weather. Current temperature and conditions from Open-Meteo, under the date or anywhere on screen (Settings > Weather, off by default, needs the internet).
- OLED protection (Settings > Screen, off by default): a slow pixel shift, and dimming everything, or hiding the bar and dimming the rest, after 1 to 10 minutes without input.
- Your own wallpapers. Settings > Wallpaper > My own plays links you add: videos (.mp4 .mov .mkv .webm) and photos (.jpg .png .webp), with links to files on the TV or a USB drive too.
- Backup. Export and import your settings and app layout as JSON (Settings > Backup). With root it also uses
/media/developer/openlauncher-settings.json. - The close buttons on the settings panel and the info card are now a cross icon.
Fixes
- The bottom bar no longer spills below the screen at Medium, Large and Extra large sizes.
- The D-pad highlight stays on a control after you change a setting.
Notes
- New features that change the home screen (recent apps, weather, OLED protection) are off by default, so nothing looks different until you turn them on.
- Weather data is by Open-Meteo.com (CC BY 4.0).
- The settings panels use flex
gap, which needs Chromium 84+ (webOS 22 and newer). On older TVs everything works but buttons sit closer together. - Streaming uses roughly 6 Mbps (about 2.7 GB per hour). Use Game or Filmmaker picture mode to avoid grainy video.
- This is a beta. Please report anything odd.
Settings screen, wallpaper info card, offline video source
What's new since v0.3.0-beta
- Settings screen. Open the app drawer and press the gear next to Edit. Tabs for Clock, Date, Apps, Wallpaper and TV. Everything is saved between launches.
- Clock: digital, stacked, analog, analog minimal or off; seconds on/off; 12/24-hour; and where on screen it goes.
- Date: nine formats (including
DD:MM:YYYYandDD Month YYYY), an optional day of week before or after the date, and its own position (or under the clock). Turn Date and Day both off to hide it. - Apps: size of the bottom bar and the app menu, names under the apps and their size (bar and menu separately), and the colour used when hovering an app.
- Wallpaper: choose Online (streamed) or Offline (built in) for the wallpaper video.
- TV: opens the TV's own settings, and resets the launcher settings (with an "Are you sure?").
- Wallpaper info card. A small info button in the bottom-right of the home screen opens a "Now playing" card: the video's name and source, a seekbar you can drag, and Skip video.
- Offline video source. Switch to the built-in video to stop streaming. The built-in loop must be built first (see the README); without it the launcher falls back to rotating pictures.
Fixes
- The clock no longer shifts when the seconds change, and AM/PM sits next to the seconds in the stacked clock.
- The page can no longer scroll, which could move the bottom-right buttons.
- Hover highlights are square when app names are turned off.
- Playlist names with apostrophes (13 of them) are no longer garbled.
Notes
- Streaming uses roughly 6 Mbps (about 2.7 GB per hour) while the launcher is on screen. Offline uses none.
- Video is processed by the TV's picture engine and can look grainy in some picture modes. Use Game (or Filmmaker) picture mode, or turn off noise reduction / Super Resolution.
- This is a beta. Please report anything odd.
- Adding a setting is one entry in
SETTINGS_SCHEMAinsrc/js/settings.js; the README explains how.
Aerial wallpapers, icon edit mode, hover reordering
What's new since v0.2.0-beta
- Aerial wallpapers. The background now streams a shuffled queue of about 290 aerial videos (Apple, Amazon and community). If they can't play it falls back to the built-in video loop, and then to the rotating images. Dead links are skipped, stalled streams are skipped, and playback pauses while another app is in front.
- Icon-based edit mode. Press Edit in the drawer, then hover an app to get its controls: a pin / slashed pin to pin or unpin it on the bar, and an open / crossed-out eye to show or hide it.
- Reorder by hovering only. Rest the pointer on the reorder icon for a little under a second (it fills pink) to pick an app up. Move the pointer over other apps and it takes their place, following you. Rest on it to drop. The order is saved.
- No more reloading. Changing the order, pins or hidden apps no longer reloads every icon or jumps the drawer back to the top.
- Bolder font. Plus Jakarta Sans Bold replaces the Light cut, with a soft shadow on the clock and bar labels so they stay readable over video.
- Bottom bar aligned with the app drawer's columns.
Notes
- Streaming uses roughly 6 Mbps (about 2.7 GB per hour) while the launcher is on screen.
- Video is processed by the TV's picture engine and can look grainy in some picture modes. Use Game (or Filmmaker) picture mode, or turn off noise reduction / Super Resolution.
- This is a beta. Please report anything odd.
- Building from source: run
./scripts/make-wallpaper-video.sh(needs ffmpeg) for the offline video fallback, and see the README for refreshing the aerial list.
Video wallpaper, pin/hide apps
What's new
- Video wallpaper. The background is now a looping 4K video of all the wallpapers, which the TV decodes in hardware. It replaces rotating 4K JPEGs on the CPU, which stalled hover highlighting. The homescreen layout is unchanged.
- Pin and hide apps. Open the app drawer and press Edit (bottom right) to pin/unpin apps on the bottom bar and hide/show apps in the drawer. Settings are saved and kept between launches. The old hardcoded bar list is only the default until you change it.
- Clock fix. The clock reads local time instead of calling the system service every second, so it no longer lags or skips seconds.
- Smoother hover. Each app tile now repaints on its own, which fixes lag when moving the pointer quickly across many apps.
- Builds out of the box from a plain clone (
QwQwebosTV.jsis vendored instead of a submodule).
Notes
- The video is processed by the TV's picture engine and can look grainy in some picture modes. Use Game (or Filmmaker) picture mode, or turn off noise reduction / Super Resolution.
- This is a beta: it has not been tested widely. Please report anything odd.
- Building from source: run
./scripts/make-wallpaper-video.sh(needs ffmpeg) beforeares-package src. Without it the app falls back to rotating the images.