{ ags, config, pkgs, ... }: let inherit (config.vars) configDir mainUser; isTouchscreen = config.hardware.sensor.iio.enable; in { services.upower.enable = true; home-manager.users.${mainUser}.imports = [ ags.homeManagerModules.default ({ config, lib, ... }: let symlink = config.lib.file.mkOutOfStoreSymlink; optionals = lib.lists.optionals; in { programs.ags = { enable = true; configDir = symlink "${configDir}/ags"; package = ags.packages.${pkgs.system}.default; extraPackages = with pkgs; [ libgudev ]; }; home.packages = [config.customPkgs.coloryou] ++ (with pkgs; [ # ags sassc bun playerctl ## gui pavucontrol # TODO: replace with ags widget (writeShellApplication { name = "updateTypes"; runtimeInputs = [ nodejs_18 typescript git ]; text = '' if [[ -d /tmp/ags-types ]]; then rm -r /tmp/ags-types fi rm -r ~/.config/ags/types git clone https://github.com/Aylur/ags.git /tmp/ags-types /tmp/ags-types/example/starter-config/setup.sh rm -r /tmp/ags-types ''; }) ]) ++ (optionals isTouchscreen (with pkgs; [ lisgd squeekboard ydotool ])); }) ]; }