Turing Smart Screen Python Versions Save

Unofficial Python system monitor and library for small IPS USB-C displays like Turing Smart Screen or XuanFang

3.4.0

2 months ago

New feature: line graphs!

Thanks to @hicwic's PR #371 the System Monitor program now supports line graphs! image

The line graph feature has been added to many metrics like: CPU/GPU/Disk/Memory usage, temperature, CPU Fan speed, FPS... Check https://github.com/mathoudebine/turing-smart-screen-python/blob/main/res/themes/theme_example.yaml and look for LINE_GRAPH key:

      LINE_GRAPH:
        SHOW: False
        X: 300
        Y: 220
        WIDTH: 133
        HEIGHT: 70
        MIN_VALUE: 0
        MAX_VALUE: 100
        HISTORY_SIZE: 10
        AUTOSCALE: False
        LINE_COLOR: 61, 184, 225
        AXIS: True
        AXIS_COLOR: 255, 135, 0
        # BACKGROUND_COLOR: 0, 0, 0
        BACKGROUND_IMAGE: background.png

The history size (number of previous values displayed on the graph) can be adjusted for its data. With AUTOSCALE: True the line graph Y axis will constantly adjust to the min/max displayed values, otherwise set MIN_VALUE/ MAX_VALUE for a static Y axis Graph axis can be show or hidden with AXIS: True / False and set to a specific color with AXIS_COLOR (default to the LINE_COLOR if not set)

New themes:

This release comes with 2 new themes that use the line graph functionality:

Cyberdeck theme (3.5 inch)

@hicwic released the theme he made for his Cyberdeck project

Check this discussion #374 for more details and final prototype! 282247624-9716c07c-f939-45af-8369-f067f6df4e11

Task Manager theme (5 inch)

This theme takes full advantage of the line graph feature, and is inspired by the (in)famous Windows Task Manager theme_taskmanager5inch

Other fixes

This release also contain the following fixes:

  • System Monitor: Workaround for models failing to display their previous content after being turned off/on #427 (fixes #419)
  • Theme Editor: only refresh theme if theme file still exists (fix for vim text editor) #428 (fixes #401)
  • System Monitor: Custom stats not displayed if numeric value is zero #444 (fixes #442)
  • System Monitor: Better error message when missing ImageTk dependency #443
  • System Monitor: Do not use psutil virtual_memory used/free: not reliable. Use total/available instead #462 (fixes #450)
  • System Monitor: User proper conversion for Memory values (power of 1024 instead of power of 1000) #463 (fixes #449 partially)
  • System Monitor: Fix LibreHardwareMonitor computation for swap/pagefile usage in case no swap/pagefile defined #391 (fixes #390)

What's Changed

New Contributors

Full Changelog: https://github.com/mathoudebine/turing-smart-screen-python/compare/3.3.4...3.4.0

3.3.4

6 months ago

What's Changed

Full Changelog: https://github.com/mathoudebine/turing-smart-screen-python/compare/3.3.3...3.3.4

3.3.3

7 months ago

Custom data sources

Following this feature request #306, it is now possible to easily add custom data sources to this project (unsupported hardware sensors, sound from music players, web API data...) and display them on themes like other sensors.

For this, a Python CustomDataSource class must be implemented in library/sensors/sensors_custom.py. This class can have numeric and/or text data to display. There is no limitation on how much custom data source classes can be added! Two examples have already been implemented in the file with comments to help you get started.

To display these custom data sources to a theme, they must be added to a new CUSTOM: field in the theme.yaml file of your theme. The name of the class in theme.yaml must be an exact match to the class name in sensors_custom.py A theme has been developed to match example classes from sensors_custom.py : res/themes/CustomDataExample/theme.yaml

Theme authors

I'm very thankful to the community for sharing their themes either using the Themes discussion space or as PR to this repository. The author name has now been added as a new field to theme files, and is displayed on the Configuration Wizard below theme preview. If the author name starts with @ it will be displayed as a hyperlink to the author's GitHub profile. Existing themes on this repository have already been updated with their original author name!

What's Changed

Full Changelog: https://github.com/mathoudebine/turing-smart-screen-python/compare/3.3.2...3.3.3

3.3.2

7 months ago

Regression for Turing 3.5 / rev. A display now fixed

Since release 3.3.0, there was a regression for Turing Smart Screen 3.5 / rev. A display in landscape mode. It has been fixed in this release.

What's Changed

Full Changelog: https://github.com/mathoudebine/turing-smart-screen-python/compare/3.3.1...3.3.2

3.3.1

