diff --git a/README.md b/README.md index 7e4e6b6..2b68acd 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # linuxSmartie -Alphanumeric LCD software for Linux (kind of LCDSmartie for Windows but no GUI, no config file, no plugins, no Windows). Written with C++26, should compile with at least C++20. +Alphanumeric LCD controller software for Linux (kind of LCDSmartie for Windows but no GUI, no config file, no plugins, no Windows). Written with C++26 (`-std=c++2c`), will need at least gcc 14 to compile. -Hardcoded to work with 4x40 character display because that's what I have and I don't plan on using anything else. Should work with most other display sizes by modifying `src/LCDDisplay.cpp`. Best of luck. +Hardcoded to work with 4x40 character display because that's what I have and I don't plan on using anything else. Uses Matrix Orbital protocol over serial. Should work with most other display sizes by modifying `src/LCDDisplay.cpp`. Best of luck. Vaguely inspired by suckless software philosophy. ## The config is the source code -Same as plugins. Just write more features scrub, learn some C++, damn +Same as plugins. Just write in more features scrub, learn some C++, damn ## TODOs - Extra screens support perhaps? @@ -14,10 +14,9 @@ Same as plugins. Just write more features scrub, learn some C++, damn - In the LCDDisplay lib, reimplement all the features I have in picoSmartie + maybe finally add keypad support for both so I can toggle backlight (?) or change screens if I want any - Screens could be automatic tbh, like if it detects media playing it switches to media screen, if GPU power > 80W it switches to main (hwmon) screen - Network monitoring would be sick -- Need shared pointer after all? something is crashing -- centering func -- suspend/resume still broken -- try to be c++23, avoid globals, use naming conventions, avoid c way of doing things unless it makes more sense +- Centering function for the in utils `std::string center(str, len)`; +- Suspend/resume still broken but also I don't really use it soooo... +- Try to be C++26, avoid globals, wrap in namespaces, use naming conventions, use classes, avoid pure C way of doing things unless it makes more sense ## LCD layout It looks something like this @@ -54,12 +53,10 @@ Text04="$dll(hwinfo,1,Vcore,3)V $Right($dll(hwinfo,1,Average Effective Clock,a)M ``` ### So what's still missing -- Tasmota wall power, doable -- Average CPU freq, doable - Per-core CPU load, doable but annoying - FPS counter, maybe possible? - Active core count, probably impossible but loadAvg is better? - GPU board power, probably impossible, it was estimated on windows anyway - CPU cache/iod, likely impossible, zenpower doesnt show it -- GPU clock limit, probably impossible, amdgpu doesnt show it? +- GPU clock limit, probably impossible, gpu_metrics doesnt show it? - CPU fan, likely impossible, no modules