kvm/ui
Cameron Fleming 5217377175
feat(display.go): Add display brightness settings (#17)
* feat(display.go): impl setDisplayBrightness()

Implements setDisplayBrightness(brightness int) which allows setting the
backlight brightness on JetKVM's hardware.

Needs to be implemented into the RPC, config and frontend.

* feat(config): add backlight control settings

* feat(display): add automatic dimming & switch off to display

WIP, dims the display to 50% of the BacklightMaxBrightness after
BacklightDimAfterMS expires. Turns the display off after
BacklightOffAfterMS

* feat(rpc): add methods to get and set BacklightSettings

* WIP: feat(settings): add Max backlight setting

* chore: use constant for backlight control file

* fix: only attempt to wake the display if it's off

* feat(display): wake on touch

* fix: re-use buffer between reads

* fix: wakeDisplay() on start to fix warm start issue

If the application had turned off the display before exiting, it
wouldn't be brought on when the application restarted without a device
reboot.

* chore: various comment & string updates

* fix: newline on set brightness log

Noticed by @eric
https://github.com/jetkvm/kvm/pull/17#discussion_r1903338705

* fix: set default value for display

Set the DisplayMaxBrightness to the default brightness used
out-of-the-box by JetKVM. Also sets the dim/timeout to 2 minutes and 30
mintes respectively.

* feat(display.go): use tickers to countdown to dim/off

As suggested by tutman in https://github.com/jetkvm/kvm/pull/17, use
tickers set to the duration of dim/off to avoid a loop running every
second. The tickers are reset to the dim/off times whenever
wakeDisplay() is called.

* chore: update config

Changed Dim & Off values to seconds instead of milliseconds, there's no
need for it to be that precise.

* feat(display.go): wakeDisplay() force

Adds the force boolean to wakedisplay() which allows skipping the
backlightState == 0 check, this means you can force a ticker reset, even
if the display is currently in the "full bright" state

* feat(display.go): move tickers into their own method

This allows them to only be started if necessary. If the user has chosen
to keep the display on and not-dimmed all the time, the tickers can't
start as their tick value must be a positive integer.

* feat(display.go): stop tickers when auto-dim/auto-off is disabled

* feat(rpc): implement display backlight control methods

* feat(ui): implement display backlight control

* chore: update variable names

As part of @joshuasing's review on #17, updated variables & constants to
match the Go best practices.

Signed-off-by: Cameron Fleming <cameron@nevexo.space>

* fix(display): move backlightTicker setup into screen setup goroutine

Signed-off-by: Cameron Fleming <cameron@nevexo.space>

* chore: fix some start-up timing issues

* fix(display): Don't attempt to start the tickers if the display is disabled

If max_brightness is zero, then there's no point in trying to dim it (or
turn it off...)

* fix: wakeDisplay() doesn't need to stop the tickers

The tickers only need to be reset, if they're disabled, they won't have
been started.

* fix: Don't wake up the display if it's turned off

---------

Signed-off-by: Cameron Fleming <cameron@nevexo.space>
2025-02-17 11:00:28 +01:00
..
public Release 202412292127 2024-12-29 21:27:42 +01:00
src feat(display.go): Add display brightness settings (#17) 2025-02-17 11:00:28 +01:00
.env.development Release 202412292127 2024-12-29 21:27:42 +01:00
.env.device Release 202412292127 2024-12-29 21:27:42 +01:00
.env.production Release 202412292127 2024-12-29 21:27:42 +01:00
.eslintrc.cjs Release 202412292127 2024-12-29 21:27:42 +01:00
.gitignore Release 202412292127 2024-12-29 21:27:42 +01:00
.prettierrc Release 202412292127 2024-12-29 21:27:42 +01:00
index.html Update index.html - fixed fonts url (#4) 2025-01-02 21:44:09 +01:00
package-lock.json Fix: Update react-icons package (#5) 2024-12-31 14:23:23 +01:00
package.json Fix fullscreen video relative mouse movements (#85) 2025-02-11 20:00:50 +01:00
postcss.config.js Release 202412292127 2024-12-29 21:27:42 +01:00
tailwind.config.js Release 202412292127 2024-12-29 21:27:42 +01:00
tsconfig.json Release 202412292127 2024-12-29 21:27:42 +01:00
tsconfig.node.json Release 202412292127 2024-12-29 21:27:42 +01:00
vite-env.d.ts Release 202412292127 2024-12-29 21:27:42 +01:00
vite.config.ts Fix fullscreen video relative mouse movements (#85) 2025-02-11 20:00:50 +01:00