Initial commit: Hyprland 0.57 rice for Fedora 44

Dark minimalist setup for a sysadmin workstation: rounded blur windows with
the DMS pink accent, keyboard-driven SSH hub (Mod+S), run-or-raise app
binds, Alt+Tab window switching, OCR of screen regions, hotkey cheatsheet,
DMS network-editor plugin and the systemd session target for portals.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-30 13:50:27 +05:00
co-authored by Claude Sonnet 5.5
commit 946d93faa7
19 changed files with 2068 additions and 0 deletions
+94
View File
@@ -0,0 +1,94 @@
# 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` | терминал |
| `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
и запуском команды спрашивается подтверждение.
## Установка
Hyprland нет в репозиториях Fedora 44, он ставится из COPR:
```bash
sudo dnf copr enable sachesi/hyprland
sudo dnf install hyprland hyprlock hypridle hyprpaper hyprpicker \
xdg-desktop-portal-hyprland hyprland-guiutils hyprpolkitagent cliphist playerctl
# инструменты, которые используют скрипты
sudo dnf install fzf tmux kitty jq grim slurp wl-clipboard brightnessctl \
nautilus keepassxc nm-connection-editor tesseract tesseract-langpack-eng \
tesseract-langpack-rus ImageMagick jetbrains-mono-fonts
```
DMS ставится из COPR `avengemedia/dms` (см. документацию DMS). В автозапуске и на биндах
используются Flatpak-приложения: `com.google.Chrome`, `org.telegram.desktop`,
`org.remmina.Remmina`, `com.nextcloud.desktopclient.nextcloud`.
```bash
git clone git@git.ibrash.duckdns.org:aibrash/hyprland-rising.git
cd hyprland-rising
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
```
Чтобы плагин `networkEditor` заработал, включите его в настройках DMS (Plugins) и добавьте виджет
в панель. Либо скопируйте `dms/settings.json` в `~/.config/dms/` и создайте
`~/.config/dms/plugin_settings.json` с содержимым `{"networkEditor": {"enabled": true}}`, затем `dms restart`.
После этого выберите в GDM сессию **Hyprland** (не `hyprland-uwsm`).
## Под себя
* В `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
```