aboutsummaryrefslogtreecommitdiffstats
path: root/pkgs/by-name/br
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-23 13:26:22 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-23 13:26:22 +0200
commit204731c0a69136c9cebcb54f1afecf5145e26bbe (patch)
treefc9132e5dc74e4a8e1327cdd411839a90f9410aa /pkgs/by-name/br
parentrefactor(sys): Modularize and move to `modules/system` or `pkgs` (diff)
downloadnixos-config-204731c0a69136c9cebcb54f1afecf5145e26bbe.zip
refactor(pkgs): Categorize into `by-name` shards
This might not be the perfect way to organize a package set -- especially if the set is not nearly the size of nixpkgs -- but it is _at_ least a way of organization.
Diffstat (limited to 'pkgs/by-name/br')
-rwxr-xr-xpkgs/by-name/br/brightness/brightness.sh80
-rw-r--r--pkgs/by-name/br/brightness/package.nix14
2 files changed, 94 insertions, 0 deletions
diff --git a/pkgs/by-name/br/brightness/brightness.sh b/pkgs/by-name/br/brightness/brightness.sh
new file mode 100755
index 00000000..a7272279
--- /dev/null
+++ b/pkgs/by-name/br/brightness/brightness.sh
@@ -0,0 +1,80 @@
+#!/usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="2.1.2" . %SHELL_LIBRARY_PATH
+
+help() {
+ cat <<EOF
+This is a system brightness manager
+
+USAGE:
+ $NAME up [VALUE] | down [VALUE]
+
+OPTIONS:
+ --help | -h
+ Output this help and exit.
+
+ --version | -v
+ Output the version and exit.
+
+COMMANDS:
+ up [VALUE]
+ Increase the brightness by VALUE or 5%.
+
+ down [VALUE]
+ Decrease the brightness by VALUE or 5%.
+
+ARGUMENTS:
+ VALUE := [[seq 0 100]]
+ The amount to increase/decrease the brightness. In percentage
+EOF
+}
+
+BACKLIGHT="/sys/class/%BACKLIGHT_NAME"
+
+brightness() {
+ offset="$1"
+
+ max="$(cat $BACKLIGHT/max_brightness)"
+ cur="$(cat $BACKLIGHT/brightness)"
+ percentage="$(echo | awk --assign=cur="$cur" --assign=max="$max" '{printf cur / max}')"
+
+ new="$(echo | awk --assign=per="$percentage" --assign=offset="$offset" '{printf per + (offset / 10)}')"
+
+ output="$(echo | awk --assign=new="$new" --assign=max="$max" '{printf max * new}')"
+
+ msg "echo \"$output\" > $BACKLIGHT/brightness"
+}
+
+for arg in "$@"; do
+ case "$arg" in
+ "--help" | "-h")
+ help
+ exit 0
+ ;;
+ "--version" | "-v")
+ version
+ exit 0
+ ;;
+ esac
+done
+
+case "$1" in
+"up")
+ shift 1
+ value="5"
+ [ -n "$1" ] && value="$1"
+ brightness "+$value"
+ ;;
+"down")
+ shift 1
+ value="-5"
+ [ -n "$1" ] && value="$1"
+ brightness "-$value"
+ ;;
+*)
+ die "The command '$1' does not exist! See '--help' for a list"
+ ;;
+esac
+
+# vim: ft=sh
diff --git a/pkgs/by-name/br/brightness/package.nix b/pkgs/by-name/br/brightness/package.nix
new file mode 100644
index 00000000..c2e31a0c
--- /dev/null
+++ b/pkgs/by-name/br/brightness/package.nix
@@ -0,0 +1,14 @@
+{
+ sysLib,
+ backlightName ? "intel_backlight", # nixosConfig.soispha.laptop.backlight
+}:
+sysLib.writeShellScript {
+ name = "brightness";
+ src = ./brightness.sh;
+ generateCompletions = true;
+ keepPath = false;
+
+ replacementStrings = {BACKLIGHT_NAME = backlightName;};
+
+ dependencies = [];
+}