- Real window glow (decoration.glow) plus borders and tab bar take their colours from DMS (hypr/dms/colors.lua); Hyprland reloads when DMS changes the theme. - kitty: colours and tab colours come from DMS (dank-theme/dank-tabs), no more hard-coded palette. - Group (tab) mode: Mod+W tabs the whole workspace, thinner tab bar. - Fullscreen programs keep the DMS bar (Mod+F maximizes, Mod+Shift+F is real fullscreen); per-monitor workspace switching on Mod+Tab. - Less jelly animations, smaller gaps, weaker glow. - JetBrains Mono is the default monospace font (fontconfig + install.sh). - DMS settings: purple theme, popup transparency 0.98. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
110 lines
7.4 KiB
Markdown
110 lines
7.4 KiB
Markdown
# 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` | терминал: цвета и вкладки подключены из файлов DMS, прозрачность 0.80 |
|
||
| `fontconfig/60-monospace-jetbrains.conf` | JetBrains Mono — моноширинный шрифт по умолчанию для всех программ |
|
||
| `install.sh` | установка на чистую Fedora: по умолчанию только визуал, `--full` — ещё инструменты и приложения |
|
||
| `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 # визуал + SSH-меню
|
||
./install.sh --full # + остальные инструменты и приложения
|
||
```
|
||
|
||
**По умолчанию:** COPR `sachesi/hyprland` (в репозиториях Fedora Hyprland нет) и `avengemedia/dms`, затем
|
||
Hyprland, DMS (панель, лаунчер, уведомления, блокировка, обои, тема), шрифт JetBrains Mono, терминал kitty,
|
||
**SSH-меню со всем, на чём оно держится** (fzf, tmux, jq, micro, nautilus для SFTP, `ssh-copy-id`, уведомления)
|
||
и конфиги: `hypr`, настройки DMS, `kitty`, `hyprland-session.target` (нужен порталам). Создаётся `~/.ssh/sockets`.
|
||
|
||
**Не ставится без `--full`:** Chrome, Telegram, Remmina, клиент Nextcloud (Flatpak), KeePassXC, OCR (tesseract),
|
||
скриншоты (grim, slurp), пипетка, сетевой редактор с кнопкой в панели (плагин `networkEditor`). Бинды на эти
|
||
программы остаются в конфиге и просто ничего не делают. `Alt+W` в SSH-меню открывает сайт хоста в браузере
|
||
по умолчанию, если Chrome (Flatpak) не установлен.
|
||
|
||
Сам `~/.ssh/config` и ключи в репозиторий не входят, их нужно перенести самому: меню читает ваш конфиг.
|
||
|
||
Существующие конфиги не затираются: они переносятся в `*.bak-<время>`, повторный запуск безопасен.
|
||
`--yes` отключает вопросы, `--no-packages` и `--no-config` пропускают этапы.
|
||
После установки выйдите из сессии и выберите в 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` (если DMS не запущен, запасной вариант — hyprlock).
|
||
|
||
## Обновление репозитория
|
||
|
||
```bash
|
||
./sync.sh && git add -A && git commit -m "…" && git push
|
||
```
|