nbackbright/nbackbright.nim
2021-03-01 17:39:21 +03:00

38 lines
1.0 KiB
Nim

import os
import streams
import strutils
const
BL_SYS_DIR = "/sys/class/backlight"
proc change_brightness(percent: int) =
if dirExists(BL_SYS_DIR):
for kind, path in walkDir(BL_SYS_DIR):
let
br_file = path & "/brightness"
mb_file = path & "/max_brightness"
if fileExists(br_file) and fileExists(mb_file):
try:
let br_stream = openFileStream(br_file)
let br = parseInt(br_stream.readLine())
br_stream.close()
let mb_stream = openFileStream(mb_file)
let mb = parseInt(mb_stream.readLine())
mb_stream.close()
var new_br = int(float(br) + float(mb) / 100.0 * float(percent))
if new_br < 0: new_br = 0
if new_br > mb: new_br = mb
let br_write = openFileStream(br_file, fmWrite)
br_write.writeLine(new_br)
br_write.close()
except:
echo "Fail to interact with ", br_file
when isMainModule:
if paramCount() > 0:
let percent = parseInt(paramStr(1))
change_brightness(percent)