Bug 36932

Summary: Только английская раскладка клавиатуры
Product: Sisyphus Reporter: Ivan A. Melnikov <iv>
Component: slick-greeterAssignee: Антон Мидюков <antohami>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: major    
Priority: P3 CC: aen, antohami, boyarsh, jqt4, ldv, legion, manowar, sin, vladimir.didenko
Version: unstable   
Hardware: all   
OS: Linux   

Description Ivan A. Melnikov 2019-06-21 11:01:56 MSK
На экране входа не работает переключение раскладки клавиатуры. Это, в частности, может привести к невозможности залогиниться, если пользователь задал пароль на кириллице.
Comment 1 Ivan A. Melnikov 2019-06-21 11:02:52 MSK
Понятно, что пароль с кирилицей -- не самая хорошая идея. Однако наша система такое вполне позволяет и, например, в консоли кирилические пароли работают.
Comment 2 Ivan A. Melnikov 2019-06-21 11:04:53 MSK
Кстати, на lightdm-gtk-greeter тоже нельзя переключить раскладку. Это стоит отдельно повесить?
Comment 3 AEN 2019-06-21 11:11:40 MSK
(В ответ на комментарий №2)
> Кстати, на lightdm-gtk-greeter тоже нельзя переключить раскладку. Это стоит
> отдельно повесить?

