trcc-linux 9.7.5__tar.gz → 9.7.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1016) hide show
  1. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/PKG-INFO +4 -2
  2. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/README.md +3 -1
  3. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/pyproject.toml +1 -1
  4. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/__main__.py +1 -1
  5. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/__version__.py +1 -1
  6. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/device/led.py +11 -8
  7. trcc_linux-9.7.6/src/trcc/adapters/diagnostics/adapter.py +73 -0
  8. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/diagnostics/doctor.py +4 -16
  9. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/diagnostics/health.py +13 -35
  10. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/infra/sysinfo_config.py +4 -4
  11. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/render/qt.py +18 -0
  12. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/repo/data_install.py +3 -3
  13. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/sensors/_lhm.py +85 -1
  14. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/sensors/aggregator.py +20 -4
  15. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/sensors/hwmon.py +45 -1
  16. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/sensors/windows.py +5 -3
  17. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/system/linux.py +5 -1
  18. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/system/macos.py +5 -0
  19. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/system/windows.py +4 -0
  20. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/theme/cloud.py +8 -21
  21. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/app.py +17 -5
  22. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/commands/led.py +50 -18
  23. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/commands/system.py +25 -69
  24. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/device_recovery.py +16 -20
  25. trcc_linux-9.7.6/src/trcc/core/diagnostics.py +77 -0
  26. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/i18n.py +28 -0
  27. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/led_models.py +4 -3
  28. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/models.py +21 -0
  29. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/ports.py +170 -0
  30. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ipc.py +6 -3
  31. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/_dc.py +4 -4
  32. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/cloud_theme.py +3 -7
  33. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/data_install.py +1 -2
  34. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/display.py +26 -4
  35. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/led_effects.py +26 -3
  36. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/led_segment.py +7 -1
  37. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/quickstart.py +4 -4
  38. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/settings.py +5 -3
  39. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/__init__.py +5 -5
  40. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_bg_lc1.png +0 -0
  41. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_bg_lc2.png +0 -0
  42. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_bg_lf11.png +0 -0
  43. trcc_linux-9.7.6/src/trcc/ui/gui/assets/led_zone_mode_1.png +0 -0
  44. trcc_linux-9.7.6/src/trcc/ui/gui/assets/led_zone_mode_1_active.png +0 -0
  45. trcc_linux-9.7.6/src/trcc/ui/gui/assets/led_zone_mode_2.png +0 -0
  46. trcc_linux-9.7.6/src/trcc/ui/gui/assets/led_zone_mode_2_active.png +0 -0
  47. trcc_linux-9.7.6/src/trcc/ui/gui/assets/led_zone_mode_3.png +0 -0
  48. trcc_linux-9.7.6/src/trcc/ui/gui/assets/led_zone_mode_3_active.png +0 -0
  49. trcc_linux-9.7.6/src/trcc/ui/gui/assets/led_zone_mode_4.png +0 -0
  50. trcc_linux-9.7.6/src/trcc/ui/gui/assets/led_zone_mode_4_active.png +0 -0
  51. trcc_linux-9.7.6/src/trcc/ui/gui/assets/led_zone_mode_5.png +0 -0
  52. trcc_linux-9.7.6/src/trcc/ui/gui/assets/led_zone_mode_5_active.png +0 -0
  53. trcc_linux-9.7.6/src/trcc/ui/gui/assets/led_zone_mode_6.png +0 -0
  54. trcc_linux-9.7.6/src/trcc/ui/gui/assets/led_zone_mode_6_active.png +0 -0
  55. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/lcd_handler.py +90 -156
  56. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/trcc_app.py +47 -5
  57. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/uc_led_control.py +202 -30
  58. trcc_linux-9.7.6/src/trcc/ui/presentation/lcd_presentation_model.py +158 -0
  59. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/presentation/led_display.py +5 -3
  60. trcc_linux-9.7.6/src/trcc/ui/presentation/preview_geometry.py +74 -0
  61. trcc_linux-9.7.6/src/trcc/ui/presentation/theme_directories.py +88 -0
  62. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/conftest.py +6 -1
  63. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/mock_platform.py +22 -1
  64. trcc_linux-9.7.6/tests/test_architecture_boundaries.py +480 -0
  65. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_cloud_themes.py +13 -2
  66. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_data_install.py +13 -0
  67. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_device_recovery.py +33 -1
  68. trcc_linux-9.7.6/tests/test_device_surface_matrix.py +131 -0
  69. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_diagnostics.py +17 -0
  70. trcc_linux-9.7.6/tests/test_gui_raise_existing.py +69 -0
  71. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_led_assets.py +25 -0
  72. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_led_send.py +6 -7
  73. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_render_led.py +139 -0
  74. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_sensors.py +104 -0
  75. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_sensors_windows.py +72 -1
  76. trcc_linux-9.7.6/tests/test_system_commands.py +170 -0
  77. trcc_linux-9.7.6/tests/ui/presentation/test_lcd_presentation_model.py +191 -0
  78. trcc_linux-9.7.6/tests/ui/presentation/test_preview_geometry.py +107 -0
  79. trcc_linux-9.7.6/tests/ui/presentation/test_theme_directories.py +66 -0
  80. trcc_linux-9.7.5/src/trcc/ui/gui/assets/led_zone_mode_1.png +0 -0
  81. trcc_linux-9.7.5/src/trcc/ui/gui/assets/led_zone_mode_1_active.png +0 -0
  82. trcc_linux-9.7.5/src/trcc/ui/gui/assets/led_zone_mode_2.png +0 -0
  83. trcc_linux-9.7.5/src/trcc/ui/gui/assets/led_zone_mode_2_active.png +0 -0
  84. trcc_linux-9.7.5/src/trcc/ui/gui/assets/led_zone_mode_3.png +0 -0
  85. trcc_linux-9.7.5/src/trcc/ui/gui/assets/led_zone_mode_3_active.png +0 -0
  86. trcc_linux-9.7.5/src/trcc/ui/gui/assets/led_zone_mode_4.png +0 -0
  87. trcc_linux-9.7.5/src/trcc/ui/gui/assets/led_zone_mode_4_active.png +0 -0
  88. trcc_linux-9.7.5/src/trcc/ui/gui/assets/led_zone_mode_5.png +0 -0
  89. trcc_linux-9.7.5/src/trcc/ui/gui/assets/led_zone_mode_5_active.png +0 -0
  90. trcc_linux-9.7.5/src/trcc/ui/gui/assets/led_zone_mode_6.png +0 -0
  91. trcc_linux-9.7.5/src/trcc/ui/gui/assets/led_zone_mode_6_active.png +0 -0
  92. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/.gitignore +0 -0
  93. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/LICENSE +0 -0
  94. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/__init__.py +0 -0
  95. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/_boot.py +0 -0
  96. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/_entry.py +0 -0
  97. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/__init__.py +0 -0
  98. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/device/__init__.py +0 -0
  99. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/device/_pyusb_find.py +0 -0
  100. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/device/bulk_lcd.py +0 -0
  101. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/device/hid_lcd.py +0 -0
  102. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/device/ly_lcd.py +0 -0
  103. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/device/scsi_lcd.py +0 -0
  104. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/device/transport.py +0 -0
  105. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/device/usb_bot_scsi.py +0 -0
  106. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/diagnostics/__init__.py +0 -0
  107. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/diagnostics/debug_report.py +0 -0
  108. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/infra/__init__.py +0 -0
  109. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/infra/logging.py +0 -0
  110. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/infra/network.py +0 -0
  111. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/infra/send_scheduler.py +0 -0
  112. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/render/__init__.py +0 -0
  113. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/repo/__init__.py +0 -0
  114. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/repo/github_releases.py +0 -0
  115. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/repo/http.py +0 -0
  116. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/screencast/__init__.py +0 -0
  117. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/screencast/qt.py +0 -0
  118. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/sensors/__init__.py +0 -0
  119. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/sensors/_hwinfo.py +0 -0
  120. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/sensors/_macos_hid.py +0 -0
  121. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/sensors/_msacpi.py +0 -0
  122. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/sensors/_powermetrics.py +0 -0
  123. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/sensors/_smc.py +0 -0
  124. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/sensors/_sysctl.py +0 -0
  125. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/sensors/_wmi_gpu.py +0 -0
  126. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/sensors/bsd.py +0 -0
  127. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/sensors/chain.py +0 -0
  128. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/sensors/gpu_detect.py +0 -0
  129. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/sensors/macos.py +0 -0
  130. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/sensors/nvml.py +0 -0
  131. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/sensors/psutil_sources.py +0 -0
  132. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/system/__init__.py +0 -0
  133. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/system/_autostart.py +0 -0
  134. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/system/_devd.py +0 -0
  135. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/system/_elevate.py +0 -0
  136. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/system/_hotplug.py +0 -0
  137. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/system/_macos_setup.py +0 -0
  138. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/system/_selinux.py +0 -0
  139. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/system/_udev.py +0 -0
  140. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/system/_windows_wmi.py +0 -0
  141. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/system/_winusb.py +0 -0
  142. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/system/bsd.py +0 -0
  143. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/adapters/theme/__init__.py +0 -0
  144. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/assets/LibreHardwareMonitor.config +0 -0
  145. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/assets/com.github.lexonight1.trcc.policy +0 -0
  146. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/assets/fonts/MSYH.TTC +0 -0
  147. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/assets/fonts/MSYHBD.TTC +0 -0
  148. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/assets/fonts/README.md +0 -0
  149. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/assets/icons/app.ico +0 -0
  150. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/assets/icons/trcc.png +0 -0
  151. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/assets/icons/trcc_128x128.png +0 -0
  152. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/assets/icons/trcc_16x16.png +0 -0
  153. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/assets/icons/trcc_24x24.png +0 -0
  154. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/assets/icons/trcc_256x256.png +0 -0
  155. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/assets/icons/trcc_32x32.png +0 -0
  156. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/assets/icons/trcc_48x48.png +0 -0
  157. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/assets/icons/trcc_64x64.png +0 -0
  158. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/assets/trcc-linux.desktop +0 -0
  159. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/assets/trcc-quirk-fix.service +0 -0
  160. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/__init__.py +0 -0
  161. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/_colors.py +0 -0
  162. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/_safe.py +0 -0
  163. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/_version.py +0 -0
  164. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/commands/__init__.py +0 -0
  165. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/commands/_base.py +0 -0
  166. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/commands/_helpers.py +0 -0
  167. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/commands/device.py +0 -0
  168. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/commands/theme.py +0 -0
  169. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/errors.py +0 -0
  170. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/events.py +0 -0
  171. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/led_protocol.py +0 -0
  172. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/protocol.py +0 -0
  173. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/registry.py +0 -0
  174. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/results.py +0 -0
  175. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/core/variants.py +0 -0
  176. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/daemon.py +0 -0
  177. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/data/trcc_usb.te +0 -0
  178. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/proxy.py +0 -0
  179. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/__init__.py +0 -0
  180. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/_ansi.py +0 -0
  181. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/_clock.py +0 -0
  182. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/audio.py +0 -0
  183. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/device_sender.py +0 -0
  184. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/first_run.py +0 -0
  185. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/led_animation_loop.py +0 -0
  186. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/media.py +0 -0
  187. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/metrics_loop.py +0 -0
  188. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/metrics_personalize.py +0 -0
  189. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/migration.py +0 -0
  190. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/overlay.py +0 -0
  191. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/slideshow.py +0 -0
  192. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/theme.py +0 -0
  193. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/video_cache.py +0 -0
  194. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/services/video_export.py +0 -0
  195. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/__init__.py +0 -0
  196. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/_errors.py +0 -0
  197. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/api/__init__.py +0 -0
  198. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/api/_shared.py +0 -0
  199. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/api/config.py +0 -0
  200. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/api/devices.py +0 -0
  201. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/api/display.py +0 -0
  202. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/api/led.py +0 -0
  203. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/api/main.py +0 -0
  204. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/api/schemas.py +0 -0
  205. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/api/system.py +0 -0
  206. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/api/theme.py +0 -0
  207. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/api/trcc.py +0 -0
  208. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/cli/__init__.py +0 -0
  209. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/cli/_ctx.py +0 -0
  210. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/cli/config.py +0 -0
  211. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/cli/device.py +0 -0
  212. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/cli/display.py +0 -0
  213. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/cli/led.py +0 -0
  214. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/cli/main.py +0 -0
  215. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/cli/shell.py +0 -0
  216. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/cli/system.py +0 -0
  217. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/cli/theme.py +0 -0
  218. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/_ui_state.py +0 -0
  219. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/240240.gif +0 -0
  220. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/240320.gif +0 -0
  221. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/320240.gif +0 -0
  222. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/320320.gif +0 -0
  223. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1AK120 Digital.png +0 -0
  224. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1AK120 Digitala.png +0 -0
  225. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1AK120_Digital.png +0 -0
  226. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1AK120_Digitala.png +0 -0
  227. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1AS120 VISION.png +0 -0
  228. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1AS120 VISIONa.png +0 -0
  229. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1AS120_VISION.png +0 -0
  230. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1AS120_VISIONa.png +0 -0
  231. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1AX120 DIGITAL.png +0 -0
  232. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1AX120 DIGITALa.png +0 -0
  233. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1AX120_DIGITAL.png +0 -0
  234. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1AX120_DIGITALa.png +0 -0
  235. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1BA120 VISION.png +0 -0
  236. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1BA120 VISIONa.png +0 -0
  237. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1BA120_VISION.png +0 -0
  238. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1BA120_VISIONa.png +0 -0
  239. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1CORE VISION.png +0 -0
  240. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1CORE VISIONa.png +0 -0
  241. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1CORE_VISION.png +0 -0
  242. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1CORE_VISIONa.png +0 -0
  243. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1CZ1.png +0 -0
  244. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1CZ1a.png +0 -0
  245. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1CZ2.png +0 -0
  246. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1CZ2a.png +0 -0
  247. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1CZTV.png +0 -0
  248. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1CZTVa.png +0 -0
  249. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1ELITE VISION.png +0 -0
  250. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1ELITE VISIONa.png +0 -0
  251. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1ELITE_VISION.png +0 -0
  252. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1ELITE_VISIONa.png +0 -0
  253. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PRO.png +0 -0
  254. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PROa.png +0 -0
  255. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PRO.png +0 -0
  256. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PROa.png +0 -0
  257. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN VISION V2.png +0 -0
  258. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN VISION V2a.png +0 -0
  259. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PRO.png +0 -0
  260. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PROa.png +0 -0
  261. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SE.png +0 -0
  262. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SEa.png +0 -0
  263. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME.png +0 -0
  264. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN WARFRAMEa.png +0 -0
  265. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PRO.png +0 -0
  266. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PROa.png +0 -0
  267. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PRO.png +0 -0
  268. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PROa.png +0 -0
  269. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2.png +0 -0
  270. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2a.png +0 -0
  271. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME.png +0 -0
  272. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PRO.png +0 -0
  273. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PROa.png +0 -0
  274. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SE.png +0 -0
  275. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SEa.png +0 -0
  276. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAMEa.png +0 -0
  277. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1GRAND VISION.png +0 -0
  278. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1GRAND VISIONa.png +0 -0
  279. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1GRAND_VISION.png +0 -0
  280. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1GRAND_VISIONa.png +0 -0
  281. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITAL.png +0 -0
  282. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITALa.png +0 -0
  283. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1HYPER VISION.png +0 -0
  284. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1HYPER VISIONa.png +0 -0
  285. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1HYPER_VISION.png +0 -0
  286. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1HYPER_VISIONa.png +0 -0
  287. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1KVMALEDC6.png +0 -0
  288. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1KVMALEDC6a.png +0 -0
  289. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC1.png +0 -0
  290. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC10.png +0 -0
  291. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC10a.png +0 -0
  292. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC13.png +0 -0
  293. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC13a.png +0 -0
  294. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC15.png +0 -0
  295. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC15a.png +0 -0
  296. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC1a.png +0 -0
  297. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC2.png +0 -0
  298. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC2JD.png +0 -0
  299. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC2JDa.png +0 -0
  300. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC2a.png +0 -0
  301. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC3.png +0 -0
  302. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC3a.png +0 -0
  303. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC5.png +0 -0
  304. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC5a.png +0 -0
  305. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC7.png +0 -0
  306. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC7a.png +0 -0
  307. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC8.png +0 -0
  308. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC8a.png +0 -0
  309. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC9.png +0 -0
  310. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LC9a.png +0 -0
  311. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LD10.png +0 -0
  312. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LD10a.png +0 -0
  313. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LD11.png +0 -0
  314. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LD11a.png +0 -0
  315. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LD6.png +0 -0
  316. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LD6a.png +0 -0
  317. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LD7.png +0 -0
  318. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LD7a.png +0 -0
  319. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LD8.png +0 -0
  320. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LD8a.png +0 -0
  321. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LD9.png +0 -0
  322. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LD9a.png +0 -0
  323. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF014.png +0 -0
  324. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF014a.png +0 -0
  325. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF10.png +0 -0
  326. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF10V.png +0 -0
  327. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF10Va.png +0 -0
  328. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF10a.png +0 -0
  329. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF11.png +0 -0
  330. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF11a.png +0 -0
  331. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF12.png +0 -0
  332. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF12a.png +0 -0
  333. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF13.png +0 -0
  334. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF13a.png +0 -0
  335. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF14.png +0 -0
  336. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF14a.png +0 -0
  337. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF15.png +0 -0
  338. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF15a.png +0 -0
  339. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF16.png +0 -0
  340. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF167.png +0 -0
  341. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF16a.png +0 -0
  342. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF17a.png +0 -0
  343. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF18.png +0 -0
  344. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF18a.png +0 -0
  345. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF19.png +0 -0
  346. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF19a.png +0 -0
  347. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF20.png +0 -0
  348. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF20a.png +0 -0
  349. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF21.png +0 -0
  350. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF21a.png +0 -0
  351. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF22.png +0 -0
  352. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF22a.png +0 -0
  353. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF25.png +0 -0
  354. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF25a.png +0 -0
  355. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF8.png +0 -0
  356. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LF8a.png +0 -0
  357. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LM16SE.png +0 -0
  358. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LM16SEa.png +0 -0
  359. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LM19SE.png +0 -0
  360. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LM19SEa.png +0 -0
  361. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LM22.png +0 -0
  362. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LM22a.png +0 -0
  363. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LM24.png +0 -0
  364. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LM24a.png +0 -0
  365. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LM26.png +0 -0
  366. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LM26a.png +0 -0
  367. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LM27.png +0 -0
  368. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LM27a.png +0 -0
  369. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LM30.png +0 -0
  370. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1LM30a.png +0 -0
  371. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1Mjolnir VISION PRO.png +0 -0
  372. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1Mjolnir VISION PROa.png +0 -0
  373. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1Mjolnir VISION.png +0 -0
  374. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1Mjolnir VISIONa.png +0 -0
  375. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1Mjolnir_VISION.png +0 -0
  376. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PRO.png +0 -0
  377. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PROa.png +0 -0
  378. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1Mjolnir_VISIONa.png +0 -0
  379. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1PA120 DIGITAL.png +0 -0
  380. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1PA120 DIGITALa.png +0 -0
  381. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1PA120_DIGITAL.png +0 -0
  382. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1PA120_DIGITALa.png +0 -0
  383. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1PC1.png +0 -0
  384. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1PC1a.png +0 -0
  385. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1RK120 DIGITAL.png +0 -0
  386. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1RK120 DIGITALa.png +0 -0
  387. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1RK120_DIGITAL.png +0 -0
  388. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1RK120_DIGITALa.png +0 -0
  389. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1RP130 VISION.png +0 -0
  390. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1RP130 VISIONa.png +0 -0
  391. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1RP130_VISION.png +0 -0
  392. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1RP130_VISIONa.png +0 -0
  393. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1RX1.png +0 -0
  394. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1RX1a.png +0 -0
  395. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1Stream Vision.png +0 -0
  396. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1Stream Visiona.png +0 -0
  397. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1Stream_Vision.png +0 -0
  398. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/A1Stream_Visiona.png +0 -0
  399. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/about_dropdown.png +0 -0
  400. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/about_dropdown_bg.png +0 -0
  401. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/about_dropdown_select.png +0 -0
  402. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/about_update.png +0 -0
  403. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/about_update_overlay.png +0 -0
  404. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_about_bg.png +0 -0
  405. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_brightness_0.png +0 -0
  406. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_brightness_1.png +0 -0
  407. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_brightness_2.png +0 -0
  408. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_brightness_3.png +0 -0
  409. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_export.png +0 -0
  410. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_form_bg.png +0 -0
  411. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_help.png +0 -0
  412. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_import.png +0 -0
  413. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_main_bg.png +0 -0
  414. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_power.png +0 -0
  415. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_power_hover.png +0 -0
  416. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_save.png +0 -0
  417. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_sysinfo_bg.png +0 -0
  418. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_tab_cloud.png +0 -0
  419. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_tab_cloud_active.png +0 -0
  420. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_tab_local.png +0 -0
  421. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_tab_local_active.png +0 -0
  422. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_tab_mask.png +0 -0
  423. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_tab_mask_active.png +0 -0
  424. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_tab_mask_lower.png +0 -0
  425. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_tab_settings.png +0 -0
  426. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_tab_settings_active.png +0 -0
  427. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_theme_base_bg.png +0 -0
  428. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_theme_gallery_bg.png +0 -0
  429. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/app_theme_settings_bg.png +0 -0
  430. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/carousel_1.png +0 -0
  431. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/carousel_2.png +0 -0
  432. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/carousel_3.png +0 -0
  433. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/carousel_4.png +0 -0
  434. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/carousel_5.png +0 -0
  435. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/carousel_6.png +0 -0
  436. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/carousel_btn.png +0 -0
  437. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/carousel_btn_active.png +0 -0
  438. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/carousel_select_frame.png +0 -0
  439. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/color_panel_eyedropper.png +0 -0
  440. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/color_panel_picker.png +0 -0
  441. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/color_panel_selector_ring.png +0 -0
  442. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/color_panel_slider_thumb.png +0 -0
  443. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/color_wheel_knob.png +0 -0
  444. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/color_wheel_knob_0.png +0 -0
  445. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/color_wheel_toggle_hover.png +0 -0
  446. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/color_wheel_toggle_off.png +0 -0
  447. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/color_wheel_toggle_on.png +0 -0
  448. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_12h.png +0 -0
  449. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_24h.png +0 -0
  450. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_border.png +0 -0
  451. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_border_active.png +0 -0
  452. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_crop.png +0 -0
  453. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_date_dm.png +0 -0
  454. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_date_dmy.png +0 -0
  455. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_date_md.png +0 -0
  456. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_date_ymd.png +0 -0
  457. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_digit_font.png +0 -0
  458. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_fit_height.png +0 -0
  459. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_fit_width.png +0 -0
  460. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_function.png +0 -0
  461. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_function_active.png +0 -0
  462. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_icon.png +0 -0
  463. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_icon_gif.png +0 -0
  464. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_icon_image.png +0 -0
  465. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_icon_livestream.png +0 -0
  466. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_icon_mask.png +0 -0
  467. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_icon_network.png +0 -0
  468. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_icon_video.png +0 -0
  469. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_m1.png +0 -0
  470. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_m1_active.png +0 -0
  471. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_m2.png +0 -0
  472. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_m2_active.png +0 -0
  473. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_m3.png +0 -0
  474. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_m3_active.png +0 -0
  475. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_m4.png +0 -0
  476. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_m4_active.png +0 -0
  477. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_m5.png +0 -0
  478. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_m5_active.png +0 -0
  479. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_m6.png +0 -0
  480. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_m6_active.png +0 -0
  481. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_minus.png +0 -0
  482. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_network_btn.png +0 -0
  483. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_plus.png +0 -0
  484. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_rotate.png +0 -0
  485. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_slider_thumb.png +0 -0
  486. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_text_font.png +0 -0
  487. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_unit_c.png +0 -0
  488. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/display_mode_unit_f.png +0 -0
  489. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/frozen_warframe_ultra.png +0 -0
  490. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/frozen_warframe_ultra_active.png +0 -0
  491. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_110x480.png +0 -0
  492. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_116x480.png +0 -0
  493. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_1280x480.png +0 -0
  494. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_160x480.png +0 -0
  495. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_180x400.png +0 -0
  496. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_180x480.png +0 -0
  497. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_240x240.png +0 -0
  498. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_240x320.png +0 -0
  499. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_240x400.png +0 -0
  500. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_240x427.png +0 -0
  501. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_270x480.png +0 -0
  502. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_320x240.png +0 -0
  503. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_320x320.png +0 -0
  504. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_320x86.png +0 -0
  505. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_360x360.png +0 -0
  506. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_400x180.png +0 -0
  507. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_400x240.png +0 -0
  508. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_427x240.png +0 -0
  509. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_480x110.png +0 -0
  510. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_480x116.png +0 -0
  511. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_480x160.png +0 -0
  512. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_480x180.png +0 -0
  513. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_480x270.png +0 -0
  514. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_480x480.png +0 -0
  515. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/image_cut_86x320.png +0 -0
  516. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_aggregate.png +0 -0
  517. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_aggregate_active.png +0 -0
  518. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_bg_cz1.png +0 -0
  519. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_bg_kvma.png +0 -0
  520. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_bg_lf10.png +0 -0
  521. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_bg_lf12.png +0 -0
  522. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_bg_lf13.png +0 -0
  523. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_bg_lf15.png +0 -0
  524. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_bg_lf8.png +0 -0
  525. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_bg_rgb_lf13.png +0 -0
  526. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_bg_segment.png +0 -0
  527. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_bg_segment_4zone.png +0 -0
  528. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_dropdown.png +0 -0
  529. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_dropdown_2.png +0 -0
  530. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_dropdown_highlight.png +0 -0
  531. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_dropdown_highlight_2.png +0 -0
  532. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_dropdown_menu.png +0 -0
  533. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_dropdown_menu_2.png +0 -0
  534. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_external.png +0 -0
  535. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_external_active.png +0 -0
  536. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_helmet_1.png +0 -0
  537. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_helmet_2.png +0 -0
  538. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_helmet_3.png +0 -0
  539. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_helmet_4.png +0 -0
  540. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_helmet_5.png +0 -0
  541. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_meter_bar_1.png +0 -0
  542. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_meter_bar_2.png +0 -0
  543. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_meter_bar_3.png +0 -0
  544. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_meter_bar_4.png +0 -0
  545. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_meter_bar_5.png +0 -0
  546. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_meter_bar_6.png +0 -0
  547. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_meter_bg_1.png +0 -0
  548. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_meter_bg_2.png +0 -0
  549. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_meter_bg_3.png +0 -0
  550. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_meter_bg_4.png +0 -0
  551. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_meter_bg_5.png +0 -0
  552. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_meter_bg_5_active.png +0 -0
  553. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_meter_bg_6.png +0 -0
  554. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_1.png +0 -0
  555. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_10.png +0 -0
  556. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_10_active.png +0 -0
  557. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_11.png +0 -0
  558. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_11_active.png +0 -0
  559. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_12.png +0 -0
  560. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_12_active.png +0 -0
  561. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_1_active.png +0 -0
  562. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_2.png +0 -0
  563. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_2_active.png +0 -0
  564. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_3.png +0 -0
  565. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_3_active.png +0 -0
  566. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_4.png +0 -0
  567. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_4_active.png +0 -0
  568. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_5.png +0 -0
  569. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_5_active.png +0 -0
  570. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_6.png +0 -0
  571. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_6_active.png +0 -0
  572. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_7.png +0 -0
  573. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_7_active.png +0 -0
  574. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_8.png +0 -0
  575. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_8_active.png +0 -0
  576. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_9.png +0 -0
  577. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_mode_9_active.png +0 -0
  578. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_power.png +0 -0
  579. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_power_active.png +0 -0
  580. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preset_blue.png +0 -0
  581. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preset_cyan.png +0 -0
  582. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preset_green.png +0 -0
  583. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preset_orange.png +0 -0
  584. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preset_purple.png +0 -0
  585. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preset_red.png +0 -0
  586. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preset_white.png +0 -0
  587. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preset_yellow.png +0 -0
  588. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preview_ak120.png +0 -0
  589. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preview_ax120.png +0 -0
  590. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preview_cz1.png +0 -0
  591. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preview_frozen_horizon_pro.png +0 -0
  592. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preview_frozen_magic_pro.png +0 -0
  593. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preview_lc1.png +0 -0
  594. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preview_lc2.png +0 -0
  595. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preview_lf10.png +0 -0
  596. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preview_lf11.png +0 -0
  597. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preview_lf12.png +0 -0
  598. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preview_lf13.png +0 -0
  599. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preview_lf15.png +0 -0
  600. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preview_lf8.png +0 -0
  601. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preview_pa120.png +0 -0
  602. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_preview_pa120_space.png +0 -0
  603. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_show_1.png +0 -0
  604. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_show_1_active.png +0 -0
  605. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_show_2.png +0 -0
  606. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_show_2_active.png +0 -0
  607. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_show_3.png +0 -0
  608. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_show_3_active.png +0 -0
  609. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_slider_thumb.png +0 -0
  610. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_zone_btn_1.png +0 -0
  611. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_zone_btn_1_active.png +0 -0
  612. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_zone_btn_2.png +0 -0
  613. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_zone_btn_2_active.png +0 -0
  614. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_zone_btn_3.png +0 -0
  615. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_zone_btn_3_active.png +0 -0
  616. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_zone_btn_4.png +0 -0
  617. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/led_zone_btn_4_active.png +0 -0
  618. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/overlay_label_sysinfo.png +0 -0
  619. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_en.png +0 -0
  620. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_tc.png +0 -0
  621. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/overlay_label_sysinfo_en.png +0 -0
  622. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/overlay_label_sysinfo_tc.png +0 -0
  623. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/overlay_label_text.png +0 -0
  624. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/overlay_label_text_en.png +0 -0
  625. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/overlay_label_text_tc.png +0 -0
  626. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/overlay_label_time.png +0 -0
  627. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/overlay_label_time_en.png +0 -0
  628. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/overlay_label_time_tc.png +0 -0
  629. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/overlay_mode_date.png +0 -0
  630. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/overlay_mode_hardware.png +0 -0
  631. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/overlay_mode_text.png +0 -0
  632. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/overlay_mode_time.png +0 -0
  633. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/overlay_mode_weekday.png +0 -0
  634. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/overlay_select.png +0 -0
  635. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_110x480.png +0 -0
  636. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_116x480.png +0 -0
  637. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_160x480.png +0 -0
  638. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_180x400.png +0 -0
  639. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_180x480.png +0 -0
  640. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_240x240.png +0 -0
  641. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_240x320.png +0 -0
  642. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_240x400.png +0 -0
  643. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_240x427.png +0 -0
  644. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_270x480.png +0 -0
  645. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_320x240.png +0 -0
  646. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_320x320.png +0 -0
  647. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_320x320_round.png +0 -0
  648. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_320x86.png +0 -0
  649. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_360x360_round.png +0 -0
  650. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_400x180.png +0 -0
  651. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_400x240.png +0 -0
  652. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_427x240.png +0 -0
  653. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_480x110.png +0 -0
  654. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_480x116.png +0 -0
  655. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_480x160.png +0 -0
  656. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_480x180.png +0 -0
  657. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_480x270.png +0 -0
  658. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_480x480.png +0 -0
  659. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_480x480_round.png +0 -0
  660. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_86x320.png +0 -0
  661. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_animation.png +0 -0
  662. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_btn.png +0 -0
  663. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_btn_active.png +0 -0
  664. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_pause.png +0 -0
  665. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_play.png +0 -0
  666. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_player_control_bg.png +0 -0
  667. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_popup_1280x480.png +0 -0
  668. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_popup_1920x440.png +0 -0
  669. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_popup_1920x462.png +0 -0
  670. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_popup_320x960.png +0 -0
  671. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_popup_360x800.png +0 -0
  672. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_popup_440x1920.png +0 -0
  673. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_popup_462x1920.png +0 -0
  674. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_popup_480x1280.png +0 -0
  675. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_popup_480x800.png +0 -0
  676. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_popup_480x854.png +0 -0
  677. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_popup_540x960.png +0 -0
  678. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_popup_800x360.png +0 -0
  679. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_popup_800x480.png +0 -0
  680. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_popup_854x480.png +0 -0
  681. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_popup_960x320.png +0 -0
  682. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_popup_960x540.png +0 -0
  683. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_res_240x240.png +0 -0
  684. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_res_240x320.png +0 -0
  685. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_res_320x240.png +0 -0
  686. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_res_320x320.png +0 -0
  687. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_round_mask_320x320.png +0 -0
  688. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_round_mask_360x360.png +0 -0
  689. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_round_mask_480x480.png +0 -0
  690. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_video_controls_bg.png +0 -0
  691. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/preview_video_controls_bg_alt.png +0 -0
  692. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/screen_led_deco_1.png +0 -0
  693. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/screen_led_deco_2.png +0 -0
  694. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/screen_led_deco_3.png +0 -0
  695. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/screen_led_deco_4.png +0 -0
  696. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/screen_led_deco_cz1.png +0 -0
  697. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/secondary_screen_bg.png +0 -0
  698. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/secondary_screen_bg_d.png +0 -0
  699. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/secondary_screen_bg_e.png +0 -0
  700. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/secondary_screen_bg_en.png +0 -0
  701. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/secondary_screen_bg_f.png +0 -0
  702. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/secondary_screen_bg_h.png +0 -0
  703. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/secondary_screen_bg_p.png +0 -0
  704. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/secondary_screen_bg_r.png +0 -0
  705. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/secondary_screen_bg_tc.png +0 -0
  706. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/secondary_screen_bg_x.png +0 -0
  707. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_add_content.png +0 -0
  708. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_add_content_btn.png +0 -0
  709. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_add_content_mask.png +0 -0
  710. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_add_date.png +0 -0
  711. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_add_date_1.png +0 -0
  712. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_add_icon.png +0 -0
  713. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_add_link_1.png +0 -0
  714. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_add_text.png +0 -0
  715. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_add_text_1.png +0 -0
  716. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_add_time.png +0 -0
  717. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_add_time_1.png +0 -0
  718. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_add_weekday.png +0 -0
  719. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_add_weekday_1.png +0 -0
  720. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_anim_sync.png +0 -0
  721. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_background.png +0 -0
  722. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_brightness.png +0 -0
  723. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_keyboard_sync_1.png +0 -0
  724. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_keyboard_sync_2.png +0 -0
  725. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_keyboard_sync_3.png +0 -0
  726. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_module.png +0 -0
  727. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_overlay.png +0 -0
  728. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_overlay_add_bg.png +0 -0
  729. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_overlay_color_bg.png +0 -0
  730. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_overlay_grid_bg.png +0 -0
  731. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_overlay_table_bg.png +0 -0
  732. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/settings_params.png +0 -0
  733. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_brightness_bar.png +0 -0
  734. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_checkbox_off.png +0 -0
  735. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_checkbox_on.png +0 -0
  736. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_clip_a.png +0 -0
  737. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_clip_b.png +0 -0
  738. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_close.png +0 -0
  739. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_close_2.png +0 -0
  740. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_dropdown.png +0 -0
  741. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_dropdown_bg_2x.png +0 -0
  742. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_dropdown_bg_4x.png +0 -0
  743. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_dropdown_highlight.png +0 -0
  744. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_loading_animation.png +0 -0
  745. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_progress_bar.png +0 -0
  746. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_round_close.png +0 -0
  747. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_round_confirm.png +0 -0
  748. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_scrollbar_bg.png +0 -0
  749. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_scrollbar_thumb.png +0 -0
  750. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_shortcut_size_slider.png +0 -0
  751. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_thread_multi.png +0 -0
  752. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_thread_single.png +0 -0
  753. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_toggle_off.png +0 -0
  754. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shared_toggle_on.png +0 -0
  755. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shortcuts_panel.png +0 -0
  756. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shortcuts_panel_d.png +0 -0
  757. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shortcuts_panel_e.png +0 -0
  758. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shortcuts_panel_en.png +0 -0
  759. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shortcuts_panel_f.png +0 -0
  760. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shortcuts_panel_p.png +0 -0
  761. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shortcuts_panel_r.png +0 -0
  762. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shortcuts_panel_tc.png +0 -0
  763. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/shortcuts_panel_x.png +0 -0
  764. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sidebar_about.png +0 -0
  765. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sidebar_about_active.png +0 -0
  766. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sidebar_about_bg.png +0 -0
  767. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sidebar_bg.png +0 -0
  768. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sidebar_no_device.png +0 -0
  769. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sidebar_sensor.png +0 -0
  770. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sidebar_sensor_active.png +0 -0
  771. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sidebar_splash.png +0 -0
  772. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sidebar_sysinfo_bg.png +0 -0
  773. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/split_overlay_a.png +0 -0
  774. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/split_overlay_a_180.png +0 -0
  775. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/split_overlay_a_270.png +0 -0
  776. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/split_overlay_a_90.png +0 -0
  777. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/split_overlay_b.png +0 -0
  778. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/split_overlay_b_180.png +0 -0
  779. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/split_overlay_b_270.png +0 -0
  780. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/split_overlay_b_90.png +0 -0
  781. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/split_overlay_c.png +0 -0
  782. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/split_overlay_c_180.png +0 -0
  783. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/split_overlay_c_270.png +0 -0
  784. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/split_overlay_c_90.png +0 -0
  785. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sysinfo_add_group.png +0 -0
  786. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sysinfo_cpu.png +0 -0
  787. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sysinfo_custom.png +0 -0
  788. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sysinfo_dram.png +0 -0
  789. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sysinfo_fan.png +0 -0
  790. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sysinfo_gpu.png +0 -0
  791. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sysinfo_hdd.png +0 -0
  792. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sysinfo_net.png +0 -0
  793. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sysinfo_next_page.png +0 -0
  794. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sysinfo_prev_page.png +0 -0
  795. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sysinfo_scrollbar.png +0 -0
  796. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/sysinfo_select.png +0 -0
  797. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_browser_filter.png +0 -0
  798. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_browser_filter_active.png +0 -0
  799. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_cloud_label.png +0 -0
  800. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_cloud_label_d.png +0 -0
  801. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_cloud_label_e.png +0 -0
  802. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_cloud_label_en.png +0 -0
  803. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_cloud_label_f.png +0 -0
  804. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_cloud_label_h.png +0 -0
  805. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_cloud_label_p.png +0 -0
  806. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_cloud_label_r.png +0 -0
  807. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_cloud_label_tc.png +0 -0
  808. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_cloud_label_x.png +0 -0
  809. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_local_carousel.png +0 -0
  810. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_local_carousel_active.png +0 -0
  811. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_local_export_all.png +0 -0
  812. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_local_multi_select.png +0 -0
  813. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_local_multi_select_active.png +0 -0
  814. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_local_select_frame.png +0 -0
  815. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_local_select_frame_active.png +0 -0
  816. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/theme_mask_label.png +0 -0
  817. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_110x480.png +0 -0
  818. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_116x480.png +0 -0
  819. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_1280x480.png +0 -0
  820. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_160x480.png +0 -0
  821. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_180x400.png +0 -0
  822. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_180x480.png +0 -0
  823. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_240x240.png +0 -0
  824. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_240x320.png +0 -0
  825. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_240x400.png +0 -0
  826. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_240x427.png +0 -0
  827. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_270x480.png +0 -0
  828. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_320x240.png +0 -0
  829. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_320x320.png +0 -0
  830. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_320x86.png +0 -0
  831. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_360x360.png +0 -0
  832. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_400x180.png +0 -0
  833. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_400x240.png +0 -0
  834. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_427x240.png +0 -0
  835. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_480x110.png +0 -0
  836. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_480x116.png +0 -0
  837. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_480x160.png +0 -0
  838. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_480x180.png +0 -0
  839. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_480x270.png +0 -0
  840. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_480x480.png +0 -0
  841. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_86x320.png +0 -0
  842. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_bg.png +0 -0
  843. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets/video_cut_bg_alt.png +0 -0
  844. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/assets.py +0 -0
  845. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/base.py +0 -0
  846. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/base_handler.py +0 -0
  847. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/bus_bridge.py +0 -0
  848. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/color_and_add_panels.py +0 -0
  849. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/constants.py +0 -0
  850. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/display_mode_panels.py +0 -0
  851. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/eyedropper.py +0 -0
  852. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/gpu_reader_prompt.py +0 -0
  853. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/led_handler.py +0 -0
  854. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/overlay_element.py +0 -0
  855. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/overlay_grid.py +0 -0
  856. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/pipewire_capture.py +0 -0
  857. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/screen_capture.py +0 -0
  858. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/splash.py +0 -0
  859. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/uc_about.py +0 -0
  860. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/uc_activity_sidebar.py +0 -0
  861. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/uc_color_wheel.py +0 -0
  862. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/uc_device.py +0 -0
  863. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/uc_image_cut.py +0 -0
  864. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/uc_info_module.py +0 -0
  865. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/uc_preview.py +0 -0
  866. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/uc_screen_led.py +0 -0
  867. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/uc_sensor_picker.py +0 -0
  868. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/uc_system_info.py +0 -0
  869. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/uc_theme_local.py +0 -0
  870. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/uc_theme_mask.py +0 -0
  871. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/uc_theme_setting.py +0 -0
  872. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/uc_theme_web.py +0 -0
  873. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/gui/uc_video_cut.py +0 -0
  874. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/presentation/__init__.py +0 -0
  875. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/presentation/device_presentation.py +0 -0
  876. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/presentation/lcd_panel.py +0 -0
  877. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/presentation/led_metrics_format.py +0 -0
  878. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/presentation/led_panel.py +0 -0
  879. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/presentation/led_zone_model.py +0 -0
  880. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/presentation/overlay_model.py +0 -0
  881. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/presentation/overlay_serialization.py +0 -0
  882. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/presentation/sensor_display.py +0 -0
  883. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/presentation/slideshow_model.py +0 -0
  884. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qapp.py +0 -0
  885. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/__init__.py +0 -0
  886. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/app.py +0 -0
  887. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/assets.py +0 -0
  888. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/base.py +0 -0
  889. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/bus_bridge.py +0 -0
  890. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/color_wheel.py +0 -0
  891. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/device_picker.py +0 -0
  892. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/eyedropper.py +0 -0
  893. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/image_crop.py +0 -0
  894. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/__init__.py +0 -0
  895. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/about_panel.py +0 -0
  896. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/cloud_theme_browser.py +0 -0
  897. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/configuration_panel.py +0 -0
  898. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/device_panel.py +0 -0
  899. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/display_panel.py +0 -0
  900. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/led/__init__.py +0 -0
  901. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/led/_base.py +0 -0
  902. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/led/advanced_tab.py +0 -0
  903. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/led/color_tab.py +0 -0
  904. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/led/mode_tab.py +0 -0
  905. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/led/segment_tab.py +0 -0
  906. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/led/zone_tab.py +0 -0
  907. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/led_panel.py +0 -0
  908. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/local_theme_browser.py +0 -0
  909. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/mask_browser.py +0 -0
  910. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/overlay_editor.py +0 -0
  911. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/preview_panel.py +0 -0
  912. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/screencast_panel.py +0 -0
  913. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/sidebar.py +0 -0
  914. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/status_panel.py +0 -0
  915. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/panels/system_panel.py +0 -0
  916. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/region_overlay.py +0 -0
  917. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/screen_overlay.py +0 -0
  918. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/sensor_picker.py +0 -0
  919. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/splash.py +0 -0
  920. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/src/trcc/ui/qtgui/video_crop.py +0 -0
  921. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/__init__.py +0 -0
  922. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/adapters/system/test_elevate.py +0 -0
  923. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/adapters/system/test_windows_mem_disk.py +0 -0
  924. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/adapters/system/test_windows_permissions.py +0 -0
  925. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/adapters/system/test_windows_wmi_seam.py +0 -0
  926. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_api_routes.py +0 -0
  927. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_app_senders.py +0 -0
  928. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_autostart.py +0 -0
  929. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_autostart_macos.py +0 -0
  930. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_autostart_windows.py +0 -0
  931. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_backend_finish.py +0 -0
  932. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_boot_animation_command.py +0 -0
  933. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_boot_animation_device.py +0 -0
  934. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_bulk_lcd_geometry.py +0 -0
  935. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_cli_commands.py +0 -0
  936. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_clock.py +0 -0
  937. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_commands.py +0 -0
  938. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_connect_failure_hints.py +0 -0
  939. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_connection_issues.py +0 -0
  940. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_control_center.py +0 -0
  941. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_daemon.py +0 -0
  942. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_dc_codec.py +0 -0
  943. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_dc_reader.py +0 -0
  944. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_device_catalog_smoke.py +0 -0
  945. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_device_sender.py +0 -0
  946. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_display_rotation.py +0 -0
  947. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_display_tweaks.py +0 -0
  948. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_first_run_and_migration.py +0 -0
  949. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_gpu_preference.py +0 -0
  950. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_gpu_reader_prompt.py +0 -0
  951. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_gui_empty_state.py +0 -0
  952. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_gui_entry_exit.py +0 -0
  953. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_gui_panels.py +0 -0
  954. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_hid_lcd_geometry.py +0 -0
  955. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_hotplug.py +0 -0
  956. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_hotplug_bsd.py +0 -0
  957. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_hotplug_polling.py +0 -0
  958. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_hotplug_windows.py +0 -0
  959. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_i18n.py +0 -0
  960. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_integration_pipeline.py +0 -0
  961. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_ipc_server.py +0 -0
  962. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_ipc_windows_fallback.py +0 -0
  963. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_ipc_wire.py +0 -0
  964. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_lcd_panel_model.py +0 -0
  965. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_led_animation_loop.py +0 -0
  966. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_led_display_model.py +0 -0
  967. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_led_effects.py +0 -0
  968. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_led_handler_requires_app.py +0 -0
  969. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_led_panel_model.py +0 -0
  970. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_led_pm_registry.py +0 -0
  971. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_led_remap.py +0 -0
  972. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_led_settings_commands.py +0 -0
  973. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_library_migration.py +0 -0
  974. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_ly_lcd_geometry.py +0 -0
  975. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_mask_commands.py +0 -0
  976. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_mask_rendering.py +0 -0
  977. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_metrics_personalize.py +0 -0
  978. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_mock_reply_override.py +0 -0
  979. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_models.py +0 -0
  980. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_orientation_cloud_background.py +0 -0
  981. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_orientation_reload.py +0 -0
  982. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_overlay_clock.py +0 -0
  983. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_overlay_grid_adapter.py +0 -0
  984. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_overlay_resolve.py +0 -0
  985. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_packaging_entrypoints.py +0 -0
  986. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_platform_hw_probes.py +0 -0
  987. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_pyusb_find_seam.py +0 -0
  988. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_quickstart.py +0 -0
  989. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_run_setup_order.py +0 -0
  990. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_scsi_lcd_geometry.py +0 -0
  991. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_selinux_install.py +0 -0
  992. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_send_color.py +0 -0
  993. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_sensor_chain.py +0 -0
  994. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_sensors_bsd.py +0 -0
  995. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_sensors_lhm_subprocess.py +0 -0
  996. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_sensors_macos.py +0 -0
  997. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_sensors_nvml.py +0 -0
  998. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_settings_migration.py +0 -0
  999. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_shell.py +0 -0
  1000. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_theme_persistence.py +0 -0
  1001. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_theme_service.py +0 -0
  1002. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_transports.py +0 -0
  1003. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_udev.py +0 -0
  1004. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_ui_surfaces_smoke.py +0 -0
  1005. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_variant_presentation_audit.py +0 -0
  1006. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_video_cache.py +0 -0
  1007. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_video_playback.py +0 -0
  1008. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/test_wmi_gpu_fallback.py +0 -0
  1009. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/ui/presentation/test_device_presentation.py +0 -0
  1010. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/ui/presentation/test_led_metrics_format.py +0 -0
  1011. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/ui/presentation/test_led_zone_model.py +0 -0
  1012. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/ui/presentation/test_overlay_model.py +0 -0
  1013. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/ui/presentation/test_overlay_view_binding.py +0 -0
  1014. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/ui/presentation/test_sensor_display.py +0 -0
  1015. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/ui/presentation/test_slideshow_model.py +0 -0
  1016. {trcc_linux-9.7.5 → trcc_linux-9.7.6}/tests/ui/presentation/test_theme_local_binding.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trcc-linux
