Пишу о дизайне, интерфейсах и управлении собой

Хоткеи в Фигме на маке

Мы с дизайнерами M18★ работаем в Скетче, но кто-то сидит на Фигме делая свои проекты. Решил посмотреть чем же отличается Фигма и какие у нее преимущества. На мой взгляд хайп сильно раздут, многие вещи в Скетче удобнее (например автоматическое перемещение мастер-символа с артборда на страницу символов) или скоро будут удобнее. Но мощный плюс Фигмы в синхронизации макетов и дефолтно встроенном гите.

Но сегодня о хоткеях. Клавиатурные сокращения в Фигме решены через жопу (уж простите). После привычной работы в PS и Скетче все вызывает недоумение. Возможно если бы это был первый векторный редактор можно было бы простить но на дворе уже почти 2020, алё.

Хрен знает зачем у вас есть четыре (!) способа переключения вкладок но нет возможности поставить зум до 100 % масштаба на cmd+1 (можно воспользоваться cmd+F1 или любой другой незанятой комбинацией но кому нужны разные хоткеи в разных программах?).

Можно назначить клавиши для десктопной версии через Системные настройки, но и там это не работает гладко — занятые сокращения не заменить, приходится пользоваться свободными комбинациями. Ну то есть если я хочу поставить православный Shift+Cmd+] на Bring to Front то это не получится сделать, потому что эта комбинация зарезервирована под… переключение вкладок (которое вообще нигде не отключить).

С переназначением тоже проблемы — например при задании ctrl+H для выравнивания по центру родителя (а не alt+H, потому что так удобнее) хоткей переназначается но работает со второго нажатия. Напомню, что на винде дефолтно вообще нельзя заменить хоткеи (сейчас вроде как можно но не через само приложение а через сторонние программы.

Что делать. Вариант первый (через систем преференсес)

Этот вариант описывался много раз, повторим. Идем в Системные настройки → Клавиатура → Сочетания клавиш → Сочетания клавиш программ


Нажимаем на плюсик, выбираем в выпадающем списке Фигму, прописываем пункт меню буква в букву и назначаем клавишу:

Важно написать именно как в меню, буква в букву, иначе сокращение не заработает

Все, хоткей переназначен. Идем в программу и пробуем, работает он или нет.

Вариант второй (виндоус-стайл, но единственно рабочий для тех кто хочет сделать все под себя)

Здесь уже придется менять код Фигмы. Идем в Программы, кликаем правой кнопкой мыши на иконке программы и выбираем «Показать содержимое пакета», проваливаемся в контейнер программы. Заходим в Contents и далее в Resources. В этой папке лежит файл app.asar, его и будем менять:


Лучше скопировать куда-то себе оригинал, чтобы случайно не затереть его.

Файл с расширением .asar представляет что-то типа контейнера-архива, в котором могут лежать другие файлы, например js или css. Это формат фреймворка Электрон https://electronjs.org/

Для того чтобы попасть внутрь файла нужен архиватор, поддерживающий .asar, на мак я такого к сожалению не нашел — Unarchiver не поддерживает этот формат, дефолтный маковский архиватор тоже. Пришлось воспользоваться виндовой машиной с 7zip. Кто сможет доходчиво объяснить как развернуть Электрон на рабочей машине — пишите в комменты.

Для 7zip необходим плагин Asar7z, добавляющий поддержку .asar http://www.tc4shell.com/en/7zip/asar/ Скаченный плагин нужно положить в созданную в папке 7zip папку с именем Formats, тогда он заработает.

Заходим в файл (можно не разархивировать а просто зайти в него архиватором). В нем лежат js, html и css файлы Фигмы, нам нужны два — menu.js и window_manager.js Первый отвечает за клавиатурные сокращения пунктов меню, второй за работу с окнами.

Открываем их в текстовом редакторе и меняем необходимые строки кода. Например я хочу назначить на Bring to Front комбинацию Shift+Cmd+], как в люстре и фотошопе. Открываю файл menu.js и ищу строки, отвечающие за перемещение объектов и изменяю их на необходимые:

SEPARATOR,
        actionItem('Bring to Front', 'CmdOrCtrl+Shift+]', 'bring-to-front'),
        actionItem('Bring Forward', 'CmdOrCtrl+]', 'bring-forward'),
        actionItem('Send Backward', 'CmdOrCtrl+[', 'send-backward'),
        actionItem('Send to Back', 'CmdOrCtrl+Shift+[', 'send-to-back'),



С выпиливанием переключения табов по Cmd+цифра немного сложнее — идем в window_manager.js и комментируем эти строчки кода (расположены в разных местах):

'CommandOrControl+9': 'SelectLastTab',

        'Control+PageUp': 'ShowPreviousTab',
        'Control+PageDown': 'ShowNextTab',

    for (let i = 1; i < 9; i++) {
        shortcuts[`CommandOrControl+${i}`] = 'SelectTabAtIndex';
    }
    if (IS_MAC) {
        Object.assign(shortcuts, {
            'CommandOrControl+Shift+{': 'ShowPreviousTab',
            'CommandOrControl+Shift+}': 'ShowNextTab',
    
        ['SelectTabAtIndex', () => win.postMessageToShellBinding('selectTabAtIndex', +key)],


После всех манипуляций клавиши будут работать как надо. Для тех кто не желает возиться с архиваторами и кодом: моя версия хоткеев по ссылке https://www.dropbox.com/s/257hfqizmyy3yer/app.asar?dl=0 замените файл app.asar у себя в папке Фигмы.

Пока что заменил только работу с табами и перемещение объектов, файл будет апдейтиться в зависимости от того, буду работать в Фигме или нет.

Для тех, кто на винде и полезные ссылки

На виндоус все то же самое, вот пост который помог мне все прояснить для себя https://vk.com/figmadesign?w=wall-131024445_1557
Программа для замены хоткеев на вин https://www.autohotkey.com/
Плагин для 7zip, позволяющий открыть .asar http://www.tc4shell.com/en/7zip/asar/

Поделиться
Отправить
Запинить
 85   2019   cкетч   macOS   фигма   хак