Open source

dotcd

CLI и system tray утилита на Rust для переключения DNS в Linux.

dotcd
Формат
Open source
Сфера
Linux и сетевая инфраструктура
Роль
Проектирование и разработка системной утилиты

Контекст

Для переключения между защищёнными DNS-провайдерами приходилось вручную менять системную конфигурацию. Один и тот же сценарий был нужен в терминале, в автоматизации и в обычной работе через графическую панель.

Как решал задачу

Общее ядро для CLI и system tray

Командный интерфейс и графическое меню используют одну логику переключения профилей. Способ запуска меняется, а состояние и системные операции остаются общими.

Утилиту можно использовать интерактивно и в скриптах без двух независимых реализаций.

Явные профили вместо ручного редактирования

Настройки ControlID и COMSS оформлены как именованные профили. Команда переключает профиль целиком и сообщает активный DNS-сервер и статус.

Переключение стало воспроизводимой операцией, которую легко проверить по выводу утилиты.

Фоновый режим для повседневной работы

GTK и AppIndicator дают доступ к тем же профилям из системного трея. Пользователю не нужно открывать терминал для обычного переключения.

Системная настройка стала доступна как обычное фоновое приложение Linux.

Пакет для штатной установки

Для Arch Linux подготовлен PKGBUILD, чтобы устанавливать и обновлять программу стандартным для системы способом.

Проект распространяется не только как исходный код, но и как устанавливаемый пакет.

Результат

Утилита опубликована в GitHub и Arch User Repository.

Технологии

  • Rust
  • Linux
  • GTK
  • AppIndicator
  • DNS over TLS

Следующий кейс

Политех →