3
- Version: 9.7.5
3
+ Version: 9.7.6
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
@@ -182,6 +182,8 @@ Then **unplug and replug the USB cable** and run `trcc gui`.
182
182
 
183
183
  > `pipx` not installed? `sudo apt install pipx` (Debian/Ubuntu), `sudo dnf install pipx` (Fedora), `sudo pacman -S python-pipx` (Arch). See the **[Install Guide](doc/GUIDE_INSTALL.md)** for your distro.
184
184
 
185
+ > **NVIDIA GPU metrics?** The app detects your card and offers to install the sensor reader on first launch (it installs into your environment automatically). To add it upfront instead: `pipx install "trcc-linux[nvidia]"`.
186
+
185
187
  ### Automatic (git clone)
186
188
 
187
189
  ```bash
@@ -308,7 +310,7 @@ Set the angle to **90°** (or 270°) in the GUI, then open **Cloud Themes** —
308
310
  | **Multi-device** | Per-device config, auto-detect, multi-device with device selection |
309
311
  | **Security** | udev rules, polkit policy, SELinux support, no root required after setup |
310
312
 
311
- **Under the hood**: 147 source files, ~49K lines of Python, 5799 tests across 96 test files in 9 directories. Hexagonal architecture with strict dependency injection — GUI, CLI, and API all talk to the same core services. 6 USB protocols reverse-engineered from the Windows C# app.
313
+ **Under the hood**: 223 source files, ~71K lines of Python, 1783 tests across 104 test files. Hexagonal architecture with strict dependency injection — GUI, CLI, and API all talk to the same core services. 6 USB protocols reverse-engineered from the Windows C# app.
312
314
 
313
315
  ### What we do better than Windows TRCC
314
316
 
@@ -108,6 +108,8 @@ Then **unplug and replug the USB cable** and run `trcc gui`.
108
108
 
109
109
  > `pipx` not installed? `sudo apt install pipx` (Debian/Ubuntu), `sudo dnf install pipx` (Fedora), `sudo pacman -S python-pipx` (Arch). See the **[Install Guide](doc/GUIDE_INSTALL.md)** for your distro.
110
110
 
111
+ > **NVIDIA GPU metrics?** The app detects your card and offers to install the sensor reader on first launch (it installs into your environment automatically). To add it upfront instead: `pipx install "trcc-linux[nvidia]"`.
112
+
111
113
  ### Automatic (git clone)
112
114
 
113
115
  ```bash
@@ -234,7 +236,7 @@ Set the angle to **90°** (or 270°) in the GUI, then open **Cloud Themes** —
234
236
  | **Multi-device** | Per-device config, auto-detect, multi-device with device selection |
235
237
  | **Security** | udev rules, polkit policy, SELinux support, no root required after setup |
236
238
 
237
- **Under the hood**: 147 source files, ~49K lines of Python, 5799 tests across 96 test files in 9 directories. Hexagonal architecture with strict dependency injection — GUI, CLI, and API all talk to the same core services. 6 USB protocols reverse-engineered from the Windows C# app.
239
+ **Under the hood**: 223 source files, ~71K lines of Python, 1783 tests across 104 test files. Hexagonal architecture with strict dependency injection — GUI, CLI, and API all talk to the same core services. 6 USB protocols reverse-engineered from the Windows C# app.
238
240
 
239
241
  ### What we do better than Windows TRCC
240
242
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "trcc-linux"
7
- version = "9.7.5"
7
+ version = "9.7.6"
8
8
  description = "Linux implementation of Thermalright LCD Control Center"
9
9
  readme = "README.md"
10
10
  license = "GPL-3.0-or-later"
@@ -100,7 +100,7 @@ if sys.platform == 'win32':
100
100
 
101
101
  try:
