Eroror hyprland

# ~/.config/home-manager/desktop/hyprland/hyprland.conf
# Актуализированная конфигурация Hyprland (v0.34.0+)

# --- Мониторы ---
# Автоопределение обычно работает для одного монитора. Используй hyprctl monitors для имен.
monitor=,preferred,auto,1
# monitor=DP-1,1920x1080@144,0x0,1 # Пример

# --- Автозапуск ---
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=Hyprland # Важно для D-Bus
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # Важно для systemd --user
exec-once = hyprpaper & # Запуск обоев
exec-once = waybar & # Запуск панели
exec-once = dunst & # Запуск демона уведомлений (используем dunst вместо mako)
exec-once = wl-paste --watch cliphist store & # Запуск истории буфера обмена
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & # Агент Polkit (путь может отличаться в NixOS, но пакет установлен)
exec-once = nm-applet --indicator & # Апплет NetworkManager

# --- Переменные Окружения ---
# Устанавливаются через home.sessionVariables, но можно дублировать для надежности
env = XCURSOR_SIZE,24
env = HYPRCURSOR_THEME, capitaine-cursors # Пример темы курсора (нужно установить пакет)
env = HYPRCURSOR_SIZE,24
# env = LIBVA_DRIVER_NAME,nvidia # Уже должно быть из sessionVariables
# env = GBM_BACKEND,nvidia-drm # Уже должно быть из sessionVariables
# env = __GLX_VENDOR_LIBRARY_NAME,nvidia # Уже должно быть из sessionVariables
# env = WLR_NO_HARDWARE_CURSORS,1 # Уже должно быть из sessionVariables
env = QT_QPA_PLATFORMTHEME,qt5ct # Для тем Qt, если используешь qt5ct
# env = QT_STYLE_OVERRIDE,kvantum # Если используешь Kvantum
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland

# --- Ввод ---
input {
    kb_layout = us,ru
    kb_options = grp:alt_shift_toggle,ctrl:nocaps # Alt+Shift переключает, Caps Lock как Ctrl
    kb_rules =

    follow_mouse = 1          # Фокус следует за мышью
    numlock_by_default = true
    repeat_rate = 50
    repeat_delay = 250

    touchpad {
        natural_scroll = no
        disable_while_typing = true
        clickfinger_behavior = true # Клик одним пальцем = ЛКМ
        middle_emulation = false    # Клик двумя пальцами = ПКМ (если true)
    }

    sensitivity = 0.0 # [-1.0; 1.0], 0 = по умолчанию
    accel_profile = flat # 'adaptive' или 'flat'
}

# --- Основные Настройки ---
general {
    gaps_in = 5
    gaps_out = 10
    border_size = 2

    col.active_border = rgba(81A1C1ee) rgba(5E81ACee) 45deg # Nord Frost 2 & 1
    col.inactive_border = rgba(4C566Aaa) # Nord Polar Night 3

    layout = dwindle

    allow_tearing = false # Обычно false лучше
}

# --- Декорации ---
decoration {
    rounding = 10

    # Тени
    drop_shadow = yes
    shadow_range = 15
    shadow_render_power = 3
    col.shadow = rgba(2E344088) # Nord Polar Night 1 (полупрозрачный)

    # Размытие (опционально, влияет на производительность)
    blur {
        enabled = true
        size = 8
        passes = 4 # 3-4 обычно достаточно
        new_optimizations = on
        ignore_opacity = true # Размывать даже если окно прозрачное
        xray = false # Не "просвечивать" размытые окна
    }

    # Затемнение неактивных окон
    dim_inactive = true
    dim_strength = 0.15
}

# --- Анимации ---
animations {
    enabled = yes

    # Анимации окон, границ, затухания, рабочих столов
    bezier = linear, 0.0, 0.0, 1.0, 1.0
    bezier = smoothOut, 0.36, 0, 0.66, -0.56
    bezier = smoothIn, 0.25, 1, 0.5, 1

    animation = windows, 1, 5, smoothOut, slide
    animation = windowsOut, 1, 5, smoothIn, slide
    animation = border, 1, 10, linear
    animation = borderangle, 1, 30, linear, loop # Вращение градиента рамки
    animation = fade, 1, 5, smoothIn
    animation = fadeDim, 1, 5, smoothIn # Анимация затемнения
    animation = workspaces, 1, 6, smoothOut, slidevert # Слайд вверх/вниз

}

# --- Тайлинг ---
dwindle {
    pseudotile = yes
    preserve_split = yes
    force_split = 0 # 0=auto, 1=right, 2=down
    no_gaps_when_only = false # Оставлять отступы, даже если окно одно
}

