{"id":17044777,"url":"https://github.com/keredson/ledtop","last_synced_at":"2025-04-12T15:20:51.694Z","repository":{"id":62575481,"uuid":"429583268","full_name":"keredson/ledtop","owner":"keredson","description":null,"archived":false,"fork":false,"pushed_at":"2021-12-08T20:49:16.000Z","size":12767,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-11T05:46:25.305Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/keredson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-18T21:21:27.000Z","updated_at":"2025-01-17T07:35:57.000Z","dependencies_parsed_at":"2022-11-03T18:55:48.553Z","dependency_job_id":null,"html_url":"https://github.com/keredson/ledtop","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keredson%2Fledtop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keredson%2Fledtop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keredson%2Fledtop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keredson%2Fledtop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keredson","download_url":"https://codeload.github.com/keredson/ledtop/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248586217,"owners_count":21128998,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T09:35:28.975Z","updated_at":"2025-04-12T15:20:51.674Z","avatar_url":"https://github.com/keredson.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ledtop\n\nLike `htop` (CPU and memory usage), but for your case LEDs. 😄\n\n![Demo](https://github.com/keredson/ledtop/raw/main/demo.gif)\n\nIn this setup, memory is the left strip, CPU is the right strip.\n\n## Install\n\n1. Install [OpenRGB](https://openrgb.org/).\n2. Run: `$ pip install ledtop`\n\n\n## Run\n1. Launch OpenRGB.\n2. Click the tab `SDK Server` and the button `Start Server`.\n3. Run: `$ python -m ledtop`\n\n## Configuration\n\nThe config file location is defined by [appdirs](https://pypi.org/project/appdirs/) (ex: `~/.config/ledtop/config.toml`) based on your OS, in [TOML](https://toml.io/en/) format.  If no config file exists, running `python -m ledtop` will tell you where it should be.\n\nTo see your detected devices, zones and sensors, run `python -m ledtop --info`.  Example:\n```\n$ python ledtop.py --info\n--------------\n LED Displays\n--------------\nDevice: 'B550I AORUS PRO AX' (id:0)\n - zone: 'D_LED1' (id:0)\n - zone: 'Motherboard' (id:1)\n\n---------------------\n Temperature Sensors\n---------------------\nDevice: 'acpitz'\n - sensor: '' (17°C)\nDevice: 'nvme'\n - sensor: 'Composite' (44°C)\nDevice: 'k10temp'\n - sensor: 'Tctl' (34°C)\n - sensor: 'Tdie' (34°C)\n - sensor: 'Tccd1' (45°C)\n - sensor: 'Tccd2' (42°C)\nDevice: 'iwlwifi_1'\n - sensor: '' (36°C)\n```\n\n\nExample configuration file: \n```\n[cpu]\ndevice = 'B550I AORUS PRO AX'\nzone = 'D_LED1'\nleds = '1-21'\n\n[memory]\ndevice = 'B550I AORUS PRO AX'\nzone = 'D_LED1'\nleds = '42-22'\nbrightness = 20\n\n[temp.ssd]\ndevice = 'B550I AORUS PRO AX'\nzone = 'Motherboard'\ncomponent = 'nvme'\nleds = '1-2'\n\n[temp.cpu]\ndevice = 'B550I AORUS PRO AX'\nzone = 'Motherboard'\ncomponent = 'k10temp'\nsensor = 'Tctl'\nleds = '3-5'\n```\n\nThere are three section types with the following options:\n\n### Section: `cpu`\n\n| Option | Details | Required |\n|--------|---------|----------|\n|`device`|A string or an integer, corresponding to OpenRGB's device name or ID.|✓|\n|`zone`  |A string or an integer, corresponding to OpenRGB's zone name or ID.|✓|\n|`size`  |The number of LEDs in your zone.  Will call `zone.resize()` in OpenRGB.|✓ (If not set by OpenRGB config.)|\n|`leds` |Which LEDs to use (a range), inclusive starting at 1.  If the first number is larger than the second, the displayed order will be reversed.  (Say if your strip is mounted upside-down.)  Example: `1-21`|✓|\n|`brightness`  |The brightness of your LEDs, an integer 0-100.||\n|custom cpu colors|A hex RGB string like `#0000ff`. Options: `nice_color`, `user_color`, `system_color`, `iowait_color`, `irq_color`, `softirq_color`, `idle_color` |\n\n### Section: `memory`\n\n| Option | Details | Required |\n|--------|---------|----------|\n|`device`|A string or an integer, corresponding to OpenRGB's device name or ID.|✓|\n|`zone`  |A string or an integer, corresponding to OpenRGB's zone name or ID.|✓|\n|`size`  |The number of LEDs in your zone.  Will call `zone.resize()` in OpenRGB.||\n|`leds` |Which LEDs to use (a range), inclusive starting at 1.  If the first number is larger than the second, the displayed order will be reversed.  (Say if your strip is mounted upside-down.)  Example: `41-22`|✓|\n|`brightness`  |The brightness of your LEDs, an integer 0-100.||\n|custom memory colors|A hex RGB string like `#ff4400`. Options: `used_color`, `buffers_color`, `cached_color`, `unused_color` |\n\n### Section: `temp`\n\n| Option | Details | Required |\n|--------|---------|----------|\n|`device`|A string or an integer, corresponding to OpenRGB's device name or ID.|✓|\n|`zone`  |A string or an integer, corresponding to OpenRGB's zone name or ID.|✓|\n|`size`  |The number of LEDs in your zone.  Will call `zone.resize()` in OpenRGB.||\n|`leds` |Which LEDs to use (a range), inclusive starting at 1.  If the first number is larger than the second, the displayed order will be reversed.  (Say if your strip is mounted upside-down.)  Example: `1-4`|✓|\n|`component` |The component (motherboard, CPU, SSD, etc.) to measure the temp of.  Run `python -m ledtop --info` to see what's detected.|✓|\n|`sensor` |Some components have multiple sensors.  Run `python -m ledtop --info` to see your options.||\n|`low` |Low temperature - integer in °C.  (Default: 20)||\n|`high` |High temperature - integer in °C.  (Default: 90 or self-reported by the sensor.)||\n\nIf you want more than one display of each type, name them like:\n```\n[cpu.1]\n...\n[cpu.2]\n...\n```\n\n## Colors\n\nDefault LED colors are the same as `htop`.  For CPU usage the color key is:\n- Blue: low priority processes (nice \u003e 0)\n- Green: normal (user) processes.\n- Red: kernel processes.\n- Yellow: IRQ time.\n- Magenta: Soft IRQ time.\n- Grey: IO Wait time.\n\nMemory:\n- Green: Used memory pages.\n- Blue: Buffer pages.\n- Orange: Cache pages.\n- Grey: Free (unused)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeredson%2Fledtop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeredson%2Fledtop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeredson%2Fledtop/lists"}