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.
Files changed (1016) hide show
  1. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/PKG-INFO +1 -1
  2. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/pyproject.toml +1 -1
  3. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/__version__.py +1 -1
  4. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/device/bulk_lcd.py +1 -0
  5. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_hotplug.py +7 -0
  6. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_udev.py +20 -4
  7. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/app.py +16 -3
  8. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/commands/_helpers.py +21 -5
  9. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/commands/device.py +3 -1
  10. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/commands/led.py +6 -0
  11. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/commands/theme.py +187 -61
  12. trcc_linux-9.8.0/src/trcc/core/geometry.py +121 -0
  13. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/protocol.py +57 -4
  14. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/results.py +14 -1
  15. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/_clock.py +17 -0
  16. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/display.py +77 -98
  17. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/overlay.py +12 -7
  18. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/theme.py +29 -6
  19. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/display.py +15 -1
  20. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/main.py +12 -0
  21. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/_ui_state.py +7 -21
  22. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/lcd_handler.py +28 -21
  23. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/trcc_app.py +20 -11
  24. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_theme_local.py +37 -93
  25. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_architecture_boundaries.py +122 -0
  26. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_cli_commands.py +33 -3
  27. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_display_rotation.py +30 -0
  28. trcc_linux-9.8.0/tests/test_geometry.py +169 -0
  29. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_orientation_reload.py +42 -0
  30. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_overlay_clock.py +27 -0
  31. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_theme_persistence.py +375 -40
  32. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_udev.py +32 -6
  33. trcc_linux-9.8.0/tests/test_wire_rotation.py +94 -0
  34. trcc_linux-9.8.0/tests/ui/presentation/test_theme_local_binding.py +59 -0
  35. trcc_linux-9.7.9/tests/ui/presentation/test_theme_local_binding.py +0 -31
  36. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/.gitignore +0 -0
  37. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/LICENSE +0 -0
  38. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/README.md +0 -0
  39. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/__init__.py +0 -0
  40. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/__main__.py +0 -0
  41. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/_boot.py +0 -0
  42. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/_entry.py +0 -0
  43. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/__init__.py +0 -0
  44. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/device/__init__.py +0 -0
  45. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/device/_pyusb_find.py +0 -0
  46. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/device/hid_lcd.py +0 -0
  47. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/device/led.py +0 -0
  48. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/device/ly_lcd.py +0 -0
  49. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/device/scsi_lcd.py +0 -0
  50. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/device/transport.py +0 -0
  51. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/device/usb_bot_scsi.py +0 -0
  52. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/diagnostics/__init__.py +0 -0
  53. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/diagnostics/adapter.py +0 -0
  54. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/diagnostics/debug_report.py +0 -0
  55. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/diagnostics/doctor.py +0 -0
  56. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/diagnostics/health.py +0 -0
  57. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/infra/__init__.py +0 -0
  58. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/infra/logging.py +0 -0
  59. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/infra/network.py +0 -0
  60. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/infra/send_scheduler.py +0 -0
  61. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/infra/sysinfo_config.py +0 -0
  62. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/render/__init__.py +0 -0
  63. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/render/qt.py +0 -0
  64. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/repo/__init__.py +0 -0
  65. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/repo/data_install.py +0 -0
  66. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/repo/github_releases.py +0 -0
  67. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/repo/http.py +0 -0
  68. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/screencast/__init__.py +0 -0
  69. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/screencast/qt.py +0 -0
  70. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/__init__.py +0 -0
  71. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/_hwinfo.py +0 -0
  72. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/_lhm.py +0 -0
  73. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/_macos_hid.py +0 -0
  74. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/_msacpi.py +0 -0
  75. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/_powermetrics.py +0 -0
  76. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/_smc.py +0 -0
  77. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/_sysctl.py +0 -0
  78. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/_wmi_gpu.py +0 -0
  79. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/aggregator.py +0 -0
  80. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/bsd.py +0 -0
  81. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/chain.py +0 -0
  82. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/gpu_detect.py +0 -0
  83. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/hwmon.py +0 -0
  84. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/macos.py +0 -0
  85. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/nvml.py +0 -0
  86. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/psutil_sources.py +0 -0
  87. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/sensors/windows.py +0 -0
  88. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/__init__.py +0 -0
  89. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_autostart.py +0 -0
  90. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_devd.py +0 -0
  91. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_elevate.py +0 -0
  92. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_imc_timings.py +0 -0
  93. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_macos_setup.py +0 -0
  94. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_selinux.py +0 -0
  95. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_windows_wmi.py +0 -0
  96. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/_winusb.py +0 -0
  97. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/bsd.py +0 -0
  98. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/linux.py +0 -0
  99. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/macos.py +0 -0
  100. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/spd.py +0 -0
  101. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/system/windows.py +0 -0
  102. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/theme/__init__.py +0 -0
  103. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/adapters/theme/cloud.py +0 -0
  104. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/LibreHardwareMonitor.config +0 -0
  105. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/com.github.lexonight1.trcc.policy +0 -0
  106. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/fonts/MSYH.TTC +0 -0
  107. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/fonts/MSYHBD.TTC +0 -0
  108. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/fonts/README.md +0 -0
  109. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/icons/app.ico +0 -0
  110. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/icons/trcc.png +0 -0
  111. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/icons/trcc_128x128.png +0 -0
  112. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/icons/trcc_16x16.png +0 -0
  113. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/icons/trcc_24x24.png +0 -0
  114. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/icons/trcc_256x256.png +0 -0
  115. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/icons/trcc_32x32.png +0 -0
  116. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/icons/trcc_48x48.png +0 -0
  117. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/icons/trcc_64x64.png +0 -0
  118. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/trcc-imc +0 -0
  119. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/trcc-linux.desktop +0 -0
  120. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/assets/trcc-quirk-fix.service +0 -0
  121. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/__init__.py +0 -0
  122. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/_colors.py +0 -0
  123. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/_safe.py +0 -0
  124. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/_version.py +0 -0
  125. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/commands/__init__.py +0 -0
  126. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/commands/_base.py +0 -0
  127. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/commands/system.py +0 -0
  128. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/device_recovery.py +0 -0
  129. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/diagnostics.py +0 -0
  130. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/errors.py +0 -0
  131. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/events.py +0 -0
  132. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/i18n.py +0 -0
  133. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/led_models.py +0 -0
  134. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/led_protocol.py +0 -0
  135. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/models.py +0 -0
  136. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/ports.py +0 -0
  137. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/registry.py +0 -0
  138. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/core/variants.py +0 -0
  139. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/daemon.py +0 -0
  140. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/data/trcc_usb.te +0 -0
  141. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ipc.py +0 -0
  142. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/proxy.py +0 -0
  143. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/__init__.py +0 -0
  144. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/_ansi.py +0 -0
  145. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/_dc.py +0 -0
  146. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/audio.py +0 -0
  147. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/cloud_theme.py +0 -0
  148. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/data_install.py +0 -0
  149. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/device_sender.py +0 -0
  150. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/first_run.py +0 -0
  151. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/led_animation_loop.py +0 -0
  152. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/led_effects.py +0 -0
  153. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/led_segment.py +0 -0
  154. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/media.py +0 -0
  155. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/metrics_loop.py +0 -0
  156. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/metrics_personalize.py +0 -0
  157. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/migration.py +0 -0
  158. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/quickstart.py +0 -0
  159. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/settings.py +0 -0
  160. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/slideshow.py +0 -0
  161. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/video_cache.py +0 -0
  162. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/services/video_export.py +0 -0
  163. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/__init__.py +0 -0
  164. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/_errors.py +0 -0
  165. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/__init__.py +0 -0
  166. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/_shared.py +0 -0
  167. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/config.py +0 -0
  168. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/devices.py +0 -0
  169. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/display.py +0 -0
  170. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/led.py +0 -0
  171. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/main.py +0 -0
  172. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/schemas.py +0 -0
  173. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/system.py +0 -0
  174. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/theme.py +0 -0
  175. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/api/trcc.py +0 -0
  176. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/__init__.py +0 -0
  177. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/_ctx.py +0 -0
  178. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/config.py +0 -0
  179. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/device.py +0 -0
  180. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/led.py +0 -0
  181. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/shell.py +0 -0
  182. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/system.py +0 -0
  183. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/cli/theme.py +0 -0
  184. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/__init__.py +0 -0
  185. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/240240.gif +0 -0
  186. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/240320.gif +0 -0
  187. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/320240.gif +0 -0
  188. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/320320.gif +0 -0
  189. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AK120 Digital.png +0 -0
  190. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AK120 Digitala.png +0 -0
  191. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AK120_Digital.png +0 -0
  192. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AK120_Digitala.png +0 -0
  193. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AS120 VISION.png +0 -0
  194. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AS120 VISIONa.png +0 -0
  195. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AS120_VISION.png +0 -0
  196. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AS120_VISIONa.png +0 -0
  197. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AX120 DIGITAL.png +0 -0
  198. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AX120 DIGITALa.png +0 -0
  199. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AX120_DIGITAL.png +0 -0
  200. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1AX120_DIGITALa.png +0 -0
  201. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1BA120 VISION.png +0 -0
  202. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1BA120 VISIONa.png +0 -0
  203. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1BA120_VISION.png +0 -0
  204. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1BA120_VISIONa.png +0 -0
  205. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CORE VISION.png +0 -0
  206. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CORE VISIONa.png +0 -0
  207. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CORE_VISION.png +0 -0
  208. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CORE_VISIONa.png +0 -0
  209. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CZ1.png +0 -0
  210. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CZ1a.png +0 -0
  211. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CZ2.png +0 -0
  212. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CZ2a.png +0 -0
  213. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CZTV.png +0 -0
  214. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1CZTVa.png +0 -0
  215. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1ELITE VISION.png +0 -0
  216. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1ELITE VISIONa.png +0 -0
  217. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1ELITE_VISION.png +0 -0
  218. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1ELITE_VISIONa.png +0 -0
  219. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PRO.png +0 -0
  220. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PROa.png +0 -0
  221. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PRO.png +0 -0
  222. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PROa.png +0 -0
  223. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN VISION V2.png +0 -0
  224. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN VISION V2a.png +0 -0
  225. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PRO.png +0 -0
  226. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PROa.png +0 -0
  227. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SE.png +0 -0
  228. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SEa.png +0 -0
  229. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME.png +0 -0
  230. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN WARFRAMEa.png +0 -0
  231. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PRO.png +0 -0
  232. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PROa.png +0 -0
  233. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PRO.png +0 -0
  234. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PROa.png +0 -0
  235. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2.png +0 -0
  236. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2a.png +0 -0
  237. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME.png +0 -0
  238. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PRO.png +0 -0
  239. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PROa.png +0 -0
  240. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SE.png +0 -0
  241. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SEa.png +0 -0
  242. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAMEa.png +0 -0
  243. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1GRAND VISION.png +0 -0
  244. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1GRAND VISIONa.png +0 -0
  245. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1GRAND_VISION.png +0 -0
  246. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1GRAND_VISIONa.png +0 -0
  247. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITAL.png +0 -0
  248. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITALa.png +0 -0
  249. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1HYPER VISION.png +0 -0
  250. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1HYPER VISIONa.png +0 -0
  251. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1HYPER_VISION.png +0 -0
  252. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1HYPER_VISIONa.png +0 -0
  253. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1KVMALEDC6.png +0 -0
  254. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1KVMALEDC6a.png +0 -0
  255. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC1.png +0 -0
  256. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC10.png +0 -0
  257. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC10a.png +0 -0
  258. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC13.png +0 -0
  259. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC13a.png +0 -0
  260. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC15.png +0 -0
  261. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC15a.png +0 -0
  262. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC1a.png +0 -0
  263. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC2.png +0 -0
  264. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC2JD.png +0 -0
  265. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC2JDa.png +0 -0
  266. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC2a.png +0 -0
  267. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC3.png +0 -0
  268. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC3a.png +0 -0
  269. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC5.png +0 -0
  270. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC5a.png +0 -0
  271. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC7.png +0 -0
  272. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC7a.png +0 -0
  273. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC8.png +0 -0
  274. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC8a.png +0 -0
  275. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC9.png +0 -0
  276. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LC9a.png +0 -0
  277. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD10.png +0 -0
  278. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD10a.png +0 -0
  279. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD11.png +0 -0
  280. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD11a.png +0 -0
  281. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD6.png +0 -0
  282. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD6a.png +0 -0
  283. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD7.png +0 -0
  284. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD7a.png +0 -0
  285. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD8.png +0 -0
  286. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD8a.png +0 -0
  287. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD9.png +0 -0
  288. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LD9a.png +0 -0
  289. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF014.png +0 -0
  290. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF014a.png +0 -0
  291. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF10.png +0 -0
  292. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF10V.png +0 -0
  293. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF10Va.png +0 -0
  294. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF10a.png +0 -0
  295. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF11.png +0 -0
  296. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF11a.png +0 -0
  297. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF12.png +0 -0
  298. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF12a.png +0 -0
  299. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF13.png +0 -0
  300. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF13a.png +0 -0
  301. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF14.png +0 -0
  302. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF14a.png +0 -0
  303. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF15.png +0 -0
  304. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF15a.png +0 -0
  305. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF16.png +0 -0
  306. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF167.png +0 -0
  307. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF16a.png +0 -0
  308. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF17a.png +0 -0
  309. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF18.png +0 -0
  310. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF18a.png +0 -0
  311. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF19.png +0 -0
  312. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF19a.png +0 -0
  313. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF20.png +0 -0
  314. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF20a.png +0 -0
  315. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF21.png +0 -0
  316. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF21a.png +0 -0
  317. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF22.png +0 -0
  318. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF22a.png +0 -0
  319. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF25.png +0 -0
  320. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF25a.png +0 -0
  321. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF8.png +0 -0
  322. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LF8a.png +0 -0
  323. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM16SE.png +0 -0
  324. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM16SEa.png +0 -0
  325. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM19SE.png +0 -0
  326. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM19SEa.png +0 -0
  327. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM22.png +0 -0
  328. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM22a.png +0 -0
  329. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM24.png +0 -0
  330. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM24a.png +0 -0
  331. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM26.png +0 -0
  332. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM26a.png +0 -0
  333. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM27.png +0 -0
  334. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM27a.png +0 -0
  335. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM30.png +0 -0
  336. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1LM30a.png +0 -0
  337. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Mjolnir VISION PRO.png +0 -0
  338. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Mjolnir VISION PROa.png +0 -0
  339. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Mjolnir VISION.png +0 -0
  340. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Mjolnir VISIONa.png +0 -0
  341. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Mjolnir_VISION.png +0 -0
  342. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PRO.png +0 -0
  343. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PROa.png +0 -0
  344. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Mjolnir_VISIONa.png +0 -0
  345. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1PA120 DIGITAL.png +0 -0
  346. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1PA120 DIGITALa.png +0 -0
  347. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1PA120_DIGITAL.png +0 -0
  348. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1PA120_DIGITALa.png +0 -0
  349. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1PC1.png +0 -0
  350. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1PC1a.png +0 -0
  351. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RK120 DIGITAL.png +0 -0
  352. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RK120 DIGITALa.png +0 -0
  353. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RK120_DIGITAL.png +0 -0
  354. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RK120_DIGITALa.png +0 -0
  355. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RP130 VISION.png +0 -0
  356. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RP130 VISIONa.png +0 -0
  357. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RP130_VISION.png +0 -0
  358. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RP130_VISIONa.png +0 -0
  359. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RX1.png +0 -0
  360. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1RX1a.png +0 -0
  361. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Stream Vision.png +0 -0
  362. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Stream Visiona.png +0 -0
  363. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Stream_Vision.png +0 -0
  364. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/A1Stream_Visiona.png +0 -0
  365. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/about_dropdown.png +0 -0
  366. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/about_dropdown_bg.png +0 -0
  367. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/about_dropdown_select.png +0 -0
  368. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/about_update.png +0 -0
  369. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/about_update_overlay.png +0 -0
  370. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_about_bg.png +0 -0
  371. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_brightness_0.png +0 -0
  372. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_brightness_1.png +0 -0
  373. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_brightness_2.png +0 -0
  374. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_brightness_3.png +0 -0
  375. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_export.png +0 -0
  376. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_form_bg.png +0 -0
  377. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_help.png +0 -0
  378. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_import.png +0 -0
  379. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_main_bg.png +0 -0
  380. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_power.png +0 -0
  381. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_power_hover.png +0 -0
  382. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_save.png +0 -0
  383. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_sysinfo_bg.png +0 -0
  384. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_tab_cloud.png +0 -0
  385. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_tab_cloud_active.png +0 -0
  386. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_tab_local.png +0 -0
  387. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_tab_local_active.png +0 -0
  388. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_tab_mask.png +0 -0
  389. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_tab_mask_active.png +0 -0
  390. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_tab_mask_lower.png +0 -0
  391. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_tab_settings.png +0 -0
  392. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_tab_settings_active.png +0 -0
  393. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_theme_base_bg.png +0 -0
  394. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_theme_gallery_bg.png +0 -0
  395. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/app_theme_settings_bg.png +0 -0
  396. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/carousel_1.png +0 -0
  397. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/carousel_2.png +0 -0
  398. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/carousel_3.png +0 -0
  399. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/carousel_4.png +0 -0
  400. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/carousel_5.png +0 -0
  401. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/carousel_6.png +0 -0
  402. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/carousel_btn.png +0 -0
  403. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/carousel_btn_active.png +0 -0
  404. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/carousel_select_frame.png +0 -0
  405. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/color_panel_eyedropper.png +0 -0
  406. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/color_panel_picker.png +0 -0
  407. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/color_panel_selector_ring.png +0 -0
  408. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/color_panel_slider_thumb.png +0 -0
  409. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/color_wheel_knob.png +0 -0
  410. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/color_wheel_knob_0.png +0 -0
  411. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/color_wheel_toggle_hover.png +0 -0
  412. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/color_wheel_toggle_off.png +0 -0
  413. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/color_wheel_toggle_on.png +0 -0
  414. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_12h.png +0 -0
  415. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_24h.png +0 -0
  416. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_border.png +0 -0
  417. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_border_active.png +0 -0
  418. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_crop.png +0 -0
  419. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_date_dm.png +0 -0
  420. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_date_dmy.png +0 -0
  421. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_date_md.png +0 -0
  422. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_date_ymd.png +0 -0
  423. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_digit_font.png +0 -0
  424. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_fit_height.png +0 -0
  425. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_fit_width.png +0 -0
  426. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_function.png +0 -0
  427. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_function_active.png +0 -0
  428. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_icon.png +0 -0
  429. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_icon_gif.png +0 -0
  430. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_icon_image.png +0 -0
  431. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_icon_livestream.png +0 -0
  432. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_icon_mask.png +0 -0
  433. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_icon_network.png +0 -0
  434. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_icon_video.png +0 -0
  435. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m1.png +0 -0
  436. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m1_active.png +0 -0
  437. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m2.png +0 -0
  438. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m2_active.png +0 -0
  439. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m3.png +0 -0
  440. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m3_active.png +0 -0
  441. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m4.png +0 -0
  442. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m4_active.png +0 -0
  443. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m5.png +0 -0
  444. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m5_active.png +0 -0
  445. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m6.png +0 -0
  446. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_m6_active.png +0 -0
  447. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_minus.png +0 -0
  448. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_network_btn.png +0 -0
  449. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_plus.png +0 -0
  450. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_rotate.png +0 -0
  451. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_slider_thumb.png +0 -0
  452. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_text_font.png +0 -0
  453. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_unit_c.png +0 -0
  454. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/display_mode_unit_f.png +0 -0
  455. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/frozen_warframe_ultra.png +0 -0
  456. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/frozen_warframe_ultra_active.png +0 -0
  457. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_110x480.png +0 -0
  458. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_116x480.png +0 -0
  459. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_1280x480.png +0 -0
  460. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_160x480.png +0 -0
  461. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_180x400.png +0 -0
  462. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_180x480.png +0 -0
  463. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_240x240.png +0 -0
  464. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_240x320.png +0 -0
  465. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_240x400.png +0 -0
  466. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_240x427.png +0 -0
  467. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_270x480.png +0 -0
  468. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_320x240.png +0 -0
  469. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_320x320.png +0 -0
  470. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_320x86.png +0 -0
  471. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_360x360.png +0 -0
  472. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_400x180.png +0 -0
  473. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_400x240.png +0 -0
  474. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_427x240.png +0 -0
  475. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_480x110.png +0 -0
  476. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_480x116.png +0 -0
  477. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_480x160.png +0 -0
  478. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_480x180.png +0 -0
  479. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_480x270.png +0 -0
  480. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_480x480.png +0 -0
  481. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/image_cut_86x320.png +0 -0
  482. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_aggregate.png +0 -0
  483. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_aggregate_active.png +0 -0
  484. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_cz1.png +0 -0
  485. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_kvma.png +0 -0
  486. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_lc1.png +0 -0
  487. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_lc2.png +0 -0
  488. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_lf10.png +0 -0
  489. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_lf11.png +0 -0
  490. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_lf12.png +0 -0
  491. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_lf13.png +0 -0
  492. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_lf15.png +0 -0
  493. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_lf8.png +0 -0
  494. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_rgb_lf13.png +0 -0
  495. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_segment.png +0 -0
  496. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_bg_segment_4zone.png +0 -0
  497. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_dropdown.png +0 -0
  498. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_dropdown_2.png +0 -0
  499. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_dropdown_highlight.png +0 -0
  500. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_dropdown_highlight_2.png +0 -0
  501. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_dropdown_menu.png +0 -0
  502. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_dropdown_menu_2.png +0 -0
  503. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_external.png +0 -0
  504. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_external_active.png +0 -0
  505. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_helmet_1.png +0 -0
  506. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_helmet_2.png +0 -0
  507. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_helmet_3.png +0 -0
  508. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_helmet_4.png +0 -0
  509. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_helmet_5.png +0 -0
  510. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bar_1.png +0 -0
  511. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bar_2.png +0 -0
  512. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bar_3.png +0 -0
  513. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bar_4.png +0 -0
  514. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bar_5.png +0 -0
  515. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bar_6.png +0 -0
  516. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bg_1.png +0 -0
  517. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bg_2.png +0 -0
  518. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bg_3.png +0 -0
  519. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bg_4.png +0 -0
  520. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bg_5.png +0 -0
  521. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bg_5_active.png +0 -0
  522. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_meter_bg_6.png +0 -0
  523. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_1.png +0 -0
  524. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_10.png +0 -0
  525. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_10_active.png +0 -0
  526. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_11.png +0 -0
  527. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_11_active.png +0 -0
  528. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_12.png +0 -0
  529. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_12_active.png +0 -0
  530. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_1_active.png +0 -0
  531. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_2.png +0 -0
  532. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_2_active.png +0 -0
  533. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_3.png +0 -0
  534. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_3_active.png +0 -0
  535. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_4.png +0 -0
  536. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_4_active.png +0 -0
  537. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_5.png +0 -0
  538. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_5_active.png +0 -0
  539. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_6.png +0 -0
  540. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_6_active.png +0 -0
  541. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_7.png +0 -0
  542. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_7_active.png +0 -0
  543. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_8.png +0 -0
  544. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_8_active.png +0 -0
  545. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_9.png +0 -0
  546. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_mode_9_active.png +0 -0
  547. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_power.png +0 -0
  548. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_power_active.png +0 -0
  549. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preset_blue.png +0 -0
  550. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preset_cyan.png +0 -0
  551. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preset_green.png +0 -0
  552. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preset_orange.png +0 -0
  553. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preset_purple.png +0 -0
  554. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preset_red.png +0 -0
  555. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preset_white.png +0 -0
  556. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preset_yellow.png +0 -0
  557. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_ak120.png +0 -0
  558. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_ax120.png +0 -0
  559. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_cz1.png +0 -0
  560. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_frozen_horizon_pro.png +0 -0
  561. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_frozen_magic_pro.png +0 -0
  562. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_lc1.png +0 -0
  563. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_lc2.png +0 -0
  564. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_lf10.png +0 -0
  565. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_lf11.png +0 -0
  566. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_lf12.png +0 -0
  567. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_lf13.png +0 -0
  568. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_lf15.png +0 -0
  569. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_lf8.png +0 -0
  570. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_pa120.png +0 -0
  571. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_preview_pa120_space.png +0 -0
  572. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_show_1.png +0 -0
  573. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_show_1_active.png +0 -0
  574. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_show_2.png +0 -0
  575. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_show_2_active.png +0 -0
  576. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_show_3.png +0 -0
  577. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_show_3_active.png +0 -0
  578. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_slider_thumb.png +0 -0
  579. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_btn_1.png +0 -0
  580. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_btn_1_active.png +0 -0
  581. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_btn_2.png +0 -0
  582. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_btn_2_active.png +0 -0
  583. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_btn_3.png +0 -0
  584. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_btn_3_active.png +0 -0
  585. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_btn_4.png +0 -0
  586. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_btn_4_active.png +0 -0
  587. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_1.png +0 -0
  588. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_1_active.png +0 -0
  589. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_2.png +0 -0
  590. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_2_active.png +0 -0
  591. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_3.png +0 -0
  592. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_3_active.png +0 -0
  593. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_4.png +0 -0
  594. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_4_active.png +0 -0
  595. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_5.png +0 -0
  596. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_5_active.png +0 -0
  597. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_6.png +0 -0
  598. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/led_zone_mode_6_active.png +0 -0
  599. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_sysinfo.png +0 -0
  600. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_en.png +0 -0
  601. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_tc.png +0 -0
  602. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_sysinfo_en.png +0 -0
  603. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_sysinfo_tc.png +0 -0
  604. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_text.png +0 -0
  605. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_text_en.png +0 -0
  606. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_text_tc.png +0 -0
  607. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_time.png +0 -0
  608. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_time_en.png +0 -0
  609. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_label_time_tc.png +0 -0
  610. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_mode_date.png +0 -0
  611. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_mode_hardware.png +0 -0
  612. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_mode_text.png +0 -0
  613. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_mode_time.png +0 -0
  614. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_mode_weekday.png +0 -0
  615. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/overlay_select.png +0 -0
  616. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_110x480.png +0 -0
  617. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_116x480.png +0 -0
  618. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_160x480.png +0 -0
  619. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_180x400.png +0 -0
  620. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_180x480.png +0 -0
  621. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_240x240.png +0 -0
  622. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_240x320.png +0 -0
  623. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_240x400.png +0 -0
  624. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_240x427.png +0 -0
  625. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_270x480.png +0 -0
  626. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_320x240.png +0 -0
  627. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_320x320.png +0 -0
  628. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_320x320_round.png +0 -0
  629. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_320x86.png +0 -0
  630. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_360x360_round.png +0 -0
  631. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_400x180.png +0 -0
  632. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_400x240.png +0 -0
  633. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_427x240.png +0 -0
  634. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_480x110.png +0 -0
  635. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_480x116.png +0 -0
  636. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_480x160.png +0 -0
  637. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_480x180.png +0 -0
  638. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_480x270.png +0 -0
  639. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_480x480.png +0 -0
  640. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_480x480_round.png +0 -0
  641. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_86x320.png +0 -0
  642. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_animation.png +0 -0
  643. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_btn.png +0 -0
  644. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_btn_active.png +0 -0
  645. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_pause.png +0 -0
  646. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_play.png +0 -0
  647. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_player_control_bg.png +0 -0
  648. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_1280x480.png +0 -0
  649. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_1920x440.png +0 -0
  650. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_1920x462.png +0 -0
  651. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_320x960.png +0 -0
  652. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_360x800.png +0 -0
  653. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_440x1920.png +0 -0
  654. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_462x1920.png +0 -0
  655. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_480x1280.png +0 -0
  656. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_480x800.png +0 -0
  657. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_480x854.png +0 -0
  658. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_540x960.png +0 -0
  659. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_800x360.png +0 -0
  660. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_800x480.png +0 -0
  661. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_854x480.png +0 -0
  662. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_960x320.png +0 -0
  663. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_popup_960x540.png +0 -0
  664. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_res_240x240.png +0 -0
  665. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_res_240x320.png +0 -0
  666. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_res_320x240.png +0 -0
  667. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_res_320x320.png +0 -0
  668. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_round_mask_320x320.png +0 -0
  669. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_round_mask_360x360.png +0 -0
  670. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_round_mask_480x480.png +0 -0
  671. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_video_controls_bg.png +0 -0
  672. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/preview_video_controls_bg_alt.png +0 -0
  673. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/screen_led_deco_1.png +0 -0
  674. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/screen_led_deco_2.png +0 -0
  675. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/screen_led_deco_3.png +0 -0
  676. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/screen_led_deco_4.png +0 -0
  677. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/screen_led_deco_cz1.png +0 -0
  678. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg.png +0 -0
  679. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg_d.png +0 -0
  680. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg_e.png +0 -0
  681. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg_en.png +0 -0
  682. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg_f.png +0 -0
  683. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg_h.png +0 -0
  684. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg_p.png +0 -0
  685. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg_r.png +0 -0
  686. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg_tc.png +0 -0
  687. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/secondary_screen_bg_x.png +0 -0
  688. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_content.png +0 -0
  689. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_content_btn.png +0 -0
  690. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_content_mask.png +0 -0
  691. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_date.png +0 -0
  692. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_date_1.png +0 -0
  693. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_icon.png +0 -0
  694. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_link_1.png +0 -0
  695. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_text.png +0 -0
  696. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_text_1.png +0 -0
  697. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_time.png +0 -0
  698. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_time_1.png +0 -0
  699. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_weekday.png +0 -0
  700. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_add_weekday_1.png +0 -0
  701. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_anim_sync.png +0 -0
  702. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_background.png +0 -0
  703. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_brightness.png +0 -0
  704. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_keyboard_sync_1.png +0 -0
  705. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_keyboard_sync_2.png +0 -0
  706. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_keyboard_sync_3.png +0 -0
  707. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_module.png +0 -0
  708. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_overlay.png +0 -0
  709. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_overlay_add_bg.png +0 -0
  710. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_overlay_color_bg.png +0 -0
  711. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_overlay_grid_bg.png +0 -0
  712. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_overlay_table_bg.png +0 -0
  713. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/settings_params.png +0 -0
  714. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_brightness_bar.png +0 -0
  715. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_checkbox_off.png +0 -0
  716. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_checkbox_on.png +0 -0
  717. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_clip_a.png +0 -0
  718. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_clip_b.png +0 -0
  719. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_close.png +0 -0
  720. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_close_2.png +0 -0
  721. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_dropdown.png +0 -0
  722. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_dropdown_bg_2x.png +0 -0
  723. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_dropdown_bg_4x.png +0 -0
  724. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_dropdown_highlight.png +0 -0
  725. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_loading_animation.png +0 -0
  726. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_progress_bar.png +0 -0
  727. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_round_close.png +0 -0
  728. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_round_confirm.png +0 -0
  729. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_scrollbar_bg.png +0 -0
  730. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_scrollbar_thumb.png +0 -0
  731. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_shortcut_size_slider.png +0 -0
  732. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_thread_multi.png +0 -0
  733. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_thread_single.png +0 -0
  734. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_toggle_off.png +0 -0
  735. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shared_toggle_on.png +0 -0
  736. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shortcuts_panel.png +0 -0
  737. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shortcuts_panel_d.png +0 -0
  738. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shortcuts_panel_e.png +0 -0
  739. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shortcuts_panel_en.png +0 -0
  740. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shortcuts_panel_f.png +0 -0
  741. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shortcuts_panel_p.png +0 -0
  742. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shortcuts_panel_r.png +0 -0
  743. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shortcuts_panel_tc.png +0 -0
  744. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/shortcuts_panel_x.png +0 -0
  745. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sidebar_about.png +0 -0
  746. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sidebar_about_active.png +0 -0
  747. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sidebar_about_bg.png +0 -0
  748. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sidebar_bg.png +0 -0
  749. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sidebar_no_device.png +0 -0
  750. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sidebar_sensor.png +0 -0
  751. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sidebar_sensor_active.png +0 -0
  752. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sidebar_splash.png +0 -0
  753. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sidebar_sysinfo_bg.png +0 -0
  754. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_a.png +0 -0
  755. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_a_180.png +0 -0
  756. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_a_270.png +0 -0
  757. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_a_90.png +0 -0
  758. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_b.png +0 -0
  759. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_b_180.png +0 -0
  760. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_b_270.png +0 -0
  761. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_b_90.png +0 -0
  762. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_c.png +0 -0
  763. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_c_180.png +0 -0
  764. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_c_270.png +0 -0
  765. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/split_overlay_c_90.png +0 -0
  766. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_add_group.png +0 -0
  767. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_cpu.png +0 -0
  768. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_custom.png +0 -0
  769. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_dram.png +0 -0
  770. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_fan.png +0 -0
  771. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_gpu.png +0 -0
  772. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_hdd.png +0 -0
  773. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_net.png +0 -0
  774. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_next_page.png +0 -0
  775. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_prev_page.png +0 -0
  776. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_scrollbar.png +0 -0
  777. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/sysinfo_select.png +0 -0
  778. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_browser_filter.png +0 -0
  779. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_browser_filter_active.png +0 -0
  780. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label.png +0 -0
  781. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label_d.png +0 -0
  782. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label_e.png +0 -0
  783. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label_en.png +0 -0
  784. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label_f.png +0 -0
  785. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label_h.png +0 -0
  786. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label_p.png +0 -0
  787. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label_r.png +0 -0
  788. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label_tc.png +0 -0
  789. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_cloud_label_x.png +0 -0
  790. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_local_carousel.png +0 -0
  791. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_local_carousel_active.png +0 -0
  792. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_local_export_all.png +0 -0
  793. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_local_multi_select.png +0 -0
  794. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_local_multi_select_active.png +0 -0
  795. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_local_select_frame.png +0 -0
  796. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_local_select_frame_active.png +0 -0
  797. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/theme_mask_label.png +0 -0
  798. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_110x480.png +0 -0
  799. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_116x480.png +0 -0
  800. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_1280x480.png +0 -0
  801. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_160x480.png +0 -0
  802. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_180x400.png +0 -0
  803. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_180x480.png +0 -0
  804. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_240x240.png +0 -0
  805. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_240x320.png +0 -0
  806. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_240x400.png +0 -0
  807. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_240x427.png +0 -0
  808. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_270x480.png +0 -0
  809. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_320x240.png +0 -0
  810. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_320x320.png +0 -0
  811. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_320x86.png +0 -0
  812. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_360x360.png +0 -0
  813. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_400x180.png +0 -0
  814. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_400x240.png +0 -0
  815. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_427x240.png +0 -0
  816. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_480x110.png +0 -0
  817. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_480x116.png +0 -0
  818. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_480x160.png +0 -0
  819. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_480x180.png +0 -0
  820. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_480x270.png +0 -0
  821. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_480x480.png +0 -0
  822. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_86x320.png +0 -0
  823. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_bg.png +0 -0
  824. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets/video_cut_bg_alt.png +0 -0
  825. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/assets.py +0 -0
  826. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/base.py +0 -0
  827. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/base_handler.py +0 -0
  828. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/bus_bridge.py +0 -0
  829. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/color_and_add_panels.py +0 -0
  830. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/constants.py +0 -0
  831. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/display_mode_panels.py +0 -0
  832. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/eyedropper.py +0 -0
  833. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/gpu_reader_prompt.py +0 -0
  834. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/led_handler.py +0 -0
  835. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/overlay_element.py +0 -0
  836. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/overlay_grid.py +0 -0
  837. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/pipewire_capture.py +0 -0
  838. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/screen_capture.py +0 -0
  839. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/splash.py +0 -0
  840. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_about.py +0 -0
  841. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_activity_sidebar.py +0 -0
  842. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_color_wheel.py +0 -0
  843. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_device.py +0 -0
  844. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_image_cut.py +0 -0
  845. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_info_module.py +0 -0
  846. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_led_control.py +0 -0
  847. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_preview.py +0 -0
  848. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_screen_led.py +0 -0
  849. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_sensor_picker.py +0 -0
  850. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_system_info.py +0 -0
  851. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_theme_mask.py +0 -0
  852. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_theme_setting.py +0 -0
  853. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_theme_web.py +0 -0
  854. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/gui/uc_video_cut.py +0 -0
  855. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/__init__.py +0 -0
  856. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/device_presentation.py +0 -0
  857. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/lcd_panel.py +0 -0
  858. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/lcd_presentation_model.py +0 -0
  859. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/led_display.py +0 -0
  860. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/led_metrics_format.py +0 -0
  861. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/led_panel.py +0 -0
  862. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/led_zone_model.py +0 -0
  863. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/overlay_model.py +0 -0
  864. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/overlay_serialization.py +0 -0
  865. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/preview_geometry.py +0 -0
  866. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/sensor_display.py +0 -0
  867. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/slideshow_model.py +0 -0
  868. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/presentation/theme_directories.py +0 -0
  869. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qapp.py +0 -0
  870. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/__init__.py +0 -0
  871. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/app.py +0 -0
  872. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/assets.py +0 -0
  873. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/base.py +0 -0
  874. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/bus_bridge.py +0 -0
  875. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/color_wheel.py +0 -0
  876. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/device_picker.py +0 -0
  877. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/eyedropper.py +0 -0
  878. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/image_crop.py +0 -0
  879. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/__init__.py +0 -0
  880. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/about_panel.py +0 -0
  881. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/cloud_theme_browser.py +0 -0
  882. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/configuration_panel.py +0 -0
  883. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/device_panel.py +0 -0
  884. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/display_panel.py +0 -0
  885. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/led/__init__.py +0 -0
  886. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/led/_base.py +0 -0
  887. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/led/advanced_tab.py +0 -0
  888. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/led/color_tab.py +0 -0
  889. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/led/mode_tab.py +0 -0
  890. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/led/segment_tab.py +0 -0
  891. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/led/zone_tab.py +0 -0
  892. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/led_panel.py +0 -0
  893. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/local_theme_browser.py +0 -0
  894. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/mask_browser.py +0 -0
  895. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/overlay_editor.py +0 -0
  896. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/preview_panel.py +0 -0
  897. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/screencast_panel.py +0 -0
  898. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/sidebar.py +0 -0
  899. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/status_panel.py +0 -0
  900. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/panels/system_panel.py +0 -0
  901. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/region_overlay.py +0 -0
  902. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/screen_overlay.py +0 -0
  903. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/sensor_picker.py +0 -0
  904. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/splash.py +0 -0
  905. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/src/trcc/ui/qtgui/video_crop.py +0 -0
  906. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/__init__.py +0 -0
  907. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/adapters/system/test_elevate.py +0 -0
  908. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/adapters/system/test_imc_timings.py +0 -0
  909. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/adapters/system/test_linux_imc.py +0 -0
  910. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/adapters/system/test_spd.py +0 -0
  911. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/adapters/system/test_windows_mem_disk.py +0 -0
  912. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/adapters/system/test_windows_permissions.py +0 -0
  913. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/adapters/system/test_windows_wmi_seam.py +0 -0
  914. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/conftest.py +0 -0
  915. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/mock_platform.py +0 -0
  916. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_api_routes.py +0 -0
  917. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_app_senders.py +0 -0
  918. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_autostart.py +0 -0
  919. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_autostart_macos.py +0 -0
  920. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_autostart_windows.py +0 -0
  921. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_backend_finish.py +0 -0
  922. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_boot_animation_command.py +0 -0
  923. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_boot_animation_device.py +0 -0
  924. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_bulk_lcd_geometry.py +0 -0
  925. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_clock.py +0 -0
  926. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_cloud_themes.py +0 -0
  927. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_commands.py +0 -0
  928. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_connect_failure_hints.py +0 -0
  929. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_connection_issues.py +0 -0
  930. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_control_center.py +0 -0
  931. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_daemon.py +0 -0
  932. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_data_install.py +0 -0
  933. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_dc_codec.py +0 -0
  934. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_dc_reader.py +0 -0
  935. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_device_catalog_smoke.py +0 -0
  936. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_device_recovery.py +0 -0
  937. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_device_sender.py +0 -0
  938. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_device_surface_matrix.py +0 -0
  939. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_diagnostics.py +0 -0
  940. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_display_tweaks.py +0 -0
  941. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_first_run_and_migration.py +0 -0
  942. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_gpu_extras_install.py +0 -0
  943. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_gpu_preference.py +0 -0
  944. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_gpu_reader_prompt.py +0 -0
  945. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_gui_empty_state.py +0 -0
  946. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_gui_entry_exit.py +0 -0
  947. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_gui_panels.py +0 -0
  948. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_gui_raise_existing.py +0 -0
  949. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_hid_lcd_geometry.py +0 -0
  950. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_hotplug.py +0 -0
  951. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_hotplug_bsd.py +0 -0
  952. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_hotplug_polling.py +0 -0
  953. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_hotplug_windows.py +0 -0
  954. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_i18n.py +0 -0
  955. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_integration_pipeline.py +0 -0
  956. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_ipc_server.py +0 -0
  957. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_ipc_windows_fallback.py +0 -0
  958. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_ipc_wire.py +0 -0
  959. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_lcd_panel_model.py +0 -0
  960. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_animation_loop.py +0 -0
  961. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_assets.py +0 -0
  962. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_display_model.py +0 -0
  963. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_effects.py +0 -0
  964. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_handler_requires_app.py +0 -0
  965. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_panel_model.py +0 -0
  966. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_pm_registry.py +0 -0
  967. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_remap.py +0 -0
  968. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_send.py +0 -0
  969. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_led_settings_commands.py +0 -0
  970. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_library_migration.py +0 -0
  971. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_ly_lcd_geometry.py +0 -0
  972. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_mask_commands.py +0 -0
  973. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_mask_rendering.py +0 -0
  974. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_metrics_personalize.py +0 -0
  975. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_mock_reply_override.py +0 -0
  976. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_models.py +0 -0
  977. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_orientation_cloud_background.py +0 -0
  978. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_overlay_grid_adapter.py +0 -0
  979. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_overlay_resolve.py +0 -0
  980. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_packaging_entrypoints.py +0 -0
  981. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_platform_hw_probes.py +0 -0
  982. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_pyusb_find_seam.py +0 -0
  983. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_quickstart.py +0 -0
  984. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_render_led.py +0 -0
  985. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_run_setup_order.py +0 -0
  986. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_scsi_lcd_geometry.py +0 -0
  987. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_selinux_install.py +0 -0
  988. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_send_color.py +0 -0
  989. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_sensor_chain.py +0 -0
  990. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_sensors.py +0 -0
  991. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_sensors_bsd.py +0 -0
  992. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_sensors_lhm_subprocess.py +0 -0
  993. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_sensors_macos.py +0 -0
  994. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_sensors_nvml.py +0 -0
  995. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_sensors_windows.py +0 -0
  996. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_settings_migration.py +0 -0
  997. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_shell.py +0 -0
  998. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_system_commands.py +0 -0
  999. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_system_resume.py +0 -0
  1000. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_theme_service.py +0 -0
  1001. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_transports.py +0 -0
  1002. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_ui_surfaces_smoke.py +0 -0
  1003. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_variant_presentation_audit.py +0 -0
  1004. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_video_cache.py +0 -0
  1005. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_video_playback.py +0 -0
  1006. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/test_wmi_gpu_fallback.py +0 -0
  1007. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/ui/presentation/test_device_presentation.py +0 -0
  1008. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/ui/presentation/test_lcd_presentation_model.py +0 -0
  1009. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/ui/presentation/test_led_metrics_format.py +0 -0
  1010. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/ui/presentation/test_led_zone_model.py +0 -0
  1011. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/ui/presentation/test_overlay_model.py +0 -0
  1012. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/ui/presentation/test_overlay_view_binding.py +0 -0
  1013. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/ui/presentation/test_preview_geometry.py +0 -0
  1014. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/ui/presentation/test_sensor_display.py +0 -0
  1015. {trcc_linux-9.7.9 → trcc_linux-9.8.0}/tests/ui/presentation/test_slideshow_model.py +0 -0
  1016. {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.7.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
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "trcc-linux"
7
- version = "9.7.9"
7
+ version = "9.8.0"
8
8
  description = "Linux implementation of Thermalright LCD Control Center"
9
9
  readme = "README.md"
10
10
  license = "GPL-3.0-or-later"
@@ -1,4 +1,4 @@
1
1
  """TRCC Linux version information. History in doc/CHANGELOG.md."""
2
2
 
3
- __version__ = "9.7.9"
3
+ __version__ = "9.8.0"
4
4
  __version_info__ = tuple(int(x) for x in __version__.split("."))
@@ -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). This
21
- MUST match packaging/udev/99-trcc-lcd.rules the two are the same rule from
22
- two sources and drifting them re-breaks panel sleep.
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}}="auto", '
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 base in (paths.theme_dir(bw, bh), paths.user_theme_dir(bw, bh)):
58
- cand = base / stored.name
59
- if cand.exists():
60
- return cand
61
- return stored
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
- resolution = _resolve_oriented_resolution(app, self.key)
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 target.exists():
419
- log.warning("SaveTheme: overwriting existing theme %s", target)
420
- shutil.rmtree(target)
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", target, e)
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 target directory: {e}",
465
+ message=f"failed to create staging directory: {e}",
427
466
  )