master {
    new_is_master = true
    no_gaps_when_only = false
}

# --- Жесты ---
gestures {
    workspace_swipe = true # Свайп 3 пальцами для переключения столов
    workspace_swipe_fingers = 3
    workspace_swipe_distance = 300
    workspace_swipe_invert = true # Инвертировать направление
}

# --- Разное ---
misc {
    disable_hyprland_logo = true
    disable_splash_rendering = true # Отключить сплеш
    vfr = true # Перерисовка по необходимости
    vrr = 0 # 0=off, 1=on, 2=fullscreen (для Adaptive Sync)
    enable_swallow = true # Поглощение терминала при запуске GUI из него
    swallow_regex = ^(kitty|alacritty|foot)$ # Какие терминалы могут поглощаться
    focus_on_activate = true # Передавать фокус приложению, которое его запросило
    force_default_wallpaper = -1 # Не устанавливать обои по умолчанию
}

# --- Бинды ---
$mainMod = SUPER

# Основные действия
bind = $mainMod, Q, killactive,
bind = $mainMod SHIFT, Q, exit, # Выход
bind = $mainMod, F, togglefloating, # Плавающий режим
bind = $mainMod SHIFT, F, fullscreen, 0 # Полный экран
bind = $mainMod, P, pseudo, # Псевдо-тайлинг
bind = $mainMod, J, togglesplit, # Смена разделения

# Запуск приложений
bind = $mainMod, RETURN, exec, kitty # Терминал
bind = $mainMod, D, exec, wofi --show drun -I -p "Run:" # Лаунчер (drиn = приложения)
bind = $mainMod, B, exec, firefox # Браузер
bind = $mainMod, E, exec, kate # Редактор

# Перемещение фокуса
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, movefocus, d # Переопределяем J для фокуса вниз

# Перемещение окон
bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, up, movewindow, u
bind = $mainMod SHIFT, down, movewindow, d
bind = $mainMod SHIFT, H, movewindow, l
bind = $mainMod SHIFT, L, movewindow, r
bind = $mainMod SHIFT, K, movewindow, u
bind = $mainMod SHIFT, J, movewindow, d

# Переключение столов
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10

# Перемещение окон на столы
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10

# Скроллинг столов
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1

# Перемещение/изменение размера мышью
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

# Скриншоты (grim + slurp)
bind = , Print, exec, grim - | wl-copy # Весь экран в буфер
bind = SHIFT, Print, exec, grim -g "$(slurp)" - | wl-copy # Область в буфер
bind = $mainMod, Print, exec, grim ~/Pictures/Screenshots/$(date +'%Y-%m-%d_%H%M%S').png # Весь экран в файл
bind = $mainMod SHIFT, Print, exec, grim -g "$(slurp)" ~/Pictures/Screenshots/$(date +'%Y-%m-%d_%H%M%S').png # Область в файл

# Буфер обмена (cliphist + wofi)
bind = $mainMod, V, exec, cliphist list | wofi --dmenu -p "Clipboard" | cliphist decode | wl-copy

# Блокировка
bind = $mainMod CTRL, L, exec, swaylock -f -c 000000

# Управление звуком (wpctl)
bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ # Повысить громкость (le = lock + execute)
bindle=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- # Понизить
bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle # Выкл/Вкл звук (l = lock)

# Управление яркостью (brightnessctl)
bindle=, XF86MonBrightnessUp, exec, brightnessctl set 5%+ # Увеличить яркость
bindle=, XF86MonBrightnessDown, exec, brightnessctl set 5%- # Уменьшить

# --- Правила для Окон ---
# Плавающие окна
windowrulev2 = float, class:^(pavucontrol|blueman-manager|nm-connection-editor|org\.kde\.ark|file-roller)$
windowrulev2 = float, title:^(Calculator|File Operation Progress|Confirm|Save As|About)$
windowrulev2 = float, class:^(xdg-desktop-portal-.*)$

# Задать размер некоторым плавающим окнам
windowrulev2 = size 800 600, class:^(pavucontrol|nm-connection-editor)$
windowrulev2 = center, class:^(pavucontrol|nm-connection-editor)$

# Задать прозрачность терминалу Kitty
windowrulev2 = opacity 0.9 0.8, class:^(kitty)$

Can you please edit your post and add proper codefences?

```nix
# your code
```

One way to achieve this is to select all the code and then hit the </> button.

format seems to have changed at some point for shadow

# for eg. this should work now
  shadow {
    enabled = true
    range = 8
    render_power = 2
    color = rgba(00000044)
  }

similarly look for other option related errors in the docs site I linked above.