trcc-linux 9.7.6__tar.gz → 9.7.7__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 (1011) hide show
  1. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/PKG-INFO +1 -1
  2. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/pyproject.toml +4 -1
  3. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/__version__.py +1 -1
  4. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/sensors/aggregator.py +30 -3
  5. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/sensors/hwmon.py +68 -1
  6. trcc_linux-9.7.7/src/trcc/adapters/system/_imc_timings.py +71 -0
  7. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/system/linux.py +137 -0
  8. trcc_linux-9.7.7/src/trcc/adapters/system/spd.py +156 -0
  9. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/app.py +40 -0
  10. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/assets/com.github.lexonight1.trcc.policy +12 -0
  11. trcc_linux-9.7.7/src/trcc/assets/trcc-imc +126 -0
  12. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/commands/led.py +101 -89
  13. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/ports.py +26 -0
  14. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/display.py +83 -32
  15. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/led_animation_loop.py +15 -2
  16. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/led_segment.py +2 -0
  17. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_bg_lc1.png +0 -0
  18. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/base.py +5 -0
  19. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/led_handler.py +8 -0
  20. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/uc_device.py +16 -0
  21. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/uc_led_control.py +35 -10
  22. trcc_linux-9.7.7/tests/adapters/system/test_imc_timings.py +35 -0
  23. trcc_linux-9.7.7/tests/adapters/system/test_linux_imc.py +139 -0
  24. trcc_linux-9.7.7/tests/adapters/system/test_spd.py +72 -0
  25. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_display_rotation.py +110 -10
  26. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_led_animation_loop.py +18 -0
  27. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_packaging_entrypoints.py +7 -1
  28. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_platform_hw_probes.py +46 -0
  29. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_render_led.py +46 -6
  30. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_sensors.py +142 -1
  31. trcc_linux-9.7.7/tests/test_system_resume.py +67 -0
  32. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/.gitignore +0 -0
  33. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/LICENSE +0 -0
  34. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/README.md +0 -0
  35. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/__init__.py +0 -0
  36. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/__main__.py +0 -0
  37. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/_boot.py +0 -0
  38. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/_entry.py +0 -0
  39. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/__init__.py +0 -0
  40. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/device/__init__.py +0 -0
  41. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/device/_pyusb_find.py +0 -0
  42. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/device/bulk_lcd.py +0 -0
  43. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/device/hid_lcd.py +0 -0
  44. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/device/led.py +0 -0
  45. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/device/ly_lcd.py +0 -0
  46. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/device/scsi_lcd.py +0 -0
  47. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/device/transport.py +0 -0
  48. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/device/usb_bot_scsi.py +0 -0
  49. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/diagnostics/__init__.py +0 -0
  50. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/diagnostics/adapter.py +0 -0
  51. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/diagnostics/debug_report.py +0 -0
  52. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/diagnostics/doctor.py +0 -0
  53. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/diagnostics/health.py +0 -0
  54. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/infra/__init__.py +0 -0
  55. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/infra/logging.py +0 -0
  56. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/infra/network.py +0 -0
  57. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/infra/send_scheduler.py +0 -0
  58. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/infra/sysinfo_config.py +0 -0
  59. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/render/__init__.py +0 -0
  60. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/render/qt.py +0 -0
  61. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/repo/__init__.py +0 -0
  62. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/repo/data_install.py +0 -0
  63. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/repo/github_releases.py +0 -0
  64. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/repo/http.py +0 -0
  65. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/screencast/__init__.py +0 -0
  66. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/screencast/qt.py +0 -0
  67. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/sensors/__init__.py +0 -0
  68. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/sensors/_hwinfo.py +0 -0
  69. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/sensors/_lhm.py +0 -0
  70. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/sensors/_macos_hid.py +0 -0
  71. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/sensors/_msacpi.py +0 -0
  72. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/sensors/_powermetrics.py +0 -0
  73. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/sensors/_smc.py +0 -0
  74. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/sensors/_sysctl.py +0 -0
  75. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/sensors/_wmi_gpu.py +0 -0
  76. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/sensors/bsd.py +0 -0
  77. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/sensors/chain.py +0 -0
  78. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/sensors/gpu_detect.py +0 -0
  79. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/sensors/macos.py +0 -0
  80. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/sensors/nvml.py +0 -0
  81. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/sensors/psutil_sources.py +0 -0
  82. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/sensors/windows.py +0 -0
  83. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/system/__init__.py +0 -0
  84. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/system/_autostart.py +0 -0
  85. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/system/_devd.py +0 -0
  86. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/system/_elevate.py +0 -0
  87. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/system/_hotplug.py +0 -0
  88. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/system/_macos_setup.py +0 -0
  89. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/system/_selinux.py +0 -0
  90. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/system/_udev.py +0 -0
  91. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/system/_windows_wmi.py +0 -0
  92. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/system/_winusb.py +0 -0
  93. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/system/bsd.py +0 -0
  94. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/system/macos.py +0 -0
  95. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/system/windows.py +0 -0
  96. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/theme/__init__.py +0 -0
  97. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/adapters/theme/cloud.py +0 -0
  98. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/assets/LibreHardwareMonitor.config +0 -0
  99. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/assets/fonts/MSYH.TTC +0 -0
  100. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/assets/fonts/MSYHBD.TTC +0 -0
  101. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/assets/fonts/README.md +0 -0
  102. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/assets/icons/app.ico +0 -0
  103. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/assets/icons/trcc.png +0 -0
  104. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/assets/icons/trcc_128x128.png +0 -0
  105. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/assets/icons/trcc_16x16.png +0 -0
  106. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/assets/icons/trcc_24x24.png +0 -0
  107. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/assets/icons/trcc_256x256.png +0 -0
  108. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/assets/icons/trcc_32x32.png +0 -0
  109. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/assets/icons/trcc_48x48.png +0 -0
  110. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/assets/icons/trcc_64x64.png +0 -0
  111. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/assets/trcc-linux.desktop +0 -0
  112. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/assets/trcc-quirk-fix.service +0 -0
  113. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/__init__.py +0 -0
  114. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/_colors.py +0 -0
  115. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/_safe.py +0 -0
  116. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/_version.py +0 -0
  117. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/commands/__init__.py +0 -0
  118. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/commands/_base.py +0 -0
  119. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/commands/_helpers.py +0 -0
  120. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/commands/device.py +0 -0
  121. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/commands/system.py +0 -0
  122. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/commands/theme.py +0 -0
  123. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/device_recovery.py +0 -0
  124. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/diagnostics.py +0 -0
  125. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/errors.py +0 -0
  126. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/events.py +0 -0
  127. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/i18n.py +0 -0
  128. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/led_models.py +0 -0
  129. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/led_protocol.py +0 -0
  130. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/models.py +0 -0
  131. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/protocol.py +0 -0
  132. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/registry.py +0 -0
  133. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/results.py +0 -0
  134. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/core/variants.py +0 -0
  135. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/daemon.py +0 -0
  136. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/data/trcc_usb.te +0 -0
  137. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ipc.py +0 -0
  138. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/proxy.py +0 -0
  139. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/__init__.py +0 -0
  140. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/_ansi.py +0 -0
  141. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/_clock.py +0 -0
  142. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/_dc.py +0 -0
  143. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/audio.py +0 -0
  144. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/cloud_theme.py +0 -0
  145. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/data_install.py +0 -0
  146. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/device_sender.py +0 -0
  147. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/first_run.py +0 -0
  148. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/led_effects.py +0 -0
  149. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/media.py +0 -0
  150. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/metrics_loop.py +0 -0
  151. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/metrics_personalize.py +0 -0
  152. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/migration.py +0 -0
  153. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/overlay.py +0 -0
  154. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/quickstart.py +0 -0
  155. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/settings.py +0 -0
  156. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/slideshow.py +0 -0
  157. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/theme.py +0 -0
  158. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/video_cache.py +0 -0
  159. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/services/video_export.py +0 -0
  160. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/__init__.py +0 -0
  161. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/_errors.py +0 -0
  162. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/api/__init__.py +0 -0
  163. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/api/_shared.py +0 -0
  164. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/api/config.py +0 -0
  165. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/api/devices.py +0 -0
  166. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/api/display.py +0 -0
  167. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/api/led.py +0 -0
  168. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/api/main.py +0 -0
  169. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/api/schemas.py +0 -0
  170. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/api/system.py +0 -0
  171. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/api/theme.py +0 -0
  172. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/api/trcc.py +0 -0
  173. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/cli/__init__.py +0 -0
  174. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/cli/_ctx.py +0 -0
  175. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/cli/config.py +0 -0
  176. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/cli/device.py +0 -0
  177. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/cli/display.py +0 -0
  178. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/cli/led.py +0 -0
  179. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/cli/main.py +0 -0
  180. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/cli/shell.py +0 -0
  181. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/cli/system.py +0 -0
  182. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/cli/theme.py +0 -0
  183. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/__init__.py +0 -0
  184. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/_ui_state.py +0 -0
  185. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/240240.gif +0 -0
  186. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/240320.gif +0 -0
  187. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/320240.gif +0 -0
  188. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/320320.gif +0 -0
  189. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1AK120 Digital.png +0 -0
  190. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1AK120 Digitala.png +0 -0
  191. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1AK120_Digital.png +0 -0
  192. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1AK120_Digitala.png +0 -0
  193. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1AS120 VISION.png +0 -0
  194. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1AS120 VISIONa.png +0 -0
  195. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1AS120_VISION.png +0 -0
  196. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1AS120_VISIONa.png +0 -0
  197. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1AX120 DIGITAL.png +0 -0
  198. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1AX120 DIGITALa.png +0 -0
  199. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1AX120_DIGITAL.png +0 -0
  200. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1AX120_DIGITALa.png +0 -0
  201. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1BA120 VISION.png +0 -0
  202. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1BA120 VISIONa.png +0 -0
  203. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1BA120_VISION.png +0 -0
  204. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1BA120_VISIONa.png +0 -0
  205. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1CORE VISION.png +0 -0
  206. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1CORE VISIONa.png +0 -0
  207. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1CORE_VISION.png +0 -0
  208. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1CORE_VISIONa.png +0 -0
  209. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1CZ1.png +0 -0
  210. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1CZ1a.png +0 -0
  211. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1CZ2.png +0 -0
  212. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1CZ2a.png +0 -0
  213. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1CZTV.png +0 -0
  214. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1CZTVa.png +0 -0
  215. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1ELITE VISION.png +0 -0
  216. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1ELITE VISIONa.png +0 -0
  217. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1ELITE_VISION.png +0 -0
  218. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1ELITE_VISIONa.png +0 -0
  219. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PRO.png +0 -0
  220. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PROa.png +0 -0
  221. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PRO.png +0 -0
  222. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PROa.png +0 -0
  223. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN VISION V2.png +0 -0
  224. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN VISION V2a.png +0 -0
  225. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PRO.png +0 -0
  226. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PROa.png +0 -0
  227. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SE.png +0 -0
  228. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SEa.png +0 -0
  229. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME.png +0 -0
  230. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN WARFRAMEa.png +0 -0
  231. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PRO.png +0 -0
  232. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PROa.png +0 -0
  233. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PRO.png +0 -0
  234. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PROa.png +0 -0
  235. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2.png +0 -0
  236. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2a.png +0 -0
  237. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME.png +0 -0
  238. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PRO.png +0 -0
  239. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PROa.png +0 -0
  240. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SE.png +0 -0
  241. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SEa.png +0 -0
  242. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAMEa.png +0 -0
  243. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1GRAND VISION.png +0 -0
  244. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1GRAND VISIONa.png +0 -0
  245. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1GRAND_VISION.png +0 -0
  246. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1GRAND_VISIONa.png +0 -0
  247. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITAL.png +0 -0
  248. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITALa.png +0 -0
  249. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1HYPER VISION.png +0 -0
  250. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1HYPER VISIONa.png +0 -0
  251. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1HYPER_VISION.png +0 -0
  252. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1HYPER_VISIONa.png +0 -0
  253. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1KVMALEDC6.png +0 -0
  254. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1KVMALEDC6a.png +0 -0
  255. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC1.png +0 -0
  256. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC10.png +0 -0
  257. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC10a.png +0 -0
  258. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC13.png +0 -0
  259. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC13a.png +0 -0
  260. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC15.png +0 -0
  261. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC15a.png +0 -0
  262. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC1a.png +0 -0
  263. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC2.png +0 -0
  264. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC2JD.png +0 -0
  265. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC2JDa.png +0 -0
  266. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC2a.png +0 -0
  267. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC3.png +0 -0
  268. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC3a.png +0 -0
  269. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC5.png +0 -0
  270. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC5a.png +0 -0
  271. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC7.png +0 -0
  272. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC7a.png +0 -0
  273. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC8.png +0 -0
  274. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC8a.png +0 -0
  275. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC9.png +0 -0
  276. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LC9a.png +0 -0
  277. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LD10.png +0 -0
  278. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LD10a.png +0 -0
  279. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LD11.png +0 -0
  280. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LD11a.png +0 -0
  281. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LD6.png +0 -0
  282. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LD6a.png +0 -0
  283. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LD7.png +0 -0
  284. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LD7a.png +0 -0
  285. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LD8.png +0 -0
  286. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LD8a.png +0 -0
  287. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LD9.png +0 -0
  288. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LD9a.png +0 -0
  289. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF014.png +0 -0
  290. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF014a.png +0 -0
  291. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF10.png +0 -0
  292. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF10V.png +0 -0
  293. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF10Va.png +0 -0
  294. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF10a.png +0 -0
  295. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF11.png +0 -0
  296. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF11a.png +0 -0
  297. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF12.png +0 -0
  298. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF12a.png +0 -0
  299. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF13.png +0 -0
  300. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF13a.png +0 -0
  301. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF14.png +0 -0
  302. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF14a.png +0 -0
  303. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF15.png +0 -0
  304. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF15a.png +0 -0
  305. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF16.png +0 -0
  306. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF167.png +0 -0
  307. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF16a.png +0 -0
  308. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF17a.png +0 -0
  309. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF18.png +0 -0
  310. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF18a.png +0 -0
  311. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF19.png +0 -0
  312. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF19a.png +0 -0
  313. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF20.png +0 -0
  314. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF20a.png +0 -0
  315. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF21.png +0 -0
  316. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF21a.png +0 -0
  317. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF22.png +0 -0
  318. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF22a.png +0 -0
  319. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF25.png +0 -0
  320. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF25a.png +0 -0
  321. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF8.png +0 -0
  322. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LF8a.png +0 -0
  323. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LM16SE.png +0 -0
  324. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LM16SEa.png +0 -0
  325. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LM19SE.png +0 -0
  326. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LM19SEa.png +0 -0
  327. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LM22.png +0 -0
  328. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LM22a.png +0 -0
  329. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LM24.png +0 -0
  330. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LM24a.png +0 -0
  331. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LM26.png +0 -0
  332. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LM26a.png +0 -0
  333. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LM27.png +0 -0
  334. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LM27a.png +0 -0
  335. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LM30.png +0 -0
  336. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1LM30a.png +0 -0
  337. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1Mjolnir VISION PRO.png +0 -0
  338. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1Mjolnir VISION PROa.png +0 -0
  339. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1Mjolnir VISION.png +0 -0
  340. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1Mjolnir VISIONa.png +0 -0
  341. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1Mjolnir_VISION.png +0 -0
  342. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PRO.png +0 -0
  343. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PROa.png +0 -0
  344. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1Mjolnir_VISIONa.png +0 -0
  345. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1PA120 DIGITAL.png +0 -0
  346. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1PA120 DIGITALa.png +0 -0
  347. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1PA120_DIGITAL.png +0 -0
  348. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1PA120_DIGITALa.png +0 -0
  349. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1PC1.png +0 -0
  350. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1PC1a.png +0 -0
  351. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1RK120 DIGITAL.png +0 -0
  352. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1RK120 DIGITALa.png +0 -0
  353. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1RK120_DIGITAL.png +0 -0
  354. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1RK120_DIGITALa.png +0 -0
  355. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1RP130 VISION.png +0 -0
  356. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1RP130 VISIONa.png +0 -0
  357. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1RP130_VISION.png +0 -0
  358. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1RP130_VISIONa.png +0 -0
  359. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1RX1.png +0 -0
  360. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1RX1a.png +0 -0
  361. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1Stream Vision.png +0 -0
  362. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1Stream Visiona.png +0 -0
  363. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1Stream_Vision.png +0 -0
  364. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/A1Stream_Visiona.png +0 -0
  365. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/about_dropdown.png +0 -0
  366. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/about_dropdown_bg.png +0 -0
  367. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/about_dropdown_select.png +0 -0
  368. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/about_update.png +0 -0
  369. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/about_update_overlay.png +0 -0
  370. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_about_bg.png +0 -0
  371. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_brightness_0.png +0 -0
  372. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_brightness_1.png +0 -0
  373. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_brightness_2.png +0 -0
  374. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_brightness_3.png +0 -0
  375. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_export.png +0 -0
  376. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_form_bg.png +0 -0
  377. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_help.png +0 -0
  378. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_import.png +0 -0
  379. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_main_bg.png +0 -0
  380. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_power.png +0 -0
  381. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_power_hover.png +0 -0
  382. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_save.png +0 -0
  383. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_sysinfo_bg.png +0 -0
  384. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_tab_cloud.png +0 -0
  385. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_tab_cloud_active.png +0 -0
  386. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_tab_local.png +0 -0
  387. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_tab_local_active.png +0 -0
  388. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_tab_mask.png +0 -0
  389. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_tab_mask_active.png +0 -0
  390. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_tab_mask_lower.png +0 -0
  391. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_tab_settings.png +0 -0
  392. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_tab_settings_active.png +0 -0
  393. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_theme_base_bg.png +0 -0
  394. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_theme_gallery_bg.png +0 -0
  395. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/app_theme_settings_bg.png +0 -0
  396. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/carousel_1.png +0 -0
  397. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/carousel_2.png +0 -0
  398. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/carousel_3.png +0 -0
  399. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/carousel_4.png +0 -0
  400. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/carousel_5.png +0 -0
  401. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/carousel_6.png +0 -0
  402. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/carousel_btn.png +0 -0
  403. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/carousel_btn_active.png +0 -0
  404. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/carousel_select_frame.png +0 -0
  405. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/color_panel_eyedropper.png +0 -0
  406. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/color_panel_picker.png +0 -0
  407. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/color_panel_selector_ring.png +0 -0
  408. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/color_panel_slider_thumb.png +0 -0
  409. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/color_wheel_knob.png +0 -0
  410. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/color_wheel_knob_0.png +0 -0
  411. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/color_wheel_toggle_hover.png +0 -0
  412. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/color_wheel_toggle_off.png +0 -0
  413. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/color_wheel_toggle_on.png +0 -0
  414. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_12h.png +0 -0
  415. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_24h.png +0 -0
  416. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_border.png +0 -0
  417. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_border_active.png +0 -0
  418. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_crop.png +0 -0
  419. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_date_dm.png +0 -0
  420. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_date_dmy.png +0 -0
  421. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_date_md.png +0 -0
  422. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_date_ymd.png +0 -0
  423. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_digit_font.png +0 -0
  424. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_fit_height.png +0 -0
  425. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_fit_width.png +0 -0
  426. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_function.png +0 -0
  427. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_function_active.png +0 -0
  428. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_icon.png +0 -0
  429. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_icon_gif.png +0 -0
  430. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_icon_image.png +0 -0
  431. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_icon_livestream.png +0 -0
  432. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_icon_mask.png +0 -0
  433. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_icon_network.png +0 -0
  434. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_icon_video.png +0 -0
  435. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_m1.png +0 -0
  436. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_m1_active.png +0 -0
  437. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_m2.png +0 -0
  438. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_m2_active.png +0 -0
  439. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_m3.png +0 -0
  440. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_m3_active.png +0 -0
  441. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_m4.png +0 -0
  442. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_m4_active.png +0 -0
  443. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_m5.png +0 -0
  444. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_m5_active.png +0 -0
  445. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_m6.png +0 -0
  446. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_m6_active.png +0 -0
  447. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_minus.png +0 -0
  448. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_network_btn.png +0 -0
  449. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_plus.png +0 -0
  450. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_rotate.png +0 -0
  451. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_slider_thumb.png +0 -0
  452. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_text_font.png +0 -0
  453. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_unit_c.png +0 -0
  454. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/display_mode_unit_f.png +0 -0
  455. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/frozen_warframe_ultra.png +0 -0
  456. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/frozen_warframe_ultra_active.png +0 -0
  457. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_110x480.png +0 -0
  458. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_116x480.png +0 -0
  459. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_1280x480.png +0 -0
  460. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_160x480.png +0 -0
  461. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_180x400.png +0 -0
  462. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_180x480.png +0 -0
  463. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_240x240.png +0 -0
  464. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_240x320.png +0 -0
  465. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_240x400.png +0 -0
  466. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_240x427.png +0 -0
  467. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_270x480.png +0 -0
  468. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_320x240.png +0 -0
  469. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_320x320.png +0 -0
  470. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_320x86.png +0 -0
  471. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_360x360.png +0 -0
  472. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_400x180.png +0 -0
  473. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_400x240.png +0 -0
  474. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_427x240.png +0 -0
  475. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_480x110.png +0 -0
  476. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_480x116.png +0 -0
  477. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_480x160.png +0 -0
  478. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_480x180.png +0 -0
  479. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_480x270.png +0 -0
  480. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_480x480.png +0 -0
  481. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/image_cut_86x320.png +0 -0
  482. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_aggregate.png +0 -0
  483. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_aggregate_active.png +0 -0
  484. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_bg_cz1.png +0 -0
  485. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_bg_kvma.png +0 -0
  486. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_bg_lc2.png +0 -0
  487. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_bg_lf10.png +0 -0
  488. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_bg_lf11.png +0 -0
  489. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_bg_lf12.png +0 -0
  490. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_bg_lf13.png +0 -0
  491. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_bg_lf15.png +0 -0
  492. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_bg_lf8.png +0 -0
  493. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_bg_rgb_lf13.png +0 -0
  494. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_bg_segment.png +0 -0
  495. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_bg_segment_4zone.png +0 -0
  496. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_dropdown.png +0 -0
  497. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_dropdown_2.png +0 -0
  498. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_dropdown_highlight.png +0 -0
  499. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_dropdown_highlight_2.png +0 -0
  500. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_dropdown_menu.png +0 -0
  501. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_dropdown_menu_2.png +0 -0
  502. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_external.png +0 -0
  503. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_external_active.png +0 -0
  504. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_helmet_1.png +0 -0
  505. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_helmet_2.png +0 -0
  506. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_helmet_3.png +0 -0
  507. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_helmet_4.png +0 -0
  508. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_helmet_5.png +0 -0
  509. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_meter_bar_1.png +0 -0
  510. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_meter_bar_2.png +0 -0
  511. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_meter_bar_3.png +0 -0
  512. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_meter_bar_4.png +0 -0
  513. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_meter_bar_5.png +0 -0
  514. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_meter_bar_6.png +0 -0
  515. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_meter_bg_1.png +0 -0
  516. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_meter_bg_2.png +0 -0
  517. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_meter_bg_3.png +0 -0
  518. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_meter_bg_4.png +0 -0
  519. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_meter_bg_5.png +0 -0
  520. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_meter_bg_5_active.png +0 -0
  521. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_meter_bg_6.png +0 -0
  522. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_1.png +0 -0
  523. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_10.png +0 -0
  524. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_10_active.png +0 -0
  525. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_11.png +0 -0
  526. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_11_active.png +0 -0
  527. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_12.png +0 -0
  528. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_12_active.png +0 -0
  529. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_1_active.png +0 -0
  530. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_2.png +0 -0
  531. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_2_active.png +0 -0
  532. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_3.png +0 -0
  533. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_3_active.png +0 -0
  534. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_4.png +0 -0
  535. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_4_active.png +0 -0
  536. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_5.png +0 -0
  537. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_5_active.png +0 -0
  538. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_6.png +0 -0
  539. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_6_active.png +0 -0
  540. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_7.png +0 -0
  541. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_7_active.png +0 -0
  542. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_8.png +0 -0
  543. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_8_active.png +0 -0
  544. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_9.png +0 -0
  545. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_mode_9_active.png +0 -0
  546. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_power.png +0 -0
  547. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_power_active.png +0 -0
  548. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preset_blue.png +0 -0
  549. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preset_cyan.png +0 -0
  550. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preset_green.png +0 -0
  551. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preset_orange.png +0 -0
  552. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preset_purple.png +0 -0
  553. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preset_red.png +0 -0
  554. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preset_white.png +0 -0
  555. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preset_yellow.png +0 -0
  556. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preview_ak120.png +0 -0
  557. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preview_ax120.png +0 -0
  558. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preview_cz1.png +0 -0
  559. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preview_frozen_horizon_pro.png +0 -0
  560. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preview_frozen_magic_pro.png +0 -0
  561. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preview_lc1.png +0 -0
  562. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preview_lc2.png +0 -0
  563. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preview_lf10.png +0 -0
  564. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preview_lf11.png +0 -0
  565. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preview_lf12.png +0 -0
  566. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preview_lf13.png +0 -0
  567. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preview_lf15.png +0 -0
  568. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preview_lf8.png +0 -0
  569. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preview_pa120.png +0 -0
  570. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_preview_pa120_space.png +0 -0
  571. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_show_1.png +0 -0
  572. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_show_1_active.png +0 -0
  573. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_show_2.png +0 -0
  574. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_show_2_active.png +0 -0
  575. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_show_3.png +0 -0
  576. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_show_3_active.png +0 -0
  577. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_slider_thumb.png +0 -0
  578. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_btn_1.png +0 -0
  579. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_btn_1_active.png +0 -0
  580. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_btn_2.png +0 -0
  581. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_btn_2_active.png +0 -0
  582. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_btn_3.png +0 -0
  583. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_btn_3_active.png +0 -0
  584. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_btn_4.png +0 -0
  585. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_btn_4_active.png +0 -0
  586. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_mode_1.png +0 -0
  587. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_mode_1_active.png +0 -0
  588. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_mode_2.png +0 -0
  589. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_mode_2_active.png +0 -0
  590. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_mode_3.png +0 -0
  591. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_mode_3_active.png +0 -0
  592. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_mode_4.png +0 -0
  593. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_mode_4_active.png +0 -0
  594. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_mode_5.png +0 -0
  595. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_mode_5_active.png +0 -0
  596. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_mode_6.png +0 -0
  597. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/led_zone_mode_6_active.png +0 -0
  598. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/overlay_label_sysinfo.png +0 -0
  599. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_en.png +0 -0
  600. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_tc.png +0 -0
  601. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/overlay_label_sysinfo_en.png +0 -0
  602. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/overlay_label_sysinfo_tc.png +0 -0
  603. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/overlay_label_text.png +0 -0
  604. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/overlay_label_text_en.png +0 -0
  605. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/overlay_label_text_tc.png +0 -0
  606. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/overlay_label_time.png +0 -0
  607. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/overlay_label_time_en.png +0 -0
  608. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/overlay_label_time_tc.png +0 -0
  609. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/overlay_mode_date.png +0 -0
  610. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/overlay_mode_hardware.png +0 -0
  611. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/overlay_mode_text.png +0 -0
  612. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/overlay_mode_time.png +0 -0
  613. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/overlay_mode_weekday.png +0 -0
  614. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/overlay_select.png +0 -0
  615. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_110x480.png +0 -0
  616. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_116x480.png +0 -0
  617. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_160x480.png +0 -0
  618. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_180x400.png +0 -0
  619. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_180x480.png +0 -0
  620. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_240x240.png +0 -0
  621. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_240x320.png +0 -0
  622. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_240x400.png +0 -0
  623. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_240x427.png +0 -0
  624. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_270x480.png +0 -0
  625. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_320x240.png +0 -0
  626. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_320x320.png +0 -0
  627. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_320x320_round.png +0 -0
  628. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_320x86.png +0 -0
  629. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_360x360_round.png +0 -0
  630. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_400x180.png +0 -0
  631. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_400x240.png +0 -0
  632. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_427x240.png +0 -0
  633. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_480x110.png +0 -0
  634. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_480x116.png +0 -0
  635. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_480x160.png +0 -0
  636. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_480x180.png +0 -0
  637. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_480x270.png +0 -0
  638. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_480x480.png +0 -0
  639. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_480x480_round.png +0 -0
  640. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_86x320.png +0 -0
  641. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_animation.png +0 -0
  642. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_btn.png +0 -0
  643. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_btn_active.png +0 -0
  644. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_pause.png +0 -0
  645. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_play.png +0 -0
  646. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_player_control_bg.png +0 -0
  647. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_popup_1280x480.png +0 -0
  648. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_popup_1920x440.png +0 -0
  649. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_popup_1920x462.png +0 -0
  650. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_popup_320x960.png +0 -0
  651. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_popup_360x800.png +0 -0
  652. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_popup_440x1920.png +0 -0
  653. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_popup_462x1920.png +0 -0
  654. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_popup_480x1280.png +0 -0
  655. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_popup_480x800.png +0 -0
  656. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_popup_480x854.png +0 -0
  657. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_popup_540x960.png +0 -0
  658. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_popup_800x360.png +0 -0
  659. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_popup_800x480.png +0 -0
  660. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_popup_854x480.png +0 -0
  661. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_popup_960x320.png +0 -0
  662. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_popup_960x540.png +0 -0
  663. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_res_240x240.png +0 -0
  664. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_res_240x320.png +0 -0
  665. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_res_320x240.png +0 -0
  666. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_res_320x320.png +0 -0
  667. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_round_mask_320x320.png +0 -0
  668. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_round_mask_360x360.png +0 -0
  669. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_round_mask_480x480.png +0 -0
  670. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_video_controls_bg.png +0 -0
  671. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/preview_video_controls_bg_alt.png +0 -0
  672. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/screen_led_deco_1.png +0 -0
  673. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/screen_led_deco_2.png +0 -0
  674. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/screen_led_deco_3.png +0 -0
  675. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/screen_led_deco_4.png +0 -0
  676. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/screen_led_deco_cz1.png +0 -0
  677. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/secondary_screen_bg.png +0 -0
  678. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/secondary_screen_bg_d.png +0 -0
  679. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/secondary_screen_bg_e.png +0 -0
  680. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/secondary_screen_bg_en.png +0 -0
  681. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/secondary_screen_bg_f.png +0 -0
  682. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/secondary_screen_bg_h.png +0 -0
  683. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/secondary_screen_bg_p.png +0 -0
  684. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/secondary_screen_bg_r.png +0 -0
  685. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/secondary_screen_bg_tc.png +0 -0
  686. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/secondary_screen_bg_x.png +0 -0
  687. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_add_content.png +0 -0
  688. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_add_content_btn.png +0 -0
  689. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_add_content_mask.png +0 -0
  690. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_add_date.png +0 -0
  691. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_add_date_1.png +0 -0
  692. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_add_icon.png +0 -0
  693. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_add_link_1.png +0 -0
  694. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_add_text.png +0 -0
  695. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_add_text_1.png +0 -0
  696. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_add_time.png +0 -0
  697. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_add_time_1.png +0 -0
  698. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_add_weekday.png +0 -0
  699. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_add_weekday_1.png +0 -0
  700. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_anim_sync.png +0 -0
  701. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_background.png +0 -0
  702. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_brightness.png +0 -0
  703. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_keyboard_sync_1.png +0 -0
  704. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_keyboard_sync_2.png +0 -0
  705. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_keyboard_sync_3.png +0 -0
  706. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_module.png +0 -0
  707. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_overlay.png +0 -0
  708. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_overlay_add_bg.png +0 -0
  709. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_overlay_color_bg.png +0 -0
  710. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_overlay_grid_bg.png +0 -0
  711. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_overlay_table_bg.png +0 -0
  712. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/settings_params.png +0 -0
  713. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_brightness_bar.png +0 -0
  714. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_checkbox_off.png +0 -0
  715. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_checkbox_on.png +0 -0
  716. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_clip_a.png +0 -0
  717. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_clip_b.png +0 -0
  718. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_close.png +0 -0
  719. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_close_2.png +0 -0
  720. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_dropdown.png +0 -0
  721. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_dropdown_bg_2x.png +0 -0
  722. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_dropdown_bg_4x.png +0 -0
  723. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_dropdown_highlight.png +0 -0
  724. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_loading_animation.png +0 -0
  725. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_progress_bar.png +0 -0
  726. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_round_close.png +0 -0
  727. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_round_confirm.png +0 -0
  728. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_scrollbar_bg.png +0 -0
  729. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_scrollbar_thumb.png +0 -0
  730. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_shortcut_size_slider.png +0 -0
  731. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_thread_multi.png +0 -0
  732. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_thread_single.png +0 -0
  733. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_toggle_off.png +0 -0
  734. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shared_toggle_on.png +0 -0
  735. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shortcuts_panel.png +0 -0
  736. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shortcuts_panel_d.png +0 -0
  737. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shortcuts_panel_e.png +0 -0
  738. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shortcuts_panel_en.png +0 -0
  739. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shortcuts_panel_f.png +0 -0
  740. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shortcuts_panel_p.png +0 -0
  741. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shortcuts_panel_r.png +0 -0
  742. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shortcuts_panel_tc.png +0 -0
  743. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/shortcuts_panel_x.png +0 -0
  744. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sidebar_about.png +0 -0
  745. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sidebar_about_active.png +0 -0
  746. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sidebar_about_bg.png +0 -0
  747. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sidebar_bg.png +0 -0
  748. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sidebar_no_device.png +0 -0
  749. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sidebar_sensor.png +0 -0
  750. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sidebar_sensor_active.png +0 -0
  751. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sidebar_splash.png +0 -0
  752. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sidebar_sysinfo_bg.png +0 -0
  753. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/split_overlay_a.png +0 -0
  754. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/split_overlay_a_180.png +0 -0
  755. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/split_overlay_a_270.png +0 -0
  756. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/split_overlay_a_90.png +0 -0
  757. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/split_overlay_b.png +0 -0
  758. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/split_overlay_b_180.png +0 -0
  759. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/split_overlay_b_270.png +0 -0
  760. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/split_overlay_b_90.png +0 -0
  761. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/split_overlay_c.png +0 -0
  762. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/split_overlay_c_180.png +0 -0
  763. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/split_overlay_c_270.png +0 -0
  764. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/split_overlay_c_90.png +0 -0
  765. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sysinfo_add_group.png +0 -0
  766. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sysinfo_cpu.png +0 -0
  767. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sysinfo_custom.png +0 -0
  768. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sysinfo_dram.png +0 -0
  769. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sysinfo_fan.png +0 -0
  770. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sysinfo_gpu.png +0 -0
  771. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sysinfo_hdd.png +0 -0
  772. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sysinfo_net.png +0 -0
  773. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sysinfo_next_page.png +0 -0
  774. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sysinfo_prev_page.png +0 -0
  775. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sysinfo_scrollbar.png +0 -0
  776. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/sysinfo_select.png +0 -0
  777. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_browser_filter.png +0 -0
  778. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_browser_filter_active.png +0 -0
  779. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_cloud_label.png +0 -0
  780. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_cloud_label_d.png +0 -0
  781. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_cloud_label_e.png +0 -0
  782. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_cloud_label_en.png +0 -0
  783. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_cloud_label_f.png +0 -0
  784. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_cloud_label_h.png +0 -0
  785. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_cloud_label_p.png +0 -0
  786. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_cloud_label_r.png +0 -0
  787. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_cloud_label_tc.png +0 -0
  788. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_cloud_label_x.png +0 -0
  789. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_local_carousel.png +0 -0
  790. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_local_carousel_active.png +0 -0
  791. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_local_export_all.png +0 -0
  792. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_local_multi_select.png +0 -0
  793. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_local_multi_select_active.png +0 -0
  794. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_local_select_frame.png +0 -0
  795. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_local_select_frame_active.png +0 -0
  796. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/theme_mask_label.png +0 -0
  797. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_110x480.png +0 -0
  798. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_116x480.png +0 -0
  799. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_1280x480.png +0 -0
  800. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_160x480.png +0 -0
  801. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_180x400.png +0 -0
  802. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_180x480.png +0 -0
  803. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_240x240.png +0 -0
  804. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_240x320.png +0 -0
  805. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_240x400.png +0 -0
  806. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_240x427.png +0 -0
  807. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_270x480.png +0 -0
  808. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_320x240.png +0 -0
  809. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_320x320.png +0 -0
  810. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_320x86.png +0 -0
  811. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_360x360.png +0 -0
  812. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_400x180.png +0 -0
  813. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_400x240.png +0 -0
  814. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_427x240.png +0 -0
  815. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_480x110.png +0 -0
  816. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_480x116.png +0 -0
  817. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_480x160.png +0 -0
  818. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_480x180.png +0 -0
  819. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_480x270.png +0 -0
  820. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_480x480.png +0 -0
  821. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_86x320.png +0 -0
  822. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_bg.png +0 -0
  823. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets/video_cut_bg_alt.png +0 -0
  824. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/assets.py +0 -0
  825. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/base_handler.py +0 -0
  826. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/bus_bridge.py +0 -0
  827. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/color_and_add_panels.py +0 -0
  828. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/constants.py +0 -0
  829. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/display_mode_panels.py +0 -0
  830. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/eyedropper.py +0 -0
  831. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/gpu_reader_prompt.py +0 -0
  832. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/lcd_handler.py +0 -0
  833. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/overlay_element.py +0 -0
  834. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/overlay_grid.py +0 -0
  835. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/pipewire_capture.py +0 -0
  836. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/screen_capture.py +0 -0
  837. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/splash.py +0 -0
  838. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/trcc_app.py +0 -0
  839. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/uc_about.py +0 -0
  840. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/uc_activity_sidebar.py +0 -0
  841. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/uc_color_wheel.py +0 -0
  842. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/uc_image_cut.py +0 -0
  843. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/uc_info_module.py +0 -0
  844. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/uc_preview.py +0 -0
  845. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/uc_screen_led.py +0 -0
  846. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/uc_sensor_picker.py +0 -0
  847. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/uc_system_info.py +0 -0
  848. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/uc_theme_local.py +0 -0
  849. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/uc_theme_mask.py +0 -0
  850. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/uc_theme_setting.py +0 -0
  851. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/uc_theme_web.py +0 -0
  852. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/gui/uc_video_cut.py +0 -0
  853. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/presentation/__init__.py +0 -0
  854. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/presentation/device_presentation.py +0 -0
  855. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/presentation/lcd_panel.py +0 -0
  856. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/presentation/lcd_presentation_model.py +0 -0
  857. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/presentation/led_display.py +0 -0
  858. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/presentation/led_metrics_format.py +0 -0
  859. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/presentation/led_panel.py +0 -0
  860. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/presentation/led_zone_model.py +0 -0
  861. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/presentation/overlay_model.py +0 -0
  862. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/presentation/overlay_serialization.py +0 -0
  863. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/presentation/preview_geometry.py +0 -0
  864. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/presentation/sensor_display.py +0 -0
  865. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/presentation/slideshow_model.py +0 -0
  866. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/presentation/theme_directories.py +0 -0
  867. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qapp.py +0 -0
  868. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/__init__.py +0 -0
  869. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/app.py +0 -0
  870. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/assets.py +0 -0
  871. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/base.py +0 -0
  872. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/bus_bridge.py +0 -0
  873. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/color_wheel.py +0 -0
  874. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/device_picker.py +0 -0
  875. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/eyedropper.py +0 -0
  876. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/image_crop.py +0 -0
  877. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/__init__.py +0 -0
  878. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/about_panel.py +0 -0
  879. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/cloud_theme_browser.py +0 -0
  880. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/configuration_panel.py +0 -0
  881. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/device_panel.py +0 -0
  882. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/display_panel.py +0 -0
  883. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/led/__init__.py +0 -0
  884. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/led/_base.py +0 -0
  885. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/led/advanced_tab.py +0 -0
  886. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/led/color_tab.py +0 -0
  887. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/led/mode_tab.py +0 -0
  888. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/led/segment_tab.py +0 -0
  889. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/led/zone_tab.py +0 -0
  890. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/led_panel.py +0 -0
  891. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/local_theme_browser.py +0 -0
  892. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/mask_browser.py +0 -0
  893. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/overlay_editor.py +0 -0
  894. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/preview_panel.py +0 -0
  895. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/screencast_panel.py +0 -0
  896. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/sidebar.py +0 -0
  897. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/status_panel.py +0 -0
  898. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/panels/system_panel.py +0 -0
  899. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/region_overlay.py +0 -0
  900. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/screen_overlay.py +0 -0
  901. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/sensor_picker.py +0 -0
  902. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/splash.py +0 -0
  903. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/src/trcc/ui/qtgui/video_crop.py +0 -0
  904. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/__init__.py +0 -0
  905. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/adapters/system/test_elevate.py +0 -0
  906. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/adapters/system/test_windows_mem_disk.py +0 -0
  907. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/adapters/system/test_windows_permissions.py +0 -0
  908. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/adapters/system/test_windows_wmi_seam.py +0 -0
  909. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/conftest.py +0 -0
  910. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/mock_platform.py +0 -0
  911. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_api_routes.py +0 -0
  912. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_app_senders.py +0 -0
  913. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_architecture_boundaries.py +0 -0
  914. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_autostart.py +0 -0
  915. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_autostart_macos.py +0 -0
  916. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_autostart_windows.py +0 -0
  917. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_backend_finish.py +0 -0
  918. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_boot_animation_command.py +0 -0
  919. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_boot_animation_device.py +0 -0
  920. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_bulk_lcd_geometry.py +0 -0
  921. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_cli_commands.py +0 -0
  922. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_clock.py +0 -0
  923. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_cloud_themes.py +0 -0
  924. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_commands.py +0 -0
  925. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_connect_failure_hints.py +0 -0
  926. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_connection_issues.py +0 -0
  927. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_control_center.py +0 -0
  928. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_daemon.py +0 -0
  929. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_data_install.py +0 -0
  930. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_dc_codec.py +0 -0
  931. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_dc_reader.py +0 -0
  932. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_device_catalog_smoke.py +0 -0
  933. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_device_recovery.py +0 -0
  934. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_device_sender.py +0 -0
  935. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_device_surface_matrix.py +0 -0
  936. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_diagnostics.py +0 -0
  937. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_display_tweaks.py +0 -0
  938. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_first_run_and_migration.py +0 -0
  939. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_gpu_preference.py +0 -0
  940. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_gpu_reader_prompt.py +0 -0
  941. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_gui_empty_state.py +0 -0
  942. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_gui_entry_exit.py +0 -0
  943. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_gui_panels.py +0 -0
  944. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_gui_raise_existing.py +0 -0
  945. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_hid_lcd_geometry.py +0 -0
  946. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_hotplug.py +0 -0
  947. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_hotplug_bsd.py +0 -0
  948. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_hotplug_polling.py +0 -0
  949. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_hotplug_windows.py +0 -0
  950. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_i18n.py +0 -0
  951. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_integration_pipeline.py +0 -0
  952. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_ipc_server.py +0 -0
  953. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_ipc_windows_fallback.py +0 -0
  954. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_ipc_wire.py +0 -0
  955. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_lcd_panel_model.py +0 -0
  956. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_led_assets.py +0 -0
  957. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_led_display_model.py +0 -0
  958. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_led_effects.py +0 -0
  959. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_led_handler_requires_app.py +0 -0
  960. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_led_panel_model.py +0 -0
  961. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_led_pm_registry.py +0 -0
  962. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_led_remap.py +0 -0
  963. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_led_send.py +0 -0
  964. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_led_settings_commands.py +0 -0
  965. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_library_migration.py +0 -0
  966. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_ly_lcd_geometry.py +0 -0
  967. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_mask_commands.py +0 -0
  968. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_mask_rendering.py +0 -0
  969. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_metrics_personalize.py +0 -0
  970. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_mock_reply_override.py +0 -0
  971. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_models.py +0 -0
  972. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_orientation_cloud_background.py +0 -0
  973. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_orientation_reload.py +0 -0
  974. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_overlay_clock.py +0 -0
  975. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_overlay_grid_adapter.py +0 -0
  976. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_overlay_resolve.py +0 -0
  977. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_pyusb_find_seam.py +0 -0
  978. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_quickstart.py +0 -0
  979. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_run_setup_order.py +0 -0
  980. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_scsi_lcd_geometry.py +0 -0
  981. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_selinux_install.py +0 -0
  982. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_send_color.py +0 -0
  983. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_sensor_chain.py +0 -0
  984. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_sensors_bsd.py +0 -0
  985. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_sensors_lhm_subprocess.py +0 -0
  986. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_sensors_macos.py +0 -0
  987. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_sensors_nvml.py +0 -0
  988. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_sensors_windows.py +0 -0
  989. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_settings_migration.py +0 -0
  990. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_shell.py +0 -0
  991. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_system_commands.py +0 -0
  992. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_theme_persistence.py +0 -0
  993. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_theme_service.py +0 -0
  994. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_transports.py +0 -0
  995. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_udev.py +0 -0
  996. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_ui_surfaces_smoke.py +0 -0
  997. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_variant_presentation_audit.py +0 -0
  998. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_video_cache.py +0 -0
  999. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_video_playback.py +0 -0
  1000. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/test_wmi_gpu_fallback.py +0 -0
  1001. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/ui/presentation/test_device_presentation.py +0 -0
  1002. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/ui/presentation/test_lcd_presentation_model.py +0 -0
  1003. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/ui/presentation/test_led_metrics_format.py +0 -0
  1004. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/ui/presentation/test_led_zone_model.py +0 -0
  1005. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/ui/presentation/test_overlay_model.py +0 -0
  1006. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/ui/presentation/test_overlay_view_binding.py +0 -0
  1007. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/ui/presentation/test_preview_geometry.py +0 -0
  1008. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/ui/presentation/test_sensor_display.py +0 -0
  1009. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/ui/presentation/test_slideshow_model.py +0 -0
  1010. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/tests/ui/presentation/test_theme_directories.py +0 -0
  1011. {trcc_linux-9.7.6 → trcc_linux-9.7.7}/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.6
