45 lines
		
	
	
	
		
			1,015 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
	
		
			1,015 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { lib, osConfig, pkgs, ... }:
 | |
| 
 | |
| let
 | |
|   inherit (lib) mkIf;
 | |
|   inherit (builtins) elem;
 | |
|   features = osConfig.ooknet.host.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";
 | |
|     };
 | |
|   };
 | |
| }
 |