102
102
  # Auto-launch GUI when invoked as trcc-gui.exe (windowed PyInstaller build)
103
- if os.path.basename(sys.executable).lower().startswith('trcc-gui'):
103
+ if Path(sys.executable).name.lower().startswith('trcc-gui'):
104
104
  from trcc.ui.cli.main import gui
105
105
  sys.exit(gui() or 0)
106
106
  # Everything else goes through the shared entry so python -m trcc and
@@ -1,4 +1,4 @@
1
1
  """TRCC Linux version information. History in doc/CHANGELOG.md."""
2
2
 
3
- __version__ = "9.7.5"
3
+ __version__ = "9.7.6"
4
4
  __version_info__ = tuple(int(x) for x in __version__.split("."))
@@ -4,10 +4,12 @@ HID 64-byte report transport. Shares the Type 2 DA/DB/DC/DD magic with
4
4
  HID LCD devices, but LED packets use cmd=2 with per-LED RGB payload.
5
5
 
6
6
  Payload shape passed to send():
7
- LedPayload(colors=[(r,g,b), ...], is_on=None, global_on=True, brightness=100)
7
+ LedPayload(colors=[(r,g,b), ...], is_on=None, global_on=True)
8
8
 
9
- Color scaling matches FormLED.cs SendHidVal:
10
- scaled = channel * (brightness/100) * 0.4
9
+ Colours arrive already brightness-baked by the service layer
10
+ (``led_effects.apply_brightness``). The wire is pure transport it
11
+ applies only the FormLED hardware perceptual scale, never brightness:
12
+ scaled = channel * 0.4 # FormLED.cs SendHidVal, sans brightness
11
13
  """
12
14
  from __future__ import annotations
13
15
 
@@ -348,7 +350,6 @@ class Led(Device[BulkTransport]):
348
350
  colors=remapped_colors,
349
351
  is_on=remapped_is_on,
350
352
  global_on=payload.global_on,
351
- brightness=payload.brightness,
352
353
  )
353
354
 
354
355
  packet = self._build_packet(payload)
@@ -409,15 +410,17 @@ class Led(Device[BulkTransport]):
409
410
  payload_len = count * 3
410
411
  header = cls._build_header(payload_len)
411
412
 
412
- brightness = max(0, min(100, payload.brightness)) / 100.0
413
+ # Pure transport: the colours arrive already brightness-baked by the
414
+ # service (apply_brightness); the wire applies only the FormLED
415
+ # hardware perceptual scale + the on/off mask, never brightness.
413
416
  body = bytearray(payload_len)
414
417
  for i, (r, g, b) in enumerate(payload.colors):
415
418
  on = payload.global_on and (
416
419
  payload.is_on[i] if payload.is_on is not None else True
417
420
  )
418
421
  if on:
419
- body[i * 3] = min(255, max(0, int(r * brightness * _COLOR_SCALE)))
420
- body[i * 3 + 1] = min(255, max(0, int(g * brightness * _COLOR_SCALE)))
421
- body[i * 3 + 2] = min(255, max(0, int(b * brightness * _COLOR_SCALE)))
422
+ body[i * 3] = min(255, max(0, int(r * _COLOR_SCALE)))
423
+ body[i * 3 + 1] = min(255, max(0, int(g * _COLOR_SCALE)))
424
+ body[i * 3 + 2] = min(255, max(0, int(b * _COLOR_SCALE)))
422
425
  # else: stays 0,0,0 (off)
423
426
  return header + bytes(body)
@@ -0,0 +1,73 @@
1
+ """Concrete ``Diagnostics`` port — wraps the diagnostics functions.
2
+
3
+ The health/doctor/debug-report/gpu-reader logic already lives as module-level
4
+ functions that consume the ``Platform`` port. This adapter binds them to one
5
+ platform instance and exposes them through the core ``Diagnostics`` ABC, so core
6
+ Commands + the quickstart service depend on the port, never on these modules.
7
+
8
+ The probe functions are called **module-qualified** (``_health.foo()``) rather
9
+ than imported by name so a test can ``monkeypatch.setattr`` the module attribute
10
+ and have the adapter see it — the attribute resolves at call time.
11
+ """
12
+ from __future__ import annotations
13
+
14
+ import logging
15
+ from pathlib import Path
16
+
17
+ from ...core.diagnostics import DoctorResult, GpuReaderState, HealthReport
18
+ from ...core.ports import Diagnostics, Platform
19
+ from ..sensors import nvml as _nvml
20
+ from . import debug_report as _debug_report
21
+ from . import doctor as _doctor
22
+ from . import health as _health
23
+
24
+ log = logging.getLogger(__name__)
25
+
26
+
27
+ class DiagnosticsAdapter(Diagnostics):
28
+ """Platform-bound diagnostics, exposed through the core port."""
29
+
30
+ def __init__(self, platform: Platform) -> None:
31
+ self._platform = platform
32
+
33
+ def health(self) -> HealthReport:
34
+ log.info("DiagnosticsAdapter.health")
35
+ return _health.run_health_checks(self._platform)
36
+
37
+ def doctor(self) -> DoctorResult:
38
+ log.info("DiagnosticsAdapter.doctor")
39
+ return _doctor.run_doctor(self._platform)
40
+
41
+ def render_doctor(self, report: HealthReport) -> str:
42
+ log.info("DiagnosticsAdapter.render_doctor: %d check(s)", len(report.checks))
43
+ return _doctor.render_doctor_output(report)
44
+
45
+ def debug_report(self, log_tail_lines: int) -> str:
46
+ log.info("DiagnosticsAdapter.debug_report: log_tail_lines=%d", log_tail_lines)
47
+ return _debug_report.build_debug_report(
48
+ self._platform, log_tail_lines=log_tail_lines,
49
+ ).render_text()
50
+
51
+ def write_debug_report(self, rendered: str, path: Path) -> Path:
52
+ log.info("DiagnosticsAdapter.write_debug_report: path=%s", path)
53
+ path.parent.mkdir(parents=True, exist_ok=True)
54
+ path.write_text(rendered, encoding="utf-8")
55
+ return path
56
+
57
+ def package_manager(self) -> str | None:
58
+ pm = _health.detect_package_manager()
59
+ log.info("DiagnosticsAdapter.package_manager: %s", pm)
60
+ return pm
61
+
62
+ def gpu_reader_state(self) -> GpuReaderState:
63
+ reader_installed, initialized, _ = _nvml.nvml_init_state()
64
+ present = _health.nvidia_gpu_present()
65
+ log.info(
66
+ "DiagnosticsAdapter.gpu_reader_state: present=%s installed=%s init=%s",
67
+ present, reader_installed, initialized,
68
+ )
69
+ return GpuReaderState(
70
+ nvidia_present=present,
71
+ reader_installed=reader_installed,
72
+ initialized=initialized,
73
+ )
@@ -7,27 +7,15 @@ sit on top of the same ``HealthCheckResult`` data.
7
7
  from __future__ import annotations
8
8
 
9
9
  import logging
10
- from dataclasses import dataclass
11
10
 
11
+ from ...core.diagnostics import DoctorResult, HealthReport
12
12
  from ...core.ports import Platform
13
- from .health import HealthReport, run_health_checks
13
+ from .health import run_health_checks
14
14
 
15
15
  log = logging.getLogger(__name__)
16
16
 
17
-
18
- @dataclass(frozen=True, slots=True)
19
- class DoctorResult:
20
- """What the doctor decided.
21
-
22
- ``exit_code`` is 0 when nothing FAILed, 1 otherwise — wraps the
23
- standard "broken / not broken" CLI convention so scripts can branch.
24
- """
25
- report: HealthReport
26
- exit_code: int
27
-
28
- @property
29
- def is_healthy(self) -> bool:
30
- return self.exit_code == 0
17
+ # ``DoctorResult`` moved to ``core.diagnostics`` (pure data); re-exported here.
18
+ __all__ = ["DoctorResult", "render_doctor_output", "run_doctor"]
31
19
 
32
20
 
33
21
  def run_doctor(platform: Platform) -> DoctorResult:
@@ -21,48 +21,26 @@ import logging
21
21
  import shutil
22
22
  import subprocess
23
23
  import sys
24
- from dataclasses import dataclass, field
25
24
  from pathlib import Path
26
- from typing import Literal
27
25
 
26
+ from ...core.diagnostics import HealthCheckResult, HealthReport, Severity
28
27
  from ...core.ports import Paths, Platform
29
28
  from ..sensors.nvml import NVML_RELOAD_HINT, nvml_init_state
30
29
 
31
30
  log = logging.getLogger(__name__)
32
31
 
33
-
34
- Severity = Literal["OK", "WARN", "FAIL"]
35
-
36
-
37
- @dataclass(frozen=True, slots=True)
38
- class HealthCheckResult:
39
- """One check's outcome — name, severity, message, optional fix hint."""
40
- name: str
41
- severity: Severity
42
- message: str
43
- fix_hint: str = ""
44
-
45
-
46
- @dataclass(frozen=True, slots=True)
47
- class HealthReport:
48
- """The full set of checks plus a one-line summary."""
49
- checks: list[HealthCheckResult] = field(default_factory=list)
50
-
51
- @property
52
- def worst_severity(self) -> Severity:
53
- if any(c.severity == "FAIL" for c in self.checks):
54
- return "FAIL"
55
- if any(c.severity == "WARN" for c in self.checks):
56
- return "WARN"
57
- return "OK"
58
-
59
- @property
60
- def fail_count(self) -> int:
61
- return sum(1 for c in self.checks if c.severity == "FAIL")
62
-
63
- @property
64
- def warn_count(self) -> int:
65
- return sum(1 for c in self.checks if c.severity == "WARN")
32
+ # DTOs moved to ``core.diagnostics`` (pure data the Diagnostics port speaks);
33
+ # re-exported here so existing ``from ...health import HealthReport`` keeps working.
34
+ __all__ = [
35
+ "HealthCheckResult",
36
+ "HealthReport",
37
+ "Severity",
38
+ "detect_package_manager",
39
+ "nvidia_gpu_present",
40
+ "package_install_hint",
41
+ "quick_subprocess",
42
+ "run_health_checks",
43
+ ]
66
44
 