7 months ago

FPS framerate

This release adds support for displaying FPS framerate on System Monitor!

Please note it only works for Windows platforms for now, requires administrator rights, and is limited to AMD GPUs This is a limitation from LibreHardwareMonitor and GPU manufacturers

Example for a modified LandscapeEarth theme: image

Check theme_example.yaml:276 to add this to your theme!

RAM total

Thanks to @majormer a new meter is available for RAM virtual memory total capacity

Check theme_example.yaml:380 to add this to your theme!

What's Changed

New Contributors

Full Changelog: https://github.com/mathoudebine/turing-smart-screen-python/compare/3.3.0...3.3.1

3.3.0

7 months ago

Kipye Qiye 3.5" support

After the "UsbPCMonitor" 3.5" & 5" support in the previous 3.2.0 release, it is now the turn of the quite rare Kipye Qiye 3.5" smart display to be supported by this project!

This new screen is identified as "revision D" in the code & configuration files, and is available for selection in the configuration wizard.

image

As its resolution of 320x480 is the same as other 3.5" smart screens like Turing or XuanFang, all existing 3.5" themes can be used on this product.

BREAKING CHANGE - text anchor when using this project as a library

An important change in this release may break your layout if you use this project as a library to control a smart screen from your own code. This change has been introduced in #313 to fix a previous behavior related to text display with the DisplayText() method.

Before the fix, we used to compute the empty "margins" around a drawn text via a call to textbbox at the (0,0) position, and subtract them to the drawn text's location. This behavior is incorrect: when drawing text, we don't want it to jump up and down depending on the max. character height. The correct behavior is to rather use the anchor parameter of the textbox() function set to a default value like "la" (left-ascender) or None which default to "la" By fixing this in the current release, you may find your text fields moved down a bit on your screen. You can fix your text location on the screen by either using the "lt" anchor in your calls to the DisplayText() method (not recommended) or simply update the x/y coordinates of the text fields manually.

NOTE: System Monitor main program is not impacted by this fix, no change for existing themes

What's Changed

Full Changelog: https://github.com/mathoudebine/turing-smart-screen-python/compare/3.2.0...3.3.0

3.2.0

8 months ago

UsbPCMonitor 3.5" & 5" support

This release comes with support for "UsbPCMonitor" 3.5" & 5"smart screen models

These smart screens do not have any manufacturer/model name to identify them, other than their specific Windows software named UsbPCMonitor.exe Since they use the same serial protocol as the Turing 3.5 (rev. A) displays, they are now supported un this project.

Reworked configuration wizard

The configuration wizard has been reworked to ask for display information before theme selection. This way the displayed themes will match the entered display size.

Configuration wizard

What's Changed

New Contributors

Full Changelog: https://github.com/mathoudebine/turing-smart-screen-python/compare/3.1.0...3.2.0

3.1.0

9 months ago

Radial progress bars

Radial progress bars are now available in System Monitor themes (thanks @arthurferrai), check the LandscapeMagicBlue theme for examples! LandscapeMagicBlue theme

What's Changed

New Contributors

Full Changelog: https://github.com/mathoudebine/turing-smart-screen-python/compare/3.0.0...3.1.0

3.0.0

11 months ago

This release comes with Turing 5" displays support! Many thanks to @alexwbaule @arthurferrai @MrFr1day and everyone that contributed in issues #81 and #90 Please note there is only basic support for now: no video or storage.

Documentation, Theme Editor, Configuration Wizard and Github workflows have been updated to handle 5" devices as well.
This release comes without any breaking changes for 3.5" devices.

Configuration Wizard

In the configuration Wizard, you can now select Turing 5" as your smart screen model.

Themes

Because the display resolution is different for 3.5" displays (320x480) and 5" displays (800x480), themes made previously for 3.5" displays cannot be used on 5" displays.
New 5" themes have been developed and packaged in this release:

When you select Turing 5" in the Configuration Wizard, the theme list is automatically updated to display only compatible themes.

theme.yaml

To create a theme for 5" devices, the format is the same as the 3.5" themes. You can do it manually or using the Theme Editor.
The only property to add to your theme.yaml is:

display:
  DISPLAY_SIZE: 5"

If this property is not in the theme file (to keep compatibility with old/community themes) or if its value is different than 5" then the theme will be for 3.5 displays.

What's Changed

New Contributors

Full Changelog: https://github.com/mathoudebine/turing-smart-screen-python/compare/2.4.3...3.0.0

2.4.3

11 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/mathoudebine/turing-smart-screen-python/compare/2.4.2...2.4.3