#!/bin/bash # Установка TG WS Proxy в Fedora (GNOME) set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" APP_NAME="tg-ws-proxy" APP_DIR="$HOME/.local/share/$APP_NAME" BIN_DIR="$HOME/.local/bin" DESKTOP_DIR="$HOME/.local/share/applications" ICON_DIR="$HOME/.local/share/icons/hicolor" echo "🔧 Установка TG WS Proxy..." # Создаём директории mkdir -p "$APP_DIR" mkdir -p "$BIN_DIR" mkdir -p "$DESKTOP_DIR" mkdir -p "$ICON_DIR/scalable/apps" mkdir -p "$ICON_DIR/512x512/apps" mkdir -p "$ICON_DIR/256x256/apps" mkdir -p "$ICON_DIR/128x128/apps" mkdir -p "$ICON_DIR/64x64/apps" mkdir -p "$ICON_DIR/32x32/apps" # Копируем файлы приложения echo "📁 Копирование файлов..." cp "$SCRIPT_DIR/tg_ws_proxy.py" "$APP_DIR/" cp "$SCRIPT_DIR/tg_ws_tray.py" "$APP_DIR/" cp "$SCRIPT_DIR/icon.ico" "$APP_DIR/" 2>/dev/null || true # Создаём скрипт запуска echo "📝 Создание скрипта запуска..." cat > "$BIN_DIR/tg-ws-proxy" << 'EOF' #!/bin/bash exec python3 "$HOME/.local/share/tg-ws-proxy/tg_ws_tray.py" "$@" EOF chmod +x "$BIN_DIR/tg-ws-proxy" # Создаём .desktop файл echo "🖥️ Создание .desktop файла..." cat > "$DESKTOP_DIR/tg-ws-proxy.desktop" << EOF [Desktop Entry] Version=1.0 Name=TG WS Proxy Name[ru]=TG WS Proxy Comment=Telegram WebSocket Proxy for Desktop Comment[ru]=Telegram WebSocket Proxy для рабочего стола Exec=$BIN_DIR/tg-ws-proxy Icon=tg-ws-proxy Terminal=false Type=Application Categories=Network;Proxy; Keywords=telegram;proxy;socks; StartupNotify=false EOF # Создаём иконки из icon.ico или генерируем SVG echo "🎨 Установка иконок..." # Создаём SVG иконку (универсальная) cat > "$ICON_DIR/scalable/apps/tg-ws-proxy.svg" << 'EOF' T EOF # Генерируем PNG иконки из SVG с помощью convert (если есть) или создаём заглушки if command -v convert &> /dev/null; then for size in 512 256 128 64 32; do convert -background none \ "$ICON_DIR/scalable/apps/tg-ws-proxy.svg" \ -resize "${size}x${size}" \ "$ICON_DIR/${size}x${size}/apps/tg-ws-proxy.png" 2>/dev/null || true done fi # Если PNG не создались, создадим символические ссылки на SVG for size in 512 256 128 64 32; do if [ ! -f "$ICON_DIR/${size}x${size}/apps/tg-ws-proxy.png" ]; then ln -sf ../../scalable/apps/tg-ws-proxy.svg \ "$ICON_DIR/${size}x${size}/apps/tg-ws-proxy.png" 2>/dev/null || true fi done # Обновляем кэш иконок if command -v gtk-update-icon-cache &> /dev/null; then gtk-update-icon-cache -f "$HOME/.local/share/icons/hicolor" 2>/dev/null || true fi # Обновляем базу данных desktop файлов if command -v update-desktop-database &> /dev/null; then update-desktop-database "$DESKTOP_DIR" 2>/dev/null || true fi # Устанавливаем зависимости Python echo "📦 Установка Python зависимостей..." if command -v pip3 &> /dev/null; then pip3 install --user -r "$SCRIPT_DIR/requirements.txt" elif command -v pip &> /dev/null; then pip install --user -r "$SCRIPT_DIR/requirements.txt" else echo "⚠️ pip не найден. Установите зависимости вручную:" echo " pip install -r requirements.txt" fi echo "" echo "✅ Установка завершена!" echo "" echo "📍 Приложение установлено в: $APP_DIR" echo "🚀 Запустить можно через меню приложений или командой: tg-ws-proxy" echo "" echo "⚠️ Для работы в GNOME может потребзоваться AppIndicator:" echo " sudo dnf install libappindicator-gtk3" echo ""