From 7c6741a93eae0ddc840ad03d722133e889874c3e Mon Sep 17 00:00:00 2001 From: firestarsdog <229254897+firestarsdog@users.noreply.github.com> Date: Sat, 22 Aug 2026 04:51:33 -0400 Subject: [PATCH] cleanup --- .../onroad/starpilot/favorite_radial_menu.py | 5 +- .../ui/tests/test_favorite_radial_menu.py | 6 +- .../common/assets/device_settings_layout.json | 185 +++++++++++++++++- 3 files changed, 186 insertions(+), 10 deletions(-) diff --git a/selfdrive/ui/onroad/starpilot/favorite_radial_menu.py b/selfdrive/ui/onroad/starpilot/favorite_radial_menu.py index 122d34bdf5..59ced61b21 100644 --- a/selfdrive/ui/onroad/starpilot/favorite_radial_menu.py +++ b/selfdrive/ui/onroad/starpilot/favorite_radial_menu.py @@ -54,6 +54,7 @@ class FavoriteRadialMenu: CORNER_HINT_OUTER_RADIUS = 62.0 CORNER_HINT_RING_RADIUS = 42.0 CORNER_HINT_EDGE_MARGIN = 6.0 + _ELLIPSIS = "..." _PURPLE = (161, 112, 255) _PANEL = rl.Color(13, 11, 23, 236) @@ -1083,7 +1084,7 @@ class FavoriteRadialMenu: return "" if FavoriteRadialMenu._measure_text(font, text, font_size).x <= max_width: return text - ellipsis = "..." + ellipsis = FavoriteRadialMenu._ELLIPSIS if FavoriteRadialMenu._measure_text(font, ellipsis, font_size).x > max_width: return "" shortened = text @@ -1101,7 +1102,7 @@ class FavoriteRadialMenu: @staticmethod def _append_ellipsis(font: Any, text: str, font_size: int, max_width: float) -> str: - ellipsis = "…" + ellipsis = FavoriteRadialMenu._ELLIPSIS if max_width <= 0 or FavoriteRadialMenu._measure_text(font, ellipsis, font_size).x > max_width: return "" diff --git a/selfdrive/ui/tests/test_favorite_radial_menu.py b/selfdrive/ui/tests/test_favorite_radial_menu.py index ef3aec5519..44e38cff39 100644 --- a/selfdrive/ui/tests/test_favorite_radial_menu.py +++ b/selfdrive/ui/tests/test_favorite_radial_menu.py @@ -325,7 +325,7 @@ def test_picker_description_uses_measured_wrap_and_truncates_to_two_lines(monkey assert wrap_calls[0][0] == long_description assert wrap_calls[0][1] >= 24 assert wrap_calls[0][2] > 0 - assert drawn_texts[-2:] == ["Measured first line", "Measured second line…"] + assert drawn_texts[-2:] == ["Measured first line", "Measured second line..."] def test_picker_uses_compact_section_labels_without_mutating_catalog_copy(): @@ -342,9 +342,9 @@ def test_picker_fit_text_truncates_at_word_boundary(monkeypatch): monkeypatch.setattr(FavoriteRadialMenu, "_measure_text", staticmethod(lambda _font, text, _font_size: rl.Vector2(len(text) * 10, 20))) - fitted = FavoriteRadialMenu._fit_picker_text(object(), "Longitudinal Speed Following", 24, 140) + fitted = FavoriteRadialMenu._fit_picker_text(object(), "Longitudinal Speed Following", 24, 160) - assert fitted == "Longitudinal…" + assert fitted == "Longitudinal..." def test_picker_wraps_long_titles_by_measured_words(monkeypatch): diff --git a/starpilot/common/assets/device_settings_layout.json b/starpilot/common/assets/device_settings_layout.json index d2ff2aad63..0fd2160fd9 100644 --- a/starpilot/common/assets/device_settings_layout.json +++ b/starpilot/common/assets/device_settings_layout.json @@ -21,6 +21,7 @@ "key": "AdvancedLateralTune", "label": "Advanced Lateral Tuning", "description": "Advanced steering control changes to fine-tune how openpilot drives.", + "picker_description": "Fine-tunes openpilot's steering control.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -30,6 +31,7 @@ "key": "UseAutoSteerDelay", "label": "Use Auto-Learned Delay", "description": "Automatically learn the full steering delay. The manual actuator delay is ignored while enabled.", + "picker_description": "Learns steering delay; ignores the manual value.", "data_type": "bool", "ui_type": "toggle", "parent_key": "AdvancedLateralTune", @@ -100,6 +102,7 @@ "key": "ForceAutoTune", "label": "Force Auto-Tune On", "description": "Force-enable openpilot's live auto-tuning for \"Friction\" and \"Lateral Acceleration\".", + "picker_description": "Auto-tunes steering friction and lateral acceleration.", "data_type": "bool", "ui_type": "toggle", "parent_key": "AdvancedLateralTune", @@ -109,6 +112,7 @@ "key": "ForceAutoTuneOff", "label": "Force Auto-Tune Off", "description": "Force-disable openpilot's live auto-tuning for \"Friction\" and \"Lateral Acceleration\" and use the set value instead.", + "picker_description": "Uses fixed values instead of live steering auto-tuning.", "data_type": "bool", "ui_type": "toggle", "parent_key": "AdvancedLateralTune", @@ -118,6 +122,7 @@ "key": "ForceTorqueController", "label": "Force Torque Controller", "description": "Use torque-based steering control instead of angle-based control for smoother lane keeping, especially in curves.", + "picker_description": "Uses torque-based steering for smoother lane keeping.", "data_type": "bool", "ui_type": "toggle", "parent_key": "AdvancedLateralTune", @@ -127,7 +132,7 @@ "key": "AlwaysOnLateral", "label": "Always On Lateral", "description": "openpilot's steering remains active even when the accelerator or brake pedals are pressed.", - "picker_description": "Keeps steering active while the accelerator or brake pedals are pressed.", + "picker_description": "Keeps steering active when pressing the gas or brake.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -149,6 +154,7 @@ "key": "LaneChanges", "label": "Lane Changes", "description": "Allow openpilot to change lanes.", + "picker_description": "Enables openpilot lane changes.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -158,6 +164,7 @@ "key": "NudgelessLaneChange", "label": "Automatic Lane Changes", "description": "When the turn signal is on, openpilot will automatically change lanes. If a vehicle is detected in the blind spot, the lane change waits until it is clear. No steering-wheel nudge required!", + "picker_description": "Changes lanes automatically when the turn signal is on.", "data_type": "bool", "ui_type": "toggle", "parent_key": "LaneChanges", @@ -167,6 +174,7 @@ "key": "NudgelessLaneChangeOnlyWhenEngaged", "label": "Automatic Lane Changes Only When Engaged", "description": "Require a steering-wheel nudge for lane changes while using Always On Lateral without full engagement.", + "picker_description": "Requires a nudge unless full openpilot control is engaged.", "data_type": "bool", "ui_type": "toggle", "parent_key": "LaneChanges", @@ -212,6 +220,7 @@ "key": "OneLaneChange", "label": "One Lane Change Per Signal", "description": "Limit automatic lane changes to one per turn-signal activation.", + "picker_description": "Limits automatic lane changes to one per signal.", "data_type": "bool", "ui_type": "toggle", "parent_key": "LaneChanges", @@ -233,6 +242,7 @@ "key": "LaneChangeCloseGap", "label": "Close Gap On Lane Change", "description": "Allows for a temporary shorter follow distance behind lead so that openpilot merges smoothly out of current lane, it will allow car to accelerate as it changes lanes.", + "picker_description": "Temporarily shortens the follow gap during lane changes.", "data_type": "bool", "ui_type": "toggle", "parent_key": "LaneChanges", @@ -254,6 +264,7 @@ "key": "LateralTune", "label": "Lateral Tuning", "description": "Miscellaneous steering control changes to fine-tune how openpilot drives.", + "picker_description": "Additional settings for fine-tuning steering control.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -263,6 +274,7 @@ "key": "TurnDesires", "label": "Force Turn Desires Below Lane Change Speed", "description": "While driving below the minimum lane change speed with an active turn signal, instruct openpilot to turn left/right.", + "picker_description": "Allows turn desires below lane-change speed with a signal.", "data_type": "bool", "ui_type": "toggle", "parent_key": "LateralTune", @@ -272,6 +284,7 @@ "key": "NavDesiresAllowed", "label": "Use Route Desires for Turns", "description": "Allow an active navigation route to request low-speed turn desires.", + "picker_description": "Allows navigation to request low-speed turns.", "data_type": "bool", "ui_type": "toggle", "parent_key": "LateralTune", @@ -281,6 +294,7 @@ "key": "NavLanePositioningAllowed", "label": "Use Route Desires for Lane Positioning", "description": "Allow route lane bias only after steering torque confirms the requested direction. It never initiates a lane change by itself.", + "picker_description": "Uses route-based lane positioning after torque confirmation.", "data_type": "bool", "ui_type": "toggle", "parent_key": "LateralTune", @@ -290,6 +304,7 @@ "key": "NNFF", "label": "Neural Network Feedforward (NNFF)", "description": "Twilsonco's \"Neural Network FeedForward\" controller. Uses a trained neural network model to predict steering torque based on vehicle speed, roll, and past/future planned path data for smoother, model-based steering.", + "picker_description": "Uses a neural network to smooth steering torque.", "data_type": "bool", "ui_type": "toggle", "parent_key": "LateralTune", @@ -299,6 +314,7 @@ "key": "NNFFLite", "label": "Neural Network Feedforward (NNFF) Lite", "description": "A lightweight version of Twilsonco's \"Neural Network FeedForward\" controller. Uses the \"look-ahead\" planned lateral jerk logic from the full model to help smoothen steering adjustments in curves, but does not use the full neural network for torque calculation.", + "picker_description": "Uses planned path data to smooth steering in curves.", "data_type": "bool", "ui_type": "toggle", "parent_key": "LateralTune", @@ -308,6 +324,7 @@ "key": "QOLLateral", "label": "Quality of Life", "description": "Steering control changes to fine-tune how openpilot drives.", + "picker_description": "Adds quality-of-life steering changes.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -329,6 +346,7 @@ "key": "PauseLateralOnSignal", "label": "Turn Signal Only", "description": "Only pause steering when the turn signal is active.", + "picker_description": "Pauses steering when the turn signal is active.", "data_type": "bool", "ui_type": "toggle", "parent_key": "QOLLateral", @@ -350,6 +368,7 @@ "key": "VASMEnabled", "label": "Enable V-ASM", "description": "Camera-based adjacent spot monitoring using the driver camera. Supplements factory blind spot monitoring.", + "picker_description": "Uses the driver camera for adjacent-spot monitoring.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -393,6 +412,7 @@ "key": "AdvancedLongitudinalTune", "label": "Advanced Longitudinal Tuning", "description": "Advanced acceleration and braking control changes to fine-tune how openpilot drives.", + "picker_description": "Fine-tunes openpilot's acceleration and braking.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -402,6 +422,7 @@ "key": "EVTuning", "label": "EV Tuning", "description": "Use acceleration profiles tuned for EVs. Defaults to the vehicle's detected powertrain type but can be overridden if the automatic choice doesn't match.", + "picker_description": "Uses acceleration profiles tuned for EV powertrains.", "data_type": "bool", "ui_type": "toggle", "parent_key": "AdvancedLongitudinalTune", @@ -411,6 +432,7 @@ "key": "TruckTuning", "label": "Truck Tuning", "description": "Use aggressive acceleration profiles tuned for trucks. Intended for heavy vehicles that need stronger throttle.", + "picker_description": "Uses stronger acceleration profiles for heavy vehicles.", "data_type": "bool", "ui_type": "toggle", "parent_key": "AdvancedLongitudinalTune", @@ -432,6 +454,7 @@ "key": "CustomAccelProfile", "label": "Custom Accel Profile", "description": "Replace the built-in acceleration profile with your own per-speed max-acceleration values. Breakpoint speeds stay fixed, and the starting defaults mirror the currently selected acceleration profile plus EV or Truck tuning.", + "picker_description": "Uses custom maximum-acceleration values by speed.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -623,6 +646,7 @@ "key": "ConditionalExperimental", "label": "Conditional Experimental Mode", "description": "Automatically switch to \"Experimental Mode\" when set conditions are met. Allows the model to handle challenging situations with smarter decision making.", + "picker_description": "Enables Experimental Mode for configured conditions.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -632,6 +656,7 @@ "key": "PersistExperimentalState", "label": "Persist Experimental State", "description": "Keep your manual Conditional Experimental override through reboots until you manually clear it.", + "picker_description": "Keeps a manual Experimental Mode override after reboot.", "data_type": "bool", "ui_type": "toggle", "parent_key": "ConditionalExperimental", @@ -665,6 +690,7 @@ "key": "CECurves", "label": "Curve Detected Ahead", "description": "Switch to \"Experimental Mode\" when a curve is detected to allow the model to set an appropriate speed for the curve.", + "picker_description": "Enables Experimental Mode when a curve is detected ahead.", "data_type": "bool", "ui_type": "toggle", "parent_key": "ConditionalExperimental", @@ -674,6 +700,7 @@ "key": "CEStopLights", "label": "\\\"Detected\\\" Stop Lights/Signs", "description": "Switch to \"Experimental Mode\" whenever the driving model \"detects\" a red light or stop sign.\n\nDisclaimer: openpilot does not explicitly detect traffic lights or stop signs. In \"Experimental Mode\", openpilot makes end-to-end driving decisions from camera input, which means it may stop even when there's no clear reason!", + "picker_description": "Uses Experimental Mode for predicted red lights or stops.", "data_type": "bool", "ui_type": "toggle", "parent_key": "ConditionalExperimental", @@ -683,6 +710,7 @@ "key": "CELead", "label": "Lead Detected Ahead", "description": "Switch to \"Experimental Mode\" when a slower or stopped vehicle is detected. Can make braking smoother and more reliable on some vehicles.", + "picker_description": "Uses Experimental Mode for a slower or stopped lead.", "data_type": "bool", "ui_type": "toggle", "parent_key": "ConditionalExperimental", @@ -693,6 +721,7 @@ "key": "CEOpenRoad", "label": "Open Road", "description": "Keep Experimental Mode active on an open road after reaching the set speed when no lead vehicle is detected. This can help the model anticipate braking sooner.", + "picker_description": "Keeps Experimental Mode active on open roads without a lead.", "data_type": "bool", "ui_type": "toggle", "parent_key": "ConditionalExperimental", @@ -702,6 +731,7 @@ "key": "CESlowerLead", "label": "Slower Lead", "description": "Switch to \"Experimental Mode\" when a slower lead vehicle is detected ahead.", + "picker_description": "Uses Experimental Mode when a slower lead is detected.", "data_type": "bool", "ui_type": "toggle", "parent_key": "CELead", @@ -711,6 +741,7 @@ "key": "CEStoppedLead", "label": "Stopped Lead", "description": "Switch to \"Experimental Mode\" when a stopped lead vehicle is detected ahead.", + "picker_description": "Uses Experimental Mode when a stopped lead is detected.", "data_type": "bool", "ui_type": "toggle", "parent_key": "CELead", @@ -744,6 +775,7 @@ "key": "ShowCEMStatus", "label": "Status Widget", "description": "Show which condition triggered \"Experimental Mode\" on the driving screen.", + "picker_description": "Shows which condition triggered Experimental Mode.", "data_type": "bool", "ui_type": "toggle", "parent_key": "ConditionalExperimental", @@ -753,6 +785,7 @@ "key": "CurveSpeedController", "label": "Curve Speed Controller", "description": "Automatically slow down for upcoming curves using data learned from your driving style, adapting to curves as you would.", + "picker_description": "Slows for upcoming curves using your driving history.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -762,6 +795,7 @@ "key": "ShowCSCStatus", "label": "Status Widget", "description": "Show the \"Curve Speed Controller\" target speed on the driving screen.", + "picker_description": "Shows the Curve Speed Controller target speed.", "data_type": "bool", "ui_type": "toggle", "parent_key": "CurveSpeedController", @@ -771,6 +805,7 @@ "key": "CurveSpeedControllerNoLead", "label": "Only Without Lead", "description": "Only use Curve Speed Controller when not following a lead vehicle.", + "picker_description": "Uses Curve Speed Controller only without a lead.", "data_type": "bool", "ui_type": "toggle", "parent_key": "CurveSpeedController", @@ -791,6 +826,7 @@ "key": "CustomPersonalities", "label": "Driving Personalities", "description": "Customize the \"Driving Personalities\" to better match your driving style.", + "picker_description": "Customizes driving personalities to match your style.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -800,6 +836,7 @@ "key": "TrafficPersonalityProfile", "label": "Traffic Mode", "description": "Customize the \"Traffic Mode\" personality profile. Designed for stop-and-go driving.", + "picker_description": "Customizes Traffic Mode for stop-and-go driving.", "data_type": "bool", "ui_type": "toggle", "parent_key": "CustomPersonalities", @@ -810,6 +847,7 @@ "key": "AggressivePersonalityProfile", "label": "Aggressive", "description": "Customize the \"Aggressive\" personality profile. Designed for assertive driving with tighter gaps.", + "picker_description": "Customizes Aggressive Mode for assertive driving.", "data_type": "bool", "ui_type": "toggle", "parent_key": "CustomPersonalities", @@ -820,6 +858,7 @@ "key": "StandardPersonalityProfile", "label": "Standard", "description": "Customize the \"Standard\" personality profile. Designed for balanced driving with moderate gaps.", + "picker_description": "Customizes Standard Mode for balanced driving.", "data_type": "bool", "ui_type": "toggle", "parent_key": "CustomPersonalities", @@ -830,6 +869,7 @@ "key": "RelaxedPersonalityProfile", "label": "Relaxed", "description": "Customize the \"Relaxed\" personality profile. Designed for smoother, more comfortable driving with larger gaps.", + "picker_description": "Customizes Relaxed Mode for smoother driving.", "data_type": "bool", "ui_type": "toggle", "parent_key": "CustomPersonalities", @@ -1164,6 +1204,7 @@ "key": "LongitudinalTune", "label": "Longitudinal Tuning", "description": "Acceleration and braking control changes to fine-tune how openpilot drives.", + "picker_description": "Additional acceleration and braking tuning.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -1173,6 +1214,7 @@ "key": "AccelerationProfile", "label": "Acceleration Profile", "description": "How quickly openpilot speeds up. \"Eco\" is gentle and efficient, \"Sport\" is firmer and more responsive, and \"Sport+\" accelerates at the maximum rate allowed.", + "picker_description": "Chooses how quickly openpilot accelerates.", "data_type": "int", "ui_type": "dropdown", "options": [ @@ -1200,6 +1242,7 @@ "key": "DecelerationProfile", "label": "Deceleration Profile", "description": "How firmly openpilot slows down. \"Eco\" favors coasting, \"Sport\" applies stronger braking.", + "picker_description": "Chooses how firmly openpilot slows down.", "data_type": "int", "ui_type": "dropdown", "options": [ @@ -1223,6 +1266,7 @@ "key": "HumanLaneChanges", "label": "Human-Like Lane Changes", "description": "Lane-change behavior that mimics human drivers by anticipating and tracking adjacent vehicles during lane changes.", + "picker_description": "Anticipates nearby traffic during lane changes.", "data_type": "bool", "ui_type": "toggle", "parent_key": "LongitudinalTune", @@ -1243,7 +1287,7 @@ "key": "TacoTune", "label": "\\\"Taco Bell Run\\\" Turn Speed Hack", "description": "The turn-speed hack from comma's 2022 \"Taco Bell Run\". Designed to slow down for left and right turns.", - "picker_description": "Slows down for left and right turns using the Taco Bell Run turn-speed hack.", + "picker_description": "Slows for turns using the Taco Bell Run hack.", "data_type": "bool", "ui_type": "toggle", "parent_key": "LongitudinalTune", @@ -1253,6 +1297,7 @@ "key": "NavLongitudinalAllowed", "label": "Use Route Speed Control", "description": "Allow an active navigation route to reduce cruise speed for upcoming turns, ramps, and roundabouts.", + "picker_description": "Lets navigation lower cruise speed for upcoming turns.", "data_type": "bool", "ui_type": "toggle", "parent_key": "LongitudinalTune", @@ -1262,6 +1307,7 @@ "key": "QOLLongitudinal", "label": "Quality of Life", "description": "Miscellaneous acceleration and braking control changes to fine-tune how openpilot drives.", + "picker_description": "Adds quality-of-life acceleration and braking changes.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -1293,6 +1339,7 @@ "key": "ForceStops", "label": "Force Stop at \\\"Detected\\\" Stop Lights/Signs", "description": "Force openpilot to stop whenever the driving model \"detects\" a red light or stop sign.\n\nDisclaimer: openpilot does not explicitly detect traffic lights or stop signs. In \"Experimental Mode\", openpilot makes end-to-end driving decisions from camera input, which means it may stop even when there's no clear reason!", + "picker_description": "Commands stops for model-predicted red lights or stop signs.", "data_type": "bool", "ui_type": "toggle", "parent_key": "QOLLongitudinal", @@ -1313,6 +1360,7 @@ "key": "ForceStandstill", "label": "Force Standstill State", "description": "Keep openpilot in the standstill state until you press the gas pedal or the Resume/+ cruise button.\n\nThis applies to any engaged stop, not just red lights or stop signs.", + "picker_description": "Holds standstill until you press gas or Resume/+.", "data_type": "bool", "ui_type": "toggle", "parent_key": "QOLLongitudinal", @@ -1322,6 +1370,7 @@ "key": "RadarTakeoffs", "label": "Radar for Takeoffs", "description": "Turns on/off using radar data to track leads at standstill, making following/takeoffs more responsive once leads move.", + "picker_description": "Uses radar to improve lead takeoffs from a stop.", "data_type": "bool", "ui_type": "toggle", "parent_key": "QOLLongitudinal", @@ -1342,6 +1391,7 @@ "key": "MapGears", "label": "Map Accel/Decel to Gears", "description": "Map the Acceleration or Deceleration profiles to the vehicle's \"Eco\" and \"Sport\" gear modes.", + "picker_description": "Maps Accel/Decel profiles to Eco and Sport gear modes.", "data_type": "bool", "ui_type": "toggle", "parent_key": "QOLLongitudinal", @@ -1375,6 +1425,7 @@ "key": "WeatherPresets", "label": "Weather Condition Offsets", "description": "Automatically adjust driving behavior based on real-time weather. Helps maintain comfort and safety in low visibility, rain, or snow.", + "picker_description": "Adjusts driving behavior for current weather.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -1609,6 +1660,7 @@ "key": "SpeedLimitController", "label": "Speed Limit Controller", "description": "Limit openpilot's maximum driving speed to the current speed limit from configured map, dashboard, and optional vision sources.", + "picker_description": "Limits speed using map, dashboard, or vision data.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -1618,6 +1670,7 @@ "key": "SLCConfirmation", "label": "Confirm New Speed Limits", "description": "Ask before changing to a new speed limit. To accept, tap the flashing on-screen widget or press the Cruise Increase button. To deny, press the Cruise Decrease button or ignore the prompt for 30 seconds.", + "picker_description": "Asks before applying a new speed limit.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -1628,6 +1681,7 @@ "key": "SLCConfirmationLower", "label": "Confirm Lower Limits", "description": "Require confirmation before applying a newly detected lower speed limit.", + "picker_description": "Asks before applying a lower speed limit.", "data_type": "bool", "ui_type": "toggle", "parent_key": "SLCConfirmation", @@ -1637,6 +1691,7 @@ "key": "SLCConfirmationHigher", "label": "Confirm Higher Limits", "description": "Require confirmation before applying a newly detected higher speed limit.", + "picker_description": "Asks before applying a higher speed limit.", "data_type": "bool", "ui_type": "toggle", "parent_key": "SLCConfirmation", @@ -1668,6 +1723,7 @@ "key": "SetSpeedLimit", "label": "Match Speed Limit on Engage", "description": "When openpilot is first enabled, automatically set the max speed to the current posted limit.", + "picker_description": "Matches the speed limit when openpilot engages.", "data_type": "bool", "ui_type": "toggle", "parent_key": "SpeedLimitController", @@ -1677,6 +1733,7 @@ "key": "SLCFallback", "label": "Fallback Speed", "description": "Choose the speed to use when no speed limit source is currently available.", + "picker_description": "Chooses the speed when no limit source is available.", "data_type": "int", "ui_type": "dropdown", "options": [ @@ -1700,6 +1757,7 @@ "key": "SLCOverride", "label": "Override Speed", "description": "Choose how SLC behaves after you manually drive faster than the posted speed limit.", + "picker_description": "Chooses how SLC responds after you exceed the limit.", "data_type": "int", "ui_type": "dropdown", "options": [ @@ -1723,6 +1781,7 @@ "key": "SLCMapboxFiller", "label": "Use Mapbox as Fallback", "description": "Use Mapbox speed-limit data when no other source is available.", + "picker_description": "Uses Mapbox speed limits as a fallback.", "data_type": "bool", "ui_type": "toggle", "parent_key": "SpeedLimitController", @@ -1763,6 +1822,7 @@ "key": "SLCPriority2", "label": "Secondary Speed Limit Source", "description": "Choose the backup speed-limit source when the primary one is unavailable.", + "picker_description": "Chooses the backup speed-limit source.", "data_type": "string", "ui_type": "dropdown", "options": [ @@ -1867,6 +1927,7 @@ "key": "ShowSLCOffset", "label": "Show Speed Limit Offset", "description": "Show the current offset from the posted limit on the driving screen.", + "picker_description": "Shows the current offset from the posted limit.", "data_type": "bool", "ui_type": "toggle", "parent_key": "SpeedLimitController", @@ -1876,6 +1937,7 @@ "key": "SpeedLimitSources", "label": "Show Speed Limit Sources", "description": "Display the speed-limit sources and their current values on the driving screen.", + "picker_description": "Shows speed-limit sources and their current values.", "data_type": "bool", "ui_type": "toggle", "parent_key": "SpeedLimitController", @@ -1885,6 +1947,7 @@ "key": "ConditionalChill", "label": "Conditional Chill Mode", "description": "Keep \"Experimental Mode\" on by default, but temporarily switch to \"Chill Mode\" in simple cruising scenes where speed holding is usually better.", + "picker_description": "Temporarily uses Chill Mode during simple cruising.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -1894,6 +1957,7 @@ "key": "PersistChillState", "label": "Persist Chill State", "description": "Keep your manual Conditional Chill override through reboots until you manually clear it.", + "picker_description": "Keeps a manual Chill Mode override after reboot.", "data_type": "bool", "ui_type": "toggle", "parent_key": "ConditionalChill", @@ -1927,6 +1991,7 @@ "key": "CCMLead", "label": "Stable Lead Ahead", "description": "Switch to \"Chill Mode\" when following a steady, well-tracked lead vehicle at cruising speeds.", + "picker_description": "Uses Chill Mode when following a steady lead.", "data_type": "bool", "ui_type": "toggle", "parent_key": "ConditionalChill", @@ -1936,6 +2001,7 @@ "key": "CCMLaunchAssist", "label": "Launch Assist", "description": "Temporarily switch to \"Chill Mode\" when starting from a stop if planner is already allowing throttle. Useful if your car launches too slowly from lights or stop signs.", + "picker_description": "Uses Chill Mode for smoother launches from a stop.", "data_type": "bool", "ui_type": "toggle", "parent_key": "ConditionalChill", @@ -1957,6 +2023,7 @@ "key": "ShowCCMStatus", "label": "Status Widget", "description": "Show which condition triggered \"Chill Mode\" on the driving screen.", + "picker_description": "Shows which condition triggered Chill Mode.", "data_type": "bool", "ui_type": "toggle", "parent_key": "ConditionalChill", @@ -1966,6 +2033,7 @@ "key": "SLCAbbreviatedSources", "label": "Show Abbreviated Icon Sources", "description": "Render the speed-limit sources as compact text labels (e.g. \"Dash-45\", \"MapD-30\") without icons.", + "picker_description": "Shows speed-limit sources as compact text labels.", "data_type": "bool", "ui_type": "toggle", "parent_key": "SpeedLimitController", @@ -1975,6 +2043,7 @@ "key": "SLCActiveSourcesOnly", "label": "Only Show Sources With Speed Limits", "description": "Hide source rows that have no current speed limit reading. Works with both abbreviated and full display.", + "picker_description": "Hides speed-limit sources with no current reading.", "data_type": "bool", "ui_type": "toggle", "parent_key": "SpeedLimitController", @@ -1990,6 +2059,7 @@ "key": "VisionSpeedLimitDetection", "label": "Vision Speed Limit Detection", "description": "Use the road camera to detect and display speed-limit signs, with optional use by Speed Limit Controller.", + "picker_description": "Detects and displays speed-limit signs with the road camera.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -1999,6 +2069,7 @@ "key": "VisionSpeedLimitLowLimitFilter", "label": "Ignore Low Vision Speed Limits", "description": "When SLC is enabled, prevent it from acting on vision-detected speed limits at or below the configured threshold. Detection, display, debugging, and training collection remain active.", + "picker_description": "Ignores vision speed limits below the configured threshold.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -2021,6 +2092,7 @@ "key": "VisionSpeedLimitAutoBookmark", "label": "Auto-Bookmark Vision Signs", "description": "Automatically save confirmed vision-detected speed limit signs into the speed-limit debug session so they can be imported into the training set later.", + "picker_description": "Saves confirmed vision speed-limit signs for training.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -2031,6 +2103,7 @@ "key": "VisionSpeedLimitTrainingCollector", "label": "Collect Extra Vision Training Samples", "description": "Save lower-threshold vision sign candidates into the debug session for later training import without showing or applying them live. Leave this on if you want to help improve the model.", + "picker_description": "Saves extra vision sign samples for training.", "data_type": "bool", "ui_type": "toggle", "parent_key": "VisionSpeedLimitDetection", @@ -2040,6 +2113,7 @@ "key": "VisionSpeedLimitAutoPreserveSegment", "label": "Preserve Auto-Bookmarked Segments", "description": "Also send a real bookmark for confirmed auto-bookmarks so loggerd preserves the route segment. Leave this off unless you specifically want the extra storage usage.", + "picker_description": "Preserves route segments containing auto-bookmarks.", "data_type": "bool", "ui_type": "toggle", "parent_key": "VisionSpeedLimitAutoBookmark", @@ -2055,6 +2129,7 @@ "key": "AdvancedCustomUI", "label": "Advanced UI Controls", "description": "Advanced visual changes to fine-tune how the driving screen looks.", + "picker_description": "Additional settings for fine-tuning the driving screen.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -2064,6 +2139,7 @@ "key": "HideSpeed", "label": "Hide Current Speed", "description": "Hide the current speed from the driving screen.", + "picker_description": "Hides current speed from the driving screen.", "data_type": "bool", "ui_type": "toggle", "parent_key": "AdvancedCustomUI", @@ -2073,6 +2149,7 @@ "key": "LeadIndicator", "label": "Lead Indicator", "description": "Show the lead-vehicle marker on the driving screen.", + "picker_description": "Shows the detected lead vehicle.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2081,6 +2158,7 @@ "key": "HideMaxSpeed", "label": "Hide Max Speed", "description": "Hide the max speed from the driving screen.", + "picker_description": "Hides the max-speed indicator from the driving screen.", "data_type": "bool", "ui_type": "toggle", "parent_key": "AdvancedCustomUI", @@ -2090,6 +2168,7 @@ "key": "HideAlerts", "label": "Hide Non-Critical Alerts", "description": "Hide non-critical alerts from the driving screen.", + "picker_description": "Hides non-critical alerts from the driving screen.", "data_type": "bool", "ui_type": "toggle", "parent_key": "AdvancedCustomUI", @@ -2099,6 +2178,7 @@ "key": "HideSteeringWheel", "label": "Hide Steering Wheel", "description": "Hide the steering-wheel button from the top-right of the driving screen.", + "picker_description": "Hides the steering-wheel button on the driving screen.", "data_type": "bool", "ui_type": "toggle", "parent_key": "AdvancedCustomUI", @@ -2108,6 +2188,7 @@ "key": "WheelSpeed", "label": "Use Wheel Speed", "description": "Use the vehicle's wheel speed instead of the cluster speed. This is purely a visual change and doesn't impact how openpilot drives!", + "picker_description": "Uses wheel speed instead of cluster speed for display.", "data_type": "bool", "ui_type": "toggle", "parent_key": "AdvancedCustomUI", @@ -2117,6 +2198,7 @@ "key": "HolidayThemes", "label": "Holiday Themes", "description": "Automatically apply seasonal theme assets during holiday windows. Turn this off to keep your normal theme year-round.", + "picker_description": "Applies seasonal themes automatically.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2125,6 +2207,7 @@ "key": "CustomUI", "label": "Driving Screen Widgets", "description": "Custom StarPilot widgets for the driving screen.", + "picker_description": "Enables StarPilot widgets on the driving screen.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -2134,6 +2217,7 @@ "key": "AccelerationPath", "label": "Acceleration Path", "description": "Color the driving path by planned acceleration and braking.", + "picker_description": "Colors the path by planned acceleration and braking.", "data_type": "bool", "ui_type": "toggle", "parent_key": "CustomUI", @@ -2143,6 +2227,7 @@ "key": "RainbowPath", "label": "Rainbow Road", "description": "Color the driving path like a rainbow road.\n\nOn the Python UIs this overrides acceleration and braking path coloring.", + "picker_description": "Colors the driving path like a rainbow.", "data_type": "bool", "ui_type": "toggle", "parent_key": "CustomUI", @@ -2152,6 +2237,7 @@ "key": "ShowModeStatusBanner", "label": "Show Mode Status Banner", "description": "Show a popup banner when the Python driving UIs switch into chill, experimental, switchback, or override mode.", + "picker_description": "Shows a banner when driving mode changes.", "data_type": "bool", "ui_type": "toggle", "parent_key": "CustomUI", @@ -2161,6 +2247,7 @@ "key": "AdjacentPath", "label": "Adjacent Lanes", "description": "Show the driving paths for the left and right lanes.", + "picker_description": "Shows driving paths for adjacent lanes.", "data_type": "bool", "ui_type": "toggle", "parent_key": "CustomUI", @@ -2170,6 +2257,7 @@ "key": "BlindSpotPath", "label": "Blind Spot Path", "description": "Show a red path when a vehicle is in that lane's blind spot.", + "picker_description": "Marks adjacent paths when a blind spot is detected.", "data_type": "bool", "ui_type": "toggle", "parent_key": "CustomUI", @@ -2179,6 +2267,7 @@ "key": "PIPPreviewEnabled", "label": "Enable PiP Side Preview", "description": "Show a temporary Picture-in-Picture bubble of the side window while the turn signal is on or a blind spot is detected.", + "picker_description": "Shows a side-camera preview on a turn signal or blind spot.", "data_type": "bool", "ui_type": "toggle", "parent_key": "CustomUI", @@ -2191,6 +2280,7 @@ "key": "PIPPreviewShowOnBlinker", "label": "Show on Turn Signal", "description": "Display the side preview bubble while the corresponding turn signal is engaged.", + "picker_description": "Shows the side preview while a turn signal is on.", "data_type": "bool", "ui_type": "toggle", "parent_key": "PIPPreviewEnabled", @@ -2200,6 +2290,7 @@ "key": "PIPPreviewShowOnBSM", "label": "Show on Blind Spot Detection", "description": "Display the side preview bubble when a vehicle is detected in the blind spot, whether from factory BSM, V-ASM, or both.", + "picker_description": "Shows the side preview when a blind spot is detected.", "data_type": "bool", "ui_type": "toggle", "parent_key": "PIPPreviewEnabled", @@ -2209,6 +2300,7 @@ "key": "Compass", "label": "Compass", "description": "Show the current driving direction with a simple on-screen compass.", + "picker_description": "Shows driving direction with an on-screen compass.", "data_type": "bool", "ui_type": "toggle", "parent_key": "CustomUI", @@ -2218,6 +2310,7 @@ "key": "OnroadDistanceButton", "label": "Driving Personality Button", "description": "Control and view the current driving personality via a driving screen widget.", + "picker_description": "Controls and shows driving personality from a widget.", "data_type": "bool", "ui_type": "toggle", "parent_key": "CustomUI", @@ -2227,6 +2320,7 @@ "key": "PedalsOnUI", "label": "Gas / Brake Pedal Indicators", "description": "On-screen gas and brake indicators.\n\nDynamic: Opacity changes according to how much openpilot is accelerating or braking\nStatic: Full when active, dim when not", + "picker_description": "Shows gas and brake indicators on the driving screen.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -2237,6 +2331,7 @@ "key": "DynamicPedalsOnUI", "label": "Dynamic", "description": "Fade the gas and brake indicators based on how much openpilot is accelerating or braking.", + "picker_description": "Fades pedal indicators with acceleration and braking.", "data_type": "bool", "ui_type": "toggle", "parent_key": "PedalsOnUI", @@ -2246,6 +2341,7 @@ "key": "StaticPedalsOnUI", "label": "Static", "description": "Show full-strength gas and brake indicators when active, and dim them when inactive.", + "picker_description": "Shows full pedal indicators when active; dims otherwise.", "data_type": "bool", "ui_type": "toggle", "parent_key": "PedalsOnUI", @@ -2255,6 +2351,7 @@ "key": "RotatingWheel", "label": "Rotating Steering Wheel", "description": "Rotate the driving screen wheel with the physical steering wheel.", + "picker_description": "Rotates the driving-screen wheel with the physical wheel.", "data_type": "bool", "ui_type": "toggle", "parent_key": "CustomUI", @@ -2264,6 +2361,7 @@ "key": "ModelUI", "label": "Model UI", "description": "Model visualizations for the driving path, lane lines, path edges, and road edges.", + "picker_description": "Shows model paths, lane lines, and road edges.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -2273,6 +2371,7 @@ "key": "DynamicPathWidth", "label": "Dynamic Path Width", "description": "Change the path width based on engagement.\n\nFully Engaged: 100%\nAlways On Lateral: 75%\nDisengaged: 50%", + "picker_description": "Changes path width with engagement state.", "data_type": "bool", "ui_type": "toggle", "parent_key": "ModelUI", @@ -2369,6 +2468,7 @@ "key": "NavigationUI", "label": "Navigation Widgets", "description": "Speed limits, and other navigation widgets.", + "picker_description": "Shows navigation and speed-limit widgets.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -2378,6 +2478,7 @@ "key": "ClearNavOnOffroad", "label": "Clear Route When Offroad", "description": "Clear the active navigation destination when the device goes offroad.", + "picker_description": "Clears the active route when the device goes offroad.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -2399,6 +2500,7 @@ "key": "RoadNameUI", "label": "Road Name", "description": "Display the road name at the bottom of the driving screen using data from \"OpenStreetMap (OSM)\".", + "picker_description": "Shows the current road name on the driving screen.", "data_type": "bool", "ui_type": "toggle", "parent_key": "NavigationUI", @@ -2408,6 +2510,7 @@ "key": "ShowSpeedLimits", "label": "Show Speed Limits", "description": "Show the current speed limit on the driving screen. The position depends on the device UI. Uses data from the car's dashboard (if supported) and \"OpenStreetMap (OSM)\".", + "picker_description": "Shows the current speed limit on the driving screen.", "data_type": "bool", "ui_type": "toggle", "parent_key": "NavigationUI", @@ -2417,6 +2520,7 @@ "key": "SLCMapboxFiller", "label": "Show Speed Limits from Mapbox", "description": "Use Mapbox speed-limit data when no other source is available.", + "picker_description": "Uses Mapbox speed limits as a fallback.", "data_type": "bool", "ui_type": "toggle", "parent_key": "NavigationUI", @@ -2426,6 +2530,7 @@ "key": "UseVienna", "label": "Use Vienna-Style Speed Signs", "description": "Show Vienna-style (EU) speed-limit signs instead of MUTCD (US).", + "picker_description": "Uses Vienna-style speed-limit signs.", "data_type": "bool", "ui_type": "toggle", "parent_key": "NavigationUI", @@ -2435,6 +2540,7 @@ "key": "QOLVisuals", "label": "Quality of Life", "description": "Miscellaneous visual changes to fine-tune how the driving screen looks.", + "picker_description": "Additional settings for fine-tuning the driving screen.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -2444,6 +2550,7 @@ "key": "CameraView", "label": "Camera View", "description": "Choose which camera feed the driving screen uses: Auto, Driver, Standard, or Wide.", + "picker_description": "Chooses the camera feed used by the driving screen.", "data_type": "int", "ui_type": "dropdown", "options": [ @@ -2471,6 +2578,7 @@ "key": "DriverCamera", "label": "Show Driver Camera When In Reverse", "description": "Show the driver camera feed when the vehicle is in reverse.", + "picker_description": "Shows the driver camera feed in reverse.", "data_type": "bool", "ui_type": "toggle", "parent_key": "QOLVisuals", @@ -2480,6 +2588,7 @@ "key": "StoppedTimer", "label": "Stopped Timer", "description": "Show a timer when stopped in place of the current speed to indicate how long the vehicle has been stopped.", + "picker_description": "Shows how long the vehicle has been stopped.", "data_type": "bool", "ui_type": "toggle", "parent_key": "QOLVisuals", @@ -2489,6 +2598,7 @@ "key": "StockConfidenceBallWidget", "label": "Stock Confidence Ball Widget", "description": "Use the original moving confidence ball on the small comma 4 UI instead of the fixed confidence, CEM/CCM, and personality sidebar.", + "picker_description": "Uses the stock moving confidence ball on comma 4.", "data_type": "bool", "ui_type": "toggle", "parent_key": "QOLVisuals", @@ -2498,6 +2608,7 @@ "key": "SimpleMode", "label": "Simple Mode", "description": "Use a more stock-like presentation by hiding most branch-specific UI, theme, sound, and alert styling. This only changes presentation and does not change driving behavior.", + "picker_description": "Uses a stock-like UI without changing driving behavior.", "data_type": "bool", "ui_type": "toggle", "parent_key": "QOLVisuals", @@ -2507,6 +2618,7 @@ "key": "HideChangingLanesBanner", "label": "Hide Changing Lanes Banner", "description": "Hide the 'Changing Lanes' banner from the driving screen.", + "picker_description": "Hides the Changing Lanes banner.", "data_type": "bool", "ui_type": "toggle", "parent_key": "AdvancedCustomUI", @@ -2516,6 +2628,7 @@ "key": "HideDistanceProfileBanner", "label": "Hide Distance Profile Banner", "description": "Hide the driving personality banner when changing distance profiles.", + "picker_description": "Hides the personality banner when distance changes.", "data_type": "bool", "ui_type": "toggle", "parent_key": "AdvancedCustomUI", @@ -2525,6 +2638,7 @@ "key": "HideDMIcon", "label": "Hide Driver Monitoring Icon", "description": "Hide the driver monitoring icon from the driving screen.", + "picker_description": "Hides the driver-monitoring icon.", "data_type": "bool", "ui_type": "toggle", "parent_key": "AdvancedCustomUI", @@ -2534,6 +2648,7 @@ "key": "HideTurningBanner", "label": "Hide Turning Banner", "description": "Hide the 'Turning Left/Right' banner from the driving screen.", + "picker_description": "Hides the Turning Left/Right banner.", "data_type": "bool", "ui_type": "toggle", "parent_key": "AdvancedCustomUI", @@ -2543,6 +2658,7 @@ "key": "DisableWideRoad", "label": "Disable Wide Road Camera", "description": "Only enable this if the wide camera is broken or for development!\n\nDisabling the wide camera may degrade driving performance and cause instability.\n\nRequires a reboot to take effect.", + "picker_description": "Disables the wide camera; may reduce driving performance.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "advanced" @@ -2557,6 +2673,7 @@ "key": "AlertVolumeControl", "label": "Alert Volume Controller", "description": "Set how loud each type of openpilot alert is to keep routine prompts from becoming distracting.", + "picker_description": "Sets the volume for each alert type.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -2674,6 +2791,7 @@ "key": "GoatScream", "label": "Goat Scream", "description": "Play the infamous \"Goat Scream\" when the steering controller reaches its limit. Based on the \"Turn Exceeds Steering Limit\" event.", + "picker_description": "Plays Goat Scream at the steering limit.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2682,6 +2800,7 @@ "key": "GoatScreamCriticalAlerts", "label": "Goat Scream Critical Alerts", "description": "Play the infamous \"Goat Scream\" for full-screen critical alerts that require immediate takeover.\n\nExamples include: \"TAKE CONTROL IMMEDIATELY\" and \"Stock AEB: Risk of Collision\".", + "picker_description": "Plays Goat Scream for critical takeover alerts.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2690,6 +2809,7 @@ "key": "GreenLightAlert", "label": "Green Light Alert", "description": "Play an alert when the model predicts a red light has turned green.\n\nDisclaimer: openpilot does not explicitly detect traffic lights. This alert is based on end-to-end model predictions from camera input and may trigger even when the light has not changed.", + "picker_description": "Alerts when the model predicts a light turned green.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2698,6 +2818,7 @@ "key": "LeadDepartingAlert", "label": "Lead Departing Alert", "description": "Play an alert when the lead vehicle departs from a stop.", + "picker_description": "Alerts when a stopped lead vehicle departs.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2706,6 +2827,7 @@ "key": "LoudBlindspotAlert", "label": "Loud \\\"Car Detected in Blindspot\\\" Alert", "description": "Play a louder alert if a vehicle is in the blind spot when attempting to change lanes. Based on the \"Car Detected in Blindspot\" event.", + "picker_description": "Plays a louder alert for blind-spot lane changes.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2714,6 +2836,7 @@ "key": "LoudBlindspotAlertWhenDisengaged", "label": "Blind Spot Alert When Disengaged", "description": "Play the loud blind spot alert while lateral control is off or paused. Useful when steering pauses on turn signal, since the lane-change state machine is inactive then.", + "picker_description": "Plays the blind-spot alert when steering is paused.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2722,6 +2845,7 @@ "key": "SpeedLimitChangedAlert", "label": "Speed Limit Changed Alert", "description": "Play an alert when the posted speed limit changes.", + "picker_description": "Alerts when the posted speed limit changes.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2754,6 +2878,7 @@ "key": "RivianAngleControl", "label": "Rivian Angle Steering", "description": "Use the Extreme harness angle channel with cooperative torque fallback.", + "picker_description": "Uses the Extreme harness angle channel with torque fallback.", "data_type": "bool", "ui_type": "toggle", "requires_capability": "HasRivianAngleHarness", @@ -2763,6 +2888,7 @@ "key": "ForceFingerprint", "label": "Disable Automatic Fingerprint Detection", "description": "Force the selected fingerprint and prevent it from changing automatically.", + "picker_description": "Locks the selected fingerprint; disables auto-detection.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2771,6 +2897,7 @@ "key": "IsRHD", "label": "Right Hand Driving", "description": "Use right-hand-drive driver monitoring. This follows the auto-detected side until changed manually.", + "picker_description": "Uses right-hand-drive driver monitoring.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2779,6 +2906,7 @@ "key": "DisableOpenpilotLongitudinal", "label": "Disable openpilot Longitudinal", "description": "Use the vehicle's stock longitudinal control instead of openpilot longitudinal control. This can stop openpilot from sending cruise-control acceleration and braking commands on supported vehicles.", + "picker_description": "Uses stock longitudinal control instead of openpilot.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2787,6 +2915,7 @@ "key": "TeslaCoopSteering", "label": "Tesla Model 3 Cooperative Steering", "description": "For Tesla Model 3 only. Converts light driver steering input into bounded steering-wheel rotation while lateral control remains active. Change while parked.", + "picker_description": "Adds cooperative steering for Tesla Model 3.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2795,6 +2924,7 @@ "key": "NAPRadarEnabled", "label": "Tesla Pre-AP Bosch Radar", "description": "Use the stock Bosch radar path on pre-Autopilot Teslas.", + "picker_description": "Uses stock Bosch radar on pre-Autopilot Teslas.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -2804,6 +2934,7 @@ "key": "NAPRadarBehindNosecone", "label": "Radar Behind Nosecone", "description": "Enable this if the Bosch radar is mounted behind the nosecone instead of being exposed.", + "picker_description": "Enables radar mounted behind the nosecone.", "data_type": "bool", "ui_type": "toggle", "parent_key": "NAPRadarEnabled", @@ -2826,6 +2957,7 @@ "key": "NAPPedalEnabled", "label": "Tesla Pre-AP comma Pedal Longitudinal", "description": "Use a comma pedal interceptor for acceleration and regenerative braking on pre-Autopilot Teslas.", + "picker_description": "Uses a comma pedal for acceleration on pre-Autopilot Teslas.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -2835,6 +2967,7 @@ "key": "NAPPedalCanBus", "label": "Pedal CAN Bus", "description": "Select the CAN bus used by the Tesla pedal interceptor.", + "picker_description": "Chooses the CAN bus for the Tesla pedal interceptor.", "data_type": "int", "ui_type": "dropdown", "parent_key": "NAPPedalEnabled", @@ -2854,7 +2987,7 @@ "key": "NAPAdaptiveAccel", "label": "Adaptive Acceleration Limit", "description": "Reduce maximum acceleration as you close in on a lead vehicle when Tesla pedal-long is active.", - "picker_description": "Reduces maximum acceleration near a lead vehicle when Tesla pedal-long is active.", + "picker_description": "Limits acceleration near a lead on Tesla pedal-long.", "data_type": "bool", "ui_type": "toggle", "parent_key": "NAPPedalEnabled", @@ -2864,6 +2997,7 @@ "key": "NAPPedalCalibDone", "label": "Pedal Calibration Complete", "description": "Enable only after entering valid Tesla pedal calibration values. Pedal-long stays inactive until this is on.", + "picker_description": "Enables Tesla pedal-long after calibration.", "data_type": "bool", "ui_type": "toggle", "parent_key": "NAPPedalEnabled", @@ -2899,6 +3033,7 @@ "key": "GMPedalLongitudinal", "label": "Use Pedal For Longitudinal", "description": "Use the pedal interceptor for full longitudinal control on supported GM vehicles.", + "picker_description": "Uses the pedal interceptor for GM longitudinal control.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2907,6 +3042,7 @@ "key": "GMDashSpoofOffsets", "label": "Apply Offsets To Dash Spoof", "description": "On GM pedal-long cars, add the configured set-speed offset to the spoofed dash set speed so it matches the on-screen set speed.", + "picker_description": "Applies GM pedal-long set-speed offsets to the dash.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2915,6 +3051,7 @@ "key": "IgnoreIgnitionLine", "label": "Use CAN Ignition Only", "description": "Use Panda firmware that ignores the physical ignition line and starts from CAN ignition only.\n\nRequires a Panda flash. Use this only on vehicles with reliable CAN ignition when the harness box reports false ignition.", + "picker_description": "Uses CAN ignition only; requires a Panda flash.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2923,6 +3060,7 @@ "key": "LongPitch", "label": "Smooth Pedal Response on Hills", "description": "Smoothen acceleration and braking when driving downhill/uphill.", + "picker_description": "Smooths pedal response on hills.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2931,6 +3069,7 @@ "key": "RemoteStartBootsComma", "label": "Remote Start Boots Comma (GM)", "description": "Use the remote-start GM panda firmware at boot.\n\nRequired for GM remote-start startup signal behavior.", + "picker_description": "Uses GM remote-start firmware at boot.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2939,6 +3078,7 @@ "key": "HKGRemoteStartBootsComma", "label": "Remote Start Boots Comma (HKG)", "description": "Use the remote-climate Hyundai/Kia/Genesis CAN-FD panda firmware at boot.\n\nRequired for EV remote-climate startup signal behavior.", + "picker_description": "Uses Hyundai/Kia/Genesis remote-climate firmware at boot.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2947,6 +3087,7 @@ "key": "VoltSNG", "label": "Stop-and-Go Hack", "description": "Force stop-and-go on the 2017 Chevy Volt.", + "picker_description": "Adds stop-and-go to the 2017 Chevy Volt.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2955,6 +3096,7 @@ "key": "GMAutoHold", "label": "Volt Auto Hold", "description": "Hold the car at a stop on supported non-CC-only Chevy Volts until the gas pedal is pressed.", + "picker_description": "Holds Chevy Volt brakes until the gas pedal is pressed.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2963,6 +3105,7 @@ "key": "VoltOnePedalMode", "label": "Volt One Pedal Mode", "description": "On supported Chevy Volts in L / single-pedal mode, blend friction braking so the car can slow to a stop and hold without using the brake pedal.", + "picker_description": "Adds blended braking for one-pedal Chevy Volt driving.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2971,6 +3114,7 @@ "key": "JeepBrakeHold", "label": "Jeep Brake Hold", "description": "Hold the brakes after Jeep ACC times out at a stop, then send resume when traffic moves again.", + "picker_description": "Holds Jeep brakes after ACC stops, then resumes in traffic.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2979,6 +3123,7 @@ "key": "SubaruSNG", "label": "Stop and Go", "description": "Stop and go for supported Subaru vehicles.", + "picker_description": "Enables stop-and-go on supported Subarus.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -2987,6 +3132,7 @@ "key": "SubaruSNGManualParkingBrake", "label": "Stop and Go for Manual Parking Brake", "description": "Use the manual-parking-brake Subaru stop-and-go strategy. Enable this for supported Subaru Global models with a manual handbrake. Keep it off on models with an electric parking brake.", + "picker_description": "Enables manual-handbrake stop-and-go on supported Subarus.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -3006,6 +3152,7 @@ "key": "SNGHack", "label": "Stop-and-Go Hack", "description": "Force stop-and-go on Lexus/Toyota vehicles without stock stop-and-go functionality.", + "picker_description": "Adds stop-and-go to Lexus/Toyota vehicles without it.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -3014,6 +3161,7 @@ "key": "ToyotaAutoHold", "label": "Toyota Auto Hold", "description": "Hold the brakes at a stop on supported Toyota/Lexus TSS2 vehicles when cruise main is available and cruise is not active.", + "picker_description": "Holds Toyota/Lexus brakes at stops when cruise is available.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -3022,6 +3170,7 @@ "key": "RemapCancelToDistance", "label": "Remap Cancel Button", "description": "On pedal-interceptor Bolts, treat the steering-wheel CANCEL button as an extra mappable button.", + "picker_description": "Makes the Bolt CANCEL button available for remapping.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -3036,6 +3185,7 @@ "key": "RemapCancelToDistance", "label": "Remap Cancel Button", "description": "On pedal-interceptor Bolts, treat the steering-wheel CANCEL button as an extra mappable button.", + "picker_description": "Makes the Bolt CANCEL button available for remapping.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -3044,6 +3194,7 @@ "key": "NostalgiaMode", "label": "Nostalgia Mode", "description": "Use the left paddle to pause openpilot acceleration and braking while Always On Lateral stays active on supported Hyundai CAN-FD cars.", + "picker_description": "Adds Hyundai CAN-FD left-paddle acceleration/braking pause.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "simple" @@ -3915,6 +4066,7 @@ "key": "DeviceManagement", "label": "Device Settings", "description": "Settings that control how the device runs, powers off, and manages driving data.", + "picker_description": "Controls device power, data, and recording.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -3936,6 +4088,7 @@ "key": "NoLogging", "label": "Disable Logging", "description": "WARNING: This will prevent your drives from being recorded and all data will be unobtainable!\n\nPrevent the device from saving driving data.", + "picker_description": "Prevents drive logging; leave off unless testing.", "data_type": "bool", "ui_type": "toggle", "parent_key": "DeviceManagement", @@ -3945,6 +4098,7 @@ "key": "NoUploads", "label": "Disable Uploads", "description": "WARNING: This will prevent your drives from being uploaded to comma connect which will impact debugging and official support from comma!\n\nPrevent the device from uploading driving data.", + "picker_description": "Prevents drives from uploading to comma connect.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -3955,6 +4109,7 @@ "key": "DisableOnroadUploads", "label": "Disable Onroad Uploads", "description": "When \"Disable Uploads\" is enabled, allow uploads only while parked (offroad).", + "picker_description": "Disables uploads while driving; allows them while parked.", "data_type": "bool", "ui_type": "toggle", "parent_key": "NoUploads", @@ -3964,7 +4119,7 @@ "key": "AlwaysAllowUploads", "label": "Always Allow Uploads", "description": "Override upload blocks and always keep uploader enabled. Advanced use only.", - "picker_description": "Advanced: keep uploader enabled even when upload blocks are active.", + "picker_description": "Keeps uploads enabled despite upload blocks.", "data_type": "bool", "ui_type": "toggle", "parent_key": "NoUploads", @@ -3974,6 +4129,7 @@ "key": "HigherBitrate", "label": "High-Quality Recording", "description": "Save drive footage in higher video quality.", + "picker_description": "Saves drive footage at higher quality.", "data_type": "bool", "ui_type": "toggle", "parent_key": "DeviceManagement", @@ -3983,6 +4139,7 @@ "key": "GsmMetered", "label": "Cellular Metered", "description": "Prevent large uploads on cellular. Turn this off to allow full/unfiltered uploads over mobile data.", + "picker_description": "Limits uploads over cellular data.", "data_type": "bool", "ui_type": "toggle", "parent_key": "DeviceManagement", @@ -4004,6 +4161,7 @@ "key": "IncreaseThermalLimits", "label": "Raise Temperature Limits", "description": "WARNING: Running at higher temperatures may damage your device!\n\nAllow the device to run at higher temperatures before throttling or shutting down. Use only if you understand the risks!", + "picker_description": "Allows higher temperatures; may damage the device.", "data_type": "bool", "ui_type": "toggle", "parent_key": "DeviceManagement", @@ -4013,6 +4171,7 @@ "key": "UseKonikServer", "label": "Use Konik Server", "description": "Upload driving data to \"stable.konik.ai\" instead of \"connect.comma.ai\".", + "picker_description": "Uploads driving data to the Konik server.", "data_type": "bool", "ui_type": "toggle", "parent_key": "DeviceManagement", @@ -4022,6 +4181,7 @@ "key": "ScreenManagement", "label": "Screen Settings", "description": "Settings that control screen brightness, screen recording, and timeout duration.", + "picker_description": "Controls screen brightness, recording, and timeout.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -4051,6 +4211,7 @@ "key": "ScreenRecorder", "label": "Screen Recorder", "description": "Add a button to the driving screen to record the display.", + "picker_description": "Adds a driving-screen button to record the display.", "data_type": "bool", "ui_type": "toggle", "parent_key": "ScreenManagement", @@ -4084,6 +4245,7 @@ "key": "StandbyMode", "label": "Standby Mode", "description": "Turn the screen off while driving and automatically wake it up for alerts or engagement state changes.", + "picker_description": "Turns the screen off while driving and wakes for alerts.", "data_type": "bool", "ui_type": "toggle", "parent_key": "ScreenManagement", @@ -4099,6 +4261,7 @@ "key": "DeveloperUI", "label": "Developer UI", "description": "Detailed information about openpilot's internal operations.", + "picker_description": "Enables developer controls and diagnostics.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -4134,6 +4297,7 @@ "key": "DeveloperMetrics", "label": "Developer Metrics", "description": "Performance data, sensor readings, and system metrics for debugging and optimizing openpilot.", + "picker_description": "Shows performance and sensor metrics for debugging.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -4144,6 +4308,7 @@ "key": "FPSCounter", "label": "FPS Display", "description": "Show the frames per second at the bottom of the driving screen.", + "picker_description": "Shows frames per second on the driving screen.", "data_type": "bool", "ui_type": "toggle", "parent_key": "DeveloperMetrics", @@ -4153,6 +4318,7 @@ "key": "ShowCPU", "label": "CPU Metrics", "description": "Show CPU usage in the driving screen developer metrics.", + "picker_description": "Shows CPU usage in developer metrics.", "data_type": "bool", "ui_type": "toggle", "parent_key": "DeveloperMetrics", @@ -4162,6 +4328,7 @@ "key": "ShowGPU", "label": "GPU Metrics", "description": "Show GPU usage in the driving screen developer metrics.", + "picker_description": "Shows GPU usage in developer metrics.", "data_type": "bool", "ui_type": "toggle", "parent_key": "DeveloperMetrics", @@ -4171,6 +4338,7 @@ "key": "NumericalTemp", "label": "Temperature Metrics", "description": "Show numerical device temperature in the driving screen developer metrics.", + "picker_description": "Shows device temperature in developer metrics.", "data_type": "bool", "ui_type": "toggle", "parent_key": "DeveloperMetrics", @@ -4180,6 +4348,7 @@ "key": "ShowMemoryUsage", "label": "RAM Metrics", "description": "Show memory usage in the driving screen developer metrics.", + "picker_description": "Shows memory usage in developer metrics.", "data_type": "bool", "ui_type": "toggle", "parent_key": "DeveloperMetrics", @@ -4189,6 +4358,7 @@ "key": "GalaxyDeveloperMode", "label": "Enable Developer Mode", "description": "Show advanced settings in Galaxy.", + "picker_description": "Shows advanced settings in Galaxy.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -4198,6 +4368,7 @@ "key": "AlphaLongitudinalEnabled", "label": "openpilot Longitudinal Control (Alpha)", "description": "Enable openpilot longitudinal control for vehicles that support it. This replaces the vehicle's stock ACC and may disable automatic emergency braking. Changing this setting restarts the driving stack.", + "picker_description": "Uses openpilot longitudinal control; may disable stock AEB.", "data_type": "bool", "ui_type": "toggle", "parent_key": "GalaxyDeveloperMode", @@ -4209,6 +4380,7 @@ "key": "ForceOffroad", "label": "Force Offroad", "description": "Temporarily switch the device to the offroad state for remote updates when the vehicle is parked. This control is only available while the vehicle reports Park.", + "picker_description": "Forces offroad state while parked for remote updates.", "data_type": "bool", "ui_type": "toggle", "parent_key": "GalaxyDeveloperMode", @@ -4220,6 +4392,7 @@ "key": "RedneckCruise", "label": "Redneck Cruise", "description": "On supported Hyundai stock-cruise cars, use RES/SET button presses to match the cluster set speed to StarPilot's target.", + "picker_description": "Matches StarPilot's target speed with Hyundai RES/SET.", "data_type": "bool", "ui_type": "toggle", "parent_key": "GalaxyDeveloperMode", @@ -4241,6 +4414,7 @@ "key": "LaneCentering", "label": "Lane Centering", "description": "Experimentally bias the model command toward the detected lane center. Requires two confident lane lines and remains subject to normal curvature and jerk limits.", + "picker_description": "Biases steering toward the detected lane center.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true, @@ -4263,6 +4437,7 @@ "key": "LaneCenteringPauseOnSignal", "label": "Pause Lane Centering On Turn Signal", "description": "Fade lane-centering correction out when a turn signal is active so it does not fight a lane change or turn.", + "picker_description": "Fades lane-centering correction during turn signals.", "data_type": "bool", "ui_type": "toggle", "parent_key": "LaneCentering", @@ -4332,7 +4507,7 @@ "key": "AllowImpossibleAcceleration", "label": "Allow Impossible Acceleration", "description": "WARNING: This suppresses openpilot's excessive longitudinal actuation diagnostic when measured acceleration looks impossible for the requested gas/brake command.\n\nLeave this OFF unless you are intentionally testing edge cases like shifting to neutral and understand that it can hide a real actuation problem.", - "picker_description": "WARNING: Hides the impossible-acceleration diagnostic. Leave OFF unless testing edge cases.", + "picker_description": "Hides an acceleration diagnostic; leave off unless testing.", "data_type": "bool", "ui_type": "toggle", "settings_tier": "advanced"