From 5e48f8918683314fdb120252f9f53ff068fed7dd Mon Sep 17 00:00:00 2001 From: Matthieu Houdebine Date: Sun, 21 Jul 2024 13:46:22 +0200 Subject: [PATCH 1/5] Do not monitor hardware sensors that are not used by the theme --- library/scheduler.py | 2 ++ res/themes/default.yaml | 22 +++++++++++----------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/library/scheduler.py b/library/scheduler.py index c36812f6..ea61c01e 100644 --- a/library/scheduler.py +++ b/library/scheduler.py @@ -69,6 +69,8 @@ def wrap( **kwargs ): """ Wrapper to create our schedule and run it at the appropriate time """ + if interval == 0: + return scheduler = sched.scheduler(time.time, time.sleep) periodic(scheduler, interval, func) scheduler.run() diff --git a/res/themes/default.yaml b/res/themes/default.yaml index 1e1d2d5f..28b1f186 100644 --- a/res/themes/default.yaml +++ b/res/themes/default.yaml @@ -3,7 +3,7 @@ STATS: CPU: PERCENTAGE: - INTERVAL: 100 + INTERVAL: 0 TEXT: SHOW: False GRAPH: @@ -13,7 +13,7 @@ STATS: LINE_GRAPH: SHOW: False FREQUENCY: - INTERVAL: 100 + INTERVAL: 0 TEXT: SHOW: False GRAPH: @@ -23,7 +23,7 @@ STATS: LINE_GRAPH: SHOW: False LOAD: - INTERVAL: 100 + INTERVAL: 0 ONE: TEXT: SHOW: False @@ -34,7 +34,7 @@ STATS: TEXT: SHOW: False TEMPERATURE: - INTERVAL: 100 + INTERVAL: 0 TEXT: SHOW: False GRAPH: @@ -44,7 +44,7 @@ STATS: LINE_GRAPH: SHOW: False FAN_SPEED: - INTERVAL: 100 + INTERVAL: 0 TEXT: SHOW: False GRAPH: @@ -54,7 +54,7 @@ STATS: LINE_GRAPH: SHOW: False GPU: - INTERVAL: 100 + INTERVAL: 0 PERCENTAGE: GRAPH: SHOW: False @@ -120,7 +120,7 @@ STATS: LINE_GRAPH: SHOW: False MEMORY: - INTERVAL: 100 + INTERVAL: 0 SWAP: GRAPH: SHOW: False @@ -144,7 +144,7 @@ STATS: PERCENT_TEXT: SHOW: False DISK: - INTERVAL: 100 + INTERVAL: 0 USED: GRAPH: SHOW: False @@ -163,7 +163,7 @@ STATS: TEXT: SHOW: False NET: - INTERVAL: 100 + INTERVAL: 0 WLO: UPLOAD: TEXT: @@ -199,7 +199,7 @@ STATS: TEXT: SHOW: False DATE: - INTERVAL: 100 + INTERVAL: 0 DAY: TEXT: SHOW: False @@ -207,4 +207,4 @@ STATS: TEXT: SHOW: False CUSTOM: - INTERVAL: 100 + INTERVAL: 0 From 93215fc25e3f6a8abf45c5435c18876c11e2709a Mon Sep 17 00:00:00 2001 From: Matthieu Houdebine Date: Sun, 21 Jul 2024 14:03:59 +0200 Subject: [PATCH 2/5] Theme editor: do not display sensors if refresh interval is 0 --- theme-editor.py | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/theme-editor.py b/theme-editor.py index 944ee4bc..3e6474a7 100755 --- a/theme-editor.py +++ b/theme-editor.py @@ -101,17 +101,28 @@ def refresh_theme(): # Display all data on screen once import library.stats as stats - stats.CPU.percentage() - stats.CPU.frequency() - stats.CPU.load() - stats.CPU.temperature() - stats.CPU.fan_speed() - stats.Gpu.stats() - stats.Memory.stats() - stats.Disk.stats() - stats.Net.stats() - stats.Date.stats() - stats.Custom.stats() + if config.THEME_DATA['STATS']['CPU']['PERCENTAGE'].get("INTERVAL", 0) > 0: + stats.CPU.percentage() + if config.THEME_DATA['STATS']['CPU']['FREQUENCY'].get("INTERVAL", 0) > 0: + stats.CPU.frequency() + if config.THEME_DATA['STATS']['CPU']['LOAD'].get("INTERVAL", 0) > 0: + stats.CPU.load() + if config.THEME_DATA['STATS']['CPU']['TEMPERATURE'].get("INTERVAL", 0) > 0: + stats.CPU.temperature() + if config.THEME_DATA['STATS']['CPU']['FAN_SPEED'].get("INTERVAL", 0) > 0: + stats.CPU.fan_speed() + if config.THEME_DATA['STATS']['GPU'].get("INTERVAL", 0) > 0: + stats.Gpu.stats() + if config.THEME_DATA['STATS']['MEMORY'].get("INTERVAL", 0) > 0: + stats.Memory.stats() + if config.THEME_DATA['STATS']['DISK'].get("INTERVAL", 0) > 0: + stats.Disk.stats() + if config.THEME_DATA['STATS']['NET'].get("INTERVAL", 0) > 0: + stats.Net.stats() + if config.THEME_DATA['STATS']['DATE'].get("INTERVAL", 0) > 0: + stats.Date.stats() + if config.THEME_DATA['STATS']['CUSTOM'].get("INTERVAL", 0) > 0: + stats.Custom.stats() if __name__ == "__main__": From cdc9c0f086ce9d4c7e1557facdd4bbf176d7eac3 Mon Sep 17 00:00:00 2001 From: Matthieu Houdebine Date: Sun, 21 Jul 2024 14:04:49 +0200 Subject: [PATCH 3/5] If no interval is set, default is 0 (do not resfresh sensors) --- library/scheduler.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/library/scheduler.py b/library/scheduler.py index ea61c01e..455742e6 100644 --- a/library/scheduler.py +++ b/library/scheduler.py @@ -81,7 +81,7 @@ def wrap( @async_job("CPU_Percentage") -@schedule(timedelta(seconds=config.THEME_DATA['STATS']['CPU']['PERCENTAGE'].get("INTERVAL", None)).total_seconds()) +@schedule(timedelta(seconds=config.THEME_DATA['STATS']['CPU']['PERCENTAGE'].get("INTERVAL", 0)).total_seconds()) def CPUPercentage(): """ Refresh the CPU Percentage """ # logger.debug("Refresh CPU Percentage") @@ -89,7 +89,7 @@ def CPUPercentage(): @async_job("CPU_Frequency") -@schedule(timedelta(seconds=config.THEME_DATA['STATS']['CPU']['FREQUENCY'].get("INTERVAL", None)).total_seconds()) +@schedule(timedelta(seconds=config.THEME_DATA['STATS']['CPU']['FREQUENCY'].get("INTERVAL", 0)).total_seconds()) def CPUFrequency(): """ Refresh the CPU Frequency """ # logger.debug("Refresh CPU Frequency") @@ -97,7 +97,7 @@ def CPUFrequency(): @async_job("CPU_Load") -@schedule(timedelta(seconds=config.THEME_DATA['STATS']['CPU']['LOAD'].get("INTERVAL", None)).total_seconds()) +@schedule(timedelta(seconds=config.THEME_DATA['STATS']['CPU']['LOAD'].get("INTERVAL", 0)).total_seconds()) def CPULoad(): """ Refresh the CPU Load """ # logger.debug("Refresh CPU Load") @@ -105,7 +105,7 @@ def CPULoad(): @async_job("CPU_Load") -@schedule(timedelta(seconds=config.THEME_DATA['STATS']['CPU']['TEMPERATURE'].get("INTERVAL", None)).total_seconds()) +@schedule(timedelta(seconds=config.THEME_DATA['STATS']['CPU']['TEMPERATURE'].get("INTERVAL", 0)).total_seconds()) def CPUTemperature(): """ Refresh the CPU Temperature """ # logger.debug("Refresh CPU Temperature") @@ -113,7 +113,7 @@ def CPUTemperature(): @async_job("CPU_FanSpeed") -@schedule(timedelta(seconds=config.THEME_DATA['STATS']['CPU']['FAN_SPEED'].get("INTERVAL", None)).total_seconds()) +@schedule(timedelta(seconds=config.THEME_DATA['STATS']['CPU']['FAN_SPEED'].get("INTERVAL", 0)).total_seconds()) def CPUFanSpeed(): """ Refresh the CPU Fan Speed """ # logger.debug("Refresh CPU Fan Speed") @@ -121,7 +121,7 @@ def CPUFanSpeed(): @async_job("GPU_Stats") -@schedule(timedelta(seconds=config.THEME_DATA['STATS']['GPU'].get("INTERVAL", None)).total_seconds()) +@schedule(timedelta(seconds=config.THEME_DATA['STATS']['GPU'].get("INTERVAL", 0)).total_seconds()) def GpuStats(): """ Refresh the GPU Stats """ # logger.debug("Refresh GPU Stats") @@ -129,35 +129,35 @@ def GpuStats(): @async_job("Memory_Stats") -@schedule(timedelta(seconds=config.THEME_DATA['STATS']['MEMORY'].get("INTERVAL", None)).total_seconds()) +@schedule(timedelta(seconds=config.THEME_DATA['STATS']['MEMORY'].get("INTERVAL", 0)).total_seconds()) def MemoryStats(): # logger.debug("Refresh memory stats") stats.Memory.stats() @async_job("Disk_Stats") -@schedule(timedelta(seconds=config.THEME_DATA['STATS']['DISK'].get("INTERVAL", None)).total_seconds()) +@schedule(timedelta(seconds=config.THEME_DATA['STATS']['DISK'].get("INTERVAL", 0)).total_seconds()) def DiskStats(): # logger.debug("Refresh disk stats") stats.Disk.stats() @async_job("Net_Stats") -@schedule(timedelta(seconds=config.THEME_DATA['STATS']['NET'].get("INTERVAL", None)).total_seconds()) +@schedule(timedelta(seconds=config.THEME_DATA['STATS']['NET'].get("INTERVAL", 0)).total_seconds()) def NetStats(): # logger.debug("Refresh net stats") stats.Net.stats() @async_job("Date_Stats") -@schedule(timedelta(seconds=config.THEME_DATA['STATS']['DATE'].get("INTERVAL", None)).total_seconds()) +@schedule(timedelta(seconds=config.THEME_DATA['STATS']['DATE'].get("INTERVAL", 0)).total_seconds()) def DateStats(): # logger.debug("Refresh date stats") stats.Date.stats() @async_job("Custom_Stats") -@schedule(timedelta(seconds=config.THEME_DATA['STATS']['CUSTOM'].get("INTERVAL", None)).total_seconds()) +@schedule(timedelta(seconds=config.THEME_DATA['STATS']['CUSTOM'].get("INTERVAL", 0)).total_seconds()) def CustomStats(): # print("Refresh custom stats") stats.Custom.stats() From 2c7dbd202953a1008a64784b438a7b2569b075e6 Mon Sep 17 00:00:00 2001 From: Matthieu Houdebine Date: Sun, 21 Jul 2024 14:05:30 +0200 Subject: [PATCH 4/5] Add missing INTERVAL for CPU fan speed --- res/themes/Cyberdeck/theme.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/res/themes/Cyberdeck/theme.yaml b/res/themes/Cyberdeck/theme.yaml index bd57730a..31bb3ec1 100644 --- a/res/themes/Cyberdeck/theme.yaml +++ b/res/themes/Cyberdeck/theme.yaml @@ -57,6 +57,7 @@ STATS: # BACKGROUND_COLOR: 132, 154, 165 BACKGROUND_IMAGE: background.png FAN_SPEED: + INTERVAL: 5 RADIAL: SHOW: True X: 170 From 99eac93875a904a6f753aa0698fcb1619c5f5c2c Mon Sep 17 00:00:00 2001 From: Matthieu Houdebine Date: Sun, 21 Jul 2024 14:10:29 +0200 Subject: [PATCH 5/5] Add note about GPU refresh interval --- res/themes/theme_example.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/res/themes/theme_example.yaml b/res/themes/theme_example.yaml index 2e298484..c9b14040 100644 --- a/res/themes/theme_example.yaml +++ b/res/themes/theme_example.yaml @@ -423,6 +423,7 @@ STATS: # In seconds. Longer intervals cause this to refresh more slowly. # Setting to lower values will display near real time data, # but may cause significant CPU usage or the display not to update properly + # Note: refresh interval is common to all GPU sensors INTERVAL: 1 PERCENTAGE: GRAPH: