{ lib, config, ... }: { options.frogeye = { extra = lib.mkEnableOption "Big software"; gaming = lib.mkEnableOption "Games"; polarity = lib.mkOption { default = "light"; description = "Whether to use light theme or dark theme."; type = lib.types.enum [ "light" "dark" ]; }; desktop = { xorg = lib.mkEnableOption "Enable X11 support"; # TODO Use appropriate OS/HM option(s) instead numlock = lib.mkEnableOption "Auto-enable numlock"; x11_screens = lib.mkOption { default = [ "UNSET1" ]; description = "A list of xrandr screen names from left to right."; type = lib.types.listOf lib.types.str; }; maxVideoHeight = lib.mkOption { type = lib.types.int; description = "Maximum video height in pixel the machine can reasonably watch"; default = 1080; }; phasesBrightness = { enable = lib.mkEnableOption "Set a specific brightness for the screen when running phases commands"; jour = lib.mkOption { type = lib.types.str; default = "100%"; description = "brightnessctl value for phase: jour"; }; crepuscule = lib.mkOption { type = lib.types.str; default = "50%"; description = "brightnessctl value for phase: crepuscule"; }; nuit = lib.mkOption { type = lib.types.str; default = "1%"; description = "brightnessctl value for phase: nuit"; }; }; }; dev = { ansible = lib.mkEnableOption "Ansible dev stuff"; c = lib.mkEnableOption "C/C++ dev stuff"; docker = lib.mkEnableOption "Docker dev stuff"; fpga = lib.mkEnableOption "FPGA dev stuff"; go = lib.mkEnableOption "Go dev stuff"; node = lib.mkEnableOption "NodeJS dev stuff"; perl = lib.mkEnableOption "Perl dev stuff"; php = lib.mkEnableOption "PHP dev stuff"; prose = lib.mkEnableOption "Writing stuff"; python = lib.mkEnableOption "Python dev stuff"; }; hooks.lock = lib.mkOption { type = lib.types.lines; default = ""; description = "Bash commands to execute on locking the session."; }; }; config = { frogeye = { dev = { prose = lib.mkDefault true; python = lib.mkDefault true; }; }; }; }