alien: enable and use i2c and ddcutil
This commit is contained in:
parent
8eb28c23ee
commit
78b9c84e62
2 changed files with 37 additions and 9 deletions
|
|
@ -1,5 +1,4 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
WAYBAR_SIGNAL=8 # SIGRTMIN+8
|
WAYBAR_SIGNAL=8 # SIGRTMIN+8
|
||||||
|
|
||||||
if [ "$#" -ne 1 ]; then
|
if [ "$#" -ne 1 ]; then
|
||||||
|
|
@ -15,15 +14,33 @@ if ! [[ "$value" =~ ^-?[0-9]+$ ]] || [ "$value" -lt -100 ] || [ "$value" -gt 100
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Apply brightness change with correct syntax
|
# Determine which brightness control tool to use
|
||||||
if [ "$value" -gt 0 ]; then
|
if command -v ddcutil >/dev/null 2>&1; then
|
||||||
brightnessctl s "+${value}%" >/dev/null
|
# Get current brightness
|
||||||
elif [ "$value" -lt 0 ]; then
|
current=$(ddcutil getvcp 10 | grep -oP 'current value =\s+\K\d+')
|
||||||
brightnessctl s "${value#-}%-" >/dev/null
|
|
||||||
|
if [ -z "$current" ]; then
|
||||||
|
echo "Error: failed to read current brightness from ddcutil" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Calculate new brightness (ddcutil uses absolute 0-100 scale)
|
||||||
|
new=$((current + value))
|
||||||
|
|
||||||
|
# Clamp to valid range
|
||||||
|
[ "$new" -lt 0 ] && new=0
|
||||||
|
[ "$new" -gt 100 ] && new=100
|
||||||
|
|
||||||
|
# Set new brightness
|
||||||
|
ddcutil setvcp 10 "$new" >/dev/null 2>&1
|
||||||
else
|
else
|
||||||
: # no-op for 0
|
# Fallback to brightnessctl
|
||||||
|
if [ "$value" -gt 0 ]; then
|
||||||
|
brightnessctl s "+${value}%" >/dev/null
|
||||||
|
elif [ "$value" -lt 0 ]; then
|
||||||
|
brightnessctl s "${value#-}%-" >/dev/null
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Notify Waybar to refresh
|
# Notify Waybar to refresh
|
||||||
pkill -RTMIN+"$WAYBAR_SIGNAL" waybar
|
pkill -RTMIN+"$WAYBAR_SIGNAL" waybar
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,18 @@
|
||||||
{
|
{
|
||||||
networking.hostName = "alien";
|
networking.hostName = "alien";
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
pkgs.ddcutil
|
||||||
|
pkgs.mangohud
|
||||||
|
];
|
||||||
|
|
||||||
|
# enable ddcutil
|
||||||
|
users.users.sckova.extraGroups = [ "i2c" ];
|
||||||
|
boot.initrd.kernelModules = [ "i2c-dev" ];
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
KERNEL=="i2c-[0-9]*", GROUP="i2c", MODE="0660"
|
||||||
|
'';
|
||||||
|
|
||||||
boot.binfmt.emulatedSystems = [
|
boot.binfmt.emulatedSystems = [
|
||||||
"aarch64-linux"
|
"aarch64-linux"
|
||||||
"riscv64-linux"
|
"riscv64-linux"
|
||||||
|
|
@ -62,7 +74,6 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
systemPackages = [ pkgs.mangohud ];
|
|
||||||
loginShellInit = ''
|
loginShellInit = ''
|
||||||
[[ "$(tty)" = "/dev/tty1" ]] && ./gs.sh
|
[[ "$(tty)" = "/dev/tty1" ]] && ./gs.sh
|
||||||
'';
|
'';
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue