trcc-linux 9.7.0__tar.gz → 9.7.2__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 (983) hide show
  1. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/.gitignore +9 -26
  2. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/PKG-INFO +8 -5
  3. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/README.md +4 -4
  4. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/pyproject.toml +12 -1
  5. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/__main__.py +1 -1
  6. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/__version__.py +1 -1
  7. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/_boot.py +8 -8
  8. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/device/bulk_lcd.py +46 -5
  9. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/device/ly_lcd.py +16 -2
  10. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/diagnostics/health.py +64 -0
  11. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/infra/logging.py +27 -4
  12. trcc_linux-9.7.2/src/trcc/adapters/infra/send_scheduler.py +111 -0
  13. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/render/qt.py +41 -1
  14. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/sensors/aggregator.py +56 -18
  15. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/sensors/nvml.py +55 -2
  16. trcc_linux-9.7.2/src/trcc/adapters/system/_elevate.py +48 -0
  17. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/system/_hotplug.py +58 -13
  18. trcc_linux-9.7.2/src/trcc/adapters/system/_selinux.py +107 -0
  19. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/system/_udev.py +12 -24
  20. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/system/linux.py +10 -3
  21. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/theme/cloud.py +28 -13
  22. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/app.py +252 -19
  23. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/commands/__init__.py +6 -0
  24. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/commands/_helpers.py +75 -4
  25. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/commands/device.py +67 -11
  26. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/commands/led.py +71 -29
  27. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/commands/system.py +156 -104
  28. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/commands/theme.py +86 -37
  29. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/events.py +29 -4
  30. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/led_models.py +43 -10
  31. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/models.py +88 -15
  32. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/ports.py +187 -1
  33. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/protocol.py +62 -30
  34. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/registry.py +0 -1
  35. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/results.py +30 -0
  36. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/variants.py +18 -20
  37. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/daemon.py +35 -5
  38. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ipc.py +1 -1
  39. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/proxy.py +2 -2
  40. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/_dc.py +36 -7
  41. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/cloud_theme.py +8 -5
  42. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/data_install.py +5 -0
  43. trcc_linux-9.7.2/src/trcc/services/device_sender.py +248 -0
  44. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/display.py +154 -51
  45. trcc_linux-9.7.2/src/trcc/services/led_animation_loop.py +105 -0
  46. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/led_segment.py +30 -112
  47. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/metrics_loop.py +21 -1
  48. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/metrics_personalize.py +56 -0
  49. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/overlay.py +63 -16
  50. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/settings.py +25 -0
  51. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/api/_shared.py +0 -1
  52. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/api/display.py +21 -7
  53. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/api/main.py +3 -3
  54. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/api/schemas.py +0 -1
  55. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/cli/_ctx.py +5 -5
  56. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/cli/main.py +38 -10
  57. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/cli/shell.py +1 -1
  58. trcc_linux-9.7.2/src/trcc/ui/gui/__init__.py +202 -0
  59. trcc_linux-9.7.2/src/trcc/ui/gui/assets/A1LC10.png +0 -0
  60. trcc_linux-9.7.2/src/trcc/ui/gui/assets/A1LC10a.png +0 -0
  61. trcc_linux-9.7.2/src/trcc/ui/gui/assets/A1LC13.png +0 -0
  62. trcc_linux-9.7.2/src/trcc/ui/gui/assets/A1LC13a.png +0 -0
  63. trcc_linux-9.7.2/src/trcc/ui/gui/assets/A1LC15.png +0 -0
  64. trcc_linux-9.7.2/src/trcc/ui/gui/assets/A1LC15a.png +0 -0
  65. trcc_linux-9.7.2/src/trcc/ui/gui/assets/A1LD11.png +0 -0
  66. trcc_linux-9.7.2/src/trcc/ui/gui/assets/A1LD11a.png +0 -0
  67. trcc_linux-9.7.2/src/trcc/ui/gui/assets/A1LF014.png +0 -0
  68. trcc_linux-9.7.2/src/trcc/ui/gui/assets/A1LF014a.png +0 -0
  69. trcc_linux-9.7.2/src/trcc/ui/gui/assets/A1RX1.png +0 -0
  70. trcc_linux-9.7.2/src/trcc/ui/gui/assets/A1RX1a.png +0 -0
  71. trcc_linux-9.7.2/src/trcc/ui/gui/gpu_reader_prompt.py +65 -0
  72. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/lcd_handler.py +176 -85
  73. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/led_handler.py +35 -26
  74. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/overlay_grid.py +55 -147
  75. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/trcc_app.py +133 -98
  76. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/uc_led_control.py +125 -136
  77. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/uc_preview.py +13 -52
  78. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/uc_sensor_picker.py +6 -58
  79. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/uc_system_info.py +2 -27
  80. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/uc_theme_local.py +46 -51
  81. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/uc_theme_setting.py +23 -9
  82. trcc_linux-9.7.2/src/trcc/ui/presentation/__init__.py +18 -0
  83. trcc_linux-9.7.2/src/trcc/ui/presentation/device_presentation.py +53 -0
  84. trcc_linux-9.7.2/src/trcc/ui/presentation/lcd_panel.py +106 -0
  85. trcc_linux-9.7.2/src/trcc/ui/presentation/led_display.py +89 -0
  86. trcc_linux-9.7.2/src/trcc/ui/presentation/led_metrics_format.py +103 -0
  87. trcc_linux-9.7.2/src/trcc/ui/presentation/led_panel.py +57 -0
  88. trcc_linux-9.7.2/src/trcc/ui/presentation/led_zone_model.py +132 -0
  89. trcc_linux-9.7.2/src/trcc/ui/presentation/overlay_model.py +132 -0
  90. trcc_linux-9.7.2/src/trcc/ui/presentation/overlay_serialization.py +329 -0
  91. trcc_linux-9.7.2/src/trcc/ui/presentation/sensor_display.py +78 -0
  92. trcc_linux-9.7.2/src/trcc/ui/presentation/slideshow_model.py +97 -0
  93. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qapp.py +17 -3
  94. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/app.py +7 -3
  95. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/assets.py +36 -7
  96. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/led/advanced_tab.py +23 -3
  97. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/led_panel.py +10 -1
  98. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/overlay_editor.py +44 -12
  99. trcc_linux-9.7.2/tests/adapters/system/test_elevate.py +63 -0
  100. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/conftest.py +43 -1
  101. trcc_linux-9.7.2/tests/mock_platform.py +377 -0
  102. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_api_routes.py +30 -0
  103. trcc_linux-9.7.2/tests/test_app_senders.py +83 -0
  104. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_backend_finish.py +2 -24
  105. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_bulk_lcd_geometry.py +59 -2
  106. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_cloud_themes.py +25 -0
  107. trcc_linux-9.7.2/tests/test_daemon.py +82 -0
  108. trcc_linux-9.7.2/tests/test_data_install.py +66 -0
  109. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_dc_reader.py +29 -1
  110. trcc_linux-9.7.2/tests/test_device_catalog_smoke.py +132 -0
  111. trcc_linux-9.7.2/tests/test_device_sender.py +264 -0
  112. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_diagnostics.py +139 -1
  113. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_display_rotation.py +215 -13
  114. trcc_linux-9.7.2/tests/test_gpu_preference.py +88 -0
  115. trcc_linux-9.7.2/tests/test_gpu_reader_prompt.py +120 -0
  116. trcc_linux-9.7.2/tests/test_gui_entry_exit.py +45 -0
  117. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_gui_panels.py +145 -0
  118. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_hotplug.py +40 -4
  119. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_ipc_server.py +25 -0
  120. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_ipc_wire.py +38 -1
  121. trcc_linux-9.7.2/tests/test_lcd_panel_model.py +75 -0
  122. trcc_linux-9.7.2/tests/test_led_animation_loop.py +48 -0
  123. trcc_linux-9.7.2/tests/test_led_assets.py +146 -0
  124. trcc_linux-9.7.2/tests/test_led_display_model.py +89 -0
  125. trcc_linux-9.7.2/tests/test_led_handler_requires_app.py +21 -0
  126. trcc_linux-9.7.2/tests/test_led_panel_model.py +74 -0
  127. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_mask_rendering.py +77 -4
  128. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_metrics_personalize.py +76 -1
  129. trcc_linux-9.7.2/tests/test_mock_reply_override.py +97 -0
  130. trcc_linux-9.7.2/tests/test_models.py +34 -0
  131. trcc_linux-9.7.2/tests/test_orientation_cloud_background.py +151 -0
  132. trcc_linux-9.7.2/tests/test_orientation_reload.py +235 -0
  133. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_overlay_clock.py +49 -0
  134. trcc_linux-9.7.2/tests/test_overlay_grid_adapter.py +72 -0
  135. trcc_linux-9.7.2/tests/test_overlay_resolve.py +75 -0
  136. trcc_linux-9.7.2/tests/test_packaging_entrypoints.py +87 -0
  137. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_quickstart.py +0 -1
  138. trcc_linux-9.7.2/tests/test_render_led.py +367 -0
  139. trcc_linux-9.7.2/tests/test_run_setup_order.py +43 -0
  140. trcc_linux-9.7.2/tests/test_selinux_install.py +47 -0
  141. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_send_color.py +62 -0
  142. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_sensors.py +94 -0
  143. trcc_linux-9.7.2/tests/test_sensors_nvml.py +110 -0
  144. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_settings_migration.py +11 -0
  145. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_theme_persistence.py +96 -24
  146. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_udev.py +34 -4
  147. trcc_linux-9.7.2/tests/test_ui_surfaces_smoke.py +104 -0
  148. trcc_linux-9.7.2/tests/test_variant_presentation_audit.py +54 -0
  149. trcc_linux-9.7.2/tests/ui/presentation/test_device_presentation.py +42 -0
  150. trcc_linux-9.7.2/tests/ui/presentation/test_led_metrics_format.py +117 -0
  151. trcc_linux-9.7.2/tests/ui/presentation/test_led_zone_model.py +116 -0
  152. trcc_linux-9.7.2/tests/ui/presentation/test_overlay_model.py +200 -0
  153. trcc_linux-9.7.2/tests/ui/presentation/test_overlay_view_binding.py +36 -0
  154. trcc_linux-9.7.2/tests/ui/presentation/test_sensor_display.py +86 -0
  155. trcc_linux-9.7.2/tests/ui/presentation/test_slideshow_model.py +82 -0
  156. trcc_linux-9.7.2/tests/ui/presentation/test_theme_local_binding.py +31 -0
  157. trcc_linux-9.7.0/src/trcc/services/keepalive.py +0 -68
  158. trcc_linux-9.7.0/src/trcc/ui/gui/__init__.py +0 -158
  159. trcc_linux-9.7.0/src/trcc/ui/gui/_overlay_grid_adapter.py +0 -146
  160. trcc_linux-9.7.0/tests/test_models.py +0 -21
  161. trcc_linux-9.7.0/tests/test_render_led.py +0 -226
  162. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/LICENSE +0 -0
  163. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/__init__.py +0 -0
  164. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/_entry.py +0 -0
  165. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/__init__.py +0 -0
  166. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/device/__init__.py +0 -0
  167. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/device/hid_lcd.py +0 -0
  168. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/device/led.py +0 -0
  169. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/device/scsi_lcd.py +0 -0
  170. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/device/transport.py +0 -0
  171. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/device/usb_bot_scsi.py +0 -0
  172. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/diagnostics/__init__.py +0 -0
  173. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/diagnostics/debug_report.py +0 -0
  174. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/diagnostics/doctor.py +0 -0
  175. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/infra/__init__.py +0 -0
  176. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/infra/network.py +0 -0
  177. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/infra/sysinfo_config.py +0 -0
  178. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/render/__init__.py +0 -0
  179. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/repo/__init__.py +0 -0
  180. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/repo/data_install.py +0 -0
  181. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/repo/github_releases.py +0 -0
  182. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/repo/http.py +0 -0
  183. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/screencast/__init__.py +0 -0
  184. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/screencast/qt.py +0 -0
  185. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/sensors/__init__.py +0 -0
  186. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/sensors/_hwinfo.py +0 -0
  187. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/sensors/_lhm.py +0 -0
  188. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/sensors/_macos_hid.py +0 -0
  189. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/sensors/_msacpi.py +0 -0
  190. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/sensors/_powermetrics.py +0 -0
  191. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/sensors/_smc.py +0 -0
  192. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/sensors/_sysctl.py +0 -0
  193. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/sensors/bsd.py +0 -0
  194. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/sensors/chain.py +0 -0
  195. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/sensors/gpu_detect.py +0 -0
  196. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/sensors/hwmon.py +0 -0
  197. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/sensors/macos.py +0 -0
  198. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/sensors/psutil_sources.py +0 -0
  199. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/sensors/windows.py +0 -0
  200. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/system/__init__.py +0 -0
  201. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/system/_autostart.py +0 -0
  202. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/system/_devd.py +0 -0
  203. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/system/_macos_setup.py +0 -0
  204. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/system/_winusb.py +0 -0
  205. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/system/bsd.py +0 -0
  206. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/system/macos.py +0 -0
  207. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/system/windows.py +0 -0
  208. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/adapters/theme/__init__.py +0 -0
  209. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/assets/LibreHardwareMonitor.config +0 -0
  210. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/assets/com.github.lexonight1.trcc.policy +0 -0
  211. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/assets/fonts/MSYH.TTC +0 -0
  212. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/assets/fonts/MSYHBD.TTC +0 -0
  213. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/assets/fonts/README.md +0 -0
  214. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/assets/icons/app.ico +0 -0
  215. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/assets/icons/trcc.png +0 -0
  216. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/assets/icons/trcc_128x128.png +0 -0
  217. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/assets/icons/trcc_16x16.png +0 -0
  218. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/assets/icons/trcc_24x24.png +0 -0
  219. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/assets/icons/trcc_256x256.png +0 -0
  220. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/assets/icons/trcc_32x32.png +0 -0
  221. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/assets/icons/trcc_48x48.png +0 -0
  222. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/assets/icons/trcc_64x64.png +0 -0
  223. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/assets/trcc-linux.desktop +0 -0
  224. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/assets/trcc-quirk-fix.service +0 -0
  225. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/__init__.py +0 -0
  226. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/_colors.py +0 -0
  227. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/_safe.py +0 -0
  228. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/_version.py +0 -0
  229. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/commands/_base.py +0 -0
  230. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/device_recovery.py +0 -0
  231. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/errors.py +0 -0
  232. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/i18n.py +0 -0
  233. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/core/led_protocol.py +0 -0
  234. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/data/trcc_usb.te +0 -0
  235. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/__init__.py +0 -0
  236. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/_ansi.py +0 -0
  237. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/_clock.py +0 -0
  238. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/audio.py +0 -0
  239. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/first_run.py +0 -0
  240. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/led_effects.py +0 -0
  241. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/media.py +0 -0
  242. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/migration.py +0 -0
  243. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/quickstart.py +0 -0
  244. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/slideshow.py +0 -0
  245. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/theme.py +0 -0
  246. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/video_cache.py +0 -0
  247. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/services/video_export.py +0 -0
  248. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/__init__.py +0 -0
  249. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/api/__init__.py +0 -0
  250. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/api/config.py +0 -0
  251. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/api/devices.py +0 -0
  252. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/api/led.py +0 -0
  253. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/api/system.py +0 -0
  254. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/api/theme.py +0 -0
  255. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/api/trcc.py +0 -0
  256. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/cli/__init__.py +0 -0
  257. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/cli/config.py +0 -0
  258. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/cli/device.py +0 -0
  259. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/cli/display.py +0 -0
  260. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/cli/led.py +0 -0
  261. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/cli/system.py +0 -0
  262. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/cli/theme.py +0 -0
  263. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/_ui_state.py +0 -0
  264. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/240240.gif +0 -0
  265. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/240320.gif +0 -0
  266. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/320240.gif +0 -0
  267. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/320320.gif +0 -0
  268. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1AK120 Digital.png +0 -0
  269. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1AK120 Digitala.png +0 -0
  270. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1AK120_Digital.png +0 -0
  271. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1AK120_Digitala.png +0 -0
  272. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1AS120 VISION.png +0 -0
  273. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1AS120 VISIONa.png +0 -0
  274. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1AS120_VISION.png +0 -0
  275. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1AS120_VISIONa.png +0 -0
  276. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1AX120 DIGITAL.png +0 -0
  277. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1AX120 DIGITALa.png +0 -0
  278. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1AX120_DIGITAL.png +0 -0
  279. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1AX120_DIGITALa.png +0 -0
  280. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1BA120 VISION.png +0 -0
  281. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1BA120 VISIONa.png +0 -0
  282. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1BA120_VISION.png +0 -0
  283. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1BA120_VISIONa.png +0 -0
  284. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1CORE VISION.png +0 -0
  285. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1CORE VISIONa.png +0 -0
  286. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1CORE_VISION.png +0 -0
  287. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1CORE_VISIONa.png +0 -0
  288. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1CZ1.png +0 -0
  289. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1CZ1a.png +0 -0
  290. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1CZ2.png +0 -0
  291. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1CZ2a.png +0 -0
  292. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1CZTV.png +0 -0
  293. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1CZTVa.png +0 -0
  294. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1ELITE VISION.png +0 -0
  295. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1ELITE VISIONa.png +0 -0
  296. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1ELITE_VISION.png +0 -0
  297. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1ELITE_VISIONa.png +0 -0
  298. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PRO.png +0 -0
  299. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PROa.png +0 -0
  300. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PRO.png +0 -0
  301. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PROa.png +0 -0
  302. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN VISION V2.png +0 -0
  303. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN VISION V2a.png +0 -0
  304. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PRO.png +0 -0
  305. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PROa.png +0 -0
  306. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SE.png +0 -0
  307. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SEa.png +0 -0
  308. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME.png +0 -0
  309. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN WARFRAMEa.png +0 -0
  310. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PRO.png +0 -0
  311. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PROa.png +0 -0
  312. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PRO.png +0 -0
  313. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PROa.png +0 -0
  314. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2.png +0 -0
  315. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2a.png +0 -0
  316. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME.png +0 -0
  317. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PRO.png +0 -0
  318. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PROa.png +0 -0
  319. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SE.png +0 -0
  320. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SEa.png +0 -0
  321. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAMEa.png +0 -0
  322. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1GRAND VISION.png +0 -0
  323. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1GRAND VISIONa.png +0 -0
  324. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1GRAND_VISION.png +0 -0
  325. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1GRAND_VISIONa.png +0 -0
  326. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITAL.png +0 -0
  327. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITALa.png +0 -0
  328. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1HYPER VISION.png +0 -0
  329. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1HYPER VISIONa.png +0 -0
  330. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1HYPER_VISION.png +0 -0
  331. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1HYPER_VISIONa.png +0 -0
  332. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1KVMALEDC6.png +0 -0
  333. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1KVMALEDC6a.png +0 -0
  334. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LC1.png +0 -0
  335. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LC1a.png +0 -0
  336. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LC2.png +0 -0
  337. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LC2JD.png +0 -0
  338. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LC2JDa.png +0 -0
  339. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LC2a.png +0 -0
  340. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LC3.png +0 -0
  341. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LC3a.png +0 -0
  342. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LC5.png +0 -0
  343. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LC5a.png +0 -0
  344. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LC7.png +0 -0
  345. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LC7a.png +0 -0
  346. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LC8.png +0 -0
  347. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LC8a.png +0 -0
  348. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LC9.png +0 -0
  349. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LC9a.png +0 -0
  350. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LD10.png +0 -0
  351. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LD10a.png +0 -0
  352. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LD6.png +0 -0
  353. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LD6a.png +0 -0
  354. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LD7.png +0 -0
  355. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LD7a.png +0 -0
  356. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LD8.png +0 -0
  357. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LD8a.png +0 -0
  358. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LD9.png +0 -0
  359. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LD9a.png +0 -0
  360. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF10.png +0 -0
  361. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF10V.png +0 -0
  362. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF10Va.png +0 -0
  363. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF10a.png +0 -0
  364. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF11.png +0 -0
  365. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF11a.png +0 -0
  366. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF12.png +0 -0
  367. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF12a.png +0 -0
  368. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF13.png +0 -0
  369. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF13a.png +0 -0
  370. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF14.png +0 -0
  371. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF14a.png +0 -0
  372. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF15.png +0 -0
  373. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF15a.png +0 -0
  374. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF16.png +0 -0
  375. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF167.png +0 -0
  376. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF16a.png +0 -0
  377. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF17a.png +0 -0
  378. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF18.png +0 -0
  379. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF18a.png +0 -0
  380. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF19.png +0 -0
  381. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF19a.png +0 -0
  382. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF20.png +0 -0
  383. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF20a.png +0 -0
  384. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF21.png +0 -0
  385. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF21a.png +0 -0
  386. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF22.png +0 -0
  387. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF22a.png +0 -0
  388. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF25.png +0 -0
  389. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF25a.png +0 -0
  390. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF8.png +0 -0
  391. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LF8a.png +0 -0
  392. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LM16SE.png +0 -0
  393. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LM16SEa.png +0 -0
  394. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LM19SE.png +0 -0
  395. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LM19SEa.png +0 -0
  396. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LM22.png +0 -0
  397. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LM22a.png +0 -0
  398. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LM24.png +0 -0
  399. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LM24a.png +0 -0
  400. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LM26.png +0 -0
  401. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LM26a.png +0 -0
  402. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LM27.png +0 -0
  403. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LM27a.png +0 -0
  404. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LM30.png +0 -0
  405. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1LM30a.png +0 -0
  406. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1Mjolnir VISION PRO.png +0 -0
  407. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1Mjolnir VISION PROa.png +0 -0
  408. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1Mjolnir VISION.png +0 -0
  409. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1Mjolnir VISIONa.png +0 -0
  410. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1Mjolnir_VISION.png +0 -0
  411. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PRO.png +0 -0
  412. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PROa.png +0 -0
  413. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1Mjolnir_VISIONa.png +0 -0
  414. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1PA120 DIGITAL.png +0 -0
  415. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1PA120 DIGITALa.png +0 -0
  416. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1PA120_DIGITAL.png +0 -0
  417. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1PA120_DIGITALa.png +0 -0
  418. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1PC1.png +0 -0
  419. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1PC1a.png +0 -0
  420. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1RK120 DIGITAL.png +0 -0
  421. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1RK120 DIGITALa.png +0 -0
  422. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1RK120_DIGITAL.png +0 -0
  423. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1RK120_DIGITALa.png +0 -0
  424. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1RP130 VISION.png +0 -0
  425. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1RP130 VISIONa.png +0 -0
  426. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1RP130_VISION.png +0 -0
  427. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1RP130_VISIONa.png +0 -0
  428. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1Stream Vision.png +0 -0
  429. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1Stream Visiona.png +0 -0
  430. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1Stream_Vision.png +0 -0
  431. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/A1Stream_Visiona.png +0 -0
  432. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/about_dropdown.png +0 -0
  433. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/about_dropdown_bg.png +0 -0
  434. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/about_dropdown_select.png +0 -0
  435. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/about_update.png +0 -0
  436. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/about_update_overlay.png +0 -0
  437. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_about_bg.png +0 -0
  438. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_brightness_0.png +0 -0
  439. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_brightness_1.png +0 -0
  440. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_brightness_2.png +0 -0
  441. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_brightness_3.png +0 -0
  442. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_export.png +0 -0
  443. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_form_bg.png +0 -0
  444. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_help.png +0 -0
  445. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_import.png +0 -0
  446. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_main_bg.png +0 -0
  447. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_power.png +0 -0
  448. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_power_hover.png +0 -0
  449. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_save.png +0 -0
  450. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_sysinfo_bg.png +0 -0
  451. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_tab_cloud.png +0 -0
  452. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_tab_cloud_active.png +0 -0
  453. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_tab_local.png +0 -0
  454. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_tab_local_active.png +0 -0
  455. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_tab_mask.png +0 -0
  456. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_tab_mask_active.png +0 -0
  457. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_tab_mask_lower.png +0 -0
  458. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_tab_settings.png +0 -0
  459. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_tab_settings_active.png +0 -0
  460. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_theme_base_bg.png +0 -0
  461. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_theme_gallery_bg.png +0 -0
  462. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/app_theme_settings_bg.png +0 -0
  463. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/carousel_1.png +0 -0
  464. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/carousel_2.png +0 -0
  465. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/carousel_3.png +0 -0
  466. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/carousel_4.png +0 -0
  467. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/carousel_5.png +0 -0
  468. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/carousel_6.png +0 -0
  469. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/carousel_btn.png +0 -0
  470. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/carousel_btn_active.png +0 -0
  471. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/carousel_select_frame.png +0 -0
  472. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/color_panel_eyedropper.png +0 -0
  473. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/color_panel_picker.png +0 -0
  474. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/color_panel_selector_ring.png +0 -0
  475. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/color_panel_slider_thumb.png +0 -0
  476. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/color_wheel_knob.png +0 -0
  477. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/color_wheel_knob_0.png +0 -0
  478. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/color_wheel_toggle_hover.png +0 -0
  479. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/color_wheel_toggle_off.png +0 -0
  480. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/color_wheel_toggle_on.png +0 -0
  481. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_12h.png +0 -0
  482. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_24h.png +0 -0
  483. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_border.png +0 -0
  484. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_border_active.png +0 -0
  485. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_crop.png +0 -0
  486. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_date_dm.png +0 -0
  487. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_date_dmy.png +0 -0
  488. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_date_md.png +0 -0
  489. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_date_ymd.png +0 -0
  490. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_digit_font.png +0 -0
  491. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_fit_height.png +0 -0
  492. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_fit_width.png +0 -0
  493. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_function.png +0 -0
  494. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_function_active.png +0 -0
  495. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_icon.png +0 -0
  496. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_icon_gif.png +0 -0
  497. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_icon_image.png +0 -0
  498. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_icon_livestream.png +0 -0
  499. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_icon_mask.png +0 -0
  500. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_icon_network.png +0 -0
  501. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_icon_video.png +0 -0
  502. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_m1.png +0 -0
  503. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_m1_active.png +0 -0
  504. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_m2.png +0 -0
  505. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_m2_active.png +0 -0
  506. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_m3.png +0 -0
  507. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_m3_active.png +0 -0
  508. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_m4.png +0 -0
  509. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_m4_active.png +0 -0
  510. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_m5.png +0 -0
  511. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_m5_active.png +0 -0
  512. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_m6.png +0 -0
  513. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_m6_active.png +0 -0
  514. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_minus.png +0 -0
  515. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_network_btn.png +0 -0
  516. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_plus.png +0 -0
  517. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_rotate.png +0 -0
  518. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_slider_thumb.png +0 -0
  519. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_text_font.png +0 -0
  520. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_unit_c.png +0 -0
  521. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/display_mode_unit_f.png +0 -0
  522. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/frozen_warframe_ultra.png +0 -0
  523. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/frozen_warframe_ultra_active.png +0 -0
  524. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_110x480.png +0 -0
  525. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_116x480.png +0 -0
  526. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_1280x480.png +0 -0
  527. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_160x480.png +0 -0
  528. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_180x400.png +0 -0
  529. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_180x480.png +0 -0
  530. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_240x240.png +0 -0
  531. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_240x320.png +0 -0
  532. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_240x400.png +0 -0
  533. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_240x427.png +0 -0
  534. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_270x480.png +0 -0
  535. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_320x240.png +0 -0
  536. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_320x320.png +0 -0
  537. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_320x86.png +0 -0
  538. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_360x360.png +0 -0
  539. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_400x180.png +0 -0
  540. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_400x240.png +0 -0
  541. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_427x240.png +0 -0
  542. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_480x110.png +0 -0
  543. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_480x116.png +0 -0
  544. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_480x160.png +0 -0
  545. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_480x180.png +0 -0
  546. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_480x270.png +0 -0
  547. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_480x480.png +0 -0
  548. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/image_cut_86x320.png +0 -0
  549. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_aggregate.png +0 -0
  550. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_aggregate_active.png +0 -0
  551. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_bg_cz1.png +0 -0
  552. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_bg_kvma.png +0 -0
  553. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_bg_lc1.png +0 -0
  554. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_bg_lc2.png +0 -0
  555. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_bg_lf10.png +0 -0
  556. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_bg_lf11.png +0 -0
  557. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_bg_lf12.png +0 -0
  558. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_bg_lf13.png +0 -0
  559. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_bg_lf15.png +0 -0
  560. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_bg_lf8.png +0 -0
  561. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_bg_rgb_lf13.png +0 -0
  562. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_bg_segment.png +0 -0
  563. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_bg_segment_4zone.png +0 -0
  564. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_dropdown.png +0 -0
  565. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_dropdown_2.png +0 -0
  566. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_dropdown_highlight.png +0 -0
  567. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_dropdown_highlight_2.png +0 -0
  568. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_dropdown_menu.png +0 -0
  569. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_dropdown_menu_2.png +0 -0
  570. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_external.png +0 -0
  571. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_external_active.png +0 -0
  572. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_helmet_1.png +0 -0
  573. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_helmet_2.png +0 -0
  574. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_helmet_3.png +0 -0
  575. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_helmet_4.png +0 -0
  576. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_helmet_5.png +0 -0
  577. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_meter_bar_1.png +0 -0
  578. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_meter_bar_2.png +0 -0
  579. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_meter_bar_3.png +0 -0
  580. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_meter_bar_4.png +0 -0
  581. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_meter_bar_5.png +0 -0
  582. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_meter_bar_6.png +0 -0
  583. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_meter_bg_1.png +0 -0
  584. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_meter_bg_2.png +0 -0
  585. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_meter_bg_3.png +0 -0
  586. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_meter_bg_4.png +0 -0
  587. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_meter_bg_5.png +0 -0
  588. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_meter_bg_5_active.png +0 -0
  589. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_meter_bg_6.png +0 -0
  590. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_1.png +0 -0
  591. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_10.png +0 -0
  592. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_10_active.png +0 -0
  593. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_11.png +0 -0
  594. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_11_active.png +0 -0
  595. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_12.png +0 -0
  596. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_12_active.png +0 -0
  597. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_1_active.png +0 -0
  598. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_2.png +0 -0
  599. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_2_active.png +0 -0
  600. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_3.png +0 -0
  601. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_3_active.png +0 -0
  602. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_4.png +0 -0
  603. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_4_active.png +0 -0
  604. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_5.png +0 -0
  605. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_5_active.png +0 -0
  606. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_6.png +0 -0
  607. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_6_active.png +0 -0
  608. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_7.png +0 -0
  609. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_7_active.png +0 -0
  610. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_8.png +0 -0
  611. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_8_active.png +0 -0
  612. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_9.png +0 -0
  613. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_mode_9_active.png +0 -0
  614. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_power.png +0 -0
  615. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_power_active.png +0 -0
  616. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preset_blue.png +0 -0
  617. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preset_cyan.png +0 -0
  618. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preset_green.png +0 -0
  619. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preset_orange.png +0 -0
  620. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preset_purple.png +0 -0
  621. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preset_red.png +0 -0
  622. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preset_white.png +0 -0
  623. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preset_yellow.png +0 -0
  624. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preview_ak120.png +0 -0
  625. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preview_ax120.png +0 -0
  626. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preview_cz1.png +0 -0
  627. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preview_frozen_horizon_pro.png +0 -0
  628. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preview_frozen_magic_pro.png +0 -0
  629. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preview_lc1.png +0 -0
  630. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preview_lc2.png +0 -0
  631. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preview_lf10.png +0 -0
  632. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preview_lf11.png +0 -0
  633. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preview_lf12.png +0 -0
  634. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preview_lf13.png +0 -0
  635. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preview_lf15.png +0 -0
  636. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preview_lf8.png +0 -0
  637. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preview_pa120.png +0 -0
  638. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_preview_pa120_space.png +0 -0
  639. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_show_1.png +0 -0
  640. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_show_1_active.png +0 -0
  641. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_show_2.png +0 -0
  642. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_show_2_active.png +0 -0
  643. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_show_3.png +0 -0
  644. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_show_3_active.png +0 -0
  645. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_slider_thumb.png +0 -0
  646. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_btn_1.png +0 -0
  647. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_btn_1_active.png +0 -0
  648. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_btn_2.png +0 -0
  649. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_btn_2_active.png +0 -0
  650. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_btn_3.png +0 -0
  651. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_btn_3_active.png +0 -0
  652. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_btn_4.png +0 -0
  653. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_btn_4_active.png +0 -0
  654. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_mode_1.png +0 -0
  655. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_mode_1_active.png +0 -0
  656. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_mode_2.png +0 -0
  657. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_mode_2_active.png +0 -0
  658. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_mode_3.png +0 -0
  659. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_mode_3_active.png +0 -0
  660. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_mode_4.png +0 -0
  661. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_mode_4_active.png +0 -0
  662. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_mode_5.png +0 -0
  663. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_mode_5_active.png +0 -0
  664. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_mode_6.png +0 -0
  665. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/led_zone_mode_6_active.png +0 -0
  666. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/overlay_label_sysinfo.png +0 -0
  667. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_en.png +0 -0
  668. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_tc.png +0 -0
  669. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/overlay_label_sysinfo_en.png +0 -0
  670. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/overlay_label_sysinfo_tc.png +0 -0
  671. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/overlay_label_text.png +0 -0
  672. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/overlay_label_text_en.png +0 -0
  673. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/overlay_label_text_tc.png +0 -0
  674. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/overlay_label_time.png +0 -0
  675. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/overlay_label_time_en.png +0 -0
  676. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/overlay_label_time_tc.png +0 -0
  677. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/overlay_mode_date.png +0 -0
  678. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/overlay_mode_hardware.png +0 -0
  679. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/overlay_mode_text.png +0 -0
  680. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/overlay_mode_time.png +0 -0
  681. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/overlay_mode_weekday.png +0 -0
  682. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/overlay_select.png +0 -0
  683. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_110x480.png +0 -0
  684. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_116x480.png +0 -0
  685. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_160x480.png +0 -0
  686. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_180x400.png +0 -0
  687. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_180x480.png +0 -0
  688. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_240x240.png +0 -0
  689. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_240x320.png +0 -0
  690. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_240x400.png +0 -0
  691. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_240x427.png +0 -0
  692. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_270x480.png +0 -0
  693. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_320x240.png +0 -0
  694. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_320x320.png +0 -0
  695. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_320x320_round.png +0 -0
  696. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_320x86.png +0 -0
  697. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_360x360_round.png +0 -0
  698. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_400x180.png +0 -0
  699. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_400x240.png +0 -0
  700. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_427x240.png +0 -0
  701. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_480x110.png +0 -0
  702. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_480x116.png +0 -0
  703. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_480x160.png +0 -0
  704. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_480x180.png +0 -0
  705. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_480x270.png +0 -0
  706. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_480x480.png +0 -0
  707. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_480x480_round.png +0 -0
  708. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_86x320.png +0 -0
  709. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_animation.png +0 -0
  710. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_btn.png +0 -0
  711. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_btn_active.png +0 -0
  712. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_pause.png +0 -0
  713. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_play.png +0 -0
  714. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_player_control_bg.png +0 -0
  715. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_popup_1280x480.png +0 -0
  716. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_popup_1920x440.png +0 -0
  717. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_popup_1920x462.png +0 -0
  718. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_popup_320x960.png +0 -0
  719. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_popup_360x800.png +0 -0
  720. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_popup_440x1920.png +0 -0
  721. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_popup_462x1920.png +0 -0
  722. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_popup_480x1280.png +0 -0
  723. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_popup_480x800.png +0 -0
  724. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_popup_480x854.png +0 -0
  725. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_popup_540x960.png +0 -0
  726. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_popup_800x360.png +0 -0
  727. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_popup_800x480.png +0 -0
  728. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_popup_854x480.png +0 -0
  729. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_popup_960x320.png +0 -0
  730. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_popup_960x540.png +0 -0
  731. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_res_240x240.png +0 -0
  732. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_res_240x320.png +0 -0
  733. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_res_320x240.png +0 -0
  734. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_res_320x320.png +0 -0
  735. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_round_mask_320x320.png +0 -0
  736. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_round_mask_360x360.png +0 -0
  737. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_round_mask_480x480.png +0 -0
  738. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_video_controls_bg.png +0 -0
  739. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/preview_video_controls_bg_alt.png +0 -0
  740. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/screen_led_deco_1.png +0 -0
  741. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/screen_led_deco_2.png +0 -0
  742. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/screen_led_deco_3.png +0 -0
  743. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/screen_led_deco_4.png +0 -0
  744. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/screen_led_deco_cz1.png +0 -0
  745. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/secondary_screen_bg.png +0 -0
  746. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/secondary_screen_bg_d.png +0 -0
  747. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/secondary_screen_bg_e.png +0 -0
  748. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/secondary_screen_bg_en.png +0 -0
  749. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/secondary_screen_bg_f.png +0 -0
  750. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/secondary_screen_bg_h.png +0 -0
  751. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/secondary_screen_bg_p.png +0 -0
  752. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/secondary_screen_bg_r.png +0 -0
  753. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/secondary_screen_bg_tc.png +0 -0
  754. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/secondary_screen_bg_x.png +0 -0
  755. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_add_content.png +0 -0
  756. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_add_content_btn.png +0 -0
  757. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_add_content_mask.png +0 -0
  758. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_add_date.png +0 -0
  759. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_add_date_1.png +0 -0
  760. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_add_icon.png +0 -0
  761. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_add_link_1.png +0 -0
  762. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_add_text.png +0 -0
  763. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_add_text_1.png +0 -0
  764. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_add_time.png +0 -0
  765. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_add_time_1.png +0 -0
  766. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_add_weekday.png +0 -0
  767. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_add_weekday_1.png +0 -0
  768. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_anim_sync.png +0 -0
  769. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_background.png +0 -0
  770. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_brightness.png +0 -0
  771. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_keyboard_sync_1.png +0 -0
  772. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_keyboard_sync_2.png +0 -0
  773. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_keyboard_sync_3.png +0 -0
  774. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_module.png +0 -0
  775. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_overlay.png +0 -0
  776. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_overlay_add_bg.png +0 -0
  777. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_overlay_color_bg.png +0 -0
  778. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_overlay_grid_bg.png +0 -0
  779. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_overlay_table_bg.png +0 -0
  780. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/settings_params.png +0 -0
  781. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_brightness_bar.png +0 -0
  782. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_checkbox_off.png +0 -0
  783. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_checkbox_on.png +0 -0
  784. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_clip_a.png +0 -0
  785. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_clip_b.png +0 -0
  786. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_close.png +0 -0
  787. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_close_2.png +0 -0
  788. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_dropdown.png +0 -0
  789. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_dropdown_bg_2x.png +0 -0
  790. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_dropdown_bg_4x.png +0 -0
  791. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_dropdown_highlight.png +0 -0
  792. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_loading_animation.png +0 -0
  793. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_progress_bar.png +0 -0
  794. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_round_close.png +0 -0
  795. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_round_confirm.png +0 -0
  796. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_scrollbar_bg.png +0 -0
  797. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_scrollbar_thumb.png +0 -0
  798. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_shortcut_size_slider.png +0 -0
  799. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_thread_multi.png +0 -0
  800. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_thread_single.png +0 -0
  801. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_toggle_off.png +0 -0
  802. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shared_toggle_on.png +0 -0
  803. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shortcuts_panel.png +0 -0
  804. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shortcuts_panel_d.png +0 -0
  805. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shortcuts_panel_e.png +0 -0
  806. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shortcuts_panel_en.png +0 -0
  807. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shortcuts_panel_f.png +0 -0
  808. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shortcuts_panel_p.png +0 -0
  809. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shortcuts_panel_r.png +0 -0
  810. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shortcuts_panel_tc.png +0 -0
  811. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/shortcuts_panel_x.png +0 -0
  812. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sidebar_about.png +0 -0
  813. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sidebar_about_active.png +0 -0
  814. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sidebar_about_bg.png +0 -0
  815. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sidebar_bg.png +0 -0
  816. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sidebar_no_device.png +0 -0
  817. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sidebar_sensor.png +0 -0
  818. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sidebar_sensor_active.png +0 -0
  819. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sidebar_splash.png +0 -0
  820. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sidebar_sysinfo_bg.png +0 -0
  821. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/split_overlay_a.png +0 -0
  822. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/split_overlay_a_180.png +0 -0
  823. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/split_overlay_a_270.png +0 -0
  824. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/split_overlay_a_90.png +0 -0
  825. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/split_overlay_b.png +0 -0
  826. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/split_overlay_b_180.png +0 -0
  827. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/split_overlay_b_270.png +0 -0
  828. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/split_overlay_b_90.png +0 -0
  829. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/split_overlay_c.png +0 -0
  830. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/split_overlay_c_180.png +0 -0
  831. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/split_overlay_c_270.png +0 -0
  832. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/split_overlay_c_90.png +0 -0
  833. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sysinfo_add_group.png +0 -0
  834. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sysinfo_cpu.png +0 -0
  835. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sysinfo_custom.png +0 -0
  836. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sysinfo_dram.png +0 -0
  837. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sysinfo_fan.png +0 -0
  838. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sysinfo_gpu.png +0 -0
  839. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sysinfo_hdd.png +0 -0
  840. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sysinfo_net.png +0 -0
  841. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sysinfo_next_page.png +0 -0
  842. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sysinfo_prev_page.png +0 -0
  843. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sysinfo_scrollbar.png +0 -0
  844. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/sysinfo_select.png +0 -0
  845. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_browser_filter.png +0 -0
  846. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_browser_filter_active.png +0 -0
  847. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_cloud_label.png +0 -0
  848. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_cloud_label_d.png +0 -0
  849. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_cloud_label_e.png +0 -0
  850. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_cloud_label_en.png +0 -0
  851. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_cloud_label_f.png +0 -0
  852. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_cloud_label_h.png +0 -0
  853. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_cloud_label_p.png +0 -0
  854. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_cloud_label_r.png +0 -0
  855. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_cloud_label_tc.png +0 -0
  856. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_cloud_label_x.png +0 -0
  857. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_local_carousel.png +0 -0
  858. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_local_carousel_active.png +0 -0
  859. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_local_export_all.png +0 -0
  860. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_local_multi_select.png +0 -0
  861. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_local_multi_select_active.png +0 -0
  862. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_local_select_frame.png +0 -0
  863. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_local_select_frame_active.png +0 -0
  864. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/theme_mask_label.png +0 -0
  865. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_110x480.png +0 -0
  866. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_116x480.png +0 -0
  867. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_1280x480.png +0 -0
  868. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_160x480.png +0 -0
  869. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_180x400.png +0 -0
  870. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_180x480.png +0 -0
  871. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_240x240.png +0 -0
  872. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_240x320.png +0 -0
  873. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_240x400.png +0 -0
  874. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_240x427.png +0 -0
  875. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_270x480.png +0 -0
  876. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_320x240.png +0 -0
  877. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_320x320.png +0 -0
  878. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_320x86.png +0 -0
  879. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_360x360.png +0 -0
  880. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_400x180.png +0 -0
  881. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_400x240.png +0 -0
  882. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_427x240.png +0 -0
  883. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_480x110.png +0 -0
  884. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_480x116.png +0 -0
  885. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_480x160.png +0 -0
  886. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_480x180.png +0 -0
  887. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_480x270.png +0 -0
  888. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_480x480.png +0 -0
  889. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_86x320.png +0 -0
  890. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_bg.png +0 -0
  891. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets/video_cut_bg_alt.png +0 -0
  892. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/assets.py +0 -0
  893. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/base.py +0 -0
  894. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/base_handler.py +0 -0
  895. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/bus_bridge.py +0 -0
  896. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/color_and_add_panels.py +0 -0
  897. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/constants.py +0 -0
  898. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/display_mode_panels.py +0 -0
  899. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/eyedropper.py +0 -0
  900. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/overlay_element.py +0 -0
  901. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/pipewire_capture.py +0 -0
  902. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/screen_capture.py +0 -0
  903. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/splash.py +0 -0
  904. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/uc_about.py +0 -0
  905. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/uc_activity_sidebar.py +0 -0
  906. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/uc_color_wheel.py +0 -0
  907. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/uc_device.py +0 -0
  908. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/uc_image_cut.py +0 -0
  909. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/uc_info_module.py +0 -0
  910. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/uc_screen_led.py +0 -0
  911. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/uc_theme_mask.py +0 -0
  912. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/uc_theme_web.py +0 -0
  913. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/gui/uc_video_cut.py +0 -0
  914. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/__init__.py +0 -0
  915. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/base.py +0 -0
  916. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/bus_bridge.py +0 -0
  917. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/color_wheel.py +0 -0
  918. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/device_picker.py +0 -0
  919. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/eyedropper.py +0 -0
  920. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/image_crop.py +0 -0
  921. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/__init__.py +0 -0
  922. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/about_panel.py +0 -0
  923. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/cloud_theme_browser.py +0 -0
  924. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/configuration_panel.py +0 -0
  925. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/device_panel.py +0 -0
  926. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/display_panel.py +0 -0
  927. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/led/__init__.py +0 -0
  928. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/led/_base.py +0 -0
  929. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/led/color_tab.py +0 -0
  930. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/led/mode_tab.py +0 -0
  931. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/led/segment_tab.py +0 -0
  932. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/led/zone_tab.py +0 -0
  933. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/local_theme_browser.py +0 -0
  934. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/mask_browser.py +0 -0
  935. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/preview_panel.py +0 -0
  936. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/screencast_panel.py +0 -0
  937. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/sidebar.py +0 -0
  938. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/status_panel.py +0 -0
  939. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/panels/system_panel.py +0 -0
  940. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/region_overlay.py +0 -0
  941. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/screen_overlay.py +0 -0
  942. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/sensor_picker.py +0 -0
  943. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/splash.py +0 -0
  944. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/src/trcc/ui/qtgui/video_crop.py +0 -0
  945. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/__init__.py +0 -0
  946. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_autostart.py +0 -0
  947. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_autostart_macos.py +0 -0
  948. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_autostart_windows.py +0 -0
  949. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_boot_animation_command.py +0 -0
  950. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_boot_animation_device.py +0 -0
  951. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_cli_commands.py +0 -0
  952. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_clock.py +0 -0
  953. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_commands.py +0 -0
  954. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_control_center.py +0 -0
  955. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_dc_codec.py +0 -0
  956. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_display_tweaks.py +0 -0
  957. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_first_run_and_migration.py +0 -0
  958. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_hid_lcd_geometry.py +0 -0
  959. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_hotplug_bsd.py +0 -0
  960. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_hotplug_polling.py +0 -0
  961. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_hotplug_windows.py +0 -0
  962. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_i18n.py +0 -0
  963. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_integration_pipeline.py +0 -0
  964. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_led_effects.py +0 -0
  965. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_led_pm_registry.py +0 -0
  966. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_led_remap.py +0 -0
  967. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_led_send.py +0 -0
  968. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_led_settings_commands.py +0 -0
  969. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_library_migration.py +0 -0
  970. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_ly_lcd_geometry.py +0 -0
  971. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_mask_commands.py +0 -0
  972. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_platform_hw_probes.py +0 -0
  973. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_scsi_lcd_geometry.py +0 -0
  974. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_sensor_chain.py +0 -0
  975. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_sensors_bsd.py +0 -0
  976. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_sensors_lhm_subprocess.py +0 -0
  977. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_sensors_macos.py +0 -0
  978. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_sensors_windows.py +0 -0
  979. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_shell.py +0 -0
  980. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_theme_service.py +0 -0
  981. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_transports.py +0 -0
  982. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_video_cache.py +0 -0
  983. {trcc_linux-9.7.0 → trcc_linux-9.7.2}/tests/test_video_playback.py +0 -0
