# hyprland-rising Hyprland 0.57 на Fedora 44: тёмный минималистичный райс для рабочей машины сисадмина. Скруглённые окна с блюром, розовый акцент из темы DMS, всё управляется с клавиатуры. ## Что внутри | Путь | Что это | |---|---| | `hypr/hyprland.lua` | основной конфиг (Lua-формат Hyprland 0.57): оформление, анимации, бинды, правила окон | | `hypr/hypridle.conf` | затемнение (2,5 мин) → блокировка (5 мин) → погасание экрана (10 мин) | | `hypr/cheatsheet.txt` | справка по хоткеям, открывается на `Mod+F1` (поиск по тексту) | | `hypr/scripts/ssh-menu.sh`, `ssh_hosts.py` | SSH-меню на `Mod+S` (см. ниже) | | `hypr/scripts/raise.sh` | «показать, если запущено, иначе запустить» для `Mod+B/T/K` | | `hypr/scripts/prev-window.sh` | `Alt+Tab` — предыдущее окно | | `hypr/scripts/ocr.sh` | `Mod+Shift+O` — область экрана → текст в буфер (рус+англ) | | `hypr/scripts/tmux-broadcast.conf` | отдельный tmux для broadcast-окон SSH-меню | | `dms/plugins/networkEditor` | плагин DMS: кнопка в панели, открывает `nm-connection-editor` | | `dms/settings.json` | настройки DMS (панель, тема `pink`, лаунчер) | | `systemd/user/hyprland-session.target` | нужен порталам (`xdg-desktop-portal`) вне uwsm | | `kitty/kitty.conf` | терминал | | `install.sh` | установка на чистую Fedora: репозитории, пакеты, Flatpak, конфиги | | `sync.sh` | копирует живой конфиг из `~/.config` в репозиторий | Панель, уведомления, лаунчер, блокировка, обои и буфер обмена — это DankMaterialShell (DMS), Hyprland отвечает только за окна. ## SSH-меню (`Mod+S`) Плавающее окно (fzf в kitty) со всеми хостами из `~/.ssh/config`: статус доступности, группы цветом, плашка `PROD`, превью с пингом. `Enter` — подключиться (окно становится обычным), `Alt+T` tmux на сервере, `Alt+F` SFTP, `Alt+W` веб-интерфейс, `Alt+K` разослать ключ, `Alt+N` новый хост, `Alt+E` править конфиг, `Alt+G` группа, `Alt+R` PROD, `Tab` отметить, `Alt+B` broadcast в tmux на отмеченные хосты, `Alt+X` команда на отмеченных хостах. Метаданные хоста хранятся комментариями прямо над `Host` в `~/.ssh/config`: ``` # group: Proxmox # env: prod # url: https://10.0.0.10:8006 Host proxmox1 HostName 10.0.0.10 User root ``` Сам `~/.ssh/config` и ключи в репозиторий не входят. Перед любой записью меню делает бэкап в `~/.local/state/ssh-menu/backups`. Для хостов с `env: prod` перед broadcast и запуском команды спрашивается подтверждение. ## Установка на чистую Fedora Нужна обычная Fedora (в том числе без Hyprland), пользователь с `sudo` и сеть: ```bash git clone git@git.ibrash.duckdns.org:aibrash/hyprland-rising.git cd hyprland-rising ./install.sh --dry-run # посмотреть, что будет сделано, ничего не меняя ./install.sh # установить ``` Скрипт по шагам: 1. подключает COPR `sachesi/hyprland` (Hyprland нет в репозиториях Fedora) и `avengemedia/dms` (DMS); 2. ставит Hyprland с утилитами, DMS и инструменты для скриптов (kitty, fzf, tmux, grim, tesseract и т. д.); 3. ставит Flatpak-приложения из биндов и автозапуска: Chrome, Telegram, Remmina, клиент Nextcloud; 4. раскладывает конфиги в `~/.config` (`hypr`, плагин и настройки DMS, `kitty`, `hyprland-session.target`), включает плагин `networkEditor` и создаёт `~/.ssh/sockets`. Существующие конфиги не затираются: они переносятся в `*.bak-<время>`, повторный запуск безопасен. Этапы можно пропустить: `--no-packages`, `--no-flatpak`, `--no-config`; `--yes` отключает вопросы. После установки выйдите из сессии и выберите в GDM **Hyprland** (не `hyprland-uwsm`). COPR — сторонние репозитории, пакеты в них никем не проверяются. ### Вручную (без скрипта) ```bash sudo dnf copr enable sachesi/hyprland avengemedia/dms sudo dnf install hyprland hyprlock hypridle hyprpaper hyprpicker hyprland-guiutils hyprpolkitagent \ xdg-desktop-portal-hyprland xdg-desktop-portal-gtk dms cp -r hypr ~/.config/ mkdir -p ~/.config/dms/plugins ~/.config/systemd/user cp -r dms/plugins/networkEditor ~/.config/dms/plugins/ cp systemd/user/hyprland-session.target ~/.config/systemd/user/ systemctl --user daemon-reload ``` Полный список пакетов-инструментов см. в начале `install.sh`. Плагин `networkEditor` включите в настройках DMS (Plugins) или создайте `~/.config/dms/plugin_settings.json` с `{"networkEditor": {"enabled": true}}` и выполните `dms restart`. ## Под себя * В `hypr/hyprland.lua` имена мониторов (`eDP-1`, `HDMI-A-1`) и масштаб 1.25 — под конкретный ноутбук. * Раскладка (`us,ru`, переключение Alt+Shift), чувствительность тачпада и мыши — там же, в блоке `input`. * Блокировку экрана делает DMS через `hypr/scripts/lock.sh` (с запасным вариантом swaylock). ## Обновление репозитория ```bash ./sync.sh && git add -A && git commit -m "…" && git push ```