Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Задать комбинацию клавиш для eog  (Прочитано 233 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Алексиус

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
Как можно сделать свою комбинацию клавиш для пунктов "перевернуть по горизонтали" и "перевернуть по вертикали"?


Не могу понять какие команды стоят за этими пунктами и как их правильно указать в настройках клавиатуры (keyboard setting - shortcuts - custom shortcuts )

Ubuntu 16.04 Unity

Оффлайн zg_nico

  • Заслуженный пользователь
  • Модератор форума
  • Старожил
  • *
  • Сообщений: 3513
  • Nil mortalibus arduum est
    • Просмотр профиля
Re: Задать комбинацию клавиш для eog
« Ответ #1 : 03 Июль 2020, 08:02:02 »
какие команды стоят за этими пунктами
то, что зашил разработчик (если только интерфейсом программы не предусмотрена, к примеру, возможность задать свои комбинации клавиш для отдельных действий контекстного меню; в данном случае это скорее всего не предусмотрено, иначе бы и вопрос не возникал). Чтобы "понять" что там зашито надо, имхо, "понимать в си":
Код: (bash) [Выделить]
git clone https://gitlab.gnome.org/GNOME/eog.git # это в общем случае. Если пакет стоит из системного репозитория  - имеет смысл брать его исходник по данным apt:
# apt source eog
# или как-то так...
#после завершения загрузки пробую выполнять из домашней папки, где у меня лежит подкаталог eog с исходным кодом поиск по файлам по ключевому слову flip и по ключевому слову Ctrl.
#из результатов фильтрую только файлы в подкаталоге src с расширением .c (моя прихоть - это не обязательно)
egrep -R '(.*Ctrl.*|.*flip.*)' eog/ | grep ".*src.*.c.*"
Вывод оно дает такой:
(Нажмите, чтобы показать/скрыть)
Соответственно, я бы ковырял в сторону eog-window.c (т.к. функции описаны в нем сами по себе) и eog-application.c (т.к. упоминаются комбинации клавиш). Соответственно, придется по аналогии с сделанными уже в программе комбинациями клавиш внедрить свой комбинации клавиш. Прописать их на постоянку, пересобрать программу из исходника, протестировать на работоспособность и, если все ок, установить на замену существующей в системе.
« Последнее редактирование: 03 Июль 2020, 09:35:41 от zg_nico »
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн Алексиус

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
Re: Задать комбинацию клавиш для eog
« Ответ #2 : 03 Июль 2020, 09:26:53 »
zg_nico, спасибо за развёрнутый ответ
То-есть, никаких других способов, кроме пересборки программы, нет?
Я надеялся, что обойдётся (:

Как человек далёкий от ИТ могу задавать вопросы, которые покажутся глупыми и вот хочу спросить;
перехватить какой-то прогой клик мыши по пункту, посмотреть что там и отдать это клавиатуре - нет?

(Нажмите, чтобы показать/скрыть)

Оффлайн zg_nico

  • Заслуженный пользователь
  • Модератор форума
  • Старожил
  • *
  • Сообщений: 3513
  • Nil mortalibus arduum est
    • Просмотр профиля
Re: Задать комбинацию клавиш для eog
« Ответ #3 : 03 Июль 2020, 09:32:40 »
перехватить какой-то прогой клик мыши по пункту, посмотреть что там и отдать это клавиатуре - нет?
???
ИМХО - нет. Совсем нет. Вы в данном случае подняли вопрос расширения предусмотренного разработчиком функционала конкретной программы. Программа эта написана на Си. Её функционал ограничивается тем, что заключено в ее исходном коде. Если Вы хотите нового функционала, логично принять, что Вам нужна правка исходного кода. О существовании волшебных утилит, позволяющих кликнуть в произвольную программу в любое место интерфейса, и превратить этот клик в некую универсальную функцию, которую впоследствии можно где-либо использовать, мне ничего не известно. Чисто гипотетически могу предположить, что таковых в природе не существует, т.к. слабо себе представляю техническую реализацию такого механизма.
Меж тем, если кто иного мнения - призываю высказаться на этот счет. Даже интересно было бы ошибиться...
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн Алексиус

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
Re: Задать комбинацию клавиш для eog
« Ответ #4 : 03 Июль 2020, 09:59:37 »
Заглянул в эти файлы (eog-window.c и eog-application.c) и действительно в одном перечислены функции, а в другом их привязка к клавиатуре.
По аналогии, если:
{ "open",          eog_window_action_file_open },  соответствует "win.open", "<Ctrl>o", NULL ,то
{ "flip-horizontal", eog_window_action_flip_horizontal }, должно соответствовать "win.flip-horizontal", "<KEY>key", NULL ,?
« Последнее редактирование: 03 Июль 2020, 10:15:52 от Алексиус »

Оффлайн zg_nico

  • Заслуженный пользователь
  • Модератор форума
  • Старожил
  • *
  • Сообщений: 3513
  • Nil mortalibus arduum est
    • Просмотр профиля
Re: Задать комбинацию клавиш для eog
« Ответ #5 : 03 Июль 2020, 10:10:05 »
?
Далее я бессилен, т.к. не знаю Си. Пробовать надо. Добавляете код - пробуете компилировать (в readme описано как именно). Если ошибок нет - запускаете, и смотрите что получилось.
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн Алексиус

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
Re: Задать комбинацию клавиш для eog
« Ответ #6 : 03 Июль 2020, 10:22:09 »
Не имея достаточно опыта, не готов сейчас пробовать, но тему не закрывайте пока.

 

Страница сгенерирована за 0.074 секунд. Запросов: 24.