Об этом проекте

gaur — это TUI (терминальный пользовательский интерфейс) для управления пакетами Arch Linux, написанный на Go. Он объединяет pacman, помощник AUR (paru или yay) и fzf, предоставляя единый интерфейс с управлением с клавиатуры для типовых операций с пакетами. **Поиск и установка** - Нечёткое ранжирование на базе fzf с подсветкой совпадений. - Префиксы запросов с ограничением по репозиториям: c: (core), e: (extra), m: (multilib), a: (AUR). Префиксы комбинируются, например ae:firefox ищет в AUR и Extra. - Отметьте несколько пакетов с помощью Tab и выполните операцию над ними одной командой. - Панель с подробностями в реальном времени: репозиторий, версия, лицензия и URL апстрима. **Обслуживание** - Панель мониторинга со счётчиками пакетов, индикаторами использования диска и распределением по репозиториям. - Полное обновление системы или выборочное обновление вручную подобранного подмножества. - Очистка кэша с политиками сохранения и выборочной очисткой отдельных пакетов. - Обнаружение пакетов-сирот и удаление одной клавишей. **Интерфейс** - Одиннадцать встроенных тем (варианты Catppuccin, Dracula, Gruvbox, Monokai Pro, One Dark, Rose Pine, Solarized Dark, Tokyonight) с предпросмотром в реальном времени при прокрутке. - Поддержка пользовательских тем TOML через --export-themes. - Специфичная для режимов цветовая раскраска, центрированные диалоги, поддержка колеса мыши. - Меню настроек (запятая) для смены темы, помощника AUR и типа рамки без перезапуска. **Режимы**: install, dashboard, remove и update, переключаемые клавишами i/d/r/u или сочетаниями Alt+цифра. **Фильтры поиска в режиме remove**: t: (все установленные), e:/l: (явно установленные), f:/a: (сторонние/пакеты AUR), o: (сироты). **Подход к безопасности**: Команды формируются как массивы аргументов, а не как строки оболочки. Имена пакетов проверяются по строгому списку разрешённых, значения конфигурации ограничиваются, а не принимаются на доверии, а CI выполняет специализированные тесты на инъекцию команд, повышение привилегий и подмену TUI наряду с gosec, CodeQL и govulncheck. **Принцип работы**: Пакеты из репозиториев считываются один раз с помощью pacman -Sl и хранятся в памяти; ввод текста не вызывает pacman при каждом нажатии клавиши. Каждое нажатие передаёт объединённый список репозиториев + AUR через fzf --filter. Запросы к AUR требуют минимум два символа, избегают дублирующих запросов и отбрасывают устаревшие ответы. Операции установки, удаления и обновления выполняются через tea.ExecProcess, поэтому запросы sudo и разрешение конфликтов работают так же, как и вне gaur. **Требования**: Arch Linux или дистрибутив на базе Arch, помощник AUR (paru или yay), fzf, paccache из pacman-contrib и Go 1.24+ при сборке из исходников. **Установка**: Доступен в AUR как gaur-bin (paru -S gaur-bin или yay -S gaur-bin), через go install или сборкой из исходников. **Конфигурация**: При первом запуске создаёт ~/.config/gaur/config.toml, охватывающий режим запуска по умолчанию, тему интерфейса и тип рамки, выбор помощника AUR, флаги установки/удаления, инструмент кэша и тайминг debounce. Большинство настроек также можно изменять в реальном времени через меню настроек в приложении. Лицензировано под GPL-3.0.