{"content":"   1→<?xml version=\"1.0\" encoding=\"utf-8\"?>\n   2→<!--\n   3→  Launcher configuration. Edit this file, then run launcher/build-and-install.sh.\n   4→  Or leave it and push a theme instead: tools/theme.sh themes/<name> puts a config.json (same keys, see\n   5→  themes/README.md) and an optional wallpaper on the TV, and the launcher overlays it at start.\n   6→  Package names: on the TV run `pm list packages` (tools/tv.py 'pm list packages').\n   7→-->\n   8→<resources>\n   9→\n  10→    <!-- Tried in order when no standard settings handler is usable; each package must also be visible\n  11→         through <queries> in the manifest. -->\n  12→    <string-array name=\"settings_fallback_components\" translatable=\"false\">\n  13→        <item>com.xiaomi.mitv.settings/com.xiaomi.mitv.settings.entry.MainActivity</item>\n  14→        <item>com.tcl.settings/com.tcl.settings.ui.MainActivity</item>\n  15→        <item>com.amazon.tv.launcher/com.amazon.tv.launcher.ui.MainSettingsActivity</item>\n  16→    </string-array>\n  17→\n  18→    <!-- Apps pinned to the dock row at the bottom, in this order. Missing apps are skipped. -->\n  19→    <string-array name=\"dock_apps\">\n  20→        <item>com.netflix.ninja</item>\n  21→        <item>com.amazon.amazonvideo.livingroom</item>\n  22→        <item>com.google.android.youtube.tv</item>\n  23→        <item>in.startv.hotstar</item>\n  24→    </string-array>\n  25→    <!-- With fewer dock_apps than columns (or a dock app that is not installed), the free dock slots take\n  26→         the first grid apps, so the dock never shows a gap. false leaves them empty (#162); a theme can\n  27→         set \"fill_dock\": false. -->\n  28→    <bool name=\"fill_dock\">true</bool>\n  29→\n  30→    <!-- Apps never shown as tiles (e.g. the Live TV app, which the Inputs menu already covers). -->\n  31→    <string-array name=\"hidden_apps\">\n  32→        <item>com.mediatek.wwtv.tvcenter</item>\n  33→        <item>com.mitv.gallery</item>\n  34→    </string-array>\n  35→\n  36→    <!-- The TV's Live TV / tuner app, offered at the end of the Inputs menu. Leave empty to omit. -->\n  37→    <string name=\"live_tv_package\" translatable=\"false\">com.mediatek.wwtv.tvcenter</string>\n  38→\n  39→    <!-- Open the Live TV app above the first time Home comes up after the TV is switched on, for sets that are\n  40→         mostly used for broadcast TV. Once per boot: Home after that stays Home. Can also be set with\n  41→         \"boot_to_live_tv\": true in a theme's config.json. -->\n  42→    <bool name=\"boot_to_live_tv\">false</bool>\n  43→\n  44→    <!-- Some TVs give their Live TV app no leanback entry point at all, so `live_tv_package` above\n  45→         resolves to nothing (TCL Android TV 9 on China-market sets is one). This action is then sent\n  46→         to that package instead, and the app starts normally. Leave empty to omit. -->\n  47→    <string name=\"live_tv_action\" translatable=\"false\"></string>\n  48→\n  49→    <!-- Optional exact system tuner ID for the Inputs menu's Live TV row, e.g. the DVB-S input on\n  50→         a TV with separate antenna, cable and satellite tuners. It opens that input's channel\n  51→         collection, restricted to live_tv_package. Empty keeps automatic selection and its existing\n  52→         OEM passthrough route. If the ID is absent or the app cannot handle the collection, open\n  53→         the Live TV app normally instead of selecting a different input. See docs/devices/haam-r4.md. -->\n  54→    <string name=\"live_tv_input_id\" translatable=\"false\"></string>\n  55→\n  56→    <!-- Tiles that open a screen of the app instead of its start screen: \"package=action\", sent to that package.\n  57→         A tile whose action no longer resolves opens the app normally. MagentaTV's program guide:\n  58→         com.telekom.onetv.tv.pl=com.telekom.onetv.tv.pl.action.PROGRAM_GUIDE. -->\n  59→    <string-array name=\"launch_actions\">\n  60→    </string-array>\n  61→\n  62→    <!-- A tile's name instead of the app's own: \"package=Name\". It also shows above the dock. -->\n  63→    <string-array name=\"app_labels\">\n  64→    </string-array>\n  65→    <!-- A tile's artwork instead of the app's banner: \"package=drawable\", a banner_* drawable bundled with the\n  66→         launcher (res/drawable). banner_tv is a magenta field with the Live TV glyph. -->\n  67→    <string-array name=\"app_banners\">\n  68→    </string-array>\n  69→\n  70→    <!-- TVs with no TvInputManager have no HDMI list to read, but their own source-selection panel\n  71→         still switches inputs (TCL Android TV 9 again). When nothing could be listed, the Inputs menu\n  72→         offers one row that starts this service: component first, then action. The component can also be an\n  73→         activity, for sets whose panel is a dialog (BYINTEK U4). With no Live TV app either, the Inputs pill\n  74→         opens the panel directly instead of a menu. Leave empty to omit. -->\n  75→    <string name=\"source_panel_service\" translatable=\"false\"></string>\n  76→    <string name=\"source_panel_action\" translatable=\"false\"></string>\n  77→    <!-- One int extra sent with the source panel intent, \"name=value\". Coocaa OS (Skyworth, China) needs\n  78→         control_center_command=100 for its control center to open on the source row, as the remote's\n  79→         Source button does. Leave empty to omit. -->\n  80→    <string name=\"source_panel_extra\" translatable=\"false\"></string>\n  81→\n  82→    <!-- Coocaa OS (Skyworth, China) registers no inputs with TvInputManager; com.skyworth.tv lists its\n  83→         sources (HDMI 1, HDMI 2, AV, the tuner) through its own provider instead. true: show those in the\n  84→         Inputs menu and switch with com.skyworth.tv, ahead of the source panel above, which stays as the\n  85→         fallback. See CoocaaSources and examples/skyworth-7s60-a5. -->\n  86→    <bool name=\"coocaa_sources\">false</bool>\n  87→\n  88→    <!-- Inputs menu: HDMI and AV rows normally open with ACTION_VIEW on the input's channel URI, which the\n  89→         Live TV app handles. Where nothing answers that, this action is sent with the same URI instead\n  90→         (XGIMI projectors: com.xgimi.action.hdmiPlayer). Leave empty to omit. -->\n  91→    <!-- Local fork for Xiaomi Mi TV 4 (MiTV4-ANSM0, Android 6): nothing on this firmware answers the\n  92→         standard VIEW on a passthrough input, so HDMI rows go through Xiaomi's own source player. -->\n  93→    <string name=\"input_action\" translatable=\"false\">com.xiaomi.mitv.tvplayer.EXTSRC_PLAY</string>\n  94→    <!-- Inputs menu: a scheme to send the input's passthrough URI with instead of content:// (and no channel MIME\n  95→         type). YaOS: live-tv. Its source player answers live-tv://android.media.tv/passthrough/<input>, while the\n  96→         content:// URI goes to its channel player, which resumes the last film it played. Leave empty to omit. -->\n  97→    <string name=\"input_uri_scheme\" translatable=\"false\"></string>\n  98→\n  99→    <!-- Whether HomeKeyService and InputKeyService actually request key filtering (config.xml or a theme's\n 100→         \"key_filter\"). Some firmware (TCL Google TV on Android 12) drops key auto-repeat once ANY service\n 101→         filters keys, so long-pressing volume only steps once: set false and the service keeps running but\n 102→         stops filtering, which brings repeat back at the price of the remote buttons below doing nothing. -->\n 103→    <bool name=\"key_filter\">true</bool>\n 104→\n 105→    <!-- Vendor source numbers for the Inputs menu, \"HW<n>=<number>\" by the framework input id's last part\n 106→         (`tools/tv.py 'dumpsys tv_input'` lists them). A mapped input opens by sending input_action with the\n 107→         number as the int extra \"input\"; \"HW<n>=-\" leaves a port the board reports but the set does not have\n 108→         out of the menu. Xiaomi/Redmi China firmware (MiTV-MFTP0) needs input_action\n 109→         com.xiaomi.mitv.tvplayer.EXTSRC_PLAY and MStar numbers: HW5=23, HW6=24, HW7=25, HW8=-, HW2=2,\n 110→         HW3=-, HW4=- (see examples/redmi-mitv-mftp0). Leave empty to omit. -->\n 111→    <string-array name=\"input_sources\" translatable=\"false\">\n 112→        <!-- MiTV4-ANSM0 (droidlogic): Hdmi1InputService/HW5, Hdmi2/HW6, Hdmi3/HW7, AV1/HW2.\n 113→             Xiaomi source ids: HDMI1=23, HDMI2=24, HDMI3=25, AV=2 (verified on this set over ADB).\n 114→             The \":label\" suffix names the row the local fork adds when the firmware never registers\n 115→             the input (this set leaves HDMI1, the IPTV box's port, out of TvInputManager). -->\n 116→        <item>HW5=23:HDMI 1</item>\n 117→        <item>HW6=24:HDMI 2</item>\n 118→        <item>HW7=25:HDMI 3</item>\n 119→        <item>HW2=2:AV</item>\n 120→    </string-array>\n 121→\n 122→    <!-- Remote buttons that open Settings, by Linux scancode (HOME_KEY_SERVICE=1 build-and-install.sh). Remotes\n 123→         that send KEYCODE_SETTINGS need no entry. Some send a code Android does not map: the Xiaomi/Fengmi\n 124→         projector remote's gear button is scancode 384 (KEY_TAPE). Find yours with\n 125→         `tools/tv.py 'getevent -lt'` while pressing the button - but a HID consumer-control usage prints an\n 126→         evdev MSC_SCAN there, which is not always the scanCode the framework reports, so a number that takes\n 127→         nothing is no proof the press never arrived. Leave empty to omit. -->\n 128→    <integer-array name=\"settings_key_scancodes\">\n 129→    </integer-array>\n 130→    <!-- The same by Android keycode, for buttons whose scancode is shared. TCL Google TV remotes send their\n 131→         Settings button as keycode 83 (KEYCODE_NOTIFICATION, which the stock Google TV home turned into its quick\n 132→         settings panel) on scancode 240 (KEY_UNKNOWN), the scancode several TCL buttons share. Find the keycode\n 133→         with `tools/tv.py 'logcat -v time -s InputReader:D'` while pressing the button - some firmwares print no\n 134→         key line there at any verbosity, and a `getevent` MSC_SCAN is a different number, so the reliable route is\n 135→         a temporary `Log.d` in the helper's `onKeyEvent`: `getKeyCode()`, `getScanCode()`, `getDeviceId()`, read\n 136→         after a HOME_KEY_SERVICE=1 rebuild. Leave empty to omit. -->\n 137→    <integer-array name=\"settings_key_keycodes\">\n 138→    </integer-array>\n 139→    <!-- What those Settings buttons open: false, the TV's Settings; true, a small glass panel at the top right\n 140→         with TV settings, Display, Network, Apps (re-enable an app) and Launcher settings, over whatever is on screen.\n 141→         Both keys can also be set from a theme's config.json (\"settings_key_keycodes\": [83]). -->\n 142→    <bool name=\"settings_key_panel\">false</bool>\n 143→\n 144→    <!-- A force stop of the launcher (Settings, a cleaner app, am force-stop) takes HomeKeyService and InputKeyService\n 145→         off the enabled list. true: Home puts the helpers that were running back when it starts; one turned off in\n 146→         Settings stays off. Needs WRITE_SECURE_SETTINGS, which build-and-install grants with RESTORE_KEY_SERVICES=1\n 147→         (-RestoreKeyServices on Windows). Can also be set with \"restore_key_services\": true in a theme's config.json. -->\n 148→    <bool name=\"restore_key_services\">false</bool>\n 149→\n 150→    <!-- More remote buttons that open the input switcher, by Android keycode (INPUT_KEY_SERVICE=1\n 151→         build-and-install.sh; KEYCODE_TV always does). For buttons only a disabled app answered: the Xiaomi\n 152→         MiTV-AXFR2 remote's PatchWall button is 192 (KEYCODE_BUTTON_5). `dumpsys window policy` lists which\n 153→         app each such \"global key\" was routed to. Check with the real remote: keys injected over ADB never\n 154→         reach InputKeyService. Leave empty to omit. -->\n 155→    <integer-array name=\"input_key_keycodes\">\n 156→    </integer-array>\n 157→    <!-- Answer the system input switcher (com.android.tv.action.VIEW_INPUTS) with the Inputs menu. For TVs whose\n 158→         stock launcher was the only handler of that action, so the remote's Input button does nothing once the\n 159→         stock launcher is disabled even with InputKeyService on (Hisense huangshan, Android TV 10: no\n 160→         global_keys.xml, no vendor input picker). Off by default: a TV with its own input picker would otherwise\n 161→         get a chooser on every press. Also \"handle_view_inputs\": true in a theme's config.json. -->\n 162→    <bool name=\"handle_view_inputs\">false</bool>\n 163→    <!-- Remote buttons that open an app, as \"keycode:package\" or \"KEYCODE_NAME:package\" (INPUT_KEY_SERVICE=1 or\n 164→         HOME_KEY_SERVICE=1; both read this one list, and a theme's config.json can set it too). On Google TV the\n 165→         YouTube button sends 190 (KEYCODE_BUTTON_3) to the stock launcher, so it does nothing once launcherx\n 166→         is disabled (Chromecast with Google TV, Xiaomi MiTV-AXFR2): 190:com.google.android.youtube.tv brings\n 167→         it back. The KTC LUMIO VISION remote (Realtek Google TV) sends Netflix 191, YouTube 190, Prime Video 195\n 168→         and TL;DR 200. Some remotes send several app buttons as one keycode and tell them apart only by scancode\n 169→         (Sony BRAVIA: YouTube, Prime Video and Disney+ are all keycode 196, scancodes 485, 490 and 491); list those\n 170→         as \"scan:scancode:package\", e.g. scan:490:com.wbd.hbomax, found with `tools/tv.py 'getevent -lt'` (the\n 171→         EV_KEY code, in hex). A scancode entry wins over a keycode. In place of a package, \"input:<input id>\"\n 172→         switches to that TV input, e.g. scan:227:input:com.tcl.tvinput/.passthroughinput.TvPassThroughService/HW1413744640\n 173→         for HDMI 3 on a TCL Smart TV Pro; the ids are in `tools/tv.py 'dumpsys tv_input'` (hdmi_port=N under\n 174→         TvInputHardwareInfo). Prefix an entry with \"hold:\" for the same button's long press:\n 175→         \"hold:KEYCODE_BUTTON_8:org.xbmc.kodi\" opens Kodi when held for half a second, while the unprefixed entry\n 176→         still opens on a tap; \"hold:scan:490:...\" works for scancodes. A key with only a hold entry does nothing\n 177→         on a tap. A listed app that is not installed leaves the button doing nothing. Leave empty to omit. -->\n 178→    <string-array name=\"app_keys\" translatable=\"false\">\n 179→    </string-array>\n 180→\n 181→    <!-- Package of the stock launcher, for TVs whose firmware turns it back on after it was disabled. XGIMI's\n 182→         com.xgimi.xrmservice does, on every one of its remote keys, power included (docs/TROUBLESHOOTING.md).\n 183→         Whenever that launcher's home screen comes up anyway, HomeKeyService (HOME_KEY_SERVICE=1) sends the TV\n 184→         straight back here. A theme's config.json can set it too. Leave empty to omit. -->\n 185→    <string name=\"stock_home_redirect\" translatable=\"false\"></string>\n 186→\n 187→    <!-- Show the Solar Hijri (Shamsi) date used in Iran and Afghanistan, e.g. \"27 Mehr 1405\", above the\n 188→         Gregorian date. -->\n 189→    <bool name=\"shamsi_date\">false</bool>\n 190→\n 191→    <!-- A name after the greeting: \"Mr. Trịnh\" shows GOOD MORNING, MR. TRỊNH. Empty: the greeting alone. -->\n 192→    <string name=\"greeting_name\" translatable=\"false\"></string>\n 193→    <!-- Optional VPN app the network pill opens (hold the pill for Wi-Fi settings), e.g. the package of the\n 194→         VPN you use. Empty: the pill opens Wi-Fi settings. The green VPN badge shows for any VPN either way;\n 195→         with an app set here, a red \"VPN off\" badge also shows while no VPN is up. -->\n 196→    <string name=\"vpn_app\" translatable=\"false\"></string>\n 197→    <!-- The dock as its own row: a lighter band, no names under the tiles, parked low on the screen with the top\n 198→         shelf above it. false makes the dock apps simply the first tiles of one plain grid (still in dock_apps\n 199→         order, no empty slots), with names under every tile and the glow behind every focused tile. -->\n 200→    <bool name=\"dock_row\">true</bool>\n 201→    <!-- Inputs, Wi-Fi and Settings folded into one round gear at the top right, like Google TV: OK drops a menu\n 202→         with the three, hold OK keeps the launcher menu. Off by default; a theme can set \"top_menu\": true. -->\n 203→    <bool name=\"top_menu\">false</bool>\n 204→    <!-- A direct Launcher settings action instead of TV Settings in the header (or top_menu).\n 205→         Off by default; a theme can set \"launcher_settings_button\": true. -->\n 206→    <bool name=\"launcher_settings_button\">false</bool>\n 207→    <!-- The dock band as light frosted glass, like the Inputs, Wi-Fi and Settings pills, so a sky or wallpaper shows\n 208→         through it. false (the default) keeps the solid near-black band, or the cinematic shelf's dark glass. Can\n 209→         also be set with \"dock_glass\": true in a theme's config.json. -->\n 210→    <bool name=\"dock_glass\">false</bool>\n 211→    <!-- The dock band's padding equals the gap between its tiles on all four sides (as far as the grid's edges leave room),\n 212→         so its corners are concentric with the tiles' and the spacing reads even. false (the default) keeps the fixed\n 213→         14dp above and below, up to 22dp at the sides and 26dp corners. Can also be set with \"dock_even_padding\": true in a theme's config.json. -->\n 214→    <bool name=\"dock_even_padding\">false</bool>\n 215→    <!-- A reorder button (two arrows) in the top bar. Off by default: reordering is also in the Settings\n 216→         button's long-press menu, so it needs no extra button on screen. -->\n 217→    <bool name=\"reorder_button\">false</bool>\n 218→    <!-- Wi-Fi and Settings as round icon-only buttons (the network name moves to the talkback description);\n 219→         Inputs keeps its label. -->\n 220→    <bool name=\"icon_only_buttons\">false</bool>\n 221→    <!-- The Inputs pill as a round icon button too (the label moves to the talkback description). -->\n 222→    <bool name=\"icon_only_inputs\">false</bool>\n 223→    <!-- true colours the Wi-Fi pill's icon green while the TV is online and leaves it white while it is not (dark on\n 224→         the focused pill either way), so the connection shows at a glance, also as an icon-only button. Can also be\n 225→         set with \"wifi_status_color\": true in a theme's config.json. -->\n 226→    <bool name=\"wifi_status_color\">false</bool>\n 227→    <!-- The app library as a round button in the top bar, beside Settings (app_library must be on too). -->\n 228→    <bool name=\"library_button\">false</bool>\n 229→    <!-- With icon_only_buttons: keep the network name on the Wi-Fi pill up to this width in dp, cut with an ellipsis.\n 230→         0 leaves the Wi-Fi pill as an icon. -->\n 231→    <integer name=\"wifi_label_width\">0</integer>\n 232→\n 233→    <!-- The Wi-Fi/Ethernet pill in the top bar. false hides it (on Android 14 with Location off it can\n 234→         only say \"Wi-Fi\", not the network name). Can also be set with \"show_network_pill\" in a theme. -->\n 235→    <bool name=\"show_network_pill\">true</bool>\n 236→    <!-- The Inputs pill in the top bar, shown when the TV has inputs to list. false hides it for good; what the\n 237→         remote's Input button does is unchanged. Can also be set with \"show_inputs_pill\" in a theme. -->\n 238→    <bool name=\"show_inputs_pill\">true</bool>\n 239→    <!-- Names under every tile, not only the focused one: unfocused names stay dimmed, the focused one is full white.\n 240→         With dock_row the band grows down to hold the dock's names too. -->\n 241→    <bool name=\"always_show_names\">false</bool>\n 242→    <!-- Wallpapers decode as RGB_565 (2 bytes a pixel, 4 MB at 1080p), which bands dark gradients such as a night\n 243→         sky, most of all under wallpaper_dim. true decodes them in 32-bit colour: 8 MB, for TVs with 2 GB or more. -->\n 244→    <bool name=\"wallpaper_true_color\">false</bool>\n 245→    <!-- Rotating wallpapers: show each picture's name under the top-right buttons, from a captions.txt next to the\n 246→         pictures in wallpapers/ (\"01-dusk.jpg<TAB>Dusk over the peaks\", one per line). A picture without a line\n 247→         shows no name. Can also be set with \"wallpaper_captions\": true in a theme's config.json. -->\n 248→    <bool name=\"wallpaper_captions\">false</bool>\n 249→    <!-- Rotating wallpapers grouped by the time of day, as JSON: {\"morning\": [file names], \"evening\": [...],\n 250→         \"night\": [...]}. While set, the rotation picks only from the group that fits now: morning from sunrise to\n 251→         noon, evening until half an hour after sunset, night the rest, with the sun at latitude and longitude (07:00\n 252→         and 18:30 without them). It moves to the new group as soon as the time of day changes. A missing or empty\n 253→         group falls back to the whole collection; empty rotates through every picture. A theme can set\n 254→         \"wallpaper_moods\" as an object. -->\n 255→    <string name=\"wallpaper_moods\" translatable=\"false\"></string>\n 256→    <!-- Hold OK on a tile opens a small menu: Move (picks the tile up for reordering), Remove from Home (only with\n 257→         app_library) and App info. false keeps the old behaviour: holding OK opens the app's App info page.\n 258→         Can also be set with \"tile_menu\": true in a theme's config.json. -->\n 259→    <bool name=\"tile_menu\">false</bool>\n 260→\n 261→    <!-- Grid rows left visible under the dock on the home screen. 0 = dock sits at the very bottom. Tiles shrink if\n 262→         the dock, its title and this many rows would not otherwise fit the screen height. -->\n 263→    <integer name=\"rows_below_dock\">0</integer>\n 264→\n 265→    <!-- The focused dock app's name in large type above the dock. false keeps only the glow, which leaves room\n 266→         for bigger tiles when rows_below_dock is 2 or 3. -->\n 267→    <bool name=\"dock_title\">true</bool>\n 268→\n 269→    <!-- Tiles per row in the grid; the dock always has this many slots. Tiles are 180dp wide at 4 columns and\n 270→         shrink to fit from 5 up (about 144dp at 5, 117dp at 6 on a 1080p TV). -->\n 271→    <integer name=\"columns\">4</integer>\n 272→\n 273→    <!-- Basic motion is on; advanced effects are opt-in in the launcher's own Settings screen. -->\n 274→    <bool name=\"animations\">true</bool>\n 275→    <bool name=\"advanced_effects\">false</bool>\n 276→\n 277→    <!-- Optional Default-home tile; keep this key for existing themes and tile-ordering work.\n 278→         Off by default because the chooser is also available from launcher settings. -->\n 279→    <bool name=\"show_home_settings_shortcut\">false</bool>\n 280→\n 281→    <!-- Installed launchable apps, including ordinary Android apps. Also settable in config.json. -->\n 282→    <bool name=\"app_library\">false</bool>\n 283→    <!-- Optional direct Home picker in the app library: OK toggles the checkmark, checked apps first.\n 284→         Off by default; a theme can set \"app_library_selection\": true (also needs app_library). -->\n 285→    <bool name=\"app_library_selection\">false</bool>\n 286→\n 287→    <!-- Apps pre-seeded into the App library's \"added\" set at startup (config.xml library_apps, or a theme's\n 288→         config.json). They show on Home as if the owner had added them in the App library UI, and stay\n 289→         removable there (a removed one stays hidden). For sets where almost no app declares a leanback entry\n 290→         (many China-market TVs, e.g. Coocaa 8R145), a fresh Home with app_library on would otherwise be\n 291→         nearly empty. Empty (off) by default, so existing setups change nothing. -->\n 292→    <string-array name=\"library_apps\" translatable=\"false\">\n 293→    </string-array>\n 294→\n 295→    <!-- Module cards: an app that declares a card (docs/specs/card.md) can stand in for its tile with its own\n 296→         label, caption and glow colour, once you answer Show on the prompt. false: never look for cards or ask. -->\n 297→    <bool name=\"module_cards\">true</bool>\n 298→\n 299→    <!-- Reduced motion: for TVs whose GPU cannot keep up (MediaTek MT5895 on Android 10 is the known case).\n 300→         true keeps the GPU drawing path but calms the movement and draws far fewer frames: the highlight\n 301→         slides with no bounce and settles within 5 frames, every animation lasts 90 ms or less, names, top\n 302→         shelf, glow and highlight appear instead of fading, and there is no tile entrance. Set it\n 303→         here or with \"reduced_motion\": true in a theme's config.json; false keeps the normal motion. -->\n 304→    <bool name=\"reduced_motion\">false</bool>\n 305→\n 306→    <!-- The glass highlight springs past the tile it moves to and the focused tile zooms past its size\n 307→         before settling. false: both go straight there, with no bounce, while scrolling stays smooth\n 308→         (reduced_motion also removes the overshoot, but scrolls in one jump). Can also be set with\n 309→         \"focus_overshoot\" in a theme's config.json. -->\n 310→    <bool name=\"focus_overshoot\">true</bool>\n 311→\n 312→    <!-- One line under the clock: CPU, free memory and free storage. Off by default; a theme can set\n 313→         \"show_stats\": true. Nothing is read, and the clock does not move, while this is false. -->\n 314→    <bool name=\"show_stats\">false</bool>\n 315→\n 316→    <!-- Time-of-day backdrop behind everything: a dark gradient that follows the clock, with a warm\n 317→         horizon glow around sunrise and sunset. 0 keeps the plain background (the default); 1 to 100\n 318→         sets its opacity. Around 60 reads clearly without hiding a wallpaper. Can also be set with\n 319→         \"sky_intensity\": 60 in a theme's config.json. -->\n 320→    <integer name=\"sky_intensity\">0</integer>\n 321→    <!-- Where the TV is, in decimal degrees, so the sky's sunrise and sunset glows follow the real sun\n 322→         (computed on the TV, no network). Empty: a fixed temperate day, sunset glow around 19:00.\n 323→         Vilnius: 54.69 and 25.28. -->\n 324→    <string name=\"latitude\" translatable=\"false\"></string>\n 325→    <string name=\"longitude\" translatable=\"false\"></string>\n 326→\n 327→    <!-- Cinematic top shelf: the focused dock app's artwork, softened, fills the top of the screen in its\n 328→         colour; the shelf gets a larger name, a \"Last opened\" line (from the apps Home opened) and dock position\n 329→         dots, the focus glow takes the app's colour and the dock band turns translucent. false keeps the plain\n 330→         shelf. Can also be set with \"cinematic_home\": true in a theme's config.json. -->\n 331→    <bool name=\"cinematic_home\">false</bool>\n 332→    <!-- With cinematic_home, false leaves out the dock position dots under the app's name, for a quieter shelf. Can\n 333→         also be set with \"cinematic_dots\": false in a theme's config.json. -->\n 334→    <bool name=\"cinematic_dots\">true</bool>\n 335→    <!-- With cinematic_home, true keeps the focus highlight white on the dock instead of the focused app's colour,\n 336→         for wallpapers and banners that clash with it; app_glow still colours every tile. Can also be set with\n 337→         \"cinematic_white_focus\": true in a theme's config.json. -->\n 338→    <bool name=\"cinematic_white_focus\">false</bool>\n 339→    <!-- With cinematic_home, how much of a wallpaper the shelf covers: cinematic_scrim is the strength of the dark\n 340→         scrim that keeps the name readable (0 to 100 percent, 100 as before) and cinematic_art the opacity of the\n 341→         app's softened artwork (0 to 100, 50 as before; 0 leaves the wallpaper uncovered). Lower values let a\n 342→         theme's wallpaper show through. A theme can set \"cinematic_scrim\" and \"cinematic_art\". -->\n 343→    <integer name=\"cinematic_scrim\">100</integer>\n 344→    <integer name=\"cinematic_art\">50</integer>\n 345→\n 346→    <!-- The glow behind the dock in the focused app's colour (red for YouTube, blue for Prime Video). false keeps\n 347→         only background_color or the wallpaper behind everything. Can also be set with \"ambient_glow\": false in a\n 348→         theme's config.json. -->\n 349→    <bool name=\"ambient_glow\">true</bool>\n 350→    <!-- The focus highlight glows in the focused app's colour on every tile, as the cinematic shelf does for the\n 351→         dock, without cinematic_home. Can also be set with \"app_glow\": true in a theme's config.json. -->\n 352→    <bool name=\"app_glow\">false</bool>\n 353→    <!-- The rows fade out as they scroll up under the clock, instead of being cut off at a hard line (TopFade).\n 354→         The grid then draws into a hardware layer, about 6 MB of graphics memory at 1080p, so it is off by default.\n 355→         Can also be set with \"fade_rows\": true in a theme's config.json. -->\n 356→    <bool name=\"fade_rows\">false</bool>\n 357→    <!-- Minutes Home may sit untouched before it shows the clock screensaver (ClockActivity); 0 turns it off.\n 358→         Unlike the system screensaver this never starts over live TV or an app, which matters on TVs whose\n 359→         Live TV window does not keep the screen on (CVTE): there the system screensaver would start in the\n 360→         middle of a programme. Can also be set with \"home_idle_clock_minutes\": 10 in a theme's config.json. -->\n 361→    <integer name=\"home_idle_clock_minutes\">0</integer>\n 362→    <!-- Shape of the glow behind the focused app, in its colour: radial (a soft glow, the default) or horizon (the\n 363→         colour washes down from the top edge and fades to black, brightest along the top). The cinematic shelf\n 364→         keeps its own glow. Can also be set with \"glow_style\": \"horizon\" in a theme's config.json. -->\n 365→    <string name=\"glow_style\" translatable=\"false\">radial</string>\n 366→</resources>\n 367→","renderer":{"type":"code","context":{"language":"xml"}}}