3
+ Version: 9.7.7
4
4
  Summary: Linux implementation of Thermalright LCD Control Center
5
5
  Project-URL: Homepage, https://github.com/Lexonight1/thermalright-trcc-linux
6
6
  Project-URL: Documentation, https://github.com/Lexonight1/thermalright-trcc-linux#readme
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "trcc-linux"
7
- version = "9.7.6"
7
+ version = "9.7.7"
8
8
  description = "Linux implementation of Thermalright LCD Control Center"
9
9
  readme = "README.md"
10
10
  license = "GPL-3.0-or-later"
@@ -136,6 +136,9 @@ artifacts = [
136
136
  "**/assets/**/*.service",
137
137
  "**/assets/**/*.policy",
138
138
  "**/assets/**/*.svg",
139
+ # Privileged MCHBAR timing reader (no extension) — distro packages install
140
+ # it to /usr/bin/trcc-imc; shipped here so it's in the sdist/wheel too.
141
+ "**/assets/trcc-imc",
139
142
  # SELinux policy source — `trcc system setup` builds + loads it on Fedora
140
143
  # so source/pip installs can pass the USB/SCSI ioctls (packages ship the
141
144
  # compiled .pp via the rpm).
@@ -1,4 +1,4 @@
1
1
  """TRCC Linux version information. History in doc/CHANGELOG.md."""
2
2
 
3
- __version__ = "9.7.6"
3
+ __version__ = "9.7.7"
4
4
  __version_info__ = tuple(int(x) for x in __version__.split("."))
@@ -29,6 +29,7 @@ from ...core.models import MIN_REFRESH_INTERVAL_S, SensorReading
29
29
  from ...core.ports import (
30
30
  CpuSource,
31
31
  DiskSource,
32
+ DramSource,
32
33
  FanSource,
33
34
  GpuSource,
34
35
  MemorySource,
@@ -36,8 +37,10 @@ from ...core.ports import (
36
37
  )
37
38
  from .hwmon import (
38
39
  HwmonCpu,
40
+ SpdClock,
39
41
  discover_amd_gpus,
40
42
  discover_disk_temp,
43
+ discover_dram_temp,
41
44
  discover_fans,
42
45
  discover_intel_gpus,
43
46
  find_cpu_temp_device,
@@ -73,6 +76,8 @@ def _memory_keys() -> list[tuple[str, str, str]]:
73
76
  ("memory:available", "memory", "MB"),
74
77
  ("memory:total", "memory", "MB"),
75
78
  ("memory:percent", "memory", "%"),
79
+ ("memory:temp", "temperature", "°C"),
80
+ ("memory:clock", "clock", "MHz"),
76
81
  ]
77
82
 
78
83
 
@@ -129,6 +134,8 @@ class BaselineSensors(SensorEnumerator):
129
134
  gpus: list[GpuSource] | None = None,
130
135
  fans: list[FanSource] | None = None,
131
136
  disks: list[DiskSource] | None = None,
137
+ dram: list[DramSource] | None = None,
138
+ spd_clock: SpdClock | None = None,
132
139
  thread_context: Callable[[], AbstractContextManager[None]]
133
140
  = nullcontext) -> None:
134
141
  self._cpu = cpu or PsutilCpu()
@@ -136,6 +143,8 @@ class BaselineSensors(SensorEnumerator):
136
143
  self._gpus: list[GpuSource] = gpus if gpus is not None else discover_nvidia_gpus()
137
144
  self._fans: list[FanSource] = fans or []
138
145
  self._disks: list[DiskSource] = disks or []
146
+ self._dram: list[DramSource] = dram or []
147
+ self._spd_clock = spd_clock
139
148
  # Per-thread OS setup the poll thread enters before touching OS
140
149
  # sensor APIs (Windows → COM apartment for WMI; others → no-op).
141
150
  # Injected as a narrow callable so this OS-neutral aggregator never
@@ -367,6 +376,20 @@ class BaselineSensors(SensorEnumerator):
367
376
  if disk_temps:
368
377
  _store(r, "disk:temp", max(disk_temps))
369
378
 
379
+ # DRAM temperature — one DramSource per DIMM; the model carries a single
380
+ # ``mem_temp`` slot, so collapse to the HOTTEST module, mirroring disk.
381
+ dram_temps = [
382
+ t for d in self._dram
383
+ if (t := self._read(d.temp, f"memory:{d.key}:temp")) is not None
384
+ ]
385
+ if dram_temps:
386
+ _store(r, "memory:temp", max(dram_temps))
387
+
388
+ # Memory channel clock — static SPD nameplate (cached at construction).
389
+ if self._spd_clock is not None:
390
+ _store(r, "memory:clock",
391
+ self._read(self._spd_clock.clock, "memory:clock"))
392
+
370
393
  # IO + time
371
394
  try:
372
395
  self._io.poll(r)
@@ -415,8 +438,12 @@ def build_linux_sensors() -> BaselineSensors:
415
438
  gpus.extend(discover_intel_gpus(hwmon_devices))
416
439
  fans = discover_fans(hwmon_devices)
417
440
  disks = discover_disk_temp(hwmon_devices)
418
- log.info("Linux sensors: cpu_temp=%s, gpus=%d, fans=%d, disks=%d",
441
+ dram = discover_dram_temp(hwmon_devices)
442
+ spd_clock = SpdClock()
443
+ log.info("Linux sensors: cpu_temp=%s, gpus=%d, fans=%d, disks=%d, dram=%d, "
444
+ "mem_clock=%s",
419
445
  "yes" if cpu.temp() is not None else "no",
420
- len(gpus), len(fans), len(disks))
446
+ len(gpus), len(fans), len(disks), len(dram), spd_clock.clock())
421
447
  return BaselineSensors(cpu=cpu, memory=PsutilMemory(),
422
- gpus=gpus, fans=fans, disks=disks)
448
+ gpus=gpus, fans=fans, disks=disks, dram=dram,
449
+ spd_clock=spd_clock)
@@ -24,7 +24,7 @@ import threading
24
24
  import time
