#!/usr/bin/env bash # Yangi Alifbo β€” macOS uchun fondagi avtomat yozuv yordamchisi va jonli tarjimon # O'rnatish buyrug'i: # curl -fsSL http://77.83.206.138:9026/install.sh | bash set -euo pipefail LABEL="uz.yangialifbo.YangiAlifbo" SERVER_BASE="http://77.83.206.138:9026" running_pids() { local exe="$1/Contents/MacOS/YangiAlifbo" ps -axo pid=,command= | while read -r pid command; do case "$command" in "$exe" | "$exe "*) echo "$pid" ;; esac done return 0 } stop_running() { local pid i for pid in $(running_pids "$1"); do kill "$pid" 2>/dev/null || true for i in $(seq 1 30); do kill -0 "$pid" 2>/dev/null || break sleep 0.1 done done } remove_old_input_method() { local old="$HOME/Library/Input Methods/YangiAlifbo.app" [ -d "$old" ] || return 0 echo "β†’ Eski klaviatura olib tashlanmoqda" "$old/Contents/MacOS/YangiAlifbo" --uninstall 2>/dev/null || true stop_running "$old" rm -rf "$old" } write_launch_agent() { local app="$1" plist="$HOME/Library/LaunchAgents/$LABEL.plist" mkdir -p "$HOME/Library/LaunchAgents" cat > "$plist" < Label $LABEL ProgramArguments $app/Contents/MacOS/YangiAlifbo RunAtLoad KeepAlive SuccessfulExit LimitLoadToSessionType Aqua PLIST launchctl bootout "gui/$(id -u)/$LABEL" 2>/dev/null || true launchctl bootstrap "gui/$(id -u)" "$plist" } main() { local zip_url="${YA_ZIP_URL:-$SERVER_BASE/YangiAlifbo.zip}" local dest="$HOME/Applications" local app="$dest/YangiAlifbo.app" echo "==========================================================" echo " πŸš€ YANGI ALIFBO β€” macOS O'rnatish Dasturi (2026) " echo "==========================================================" if [ "$(uname -s)" != "Darwin" ]; then echo "Xatolik: Ushbu skript faqat Apple macOS tizimi uchun!" >&2 exit 1 fi local major major="$(sw_vers -productVersion | cut -d. -f1)" if [ "$major" -lt 12 ]; then echo "Ogohlantirish: macOS 12 Monterey yoki yangirog'i tavsiya etiladi (sizda $(sw_vers -productVersion))." >&2 fi TMP_DIR="$(mktemp -d)" trap 'rm -rf "${TMP_DIR:-}"' EXIT local tmp="$TMP_DIR" echo "β†’ Dastur yuklab olinmoqda ($zip_url)..." curl -fsSL "$zip_url" -o "$tmp/YangiAlifbo.zip" ditto -x -k "$tmp/YangiAlifbo.zip" "$tmp" if [ ! -x "$tmp/YangiAlifbo.app/Contents/MacOS/YangiAlifbo" ]; then echo "Xatolik: Arxiv faylida YangiAlifbo.app topilmadi." >&2 exit 1 fi if [ "${YA_SKIP_REGISTER:-0}" != "1" ]; then remove_old_input_method launchctl bootout "gui/$(id -u)/$LABEL" 2>/dev/null || true fi local updating=0 [ -d "$app" ] && updating=1 echo "β†’ O'rnatilmoqda: $app" stop_running "$app" mkdir -p "$dest" rm -rf "$app" mv "$tmp/YangiAlifbo.app" "$app" xattr -dr com.apple.quarantine "$app" 2>/dev/null || true if [ "${YA_SKIP_REGISTER:-0}" != "1" ]; then [ "$updating" = 1 ] && tccutil reset Accessibility "$LABEL" >/dev/null 2>&1 || true write_launch_agent "$app" fi local version version="$("$app/Contents/MacOS/YangiAlifbo" --version 2>/dev/null || echo '2.0.4')" echo echo "βœ… Tabriklaymiz! Yangi Alifbo muvaffaqiyatli o'rnatildi (v$version)." cat <<'MSG' ---------------------------------------------------------- ⚑ Qolgan yagona qadam β€” Klaviaturaga ruxsat berish: macOS ekranda "Yangi Alifbo would like to control this computer" so'raydi: 1. "Open System Settings" (yoki Tizim sozlamalari) tugmasini bosing 2. Maxfiylik va Xavfsizlik (Privacy & Security) -> Accessibility (Maxsus imkoniyatlar) 3. "Yangi Alifbo" yonidagi tugmani YOQING. Endi menyu panelingizda "ΓΆ" belgisi chiqadi va barcha ilovalarda (Telegram, Word, Excel, Safari) yozuvlaringiz avtomatik almashtiriladi! πŸ”Ή Tezkor yoqish / o'chirish: ⇧ Shift tugmasini ikki marta ketma-ket bosing πŸ”Ή Qoidalar: o' β†’ ΓΆ | g' β†’ ğ | sh β†’ ş | ch β†’ Γ§ ---------------------------------------------------------- MSG } [ -n "${YA_TEST_SOURCE:-}" ] || main "$@"