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>
This commit is contained in:
+18
-12
@@ -1,8 +1,8 @@
|
||||
#!/bin/bash
|
||||
# Установка райса на чистую Fedora (в том числе без Hyprland).
|
||||
#
|
||||
# ./install.sh только визуальная часть: Hyprland, DMS, шрифты, терминал + конфиги
|
||||
# ./install.sh --full + инструменты для скриптов/биндов (fzf, tmux, tesseract, …) и приложения (Flatpak)
|
||||
# ./install.sh визуал (Hyprland, DMS, шрифт, терминал) + SSH-меню и всё, что ему нужно + конфиги
|
||||
# ./install.sh --full + остальные инструменты (OCR и др.) и приложения (Chrome, Telegram, … через Flatpak)
|
||||
# ./install.sh --dry-run только показать, что будет сделано (ничего не меняет)
|
||||
# ./install.sh --yes не задавать вопросов
|
||||
# ./install.sh --no-packages / --no-config пропустить этап
|
||||
@@ -24,11 +24,14 @@ PKGS_HYPR=(hyprland hypridle hyprpolkitagent hyprland-guiutils
|
||||
PKGS_SHELL=(dms)
|
||||
# шрифт панели и терминал, wl-clipboard и brightnessctl нужны панели и затемнению экрана
|
||||
PKGS_VISUAL=(jetbrains-mono-fonts kitty wl-clipboard brightnessctl)
|
||||
# SSH-меню (Mod+S): fzf — интерфейс, tmux — broadcast и Alt+T, openssh-clients — ssh-copy-id, python3 — разбор
|
||||
# ~/.ssh/config, libnotify — уведомления, micro — правка конфига (Alt+E), nautilus — SFTP (Alt+F);
|
||||
# jq — Alt+Tab и «показать или запустить» (Mod+B/T/K); iputils, less, xdg-utils — пинг, вывод и браузер
|
||||
PKGS_MENU=(fzf tmux jq python3 openssh-clients libnotify micro nautilus iputils less xdg-utils)
|
||||
# --- только с --full ---
|
||||
PKGS_TOOLS=(hyprpicker hyprlock cliphist playerctl libnotify fzf tmux jq grim slurp
|
||||
nautilus keepassxc nm-connection-editor network-manager-applet pavucontrol fuzzel micro
|
||||
openssh-clients python3 flatpak tesseract tesseract-langpack-eng tesseract-langpack-rus
|
||||
ImageMagick)
|
||||
PKGS_TOOLS=(hyprpicker hyprlock cliphist playerctl grim slurp keepassxc nm-connection-editor
|
||||
network-manager-applet pavucontrol fuzzel flatpak tesseract tesseract-langpack-eng
|
||||
tesseract-langpack-rus ImageMagick)
|
||||
FLATPAKS=(com.google.Chrome org.telegram.desktop org.remmina.Remmina com.nextcloud.desktopclient.nextcloud)
|
||||
|
||||
c_hi=$'\e[1;38;2;233;30;99m'; c_dim=$'\e[2m'; c_err=$'\e[31m'; c_off=$'\e[0m'
|
||||
@@ -60,7 +63,7 @@ for d in hypr dms/plugins/networkEditor systemd/user kitty; do
|
||||
done
|
||||
. /etc/os-release 2>/dev/null || true
|
||||
info "система: ${PRETTY_NAME:-unknown}"
|
||||
info "режим: $([ $FULL = 1 ] && echo 'полный (визуал + инструменты + приложения)' || echo 'только визуал')"
|
||||
info "режим: $([ $FULL = 1 ] && echo 'полный (+ инструменты и приложения)' || echo 'визуал + SSH-меню')"
|
||||
if [ "${ID:-}" != fedora ]; then
|
||||
warn "это не Fedora: пакетный этап рассчитан на dnf и COPR"
|
||||
[ $DO_PKG = 1 ] && { ask "продолжить всё равно?" || exit 1; }
|
||||
@@ -84,9 +87,11 @@ if [ $DO_PKG = 1 ]; then
|
||||
run sudo dnf -y install "${PKGS_SHELL[@]}"
|
||||
step "Шрифт, терминал и базовые утилиты оформления"
|
||||
run sudo dnf -y install "${PKGS_VISUAL[@]}"
|
||||
step "SSH-меню и навигация по окнам"
|
||||
run sudo dnf -y install "${PKGS_MENU[@]}"
|
||||
|
||||
if [ $FULL = 1 ]; then
|
||||
step "Инструменты для скриптов и биндов"
|
||||
step "Остальные инструменты (OCR, скриншоты, пипетка и т. д.)"
|
||||
run sudo dnf -y install --skip-unavailable "${PKGS_TOOLS[@]}"
|
||||
step "Flatpak-приложения: ${FLATPAKS[*]}"
|
||||
info "Chrome, Telegram, Remmina и клиент Nextcloud используются в бинах и автозапуске."
|
||||
@@ -151,7 +156,7 @@ PY
|
||||
info "systemd/user/hyprland-session.target (нужен порталам: выбор файлов, демонстрация экрана)"
|
||||
|
||||
# каталог под ControlMaster, который использует ~/.ssh/config
|
||||
[ $FULL = 1 ] && run install -d -m 700 "$HOME/.ssh" "$HOME/.ssh/sockets"
|
||||
run install -d -m 700 "$HOME/.ssh" "$HOME/.ssh/sockets"
|
||||
fi
|
||||
|
||||
# ---------- итог ----------
|
||||
@@ -162,12 +167,13 @@ cat <<EOF
|
||||
(именно Hyprland, не Hyprland (uwsm)).
|
||||
2. Мониторы: в $CFG/hypr/hyprland.lua имена и масштаб заданы под ноутбук автора
|
||||
(eDP-1, масштаб 1.25, HDMI-A-1). Свои смотрите командой: hyprctl monitors
|
||||
3. Справка по клавишам: Mod+F1.
|
||||
3. SSH-меню (Mod+S) читает ваш ~/.ssh/config — перенесите его и ключи на этот ноутбук
|
||||
(в репозиторий они сознательно не входят). Справка по клавишам: Mod+F1.
|
||||
EOF
|
||||
if [ $FULL = 0 ]; then
|
||||
cat <<EOF
|
||||
Это визуальная установка: бинды на приложения (Chrome, Telegram, SSH-меню, OCR и т. д.) не будут
|
||||
работать, пока вы не поставите эти программы. Всё сразу: ./install.sh --full
|
||||
Приложения и часть инструментов не ставились: бинды на Chrome, Telegram, KeePassXC и OCR
|
||||
ничего не делают, пока вы их не поставите. Всё сразу: ./install.sh --full
|
||||
EOF
|
||||
fi
|
||||
[ $DRY = 1 ] && info "это был --dry-run, запустите без него, чтобы применить."
|
||||
|
||||
Reference in New Issue
Block a user