Чиним Skype своими руками

в 20:52, , рубрики: linux, skype, баг, отладка, раскладка клавиатуры, Системы обмена сообщениями

Доброго времени суток.

После последнего обновления Скайпа (версия 8.51.0.92) под Linux (Mint, оболочка Cinnamon), столкнулся с неприятным багом при переключении раскладки языка, в поле ввода сообщения: при нажатии Alt+Shift, фокус, с поля ввода, переходит к верхней панели окна (меню).

За несколько дней активного использования, это стало неимоверно бесить. Коллега, использующий Ubuntu, говорил что баг также проявляется и там. Проблему удалось поправить (костыльно), решил поделиться с сообществом, надеюсь кому-нибудь поможет.

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

1. Ставим менеджер пакетов npm (если не установлен).

sudo apt install npm

2. Ставим пакет asar

sudo npm install -g asar

3. Переходим в каталог с упакованными файлами Skype

cd /usr/share/skypeforlinux/resources/

4. Распаковываем нужный нам app.asar в относительную директорию app

sudo asar extract app.asar app

5. Выключаем Skype

6. Переименовываем оригинальный файл app.asar (когда Electron не найдёт asar файл, он будет использовать распакованные исходники из относительной директории app)

sudo mv /usr/share/skypeforlinux/resources/app.asar /usr/share/skypeforlinux/resources/app.asar.backup

7. Проверяем работоспособность Skype: достаточно включить и выключить.

8. Открываем в любимом текстовом редакторе, под sudo, файл /usr/share/skypeforlinux/resources/app/WindowBase.js и добавляем в конструктор, после создания обьекта BrowserWindow, вот такую строку:

this._instance.setMenuBarVisibility(false);

Документация этой по функции из пункта 8: win.setMenuBarVisibility(visible)

Решение, конечно, не самое красивое, но рабочее (до следующего обновления).
Спасибо за внимание.

Автор: brnovk

Источник


* - обязательные к заполнению поля