trcc-linux 9.7.9__tar.gz → 9.7.10__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/PKG-INFO +1 -1
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/pyproject.toml +1 -1
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/__version__.py +1 -1
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/system/_hotplug.py +7 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/system/_udev.py +20 -4
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/app.py +16 -3
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/commands/_helpers.py +21 -5
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/commands/device.py +3 -1
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/commands/led.py +6 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/commands/theme.py +165 -59
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/results.py +14 -1
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/_clock.py +17 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/overlay.py +12 -7
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/theme.py +29 -6
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/cli/display.py +15 -1
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/cli/main.py +12 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/_ui_state.py +7 -21
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/lcd_handler.py +28 -21
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/trcc_app.py +20 -11
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/uc_theme_local.py +37 -93
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_architecture_boundaries.py +122 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_cli_commands.py +33 -3
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_orientation_reload.py +42 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_overlay_clock.py +27 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_theme_persistence.py +287 -40
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_udev.py +32 -6
- trcc_linux-9.7.10/tests/ui/presentation/test_theme_local_binding.py +59 -0
- trcc_linux-9.7.9/tests/ui/presentation/test_theme_local_binding.py +0 -31
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/.gitignore +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/LICENSE +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/README.md +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/__main__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/_boot.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/_entry.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/device/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/device/_pyusb_find.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/device/bulk_lcd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/device/hid_lcd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/device/led.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/device/ly_lcd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/device/scsi_lcd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/device/transport.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/device/usb_bot_scsi.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/diagnostics/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/diagnostics/adapter.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/diagnostics/debug_report.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/diagnostics/doctor.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/diagnostics/health.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/infra/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/infra/logging.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/infra/network.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/infra/send_scheduler.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/infra/sysinfo_config.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/render/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/render/qt.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/repo/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/repo/data_install.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/repo/github_releases.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/repo/http.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/screencast/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/screencast/qt.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/sensors/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/sensors/_hwinfo.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/sensors/_lhm.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/sensors/_macos_hid.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/sensors/_msacpi.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/sensors/_powermetrics.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/sensors/_smc.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/sensors/_sysctl.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/sensors/_wmi_gpu.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/sensors/aggregator.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/sensors/bsd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/sensors/chain.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/sensors/gpu_detect.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/sensors/hwmon.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/sensors/macos.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/sensors/nvml.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/sensors/psutil_sources.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/sensors/windows.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/system/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/system/_autostart.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/system/_devd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/system/_elevate.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/system/_imc_timings.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/system/_macos_setup.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/system/_selinux.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/system/_windows_wmi.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/system/_winusb.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/system/bsd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/system/linux.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/system/macos.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/system/spd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/system/windows.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/theme/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/adapters/theme/cloud.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/assets/LibreHardwareMonitor.config +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/assets/com.github.lexonight1.trcc.policy +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/assets/fonts/MSYH.TTC +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/assets/fonts/MSYHBD.TTC +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/assets/fonts/README.md +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/assets/icons/app.ico +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/assets/icons/trcc.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/assets/icons/trcc_128x128.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/assets/icons/trcc_16x16.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/assets/icons/trcc_24x24.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/assets/icons/trcc_256x256.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/assets/icons/trcc_32x32.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/assets/icons/trcc_48x48.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/assets/icons/trcc_64x64.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/assets/trcc-imc +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/assets/trcc-linux.desktop +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/assets/trcc-quirk-fix.service +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/_colors.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/_safe.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/_version.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/commands/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/commands/_base.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/commands/system.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/device_recovery.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/diagnostics.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/errors.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/events.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/i18n.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/led_models.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/led_protocol.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/models.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/ports.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/protocol.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/registry.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/core/variants.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/daemon.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/data/trcc_usb.te +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ipc.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/proxy.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/_ansi.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/_dc.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/audio.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/cloud_theme.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/data_install.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/device_sender.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/display.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/first_run.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/led_animation_loop.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/led_effects.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/led_segment.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/media.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/metrics_loop.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/metrics_personalize.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/migration.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/quickstart.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/settings.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/slideshow.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/video_cache.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/services/video_export.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/_errors.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/api/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/api/_shared.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/api/config.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/api/devices.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/api/display.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/api/led.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/api/main.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/api/schemas.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/api/system.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/api/theme.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/api/trcc.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/cli/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/cli/_ctx.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/cli/config.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/cli/device.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/cli/led.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/cli/shell.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/cli/system.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/cli/theme.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/240240.gif +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/240320.gif +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/320240.gif +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/320320.gif +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1AK120 Digital.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1AK120 Digitala.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1AK120_Digital.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1AK120_Digitala.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1AS120 VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1AS120 VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1AS120_VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1AS120_VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1AX120 DIGITAL.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1AX120 DIGITALa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1AX120_DIGITAL.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1AX120_DIGITALa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1BA120 VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1BA120 VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1BA120_VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1BA120_VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1CORE VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1CORE VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1CORE_VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1CORE_VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1CZ1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1CZ1a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1CZ2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1CZ2a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1CZTV.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1CZTVa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1ELITE VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1ELITE VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1ELITE_VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1ELITE_VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PRO.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PROa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PRO.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PROa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN VISION V2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN VISION V2a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PRO.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PROa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SE.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SEa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN WARFRAMEa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PRO.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PROa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PRO.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PROa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PRO.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PROa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SE.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SEa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAMEa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1GRAND VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1GRAND VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1GRAND_VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1GRAND_VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITAL.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITALa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1HYPER VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1HYPER VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1HYPER_VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1HYPER_VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1KVMALEDC6.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1KVMALEDC6a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC10.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC10a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC13.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC13a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC15.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC15a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC1a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC2JD.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC2JDa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC2a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC3a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC5.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC5a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC7.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC7a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC8.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC8a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC9.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LC9a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LD10.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LD10a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LD11.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LD11a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LD6.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LD6a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LD7.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LD7a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LD8.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LD8a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LD9.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LD9a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF014.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF014a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF10.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF10V.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF10Va.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF10a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF11.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF11a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF12.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF12a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF13.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF13a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF14.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF14a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF15.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF15a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF16.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF167.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF16a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF17a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF18.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF18a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF19.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF19a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF20.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF20a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF21.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF21a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF22.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF22a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF25.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF25a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF8.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LF8a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LM16SE.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LM16SEa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LM19SE.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LM19SEa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LM22.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LM22a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LM24.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LM24a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LM26.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LM26a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LM27.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LM27a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LM30.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1LM30a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1Mjolnir VISION PRO.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1Mjolnir VISION PROa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1Mjolnir VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1Mjolnir VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1Mjolnir_VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PRO.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PROa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1Mjolnir_VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1PA120 DIGITAL.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1PA120 DIGITALa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1PA120_DIGITAL.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1PA120_DIGITALa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1PC1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1PC1a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1RK120 DIGITAL.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1RK120 DIGITALa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1RK120_DIGITAL.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1RK120_DIGITALa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1RP130 VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1RP130 VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1RP130_VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1RP130_VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1RX1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1RX1a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1Stream Vision.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1Stream Visiona.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1Stream_Vision.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/A1Stream_Visiona.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/about_dropdown.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/about_dropdown_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/about_dropdown_select.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/about_update.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/about_update_overlay.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_about_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_brightness_0.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_brightness_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_brightness_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_brightness_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_export.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_form_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_help.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_import.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_main_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_power.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_power_hover.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_save.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_sysinfo_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_tab_cloud.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_tab_cloud_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_tab_local.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_tab_local_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_tab_mask.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_tab_mask_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_tab_mask_lower.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_tab_settings.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_tab_settings_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_theme_base_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_theme_gallery_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/app_theme_settings_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/carousel_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/carousel_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/carousel_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/carousel_4.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/carousel_5.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/carousel_6.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/carousel_btn.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/carousel_btn_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/carousel_select_frame.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/color_panel_eyedropper.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/color_panel_picker.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/color_panel_selector_ring.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/color_panel_slider_thumb.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/color_wheel_knob.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/color_wheel_knob_0.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/color_wheel_toggle_hover.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/color_wheel_toggle_off.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/color_wheel_toggle_on.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_12h.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_24h.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_border.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_border_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_crop.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_date_dm.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_date_dmy.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_date_md.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_date_ymd.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_digit_font.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_fit_height.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_fit_width.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_function.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_function_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_icon.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_icon_gif.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_icon_image.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_icon_livestream.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_icon_mask.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_icon_network.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_icon_video.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_m1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_m1_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_m2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_m2_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_m3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_m3_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_m4.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_m4_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_m5.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_m5_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_m6.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_m6_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_minus.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_network_btn.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_plus.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_rotate.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_slider_thumb.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_text_font.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_unit_c.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/display_mode_unit_f.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/frozen_warframe_ultra.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/frozen_warframe_ultra_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_110x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_116x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_1280x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_160x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_180x400.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_180x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_240x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_240x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_240x400.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_240x427.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_270x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_320x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_320x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_320x86.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_360x360.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_400x180.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_400x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_427x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_480x110.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_480x116.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_480x160.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_480x180.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_480x270.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_480x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/image_cut_86x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_aggregate.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_aggregate_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_bg_cz1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_bg_kvma.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_bg_lc1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_bg_lc2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_bg_lf10.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_bg_lf11.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_bg_lf12.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_bg_lf13.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_bg_lf15.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_bg_lf8.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_bg_rgb_lf13.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_bg_segment.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_bg_segment_4zone.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_dropdown.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_dropdown_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_dropdown_highlight.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_dropdown_highlight_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_dropdown_menu.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_dropdown_menu_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_external.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_external_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_helmet_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_helmet_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_helmet_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_helmet_4.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_helmet_5.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_meter_bar_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_meter_bar_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_meter_bar_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_meter_bar_4.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_meter_bar_5.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_meter_bar_6.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_meter_bg_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_meter_bg_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_meter_bg_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_meter_bg_4.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_meter_bg_5.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_meter_bg_5_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_meter_bg_6.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_10.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_10_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_11.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_11_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_12.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_12_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_1_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_2_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_3_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_4.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_4_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_5.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_5_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_6.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_6_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_7.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_7_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_8.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_8_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_9.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_mode_9_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_power.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_power_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preset_blue.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preset_cyan.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preset_green.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preset_orange.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preset_purple.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preset_red.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preset_white.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preset_yellow.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preview_ak120.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preview_ax120.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preview_cz1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preview_frozen_horizon_pro.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preview_frozen_magic_pro.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preview_lc1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preview_lc2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preview_lf10.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preview_lf11.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preview_lf12.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preview_lf13.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preview_lf15.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preview_lf8.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preview_pa120.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_preview_pa120_space.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_show_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_show_1_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_show_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_show_2_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_show_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_show_3_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_slider_thumb.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_btn_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_btn_1_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_btn_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_btn_2_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_btn_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_btn_3_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_btn_4.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_btn_4_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_mode_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_mode_1_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_mode_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_mode_2_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_mode_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_mode_3_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_mode_4.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_mode_4_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_mode_5.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_mode_5_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_mode_6.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/led_zone_mode_6_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/overlay_label_sysinfo.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_en.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_tc.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/overlay_label_sysinfo_en.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/overlay_label_sysinfo_tc.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/overlay_label_text.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/overlay_label_text_en.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/overlay_label_text_tc.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/overlay_label_time.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/overlay_label_time_en.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/overlay_label_time_tc.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/overlay_mode_date.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/overlay_mode_hardware.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/overlay_mode_text.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/overlay_mode_time.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/overlay_mode_weekday.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/overlay_select.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_110x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_116x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_160x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_180x400.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_180x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_240x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_240x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_240x400.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_240x427.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_270x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_320x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_320x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_320x320_round.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_320x86.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_360x360_round.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_400x180.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_400x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_427x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_480x110.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_480x116.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_480x160.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_480x180.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_480x270.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_480x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_480x480_round.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_86x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_animation.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_btn.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_btn_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_pause.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_play.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_player_control_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_popup_1280x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_popup_1920x440.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_popup_1920x462.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_popup_320x960.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_popup_360x800.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_popup_440x1920.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_popup_462x1920.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_popup_480x1280.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_popup_480x800.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_popup_480x854.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_popup_540x960.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_popup_800x360.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_popup_800x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_popup_854x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_popup_960x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_popup_960x540.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_res_240x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_res_240x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_res_320x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_res_320x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_round_mask_320x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_round_mask_360x360.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_round_mask_480x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_video_controls_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/preview_video_controls_bg_alt.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/screen_led_deco_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/screen_led_deco_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/screen_led_deco_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/screen_led_deco_4.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/screen_led_deco_cz1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/secondary_screen_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/secondary_screen_bg_d.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/secondary_screen_bg_e.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/secondary_screen_bg_en.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/secondary_screen_bg_f.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/secondary_screen_bg_h.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/secondary_screen_bg_p.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/secondary_screen_bg_r.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/secondary_screen_bg_tc.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/secondary_screen_bg_x.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_add_content.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_add_content_btn.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_add_content_mask.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_add_date.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_add_date_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_add_icon.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_add_link_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_add_text.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_add_text_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_add_time.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_add_time_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_add_weekday.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_add_weekday_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_anim_sync.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_background.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_brightness.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_keyboard_sync_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_keyboard_sync_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_keyboard_sync_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_module.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_overlay.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_overlay_add_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_overlay_color_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_overlay_grid_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_overlay_table_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/settings_params.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_brightness_bar.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_checkbox_off.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_checkbox_on.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_clip_a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_clip_b.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_close.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_close_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_dropdown.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_dropdown_bg_2x.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_dropdown_bg_4x.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_dropdown_highlight.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_loading_animation.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_progress_bar.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_round_close.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_round_confirm.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_scrollbar_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_scrollbar_thumb.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_shortcut_size_slider.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_thread_multi.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_thread_single.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_toggle_off.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shared_toggle_on.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shortcuts_panel.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shortcuts_panel_d.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shortcuts_panel_e.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shortcuts_panel_en.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shortcuts_panel_f.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shortcuts_panel_p.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shortcuts_panel_r.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shortcuts_panel_tc.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/shortcuts_panel_x.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sidebar_about.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sidebar_about_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sidebar_about_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sidebar_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sidebar_no_device.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sidebar_sensor.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sidebar_sensor_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sidebar_splash.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sidebar_sysinfo_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/split_overlay_a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/split_overlay_a_180.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/split_overlay_a_270.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/split_overlay_a_90.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/split_overlay_b.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/split_overlay_b_180.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/split_overlay_b_270.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/split_overlay_b_90.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/split_overlay_c.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/split_overlay_c_180.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/split_overlay_c_270.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/split_overlay_c_90.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sysinfo_add_group.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sysinfo_cpu.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sysinfo_custom.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sysinfo_dram.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sysinfo_fan.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sysinfo_gpu.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sysinfo_hdd.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sysinfo_net.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sysinfo_next_page.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sysinfo_prev_page.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sysinfo_scrollbar.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/sysinfo_select.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_browser_filter.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_browser_filter_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_cloud_label.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_cloud_label_d.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_cloud_label_e.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_cloud_label_en.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_cloud_label_f.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_cloud_label_h.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_cloud_label_p.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_cloud_label_r.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_cloud_label_tc.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_cloud_label_x.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_local_carousel.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_local_carousel_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_local_export_all.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_local_multi_select.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_local_multi_select_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_local_select_frame.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_local_select_frame_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/theme_mask_label.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_110x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_116x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_1280x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_160x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_180x400.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_180x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_240x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_240x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_240x400.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_240x427.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_270x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_320x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_320x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_320x86.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_360x360.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_400x180.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_400x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_427x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_480x110.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_480x116.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_480x160.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_480x180.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_480x270.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_480x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_86x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets/video_cut_bg_alt.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/assets.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/base.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/base_handler.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/bus_bridge.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/color_and_add_panels.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/constants.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/display_mode_panels.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/eyedropper.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/gpu_reader_prompt.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/led_handler.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/overlay_element.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/overlay_grid.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/pipewire_capture.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/screen_capture.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/splash.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/uc_about.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/uc_activity_sidebar.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/uc_color_wheel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/uc_device.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/uc_image_cut.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/uc_info_module.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/uc_led_control.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/uc_preview.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/uc_screen_led.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/uc_sensor_picker.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/uc_system_info.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/uc_theme_mask.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/uc_theme_setting.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/uc_theme_web.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/gui/uc_video_cut.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/presentation/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/presentation/device_presentation.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/presentation/lcd_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/presentation/lcd_presentation_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/presentation/led_display.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/presentation/led_metrics_format.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/presentation/led_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/presentation/led_zone_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/presentation/overlay_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/presentation/overlay_serialization.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/presentation/preview_geometry.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/presentation/sensor_display.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/presentation/slideshow_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/presentation/theme_directories.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qapp.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/app.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/assets.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/base.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/bus_bridge.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/color_wheel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/device_picker.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/eyedropper.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/image_crop.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/about_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/cloud_theme_browser.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/configuration_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/device_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/display_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/led/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/led/_base.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/led/advanced_tab.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/led/color_tab.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/led/mode_tab.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/led/segment_tab.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/led/zone_tab.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/led_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/local_theme_browser.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/mask_browser.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/overlay_editor.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/preview_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/screencast_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/sidebar.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/status_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/panels/system_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/region_overlay.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/screen_overlay.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/sensor_picker.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/splash.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/src/trcc/ui/qtgui/video_crop.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/adapters/system/test_elevate.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/adapters/system/test_imc_timings.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/adapters/system/test_linux_imc.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/adapters/system/test_spd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/adapters/system/test_windows_mem_disk.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/adapters/system/test_windows_permissions.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/adapters/system/test_windows_wmi_seam.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/conftest.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/mock_platform.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_api_routes.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_app_senders.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_autostart.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_autostart_macos.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_autostart_windows.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_backend_finish.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_boot_animation_command.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_boot_animation_device.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_bulk_lcd_geometry.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_clock.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_cloud_themes.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_commands.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_connect_failure_hints.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_connection_issues.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_control_center.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_daemon.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_data_install.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_dc_codec.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_dc_reader.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_device_catalog_smoke.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_device_recovery.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_device_sender.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_device_surface_matrix.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_diagnostics.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_display_rotation.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_display_tweaks.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_first_run_and_migration.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_gpu_extras_install.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_gpu_preference.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_gpu_reader_prompt.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_gui_empty_state.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_gui_entry_exit.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_gui_panels.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_gui_raise_existing.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_hid_lcd_geometry.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_hotplug.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_hotplug_bsd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_hotplug_polling.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_hotplug_windows.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_i18n.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_integration_pipeline.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_ipc_server.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_ipc_windows_fallback.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_ipc_wire.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_lcd_panel_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_led_animation_loop.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_led_assets.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_led_display_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_led_effects.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_led_handler_requires_app.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_led_panel_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_led_pm_registry.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_led_remap.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_led_send.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_led_settings_commands.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_library_migration.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_ly_lcd_geometry.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_mask_commands.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_mask_rendering.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_metrics_personalize.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_mock_reply_override.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_models.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_orientation_cloud_background.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_overlay_grid_adapter.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_overlay_resolve.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_packaging_entrypoints.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_platform_hw_probes.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_pyusb_find_seam.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_quickstart.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_render_led.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_run_setup_order.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_scsi_lcd_geometry.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_selinux_install.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_send_color.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_sensor_chain.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_sensors.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_sensors_bsd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_sensors_lhm_subprocess.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_sensors_macos.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_sensors_nvml.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_sensors_windows.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_settings_migration.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_shell.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_system_commands.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_system_resume.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_theme_service.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_transports.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_ui_surfaces_smoke.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_variant_presentation_audit.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_video_cache.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_video_playback.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/test_wmi_gpu_fallback.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/ui/presentation/test_device_presentation.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/ui/presentation/test_lcd_presentation_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/ui/presentation/test_led_metrics_format.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/ui/presentation/test_led_zone_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/ui/presentation/test_overlay_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/ui/presentation/test_overlay_view_binding.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/ui/presentation/test_preview_geometry.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/ui/presentation/test_sensor_display.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/ui/presentation/test_slideshow_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.7.10}/tests/ui/presentation/test_theme_directories.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: trcc-linux
|
|
3
|
-
Version: 9.7.
|
|
3
|
+
Version: 9.7.10
|
|
4
4
|
Summary: Linux implementation of Thermalright LCD Control Center
|
|
5
5
|
Project-URL: Homepage, https://github.com/Lexonight1/thermalright-trcc-linux
|
|
6
6
|
Project-URL: Documentation, https://github.com/Lexonight1/thermalright-trcc-linux#readme
|
|
@@ -108,6 +108,13 @@ def _import_dbus_glib() -> tuple[Any, Any] | None:
|
|
|
108
108
|
log.debug("_import_dbus_glib: called")
|
|
109
109
|
try:
|
|
110
110
|
import dbus # pyright: ignore[reportMissingImports]
|
|
111
|
+
|
|
112
|
+
# NOTE (investigated 2026-06-27): importing gi emits two
|
|
113
|
+
# DeprecationWarnings on Python 3.14 (GLib.unix_signal_add_full +
|
|
114
|
+
# asyncio event-loop policy) from PyGObject's OWN internals — not our
|
|
115
|
+
# calls. Latest gi (3.56.3) still warns; our 3.12 floor is clean.
|
|
116
|
+
# Upstream + cosmetic, and this guarded import already degrades
|
|
117
|
+
# gracefully. Leave it — don't filter blindly or monkeypatch gi.
|
|
111
118
|
import gi # noqa: F401 # pyright: ignore[reportMissingImports]
|
|
112
119
|
from dbus.mainloop.glib import ( # pyright: ignore[reportMissingImports]
|
|
113
120
|
DBusGMainLoop,
|
|
@@ -17,9 +17,11 @@ Per-wire subsystem mapping:
|
|
|
17
17
|
Every device also gets `power/control="auto"` +
|
|
18
18
|
`power/autosuspend_delay_ms="10000"` so the kernel autosuspends the device
|
|
19
19
|
~10s after our frame stream stops; the firmware sleeps the panel in response
|
|
20
|
-
to the USB suspend (the mechanism the Windows app relies on — #143).
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
to the USB suspend (the mechanism the Windows app relies on — #143). The
|
|
21
|
+
EXCEPTION is `_NO_AUTOSUSPEND` devices, whose firmware re-enumerates instead of
|
|
22
|
+
sleeping under suspend (a reconnect loop — #201); they pin `power/control="on"`.
|
|
23
|
+
This MUST match packaging/udev/99-trcc-lcd.rules — the two are the same rule
|
|
24
|
+
from two sources and drifting them re-breaks panel sleep / the loop fix.
|
|
23
25
|
|
|
24
26
|
For SCSI devices we additionally write /etc/modprobe.d/trcc-lcd.conf
|
|
25
27
|
forcing `usb-storage` Bulk-Only (not UAS) so /dev/sgN is reliably
|
|
@@ -71,6 +73,19 @@ _WIRE_SUBSYSTEMS: dict[Wire, tuple[str, ...]] = {
|
|
|
71
73
|
}
|
|
72
74
|
|
|
73
75
|
|
|
76
|
+
# Devices whose firmware can't survive USB autosuspend. The kernel suspends the
|
|
77
|
+
# port ~10s after our frame stream stops; instead of sleeping the panel, these
|
|
78
|
+
# re-enumerate, the kernel re-suspends ~10s later, and you get a reconnect loop
|
|
79
|
+
# every ~10-15s (#201, em73es' ChiZhu GrandVision 360). They pin
|
|
80
|
+
# power/control="on" (never autosuspend) instead of the "auto" the other panels
|
|
81
|
+
# use for idle-sleep (#143). 87ad:70db (USB/bulk) is reporter-confirmed;
|
|
82
|
+
# 87cd:70db (its SCSI sibling, same product family) is included by inference.
|
|
83
|
+
_NO_AUTOSUSPEND: frozenset[tuple[int, int]] = frozenset({
|
|
84
|
+
(0x87ad, 0x70db),
|
|
85
|
+
(0x87cd, 0x70db),
|
|
86
|
+
})
|
|
87
|
+
|
|
88
|
+
|
|
74
89
|
# ── Rule generation ──────────────────────────────────────────────────
|
|
75
90
|
|
|
76
91
|
|
|
@@ -95,11 +110,12 @@ def build_udev_rules() -> str:
|
|
|
95
110
|
f'{attr}{{idProduct}}=="{pid:04x}", '
|
|
96
111
|
f'MODE="0666"'
|
|
97
112
|
)
|
|
113
|
+
control = "on" if (vid, pid) in _NO_AUTOSUSPEND else "auto"
|
|
98
114
|
lines.append(
|
|
99
115
|
f'ACTION=="add", SUBSYSTEM=="usb", '
|
|
100
116
|
f'ATTR{{idVendor}}=="{vid:04x}", '
|
|
101
117
|
f'ATTR{{idProduct}}=="{pid:04x}", '
|
|
102
|
-
f'ATTR{{power/control}}="
|
|
118
|
+
f'ATTR{{power/control}}="{control}", '
|
|
103
119
|
f'ATTR{{power/autosuspend_delay_ms}}="10000"'
|
|
104
120
|
)
|
|
105
121
|
lines.append("")
|
|
@@ -320,13 +320,26 @@ class App:
|
|
|
320
320
|
# Active theme → reload from the rotated-resolution theme dir. Shared
|
|
321
321
|
# resolver with RestoreLastTheme so connect-restore + runtime rotation
|
|
322
322
|
# agree on the oriented variant (#136).
|
|
323
|
+
#
|
|
324
|
+
# reset_overrides=False: a rotation re-roots the SAME theme to its
|
|
325
|
+
# oriented variant — it is NOT an explicit theme switch. The original
|
|
326
|
+
# C# app rotates at the render layer and NEVER drops the user's overlay/
|
|
327
|
+
# background/mask edits on rotate; legacy's startup restore likewise
|
|
328
|
+
# re-applied them. Resetting here (the old default=True) PERSIST-CLEARED
|
|
329
|
+
# user_overlay_elements + stopped video + reverted the cloud background —
|
|
330
|
+
# so on a connect/restart the user's "last preview with changes" was lost
|
|
331
|
+
# before RestoreLastTheme could replay it. Preserve them; the dedicated
|
|
332
|
+
# cloud-background + mask reload blocks below still re-resolve those two
|
|
333
|
+
# to the oriented resolution. (Catalog selection + encode are untouched,
|
|
334
|
+
# so the hardware-verified widescreen behavior in #169 is unaffected.)
|
|
323
335
|
if s.current_theme:
|
|
324
336
|
cur = Path(s.current_theme)
|
|
325
337
|
cand = oriented_theme_path(self, key, cur, degrees=event.degrees)
|
|
326
338
|
if cand != cur:
|
|
327
|
-
log.info("_on_orientation_changed: reload theme %s → %s"
|
|
328
|
-
cur.name, cand)
|
|
329
|
-
self.dispatch(LoadTheme(key=key, path=cand
|
|
339
|
+
log.info("_on_orientation_changed: reload theme %s → %s "
|
|
340
|
+
"(preserve overrides)", cur.name, cand)
|
|
341
|
+
self.dispatch(LoadTheme(key=key, path=cand,
|
|
342
|
+
reset_overrides=False))
|
|
330
343
|
|
|
331
344
|
# Active cloud background → re-apply from the rotated-resolution web dir.
|
|
332
345
|
# Stored as ``web/{res}/<id>``; ``LoadCloudTheme`` now materialises per
|
|
@@ -54,11 +54,19 @@ def oriented_theme_path(
|
|
|
54
54
|
degrees = app.settings.for_device(key).orientation
|
|
55
55
|
bw, bh = oriented_resolution(device.profile.resolution, degrees)
|
|
56
56
|
paths = app.platform.paths()
|
|
57
|
-
for
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
# Re-root for ORIENTATION only — preserve the tree the user actually
|
|
58
|
+
# selected (their saved theme vs the shipped one). A user-saved theme and
|
|
59
|
+
# a shipped theme can share a name (they coexist); re-resolving shipped-first
|
|
60
|
+
# would silently swap the user's last preview for the shipped default of the
|
|
61
|
+
# same name on every rotation/restore, losing their changes. Fall back to
|
|
62
|
+
# ``stored`` when the same-name oriented variant isn't on disk in that tree
|
|
63
|
+
# (the renderer pixel-rotates the art).
|
|
64
|
+
if stored.is_relative_to(paths.user_content_dir()):
|
|
65
|
+
base = paths.user_theme_dir(bw, bh)
|
|
66
|
+
else:
|
|
67
|
+
base = paths.theme_dir(bw, bh)
|
|
68
|
+
cand = base / stored.name
|
|
69
|
+
return cand if cand.exists() else stored
|
|
62
70
|
|
|
63
71
|
|
|
64
72
|
_VIDEO_EXTS_FOR_SAVE = frozenset({".mp4", ".mov", ".webm", ".zt", ".mkv", ".avi"})
|
|
@@ -76,6 +84,9 @@ _MASK_IMAGE_EXTS = frozenset({".png", ".jpg", ".jpeg", ".bmp", ".webp"})
|
|
|
76
84
|
_LEGACY_MASK_FILENAME = "01.png"
|
|
77
85
|
|
|
78
86
|
|
|
87
|
+
_LEGACY_BG_FILENAME = "00.png"
|
|
88
|
+
|
|
89
|
+
|
|
79
90
|
_IMAGE_EXTS = frozenset({".png", ".jpg", ".jpeg", ".bmp", ".webp"})
|
|
80
91
|
|
|
81
92
|
|
|
@@ -229,6 +240,11 @@ def _require_connected_device(app: App, key: str) -> Any:
|
|
|
229
240
|
log.debug("_require_connected_device: key=%s", key)
|
|
230
241
|
device = app.get(key)
|
|
231
242
|
if not device.is_connected:
|
|
243
|
+
# DeviceNotConnectedError propagates PAST App.dispatch (no try/except
|
|
244
|
+
# there), so without this the rejected wire command is invisible in the
|
|
245
|
+
# log. Warn with the key — the universal "acted before connect" trace.
|
|
246
|
+
log.warning("%s: wire command dispatched before ConnectDevice — "
|
|
247
|
+
"device attached but not connected", key)
|
|
232
248
|
raise DeviceNotConnectedError(
|
|
233
249
|
f"{key} not connected — dispatch ConnectDevice first"
|
|
234
250
|
)
|
|
@@ -980,6 +980,8 @@ class UploadBootAnimation(Command[BootAnimationResult]):
|
|
|
980
980
|
message=f"{self.key} is not a SCSI LCD (boot animation is SCSI-only)",
|
|
981
981
|
)
|
|
982
982
|
if not device.is_connected:
|
|
983
|
+
log.warning("UploadBootAnimation %s: device not connected — "
|
|
984
|
+
"dispatched before ConnectDevice", self.key)
|
|
983
985
|
raise DeviceNotConnectedError(
|
|
984
986
|
f"{self.key} not connected — dispatch ConnectDevice first"
|
|
985
987
|
)
|
|
@@ -1088,7 +1090,7 @@ class SetBrightness(Command[BrightnessResult]):
|
|
|
1088
1090
|
if not 0 <= self.percent <= 100:
|
|
1089
1091
|
return BrightnessResult(
|
|
1090
1092
|
ok=False, key=self.key, percent=self.percent,
|
|
1091
|
-
message="Brightness out of range (0–100)",
|
|
1093
|
+
message=f"Brightness out of range (0–100): {self.percent}",
|
|
1092
1094
|
)
|
|
1093
1095
|
app.settings.set_brightness(self.key, self.percent)
|
|
1094
1096
|
_invalidate_scene(app, self.key)
|
|
@@ -73,6 +73,8 @@ class SetLedColors(Command[LedColorsResult]):
|
|
|
73
73
|
message=f"{self.key} is not an LED device",
|
|
74
74
|
)
|
|
75
75
|
if not device.is_connected:
|
|
76
|
+
log.warning("SetLedColors %s: device not connected — "
|
|
77
|
+
"dispatched before ConnectDevice", self.key)
|
|
76
78
|
raise DeviceNotConnectedError(
|
|
77
79
|
f"{self.key} not connected — dispatch ConnectDevice first"
|
|
78
80
|
)
|
|
@@ -184,6 +186,10 @@ class RenderLed(Command[LedColorsResult]):
|
|
|
184
186
|
message=f"{self.key} is not an LED device",
|
|
185
187
|
)
|
|
186
188
|
if not device.is_connected:
|
|
189
|
+
# Per-frame command (DEBUG) — not-connected here is a transient
|
|
190
|
+
# race with disconnect, not a user mis-step; keep it off INFO.
|
|
191
|
+
log.debug("RenderLed %s: device not connected — skipping frame",
|
|
192
|
+
self.key)
|
|
187
193
|
raise DeviceNotConnectedError(
|
|
188
194
|
f"{self.key} not connected — dispatch ConnectDevice first"
|
|
189
195
|
)
|
|
@@ -45,6 +45,7 @@ from ..results import (
|
|
|
45
45
|
from ._base import Command
|
|
46
46
|
from ._helpers import (
|
|
47
47
|
_IMAGE_EXTS,
|
|
48
|
+
_LEGACY_BG_FILENAME,
|
|
48
49
|
_LEGACY_MASK_FILENAME,
|
|
49
50
|
_VIDEO_EXTS_FOR_LOAD,
|
|
50
51
|
_VIDEO_EXTS_FOR_SAVE,
|
|
@@ -70,6 +71,17 @@ if TYPE_CHECKING:
|
|
|
70
71
|
log = logging.getLogger(__name__)
|
|
71
72
|
|
|
72
73
|
|
|
74
|
+
def _theme_preview(theme_dir: Path) -> str:
|
|
75
|
+
"""Tile image for a theme dir: ``Theme.png`` → ``00.png`` → any ``*.png``
|
|
76
|
+
→ ``""``. Single source for the browser tile so every UI agrees."""
|
|
77
|
+
for name in ("Theme.png", "00.png"):
|
|
78
|
+
candidate = theme_dir / name
|
|
79
|
+
if candidate.is_file():
|
|
80
|
+
return str(candidate)
|
|
81
|
+
any_png = next(theme_dir.glob("*.png"), None)
|
|
82
|
+
return str(any_png) if any_png is not None else ""
|
|
83
|
+
|
|
84
|
+
|
|
73
85
|
@dataclass(frozen=True, slots=True)
|
|
74
86
|
class LoadTheme(Command[ThemeResult]):
|
|
75
87
|
"""Parse a theme, persist it, render the first frame, and send it.
|
|
@@ -413,33 +425,57 @@ class SaveTheme(Command[ThemeResult]):
|
|
|
413
425
|
message=f"A theme named {self.name!r} already exists.",
|
|
414
426
|
)
|
|
415
427
|
|
|
428
|
+
# Build into a staging dir, THEN atomically swap it over the target.
|
|
429
|
+
# The theme being saved is usually the target ITSELF (re-saving the
|
|
430
|
+
# loaded theme — a prior save re-points the active theme at the saved
|
|
431
|
+
# dir), so deleting the target up-front would destroy the source's own
|
|
432
|
+
# background/mask BEFORE _build_manifest reads them — the cause of the
|
|
433
|
+
# "source theme has no background" data loss. Staging keeps the source
|
|
434
|
+
# intact until every asset is captured, and makes overwrite crash-safe.
|
|
435
|
+
staging = target.parent / f".{self.name}.saving"
|
|
416
436
|
try:
|
|
417
437
|
target.parent.mkdir(parents=True, exist_ok=True)
|
|
418
|
-
if
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
target.mkdir(exist_ok=False)
|
|
438
|
+
if staging.exists():
|
|
439
|
+
shutil.rmtree(staging)
|
|
440
|
+
staging.mkdir(exist_ok=False)
|
|
422
441
|
except OSError as e:
|
|
423
|
-
log.warning("SaveTheme: mkdir failed for %s: %s",
|
|
442
|
+
log.warning("SaveTheme: mkdir failed for staging %s: %s", staging, e)
|
|
424
443
|
return ThemeResult(
|
|
425
444
|
ok=False, key=self.key, theme_name=self.name,
|
|
426
|
-
message=f"failed to create
|
|
445
|
+
message=f"failed to create staging directory: {e}",
|
|
427
446
|
)
|
|
428
447
|
|
|
429
448
|
try:
|
|
430
449
|
manifest = self._build_manifest(
|
|
431
|
-
app,
|
|
450
|
+
app, staging, theme, device_settings, w, h,
|
|
432
451
|
)
|
|
433
|
-
self._write_manifest(
|
|
434
|
-
self._write_thumbnail(app,
|
|
452
|
+
self._write_manifest(staging, manifest)
|
|
453
|
+
self._write_thumbnail(app, staging, theme)
|
|
435
454
|
except (OSError, ThemeError, TrccError) as e:
|
|
436
|
-
log.exception("SaveTheme: assembly failed;
|
|
437
|
-
|
|
455
|
+
log.exception("SaveTheme: assembly failed; discarding staging %s",
|
|
456
|
+
staging)
|
|
457
|
+
shutil.rmtree(staging, ignore_errors=True)
|
|
438
458
|
return ThemeResult(
|
|
439
459
|
ok=False, key=self.key, theme_name=self.name,
|
|
440
460
|
message=f"failed to assemble saved theme: {e}",
|
|
441
461
|
)
|
|
442
462
|
|
|
463
|
+
# Swap staging → target. Every source asset is now captured in staging,
|
|
464
|
+
# so removing the (possibly ==source) target is safe.
|
|
465
|
+
try:
|
|
466
|
+
if target.exists():
|
|
467
|
+
log.warning("SaveTheme: overwriting existing theme %s", target)
|
|
468
|
+
shutil.rmtree(target)
|
|
469
|
+
staging.replace(target)
|
|
470
|
+
except OSError as e:
|
|
471
|
+
log.exception("SaveTheme: finalize failed; discarding staging %s",
|
|
472
|
+
staging)
|
|
473
|
+
shutil.rmtree(staging, ignore_errors=True)
|
|
474
|
+
return ThemeResult(
|
|
475
|
+
ok=False, key=self.key, theme_name=self.name,
|
|
476
|
+
message=f"failed to finalize saved theme: {e}",
|
|
477
|
+
)
|
|
478
|
+
|
|
443
479
|
# Saved theme is now fully self-contained — drop the device's
|
|
444
480
|
# overrides + user edits, then re-point BOTH the live active
|
|
445
481
|
# theme (what the renderer reads via app.active_themes) and the
|
|
@@ -561,16 +597,22 @@ class SaveTheme(Command[ThemeResult]):
|
|
|
561
597
|
width: int,
|
|
562
598
|
height: int,
|
|
563
599
|
) -> str | None:
|
|
564
|
-
"""
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
600
|
+
"""Link the resolved current background into the saved theme dir.
|
|
601
|
+
|
|
602
|
+
Every asset a saved theme uses is a SYMLINK into the shared data tree —
|
|
603
|
+
no bytes duplicated; only the DC/config (``trcc.json``) is a real copy
|
|
604
|
+
edited per save. The background links in under its standard in-dir name
|
|
605
|
+
— ``00.png`` for an image, ``Theme.<ext>`` for a video — so the loader
|
|
606
|
+
finds it by convention and no manifest ref is needed (returns ``None``).
|
|
607
|
+
|
|
608
|
+
Asset home (the symlink target): a catalog asset (cloud
|
|
609
|
+
``cloud_theme_dir`` / user ``user_background_dir`` ``web/{w}{h}``) is
|
|
610
|
+
linked in place; a loose image/video is first stored into the user
|
|
611
|
+
library (deduped, native res) and the link points there. On a
|
|
612
|
+
filesystem WITHOUT symlink support the asset is REFERENCED instead (the
|
|
613
|
+
``web/{w}{h}/…`` ref is returned and the loader resolves it).
|
|
614
|
+
``DeviceSettings.background_path`` (override) wins over the source theme.
|
|
571
615
|
"""
|
|
572
|
-
import shutil
|
|
573
|
-
|
|
574
616
|
src = self._pick_asset(
|
|
575
617
|
s.background_path, app.themes.background_path(theme), "background",
|
|
576
618
|
)
|
|
@@ -580,17 +622,36 @@ class SaveTheme(Command[ThemeResult]):
|
|
|
580
622
|
return None
|
|
581
623
|
|
|
582
624
|
ext = src.suffix.lower()
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
log.info("SaveTheme: video bg bundled → %s", dst)
|
|
587
|
-
return None
|
|
625
|
+
is_video = ext in _VIDEO_EXTS_FOR_SAVE
|
|
626
|
+
paths = app.platform.paths()
|
|
627
|
+
src_resolved = src.resolve()
|
|
588
628
|
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
629
|
+
# Stable home for the asset (what the symlink points at) + the ref that
|
|
630
|
+
# names it (the no-symlink fallback). Catalog asset → link in place;
|
|
631
|
+
# loose asset → give it a deduped home in the user library first.
|
|
632
|
+
canonical: Path | None = None
|
|
633
|
+
ref: str | None = None
|
|
634
|
+
for root in (paths.user_background_dir(width, height),
|
|
635
|
+
paths.cloud_theme_dir(width, height)):
|
|
636
|
+
if src_resolved.is_relative_to(root.resolve()):
|
|
637
|
+
canonical = src_resolved
|
|
638
|
+
ref = f"web/{width}{height}/{src.name}"
|
|
639
|
+
break
|
|
640
|
+
if canonical is None:
|
|
641
|
+
data = (src.read_bytes() if is_video
|
|
642
|
+
else app.renderer.encode_png(app.renderer.open_image(src)))
|
|
643
|
+
ref = app.themes.store_background(
|
|
644
|
+
data, ext if is_video else ".png", width, height,
|
|
645
|
+
)
|
|
646
|
+
canonical = paths.user_background_dir(width, height) / Path(ref).name
|
|
647
|
+
|
|
648
|
+
in_dir = f"Theme{ext}" if is_video else _LEGACY_BG_FILENAME
|
|
649
|
+
if self._try_symlink(target / in_dir, canonical):
|
|
650
|
+
log.info("SaveTheme: background %s → symlink %s → %s (no copy)",
|
|
651
|
+
src.name, in_dir, canonical)
|
|
652
|
+
return None
|
|
653
|
+
log.info("SaveTheme: background %s → reference %s (no symlink support)",
|
|
654
|
+
src.name, ref)
|
|
594
655
|
return ref
|
|
595
656
|
|
|
596
657
|
def _store_mask(
|
|
@@ -612,12 +673,13 @@ class SaveTheme(Command[ThemeResult]):
|
|
|
612
673
|
the user's edited metrics live inline in the saved manifest's
|
|
613
674
|
``elements``, so no DC is written here.
|
|
614
675
|
|
|
615
|
-
A theme's OWN bundled mask (not in any catalog) is
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
``
|
|
619
|
-
|
|
620
|
-
|
|
676
|
+
A theme's OWN bundled / loose mask (not in any catalog) is first stored
|
|
677
|
+
into the user mask library (deduped) and the symlink points there. On a
|
|
678
|
+
filesystem WITHOUT symlink support the mask is REFERENCED instead (the
|
|
679
|
+
``web/zt{w}{h}/<id>`` ref is returned and the loader resolves it). The
|
|
680
|
+
mask's own ``config1.dc`` stays with the mask in the library; the saved
|
|
681
|
+
theme's overlay layout lives in its own ``trcc.json`` (baked elements).
|
|
682
|
+
``DeviceSettings.mask_path`` (override) wins over the source theme's mask.
|
|
621
683
|
"""
|
|
622
684
|
src = self._pick_asset(
|
|
623
685
|
s.mask_path, app.themes.mask_path(theme), "mask",
|
|
@@ -626,29 +688,59 @@ class SaveTheme(Command[ThemeResult]):
|
|
|
626
688
|
log.info("SaveTheme: no mask to save (neither override nor source)")
|
|
627
689
|
return None
|
|
628
690
|
|
|
629
|
-
# Catalog mask (cloud or prior upload) → reference it, never copy.
|
|
630
|
-
src_resolved = src.resolve()
|
|
631
691
|
paths = app.platform.paths()
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
692
|
+
src_resolved = src.resolve()
|
|
693
|
+
mask_dir = src_resolved.parent
|
|
694
|
+
|
|
695
|
+
# Stable home for the mask's 01.png (symlink target) + its ref (the
|
|
696
|
+
# no-symlink fallback). Catalog mask → link in place; loose mask → give
|
|
697
|
+
# it a deduped home in the user mask library first.
|
|
698
|
+
canonical: Path | None = None
|
|
699
|
+
ref: str | None = None
|
|
700
|
+
for root in (paths.user_mask_dir(width, height),
|
|
701
|
+
paths.cloud_mask_dir(width, height)):
|
|
702
|
+
if mask_dir.is_relative_to(root.resolve()):
|
|
703
|
+
canonical = src_resolved
|
|
704
|
+
ref = f"web/zt{width}{height}/{mask_dir.name}"
|
|
705
|
+
break
|
|
706
|
+
if canonical is None:
|
|
707
|
+
try:
|
|
708
|
+
image = src.read_bytes()
|
|
709
|
+
except OSError as e:
|
|
710
|
+
log.warning("SaveTheme: could not read mask %s (%s) — mask "
|
|
711
|
+
"omitted", src, e)
|
|
712
|
+
return None
|
|
713
|
+
ref = app.themes.store_mask(image, width, height)
|
|
714
|
+
canonical = (paths.user_mask_dir(width, height)
|
|
715
|
+
/ Path(ref).name / _LEGACY_MASK_FILENAME)
|
|
716
|
+
|
|
717
|
+
if self._try_symlink(target / _LEGACY_MASK_FILENAME, canonical):
|
|
718
|
+
log.info("SaveTheme: mask %s → symlink 01.png → %s (no copy)",
|
|
719
|
+
src.name, canonical)
|
|
720
|
+
return None
|
|
721
|
+
log.info("SaveTheme: mask %s → reference %s (no symlink support)",
|
|
722
|
+
src.name, ref)
|
|
723
|
+
return ref
|
|
639
724
|
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
725
|
+
@staticmethod
|
|
726
|
+
def _try_symlink(link: Path, asset: Path) -> bool:
|
|
727
|
+
"""Create *link* as a symlink to *asset*.
|
|
728
|
+
|
|
729
|
+
True on success; False when the filesystem can't symlink (e.g. Windows
|
|
730
|
+
without the privilege, exotic FS) so the caller falls back to a manifest
|
|
731
|
+
reference. An existing entry at *link* (a prior save's symlink) is
|
|
732
|
+
replaced. *asset* is linked as an absolute path so the link resolves
|
|
733
|
+
regardless of the theme dir's location.
|
|
734
|
+
"""
|
|
644
735
|
try:
|
|
645
|
-
|
|
736
|
+
if link.is_symlink() or link.exists():
|
|
737
|
+
link.unlink()
|
|
738
|
+
link.symlink_to(asset)
|
|
739
|
+
return True
|
|
646
740
|
except OSError as e:
|
|
647
|
-
log.
|
|
648
|
-
|
|
649
|
-
return
|
|
650
|
-
log.info("SaveTheme: bundled mask %s → theme-local %s", src.name, dst)
|
|
651
|
-
return None
|
|
741
|
+
log.info("SaveTheme: symlink %s → %s unavailable (%s) — referencing",
|
|
742
|
+
link, asset, e)
|
|
743
|
+
return False
|
|
652
744
|
|
|
653
745
|
@staticmethod
|
|
654
746
|
def _write_manifest(target: Path, manifest: dict) -> None:
|
|
@@ -1056,11 +1148,15 @@ class ListThemes(Command[ThemesListResult]):
|
|
|
1056
1148
|
directory: Path | None = None
|
|
1057
1149
|
|
|
1058
1150
|
def execute(self, app: App) -> ThemesListResult:
|
|
1151
|
+
paths = app.platform.paths()
|
|
1059
1152
|
if self.directory is not None:
|
|
1060
1153
|
roots = [self.directory]
|
|
1061
1154
|
elif self.resolution is not None:
|
|
1062
|
-
paths = app.platform.paths()
|
|
1063
1155
|
w, h = self.resolution
|
|
1156
|
+
# Shipped (program / cloud-downloaded) themes FIRST, the user's
|
|
1157
|
+
# saved themes AFTER — both listed, neither hiding the other (dedupe
|
|
1158
|
+
# by PATH, not name, so a same-named user + shipped pair both belong,
|
|
1159
|
+
# told apart by ``origin``). (#theme-collision)
|
|
1064
1160
|
roots = [paths.theme_dir(w, h), paths.user_theme_dir(w, h)]
|
|
1065
1161
|
else:
|
|
1066
1162
|
return ThemesListResult(
|
|
@@ -1068,16 +1164,22 @@ class ListThemes(Command[ThemesListResult]):
|
|
|
1068
1164
|
message="ListThemes requires resolution=(w,h) or directory=...",
|
|
1069
1165
|
)
|
|
1070
1166
|
|
|
1071
|
-
|
|
1167
|
+
# Origin is location-derived (theme under user_data_dir → "user"), so
|
|
1168
|
+
# it is correct in directory mode too and replaces name heuristics.
|
|
1169
|
+
user_root = paths.user_data_dir().resolve()
|
|
1170
|
+
seen_paths: set[Path] = set()
|
|
1072
1171
|
entries: list[ThemeListEntry] = []
|
|
1073
1172
|
for root in roots:
|
|
1074
1173
|
for theme in app.themes.list(root):
|
|
1075
|
-
|
|
1174
|
+
resolved = theme.path.resolve()
|
|
1175
|
+
if resolved in seen_paths:
|
|
1076
1176
|
continue
|
|
1077
|
-
|
|
1177
|
+
seen_paths.add(resolved)
|
|
1078
1178
|
entries.append(ThemeListEntry(
|
|
1079
1179
|
name=theme.name, resolution=theme.resolution,
|
|
1080
1180
|
path=str(theme.path),
|
|
1181
|
+
preview=str(_theme_preview(theme.path)),
|
|
1182
|
+
origin="user" if resolved.is_relative_to(user_root) else "shipped",
|
|
1081
1183
|
))
|
|
1082
1184
|
target_str = "; ".join(str(r) for r in roots)
|
|
1083
1185
|
return ThemesListResult(
|
|
@@ -1389,6 +1491,10 @@ class RestoreLastTheme(Command[ThemeResult]):
|
|
|
1389
1491
|
# the theme's bundled layout (that's an explicit-switch behavior).
|
|
1390
1492
|
candidate = Path(stored)
|
|
1391
1493
|
if candidate.is_dir():
|
|
1494
|
+
# Load EXACTLY the persisted path (re-rooted to the current
|
|
1495
|
+
# orientation). A user save never overwrites the shipped theme of
|
|
1496
|
+
# the same name, so restore must NOT re-resolve a shipped pointer to
|
|
1497
|
+
# the user one — it loads whatever the user last selected.
|
|
1392
1498
|
candidate = oriented_theme_path(app, self.key, candidate)
|
|
1393
1499
|
return LoadTheme(
|
|
1394
1500
|
key=self.key, path=candidate, reset_overrides=False,
|
|
@@ -6,6 +6,7 @@ render. Every Command has one concrete Result type.
|
|
|
6
6
|
from __future__ import annotations
|
|
7
7
|
|
|
8
8
|
from dataclasses import dataclass, field
|
|
9
|
+
from typing import Literal
|
|
9
10
|
|
|
10
11
|
from .models import (
|
|
11
12
|
DeviceInfo,
|
|
@@ -205,10 +206,22 @@ class ThemeImportResult(Result):
|
|
|
205
206
|
|
|
206
207
|
@dataclass(frozen=True, slots=True)
|
|
207
208
|
class ThemeListEntry:
|
|
208
|
-
"""One row in a ThemesListResult — name + resolution + path.
|
|
209
|
+
"""One row in a ThemesListResult — name + resolution + path + preview + origin.
|
|
210
|
+
|
|
211
|
+
``preview`` is the absolute path to the tile image (``Theme.png`` →
|
|
212
|
+
``00.png`` → any ``*.png``, else ``""``) so every UI builds the same
|
|
213
|
+
browser tile from the Command result instead of re-walking the dir.
|
|
214
|
+
|
|
215
|
+
``origin`` is the theme's data root — ``"user"`` (saved under
|
|
216
|
+
``user_data_dir``) or ``"shipped"`` (pkg / cloud-downloaded). Location-
|
|
217
|
+
derived, the canonical replacement for name-based heuristics: it drives the
|
|
218
|
+
user/default filter and any "my themes" badge, identically in every UI.
|
|
219
|
+
"""
|
|
209
220
|
name: str
|
|
210
221
|
resolution: tuple[int, int]
|
|
211
222
|
path: str
|
|
223
|
+
preview: str = ""
|
|
224
|
+
origin: Literal["user", "shipped"] = "shipped"
|
|
212
225
|
|
|
213
226
|
|
|
214
227
|
@dataclass(frozen=True, slots=True)
|
|
@@ -70,6 +70,23 @@ def _translate_date_pattern(pattern: str) -> str:
|
|
|
70
70
|
return result
|
|
71
71
|
|
|
72
72
|
|
|
73
|
+
# The default date format (DeviceSettings.date_format default). A date element
|
|
74
|
+
# whose pattern renders the same as this is treated as "uncustomised" → the
|
|
75
|
+
# user's global pref wins; a different pattern is a deliberate theme choice.
|
|
76
|
+
_DEFAULT_DATE_FORMAT = "yyyy/MM/dd"
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def is_default_date_pattern(fmt: str) -> bool:
|
|
80
|
+
"""True if *fmt* (a strftime spec like ``%Y/%m/%d`` OR a ``yyyy/MM/dd``-style
|
|
81
|
+
pattern) renders identically to the DEFAULT date format.
|
|
82
|
+
|
|
83
|
+
The theme reconciliation rule: a date element carrying a NON-default pattern
|
|
84
|
+
(e.g. ``%m/%d``) is a deliberate design choice the renderer honours; a
|
|
85
|
+
default-equivalent pattern means the theme didn't customise the date, so the
|
|
86
|
+
user's global ``date_format`` preference wins — universally, every UI."""
|
|
87
|
+
return _translate_date_pattern(fmt) == _translate_date_pattern(_DEFAULT_DATE_FORMAT)
|
|
88
|
+
|
|
89
|
+
|
|
73
90
|
def resolve_clock(
|
|
74
91
|
source: ClockSource,
|
|
75
92
|
*,
|
|
@@ -18,7 +18,7 @@ from ..core.errors import ThemeError
|
|
|
18
18
|
from ..core.models import OverlayElement
|
|
19
19
|
from ..core.ports import Renderer
|
|
20
20
|
from . import _dc as Dc
|
|
21
|
-
from ._clock import resolve_clock
|
|
21
|
+
from ._clock import is_default_date_pattern, resolve_clock
|
|
22
22
|
|
|
23
23
|
log = logging.getLogger(__name__)
|
|
24
24
|
|
|
@@ -330,13 +330,18 @@ class OverlayService:
|
|
|
330
330
|
source: str = "?",
|
|
331
331
|
) -> None:
|
|
332
332
|
clock_source = str(element.get("source", ""))
|
|
333
|
-
#
|
|
334
|
-
#
|
|
335
|
-
#
|
|
336
|
-
#
|
|
337
|
-
#
|
|
333
|
+
# Date format reconciliation (universal — every UI renders through here):
|
|
334
|
+
# * A DELIBERATE non-default theme pattern (e.g. "%m/%d") is honoured —
|
|
335
|
+
# a theme designed for a specific date layout keeps it.
|
|
336
|
+
# * A default-equivalent pattern ("%Y/%m/%d" ≡ "yyyy/MM/dd") means the
|
|
337
|
+
# theme didn't customise the date, so the user's global date_format
|
|
338
|
+
# pref wins (it's already baked into the precomputed dict, per
|
|
339
|
+
# device). Time/weekday always use the dict (localised weekday, 12h
|
|
340
|
+
# handling). ``"%" in fmt`` excludes the metric default "{value}".
|
|
341
|
+
# (#format-prefs)
|
|
338
342
|
elem_fmt = str(element.get("format", ""))
|
|
339
|
-
if clock_source == "date" and "%" in elem_fmt
|
|
343
|
+
if (clock_source == "date" and "%" in elem_fmt
|
|
344
|
+
and not is_default_date_pattern(elem_fmt)):
|
|
340
345
|
text = resolve_clock("date", date_format=elem_fmt)
|
|
341
346
|
else:
|
|
342
347
|
text = clock.get(clock_source, "")
|