25
25
  from pathlib import Path
26
26
 
27
- from ...core.ports import CpuSource, DiskSource, FanSource, GpuSource
27
+ from ...core.ports import CpuSource, DiskSource, DramSource, FanSource, GpuSource
28
28
  from .psutil_sources import PsutilCpu
29
29
 
30
30
  log = logging.getLogger(__name__)
@@ -505,3 +505,70 @@ def discover_disk_temp(devices: list[HwmonDevice]) -> list[DiskSource]:
505
505
  label = _read_text(dev.path / "temp1_label")
506
506
  disks.append(HwmonDisk(dev, label))
507
507
  return disks
508
+
509
+
510
+ # ── Memory (DRAM SPD-hub) temperature ────────────────────────────────
511
+
512
+ # hwmon drivers that expose a DIMM thermal sensor: DDR5 modules carry an
513
+ # integrated SPD-hub sensor (``spd5118``); DDR4 modules expose the optional
514
+ # JEDEC JC-42.4 thermal sensor (``jc42``). ``ee1004`` (the DDR4 SPD EEPROM)
515
+ # is deliberately excluded — it carries identity data, not a temperature.
516
+ _DRAM_DRIVERS = ("spd5118", "jc42")
517
+
518
+
519
+ class HwmonDram(DramSource):
520
+ """One DIMM's temp1 sensor on a hwmon ``spd5118`` / ``jc42`` node."""
521
+
522
+ def __init__(self, hwmon: HwmonDevice, label: str | None) -> None:
523
+ self._hwmon = hwmon
524
+ self._label = label or f"{hwmon.driver} DRAM"
525
+
526
+ @property
527
+ def key(self) -> str:
528
+ # Include the hwmon dir name: matched DIMMs share a driver, so a
529
+ # driver-only key would collide across modules (and conflate their
530
+ # per-source read-failure bookkeeping).
531
+ return f"hwmon:{self._hwmon.driver}:{self._hwmon.path.name}:temp1"
532
+
533
+ @property
534
+ def name(self) -> str:
535
+ return self._label
536
+
537
+ def temp(self) -> float | None:
538
+ return self._hwmon.read_temp(1)
539
+
540
+
541
+ def discover_dram_temp(devices: list[HwmonDevice]) -> list[DramSource]:
542
+ """One :class:`HwmonDram` per ``spd5118`` / ``jc42`` device with a temp1."""
543
+ log.info("discover_dram_temp: devices=%d", len(devices))
544
+ dram: list[DramSource] = []
545
+ for dev in devices:
546
+ if dev.driver not in _DRAM_DRIVERS:
547
+ continue
548
+ if dev.read_temp(1) is None:
549
+ log.debug("discover_dram_temp: %s has no temp1_input — skip", dev.driver)
550
+ continue
551
+ label = _read_text(dev.path / "temp1_label")
552
+ dram.append(HwmonDram(dev, label))
553
+ return dram
554
+
555
+
556
+ # ── Memory channel clock (DDR5 SPD, rootless one-shot) ───────────────
557
+
558
+
559
+ class SpdClock:
560
+ """Memory channel clock (MHz) decoded once from the DDR5 SPD EEPROM.
561
+
562
+ The clock is a static nameplate value, so it is read+decoded a single
563
+ time at construction and cached — ``clock()`` is then a cheap accessor the
564
+ aggregator can call every poll tick without touching sysfs.
565
+ """
566
+
567
+ def __init__(self) -> None:
568
+ from ..system.spd import read_spd_timings
569
+ timings = read_spd_timings()
570
+ self._mhz: float | None = float(timings.mhz) if timings else None
571
+ log.info("SpdClock: mhz=%s", self._mhz)
572
+
573
+ def clock(self) -> float | None:
574
+ return self._mhz
@@ -0,0 +1,71 @@
1
+ """Decode Intel (Alder/Raptor Lake) MCHBAR memory-timing registers — pure.
2
+
3
+ The privileged ``trcc-imc`` helper reads four raw MCHBAR registers as root and
4
+ prints them; this module turns those integers into cycle-count timings. No
5
+ I/O, no root, no OS calls — just bit math — so it is unit-testable with the
6
+ register values captured from real hardware.
7
+
8
+ Register map (channel 0; CoreFreq ``x86_64/intel_reg.h``):
9
+
10
+ BIOS_DDR @0x5E00 mult[7:0] → MT/s = mult * 100 * 2
11
+ TC_PRE @0xE000 tRP[7:0] tRAS[50:42] tRCD[58:51]
12
+ ODT @0xE070 tCL[22:16] tCWL[31:24]
13
+ REFRESH @0xE43C tREFI[17:0] tRFC[30:18]
14
+
15
+ ``tRC`` has no register — it is the standard ``tRAS + tRP``. The ``tRFC`` here
16
+ is the controller's live tRFC2 (2x fine-grained refresh), distinct from the
17
+ SPD tRFC1; callers decide which to display.
18
+ """
19
+ from __future__ import annotations
20
+
21
+ import logging
22
+ from dataclasses import dataclass
23
+
24
+ log = logging.getLogger(__name__)
25
+
26
+
27
+ @dataclass(frozen=True)
28
+ class ImcTimings:
29
+ """Live primary timings (cycle counts) read from the IMC."""
30
+
31
+ mts: int # effective data rate (MT/s)
32
+ tcas: int
33
+ tcwl: int
34
+ trcd: int
35
+ trp: int
36
+ tras: int
37
+ trc: int
38
+ trfc: int # tRFC2 (live refresh) — NOT the SPD tRFC1
39
+
40
+
41
+ def _bits(value: int, hi: int, lo: int) -> int:
42
+ return (value >> lo) & ((1 << (hi - lo + 1)) - 1)
43
+
44
+
45
+ def decode_adl(tc_pre: int, odt: int, refresh: int, bios_ddr: int) -> ImcTimings | None:
46
+ """Decode the four ADL/RPL MCHBAR registers, or ``None`` if implausible.
47
+
48
+ The range checks are the caller's defence-in-depth bounds check: a misread
49
+ register (wrong CPU map, garbage MCHBAR base) yields absurd values, which we
50
+ reject rather than show.
51
+ """
52
+ timings = ImcTimings(
53
+ mts=(bios_ddr & 0xFF) * 100 * 2,
54
+ tcas=_bits(odt, 22, 16),
55
+ tcwl=_bits(odt, 31, 24),
56
+ trcd=_bits(tc_pre, 58, 51),
57
+ trp=_bits(tc_pre, 7, 0),
58
+ tras=_bits(tc_pre, 50, 42),
59
+ trc=_bits(tc_pre, 50, 42) + _bits(tc_pre, 7, 0),
60
+ trfc=_bits(refresh, 30, 18),
61
+ )
62
+ if not (3200 <= timings.mts <= 8400
63
+ and 0 < timings.tcas < 128 and 0 < timings.trcd < 128
64
+ and 0 < timings.trp < 128 and 0 < timings.tras < 256
65
+ and 0 < timings.trfc < 4096):
66
+ log.warning("decode_adl: implausible timings %s — rejected", timings)
67
+ return None
68
+ log.info("decode_adl: %d MT/s %d-%d-%d-%d tRC=%d tRFC2=%d",
69
+ timings.mts, timings.tcas, timings.trcd, timings.trp,
70
+ timings.tras, timings.trc, timings.trfc)
71
+ return timings
@@ -16,9 +16,13 @@ import ctypes
16
16
  import logging
