74 lines
1.6 KiB
Nix
74 lines
1.6 KiB
Nix
{
|
|
user ? throw "user argument is required",
|
|
}:
|
|
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
inputs,
|
|
...
|
|
}:
|
|
let
|
|
hmConfig = config.home-manager.users.${user.name};
|
|
agsConfig = import ./config { inherit pkgs; };
|
|
in
|
|
{
|
|
home-manager.users.${user.name} = {
|
|
imports = [ inputs.ags.homeManagerModules.default ];
|
|
|
|
programs.ags.enable = true;
|
|
|
|
xdg.configFile.ags = {
|
|
source = "${agsConfig}/share/config.js";
|
|
target = "ags/config.js";
|
|
};
|
|
|
|
programs.matugen.settings.templates.ags = {
|
|
input_path = ./theme.sass;
|
|
output_path = "${hmConfig.xdg.configHome}/ags/theme.sass";
|
|
};
|
|
|
|
systemd.user = {
|
|
targets.tray.Unit = {
|
|
BindsTo = [ "ags.service" ];
|
|
After = [
|
|
"graphical-session.target"
|
|
"ags.service"
|
|
];
|
|
};
|
|
|
|
services.ags = {
|
|
Unit = {
|
|
Description = "Desktop widget shell";
|
|
BindsTo = [ "graphical-session.target" ];
|
|
After = [ "graphical-session.target" ];
|
|
};
|
|
|
|
Service = {
|
|
Type = "notify";
|
|
NotifyAccess = "all";
|
|
|
|
ExecStart = lib.meta.getExe (
|
|
pkgs.writeShellApplication {
|
|
name = "init-ags";
|
|
runtimeInputs = with pkgs; [
|
|
inputs.ags.packages.${stdenv.hostPlatform.system}.default
|
|
sassc
|
|
hyprland
|
|
nixos-icons
|
|
rofi-wayland
|
|
wl-clipboard
|
|
cliphist
|
|
libdbusmenu-gtk3
|
|
];
|
|
text = "exec ags";
|
|
}
|
|
);
|
|
};
|
|
|
|
Install.WantedBy = [ "graphical-session.target" ];
|
|
};
|
|
};
|
|
};
|
|
}
|