Да.
Comment 4 Ivan A. Melnikov 2019-06-21 11:58:49 MSK
(In reply to comment #3)
> (В ответ на комментарий №2)
> > Кстати, на lightdm-gtk-greeter тоже нельзя переключить раскладку. Это стоит
> > отдельно повесить?
> 
> Да.

https://bugzilla.altlinux.org/36933
Comment 5 Владимир Диденко 2019-06-21 15:22:00 MSK
Все что умеет slick-greeter - это во время запуска запустить setxkbmap, взяв опции для нее из /etc/default/keyboard - см. https://wiki.debian.org/ru/Keyboard. Если наш исталятор эти опции при установке куда-нибудь запишет, то я могу поправить slick-greeter-set-keyboard-layout, чтобы он брал эти опции из этого места.

Я еще попробовал в альтераторе задать "системную раскладку" - он создал файл /etc/X11/xinit/Xkbmap, но при загрузке он сам не подхватился. Кто-нибудь может подсказать как по задумке это должно работать? Теоретически, я могу и оттуда опции брать.
Comment 6 Ivan A. Melnikov 2019-06-21 15:39:30 MSK
(In reply to comment #5)
> Все что умеет slick-greeter - это во время запуска запустить setxkbmap, взяв
> опции для нее из /etc/default/keyboard - см.
> https://wiki.debian.org/ru/Keyboard. Если наш исталятор эти опции при установке
> куда-нибудь запишет, то я могу поправить slick-greeter-set-keyboard-layout,
> чтобы он брал эти опции из этого места.
> 
> Я еще попробовал в альтераторе задать "системную раскладку" - он создал файл
> /etc/X11/xinit/Xkbmap, но при загрузке он сам не подхватился. Кто-нибудь может
> подсказать как по задумке это должно работать? Теоретически, я могу и оттуда
> опции брать.

/etc/X11/xinit/Xkbmap подхватывается из /etc/X11/xinit/fixkeyboard, который

# Startup script called from /etc/X11/Xsession and /etc/X11/xdm/Xsetup_0
# to adjust keyboard.

Наверное, имеет смысл из всех DM, или, в случае с lightdm, из всех greeter-ов, вызывать именно этот скрипт.

Добавляю в copy boyarsh@ как мейнтейнера xinitrc. Антон, /etc/X11/xinit/fixkeyboard можно считать "публичным интерфейсом" пакета?
Comment 7 Anton V. Boyarshinov 2019-06-25 15:55:15 MSK
но этот скрипт.
> 
> Добавляю в copy boyarsh@ как мейнтейнера xinitrc. Антон,
> /etc/X11/xinit/fixkeyboard можно считать "публичным интерфейсом" пакета?

acl sisyphus xinitrc show   
xinitrc	ldv legion

Это не я :-)
Comment 8 Ivan A. Melnikov 2019-06-25 16:22:29 MSK
(In reply to comment #7)
> но этот скрипт.
> > 
> > Добавляю в copy boyarsh@ как мейнтейнера xinitrc. Антон,
> > /etc/X11/xinit/fixkeyboard можно считать "публичным интерфейсом" пакета?
> 
> acl sisyphus xinitrc show   
> xinitrc    ldv legion
> 
> Это не я :-)

Извиняюсь, наверное я не туда в гейзере посмотрел.

Дмитрий, Алексей, не подскажите?
Comment 9 Dmitry V. Levin 2019-06-26 16:08:19 MSK
(In reply to comment #8)
> (In reply to comment #7)
> > но этот скрипт.
> > > 
> > > Добавляю в copy boyarsh@ как мейнтейнера xinitrc. Антон,
> > > /etc/X11/xinit/fixkeyboard можно считать "публичным интерфейсом" пакета?
> > 
> > acl sisyphus xinitrc show   
> > xinitrc    ldv legion
> > 
> > Это не я :-)
> 
> Извиняюсь, наверное я не туда в гейзере посмотрел.
> 
> Дмитрий, Алексей, не подскажите?

/etc/X11/xinit/fixkeyboard у нас с прошлого тысячелетиия из mandrake.
Мне не нравится имя этого скрипта, но менять его уже несколько поздновато.

Не надо полагаться на то, что этот скрипт существует, но стоит его запускать, если он есть.
Comment 10 Владимир Диденко 2019-06-27 14:24:25 MSK
Сделал локальную сборку slick-greeter, вызывающую /etc/X11/xinit/fixkeyboard (при наличии) - и, вроде бы, работает, но есть одно но. slick-greeter не умеет показывать смену раскладки, т.е. раскладка по хот-кею меняется, но на панельке по-прежнему будет показываться английская раскладка. Что немного сбивает с толку.

В связи с этим вопрос - мне отправить как есть или сначала спросить апстрим, что они думают по этому поводу?
Comment 11 AEN 2019-06-27 14:42:22 MSK
(В ответ на комментарий №10)
> Сделал локальную сборку slick-greeter, вызывающую /etc/X11/xinit/fixkeyboard
> (при наличии) - и, вроде бы, работает, но есть одно но. slick-greeter не умеет
> показывать смену раскладки, т.е. раскладка по хот-кею меняется, но на панельке
> по-прежнему будет показываться английская раскладка. Что немного сбивает с
> толку.
> 
> В связи с этим вопрос - мне отправить как есть или сначала спросить апстрим,
> что они думают по этому поводу?


Спасибо!
Я думаю, что одно другому не мешает.
Исправление важно для стартеров и бета-версий, а обсудить с апстримом всегда полезно.
Comment 12 Владимир Диденко 2019-06-27 15:13:32 MSK
(In reply to comment #11)
> Спасибо!
> Я думаю, что одно другому не мешает.
> Исправление важно для стартеров и бета-версий, а обсудить с апстримом всегда
> полезно.

Хорошо, отправил на сборку.

С апстримом я обсужу, но еще остался вопрос интеграции - если я в инсталяторе для пользователя укажу кириллический пароль, то нужно, наверное, чтобы в том же инсталяторе я мог бы добавить русский как вторую системную раскладку и мог бы указать сочетание клавиш для переключения. И я не помню, чтобы в нашем инсталяторе так можно было сделать. Кто-нибудь может прокоментировать?
Comment 13 AEN 2019-06-27 15:23:09 MSK
(В ответ на комментарий №12)
> (In reply to comment #11)
> > Спасибо!
> > Я думаю, что одно другому не мешает.
> > Исправление важно для стартеров и бета-версий, а обсудить с апстримом всегда
> > полезно.
> 
> Хорошо, отправил на сборку.
> 
> С апстримом я обсужу, но еще остался вопрос интеграции - если я в инсталяторе
> для пользователя укажу кириллический пароль,

Зачем?
Этого я не стал бы делать.
Если у пользователя кириллический пароль в AD, то пойдем ему навстречу. Но плодить их в нашей системе, мне кажется, не стоит
Comment 14 Владимир Диденко 2019-06-27 15:47:11 MSK
(In reply to comment #13)
> Зачем?
> Этого я не стал бы делать.
> Если у пользователя кириллический пароль в AD, то пойдем ему навстречу. Но
> плодить их в нашей системе, мне кажется, не стоит

Ок, понял.
Comment 15 Repository Robot 2019-06-27 16:26:42 MSK
slick-greeter-1.2.4-alt3 -> sisyphus:

Thu Jun 27 2019 Vladimir Didenko <cow@altlinux> 1.2.4-alt3
- call /etc/X11/xinit/fixkeyboard on start (closes: #36932)
Comment 16 AEN 2019-06-27 16:33:45 MSK
Спасибо!
Comment 17 Ivan A. Melnikov 2019-07-03 12:23:13 MSK
> slick-greeter не умеет показывать смену раскладки,
> т.е. раскладка по хот-кею меняется, но на панельке
> по-прежнему будет показываться английская раскладка.
> Что немного сбивает с толку.

Повесил https://bugzilla.altlinux.org/36970 чтобы не потерялось.
Comment 18 manowar@altlinux.org 2019-07-18 18:08:07 MSK
(В ответ на комментарий №6)
> /etc/X11/xinit/Xkbmap подхватывается из /etc/X11/xinit/fixkeyboard
> ...
> Наверное, имеет смысл из всех DM, или, в случае с lightdm, из всех greeter-ов,
> вызывать именно этот скрипт.

  Зачем же из каждого гритера в отдельности, когда в самом lightdm есть возможность запускать любой гритер через установленный враппер? Так, после записи в lightdm.conf

greeter-wrapper=/usr/local/bin/my_wrapper

и сомого враппера вот с таким содержимым:

#!/bin/sh -efu
[ ! -e /etc/X11/xinit/fixkeyboard ] || /etc/X11/xinit/fixkeyboard
exec "$@"

переключение раскладок заработало в lightdm-gtk-greeter. И, вероятно, должно заработать и в slick-greeter. Может быть и сделаем таким образом?