Разбираем и чиним установщик LMDE 2 Betsy

Аватара пользователя

Автор темы
Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

Разбираем и чиним установщик LMDE 2 Betsy

#1

13 сен 2017, 10:38

Вот уже пару лет как известна неприятная бага с инсталлером LMDE - а именно выбранная в процессе установки раскладка клавиатуры становися единственно доступной как в лайв-окружении, так и в устанавливаемой системе, что может привести к невозможности входа под своей учеткой, из-за наличия только например русской раскладки.

Хватит это терпеть! :write: Исправим досадную оплошность.

Сам установщик находится в пакете live-installer, а интересовать нас оттуда будут файлы
  • /usr/lib/live-installer/frontend/gtk_interface.py - для правки поведения в live-окружении
  • /usr/lib/live-installer/installer.py - дляисправления раскладок вносимых в устанавливаемую им систему
В файле gtk_interface.py используется конструкция вызова setxkbmap в тот момент, когда выбираем раскладки из списка
Найдем строки (651-654 в текущей версии)

Код: Выделить всё

if self.setup.keyboard_variant:
            os.system('setxkbmap -variant ' + self.setup.keyboard_variant)
        else:
            os.system('setxkbmap -layout ' + self.setup.keyboard_layout)
И просто добавим к опциям английскую раскладку:

Код: Выделить всё

if self.setup.keyboard_variant:
            os.system('setxkbmap -variant ' + self.setup.keyboard_variant)
        else:
            os.system('setxkbmap -layout ' + self.setup.keyboard_layout + ',us')
Половина дела сделана, теперь полечим возможность смены раскладки в mdm при первом входе в систему, берем installer.py, ищем (~463 строка)

Код: Выделить всё

print " --> Setting the keyboard"
        our_current += 1
        self.update_progress(total=our_total, current=our_current, message=_("Setting keyboard options"))
        consolefh = open("/target/etc/default/console-setup", "r")
        newconsolefh = open("/target/etc/default/console-setup.new", "w")
        for line in consolefh:
            line = line.rstrip("\r\n")
            if(line.startswith("XKBMODEL=")):
                newconsolefh.write("XKBMODEL=\"%s\"\n" % setup.keyboard_model)
            elif(line.startswith("XKBLAYOUT=")):
                newconsolefh.write("XKBLAYOUT=\"%s\"\n" % setup.keyboard_layout)
            elif(line.startswith("XKBVARIANT=") and setup.keyboard_variant is not None):
                newconsolefh.write("XKBVARIANT=\"%s\"\n" % setup.keyboard_variant)
            else:
                newconsolefh.write("%s\n" % line)
Аналогичным образом добавляем к парамерам английскую раскладку, а заодно и дополняем условную конструкцию строкой с XKBOPTIONS на переключение этих самых раскладок по Alt+Shift

Код: Выделить всё

        for line in consolefh:
            line = line.rstrip("\r\n")
            if(line.startswith("XKBMODEL=")):
                newconsolefh.write("XKBMODEL=\"%s\"\n" % setup.keyboard_model)
            elif(line.startswith("XKBLAYOUT=")):
                newconsolefh.write("XKBLAYOUT=\"%s,us\"\n" % setup.keyboard_layout)
            elif(line.startswith("XKBVARIANT=") and setup.keyboard_variant is not None):
                newconsolefh.write("XKBVARIANT=\"%s\"\n" % setup.keyboard_variant)
            elif(line.startswith("XKBOPTIONS=")):
                newconsolefh.write("XKBOPTIONS=grp:alt_shift_toggle")
            else:
                newconsolefh.write("%s\n" % line)
на этом багфикс окончен, если внести эти правки прямо в лайв - можно вызывать инсталлер, и ставить систему не опасаясь остаться без латиницы.
Если самим в коде ковыряться влом - для своих нужд я пересобрал дебпакет с уже внесенными правками, осталось только заменить им имеющийся.
live-installer.zip
(1.18 МБ) 47 скачиваний
Изображение
   
Изображение

Аватара пользователя

Mitai
Сообщения: 150
Зарегистрирован: 26 фев 2017, 15:46
Откуда: планета Земля
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Разбираем и чиним установщик LMDE 2 Betsy

#2

04 дек 2017, 09:18

не нашел такой папки, есть просто папка live но файлов в ней таких нет :sad:

Аватара пользователя

Автор темы
Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

Разбираем и чиним установщик LMDE 2 Betsy

#3

04 дек 2017, 09:20

Mitai, в установленной системе его пакет сначала поставить надо, он удалется на этапе вычистки лишных пакетов еще в лайве.

Код: Выделить всё

▶ apt policy live-installer   
live-installer:
  Установлен: (отсутствует)
  Кандидат:   2017.01.15
  Таблица версий:
     2017.01.15 0
        500 http://mirror.yandex.ru/linuxmint-packages/ betsy/main amd64 Packages