17
17
  import os
18
18
  from pathlib import Path
19
+ from typing import TYPE_CHECKING
19
20
 
20
21
  import usb.util
21
22
 
23
+ if TYPE_CHECKING:
24
+ from ._imc_timings import ImcTimings
25
+
22
26
  from ...core.errors import TransportError
23
27
  from ...core.models import DeviceInfo
24
28
  from ...core.ports import (
@@ -569,6 +573,11 @@ _DMI_MEMORY_FIELDS: frozenset[str] = frozenset({
569
573
 
570
574
  _POLKIT_POLICY = '/usr/share/polkit-1/actions/com.github.lexonight1.trcc.policy'
571
575
 
576
+ # Privileged MCHBAR reader (installed by the distro packages). Intel family-6
577
+ # Alder Lake (0x97/0x9A) + Raptor Lake (0xB7/0xBA/0xBF) share the register map.
578
+ _IMC_HELPER = '/usr/bin/trcc-imc'
579
+ _ADL_RPL_MODELS = frozenset({0x97, 0x9A, 0xB7, 0xBA, 0xBF})
580
+
572
581
 
573
582
  def _privileged_cmd(binary: str, args: list[str]) -> list[str]:
574
583
  """Build a command, wrapping in pkexec when polkit policy is installed."""
@@ -582,6 +591,131 @@ def _privileged_cmd(binary: str, args: list[str]) -> list[str]:
582
591
  return [binary, *args]
583
592
 
584
593
 
594
+ def _enrich_with_spd_timings(slots: list[dict[str, str]]) -> None:
595
+ """Add DDR5 SPD timings (tcas..trfc) to every slot, in place.
596
+
597
+ dmidecode does not expose CAS timings; the DDR5 SPD EEPROM does. Matched
598
+ DIMMs share timings, so one rootless SPD read covers the whole channel.
599
+ Failure (non-DDR5, no spd5118, permissions) leaves slots untouched → "NC".
600
+ """
601
+ if not slots:
602
+ return
603
+ from .spd import read_spd_timings
604
+ t = read_spd_timings()
605
+ if t is None:
606
+ log.info("_enrich_with_spd_timings: no DDR5 SPD timings available")
607
+ return
608
+ fields = {'tcas': t.tcas, 'trcd': t.trcd, 'trp': t.trp,
609
+ 'tras': t.tras, 'trc': t.trc, 'trfc': t.trfc}
610
+ log.info("_enrich_with_spd_timings: %s", fields)
611
+ for slot in slots:
612
+ for key, val in fields.items():
613
+ slot[key] = str(val)
614
+
615
+
616
+ # Sentinel so a failed/unsupported live read is cached too (timings are static
617
+ # per boot; PlatformFactory builds a fresh LinuxPlatform each call, so the cache
618
+ # lives at module scope, not on the instance).
619
+ _UNREAD: object = object()
620
+ _live_imc_cache: object = _UNREAD
621
+
622
+
623
+ def _cpu_is_adl_rpl() -> bool:
624
+ """Rootless: True iff /proc/cpuinfo is an Intel family-6 Alder/Raptor Lake."""
625
+ family = model = None
626
+ try:
627
+ with Path("/proc/cpuinfo").open() as f:
628
+ for line in f:
629
+ if line.startswith("vendor_id") and "GenuineIntel" not in line:
630
+ return False
631
+ if line.startswith("cpu family"):
632
+ family = int(line.split(":")[1])
633
+ elif line.startswith("model") and "name" not in line:
634
+ model = int(line.split(":")[1])
635
+ if line == "\n": # end of the first processor block
636
+ break
637
+ except (OSError, ValueError):
638
+ return False
639
+ return family == 6 and model in _ADL_RPL_MODELS
640
+
641
+
642
+ def _read_live_imc_timings() -> ImcTimings | None:
643
+ """Live IMC timings via the privileged ``trcc-imc`` helper, cached for life.
644
+
645
+ Silent by design: only spawns the helper when the polkit policy + helper are
646
+ installed (packaged installs) so it never prompts for a password. Any
647
+ failure (unsupported CPU, no policy, bad output) caches ``None`` so we never
648
+ re-spawn on the next ``memory_info()`` call.
649
+ """
650
+ global _live_imc_cache
651
+ if _live_imc_cache is not _UNREAD:
652
+ return _live_imc_cache # type: ignore[return-value]
653
+ _live_imc_cache = None # cache the negative result up front
654
+
655
+ if os.environ.get("TRCC_DISABLE_LIVE_IMC"):
656
+ return None
657
+ if not _cpu_is_adl_rpl() or not Path(_IMC_HELPER).is_file():
658
+ return None
659
+
660
+ import shutil
661
+ import subprocess
662
+ if hasattr(os, "geteuid") and os.geteuid() == 0:
663
+ cmd = [_IMC_HELPER]
664
+ elif Path(_POLKIT_POLICY).is_file() and shutil.which("pkexec"):
665
+ cmd = ["pkexec", _IMC_HELPER]
666
+ else:
667
+ return None # no silent privilege path available
668
+
669
+ try:
670
+ result = subprocess.run(cmd, capture_output=True, text=True,
671
+ timeout=5, check=False)
672
+ except (OSError, subprocess.SubprocessError) as e:
673
+ log.debug("_read_live_imc_timings: helper failed: %s", type(e).__name__)
674
+ return None
675
+ if result.returncode != 0:
676
+ log.info("_read_live_imc_timings: helper exit=%d", result.returncode)
677
+ return None
678
+
679
+ regs: dict[str, int] = {}
680
+ for token in result.stdout.split():
681
+ key, _, val = token.partition("=")
682
+ if key in ("tc_pre", "odt", "refresh", "bios_ddr"):
683
+ try:
684
+ regs[key] = int(val, 16)
685
+ except ValueError:
686
+ log.warning("_read_live_imc_timings: bad token %r", token)
687
+ return None
688
+ if len(regs) != 4:
689
+ log.warning("_read_live_imc_timings: incomplete helper output")
690
+ return None
691
+
692
+ from ._imc_timings import decode_adl
693
+ timings = decode_adl(regs["tc_pre"], regs["odt"],
694
+ regs["refresh"], regs["bios_ddr"])
695
+ _live_imc_cache = timings
696
+ return timings
697
+
698
+
699
+ def _enrich_with_live_imc_timings(slots: list[dict[str, str]]) -> None:
700
+ """Override the SPD timings with the live IMC values, in place.
701
+
702
+ Overrides tcas/trcd/trp/tras/trc; the SPD ``trfc`` (tRFC1) is kept — the live
703
+ register is tRFC2 (2x refresh), a different parameter, so overwriting it
704
+ would silently mislabel the panel. No live read → SPD values stand.
705
+ """
706
+ if not slots:
707
+ return
708
+ t = _read_live_imc_timings()
709
+ if t is None:
710
+ return
711
+ fields = {'tcas': t.tcas, 'trcd': t.trcd, 'trp': t.trp,
712
+ 'tras': t.tras, 'trc': t.trc}
713
+ log.info("_enrich_with_live_imc_timings: %s", fields)
714
+ for slot in slots:
715
+ for key, val in fields.items():
716
+ slot[key] = str(val)
717
+
718
+
585
719
  def _linux_memory_info() -> list[dict[str, str]]:
586
720
  """Get DRAM slot info via dmidecode; falls back to psutil for totals."""
587
721
  log.debug("_linux_memory_info: called")
@@ -611,6 +745,9 @@ def _linux_memory_info() -> list[dict[str, str]]:
611
745
  except (OSError, subprocess.SubprocessError) as e:
612
746
  log.debug("dmidecode -t memory failed: %s", type(e).__name__)
613
747
 
748
+ _enrich_with_spd_timings(slots)
749
+ _enrich_with_live_imc_timings(slots)
750
+
614
751
  if not slots:
615
752
  try:
616
753
  import psutil
@@ -0,0 +1,156 @@
1
+ """DDR5 SPD (Serial Presence Detect) block-0 decoder — pure, no root.
2
+
3
+ The DDR5 SPD-hub EEPROM is exposed by the kernel ``spd5118`` driver at
4
+ ``/sys/class/hwmon/hwmonN/device/eeprom`` (equivalently
5
+ ``/sys/bus/i2c/devices/<bus>-00<addr>/eeprom``). Reading the FULL 1024-byte
6
+ region fails with ``ENXIO`` on many boards (the SPD hub paginates), but the
7
+ first 128 bytes — JEDEC "block 0", which holds every base timing — read
8
+ reliably and **without root** (the sysfs attribute is world-readable).
9
+
10
+ This module reads only those 128 bytes and decodes the JEDEC base-profile
11
+ timings (JESD400-5). The values are the SPD-programmed JEDEC profile, NOT the
12
+ live XMP/EXPO timings the memory controller may actually run — Linux has no
13
+ HWiNFO-equivalent live IMC read, so the SPD profile is the best rootless source.
14
+
15
+ Byte map (DDR5, JESD400-5; all 16-bit little-endian):
16
+
17
+ 2 DRAM type (0x12 = DDR5)
18
+ 20-21 tCKAVGmin (picoseconds) → clock / data rate
19
+ 30-31 tAAmin (tCAS) (picoseconds)
20
+ 32-33 tRCDmin (picoseconds)
21
+ 34-35 tRPmin (picoseconds)
22
+ 36-37 tRASmin (picoseconds)
23
+ 38-39 tRCmin (picoseconds)
24
+ 42-43 tRFC1min (NANOSECONDS — note the unit differs from the above)
25
+ """
26
+ from __future__ import annotations
27
+
28
+ import logging
29
+ from dataclasses import dataclass
30
+ from pathlib import Path
31
+
32
+ log = logging.getLogger(__name__)
33
+
34
+ _BLOCK0_LEN = 128
35
+ _DDR5_TYPE = 0x12
36
+
37
+ # Glob roots for the spd5118 SPD-hub EEPROM (both views point at one inode).
38
+ _I2C_ROOT = Path("/sys/bus/i2c/devices")
39
+ _HWMON_ROOT = Path("/sys/class/hwmon")
40
+
41
+
42
+ @dataclass(frozen=True)
43
+ class SpdTimings:
44
+ """Decoded DDR5 base-profile speed + primary timings (cycle counts)."""
45
+
46
+ dram_type: str
47
+ mhz: int # channel clock (MHz)
48
+ mts: int # effective data rate (MT/s)
49
+ tcas: int
50
+ trcd: int
51
+ trp: int
52
+ tras: int
53
+ trc: int
54
+ trfc: int
55
+
56
+
57
+ def discover_spd_eeprom_paths() -> list[Path]:
58
+ """Existing SPD-hub ``eeprom`` files, de-duplicated by resolved target.
59
+
60
+ Matched DIMMs share identical timings, so callers may decode ``[0]``.
61
+ """
62
+ log.info("discover_spd_eeprom_paths: scanning")
63
+ candidates: list[Path] = []
64
+ candidates.extend(_I2C_ROOT.glob("*-005[0-9a-f]/eeprom"))
65
+ candidates.extend(_HWMON_ROOT.glob("hwmon*/device/eeprom"))
66
+ seen: set[Path] = set()
67
+ paths: list[Path] = []
68
+ for c in candidates:
69
+ if not c.is_file():
70
+ continue
71
+ try:
72
+ target = c.resolve()
73
+ except OSError:
74
+ target = c
75
+ if target in seen:
76
+ continue
77
+ seen.add(target)
78
+ paths.append(c)
79
+ log.info("discover_spd_eeprom_paths: %d eeprom(s)", len(paths))
80
+ return paths
81
+
82
+
83
+ def read_spd_block0(path: Path) -> bytes | None:
84
+ """Read EXACTLY the first 128 bytes of an SPD EEPROM, or ``None``.
85
+
86
+ Never reads the whole file — a full read triggers ``ENXIO`` on paginated
87
+ SPD hubs. Returns ``None`` on any I/O error or a short read.
88
+ """
89
+ try:
90
+ with path.open("rb", buffering=0) as f:
91
+ f.seek(0)
92
+ raw = f.read(_BLOCK0_LEN)
93
+ except OSError as e:
94
+ log.debug("read_spd_block0: %s unreadable (%s)", path, type(e).__name__)
95
+ return None
96
+ if len(raw) < _BLOCK0_LEN:
97
+ log.debug("read_spd_block0: %s short read (%d bytes)", path, len(raw))
98
+ return None
99
+ return raw
100
+
101
+
102
+ def _u16(raw: bytes, off: int) -> int:
103
+ """16-bit little-endian value at ``off``."""
104
+ return raw[off] | (raw[off + 1] << 8)
105
+
106
+
107
+ def decode_block0(raw: bytes) -> SpdTimings | None:
108
+ """Decode DDR5 block-0 timings, or ``None`` for non-DDR5 / short input.
109
+
110
+ Timings are picosecond values divided by the cycle time and rounded to the
111
+ nearest whole cycle — round-to-nearest is robust against the ±1 ps
112
+ quantisation of the stored ``tCKAVGmin`` (a plain ``ceil`` would report
113
+ CL41 where the JEDEC profile is CL40).
114
+ """
115
+ if len(raw) < _BLOCK0_LEN:
116
+ log.debug("decode_block0: short input (%d bytes)", len(raw))
117
+ return None
118
+ if raw[2] != _DDR5_TYPE:
119
+ # DDR4 (ee1004) uses a different byte map — not decoded yet.
120
+ log.debug("decode_block0: dram type 0x%02x not DDR5 — skipped", raw[2])
121
+ return None
122
+
123
+ tck = _u16(raw, 20)
124
+ if tck <= 0:
125
+ log.warning("decode_block0: invalid tCKAVGmin=%d", tck)
126
+ return None
127
+
128
+ def cycles_from_ps(off: int) -> int:
129
+ return round(_u16(raw, off) / tck)
130
+
131
+ timings = SpdTimings(
132
+ dram_type="DDR5",
133
+ mhz=round(1_000_000 / tck),
134
+ mts=round(2_000_000 / tck),
135
+ tcas=cycles_from_ps(30),
136
+ trcd=cycles_from_ps(32),
137
+ trp=cycles_from_ps(34),
138
+ tras=cycles_from_ps(36),
139
+ trc=cycles_from_ps(38),
140
+ # tRFC1 (byte 42) is stored in NANOSECONDS, unlike the ps fields above.
141
+ trfc=round(_u16(raw, 42) * 1000 / tck),
142
+ )
143
+ log.info("decode_block0: DDR5 %d MT/s %d-%d-%d-%d tRC=%d tRFC=%d",
144
+ timings.mts, timings.tcas, timings.trcd, timings.trp,
145
+ timings.tras, timings.trc, timings.trfc)
146
+ return timings
147
+
148
+
149
+ def read_spd_timings() -> SpdTimings | None:
150
+ """Decode the first discoverable DDR5 SPD EEPROM, or ``None``."""
151
+ for path in discover_spd_eeprom_paths():
152
+ if (raw := read_spd_block0(path)) is not None:
153
+ if (decoded := decode_block0(raw)) is not None:
154
+ return decoded
155
+ log.info("read_spd_timings: no decodable DDR5 SPD found")
156
+ return None
@@ -34,6 +34,7 @@ from .core.events import (
34
34
  OverlayChanged,
35
35
  SensorsUpdated,
36
36
  SplitModeChanged,
37
+ SystemResumed,
37
38
  TempUnitChanged,
38
39
  TimeFormatChanged,
39
40
  VideoStarted,
@@ -213,6 +214,15 @@ class App:
213
214
  # an active theme/mask stayed pinned to the landscape dir. Core-level so
214
215
  # CLI / API / GUI / daemon all benefit.
215
216
  self.events.subscribe(OrientationChanged, self._on_orientation_changed)
217
+ # Resume-from-suspend: the USB transport a device opened before the
218
+ # machine slept is stale on wake — writes silently no-op (or the
219
+ # consecutive-failure recovery never trips), so the panel stays blank
220
+ # until a manual restart (#189). Reconnect every attached device on
221
+ # ``SystemResumed`` (published by the logind PrepareForSleep listener);
222
+ # ConnectDevice reopens the transport and emits DeviceConnected, after
223
+ # which the metrics / LED-animation loops and render observers resume on
224
+ # their own. Core-level so the daemon, GUI and CLI all recover.
225
+ self.events.subscribe(SystemResumed, self._on_system_resumed)
216
226
  # Hotplug listener — caller (daemon, GUI launcher, tests) decides
217
227
  # whether to ``start_hotplug``. In-process CLI scripts that
218
228
  # only do one Command don't need it; the daemon and GUI do.
@@ -247,6 +257,36 @@ class App:
247
257
  from .core.commands import ConnectDevice
248
258
  self.dispatch(ConnectDevice(key=event.key))
249
259
 
260
+ def _on_system_resumed(self, _event: Any) -> None:
261
+ """``SystemResumed`` → reconnect every attached device after wake.
262
+
263
+ Runs on the power-listener thread — the same off-main-thread pattern
264
+ ``_on_device_attached`` uses to dispatch ``ConnectDevice``. The device
265
+ is already in ``self.devices`` with a STALE transport, so we rebuild it
266
+ like a replug: stop the old send worker (it is bound to the dead device),
267
+ release the stale transport, then ``ConnectDevice`` re-attaches a fresh
268
+ device + transport, re-handshakes, starts a new sender and emits
269
+ ``DeviceConnected``. We deliberately do NOT ``detach`` — that would drop
270
+ the active theme / LED runtime and the panel would come back blank;
271
+ keeping them lets the metrics / LED-animation loops and render observers
272
+ repaint the same content on the next tick. So both the LED segment
273
+ displays and the LCD panels recover without a manual restart (#189).
274
+ """
275
+ from .core.commands import ConnectDevice
276
+ keys = list(self.devices)
277
+ log.info("_on_system_resumed: reconnecting %d device(s) after wake", len(keys))
278
+ for key in keys:
279
+ old = self.devices.get(key)
280
+ log.info("_on_system_resumed: %s — stale transport after suspend, "
281
+ "stop sender + reopen", key)
282
+ self.stop_sender(key)
283
+ if old is not None:
284
+ try:
285
+ old.disconnect()
286
+ except Exception:
287
+ log.exception("_on_system_resumed: disconnect %s raised", key)
288
+ self.dispatch(ConnectDevice(key=key))
289
+
250
290
  def _on_orientation_changed(self, event: Any) -> None:
251
291
  """``OrientationChanged`` → reload the active theme + mask from the
252
292
  orientation-keyed resolution dir.
@@ -29,4 +29,16 @@
29
29
  <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/smartctl</annotate>
30
30
  <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
31
31
  </action>
32
+
33
+ <action id="com.github.lexonight1.trcc.imc">
34
+ <description>Read memory-controller timings (IMC/MCHBAR)</description>
35
+ <message>TRCC needs to read memory-controller timings.</message>
36
+ <defaults>
37
+ <allow_any>auth_admin_keep</allow_any>
38
+ <allow_inactive>auth_admin_keep</allow_inactive>
39
+ <allow_active>yes</allow_active>
40
+ </defaults>
41
+ <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/trcc-imc</annotate>
42
+ <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
43
+ </action>
32
44
  </policyconfig>