50 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   lib,
 | |
|   osConfig,
 | |
|   pkgs,
 | |
|   ...
 | |
| }: let
 | |
|   inherit (lib) mkIf;
 | |
|   inherit (builtins) elem;
 | |
|   inherit (osConfig.ooknet.hardware) features;
 | |
|   ookbrightness = pkgs.writeShellApplication {
 | |
|     name = "ookbrightness";
 | |
|     runtimeInputs = with pkgs; [brillo libnotify];
 | |
|     text =
 | |
|       /*
 | |
|       bash
 | |
|       */
 | |
|       ''
 | |
|         BRIGHTNESS=$(brillo -G | awk -F'.' '{print$1}')
 | |
|         notify() {
 | |
|           notify-send --app-name="system-notify" -h string:x-canonical-private-synchronous:sys-notify "  $BRIGHTNESS%"
 | |
|         }
 | |
|         option() {
 | |
|           case "$1" in
 | |
|           up)
 | |
|             brillo -q -u 30000 -A 5
 | |
|             ;;
 | |
|           down)
 | |
|             brillo -q -u 30000 -U 5
 | |
|             ;;
 | |
|           *)
 | |
|             echo "Invalid argument"
 | |
|             ;;
 | |
|           esac
 | |
|         }
 | |
|         main() {
 | |
|           option "$@"
 | |
|           notify
 | |
|         }
 | |
|         main "$@"
 | |
|       '';
 | |
|   };
 | |
| in {
 | |
|   config = mkIf (elem "backlight" features) {
 | |
|     home.packages = [ookbrightness];
 | |
|     ooknet.binds.brightness = {
 | |
|       up = "ookbrightness up";
 | |
|       down = "ookbrightness down";
 | |
|     };
 | |
|   };
 | |
| }
 |