Изображение
   
Изображение

Аватара пользователя

Mitai
Сообщения: 150
Зарегистрирован: 26 фев 2017, 15:46
Откуда: планета Земля
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Разбираем и чиним установщик LMDE 2 Betsy

#4

04 дек 2017, 11:23

я думал на установочной флешке нужно заменить какие то файлы и все...
а так совсем не понимаю последовательность действий, сперва нужно начать устанавливать лмде и затем что то где то менять?

Аватара пользователя

colonel
Сообщения: 1851
Зарегистрирован: 18 дек 2016, 12:08
Решено: 21
Откуда: Хартленд, N
Благодарил (а): 43 раза
Поблагодарили: 498 раз
Контактная информация:

Разбираем и чиним установщик LMDE 2 Betsy

#5

04 дек 2017, 13:23

Chocobo писал(а):
13 сен 2017, 10:38
неприятная бага с инсталлером LMDE -....что может привести к невозможности входа под своей учеткой, из-за наличия только например русской раскладки.
сто лет в обед как разжовано как обойти разными способами
от ставить на наглицком - и логин с паролем на наглицком до правки конфигов в установленной системе до её запуска и ....
... будет ещё один .... может даже разрабы учтут (опробывать не опробывал как оно сработает не знаю но плюсую как минимум за попытку)
Chocobo писал(а):
13 сен 2017, 10:38
неприятная бага с инсталлером LMDE - а именно выбранная в процессе установки раскладка клавиатуры становися единственно доступной как в лайв-окружении, так и в устанавливаемой системе,...
в устанавливаемой системе... эт да ... какую выбрали для а и будет
что касаемо недоступности переключения на другой язык во время установки - брехня... всё там можно доустановить и переключать
"просто вы не умеете его готовить"(с) ...

и да, самый простой способ обойти эту "багу" для желающих ставить сразу русскую локаль (ессно если без шифрования система ставится) , не заморачиваясь ничем просто назначить при установке автовход и при первой загрузкесвежеустановленной системы настроить переключение раскладок ... а там уж и автовход или не неавто или с задержкой и пр. на усмотрение .
Последний раз редактировалось пользователем 1 colonel; всего редактировалось раз: 4
"Не ты выбираешь Linux, а Linux выбирает тебя"
(с)Себастьян Перейра, торговец чёрным деревом

Аватара пользователя

ravial555
Сообщения: 108
Зарегистрирован: 09 ноя 2016, 21:15
Решено: 1
Откуда: МО, Кубинка-Наро-Фоминск
Благодарил (а): 16 раз
Поблагодарили: 15 раз
Контактная информация:

Разбираем и чиним установщик LMDE 2 Betsy

#6

04 дек 2017, 13:30

Почему не предложить исправление разработчикам?.. Чтобы качать уже поправленный дистрибутив..

Аватара пользователя

Автор темы
Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

Разбираем и чиним установщик LMDE 2 Betsy

#7

04 дек 2017, 13:35

colonel писал(а):
04 дек 2017, 13:23
сто лет в обед как разжовано как обойти разными способами
И я их также знаю наизусть, ибо вредность и правда немолода :hoho:
Оно мне потребовалось на этапе создания сборки бетси, где при общей прочей локализации - обходные решения были бы явно лишними.
Поэтому для себя решил, что проще пересобрать дебпакет с фиксом заранее, все равно это была не единственная правка в этом установщике, в рамках той реализации :smile: Т.к. данное изменение касается общего его функционала - решил поделиться и здесь)
ravial555 писал(а):
04 дек 2017, 13:30
Почему не предложить исправление разработчикам?.. Чтобы качать уже поправленный дистрибутив..
пересборки бетси на новые лайв-образы все равно уже ждать не приходится, поэтому качать уже поправленный дистрибутив не выйдет. Известна эта шняга не первый год, и не только с русской раскладкой, а любой не латинницей
Ну и на часть из этого решения я сразу отправил им коммит, еще до того как тут обнародовал)
Изображение
   
Изображение

no avatar

Lazarus
Сообщения: 26
Зарегистрирован: 22 июн 2017, 14:27
Благодарил (а): 5 раз
Поблагодарили: 11 раз
Контактная информация:

Разбираем и чиним установщик LMDE 2 Betsy

#8

29 апр 2018, 21:31

В свое время предлагал разработчикам LMDE аналогичные изменения в коде. Смысл их ответа был в том, что это никому не нужно.

Аватара пользователя

Автор темы
Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

Разбираем и чиним установщик LMDE 2 Betsy

#9

29 апр 2018, 21:33

Лазарус, мой пулл-реквест тоже чет не зашел, поэтому пусть живет тут)
Изображение
   
Изображение

Закрыто

Вернуться в «LMDE»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя