This commit is contained in:
2025-12-28 01:33:55 +01:00
parent ed37031078
commit 6f49de4b06

View File

@@ -11,15 +11,14 @@ Same as plugins. Just write in more features scrub, learn some C++, damn
## TODOs
- LOOK AT WHAT CLANG SAYS, tweak .clang-format, we really dont need all deez libs in headers, move them out to cpp files, remove unused
- also use clang-tidy
- move away from ArduinoJson. This aint an arduino, be fr. use nlohmann or some other json lib for c++
- move away from ArduinoJson. This ain't an arduino, be fr. Switch to nlohmann/json libs.
- Use `std::string_view` or `const std::string &` when possible, its faster, no copy
- Extra screens support perhaps? just halt sensors monitoring thread and print another struct on display if needed, have a semaphore or sth
- Maybe not even screens, keep the 1st line and change lines 2-4
- Media playback screen (use mpris, get playback info with mpris)
- 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 in media screen and GPU power > 80W it switches to main (hwmon) screen
- 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
- consider std::string_view
- 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 (which it often does tbh, better for reading small files)
## LCD layout
It looks something like this
@@ -68,3 +67,11 @@ Text04="$dll(hwinfo,1,Vcore,3)V $Right($dll(hwinfo,1,Average Effective Clock,a)M
- To read motherboard sensors on ASUS ROG STRIX B550-A GAMING, as of Linux 6.16 you need to booth with kernel parameter of `acpi_enforce_resources=lax`. On Fedora it can be added by appending it to `/etc/kernel/cmdline`.
- You need to be able to read RAPL as user. Create in `/etc/tmpfiles.d/intelrapl.conf` with content `z- /sys/class/powercap/intel-rapl:0/energy_uj 0440 root uucp - -`. Adjust uucp to whatever group applicable, like `dialout`.
- `compile_commands.json` is so clang understands this project, so we can edit it with helix/neovim. Generated with `bear -- make`, make sure to run `make clean` beforehand.
### Libraries needed for compilation
- libwebsockets
- openssl
- nlohmann/json
Idk if I should use a package manager for these or sth