# Hyprland Dotfiles Кастомное окружение рабочего стола для **Hyprland**, сфокусированное на производительности и глубокой интеграции с системными событиями через **Eww**. Обновление интерфейса происходит мгновенно по сигналу от системы, а не по тяжелым таймерам. ## Стек | Компонент | Технология | Описание | | :--- | :--- | :--- | | **Window Manager** | Hyprland | Wayland-композитор с динамическими воркспейсами. | | **Widget system** | Eww | Отрисовка баров и виджетов на базе GTK. | | **State Management** | Python / Socat | Скрипты-демоны для обработки IPC-событий. | | **Notification** | Dunst | Легковесный демон уведомлений. | | **Application Launcher** | Rofi | Переписанный под Wayland лаунчер с кастомной темой. | ## Архитектурные особенности ### 1. Workspace Management В отличие от стандартных модулей, здесь используется `UnifiedWorkspaceManager` на Python. * **Механизм:** Скрипт подключается к Unix-сокету Hyprland (`.socket2.sock`) и слушает поток событий (`openwindow`, `closewindow`, `activewindow`). * **Оптимизация:** Обновление json-состояния происходит только при изменении структуры окон, что сводит нагрузку на cpu к минимуму. * **Визуализация:** Поддержка динамических иконок приложений и индикация состояния `urgent` (через css-анимацию `pulse-lavender`). ### 2. Системный мониторинг и управление Комплекс виджетов в правой части панели разделен на независимые модули: * **Audio Subsytem:** Использует `pactl subscribe`. Виджет мгновенно отражает изменения громкости, сделанные горячими клавишами, без опроса системы в цикле. * **Hardware Stats:** Мониторинг cpu (avg), ram и nvidia gpu temp. Реализована логика визуального предупреждения: при достижении критических температур (75°C+) или нагрузки (90%+), виджет переходит в состояние `.alert`, меняя визуальный стиль. * **Keyboard LED Monitor:** Реализован через прямую прослушку `/dev/input/` с использованием библиотеки `evdev`. Позволяет отображать состояние Caps/Num Lock даже если они переключаются внешними скриптами. ## Dunst & Rofi Integration Уведомления и лаунчер полностью синхронизированы по цветам и радиусам скругления с основным баром, создавая единое визуальное пространство.
Превью Dunst и Rofi #### Dunst (Notifications) #### Rofi (App Launcher)
## Зависимости `eww` доступен только в `AUR`: ```Bash yay -S eww ``` `dunst`, `rofi`, `hyprland`: ```Bash pacman -S dunst rofi hyprland ``` Зависимости для `eww`: ```Bash pacman -S xorg-xrand jq xdg-desktop-portal-gtk hyprpolkitagent hyprlock hypridle python-dbus python-evdev python-gobject libnotify wl-clipboard cliphist socat ``` Для корректной работы `python-evdev` добавляет своего пользователя в группу `input`: ```Bash usermoad -aG input $USER ```