108 lines
2.6 KiB
Nix
108 lines
2.6 KiB
Nix
{
|
|
options,
|
|
config,
|
|
lib,
|
|
inputs,
|
|
pkgs,
|
|
...
|
|
}:
|
|
with lib;
|
|
with lib.custom; let
|
|
cfg = config.apps.helpers.ags;
|
|
|
|
requiredDeps = with pkgs; [
|
|
config.wayland.windowManager.hyprland.package
|
|
bash
|
|
coreutils
|
|
gawk
|
|
sassc
|
|
imagemagick
|
|
procps
|
|
ripgrep
|
|
util-linux
|
|
gtksourceview
|
|
webkitgtk_4_1
|
|
brightnessctl
|
|
gvfs
|
|
accountsservice
|
|
swww
|
|
gnome-control-center
|
|
nautilus
|
|
totem
|
|
loupe
|
|
];
|
|
|
|
guiDeps = with pkgs; [
|
|
gnome-control-center
|
|
overskride
|
|
wlogout
|
|
];
|
|
|
|
dependencies = requiredDeps ++ guiDeps;
|
|
in {
|
|
options.apps.helpers.ags = with types; {
|
|
enable = mkBoolOpt false "Enable AGS";
|
|
};
|
|
|
|
config = mkIf (cfg.enable && !pkgs.stdenv.isDarwin) {
|
|
programs.ags = {
|
|
enable = true;
|
|
|
|
# Generate _colors.scss with our theme colors
|
|
configDir = pkgs.runCommand "ags-config" {} ''
|
|
cp -r ${./cfg} $out
|
|
chmod -R +w $out
|
|
cat > $out/scss/_colors.scss << EOF
|
|
/* Generated from lib/theme/default.nix */
|
|
$rosewater: ${colors.rosewater.hex};
|
|
$flamingo: ${colors.flamingo.hex};
|
|
$pink: ${colors.pink.hex};
|
|
$mauve: ${colors.mauve.hex};
|
|
$red: ${colors.red.hex};
|
|
$maroon: ${colors.maroon.hex};
|
|
$peach: ${colors.peach.hex};
|
|
$yellow: ${colors.yellow.hex};
|
|
$green: ${colors.green.hex};
|
|
$teal: ${colors.teal.hex};
|
|
$sky: ${colors.sky.hex};
|
|
$sapphire: ${colors.sapphire.hex};
|
|
$blue: ${colors.blue.hex};
|
|
$lavender: ${colors.lavender.hex};
|
|
$text: ${colors.text.hex};
|
|
$subtext1: ${colors.subtext1.hex};
|
|
$subtext0: ${colors.subtext0.hex};
|
|
$overlay2: ${colors.overlay2.hex};
|
|
$overlay1: ${colors.overlay1.hex};
|
|
$overlay0: ${colors.overlay0.hex};
|
|
$surface2: ${colors.surface2.hex};
|
|
$surface1: ${colors.surface1.hex};
|
|
$surface0: ${colors.surface0.hex};
|
|
$base: ${colors.base.hex};
|
|
$mantle: ${colors.mantle.hex};
|
|
$crust: ${colors.crust.hex};
|
|
|
|
/* Default accent color */
|
|
$accent: ${colors.sapphire.hex};
|
|
EOF
|
|
'';
|
|
|
|
extraPackages = dependencies;
|
|
};
|
|
|
|
systemd.user.services.ags = {
|
|
Unit = {
|
|
Description = "Aylur's Gtk Shell";
|
|
PartOf = [
|
|
"tray.target"
|
|
"hyprland-session.target"
|
|
];
|
|
};
|
|
Service = {
|
|
Environment = "PATH=/run/wrappers/bin:${lib.makeBinPath dependencies}";
|
|
ExecStart = "${config.programs.ags.package}/bin/ags";
|
|
Restart = "on-failure";
|
|
};
|
|
Install.WantedBy = ["hyprland-session.target"];
|
|
};
|
|
};
|
|
}
|