Об этом проекте
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.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.