LINUX.ORG.RU

Я тут ReGreet форкнул...

 , greeter, , regreet


0

1

Приветствую всех любителей турбореактивной тяги © открытого и свободного ПО, особенно тех, кто пользуется ReGreet.

Захотелось тут мне поменять оформление моего экрана входа так, чтобы он был по стилю похож на экран блокировки. Начал изучать вопрос, и выяснилось, что программа написана крайне интересно. Например, у часов должен быть CSS селектор .background.top. Меня это не устроило и я взялся за код. Результаты можно видеть тут (github.com) и тут (github.com). Я поработал над часами, получил желаемое, разошёлся и добавил i18n графического интерфейса программы. Так что, кому надо – пользуйтесь. Не знаю, буду ли я поддерживать форк и дальше, но по крайней мере, пока мои патчи не влиты в апстрим – наверное, придётся.

★★★★★

Для тех кто не в курсе, greetd - это говнокод на русте, в котором захардкожено дергание VT и который использует JSON для передачи сообщений между сервером и клиентами (такими как этот самый ReGreet). На кой черт там вообще JSON? Причем потоковый парсер разработчик не осилил, поэтому перед JSON он передает длину сообщения.

И вообще, на кой черт нужен логин менеджер на однопользовательских девайсах, которыми является большинство современных ПК? Пароль на уровне UEFI, или там LUKS какой, agetty -a <user> во время загрузки, и это будет гораздо проще и надежнее всех этих regreet.

Lrrr ★★★★★
()

Ура, изменения касательно часов приняли :)

Ну, а раз такая программа существует, то она кому-то нужна :) Тут уж кто во что горазд: один пишет панельку для LOR, второй форк Midnight Commander пилит, третий – DE на PHP, и так далее. Вот и я тоже взялся за реальную программу, чтобы посмотреть на этот самый Rust :)

yars068 ★★★★★
() автор топика
Ответ на: комментарий от Lrrr

на кой черт нужен логин менеджер

Для выбора DE и WM. Если используется только один DE или WM, без необходимости выбора, тогда да особой необходимости в логин менеджере не вижу. Ну и иногда тот же GUI используется для блокировщика, не всех удобна блокировка без показа окна ввода пароля, как например slock

vbcnthfkmnth123 ★★★★★
()
Ответ на: комментарий от Lrrr

который использует JSON для передачи сообщений между сервером и клиентами

Можно вопрос? А где и как этот обмен подсмотреть?

yars068 ★★★★★
() автор топика
Ответ на: комментарий от yars068

Ну в исходниках, вестимо

https://github.com/kennylevinsen/greetd/blob/master/greetd_ipc%2Fsrc%2Fcodec%2Ftokio.rs#L73

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

Lrrr ★★★★★
()
Ответ на: комментарий от Lrrr

Я понимаю зачем в Json делать конфиги и зачем в JSON string логи, но понять зачем брать json вместо protobuf при обмене данными для меня загадка.

peregrine ★★★★★
()
Ответ на: комментарий от yars068

Через strace можно подключиться к процессу и выводить в консоль параметры и результат вызова системных методов read и write:

strace -s 1024 -e trace=read,write -p $(pidof greetd)
Ja-Ja-Hey-Ho ★★★★★
()
Ответ на: комментарий от yars068

ну они через сокет общаются, значит тебе надо как-то подсмотреть, какие данные гоняются через этот сокет. Мне нейронка нашла вот такую тулзу, https://github.com/mechpen/sockdump

Lrrr ★★★★★
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария