Если пропустил: это CLI, который накрывает все экраны мака, блокирует клавиатуру и трекпад на уровне HID и держит систему бодрой. Фоновая задача пашет дальше, прохожий ничего не потыкает. Теперь коротко о том что изменилось...
Хоткея больше нет. Вместо одной комбинации теперь
unlock_code, по сути это пароль на стероидах:unlock_code: s w o r d f i s h
Набираешь вслепую... Ни подсказок, ни обратной связи. dndmode сверяет хвост набранного и снимает блок когда совпало. Наружу не проходит ни одно нажатие, даже правильное.
Пароль открытым текстом в конфиге мне не нравился. Поэтому, можем его спрятать:
dndmode --set-password
CLI попросит дважды набрать код настоящими нажатиями, и положит в конфиг соль с хешем.
cat ~/.config/dndmode/config.yml больше ничего не выдает. Честная часть: это защита от взгляда через плечо и от улетевшего в бэкап конфига, а не от офлайн-перебора. Внутри обычный SHA-256 с солью, не KDF.Еще одна удобная штука, фоновый режим. Раньше приходилось запускать блок экрана через dndmode в терминале, сейчас для этого можно запустить фоновый процесс:
dndmode --watch
Уходит в фон и ждет комбинацию клавиш
Ctrl+Option+Cmd+D, которая заблокирует экран. dndmode --status покажет PID, аптайм и поднят ли щит прямо сейчас, dndmode --kill его прибьет. Комбинация меняется в конфиге ключом activate_hotkey, подхватится после рестарта (kill, потом watch).😩 А теперь самое важное изменение за всю историю проекта 💪
dndmode --style terminal:ys
Экран заливается йоптаскриптом. Кириллица, отборный мат, бесконечный скролл. Кто подойдет к маку без меня, читает не мой код, а вот эту хуйню. Нрайса!
Ну и сайт появился... Остальное можно было и не делать :-)
https://dsbasko.github.io/dndmode/
https://github.com/dsbasko/dndmode