dotfiles/home/by-host/endurance/hyprland/settings.nix
Christopher Mühl 7af406f315
feat: add Hyprland as an additional compositor alongside Niri
Enables programs.hyprland at the system level, adds xdg-desktop-portal-hyprland
with per-compositor portal routing, and wires up a home-manager config for
endurance mirroring the Niri layout (same keybinds, monitors, window rules).
Niri remains the default SDDM session.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-19 10:53:30 +01:00

85 lines
1.8 KiB
Nix

{pkgs, ...}: {
wayland.windowManager.hyprland.settings = {
monitor = [
# Main ultrawide (left)
"HDMI-A-1,3840x1080,0x0,1"
# Vertical display (right)
"DP-3,1920x1080,3840x-430,1,transform,1"
# Fallback for any other monitor
",preferred,auto,1"
];
exec-once = [
# Clipboard history
"wl-paste --type text --watch cliphist store"
"wl-paste --type image --watch cliphist store"
# Automount USB drives
"udiskie"
];
env = [
"MOZ_ENABLE_WAYLAND,1"
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
"ELECTRON_OZONE_PLATFORM_HINT,auto"
"NIXOS_OZONE_WL,1"
"XDG_SESSION_TYPE,wayland"
"XDG_CURRENT_DESKTOP,Hyprland"
];
input = {
kb_layout = "us";
kb_variant = "intl";
follow_mouse = 2;
sensitivity = 0;
};
general = {
gaps_in = 8;
gaps_out = 15;
border_size = 2;
layout = "dwindle";
};
decoration = {
rounding = 8;
blur = {
enabled = true;
size = 4;
passes = 2;
noise = 0.3;
};
shadow = {
enabled = true;
range = 4;
render_power = 3;
};
};
animations = {
enabled = true;
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
animation = [
"windows, 1, 7, myBezier"
"windowsOut, 1, 7, default, popin 80%"
"border, 1, 10, default"
"fade, 1, 7, default"
"workspaces, 1, 6, default"
];
};
# Single tiled window on main monitor: give it breathing room
workspace = [
"w[t1] m[HDMI-A-1], gapsout:15 840 15 840"
];
dwindle = {
pseudotile = true;
preserve_split = true;
};
misc = {
disable_hyprland_logo = true;
disable_splash_rendering = true;
};
};
}