Flake Inputs: • Updated input 'gtk-theme-src': 'github:dracula/gtk' (2025-04-18) rev: 82837065c824158d4242c19ea7dded7645b9a9f1 → 'github:dracula/gtk' (2025-04-27) rev: 3834a1bac175b226cff6b1c94faac9aba2819bd5 • Updated input 'home-manager': 'github:nix-community/home-manager' (2025-04-27) rev: 7b2aae3fb39928aecc5e41c10a9c87c4881614d5 → 'github:nix-community/home-manager' (2025-04-28) rev: d0d9d0a1454d5a0200693570618084d80a8b336c • Updated input 'hyprgrass': 'github:horriblename/hyprgrass' (2025-04-26) rev: 9125826ccc16bd3722fd07d74e7c5677b9c6d128 → 'github:horriblename/hyprgrass' (2025-04-27) rev: 9b548876dcd30924047feed6b3b3086142d53ab4 • Updated input 'hyprland': 'github:hyprwm/Hyprland' (2025-04-27) rev: 0302bfdc2207f9b5482fb07aa6052e7f6cb237ca → 'github:hyprwm/Hyprland' (2025-04-27) rev: f5c5cfa960c157c8df50b496f621290234ac4505 • Updated input 'modernz-src': 'github:Samillion/ModernZ' (2025-04-19) rev: 6c49917529ab419a539d04f355a4760279964e57 → 'github:Samillion/ModernZ' (2025-04-28) rev: 7b0a1ab702a4f2773eb20ad1c77ec257bdeca22d • Updated input 'nix-fast-build': 'github:Mic92/nix-fast-build' (2025-04-27) rev: 0e5cbf407f2189941a766906bafe919b71f9126f → 'github:Mic92/nix-fast-build' (2025-04-28) rev: fc256b5e39013bb147e230a4fec513bd72c3b699 • Updated input 'spotifyplus-src': 'github:thlucas1/homeassistantcomponent_spotifyplus' (2025-04-27) rev: e2b82ab5371636f5b1c13f78264667c1732aa4d5 → 'github:thlucas1/homeassistantcomponent_spotifyplus' (2025-04-27) rev: bca176bb4a35299a8378d9ec504593e268c87868 • Updated input 'wakewords-src': 'github:fwartner/home-assistant-wakewords-collection' (2025-04-24) rev: 755eded16d3f6feeb8556d2044357f07713e04e2 → 'github:fwartner/home-assistant-wakewords-collection' (2025-04-28) rev: c7fbdcef2342974f05831dddae15462fd00bad4f Docker Images: • ghcr.io/immich-app/immich-machine-learning release: sha256:48fc9c8315a00e1856cb9dff1db626ec8c7f1e424d60a6002c7f04ce94fdfa9a → sha256:f45063889794008cfc02fcf9d359b55fe37d1f8ebaf89653c89e1dd0e876eb7d • ghcr.io/immich-app/immich-server release: sha256:71cb6d2a6587f6481ae22b1cd743c74f163acbf26ade4df890e4425bb1f2e891 → sha256:6680d88486251b0264a78a1934fe82eef875555aa6d84d703a0980328a5d5c31 Node modules: @types/node: 22.15.2 -> 22.15.3 typescript-eslint: 8.31.0 -> 8.31.1
208 lines
4.8 KiB
Nix
208 lines
4.8 KiB
Nix
self: {
|
|
lib,
|
|
osConfig,
|
|
...
|
|
}: let
|
|
inherit (self.lib.hypr) mkAnimation mkBezier mkBind mkLayerRule;
|
|
|
|
inherit (lib) mkIf;
|
|
|
|
cfgDesktop = osConfig.roles.desktop;
|
|
in {
|
|
config = mkIf cfgDesktop.ags.enable {
|
|
wayland.windowManager.hyprland = {
|
|
settings = {
|
|
general = {
|
|
gaps_in = 5;
|
|
gaps_out = 5;
|
|
border_size = 0;
|
|
};
|
|
|
|
decoration = {
|
|
rounding = 12;
|
|
|
|
blur = {
|
|
enabled = true;
|
|
size = 3;
|
|
passes = 1;
|
|
};
|
|
|
|
shadow.enabled = false;
|
|
};
|
|
|
|
animations = {
|
|
enabled = true;
|
|
|
|
bezier = map mkBezier [
|
|
{
|
|
name = "easeInQuart";
|
|
p0 = [0.895 0.030];
|
|
p1 = [0.685 0.220];
|
|
}
|
|
{
|
|
name = "easeOutQuart";
|
|
p0 = [0.165 0.840];
|
|
p1 = [0.440 1.000];
|
|
}
|
|
{
|
|
name = "easeInOutQuart";
|
|
p0 = [0.770 0.000];
|
|
p1 = [0.175 1.000];
|
|
}
|
|
|
|
# fade out
|
|
{
|
|
name = "easeInExpo";
|
|
p0 = [0.950 0.050];
|
|
p1 = [0.795 0.035];
|
|
}
|
|
];
|
|
|
|
animation = map mkAnimation [
|
|
{
|
|
name = "workspaces";
|
|
duration = 6;
|
|
bezier = "easeOutQuart";
|
|
style = "slide";
|
|
}
|
|
|
|
{
|
|
name = "windows";
|
|
duration = 4;
|
|
bezier = "easeOutQuart";
|
|
style = "slide";
|
|
}
|
|
{
|
|
name = "fadeIn";
|
|
enable = false;
|
|
}
|
|
{
|
|
name = "fadeOut";
|
|
duration = 4;
|
|
bezier = "easeInExpo";
|
|
}
|
|
|
|
{
|
|
name = "fadeLayersIn";
|
|
enable = false;
|
|
}
|
|
{
|
|
name = "fadeLayersOut";
|
|
duration = 4;
|
|
bezier = "easeInExpo";
|
|
}
|
|
{
|
|
name = "layers";
|
|
duration = 4;
|
|
bezier = "easeInOutQuart";
|
|
style = "fade";
|
|
}
|
|
];
|
|
};
|
|
|
|
layerrule = map mkLayerRule [
|
|
{
|
|
rule = "animation popin";
|
|
namespace = "^(hyprpaper.*)";
|
|
}
|
|
{
|
|
rule = "animation fade";
|
|
namespace = "^(bg-layer.*)";
|
|
}
|
|
{
|
|
rule = "noanim";
|
|
namespace = "^(noanim-.*)";
|
|
}
|
|
|
|
{
|
|
rule = "blur";
|
|
namespace = "^(blur-bg.*)";
|
|
}
|
|
{
|
|
rule = "ignorealpha 0.19";
|
|
namespace = "^(blur-bg.*)";
|
|
}
|
|
];
|
|
|
|
exec-once = [
|
|
"ags"
|
|
"sleep 3; ags request 'open win-applauncher'"
|
|
];
|
|
|
|
bind = map mkBind [
|
|
{
|
|
modifier = "$mainMod SHIFT";
|
|
key = "E";
|
|
command = "ags toggle win-powermenu";
|
|
}
|
|
{
|
|
modifier = "$mainMod";
|
|
key = "D";
|
|
command = "ags toggle win-applauncher";
|
|
}
|
|
{
|
|
modifier = "$mainMod";
|
|
key = "V";
|
|
command = "ags toggle win-clipboard";
|
|
}
|
|
{
|
|
key = "Print";
|
|
command = "ags toggle win-screenshot";
|
|
}
|
|
|
|
{
|
|
key = "XF86AudioMute";
|
|
command = "pactl set-sink-mute @DEFAULT_SINK@ toggle";
|
|
}
|
|
{
|
|
key = "XF86AudioMicMute";
|
|
command = "pactl set-source-mute @DEFAULT_SOURCE@ toggle";
|
|
}
|
|
{
|
|
modifier = "$mainMod";
|
|
key = "Print";
|
|
command = "bash -c \"grim -g \\\"$(slurp)\\\" - | satty -f -\"";
|
|
}
|
|
];
|
|
|
|
binde = map mkBind [
|
|
{
|
|
key = "XF86MonBrightnessUp";
|
|
command = "ags request 'Brightness.screen +0.05'";
|
|
}
|
|
{
|
|
key = "XF86MonBrightnessDown";
|
|
command = "ags request 'Brightness.screen -0.05'";
|
|
}
|
|
|
|
{
|
|
key = "XF86AudioRaiseVolume";
|
|
command = "wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ & ags request 'popup speaker' &";
|
|
}
|
|
{
|
|
key = "XF86AudioLowerVolume";
|
|
command = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- & ags request 'popup speaker' &";
|
|
}
|
|
];
|
|
|
|
bindn = map mkBind [
|
|
{
|
|
key = "Escape";
|
|
command = "ags request closeAll";
|
|
}
|
|
];
|
|
|
|
bindr = map mkBind [
|
|
{
|
|
modifier = "CAPS";
|
|
key = "Caps_Lock";
|
|
command = "ags request fetchCapsState";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
|
|
# For accurate stack trace
|
|
_file = ./default.nix;
|
|
}
|