67
45
 
68
46
  # =========================================================================
@@ -62,10 +62,10 @@ _PANEL_ROW_BINDINGS: dict[tuple[int, int], str] = {
62
62
  (3, 1): "memory:percent",
63
63
  (3, 2): "memory:used",
64
64
  (3, 3): "memory:available",
65
- # Disk panel (category_id=4) — ``disk:0:temp`` requires SMART; aggregator
66
- # currently doesn't ship a SMART source, so the row stays unbound until
67
- # a SmartDisk source lands.
68
- (4, 0): "disk:0:temp",
65
+ # Disk panel (category_id=4) — ``disk:temp`` is the hottest drive's temp,
66
+ # published by the per-OS DiskSource (Linux hwmon nvme/drivetemp, Windows
67
+ # LHM storage). Boxes whose drives expose no temp sensor stay unbound (--).
68
+ (4, 0): "disk:temp",
69
69
  (4, 1): "disk:activity",
70
70
  (4, 2): "disk:read",
71
71
  (4, 3): "disk:write",
@@ -380,6 +380,24 @@ class QtRenderer(Renderer):
380
380
  ).copy() # .copy() detaches from input buffer
381
381
  return qimg.convertToFormat(QImage.Format.Format_ARGB32)
382
382
 
383
+ # ── Fonts ─────────────────────────────────────────────────────────
384
+
385
+ def list_fonts(self) -> list[str]:
386
+ """Enumerate installed font families via the Qt font database.
387
+
388
+ ``__init__`` already brought up a ``QGuiApplication`` (so
389
+ ``QFontDatabase.families()`` won't abort the process); call the
390
+ idempotent guard again defensively, then read the families.
391
+ """
392
+ _ensure_qt_app()
393
+ try:
394
+ families = sorted(QFontDatabase.families())
395
+ except RuntimeError as e:
396
+ log.warning("QtRenderer.list_fonts: QFontDatabase error: %s", e)
397
+ return []
398
+ log.info("QtRenderer.list_fonts: %d families", len(families))
399
+ return families
400
+
383
401
  # ── Convenience: QPixmap export for GUI preview ───────────────────
