2581c8a411e97a0eedf2fa765ad4b29dc29507b6
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:
yay -S eww
dunst, rofi, hyprland:
pacman -S dunst rofi hyprland
Зависимости для eww:
pacman -S xorg-xrand jq xdg-desktop-portal-gtk hyprpolkitagent python-dbus python-evdev python-gobject libnotify wl-clipboard cliphist socat
Для корректной работы python-evdev добавляет своего пользователя в группу input:
usermoad -aG input $USER
Languages
Python
67.9%
SCSS
27.5%
Shell
4.6%