428
467
 
429
468
  try:
430
469
  manifest = self._build_manifest(
431
- app, target, theme, device_settings, w, h,
470
+ app, staging, theme, device_settings, w, h,
432
471
  )
433
- self._write_manifest(target, manifest)
434
- self._write_thumbnail(app, target, theme)
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; rolling back %s", target)
437
- shutil.rmtree(target, ignore_errors=True)
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
- """Store the resolved current background; return its library ref.
565
-
566
- Image canonical PNG bytes into the user library (deduped),
567
- returning the ref. Video bundled verbatim as ``Theme.<ext>``
568
- in the theme dir (returns ``None``; videos reload via the in-dir
569
- convention). ``DeviceSettings.background_path`` (cloud override)
570
- wins over the source theme's bundled background.
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
- if ext in _VIDEO_EXTS_FOR_SAVE:
584
- dst = target / f"Theme{ext}"
585
- shutil.copy2(src, dst)
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
- surface = app.renderer.open_image(src)
590
- ref = app.themes.store_background(
591
- app.renderer.encode_png(surface), ".png", width, height,
592
- )
593
- log.info("SaveTheme: image bg %s library ref %s", src.name, ref)
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 copied
616
- theme-local into the saved dir as ``01.png`` self-contained, yet
617
- still never in the catalog. Returns the ref for a catalog mask, or
618
- ``None`` for a theme-local one (``mask_path`` then falls back to the
619
- in-dir ``01.png``) and for no-mask. ``DeviceSettings.mask_path``
620
- (user/cloud override) wins over the source theme's mask.
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
- for root in (paths.cloud_mask_dir(width, height),
633
- paths.user_mask_dir(width, height)):
634
- if src_resolved.is_relative_to(root.resolve()):
635
- ref = f"web/zt{width}{height}/{src.parent.name}"
636
- log.info("SaveTheme: mask %s is a catalog mask → reference "
637
- "%s (no copy)", src.parent.name, ref)
638
- return ref
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
- # Theme's own bundled mask → copy theme-local so the saved theme is
641
- # self-contained, without adding to the user mask catalog.
642
- import shutil
643
- dst = target / _LEGACY_MASK_FILENAME
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
- shutil.copy2(src, dst)
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.warning("SaveTheme: theme-local mask copy failed (%s) — mask "
648
- "omitted", e)
649
- return None
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
- seen: set[Path] = set()
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
- if theme.path in seen:
1194
+ resolved = theme.path.resolve()
1195
+ if resolved in seen_paths:
1076
1196
  continue
1077
- seen.add(theme.path)
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,