2026-04-30 17:26:29 +04:00
2026-04-04 01:46:51 +04:00
2026-04-04 01:46:51 +04:00
2026-04-30 17:21:33 +04:00
2026-04-30 17:26:29 +04:00
2026-04-21 13:40:50 +04:00
2026-04-21 15:53:14 +04:00

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 hyprlock hypridle python-dbus python-evdev python-gobject libnotify wl-clipboard cliphist socat 

Для корректной работы python-evdev добавляет своего пользователя в группу input:

usermoad -aG input $USER
S
Description
No description provided
Readme
1.4 MiB
Languages
Python 67.9%
SCSS 27.5%
Shell 4.6%