Files
hyprland-rising/README.md
T
aibrashandClaude Sonnet 5.5 bbae1ab913 install.sh: install the SSH menu and its dependencies by default
fzf, tmux, jq, micro, nautilus, openssh-clients and friends are now part of
the default run, and ~/.ssh/sockets is always created. --full keeps the
remaining tools and the Flatpak apps. The menu's web action (Alt+W) falls
back to xdg-open when Chrome (Flatpak) is not installed.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 13:57:31 +05:00

109 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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: по умолчанию только визуал, `--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` (с запасным вариантом swaylock).
## Обновление репозитория
```bash
./sync.sh && git add -A && git commit -m "…" && git push
```