synix/modules/home/hyprland/settings.nix
sid 3a78de7dc2
All checks were successful
Build tests / build-hosts (pull_request) Successful in 1m10s
Flake check / flake-check (pull_request) Successful in 4m31s
hyprland: fix dbus and gnome-keyring, fix non floating classes
2026-03-30 22:02:47 +02:00

71 lines
1.9 KiB
Nix

{ config, lib, ... }:
let
cfg = config.wayland.windowManager.hyprland;
nonFloatingClasses = [
"Gimp"
"steam"
"KiCad"
];
nonFloatingClassesRegex = concatStringsSep "|" nonFloatingClasses;
inherit (builtins) concatStringsSep toString;
inherit (lib) mkDefault;
in
{
# Do not add binds here. Use `./binds/default.nix` instead.
"$mod" = cfg.modifier;
exec-once = [
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" # dbus package comes from NixOS module option `services.dbus.dbusPackage` [1]
"gnome-keyring-daemon --start --components=secrets" # gnome-keyring package comes from NixOS module `services.gnome.gnome-keyring` [1]
];
# 1: see Hyprland NixOS module
windowrule = [
# "float, class:^(${nonFloatingClassesRegex})$"
"center, floating:1, class:^(?!.*(${nonFloatingClassesRegex})).*$"
"float, title:^(Open|Save) Files?$"
"noborder, onworkspace:w[t1]"
"bordersize ${toString cfg.settings.general.border_size}, floating:1"
# https://wiki.hyprland.org/Useful-Utilities/Screen-Sharing/#xwayland
"opacity 0.0 override, class:^(xwaylandvideobridge)$"
"noanim, class:^(xwaylandvideobridge)$"
"noinitialfocus, class:^(xwaylandvideobridge)$"
"maxsize 1 1, class:^(xwaylandvideobridge)$"
"noblur, class:^(xwaylandvideobridge)$"
];
# Layouts
general.layout = mkDefault "master";
master = {
mfact = mkDefault 0.5;
new_status = mkDefault "master";
new_on_top = mkDefault true;
};
input.kb_layout = mkDefault "de";
xwayland = {
force_zero_scaling = mkDefault true;
};
misc = {
disable_hyprland_logo = mkDefault true;
force_default_wallpaper = mkDefault 0;
};
# Styling
animations.enabled = mkDefault false;
decoration = {
blur.enabled = mkDefault false;
shadow.enabled = mkDefault false;
};
general = {
resize_on_border = mkDefault true;
border_size = mkDefault 2;
};
}