docs: added readme
fix: fixed scss fix: fixed dunstrc
This commit is contained in:
@@ -1,2 +1,72 @@
|
||||
# dotfiles-hypr
|
||||
# Hyprland Dotfiles
|
||||
|
||||
Кастомное окружение рабочего стола для **Hyprland**, сфокусированное на производительности и глубокой интеграции с системными событиями через **Eww**. Обновление интерфейса происходит мгновенно по сигналу от системы, а не по тяжелым таймерам.
|
||||
|
||||
## Стек
|
||||
|
||||
| Компонент | Технология | Описание |
|
||||
| :--- | :--- | :--- |
|
||||
| **Window Manager** | Hyprland | Wayland-композитор с динамическими воркспейсами. |
|
||||
| **Widget system** | Eww | Отрисовка баров и виджетов на базе GTK. |
|
||||
| **State Management** | Python / Socat | Скрипты-демоны для обработки IPC-событий. |
|
||||
| **Notification** | Dunst | Легковесный демон уведомлений. |
|
||||
| **Application Launcher** | Rofi | Переписанный под Wayland лаунчер с кастомной темой. |
|
||||
|
||||
---
|
||||
|
||||
## Архитектурные особенности
|
||||
|
||||
### 1. unified workspace management (ipc)
|
||||
В отличие от стандартных модулей, здесь используется `UnifiedWorkspaceManager` на Python.
|
||||
* **Механизм:** Скрипт подключается к Unix-сокету Hyprland (`.socket2.sock`) и слушает поток событий (`openwindow`, `closewindow`, `activewindow`).
|
||||
* **Оптимизация:** Обновление json-состояния происходит только при изменении структуры окон, что сводит нагрузку на cpu к минимуму.
|
||||
* **Визуализация:** Поддержка динамических иконок приложений и индикация состояния `urgent` (через css-анимацию `pulse-lavender`).
|
||||
|
||||
<video src="assets/eww_left.mkv" width="100%" autoplay loop muted></video>
|
||||
|
||||
### 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 даже если они переключаются внешними скриптами.
|
||||
|
||||
<video src="assets/eww_right.mkv" width="100%" autoplay loop muted></video>
|
||||
|
||||
## Dunst & Rofi Integration
|
||||
|
||||
Уведомления и лаунчер полностью синхронизированы по цветам и радиусам скругления с основным баром, создавая единое визуальное пространство.
|
||||
|
||||
<details>
|
||||
<summary>Превью Dunst и Rofi</summary>
|
||||
|
||||
#### Dunst (Notifications)
|
||||
<video src="assets/dunst.mkv" width="80%" autoplay loop muted></video>
|
||||
|
||||
#### Rofi (App Launcher)
|
||||
<video src="assets/rofi.mkv" width="80%" autoplay loop muted></video>
|
||||
|
||||
</details>
|
||||
|
||||
## Зависимости
|
||||
|
||||
Установите необходимые пакеты через ваш менеджер пакетов:
|
||||
|
||||
```Bash
|
||||
# core & ipc
|
||||
eww socat
|
||||
|
||||
# audio & input
|
||||
pactl python-evdev
|
||||
|
||||
# telemetry (nvidia)
|
||||
nvidia-smi
|
||||
```
|
||||
|
||||
## Инициализация
|
||||
|
||||
Для корректной инициализации слоев используйте open-many в конфиге Hyprland:
|
||||
|
||||
```Conf
|
||||
exec-once = eww daemon && eww open-many bar_0 bar_1 wallpaper_0 wallpaper_1
|
||||
```
|
||||
Reference in New Issue
Block a user