@@ -77,33 +77,16 @@ src/trcc/data/settings.json
77
77
  src/trcc/data/ui_*.json
78
78
 
79
79
  # ──────────────────────────────────────────────
80
- # Dev / reference files (not for distribution)
80
+ # Dev / reference files
81
81
  # ──────────────────────────────────────────────
82
- # Block /dev/* per-file so the !-negations below can re-include
83
- # the shared mock harness. (`/dev/` directory-level rule wouldn't
84
- # allow re-include git can't unignore a file under an ignored
85
- # directory.)
86
- /dev/*
87
- # Mock harness IS shared tooling — every developer benefits from
88
- # the same MockPlatform-backed CLI / API / GUI entry points.
89
- !/dev/mock_cli.py
90
- !/dev/mock_api.py
91
- !/dev/mock_gui.py
92
- !/dev/_mock_bootstrap.py
93
- !/dev/_mock_daemon.py
94
- !/dev/smoke_rotation_mask.py
95
- !/dev/smoke_daemon_gui.py
96
- !/dev/smoke_sleep_cycle.py
97
- !/dev/smoke_linux.py
98
- !/dev/smoke_windows.py
99
- !/dev/smoke_macos.py
100
- !/dev/smoke_macos_parsers.py
101
- !/dev/smoke_platforms.py
102
- !/dev/smoke_variant_resolution.py
103
- !/dev/smoke_bsd.py
104
- !/dev/_smoke_runtime.py
105
- !/dev/parity_smoke.py
106
- !/dev/smoke_full_pipeline.py
82
+ # dev/ is SHARED contributor tooling track it ALL by default so a new dev
83
+ # script is never silently hidden behind a whitelist. Ignore ONLY the runtime
84
+ # artifacts the mock writes (dev/.trcc*, bytecode) and each developer's LOCAL
85
+ # fleet config (devices.json — seed it from the committed devices.json.example).
86
+ /dev/.trcc/
87
+ /dev/.trcc-user/
88
+ /dev/__pycache__/
89
+ /dev/devices.json
107
90
  /dev_*
108
91
  # Dev scripts at root
109
92
  /test_*.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trcc-linux
3
- Version: 9.7.0
3
+ Version: 9.7.2
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
@@ -32,6 +32,7 @@ Requires-Dist: prompt-toolkit>=3.0.0
32
32
  Requires-Dist: psutil>=5.9.0
33
33
  Requires-Dist: pyside6>=6.5.0
34
34
  Requires-Dist: python-multipart>=0.0.6
35
+ Requires-Dist: pyudev>=0.24.1; sys_platform == 'linux'
35
36
  Requires-Dist: pyusb>=1.2.0
36
37
  Requires-Dist: sounddevice>=0.4.6
37
38
  Requires-Dist: typer>=0.9.0
@@ -45,6 +46,7 @@ Requires-Dist: httpx>=0.24.0; extra == 'all'
45
46
  Requires-Dist: nvidia-ml-py>=11.0.0; extra == 'all'
46
47
  Requires-Dist: pygobject>=3.42.0; extra == 'all'
47
48
  Requires-Dist: pytest-cov>=4.0.0; extra == 'all'
49
+ Requires-Dist: pytest-qt>=4.0.0; extra == 'all'
48
50
  Requires-Dist: pytest>=7.0.0; extra == 'all'
49
51
  Requires-Dist: qrcode>=7.0; extra == 'all'
50
52
  Requires-Dist: ruff>=0.4.0; extra == 'all'
@@ -52,6 +54,7 @@ Requires-Dist: types-qrcode>=7.0; extra == 'all'
52
54
  Provides-Extra: dev
53
55
  Requires-Dist: httpx>=0.24.0; extra == 'dev'
54
56
  Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
57
+ Requires-Dist: pytest-qt>=4.0.0; extra == 'dev'
55
58
  Requires-Dist: pytest>=7.0.0; extra == 'dev'
56
59
  Requires-Dist: ruff>=0.4.0; extra == 'dev'
57
60
  Requires-Dist: types-qrcode>=7.0; extra == 'dev'
@@ -118,7 +121,7 @@ Description-Content-Type: text/markdown
118
121
  [![Buy Me a Beer](https://img.shields.io/badge/Buy_Me_a_Beer-🍺-FF5F5F?style=flat)](https://buymeacoffee.com/Lexonight1)
119
122
  [![Ko-fi](https://img.shields.io/badge/Ko--fi-☕-FF5E5B?style=flat&logo=kofi&logoColor=white)](https://ko-fi.com/lexonight1)
120
123
 
121
- > Huge thanks to **[@Xentrino](https://github.com/Xentrino)**, **[@javisaman](https://github.com/javisaman)**, **[@loosethoughts19-hash](https://github.com/loosethoughts19-hash)**, **[@Reborn627](https://github.com/Reborn627)**, **[@Mr-Renegade](https://github.com/Mr-Renegade)**, **[@knappstar](https://github.com/knappstar)**, **[@woebygon](https://github.com/woebygon)**, **[@Smokemic](https://github.com/Smokemic)**, **[@chava-byte](https://github.com/chava-byte)**, **[@nihilistqueen](https://github.com/nihilistqueen)**, **[@rhuggins573-crypto](https://github.com/rhuggins573-crypto)**, **[@unfirthman](https://github.com/unfirthman)**, **Glyn**, **dugalex**, and **Dunvcpi** for the beers — you guys are legends.
124
+ > Huge thanks to **[@Xentrino](https://github.com/Xentrino)**, **[@javisaman](https://github.com/javisaman)**, **[@loosethoughts19-hash](https://github.com/loosethoughts19-hash)**, **[@Reborn627](https://github.com/Reborn627)**, **[@Mr-Renegade](https://github.com/Mr-Renegade)**, **[@knappstar](https://github.com/knappstar)**, **[@woebygon](https://github.com/woebygon)**, **[@Smokemic](https://github.com/Smokemic)**, **[@chava-byte](https://github.com/chava-byte)**, **[@nihilistqueen](https://github.com/nihilistqueen)**, **[@rhuggins573-crypto](https://github.com/rhuggins573-crypto)**, **[@unfirthman](https://github.com/unfirthman)**, **Glyn**, **dugalex**, **Dunvcpi**, and **RichardK** for the beers — you guys are legends.
122
125
 
123
126
  Native Linux port of the Thermalright LCD Control Center (Windows TRCC 2.1.2). Control and customize the LCD displays and LED segment displays on Thermalright CPU coolers, AIO pump heads, and fan hubs — entirely from Linux.
124
127
 
@@ -172,7 +175,7 @@ sudo dnf install pipx libusb-1.0.0 sg3_utils p7zip # Fedora
172
175
 
173
176
  # Install trcc-linux
174
177
  pipx install trcc-linux
175
- trcc setup # interactive wizard — udev rules, desktop entry
178
+ trcc system setup # interactive wizard — udev rules, desktop entry
176
179
  ```
177
180
 
178
181
  Then **unplug and replug the USB cable** and run `trcc gui`.
@@ -218,7 +221,7 @@ Full desktop app with theme browser, video player, overlay editor, LED control p
218
221
  ```bash
219
222
  trcc detect # Show connected devices
220
223
  trcc send image.png # Send image to LCD
221
- trcc color "#ff0000" # Fill LCD with solid color
224
+ trcc display color "#ff0000" # Fill LCD with solid color
222
225
  trcc video clip.mp4 # Play video on LCD
223
226
  trcc screencast # Live screen capture to LCD
224
227
  trcc brightness 2 # Set brightness (1=25%, 2=50%, 3=100%)
@@ -230,7 +233,7 @@ trcc led-color "#00ff00" # Set LED color
230
233
  trcc led-mode breathing # Set LED effect mode
231
234
  trcc report # Generate diagnostic report
232
235
  trcc doctor # Check system dependencies
233
- trcc setup # Interactive setup wizard
236
+ trcc system setup # Interactive setup wizard
234
237
  trcc uninstall # Remove TRCC completely
235
238
  ```
236
239
 
@@ -47,7 +47,7 @@
47
47
  [![Buy Me a Beer](https://img.shields.io/badge/Buy_Me_a_Beer-🍺-FF5F5F?style=flat)](https://buymeacoffee.com/Lexonight1)
48
48
  [![Ko-fi](https://img.shields.io/badge/Ko--fi-☕-FF5E5B?style=flat&logo=kofi&logoColor=white)](https://ko-fi.com/lexonight1)
49
49
 
50
- > Huge thanks to **[@Xentrino](https://github.com/Xentrino)**, **[@javisaman](https://github.com/javisaman)**, **[@loosethoughts19-hash](https://github.com/loosethoughts19-hash)**, **[@Reborn627](https://github.com/Reborn627)**, **[@Mr-Renegade](https://github.com/Mr-Renegade)**, **[@knappstar](https://github.com/knappstar)**, **[@woebygon](https://github.com/woebygon)**, **[@Smokemic](https://github.com/Smokemic)**, **[@chava-byte](https://github.com/chava-byte)**, **[@nihilistqueen](https://github.com/nihilistqueen)**, **[@rhuggins573-crypto](https://github.com/rhuggins573-crypto)**, **[@unfirthman](https://github.com/unfirthman)**, **Glyn**, **dugalex**, and **Dunvcpi** for the beers — you guys are legends.
50
+ > Huge thanks to **[@Xentrino](https://github.com/Xentrino)**, **[@javisaman](https://github.com/javisaman)**, **[@loosethoughts19-hash](https://github.com/loosethoughts19-hash)**, **[@Reborn627](https://github.com/Reborn627)**, **[@Mr-Renegade](https://github.com/Mr-Renegade)**, **[@knappstar](https://github.com/knappstar)**, **[@woebygon](https://github.com/woebygon)**, **[@Smokemic](https://github.com/Smokemic)**, **[@chava-byte](https://github.com/chava-byte)**, **[@nihilistqueen](https://github.com/nihilistqueen)**, **[@rhuggins573-crypto](https://github.com/rhuggins573-crypto)**, **[@unfirthman](https://github.com/unfirthman)**, **Glyn**, **dugalex**, **Dunvcpi**, and **RichardK** for the beers — you guys are legends.
51
51
 
52
52
  Native Linux port of the Thermalright LCD Control Center (Windows TRCC 2.1.2). Control and customize the LCD displays and LED segment displays on Thermalright CPU coolers, AIO pump heads, and fan hubs — entirely from Linux.
53
53
 
@@ -101,7 +101,7 @@ sudo dnf install pipx libusb-1.0.0 sg3_utils p7zip # Fedora
101
101
 
102
102
  # Install trcc-linux
103
103
  pipx install trcc-linux
104
- trcc setup # interactive wizard — udev rules, desktop entry
104
+ trcc system setup # interactive wizard — udev rules, desktop entry
105
105
  ```
106
106
 
107
107
  Then **unplug and replug the USB cable** and run `trcc gui`.
@@ -147,7 +147,7 @@ Full desktop app with theme browser, video player, overlay editor, LED control p
147
147
  ```bash
148
148
  trcc detect # Show connected devices
149
149
  trcc send image.png # Send image to LCD
150
- trcc color "#ff0000" # Fill LCD with solid color
150
+ trcc display color "#ff0000" # Fill LCD with solid color
151
151
  trcc video clip.mp4 # Play video on LCD
152
152
  trcc screencast # Live screen capture to LCD
153
153
  trcc brightness 2 # Set brightness (1=25%, 2=50%, 3=100%)
@@ -159,7 +159,7 @@ trcc led-color "#00ff00" # Set LED color
159
159
  trcc led-mode breathing # Set LED effect mode
160
160
  trcc report # Generate diagnostic report
161
161
  trcc doctor # Check system dependencies
162
- trcc setup # Interactive setup wizard
162
+ trcc system setup # Interactive setup wizard
163
163
  trcc uninstall # Remove TRCC completely
164
164
  ```
165
165
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "trcc-linux"
7
- version = "9.7.0"
7
+ version = "9.7.2"
8
8
  description = "Linux implementation of Thermalright LCD Control Center"
9
9
  readme = "README.md"
10
10
  license = "GPL-3.0-or-later"
@@ -51,6 +51,12 @@ dependencies = [
51
51
  "sounddevice>=0.4.6",
52
52
  "wmi>=1.5.1; sys_platform == 'win32'",
53
53
  "certifi>=2023.7.22",
54
+ # Linux hotplug: live device attach/detach + boot-time coldplug. Without
55
+ # it the udev monitor can't start, so a device plugged in after launch (or
56
+ # missed at the boot discover) never connects — hotplug silently no-ops.
57
+ # Core feature, not optional; the graceful-None fallback only covers exotic
58
+ # environments that strip libudev (#139).
59
+ "pyudev>=0.24.1; sys_platform == 'linux'",
54
60
  ]
55
61
 
56
62
  [project.optional-dependencies]
@@ -74,6 +80,7 @@ remote = [
74
80
  dev = [
75
81
  "pytest>=7.0.0",
76
82
  "pytest-cov>=4.0.0",
83
+ "pytest-qt>=4.0.0",
77
84
  "ruff>=0.4.0",
78
85
  "httpx>=0.24.0",
79
86
  "types-qrcode>=7.0",
@@ -129,6 +136,10 @@ artifacts = [
129
136
  "**/assets/**/*.service",
130
137
  "**/assets/**/*.policy",
131
138
  "**/assets/**/*.svg",
139
+ # SELinux policy source — `trcc system setup` builds + loads it on Fedora
140
+ # so source/pip installs can pass the USB/SCSI ioctls (packages ship the
141
+ # compiled .pp via the rpm).
142
+ "**/data/trcc_usb.te",
132
143
  ]
133
144
 
134
145
  [tool.pytest.ini_options]
@@ -42,7 +42,7 @@ _early_handler = _rotating_handler_cls(
42
42
  # Tag the early shim so ``adapters.infra.logging.configure_logging`` knows
43
43
  # to swap it out when it runs. Without the tag, both handlers stay
44
44
  # attached and every log line gets written twice.
45
- _early_handler._trcc_next_handler = True # type: ignore[attr-defined]
45
+ _early_handler._trcc_handler = True # type: ignore[attr-defined]
46
46
  logging.basicConfig(
47
47
  level=logging.DEBUG,
48
48
  format='%(asctime)s [%(levelname)s] %(name)s.%(funcName)s: %(message)s',
@@ -1,4 +1,4 @@
1
1
  """TRCC Linux version information. History in doc/CHANGELOG.md."""
2
2
 
3
- __version__ = "9.7.0"
3
+ __version__ = "9.7.2"
4
4
  __version_info__ = tuple(int(x) for x in __version__.split("."))
@@ -2,8 +2,8 @@
2
2
 
3
3
  Routes to one of two backends based on the environment::
4
4
 
5
- TRCC_NEXT_DAEMON unset → real App, in-process
6
- TRCC_NEXT_DAEMON=1 → AppProxy, talks to daemon over Unix socket
5
+ TRCC_DAEMON unset → real App, in-process
6
+ TRCC_DAEMON=1 → AppProxy, talks to daemon over Unix socket
7
7
  (auto-spawns the daemon if not running)
8
8
 
9
9
  On Windows < build 17063 ``AF_UNIX`` is not available; the factory
@@ -27,10 +27,10 @@ if TYPE_CHECKING:
27
27
  log = logging.getLogger(__name__)
28
28
 
29
29
 
30
- _ENV_FLAG = "TRCC_NEXT_DAEMON"
30
+ _ENV_FLAG = "TRCC_DAEMON"
31
31
 
32
32
 
33
- def trcc_next(
33
+ def trcc(
34
34
  *,
35
35
  platform: Platform | None = None,
36
36
  renderer: Renderer | None = None,
@@ -39,9 +39,9 @@ def trcc_next(
39
39
 
40
40
  Three modes:
41
41
 
42
- * ``TRCC_NEXT_DAEMON=1`` + ``AF_UNIX`` available → ``AppProxy``
42
+ * ``TRCC_DAEMON=1`` + ``AF_UNIX`` available → ``AppProxy``
43
43
  (auto-spawn daemon on first request).
44
- * ``TRCC_NEXT_DAEMON=1`` on a platform without ``AF_UNIX`` →
44
+ * ``TRCC_DAEMON=1`` on a platform without ``AF_UNIX`` →
45
45
  warn once and fall back to in-process.
46
46
  * Default → in-process ``App`` built from ``platform`` /
47
47
  ``renderer`` (auto-detected when omitted).
@@ -50,7 +50,7 @@ def trcc_next(
50
50
  owns both. Pass them when forcing in-process construction (tests,
51
51
  composition roots).
52
52
  """
53
- log.info("trcc_next: env_flag=%s platform=%s renderer=%s",
53
+ log.info("trcc: env_flag=%s platform=%s renderer=%s",
54
54
  os.environ.get(_ENV_FLAG), platform is not None,
55
55
  renderer is not None)
56
56
  if os.environ.get(_ENV_FLAG) == "1":
@@ -79,7 +79,7 @@ def _build_local_app(
79
79
  platform: Platform | None = None,
80
80
  renderer: Renderer | None = None,
81
81
  ) -> App:
82
- """Construct an in-process App. Used by ``trcc_next`` and the daemon."""
82
+ """Construct an in-process App. Used by ``trcc`` and the daemon."""
83
83
  log.info("_build_local_app: platform=%s renderer=%s",
84
84
  platform is not None, renderer is not None)
85
85
  from .adapters.system import PlatformFactory
@@ -21,7 +21,13 @@ from ...core.errors import (
21
21
  )
22
22
  from ...core.models import HandshakeResult, ProductInfo, Wire
23
23
  from ...core.ports import BulkTransport, Device
24
- from ...core.protocol import DeviceProfile, get_profile, pm_to_fbl
24
+ from ...core.protocol import (
25
+ DeviceProfile,
26
+ get_profile,
27
+ pm_to_fbl,
28
+ resolve_encode_base,
29
+ resolve_encode_sub,
30
+ )
25
31
  from . import DeviceFactory
26
32
 
27
33
  log = logging.getLogger(__name__)
@@ -50,6 +56,17 @@ _WRITE_CHUNK_SIZE = 16 * 1024
50
56
  # PM values that use raw RGB565 (cmd=3); everything else uses JPEG (cmd=2).
51
57
  _RGB565_PMS: set[int] = {32}
52
58
 
59
+ # Bulk base FBL is 72 (480x480, hardcoded by USBLCDNew.exe). C#
60
+ # FormCZTVInit (myDeviceMode==2) overrides it only for this known PM set
61
+ # (plus PM=1 with SUB 48/49); every other PM stays 480x480. pm_to_fbl()
62
+ # returns the PM itself for unrecognised values, which get_profile would
63
+ # misread as a 320x320 panel — so unknown bulk PMs must clamp to FBL 72.
64
+ # Mirrors legacy ``_bulk_resolution``. (#169)
65
+ _BULK_BASE_FBL = 72
66
+ _BULK_KNOWN_PMS: frozenset[int] = frozenset(
67
+ {5, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 32, 50, 63, 64, 65, 66, 68, 69}
68
+ )
69
+
53
70
 
54
71
  @DeviceFactory.register(Wire.BULK)
55
72
  class BulkLcd(Device[BulkTransport]):
@@ -101,15 +118,39 @@ class BulkLcd(Device[BulkTransport]):
101
118
 
102
119
  # Build the cached profile. Resolution comes from the FBL tables
103
120
  # (mirrors legacy ``_bulk_resolution``); the jpeg flag is the
104
- # Bulk-specific override (USBLCDNew → JPEG except PM=32).
105
- fbl = pm_to_fbl(self._pm, self._sub)
121
+ # Bulk-specific override (USBLCDNew → JPEG except PM=32). Unknown
122
+ # bulk PMs stay on the 480x480 base rather than letting pm_to_fbl
123
+ # echo the PM into get_profile as a bogus FBL (C# parity, #169).
124
+ if self._pm in _BULK_KNOWN_PMS or (
125
+ self._pm == 1 and self._sub in (48, 49)
126
+ ):
127
+ fbl = pm_to_fbl(self._pm, self._sub)
128
+ else:
129
+ log.info(
130
+ "BulkLcd %s: PM=%d SUB=%d not a known bulk model — "
131
+ "defaulting to FBL %d (480x480)",
132
+ self.info.key, self._pm, self._sub, _BULK_BASE_FBL,
133
+ )
134
+ fbl = _BULK_BASE_FBL
106
135
  base = get_profile(fbl, self._pm)
136
+ # Resolve the device-only encode baseline now that PM is known — e.g.
137
+ # the FW360 Ultra (PM=6) mounts 180° rotated and needs its wire frame
138
+ # pre-rotated so it reads upright on the glass. (#137)
139
+ encode_baseline = resolve_encode_base(base, self._pm)
140
+ if encode_baseline:
141
+ log.info("BulkLcd %s: PM=%d encode baseline %d° (wire-only)",
142
+ self.info.key, self._pm, encode_baseline)
143
+ # Fold the sub-byte override into encode_base now that SUB is known, so
144
+ # the render-time resolve_encode_angle only needs the user orientation
145
+ # (C# ImageToJpg mySubMode branch — e.g. FBL 224 sub=2 → 180°). (#169)
146
+ encode_base = resolve_encode_sub(base, self._sub)
107
147
  self._profile = DeviceProfile(
108
148
  width=base.width, height=base.height,
109
149
  jpeg=(self._pm not in _RGB565_PMS),
110
150
  big_endian=base.big_endian, rotate=base.rotate,
111
- encode_base=base.encode_base, encode_invert=base.encode_invert,
112
- encode_sub_bases=base.encode_sub_bases,
151
+ encode_baseline=encode_baseline,
152
+ encode_base=encode_base, encode_invert=base.encode_invert,
153
+ encode_sub_bases=(), # folded into encode_base above
113
154
  encode_pm_bases=base.encode_pm_bases,
114
155
  )
115
156
 
@@ -15,6 +15,7 @@ ThreadSendDeviceDataLY / ThreadSendDeviceDataLY1.
15
15
  """
16
16
  from __future__ import annotations
17
17
 
18
+ import dataclasses
18
19
  import logging
19
20
  import struct
20
21
 
@@ -25,7 +26,12 @@ from ...core.errors import (
25
26
  )
26
27
  from ...core.models import HandshakeResult, ProductInfo, Wire
27
28
  from ...core.ports import BulkTransport, Device
28
- from ...core.protocol import DeviceProfile, get_profile, pm_to_fbl
29
+ from ...core.protocol import (
30
+ DeviceProfile,
31
+ get_profile,
32
+ pm_to_fbl,
33
+ resolve_encode_sub,
34
+ )
29
35
  from . import DeviceFactory
30
36
 
31
37
  log = logging.getLogger(__name__)
@@ -113,7 +119,15 @@ class LyLcd(Device[BulkTransport]):
113
119
  self._sub = resp[22] if len(resp) > 22 else 0
114
120
 
115
121
  fbl = pm_to_fbl(self._pm, self._sub)
116
- self._profile = get_profile(fbl, self._pm)
122
+ # Fold the sub-byte override into encode_base now that SUB is known so
123
+ # render-time resolve_encode_angle only needs the user orientation
124
+ # (C# ImageToJpg mySubMode branch — FBL 192 sub 2/3/4 → 0°). (#169)
125
+ base = get_profile(fbl, self._pm)
126
+ self._profile = dataclasses.replace(
127
+ base,
128
+ encode_base=resolve_encode_sub(base, self._sub),
129
+ encode_sub_bases=(),
130
+ )
117
131
 
118
132
  result = HandshakeResult(
119
133
  resolution=self._profile.resolution,
@@ -26,6 +26,7 @@ from pathlib import Path
26
26
  from typing import Literal
27
27
 
28
28
  from ...core.ports import Paths, Platform
29
+ from ..sensors.nvml import NVML_RELOAD_HINT, nvml_init_state
29
30
 
30
31
  log = logging.getLogger(__name__)
31
32
 
@@ -175,6 +176,68 @@ def check_sensors_enumerable(platform: Platform) -> HealthCheckResult:
175
176
  )
176
177
 
177
178
 
179
+ def nvidia_gpu_present() -> bool:
180
+ """Cheap probe: is a discrete NVIDIA (PCI vendor ``0x10de``) GPU present?
181
+
182
+ Reads ``/sys/bus/pci/devices/*/vendor`` — no subprocess, and works even
183
+ when the driver / pynvml are absent. That's the point: detect the card
184
+ independently of the reader so we can advise *installing* the reader.
185
+ Non-Linux falls back to the driver proc node.
186
+ """
187
+ if sys.platform != "linux":
188
+ return Path("/proc/driver/nvidia/version").exists()
189
+ pci_root = Path("/sys/bus/pci/devices")
190
+ if not pci_root.is_dir():
191
+ return False
192
+ for dev in pci_root.iterdir():
193
+ try:
194
+ if dev.joinpath("vendor").read_text().strip().lower() != "0x10de":
195
+ continue
196
+ # PCI class 0x03xxxx == display controller (skip non-GPU NVIDIA
197
+ # functions like the bundled HDMI-audio device).
198
+ if dev.joinpath("class").read_text().strip().lower().startswith("0x03"):
199
+ return True
200
+ except OSError:
201
+ continue
202
+ return False
203
+
204
+
205
+ def check_gpu_sensors(platform: Platform) -> HealthCheckResult:
206
+ """NVIDIA GPU present but no metrics → guide the user to the fix.
207
+
208
+ The foolproof-install check: a discrete NVIDIA card with empty GPU
209
+ readings is almost always (a) the pynvml reader not installed, or (b) an
210
+ NVML version mismatch after a driver update without reboot. Both are
211
+ actionable, so this WARNs (not FAILs) with a distro-specific hint. No
212
+ NVIDIA card → OK (AMD reads via hwmon, no extra package needed).
213
+ """
214
+ log.info("check_gpu_sensors: called")
215
+ reader_available, initialized, last_error = nvml_init_state()
216
+ if initialized:
217
+ return HealthCheckResult(
218
+ name="gpu-sensors", severity="OK",
219
+ message="NVIDIA GPU sensors available (NVML initialized)",
220
+ )
221
+ if not nvidia_gpu_present():
222
+ return HealthCheckResult(
223
+ name="gpu-sensors", severity="OK",
224
+ message="No discrete NVIDIA GPU detected (NVML check not applicable)",
225
+ )
226
+ if not reader_available:
227
+ return HealthCheckResult(
228
+ name="gpu-sensors", severity="WARN",
229
+ message="NVIDIA GPU detected but the pynvml reader is not installed "
230
+ "— GPU metrics will be empty",
231
+ fix_hint=package_install_hint("python3-pynvml")
232
+ + " (the trcc-linux package should pull this in)",
233
+ )
234
+ return HealthCheckResult(
235
+ name="gpu-sensors", severity="WARN",
236
+ message=f"NVIDIA GPU detected but NVML init failed: {last_error}",
237
+ fix_hint=NVML_RELOAD_HINT,
238
+ )
239
+
240
+
178
241
  def check_ffmpeg_present() -> HealthCheckResult:
179
242
  """ffmpeg is required for video themes; absence is WARN (still usable
180
243
  for image-only themes)."""
@@ -267,6 +330,7 @@ def run_health_checks(platform: Platform) -> HealthReport:
267
330
  check_config_writable(paths),
268
331
  check_devices_visible(platform),
269
332
  check_sensors_enumerable(platform),
333
+ check_gpu_sensors(platform),
270
334
  check_ffmpeg_present(),
271
335
  check_qt_importable(),
272
336
  check_udev_rules_linux(),
@@ -5,6 +5,10 @@ block with a focused configurator that:
5
5
 
6
6
  * writes to ``Paths.log_file()`` with rotation at 1 MB × 5 backups so
7
7
  long-lived daemons don't fill the disk;
8
+ * also writes a sibling ``<stem>.latest.log`` truncated fresh on every
9
+ process start, so "what did THIS launch do" is always the whole file
10
+ with no rotation/offset math — the rotating log keeps cross-run
11
+ history, the latest log isolates the current run;
8
12
  * mirrors WARNING+ to stderr so terminal users see issues without
9
13
  digging into the log file;
10
14
  * uses a single timestamped format every TRCC logger inherits.
@@ -23,7 +27,7 @@ from pathlib import Path
23
27
 
24
28
  log = logging.getLogger(__name__)
25
29
 
26
- _HANDLER_TAG = "_trcc_next_handler"
30
+ _HANDLER_TAG = "_trcc_handler"
27
31
  # ``name`` is the module logger; ``classname`` is injected by
28
32
  # ClassContextFilter; ``funcName``/``lineno`` come free on every record.
29
33
  # Result per line: ``trcc.core.commands.device:SetBrightness.execute:208``
@@ -78,6 +82,7 @@ def configure_logging(
78
82
  level: int = logging.INFO,
79
83
  max_bytes: int = 1_000_000,
80
84
  backup_count: int = 5,
85
+ latest_max_bytes: int = 10_000_000,
81
86
  stderr_level: int = logging.WARNING,
82
87
  ) -> None:
83
88
  """Wire the root logger to log_file + stderr. Idempotent.
@@ -110,6 +115,24 @@ def configure_logging(
110
115
  setattr(file_handler, _HANDLER_TAG, True)
111
116
  root.addHandler(file_handler)
112
117
 
118
+ # Per-run log: a SECOND file truncated fresh on open (mode="w").
119
+ # ``configure_logging`` runs once per process (CLI root callback /
120
+ # launch entry point), so the truncate happens exactly once per app
121
+ # init and the file holds this run alone. Still a RotatingFileHandler
122
+ # so a long-lived ``-v`` session (video DEBUG can emit ~30–90 lines/s)
123
+ # can't grow the file without bound — it rolls at ``latest_max_bytes``
124
+ # keeping one backup (worst case 2× the cap on disk).
125
+ latest_file = log_file.with_name(f"{log_file.stem}.latest{log_file.suffix}")
126
+ latest_handler = RotatingFileHandler(
127
+ latest_file, mode="w", maxBytes=latest_max_bytes, backupCount=1,
128
+ encoding="utf-8",
129
+ )
130
+ latest_handler.setLevel(level)
131
+ latest_handler.setFormatter(formatter)
132
+ latest_handler.addFilter(context_filter)
133
+ setattr(latest_handler, _HANDLER_TAG, True)
134
+ root.addHandler(latest_handler)
135
+
113
136
  stderr_handler = logging.StreamHandler(stream=sys.stderr)
114
137
  stderr_handler.setLevel(stderr_level)
115
138
  stderr_handler.setFormatter(formatter)
@@ -118,9 +141,9 @@ def configure_logging(
118
141
  root.addHandler(stderr_handler)
119
142
 
120
143
  log.info(
121
- "configure_logging: file=%s level=%s rotate=%d×%d stderr=%s",
122
- log_file, logging.getLevelName(level), max_bytes, backup_count,
123
- logging.getLevelName(stderr_level),
144
+ "configure_logging: file=%s latest=%s level=%s rotate=%d×%d stderr=%s",
145
+ log_file, latest_file, logging.getLevelName(level),
146
+ max_bytes, backup_count, logging.getLevelName(stderr_level),
124
147
  )
125
148
 
126
149
 
@@ -0,0 +1,111 @@
1
+ """SendScheduler implementations — the execution behind the send worker.
2
+
3
+ ``ThreadSendScheduler`` runs one daemon thread per :class:`SendTask` (the
4
+ production driver — single consumer per device ⇒ serialized writes).
5
+ ``SyncSendScheduler`` does nothing on its own; tests call :meth:`tick` to drive
6
+ every task deterministically with a controlled clock — no threads, no sleeps.
7
+
8
+ Both are injected at the composition root; the tasks (``DeviceSender``) never
9
+ name a thread. See ``doc/SEND_FOUNDATION.md``.
10
+ """
11
+ from __future__ import annotations
12
+
13
+ import logging
14
+ import threading
15
+ import time
16
+
17
+ from ...core.ports import SendScheduler, SendTask
18
+
19
+ log = logging.getLogger(__name__)
20
+
21
+
22
+ class _TaskThread:
23
+ """A daemon thread that drives one task: ``wait(delay) → run_once``."""
24
+
25
+ __slots__ = ("_stop", "_task", "_thread")
26
+
27
+ def __init__(self, task: SendTask) -> None:
28
+ self._task = task
29
+ self._stop = threading.Event()
30
+ self._thread = threading.Thread(
31
+ target=self._run, name=f"trcc-send-{task.key}", daemon=True,
32
+ )
33
+
34
+ def start(self) -> None:
35
+ self._thread.start()
36
+
37
+ def _run(self) -> None:
38
+ # First pass establishes the initial delay (e.g. a volatile task wants
39
+ # to keepalive even if no frame has been submitted yet).
40
+ delay = self._task.run_once(time.monotonic())
41
+ while not self._stop.is_set():
42
+ self._task.wait(delay)
43
+ if self._stop.is_set():
44
+ break
45
+ delay = self._task.run_once(time.monotonic())
46
+
47
+ def stop(self, *, join_timeout: float = 2.0) -> None:
48
+ self._stop.set()
49
+ self._task.wake() # interrupt a long-idle wait so the join is prompt
50
+ self._thread.join(timeout=join_timeout)
51
+ if self._thread.is_alive():
52
+ log.warning("ThreadSendScheduler: task %s did not stop within %.1fs",
53
+ self._task.key, join_timeout)
54
+
55
+
56
+ class ThreadSendScheduler(SendScheduler):
57
+ """One daemon thread per task — the production execution model."""
58
+
59
+ def __init__(self) -> None:
60
+ self._threads: dict[str, _TaskThread] = {}
61
+ self._lock = threading.Lock()
62
+
63
+ def add(self, task: SendTask) -> None:
64
+ log.info("ThreadSendScheduler: add %s", task.key)
65
+ with self._lock:
66
+ existing = self._threads.pop(task.key, None)
67
+ if existing is not None:
68
+ log.warning("ThreadSendScheduler: replacing existing task %s",
69
+ task.key)
70
+ existing.stop()
71
+ worker = _TaskThread(task)
72
+ self._threads[task.key] = worker
73
+ worker.start()
74
+
75
+ def remove(self, key: str) -> None:
76
+ log.info("ThreadSendScheduler: remove %s", key)
77
+ with self._lock:
78
+ worker = self._threads.pop(key, None)
79
+ if worker is not None:
80
+ worker.stop()
81
+
82
+ def shutdown(self) -> None:
83
+ with self._lock:
84
+ workers = list(self._threads.values())
85
+ self._threads.clear()
86
+ log.info("ThreadSendScheduler: shutdown (%d task(s))", len(workers))
87
+ for worker in workers:
88
+ worker.stop()
89
+
90
+
91
+ class SyncSendScheduler(SendScheduler):
92
+ """Deterministic driver — tests call :meth:`tick(now)`; no threads."""
93
+
94
+ def __init__(self) -> None:
95
+ self._tasks: dict[str, SendTask] = {}
96
+
97
+ def add(self, task: SendTask) -> None:
98
+ log.debug("SyncSendScheduler: add %s", task.key)
99
+ self._tasks[task.key] = task
100
+
101
+ def remove(self, key: str) -> None:
102
+ log.debug("SyncSendScheduler: remove %s", key)
103
+ self._tasks.pop(key, None)
104
+
105
+ def shutdown(self) -> None:
106
+ self._tasks.clear()
107
+
108
+ def tick(self, now: float) -> None:
109
+ """Drive every registered task once with clock *now* (seconds)."""
110
+ for task in list(self._tasks.values()):
111
+ task.run_once(now)