Files
garandos/modules/home/hyprland/hyprland.nix
T
GarandPLG e3a6d544b3 Migrate Hyprland config to Lua
Convert all Hyprland settings to Lua format, including animations,
binds, environment variables, monitor definitions, and window rules.
Update host variable files and noctalia plugin settings to match the
new Lua‑based configuration.
2026-10-25 15:36:51 +01:00

168 lines
4.2 KiB
Nix

{
extraMonitorSettings,
keyboardLayout,
pkgs,
...
}: {
systemd.user.targets.hyprland-session.Unit.Wants = [
"xdg-desktop-autostart.target"
];
# Place Files Inside Home Directory
home.file = {
"Pictures/Wallpapers" = {
source = ../../../wallpapers;
recursive = true;
};
".face.icon".source = ./face.jpg;
".config/face.jpg".source = ./face.jpg;
};
wayland.windowManager.hyprland = {
enable = true;
package = pkgs.hyprland;
configType = "lua";
xwayland.enable = true;
systemd = {
enable = true;
enableXdgAutostart = true;
variables = ["--all"];
};
settings.config = {
input = {
kb_layout = "${keyboardLayout}";
kb_options = "grp:alt_caps_toggle,caps:super";
numlock_by_default = true;
repeat_delay = 300;
follow_mouse = 1;
float_switch_override_focus = 0;
sensitivity = 0;
touchpad = {
natural_scroll = true;
disable_while_typing = true;
scroll_factor = 0.8;
};
};
gestures = {
# workspace_swipe = 1;
# workspace_swipe_fingers = 3;
workspace_swipe_distance = 500;
workspace_swipe_invert = 1;
workspace_swipe_min_speed_to_force = 30;
workspace_swipe_cancel_ratio = 0.5;
workspace_swipe_create_new = 1;
workspace_swipe_forever = 1;
};
general = {
layout = "dwindle";
gaps_in = 6;
gaps_out = 8;
border_size = 2;
resize_on_border = true;
# "col.active_border" = "rgb(${config.lib.stylix.colors.base08}) rgb(${config.lib.stylix.colors.base0C}) 45deg";
# "col.inactive_border" = "rgb(${config.lib.stylix.colors.base01})";
};
misc = {
layers_hog_keyboard_focus = true;
initial_workspace_tracking = 0;
mouse_move_enables_dpms = true;
key_press_enables_dpms = false;
disable_hyprland_logo = true;
disable_splash_rendering = true;
enable_swallow = true;
swallow_regex = "^(kitty)$";
vrr = 2; # Variable Refresh Rate Might need to set to 0 for NVIDIA/AQ_DRM_DEVICES
# Screen flashing to black momentarily or going black when app is fullscreen
# Try setting vrr to 0
# Application not responding (ANR) settings
enable_anr_dialog = true;
anr_missed_pings = 15;
};
dwindle = {
# pseudotile = true;
preserve_split = true;
force_split = 2;
};
decoration = {
rounding = 10;
rounding_power = 2;
blur = {
enabled = true;
size = 5;
passes = 3;
vibrancy = 0.1696;
ignore_opacity = false;
new_optimizations = true;
};
shadow = {
enabled = true;
range = 4;
render_power = 3;
# color = "rgba(1a1a1aee)";
};
};
ecosystem = {
no_donation_nag = true;
no_update_news = false;
};
cursor = {
sync_gsettings_theme = true;
no_hardware_cursors = 2; # change to 1 if want to disable
enable_hyprcursor = false;
warp_on_change_workspace = 2;
no_warps = true;
};
render = {
# Disabling as no longer supported
#explicit_sync = 1; # Change to 1 to disable
#explicit_sync_kms = 1;
direct_scanout = 0;
};
debug = {
vfr = true; # Variable Frame Rate
full_cm_proto = true;
};
master = {
new_status = "master";
new_on_top = 1;
mfact = 0.5;
};
# Ensure Xwayland windows render at integer scale; compositor scales them
xwayland.force_zero_scaling = true;
};
settings.monitor =
[
{
output = "";
mode = "preferred";
position = "auto";
scale = "auto";
}
{
output = "Virtual-1";
mode = "1920x1080@60";
position = "auto";
scale = 1;
}
]
++ extraMonitorSettings;
settings.layer_rule = {
match.namespace = "noctalia-background-\\..*$";
blur = true;
blur_popups = true;
ignore_alpha = 0.5;
};
};
}