384
402
 
385
403
  @staticmethod
@@ -35,7 +35,7 @@ from typing import Protocol
35
35
 
36
36
  from ...core._safe import is_safe_zip_member
37
37
  from ...core.errors import HttpFetchError, TrccError
38
- from ...core.ports import HttpFetcher
38
+ from ...core.ports import DataInstaller, HttpFetcher
39
39
 
40
40
  log = logging.getLogger(__name__)
41
41
 
@@ -120,11 +120,11 @@ class SevenZipExtractor:
120
120
 
121
121
 
122
122
  # =========================================================================
123
- # DataInstallerpublic adapter, DI'd into the service layer
123
+ # HttpDataInstallerconcrete DataInstaller port, DI'd into the service layer
124
124
  # =========================================================================
125
125
 
126
126
 
127
- class DataInstaller:
127
+ class HttpDataInstaller(DataInstaller):
128
128
  """Downloads + extracts per-resolution archives from GitHub.
129
129
 
130
130
  Construct with an ``HttpFetcher`` (the existing adapter from
@@ -28,7 +28,7 @@ from collections.abc import Callable
28
28
  from pathlib import Path
29
29
  from typing import Any
30
30
 
31
- from ...core.ports import CpuSource, GpuSource
31
+ from ...core.ports import CpuSource, DiskSource, GpuSource
32
32
 
33
33
  log = logging.getLogger(__name__)
34
34
 
@@ -56,6 +56,7 @@ _TYPE_DATA = "Data" # MemUsed/MemAvailable in GB
56
56
  # helper matches via ``startswith("Gpu")``.
57
57
  _HW_CPU = "Cpu"
58
58
  _HW_GPU_PREFIX = "Gpu"
59
+ _HW_STORAGE = "Storage"
59
60
 
60
61
 
61
62
  def _probe_wmi_namespace() -> Any:
@@ -586,3 +587,86 @@ def discover_lhm_gpus(
586
587
  except Exception:
587
588
  log.debug("LHM GPU enumeration failed", exc_info=True)
588
589
  return out
590
+
591
+
592
+ # =========================================================================
593
+ # LhmDisk — one per LHM-detected Storage row (NVMe / SATA SSD / HDD)
594
+ # =========================================================================
595
+
596
+
597
+ class LhmDisk(DiskSource):
598
+ """Storage temperature via LHM — one per ``Storage`` Hardware row.
599
+
600
+ LHM's storage tree (``HardwareType == "Storage"``) carries a
601
+ ``Temperature`` sensor per drive — the same WMI shape as the GPU
602
+ temp, so this is :class:`LhmGpu`'s temperature path narrowed to the
603
+ one reading the model's ``disk_temp`` slot needs. Returns ``None``
604
+ when LHM isn't running or the drive has no temp sensor yet.
605
+ """
606
+
607
+ def __init__(
608
+ self,
609
+ hardware_identifier: str,
610
+ display_name: str,
611
+ *,
612
+ handle_factory: Callable[[], Any] = _default_handle_factory,
613
+ ) -> None:
614
+ # Defer the handle to first read (born on the reading thread's
615
+ # apartment, #131); identity is the apartment-agnostic LHM identifier.
616
+ self._handle_factory = handle_factory
617
+ self._id = hardware_identifier
618
+ self._display_name = display_name
619
+
620
+ @property
621
+ def key(self) -> str:
622
+ # LHM storage identifiers look like "/nvme/0" or "/hdd/0" — flatten to
623
+ # a stable per-drive key ("lhm:nvme:0").
624
+ ident = self._id.lower().lstrip("/").replace("/", ":")
625
+ return f"lhm:{ident}"
626
+
627
+ @property
628
+ def name(self) -> str:
629
+ return self._display_name
630
+
631
+ def _row(self, ns: Any) -> Any | None:
632
+ if ns is None:
633
+ return None
634
+ try:
635
+ rows = list(ns.Hardware(Identifier=self._id))
636
+ except Exception:
637
+ return None
638
+ return rows[0] if rows else None
639
+
640
+ def temp(self) -> float | None:
641
+ ns = self._handle_factory()
642
+ if (row := self._row(ns)) is None:
643
+ return None
644
+ return _max_value(_sensors_for(ns, row, _TYPE_TEMP))
645
+
646
+
647
+ def discover_lhm_disks(
648
+ *,
649
+ handle_factory: Callable[[], Any] = _default_handle_factory,
650
+ ) -> list[DiskSource]:
651
+ """Enumerate storage devices LHM is currently reporting on.
652
+
653
+ Returns ``[]`` when LHM isn't running. The aggregator folds the hottest
654
+ into ``disk:temp``; multiple drives each get their own source.
655
+ """
656
+ log.info("discover_lhm_disks: called")
657
+ ns = handle_factory()
658
+ if ns is None:
659
+ return []
660
+ out: list[DiskSource] = []
661
+ try:
662
+ for hw in ns.Hardware():
663
+ if str(hw.HardwareType) != _HW_STORAGE:
664
+ continue
665
+ out.append(LhmDisk(
666
+ hardware_identifier=str(hw.Identifier),
667
+ display_name=str(hw.Name),
668
+ handle_factory=handle_factory,
669
+ ))
670
+ except Exception:
671
+ log.debug("LHM disk enumeration failed", exc_info=True)
672
+ return out
@@ -7,7 +7,7 @@ the normalized keys overlays use:
7
7
  gpu:primary:temp | gpu:0:temp | gpu:nvidia:0:temp | gpu:amd:0:temp
8
8
  memory:used | memory:available | memory:total | memory:percent
9
9
  fan:cpu:rpm | fan:gpu:percent | fan:<key>:rpm
10
- disk:read | disk:write | disk:activity
10
+ disk:temp | disk:read | disk:write | disk:activity
11
11
  net:up | net:down | net:total_up | net:total_down
12
12
  time:{hour,minute,second} | date:{year,month,day,dow}
13
13
 
@@ -28,6 +28,7 @@ from contextlib import AbstractContextManager, nullcontext
28
28
  from ...core.models import MIN_REFRESH_INTERVAL_S, SensorReading
29
29
  from ...core.ports import (
30
30
  CpuSource,
31
+ DiskSource,
31
32
  FanSource,
32
33
  GpuSource,
33
34
  MemorySource,
@@ -36,6 +37,7 @@ from ...core.ports import (
36
37
  from .hwmon import (
37
38
  HwmonCpu,
38
39
  discover_amd_gpus,
40
+ discover_disk_temp,
39
41
  discover_fans,
40
42
  discover_intel_gpus,
41
43
  find_cpu_temp_device,
@@ -88,6 +90,7 @@ def _gpu_reading_keys(prefix: str) -> list[tuple[str, str, str]]:
88
90
 
89
91
  def _io_keys() -> list[tuple[str, str, str]]:
90
92
  return [
93
+ ("disk:temp", "temperature", "°C"),
91
94
  ("disk:read", "disk_io", "MB/s"),
92
95
  ("disk:write", "disk_io", "MB/s"),
93
96
  ("disk:activity", "disk_io", "%"),
@@ -125,12 +128,14 @@ class BaselineSensors(SensorEnumerator):
125
128
  memory: MemorySource | None = None,
126
129
  gpus: list[GpuSource] | None = None,
127
130
  fans: list[FanSource] | None = None,
131
+ disks: list[DiskSource] | None = None,
128
132
  thread_context: Callable[[], AbstractContextManager[None]]
129
133
  = nullcontext) -> None:
130
134
  self._cpu = cpu or PsutilCpu()
131
135
  self._memory = memory or PsutilMemory()
132
136
  self._gpus: list[GpuSource] = gpus if gpus is not None else discover_nvidia_gpus()
133
137
  self._fans: list[FanSource] = fans or []
138
+ self._disks: list[DiskSource] = disks or []
134
139
  # Per-thread OS setup the poll thread enters before touching OS
135
140
  # sensor APIs (Windows → COM apartment for WMI; others → no-op).
136
141
  # Injected as a narrow callable so this OS-neutral aggregator never
@@ -352,6 +357,16 @@ class BaselineSensors(SensorEnumerator):
352
357
  _store(r, f"fan:{fan.key}:percent",
353
358
  self._read(fan.percent, f"fan:{fan.key}:percent"))
354
359
 
360
+ # Disk temperature — one DiskSource per drive; the model carries a
361
+ # single ``disk_temp`` slot, so collapse to the HOTTEST drive (the one
362
+ # most likely to throttle), mirroring cpu_temp = hottest socket.
363
+ disk_temps = [
364
+ t for disk in self._disks
365
+ if (t := self._read(disk.temp, f"disk:{disk.key}:temp")) is not None
366
+ ]
367
+ if disk_temps:
368
+ _store(r, "disk:temp", max(disk_temps))
369
+
355
370
  # IO + time
356
371
  try:
357
372
  self._io.poll(r)
@@ -399,8 +414,9 @@ def build_linux_sensors() -> BaselineSensors:
399
414
  gpus.extend(discover_amd_gpus(hwmon_devices))
400
415
  gpus.extend(discover_intel_gpus(hwmon_devices))
401
416
  fans = discover_fans(hwmon_devices)
402
- log.info("Linux sensors: cpu_temp=%s, gpus=%d, fans=%d",
417
+ disks = discover_disk_temp(hwmon_devices)
418
+ log.info("Linux sensors: cpu_temp=%s, gpus=%d, fans=%d, disks=%d",
403
419
  "yes" if cpu.temp() is not None else "no",
404
- len(gpus), len(fans))
420
+ len(gpus), len(fans), len(disks))
405
421
  return BaselineSensors(cpu=cpu, memory=PsutilMemory(),
406
- gpus=gpus, fans=fans)
422
+ gpus=gpus, fans=fans, disks=disks)
@@ -24,7 +24,7 @@ import threading
24
24
  import time
25
25
  from pathlib import Path
26
26
 
27
- from ...core.ports import CpuSource, FanSource, GpuSource
27
+ from ...core.ports import CpuSource, DiskSource, FanSource, GpuSource
28
28
  from .psutil_sources import PsutilCpu
29
29
 
30
30
  log = logging.getLogger(__name__)
@@ -461,3 +461,47 @@ def discover_fans(devices: list[HwmonDevice]) -> list[FanSource]:
461
461
  label = _read_text(dev.path / f"fan{idx}_label")
462
462
  fans.append(HwmonFan(dev, idx, label))
463
463
  return fans
464
+
465
+
466
+ # ── Disk temperature (NVMe / SATA SSD/HDD via the drivetemp module) ──
467
+
468
+ # hwmon drivers that expose a storage-device temperature: the kernel ``nvme``
469
+ # driver (NVMe Composite temp at temp1) and ``drivetemp`` (SATA SSD/HDD SMART
470
+ # temperature, modprobe drivetemp). One physical drive per device → read the
471
+ # primary temp1 only (NVMe's temp2/temp3 are extra on-controller sensors of the
472
+ # SAME drive; the model carries one disk_temp, so the composite is the number).
473
+ _DISK_DRIVERS = ("nvme", "drivetemp")
474
+
475
+
476
+ class HwmonDisk(DiskSource):
477
+ """One storage device's temp1 sensor on a hwmon ``nvme`` / ``drivetemp`` node."""
478
+
479
+ def __init__(self, hwmon: HwmonDevice, label: str | None) -> None:
480
+ self._hwmon = hwmon
481
+ self._label = label or f"{hwmon.driver} disk"
482
+
483
+ @property
484
+ def key(self) -> str:
485
+ return f"hwmon:{self._hwmon.driver}:temp1"
486
+
487
+ @property
488
+ def name(self) -> str:
489
+ return self._label
490
+
491
+ def temp(self) -> float | None:
492
+ return self._hwmon.read_temp(1)
493
+
494
+
495
+ def discover_disk_temp(devices: list[HwmonDevice]) -> list[DiskSource]:
496
+ """One :class:`HwmonDisk` per ``nvme`` / ``drivetemp`` device with a temp1."""
497
+ log.info("discover_disk_temp: devices=%d", len(devices))
498
+ disks: list[DiskSource] = []
499
+ for dev in devices:
500
+ if dev.driver not in _DISK_DRIVERS:
501
+ continue
502
+ if dev.read_temp(1) is None:
503
+ log.debug("discover_disk_temp: %s has no temp1_input — skip", dev.driver)
504
+ continue
505
+ label = _read_text(dev.path / "temp1_label")
506
+ disks.append(HwmonDisk(dev, label))
507
+ return disks
@@ -18,7 +18,7 @@ from contextlib import AbstractContextManager, nullcontext
18
18
 
19
19
  from ...core.ports import CpuSource, GpuSource
20
20
  from ._hwinfo import HwinfoCpu, discover_hwinfo_gpus
21
- from ._lhm import LhmCpu, discover_lhm_gpus
21
+ from ._lhm import LhmCpu, discover_lhm_disks, discover_lhm_gpus
22
22
  from ._msacpi import WmiAcpiCpu
23
23
  from ._wmi_gpu import discover_wmi_gpus
24
24
  from .aggregator import BaselineSensors
@@ -46,9 +46,11 @@ def build_windows_sensors(
46
46
  PsutilCpu(),
47
47
  ])
48
48
  gpus = _build_windows_gpu_chains()
49
- log.info("Windows sensors: cpu chain ready, gpus=%d", len(gpus))
49
+ disks = discover_lhm_disks()
50
+ log.info("Windows sensors: cpu chain ready, gpus=%d, disks=%d",
51
+ len(gpus), len(disks))
50
52
  return BaselineSensors(
51
- cpu=cpu, memory=PsutilMemory(), gpus=gpus, fans=[],
53
+ cpu=cpu, memory=PsutilMemory(), gpus=gpus, fans=[], disks=disks,
52
54
  thread_context=thread_context,
53
55
  )
54
56
 
@@ -169,7 +169,7 @@ def _resolve_scsi_path(vid: int, pid: int) -> str | None:
169
169
  def _walk_sysfs_for_vid_pid(start: Path) -> tuple[int, int] | None:
