trcc-linux 9.7.9__tar.gz → 9.8.0__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.8.0}/PKG-INFO +1 -1
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/pyproject.toml +1 -1
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/__version__.py +1 -1
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/device/bulk_lcd.py +1 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_hotplug.py +7 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_udev.py +20 -4
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/app.py +16 -3
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/commands/_helpers.py +21 -5
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/commands/device.py +3 -1
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/commands/led.py +6 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/commands/theme.py +187 -61
- trcc_linux-9.8.0/src/trcc/core/geometry.py +121 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/protocol.py +57 -4
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/results.py +14 -1
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/_clock.py +17 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/display.py +77 -98
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/overlay.py +12 -7
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/theme.py +29 -6
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/display.py +15 -1
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/main.py +12 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/_ui_state.py +7 -21
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/lcd_handler.py +28 -21
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/trcc_app.py +20 -11
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_theme_local.py +37 -93
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_architecture_boundaries.py +122 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_cli_commands.py +33 -3
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_display_rotation.py +30 -0
- trcc_linux-9.8.0/tests/test_geometry.py +169 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_orientation_reload.py +42 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_overlay_clock.py +27 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_theme_persistence.py +375 -40
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_udev.py +32 -6
- trcc_linux-9.8.0/tests/test_wire_rotation.py +94 -0
- trcc_linux-9.8.0/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.8.0}/.gitignore +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/LICENSE +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/README.md +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/__main__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/_boot.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/_entry.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/device/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/device/_pyusb_find.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/device/hid_lcd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/device/led.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/device/ly_lcd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/device/scsi_lcd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/device/transport.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/device/usb_bot_scsi.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/diagnostics/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/diagnostics/adapter.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/diagnostics/debug_report.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/diagnostics/doctor.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/diagnostics/health.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/infra/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/infra/logging.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/infra/network.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/infra/send_scheduler.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/infra/sysinfo_config.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/render/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/render/qt.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/repo/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/repo/data_install.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/repo/github_releases.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/repo/http.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/screencast/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/screencast/qt.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/_hwinfo.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/_lhm.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/_macos_hid.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/_msacpi.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/_powermetrics.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/_smc.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/_sysctl.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/_wmi_gpu.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/aggregator.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/bsd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/chain.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/gpu_detect.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/hwmon.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/macos.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/nvml.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/psutil_sources.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/windows.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_autostart.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_devd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_elevate.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_imc_timings.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_macos_setup.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_selinux.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_windows_wmi.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_winusb.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/bsd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/linux.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/macos.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/spd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/windows.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/theme/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/theme/cloud.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/LibreHardwareMonitor.config +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/com.github.lexonight1.trcc.policy +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/fonts/MSYH.TTC +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/fonts/MSYHBD.TTC +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/fonts/README.md +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/icons/app.ico +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/icons/trcc.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/icons/trcc_128x128.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/icons/trcc_16x16.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/icons/trcc_24x24.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/icons/trcc_256x256.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/icons/trcc_32x32.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/icons/trcc_48x48.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/icons/trcc_64x64.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/trcc-imc +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/trcc-linux.desktop +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/trcc-quirk-fix.service +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/_colors.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/_safe.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/_version.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/commands/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/commands/_base.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/commands/system.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/device_recovery.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/diagnostics.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/errors.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/events.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/i18n.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/led_models.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/led_protocol.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/models.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/ports.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/registry.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/variants.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/daemon.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/data/trcc_usb.te +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ipc.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/proxy.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/_ansi.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/_dc.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/audio.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/cloud_theme.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/data_install.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/device_sender.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/first_run.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/led_animation_loop.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/led_effects.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/led_segment.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/media.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/metrics_loop.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/metrics_personalize.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/migration.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/quickstart.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/settings.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/slideshow.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/video_cache.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/video_export.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/_errors.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/_shared.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/config.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/devices.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/display.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/led.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/main.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/schemas.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/system.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/theme.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/trcc.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/_ctx.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/config.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/device.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/led.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/shell.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/system.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/theme.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/240240.gif +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/240320.gif +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/320240.gif +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/320320.gif +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AK120 Digital.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AK120 Digitala.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AK120_Digital.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AK120_Digitala.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AS120 VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AS120 VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AS120_VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AS120_VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AX120 DIGITAL.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AX120 DIGITALa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AX120_DIGITAL.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AX120_DIGITALa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1BA120 VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1BA120 VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1BA120_VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1BA120_VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CORE VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CORE VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CORE_VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CORE_VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CZ1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CZ1a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CZ2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CZ2a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CZTV.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CZTVa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1ELITE VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1ELITE VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1ELITE_VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1ELITE_VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PRO.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PROa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PRO.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PROa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN VISION V2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN VISION V2a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PRO.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PROa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SE.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SEa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN WARFRAMEa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PRO.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PROa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PRO.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PROa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PRO.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PROa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SE.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SEa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAMEa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1GRAND VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1GRAND VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1GRAND_VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1GRAND_VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITAL.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITALa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1HYPER VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1HYPER VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1HYPER_VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1HYPER_VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1KVMALEDC6.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1KVMALEDC6a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC10.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC10a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC13.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC13a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC15.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC15a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC1a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC2JD.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC2JDa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC2a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC3a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC5.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC5a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC7.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC7a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC8.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC8a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC9.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC9a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD10.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD10a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD11.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD11a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD6.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD6a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD7.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD7a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD8.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD8a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD9.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD9a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF014.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF014a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF10.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF10V.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF10Va.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF10a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF11.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF11a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF12.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF12a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF13.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF13a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF14.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF14a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF15.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF15a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF16.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF167.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF16a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF17a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF18.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF18a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF19.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF19a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF20.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF20a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF21.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF21a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF22.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF22a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF25.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF25a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF8.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF8a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM16SE.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM16SEa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM19SE.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM19SEa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM22.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM22a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM24.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM24a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM26.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM26a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM27.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM27a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM30.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM30a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Mjolnir VISION PRO.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Mjolnir VISION PROa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Mjolnir VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Mjolnir VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Mjolnir_VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PRO.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PROa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Mjolnir_VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1PA120 DIGITAL.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1PA120 DIGITALa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1PA120_DIGITAL.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1PA120_DIGITALa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1PC1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1PC1a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RK120 DIGITAL.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RK120 DIGITALa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RK120_DIGITAL.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RK120_DIGITALa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RP130 VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RP130 VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RP130_VISION.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RP130_VISIONa.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RX1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RX1a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Stream Vision.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Stream Visiona.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Stream_Vision.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Stream_Visiona.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/about_dropdown.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/about_dropdown_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/about_dropdown_select.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/about_update.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/about_update_overlay.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_about_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_brightness_0.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_brightness_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_brightness_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_brightness_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_export.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_form_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_help.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_import.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_main_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_power.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_power_hover.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_save.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_sysinfo_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_tab_cloud.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_tab_cloud_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_tab_local.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_tab_local_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_tab_mask.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_tab_mask_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_tab_mask_lower.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_tab_settings.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_tab_settings_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_theme_base_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_theme_gallery_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_theme_settings_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/carousel_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/carousel_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/carousel_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/carousel_4.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/carousel_5.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/carousel_6.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/carousel_btn.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/carousel_btn_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/carousel_select_frame.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/color_panel_eyedropper.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/color_panel_picker.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/color_panel_selector_ring.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/color_panel_slider_thumb.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/color_wheel_knob.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/color_wheel_knob_0.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/color_wheel_toggle_hover.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/color_wheel_toggle_off.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/color_wheel_toggle_on.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_12h.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_24h.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_border.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_border_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_crop.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_date_dm.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_date_dmy.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_date_md.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_date_ymd.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_digit_font.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_fit_height.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_fit_width.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_function.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_function_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_icon.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_icon_gif.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_icon_image.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_icon_livestream.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_icon_mask.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_icon_network.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_icon_video.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m1_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m2_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m3_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m4.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m4_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m5.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m5_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m6.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m6_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_minus.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_network_btn.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_plus.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_rotate.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_slider_thumb.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_text_font.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_unit_c.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_unit_f.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/frozen_warframe_ultra.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/frozen_warframe_ultra_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_110x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_116x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_1280x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_160x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_180x400.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_180x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_240x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_240x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_240x400.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_240x427.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_270x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_320x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_320x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_320x86.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_360x360.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_400x180.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_400x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_427x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_480x110.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_480x116.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_480x160.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_480x180.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_480x270.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_480x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_86x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_aggregate.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_aggregate_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_cz1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_kvma.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_lc1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_lc2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_lf10.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_lf11.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_lf12.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_lf13.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_lf15.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_lf8.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_rgb_lf13.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_segment.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_segment_4zone.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_dropdown.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_dropdown_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_dropdown_highlight.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_dropdown_highlight_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_dropdown_menu.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_dropdown_menu_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_external.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_external_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_helmet_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_helmet_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_helmet_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_helmet_4.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_helmet_5.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bar_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bar_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bar_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bar_4.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bar_5.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bar_6.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bg_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bg_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bg_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bg_4.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bg_5.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bg_5_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bg_6.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_10.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_10_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_11.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_11_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_12.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_12_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_1_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_2_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_3_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_4.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_4_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_5.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_5_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_6.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_6_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_7.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_7_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_8.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_8_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_9.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_9_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_power.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_power_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preset_blue.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preset_cyan.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preset_green.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preset_orange.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preset_purple.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preset_red.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preset_white.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preset_yellow.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_ak120.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_ax120.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_cz1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_frozen_horizon_pro.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_frozen_magic_pro.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_lc1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_lc2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_lf10.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_lf11.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_lf12.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_lf13.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_lf15.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_lf8.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_pa120.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_pa120_space.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_show_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_show_1_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_show_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_show_2_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_show_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_show_3_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_slider_thumb.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_btn_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_btn_1_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_btn_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_btn_2_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_btn_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_btn_3_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_btn_4.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_btn_4_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_1_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_2_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_3_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_4.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_4_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_5.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_5_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_6.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_6_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_sysinfo.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_en.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_tc.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_sysinfo_en.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_sysinfo_tc.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_text.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_text_en.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_text_tc.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_time.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_time_en.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_time_tc.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_mode_date.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_mode_hardware.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_mode_text.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_mode_time.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_mode_weekday.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_select.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_110x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_116x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_160x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_180x400.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_180x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_240x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_240x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_240x400.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_240x427.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_270x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_320x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_320x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_320x320_round.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_320x86.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_360x360_round.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_400x180.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_400x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_427x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_480x110.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_480x116.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_480x160.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_480x180.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_480x270.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_480x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_480x480_round.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_86x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_animation.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_btn.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_btn_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_pause.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_play.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_player_control_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_1280x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_1920x440.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_1920x462.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_320x960.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_360x800.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_440x1920.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_462x1920.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_480x1280.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_480x800.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_480x854.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_540x960.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_800x360.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_800x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_854x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_960x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_960x540.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_res_240x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_res_240x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_res_320x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_res_320x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_round_mask_320x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_round_mask_360x360.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_round_mask_480x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_video_controls_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_video_controls_bg_alt.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/screen_led_deco_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/screen_led_deco_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/screen_led_deco_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/screen_led_deco_4.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/screen_led_deco_cz1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg_d.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg_e.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg_en.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg_f.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg_h.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg_p.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg_r.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg_tc.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg_x.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_content.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_content_btn.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_content_mask.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_date.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_date_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_icon.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_link_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_text.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_text_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_time.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_time_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_weekday.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_weekday_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_anim_sync.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_background.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_brightness.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_keyboard_sync_1.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_keyboard_sync_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_keyboard_sync_3.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_module.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_overlay.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_overlay_add_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_overlay_color_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_overlay_grid_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_overlay_table_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_params.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_brightness_bar.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_checkbox_off.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_checkbox_on.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_clip_a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_clip_b.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_close.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_close_2.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_dropdown.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_dropdown_bg_2x.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_dropdown_bg_4x.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_dropdown_highlight.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_loading_animation.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_progress_bar.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_round_close.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_round_confirm.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_scrollbar_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_scrollbar_thumb.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_shortcut_size_slider.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_thread_multi.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_thread_single.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_toggle_off.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_toggle_on.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shortcuts_panel.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shortcuts_panel_d.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shortcuts_panel_e.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shortcuts_panel_en.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shortcuts_panel_f.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shortcuts_panel_p.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shortcuts_panel_r.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shortcuts_panel_tc.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shortcuts_panel_x.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sidebar_about.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sidebar_about_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sidebar_about_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sidebar_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sidebar_no_device.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sidebar_sensor.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sidebar_sensor_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sidebar_splash.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sidebar_sysinfo_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_a.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_a_180.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_a_270.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_a_90.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_b.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_b_180.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_b_270.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_b_90.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_c.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_c_180.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_c_270.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_c_90.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_add_group.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_cpu.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_custom.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_dram.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_fan.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_gpu.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_hdd.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_net.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_next_page.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_prev_page.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_scrollbar.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_select.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_browser_filter.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_browser_filter_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label_d.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label_e.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label_en.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label_f.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label_h.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label_p.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label_r.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label_tc.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label_x.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_local_carousel.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_local_carousel_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_local_export_all.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_local_multi_select.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_local_multi_select_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_local_select_frame.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_local_select_frame_active.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_mask_label.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_110x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_116x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_1280x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_160x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_180x400.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_180x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_240x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_240x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_240x400.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_240x427.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_270x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_320x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_320x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_320x86.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_360x360.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_400x180.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_400x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_427x240.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_480x110.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_480x116.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_480x160.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_480x180.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_480x270.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_480x480.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_86x320.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_bg.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_bg_alt.png +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/base.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/base_handler.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/bus_bridge.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/color_and_add_panels.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/constants.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/display_mode_panels.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/eyedropper.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/gpu_reader_prompt.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/led_handler.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/overlay_element.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/overlay_grid.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/pipewire_capture.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/screen_capture.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/splash.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_about.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_activity_sidebar.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_color_wheel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_device.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_image_cut.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_info_module.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_led_control.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_preview.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_screen_led.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_sensor_picker.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_system_info.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_theme_mask.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_theme_setting.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_theme_web.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_video_cut.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/device_presentation.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/lcd_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/lcd_presentation_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/led_display.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/led_metrics_format.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/led_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/led_zone_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/overlay_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/overlay_serialization.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/preview_geometry.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/sensor_display.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/slideshow_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/theme_directories.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qapp.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/app.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/assets.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/base.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/bus_bridge.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/color_wheel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/device_picker.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/eyedropper.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/image_crop.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/about_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/cloud_theme_browser.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/configuration_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/device_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/display_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/led/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/led/_base.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/led/advanced_tab.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/led/color_tab.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/led/mode_tab.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/led/segment_tab.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/led/zone_tab.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/led_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/local_theme_browser.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/mask_browser.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/overlay_editor.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/preview_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/screencast_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/sidebar.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/status_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/system_panel.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/region_overlay.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/screen_overlay.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/sensor_picker.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/splash.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/video_crop.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/__init__.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/adapters/system/test_elevate.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/adapters/system/test_imc_timings.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/adapters/system/test_linux_imc.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/adapters/system/test_spd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/adapters/system/test_windows_mem_disk.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/adapters/system/test_windows_permissions.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/adapters/system/test_windows_wmi_seam.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/conftest.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/mock_platform.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_api_routes.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_app_senders.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_autostart.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_autostart_macos.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_autostart_windows.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_backend_finish.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_boot_animation_command.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_boot_animation_device.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_bulk_lcd_geometry.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_clock.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_cloud_themes.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_commands.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_connect_failure_hints.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_connection_issues.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_control_center.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_daemon.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_data_install.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_dc_codec.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_dc_reader.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_device_catalog_smoke.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_device_recovery.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_device_sender.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_device_surface_matrix.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_diagnostics.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_display_tweaks.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_first_run_and_migration.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_gpu_extras_install.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_gpu_preference.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_gpu_reader_prompt.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_gui_empty_state.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_gui_entry_exit.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_gui_panels.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_gui_raise_existing.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_hid_lcd_geometry.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_hotplug.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_hotplug_bsd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_hotplug_polling.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_hotplug_windows.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_i18n.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_integration_pipeline.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_ipc_server.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_ipc_windows_fallback.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_ipc_wire.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_lcd_panel_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_animation_loop.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_assets.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_display_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_effects.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_handler_requires_app.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_panel_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_pm_registry.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_remap.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_send.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_settings_commands.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_library_migration.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_ly_lcd_geometry.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_mask_commands.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_mask_rendering.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_metrics_personalize.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_mock_reply_override.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_models.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_orientation_cloud_background.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_overlay_grid_adapter.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_overlay_resolve.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_packaging_entrypoints.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_platform_hw_probes.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_pyusb_find_seam.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_quickstart.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_render_led.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_run_setup_order.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_scsi_lcd_geometry.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_selinux_install.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_send_color.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_sensor_chain.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_sensors.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_sensors_bsd.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_sensors_lhm_subprocess.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_sensors_macos.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_sensors_nvml.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_sensors_windows.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_settings_migration.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_shell.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_system_commands.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_system_resume.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_theme_service.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_transports.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_ui_surfaces_smoke.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_variant_presentation_audit.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_video_cache.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_video_playback.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_wmi_gpu_fallback.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/ui/presentation/test_device_presentation.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/ui/presentation/test_lcd_presentation_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/ui/presentation/test_led_metrics_format.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/ui/presentation/test_led_zone_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/ui/presentation/test_overlay_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/ui/presentation/test_overlay_view_binding.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/ui/presentation/test_preview_geometry.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/ui/presentation/test_sensor_display.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/ui/presentation/test_slideshow_model.py +0 -0
- {trcc_linux-9.7.9 → trcc_linux-9.8.0}/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.
|
|
3
|
+
Version: 9.8.0
|
|
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
|
|
@@ -147,6 +147,7 @@ class BulkLcd(Device[BulkTransport]):
|
|
|
147
147
|
width=base.width, height=base.height,
|
|
148
148
|
jpeg=(self._pm not in _RGB565_PMS),
|
|
149
149
|
big_endian=base.big_endian, rotate=base.rotate,
|
|
150
|
+
widescreen=base.widescreen,
|
|
150
151
|
encode_baseline=encode_baseline,
|
|
151
152
|
encode_base=encode_base, encode_invert=base.encode_invert,
|
|
152
153
|
encode_sub_bases=(), # folded into encode_base above
|
|
@@ -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
|
)
|
|
@@ -21,6 +21,7 @@ from ..events import (
|
|
|
21
21
|
ThemeLoaded,
|
|
22
22
|
ThemeSaved,
|
|
23
23
|
)
|
|
24
|
+
from ..geometry import content_is_portrait, plan_orientation
|
|
24
25
|
from ..registry import find_product
|
|
25
26
|
from ..results import (
|
|
26
27
|
CloudCategoryEntry,
|
|
@@ -45,6 +46,7 @@ from ..results import (
|
|
|
45
46
|
from ._base import Command
|
|
46
47
|
from ._helpers import (
|
|
47
48
|
_IMAGE_EXTS,
|
|
49
|
+
_LEGACY_BG_FILENAME,
|
|
48
50
|
_LEGACY_MASK_FILENAME,
|
|
49
51
|
_VIDEO_EXTS_FOR_LOAD,
|
|
50
52
|
_VIDEO_EXTS_FOR_SAVE,
|
|
@@ -70,6 +72,17 @@ if TYPE_CHECKING:
|
|
|
70
72
|
log = logging.getLogger(__name__)
|
|
71
73
|
|
|
72
74
|
|
|
75
|
+
def _theme_preview(theme_dir: Path) -> str:
|
|
76
|
+
"""Tile image for a theme dir: ``Theme.png`` → ``00.png`` → any ``*.png``
|
|
77
|
+
→ ``""``. Single source for the browser tile so every UI agrees."""
|
|
78
|
+
for name in ("Theme.png", "00.png"):
|
|
79
|
+
candidate = theme_dir / name
|
|
80
|
+
if candidate.is_file():
|
|
81
|
+
return str(candidate)
|
|
82
|
+
any_png = next(theme_dir.glob("*.png"), None)
|
|
83
|
+
return str(any_png) if any_png is not None else ""
|
|
84
|
+
|
|
85
|
+
|
|
73
86
|
@dataclass(frozen=True, slots=True)
|
|
74
87
|
class LoadTheme(Command[ThemeResult]):
|
|
75
88
|
"""Parse a theme, persist it, render the first frame, and send it.
|
|
@@ -377,7 +390,27 @@ class SaveTheme(Command[ThemeResult]):
|
|
|
377
390
|
message=(f"no active theme for {self.key} — load one first"),
|
|
378
391
|
)
|
|
379
392
|
|
|
380
|
-
|
|
393
|
+
device_settings = app.settings.for_device(self.key)
|
|
394
|
+
# Save into the folder matching the COMPOSED orientation, not the raw
|
|
395
|
+
# angle — the content's parent folder IS the orientation. A connected
|
|
396
|
+
# device carries its profile, so we key the resolution on the same
|
|
397
|
+
# plan_orientation decision the renderer uses: a portrait selection
|
|
398
|
+
# (portrait mask / portrait theme) → theme{h}{w}; landscape content →
|
|
399
|
+
# theme{w}{h}. This makes save + reload agree — a theme always reloads
|
|
400
|
+
# into the orientation it was composed in. Disconnected (no live
|
|
401
|
+
# profile) falls back to the angle-keyed resolution, unchanged.
|
|
402
|
+
device = app.devices.get(self.key)
|
|
403
|
+
profile = device.profile if device is not None else None
|
|
404
|
+
if profile is not None:
|
|
405
|
+
portrait = content_is_portrait(
|
|
406
|
+
theme, profile, device_settings.mask_path,
|
|
407
|
+
device_settings.mask_visible,
|
|
408
|
+
)
|
|
409
|
+
resolution = plan_orientation(
|
|
410
|
+
profile, device_settings.orientation, portrait,
|
|
411
|
+
).canvas
|
|
412
|
+
else:
|
|
413
|
+
resolution = _resolve_oriented_resolution(app, self.key)
|
|
381
414
|
if resolution is None:
|
|
382
415
|
log.warning(
|
|
383
416
|
"SaveTheme: cannot resolve resolution for %s "
|
|
@@ -393,7 +426,6 @@ class SaveTheme(Command[ThemeResult]):
|
|
|
393
426
|
|
|
394
427
|
import shutil
|
|
395
428
|
target = app.platform.paths().user_theme_dir(w, h) / self.name
|
|
396
|
-
device_settings = app.settings.for_device(self.key)
|
|
397
429
|
log.info(
|
|
398
430
|
"SaveTheme: source=%s target=%s resolution=%dx%d "
|
|
399
431
|
"bg_override=%r mask_override=%r user_elements=%d "
|
|
@@ -413,33 +445,57 @@ class SaveTheme(Command[ThemeResult]):
|
|
|
413
445
|
message=f"A theme named {self.name!r} already exists.",
|
|
414
446
|
)
|
|
415
447
|
|
|
448
|
+
# Build into a staging dir, THEN atomically swap it over the target.
|
|
449
|
+
# The theme being saved is usually the target ITSELF (re-saving the
|
|
450
|
+
# loaded theme — a prior save re-points the active theme at the saved
|
|
451
|
+
# dir), so deleting the target up-front would destroy the source's own
|
|
452
|
+
# background/mask BEFORE _build_manifest reads them — the cause of the
|
|
453
|
+
# "source theme has no background" data loss. Staging keeps the source
|
|
454
|
+
# intact until every asset is captured, and makes overwrite crash-safe.
|
|
455
|
+
staging = target.parent / f".{self.name}.saving"
|
|
416
456
|
try:
|
|
417
457
|
target.parent.mkdir(parents=True, exist_ok=True)
|
|
418
|
-
if
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
target.mkdir(exist_ok=False)
|
|
458
|
+
if staging.exists():
|
|
459
|
+
shutil.rmtree(staging)
|
|
460
|
+
staging.mkdir(exist_ok=False)
|
|
422
461
|
except OSError as e:
|
|
423
|
-
log.warning("SaveTheme: mkdir failed for %s: %s",
|
|
462
|
+
log.warning("SaveTheme: mkdir failed for staging %s: %s", staging, e)
|
|
424
463
|
return ThemeResult(
|
|
425
464
|
ok=False, key=self.key, theme_name=self.name,
|
|
426
|
-
message=f"failed to create
|
|
465
|
+
message=f"failed to create staging directory: {e}",
|
|
427
466
|
)
|
|
428
467
|
|
|
429
468
|
try:
|
|
430
469
|
manifest = self._build_manifest(
|
|
431
|
-
app,
|
|
470
|
+
app, staging, theme, device_settings, w, h,
|
|
432
471
|
)
|
|
433
|
-
self._write_manifest(
|
|
434
|
-
self._write_thumbnail(app,
|
|
472
|
+
self._write_manifest(staging, manifest)
|
|
473
|
+
self._write_thumbnail(app, staging, theme)
|
|
435
474
|
except (OSError, ThemeError, TrccError) as e:
|
|
436
|
-
log.exception("SaveTheme: assembly failed;
|
|
437
|
-
|
|
475
|
+
log.exception("SaveTheme: assembly failed; discarding staging %s",
|
|
476
|
+
staging)
|
|
477
|
+
shutil.rmtree(staging, ignore_errors=True)
|
|
438
478
|
return ThemeResult(
|
|
439
479
|
ok=False, key=self.key, theme_name=self.name,
|
|
440
480
|
message=f"failed to assemble saved theme: {e}",
|
|
441
481
|
)
|
|
442
482
|
|
|
483
|
+
# Swap staging → target. Every source asset is now captured in staging,
|
|
484
|
+
# so removing the (possibly ==source) target is safe.
|
|
485
|
+
try:
|
|
486
|
+
if target.exists():
|
|
487
|
+
log.warning("SaveTheme: overwriting existing theme %s", target)
|
|
488
|
+
shutil.rmtree(target)
|
|
489
|
+
staging.replace(target)
|
|
490
|
+
except OSError as e:
|
|
491
|
+
log.exception("SaveTheme: finalize failed; discarding staging %s",
|
|
492
|
+
staging)
|
|
493
|
+
shutil.rmtree(staging, ignore_errors=True)
|
|
494
|
+
return ThemeResult(
|
|
495
|
+
ok=False, key=self.key, theme_name=self.name,
|
|
496
|
+
message=f"failed to finalize saved theme: {e}",
|
|
497
|
+
)
|
|
498
|
+
|
|
443
499
|
# Saved theme is now fully self-contained — drop the device's
|
|
444
500
|
# overrides + user edits, then re-point BOTH the live active
|
|
445
501
|
# theme (what the renderer reads via app.active_themes) and the
|
|
@@ -561,16 +617,22 @@ class SaveTheme(Command[ThemeResult]):
|
|
|
561
617
|
width: int,
|
|
562
618
|
height: int,
|
|
563
619
|
) -> str | None:
|
|
564
|
-
"""
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
620
|
+
"""Link the resolved current background into the saved theme dir.
|
|
621
|
+
|
|
622
|
+
Every asset a saved theme uses is a SYMLINK into the shared data tree —
|
|
623
|
+
no bytes duplicated; only the DC/config (``trcc.json``) is a real copy
|
|
624
|
+
edited per save. The background links in under its standard in-dir name
|
|
625
|
+
— ``00.png`` for an image, ``Theme.<ext>`` for a video — so the loader
|
|
626
|
+
finds it by convention and no manifest ref is needed (returns ``None``).
|
|
627
|
+
|
|
628
|
+
Asset home (the symlink target): a catalog asset (cloud
|
|
629
|
+
``cloud_theme_dir`` / user ``user_background_dir`` ``web/{w}{h}``) is
|
|
630
|
+
linked in place; a loose image/video is first stored into the user
|
|
631
|
+
library (deduped, native res) and the link points there. On a
|
|
632
|
+
filesystem WITHOUT symlink support the asset is REFERENCED instead (the
|
|
633
|
+
``web/{w}{h}/…`` ref is returned and the loader resolves it).
|
|
634
|
+
``DeviceSettings.background_path`` (override) wins over the source theme.
|
|
571
635
|
"""
|
|
572
|
-
import shutil
|
|
573
|
-
|
|
574
636
|
src = self._pick_asset(
|
|
575
637
|
s.background_path, app.themes.background_path(theme), "background",
|
|
576
638
|
)
|
|
@@ -580,17 +642,36 @@ class SaveTheme(Command[ThemeResult]):
|
|
|
580
642
|
return None
|
|
581
643
|
|
|
582
644
|
ext = src.suffix.lower()
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
log.info("SaveTheme: video bg bundled → %s", dst)
|
|
587
|
-
return None
|
|
645
|
+
is_video = ext in _VIDEO_EXTS_FOR_SAVE
|
|
646
|
+
paths = app.platform.paths()
|
|
647
|
+
src_resolved = src.resolve()
|
|
588
648
|
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
649
|
+
# Stable home for the asset (what the symlink points at) + the ref that
|
|
650
|
+
# names it (the no-symlink fallback). Catalog asset → link in place;
|
|
651
|
+
# loose asset → give it a deduped home in the user library first.
|
|
652
|
+
canonical: Path | None = None
|
|
653
|
+
ref: str | None = None
|
|
654
|
+
for root in (paths.user_background_dir(width, height),
|
|
655
|
+
paths.cloud_theme_dir(width, height)):
|
|
656
|
+
if src_resolved.is_relative_to(root.resolve()):
|
|
657
|
+
canonical = src_resolved
|
|
658
|
+
ref = f"web/{width}{height}/{src.name}"
|
|
659
|
+
break
|
|
660
|
+
if canonical is None:
|
|
661
|
+
data = (src.read_bytes() if is_video
|
|
662
|
+
else app.renderer.encode_png(app.renderer.open_image(src)))
|
|
663
|
+
ref = app.themes.store_background(
|
|
664
|
+
data, ext if is_video else ".png", width, height,
|
|
665
|
+
)
|
|
666
|
+
canonical = paths.user_background_dir(width, height) / Path(ref).name
|
|
667
|
+
|
|
668
|
+
in_dir = f"Theme{ext}" if is_video else _LEGACY_BG_FILENAME
|
|
669
|
+
if self._try_symlink(target / in_dir, canonical):
|
|
670
|
+
log.info("SaveTheme: background %s → symlink %s → %s (no copy)",
|
|
671
|
+
src.name, in_dir, canonical)
|
|
672
|
+
return None
|
|
673
|
+
log.info("SaveTheme: background %s → reference %s (no symlink support)",
|
|
674
|
+
src.name, ref)
|
|
594
675
|
return ref
|
|
595
676
|
|
|
596
677
|
def _store_mask(
|
|
@@ -612,12 +693,13 @@ class SaveTheme(Command[ThemeResult]):
|
|
|
612
693
|
the user's edited metrics live inline in the saved manifest's
|
|
613
694
|
``elements``, so no DC is written here.
|
|
614
695
|
|
|
615
|
-
A theme's OWN bundled mask (not in any catalog) is
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
``
|
|
619
|
-
|
|
620
|
-
|
|
696
|
+
A theme's OWN bundled / loose mask (not in any catalog) is first stored
|
|
697
|
+
into the user mask library (deduped) and the symlink points there. On a
|
|
698
|
+
filesystem WITHOUT symlink support the mask is REFERENCED instead (the
|
|
699
|
+
``web/zt{w}{h}/<id>`` ref is returned and the loader resolves it). The
|
|
700
|
+
mask's own ``config1.dc`` stays with the mask in the library; the saved
|
|
701
|
+
theme's overlay layout lives in its own ``trcc.json`` (baked elements).
|
|
702
|
+
``DeviceSettings.mask_path`` (override) wins over the source theme's mask.
|
|
621
703
|
"""
|
|
622
704
|
src = self._pick_asset(
|
|
623
705
|
s.mask_path, app.themes.mask_path(theme), "mask",
|
|
@@ -626,29 +708,59 @@ class SaveTheme(Command[ThemeResult]):
|
|
|
626
708
|
log.info("SaveTheme: no mask to save (neither override nor source)")
|
|
627
709
|
return None
|
|
628
710
|
|
|
629
|
-
# Catalog mask (cloud or prior upload) → reference it, never copy.
|
|
630
|
-
src_resolved = src.resolve()
|
|
631
711
|
paths = app.platform.paths()
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
712
|
+
src_resolved = src.resolve()
|
|
713
|
+
mask_dir = src_resolved.parent
|
|
714
|
+
|
|
715
|
+
# Stable home for the mask's 01.png (symlink target) + its ref (the
|
|
716
|
+
# no-symlink fallback). Catalog mask → link in place; loose mask → give
|
|
717
|
+
# it a deduped home in the user mask library first.
|
|
718
|
+
canonical: Path | None = None
|
|
719
|
+
ref: str | None = None
|
|
720
|
+
for root in (paths.user_mask_dir(width, height),
|
|
721
|
+
paths.cloud_mask_dir(width, height)):
|
|
722
|
+
if mask_dir.is_relative_to(root.resolve()):
|
|
723
|
+
canonical = src_resolved
|
|
724
|
+
ref = f"web/zt{width}{height}/{mask_dir.name}"
|
|
725
|
+
break
|
|
726
|
+
if canonical is None:
|
|
727
|
+
try:
|
|
728
|
+
image = src.read_bytes()
|
|
729
|
+
except OSError as e:
|
|
730
|
+
log.warning("SaveTheme: could not read mask %s (%s) — mask "
|
|
731
|
+
"omitted", src, e)
|
|
732
|
+
return None
|
|
733
|
+
ref = app.themes.store_mask(image, width, height)
|
|
734
|
+
canonical = (paths.user_mask_dir(width, height)
|
|
735
|
+
/ Path(ref).name / _LEGACY_MASK_FILENAME)
|
|
736
|
+
|
|
737
|
+
if self._try_symlink(target / _LEGACY_MASK_FILENAME, canonical):
|
|
738
|
+
log.info("SaveTheme: mask %s → symlink 01.png → %s (no copy)",
|
|
739
|
+
src.name, canonical)
|
|
740
|
+
return None
|
|
741
|
+
log.info("SaveTheme: mask %s → reference %s (no symlink support)",
|
|
742
|
+
src.name, ref)
|
|
743
|
+
return ref
|
|
639
744
|
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
745
|
+
@staticmethod
|
|
746
|
+
def _try_symlink(link: Path, asset: Path) -> bool:
|
|
747
|
+
"""Create *link* as a symlink to *asset*.
|
|
748
|
+
|
|
749
|
+
True on success; False when the filesystem can't symlink (e.g. Windows
|
|
750
|
+
without the privilege, exotic FS) so the caller falls back to a manifest
|
|
751
|
+
reference. An existing entry at *link* (a prior save's symlink) is
|
|
752
|
+
replaced. *asset* is linked as an absolute path so the link resolves
|
|
753
|
+
regardless of the theme dir's location.
|
|
754
|
+
"""
|
|
644
755
|
try:
|
|
645
|
-
|
|
756
|
+
if link.is_symlink() or link.exists():
|
|
757
|
+
link.unlink()
|
|
758
|
+
link.symlink_to(asset)
|
|
759
|
+
return True
|
|
646
760
|
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
|
|
761
|
+
log.info("SaveTheme: symlink %s → %s unavailable (%s) — referencing",
|
|
762
|
+
link, asset, e)
|
|
763
|
+
return False
|
|
652
764
|
|
|
653
765
|
@staticmethod
|
|
654
766
|
def _write_manifest(target: Path, manifest: dict) -> None:
|
|
@@ -1056,11 +1168,15 @@ class ListThemes(Command[ThemesListResult]):
|
|
|
1056
1168
|
directory: Path | None = None
|
|
1057
1169
|
|
|
1058
1170
|
def execute(self, app: App) -> ThemesListResult:
|
|
1171
|
+
paths = app.platform.paths()
|
|
1059
1172
|
if self.directory is not None:
|
|
1060
1173
|
roots = [self.directory]
|
|
1061
1174
|
elif self.resolution is not None:
|
|
1062
|
-
paths = app.platform.paths()
|
|
1063
1175
|
w, h = self.resolution
|
|
1176
|
+
# Shipped (program / cloud-downloaded) themes FIRST, the user's
|
|
1177
|
+
# saved themes AFTER — both listed, neither hiding the other (dedupe
|
|
1178
|
+
# by PATH, not name, so a same-named user + shipped pair both belong,
|
|
1179
|
+
# told apart by ``origin``). (#theme-collision)
|
|
1064
1180
|
roots = [paths.theme_dir(w, h), paths.user_theme_dir(w, h)]
|
|
1065
1181
|
else:
|
|
1066
1182
|
return ThemesListResult(
|
|
@@ -1068,16 +1184,22 @@ class ListThemes(Command[ThemesListResult]):
|
|
|
1068
1184
|
message="ListThemes requires resolution=(w,h) or directory=...",
|
|
1069
1185
|
)
|
|
1070
1186
|
|
|
1071
|
-
|
|
1187
|
+
# Origin is location-derived (theme under user_data_dir → "user"), so
|
|
1188
|
+
# it is correct in directory mode too and replaces name heuristics.
|
|
1189
|
+
user_root = paths.user_data_dir().resolve()
|
|
1190
|
+
seen_paths: set[Path] = set()
|
|
1072
1191
|
entries: list[ThemeListEntry] = []
|
|
1073
1192
|
for root in roots:
|
|
1074
1193
|
for theme in app.themes.list(root):
|
|
1075
|
-
|
|
1194
|
+
resolved = theme.path.resolve()
|
|
1195
|
+
if resolved in seen_paths:
|
|
1076
1196
|
continue
|
|
1077
|
-
|
|
1197
|
+
seen_paths.add(resolved)
|
|
1078
1198
|
entries.append(ThemeListEntry(
|
|
1079
1199
|
name=theme.name, resolution=theme.resolution,
|
|
1080
1200
|
path=str(theme.path),
|
|
1201
|
+
preview=str(_theme_preview(theme.path)),
|
|
1202
|
+
origin="user" if resolved.is_relative_to(user_root) else "shipped",
|
|
1081
1203
|
))
|
|
1082
1204
|
target_str = "; ".join(str(r) for r in roots)
|
|
1083
1205
|
return ThemesListResult(
|
|
@@ -1389,6 +1511,10 @@ class RestoreLastTheme(Command[ThemeResult]):
|
|
|
1389
1511
|
# the theme's bundled layout (that's an explicit-switch behavior).
|
|
1390
1512
|
candidate = Path(stored)
|
|
1391
1513
|
if candidate.is_dir():
|
|
1514
|
+
# Load EXACTLY the persisted path (re-rooted to the current
|
|
1515
|
+
# orientation). A user save never overwrites the shipped theme of
|
|
1516
|
+
# the same name, so restore must NOT re-resolve a shipped pointer to
|
|
1517
|
+
# the user one — it loads whatever the user last selected.
|
|
1392
1518
|
candidate = oriented_theme_path(app, self.key, candidate)
|
|
1393
1519
|
return LoadTheme(
|
|
1394
1520
|
key=self.key, path=candidate, reset_overrides=False,
|