Files
omarchy-nix/modules/home-manager/hyprland/looknfeel.nix
T
2025-06-28 13:40:05 -05:00

103 lines
2.3 KiB
Nix

{
config,
pkgs,
...
}: let
cfg = config.omarchy;
themes = import ../../themes.nix;
theme = themes.${cfg.theme};
# Convert hex color to rgba format for hyprland
hexToRgba = hex: alpha: let
cleanHex = builtins.substring 1 6 hex; # Remove the # prefix
in "rgba(${cleanHex}${alpha})";
# Special handling for tokyo-night gradient
activeBorder =
if cfg.theme == "tokyo-night"
then "${hexToRgba theme.accent "ee"} ${hexToRgba theme.success "ee"} 45deg"
else hexToRgba theme.foreground "ff";
in {
wayland.windowManager.hyprland.settings = {
general = {
gaps_in = 5;
gaps_out = 10;
border_size = 2;
"col.active_border" = activeBorder;
"col.inactive_border" = hexToRgba theme.surface_variant "aa";
resize_on_border = false;
allow_tearing = false;
layout = "dwindle";
};
decoration = {
rounding = 0;
shadow = {
enabled = true;
range = 2;
render_power = 3;
color = hexToRgba theme.background "ee";
};
blur = {
enabled = true;
size = 3;
passes = 1;
vibrancy = 0.1696;
};
};
animations = {
enabled = true; # yes, please :)
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = [
"easeOutQuint,0.23,1,0.32,1"
"easeInOutCubic,0.65,0.05,0.36,1"
"linear,0,0,1,1"
"almostLinear,0.5,0.5,0.75,1.0"
"quick,0.15,0,0.1,1"
];
animation = [
"global, 1, 10, default"
"border, 1, 5.39, easeOutQuint"
"windows, 1, 4.79, easeOutQuint"
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
"windowsOut, 1, 1.49, linear, popin 87%"
"fadeIn, 1, 1.73, almostLinear"
"fadeOut, 1, 1.46, almostLinear"
"fade, 1, 3.03, quick"
"layers, 1, 3.81, easeOutQuint"
"layersIn, 1, 4, easeOutQuint, fade"
"layersOut, 1, 1.5, linear, fade"
"fadeLayersIn, 1, 1.79, almostLinear"
"fadeLayersOut, 1, 1.39, almostLinear"
"workspaces, 0, 0, ease"
];
};
dwindle = {
pseudotile = true;
preserve_split = true;
force_split = 2;
};
master = {
new_status = "master";
};
misc = {
disable_hyprland_logo = true;
disable_splash_rendering = true;
};
};
}