170
170
  """Walk up sysfs parents until we find idVendor + idProduct files."""
171
171
  log.debug("_walk_sysfs_for_vid_pid: start=%s", start)
172
- path = Path(os.path.realpath(start))
172
+ path = Path(start).resolve()
173
173
  for _ in range(10):
174
174
  path = path.parent
175
175
  vid_file = path / "idVendor"
@@ -528,6 +528,10 @@ class LinuxPlatform(Platform):
528
528
  pkg = _LINUX_INSTALL_PKGS.get(tool, tool)
529
529
  return package_install_hint(pkg)
530
530
 
531
+ def permission_denied_hint(self) -> str:
532
+ log.debug("LinuxPlatform.permission_denied_hint: called")
533
+ return "run 'trcc system setup' to install udev rules"
534
+
531
535
  def no_devices_hint(self) -> str:
532
536
  log.debug("LinuxPlatform.no_devices_hint: called")
533
537
  return (
@@ -202,6 +202,11 @@ class MacOSPlatform(Platform):
202
202
  return f"Install {tool} and ensure it is on PATH"
203
203
  return f"{tool} not found — install it:\n {hint}"
204
204
 
205
+ def permission_denied_hint(self) -> str:
206
+ log.debug("MacOSPlatform.permission_denied_hint: called")
207
+ return ("try running with sudo, or check System Settings → "
208
+ "Privacy & Security → Files and Folders")
209
+
205
210
  def no_devices_hint(self) -> str:
206
211
  log.debug("no_devices_hint: called")
207
212
  return (
@@ -482,6 +482,10 @@ class WindowsPlatform(Platform):
482
482
  return f"Install {tool} and ensure it is on PATH"
483
483
  return f"{tool} not found — install it:\n {hint}"
484
484
 
485
+ def permission_denied_hint(self) -> str:
486
+ log.debug("WindowsPlatform.permission_denied_hint: called")
487
+ return "install the WinUSB driver via 'trcc system setup'"
488
+
485
489
  def no_devices_hint(self) -> str:
486
490
  log.debug("no_devices_hint: called")
487
491
  return (