LINUX.ORG.RU

Стандартизация хоткеев в ДЕ и ПО

 , ,


0

4

Всем доброго времени суток!

Тема эта навеяна повседневностью. Дело в том, что я постоянно натыкаюсь на то, что в разном ПО используются разные комбинации клавиш не только в разных ОС, но и в разных программах одного продукта (возьмем за пример GNOME 3). Конечно, есть уже устоявшиеся комбинации на вроде Ctrl + c, Ctrl + Home, Ctrl + Shift + Left/Right или Alt + F4. И вроде бы все нормально, но стоит захотеть перейти на какую-то вкладку или строку, не говоря уже о мультикурсорах, как возникает паническое удивление (странное описание чувств :/ ).

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

У freedesktop есть документ, который описывает хоткеи?

Поэтому я призываю сообщество к обсуждению данной проблемы. Делитесь своими комбинациями, аргументируйте, критикуйте и голосуйте. Может в конечном итоге мы общими усилиями сформируем некий документ, который станет стандартом для последующих версий ПО.

Отдельно хотелось бы услышать vi-пользователей. Это целая философия и каждая комбинация и команда (например, i,w,q,s) подкреплены символьно. Почему бы не объединить эту философию с повседневно используемым ПО? Да я слышал о WM, который управляется подобно vi, но я не об этом.

И в поддержание темы немного расскажу о своих хоткеях.

  • Ctrl + c - для копирования от слова copy. То есть, как и было.
  • Ctrl + C (Ctrl + Shift + C) - от слова Cut. Оказалось очень легко переучиться, символьно больше похоже на реальность, чем Ctrl + x и в дополнение решило мою проблему частого попадания по x вместо c там, где это не нужно.
  • Ctrl + i - для вставки текста от слова insert. Пока все еще по привычке использую Ctrl + x.
  • Ctrl + l - для перехода к строке от слова line. Но мне не очень нравится такой подход, как и Ctrl + i из-за того, что я в основном использую LCtrl от чего получается, что для Ctrl + l необходимо задействовать обе руки.

А такие комбинации, как Ctrl + s, Ctrl + f, Ctrl + q и Ctrl + w все еще по старинке, т.к. ничего лучше для search и close еще не придумал. Пока раздумываю над Ctrl + s для search и Ctrl + S для save.

Мне кажется, что неплохо получается с комбинациями через Shift - машинально работает как подстраховка, чтобы вместо copy не нажать cut, а вместо search - save.

Сейчас у меня больше изменений для работы с WM и DE, но оно, наверное, мало кому будет интересно, т.к. использую GNOME 3.

P.S. Возможно это больше подошло бы в Talks, но уж очень затрагивает Desktop.

★★★

Стандартизация хоткеев в ДЕ и ПО
<начал за здравие>
<все то немногое, что было стандартным, сломал>

Как же я терпеть не могу таких оптимизаторов. Теперь тебе два раза переучиваться — валяй, только страдай молча.

Отдельно хотелось бы услышать vi-пользователей.

Ну вот я.

Это целая философия и каждая комбинация и команда (например, i,w,q,s) подкреплены символьно.

И их принято не портить уже лет под сорок. Чуешь, куда я клоню?

t184256 ★★★★★ ()

а разве они и так не стандартизованы более-менее?

f1u77y ★★★ ()

Тема очень актуальная, сам неоднократно задавался подобными вопросами.
Сейчас попытаюсь осветить основные проблемы к которым я пришел. Итак:

  • проблемы клавиатур
    • Неэргономичная QWERTY/ЙЦУКЕН раскладка, которой более чем 100 лет(!)
    • Очень много дополнительных клавиш, предназначенных в основном для старых терминалов, которые лично я вообще никогда не использовал (HOME, END, INSERT, DELETE, и т.д., нумпад).
    • Клавиатура очень большая. Все клавиши, которые находятся выше `1234567890-= и правее BACKSPACE \ ENTER SHIFT CTRL использовать банально неудобно! (вот здесь и стоит обратить внимания на vi, т.к. философия этого редактора и была в том, чтоб упразднить лишнее и печатать можно не отрываясь от основной клавиатуры (hjkl управление))
    • С другой стороны, клавиш для выполнения повседневных, рутинных действий типа copy, paste, move, select и т.д. нет.

Решение проблем с клавиатурой может быть таким:
1) нужно составить список действий(а не хоткеев) при работе с компьютером, и для самых распространённых предоставить keyevent.
2) упразднить труднодоступные клавиши, вместо них — переход на vi-подобное сочетание клавиш.
3) вместо отдельных режимов (OPERATOR, VISUAL, …), из-за которых vim кажется таким сложным, предоставить клавиши-модификаторы. Как например у Keyboard.io.

  • проблемы програм
    • Перехватывают нажатия клавиш, а не собственно намерение, с которым клавиша была нажата. Таким образом Control+P в разных программах может трактоваться по разному.
    • Каждая программа предоставляет свои настройки, вместо опираться на общие.
    • Графические тулкиты предоставляют весьма скудные возможности для кастомизации хоткеев.
    • Ориентируются в основном на работу с мышкой, в результате чего, некоторые элементы интерфейса очень сложно достать при помощи клавиатуры
    • Имеют сложную структуру. Приведу в пример Vim\Emacs, где с буфферами, табами, окнами и т.д. с ума сойти можно. Почему это встроено в програму и в каждой по своему, а не делается через какой-то общий интерфейс, похожий на tmux?
    • Не имеют интерфейса через который можно эмулировать нажатие клавиш(и вместе с тем, автоматизировать программу), как например у bspwm.

Для решения проблем на програмном уровне, нужно:
1) написать библиотеку, которая будет перехватывать нажатия клавиш, превращать keyevent в keyintent, а затем отправлять в программу
2) очень хорошо задокументировать каждый keyevent и ожидаемое от него поведение.
3) разбивать огромные, монолитные программы на отдельные сущности и переиспользовать их. Таким образом, поля ввода, переключения между вкладками etc. по идее должны вести себя везде одинаково

I60R ★★ ()
Ответ на: комментарий от anonymous

нужно сделать настройку хоткеев в проге и все

Я замучился в каждой программе настраивать всё под vi.
Гораздо разумнее было бы настроить однажды и пользоваться этими настройками везде

I60R ★★ ()
Ответ на: комментарий от I60R

Хотя у vi тоже не все хорошо.

  • В командном режиме нужно избавиться от привязки к локали. А сейчас это плохо подходит для чего-то отличного от набора кода и текста на английском.
  • Esc для выхода в командный режим неудобен
  • Не так много программ с vi-подобным интерфейсом. Особенно с GUI. И в них часто бывают некоторые различия. Тулкитов для GUI я знаю только girara, c парой программ на нем, от его же разработчиков. Так что ситуация плачевная. Неплохо бы иметь HIG для написания vi-подобных программ с графическим интерфейсом.
Esteban_Garcia ()

Кстати, в Gnome 3.20 улучшение в плане хоткеев. Там почти для всех приложений можно посмотреть подсказки для комбинаций клавиш. Открывается окно по Ctrl+?. В 3.18 можно посмотреть в Gnome-builder.

Esteban_Garcia ()

Дело в том, что я постоянно натыкаюсь на то, что в разном ПО используются разные комбинации клавиш не только в разных ОС, но и в разных программах одного продукта (возьмем за пример GNOME 3).
появляется огромный плюс: время на вхождение в новый продукт значительно сократится, т.к. пользователь будет встречать привычные (для большинства) методы управления.

Да, есть такая беда. Я вижу 2 варианта решения: заставить сделать всех одинаково, или сделать ПО, которое будет, например, менять конфиги, чтобы не приходилось делать это вручную.

Ctrl + C (Ctrl + Shift + C) - от слова Cut.
Ctrl + i - для вставки текста от слова insert.
Ctrl + s для search и Ctrl + S для save.

Вот сам и тянись от Ctrl до I, и жми три кнопки для сохранения.

Если что, у культурных людей есть Ctrl-Insert и Shift-Insert.

batekman ★★★ ()
Ответ на: комментарий от t184256

Ой как тебя зацепили мои слова.

Но давай по сути. У каждого дурака свой стандарт. Win и mac, kde и gnome, vi, sublime, brackets, gedit и куча всего. Понимаешь куда я клоню?

Я не собираюсь трогать твой vi. Это законченная философия управления и она мне нравится. По своему, но нравится.

EmgrtE ★★★ ()
Ответ на: комментарий от anonymous

Спасибо за ссылочку. Кажется такое точно я видел в gnome.

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

EmgrtE ★★★ ()
Ответ на: комментарий от f1u77y

С большой натяжкой. Ограничусь в примере сначала только текстовыми редакторами. За этот год я работал в sublime, brackets и gedit. Одинаковыми остались только save, copy, cut, paste, close, search.

EmgrtE ★★★ ()

ссылку про «еще один стандарт» уже кидали сюда?

anonymous ()
Ответ на: комментарий от EmgrtE

поработай еще и с emacs, раз уж за текстовые редакторы взялся :)

anonymous ()
Ответ на: комментарий от I60R

Хм, интересная позиция! Я размышлял лишь над документным изменением, а вы предлагаете, чтобы были единые библиотеки для управления над определенными частями ПО. Как графическая библиотека, только для клавишь?

А на счет старых клавиатур согласен, но лишь частично. Например, home, end, pgup и pgdn я постоянно использую. Но у меня и их расположение не pc-at. А вот на счет функциональных клавишь нужно серьезно поразмыслить. Очень спорные они.

EmgrtE ★★★ ()
Ответ на: комментарий от EmgrtE

прийти к максимально компромиссному и стандартному решению

Каждый настраивает хоткеи так, как ему надо, не?

Valkeru ★★★★ ()
Ответ на: комментарий от EmgrtE

Ни слова по делу не сказал.

Еще раз: меняй хоткеи, страдай дважды. Если (как внезапно кажется по своим словам) еще и в vim'е менять будешь — будет четырежды.

t184256 ★★★★★ ()
Ответ на: комментарий от batekman

Ну, я же не говорил, что мои комбинации верны. Для этого я и создал тему, чтобы в дискуссии прийти к общему знаменателю.

А на счет insert, то он не на всех клавиатурах есть. В последнее время все меньше клавиш остается командных и все больше добавляют функциональных.

EmgrtE ★★★ ()
Ответ на: комментарий от t184256

Ну ты даешь. Еще раз повторяю: я не собираюсь трогать vi.

А какое дело ты ожидал? Что я соглашусь с тобой? Не Читай тогда, я же тебя не заставляю.

EmgrtE ★★★ ()
Ответ на: комментарий от I60R

которые лично я вообще никогда не использовал (HOME, END, INSERT, DELETE, и т.д., нумпад).

А есть люди которые их используют постоянно. Поэтому стандарт никому 300 раз не впал.

Нужна возможность глобальной настройки хоткеев и все.

anonymous ()
Ответ на: комментарий от Valkeru

Согласен, но проблема все же есть. Ведь чем меньше схожих действий в большинстве ПО, тем больше настраивать.

EmgrtE ★★★ ()
Ответ на: комментарий от EmgrtE

в текстовых редакторах как раз пытаются сделать самую удобную с точки зрения автора систему хоткеев, посему они все довольно разные

f1u77y ★★★ ()
Ответ на: комментарий от anonymous

И перестановки клавиш! Честно, я задумывался над этим. Но опять таки, pc-at - это тоже стандарт, разработанный в ibm. Поэтому, возможно, стоит пересмотреть его подогнать под нынешние реалии, только не под «потребителей контента».

EmgrtE ★★★ ()
Ответ на: комментарий от EmgrtE

Еще раз повторяю: я не собираюсь трогать vi.

Тогда я тебя правильно понял, а ты его не в тему приплел, а потом еще раз не в тему приплел.

Я ожидал, что ты отставишь в сторону свой юношеский максимализм и перестанешь выращивать кактусы, чтобы их потом уплетать. Ну ничего, вспомнишь меня, когда будешь переучиваться назад.

t184256 ★★★★★ ()
Ответ на: комментарий от f1u77y

Да, есть такое, но кажется, что в большинстве случаев хоткеи назначены по принципу: пока не придумали куда притулить.

EmgrtE ★★★ ()
Ответ на: комментарий от t184256

Нет, скорее всего ты не с стой стороны донес свои мысли или я не с той стороны зашел.

Спасибо, но нет, это не юношеский максимализм. Просто мне надоело каждый раз переучиваться. Бывало такое, что я удивлялся тому, что в новой версии ПО уже другие хоткеи.

Теперь мне понятна твоя позиция.

EmgrtE ★★★ ()
Ответ на: комментарий от EmgrtE

Смысел-то всё переиначивать, если те же Ctrl-c и Ctrl-v, как ты упомянул, почти везде работают. В специфическом софте и/или для чего-то «нестандартного» — да, проблемка. Хотя те, кто этим пользуется, могут и привыкнуть, если достаточно молоды.

Вообще, я за то, чтобы весь софт выглядел максимально одинаково, поддерживал какие-то общие настройки, и в том числе хоткеи. Но в век GTK+ 3, Qt 5 и хрома это звучит просто смешно. Пока могучий и популярный софт делают так, чтобы пользователь по-максимуму с него офигевал, попытки работать в этом направлении дадут результат очень слабый.

А на счет insert, то он не на всех клавиатурах есть. В последнее время все меньше клавиш остается командных и все больше добавляют функциональных.

Надо смотреть что покупаешь, от этого никуда не денешься.

batekman ★★★ ()
Ответ на: комментарий от batekman

Я же не говорю все переиначивать. Это лишь малый пример моих хоткеев. По большей мере я имел ввиду такие вещи, как переход на строку, мультикурсор, переключение между вкладок и т.д. Тут все очень плохо.

Да, смешновато о таком говорить в век разных графических библиотек, но пусть будет, хотя бы документ с рекомендациями, чтобы со временем что-то сдвинулось в сторону общепринятых норм.

Ну, у меня то insert есть, но на новых ноутбуках его нет. Да и на hhkb-подобных клавиатурах его нет.

EmgrtE ★★★ ()
Ответ на: комментарий от Esteban_Garcia

Локаль - да. Надо запихнуть по живому ёжику в задний проход каждому однолокальному разработчику vim.

Esc удобен, это субъективно.

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

Deleted ()
Ответ на: комментарий от Esteban_Garcia

В командном режиме нужно избавиться от привязки к локали.

От привязки к локали нужно отказаться вообще!
Я имею в виду, что в vi должен обрабатывать не клавиши 'a' 'b' 'c', а действия, которые они должны выполнять 'cut' 'paste' …

Esc для выхода в командный режим неудобен

Ну вообще то логично, выходить из какого-то режима при помощи ESC. Здесь уже проблема современных клавиатур, а не vi

Не так много программ с vi-подобным интерфейсом.

Их как раз таки много, в этом проблема.
Они все пытаются подражать vi, а не имплементируют какой-то стандарт.
Проблема ещё усугубляется тем, что настройки одной программы, не влияют на другую. Если я поменял в vim стандартные настройки клавиш, я привыкаю, и мне нужно перенастраивать остальные программы; новый стандарт конфига, новые команды, новая документация … это всё очень и очень печально

I60R ★★ ()
Ответ на: комментарий от EmgrtE

путем всеобщего обсуждения прийти к максимально компромиссному и стандартному решению.

Всех не уровнять. Руки разные, привычки разные, клавиатуры разные.
Я предлагаю делать настройки хоткеев общими\стандартными не для всех людей, а только для программ которыми пользуется один человек:
потратил день, чтоб забиндить нужные клавиши на нужные действия; сохранил конфиг — все программы работают одинаково.
Красота, не правда ли?

I60R ★★ ()
Ответ на: комментарий от EmgrtE

Как графическая библиотека, только для клавишь?

Именно!
Что-то вроде обертки над libinput…

Например, home, end, pgup и pgdn я постоянно использую

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

А вот на счет функциональных клавишь нужно серьезно поразмыслить. Очень спорные они.

Согласен, очень удобно переименовть вызвать справку через F1, переиеновать через F2, обновить F5.
Но черт побери, почему к ним так трудно дотянуться и почему они не называются HELP, RENAME, REFRESH?

I60R ★★ ()
Ответ на: комментарий от t184256

меняй хоткеи, страдай дважды. Если (как внезапно кажется по своим словам) еще и в vim'е менять будешь — будет четырежды.

Зато после того как привыкнешь, будешь получать в два раза больше удовольствия от работы

I60R ★★ ()
Ответ на: комментарий от anonymous

Все продвинутые пользователи их функционал постоянно используют. Только по разному.
Кто-то привык HOME, кому-то gg удобнее, остальные вообще перетягивают скроллбар мышкой.
У всех намерение одно, и результат один.
Разные только пути достижения, которые предлагает программа.
Поэтому стандарт нужен не на уровне хоткея, а на уровне действия, которое хоткей должен выполнить.
Тогда

возможность глобальной настройки хоткеев

будет сделать проще всего

I60R ★★ ()
Ответ на: комментарий от I60R

Нет, переведешь действие из категории идеомоторного в требующее мысленных усилий и просаживающее весь конвеер. Это или будешь на чужих компах на печать слать вместо вставки.

t184256 ★★★★★ ()
Ответ на: комментарий от t184256

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

Ну вот я в vim переназначил w на f(forward) и с на e(edit), а на c назначил другое действие (comment). Что я даже считаю логичнее и удобнее того, что по стандарту есть в vim.

будешь на чужих компах на печать слать вместо вставки

не проблема, т.к. я всёравно за своим компом провожу 99.99% времени

I60R ★★ ()

Не существует единственно верных хоткеев. Для меня, например, vi-like управление сравнимо с содомией с гусями.

Затея обречена на провал только потому, что ты считаешь свое видение единственно верным.

anonymous ()
Ответ на: комментарий от I60R

для старых терминалов
HOME, END, INSERT, DELETE

facepalm

anonymous ()
Ответ на: комментарий от I60R

Да для начала хотя бы рекомендационный документ, а потом написать какой-то libinputhotkeys, в котором будут функции на вроде cut, paste, delete и т.д. и будет поставляться во все большее и большее число ПО, как этл происходит с gtk+ и qt. Хотя это больше похоже на udev :) .

Хм, проникся я Вашей идеей.

EmgrtE ★★★ ()
Ответ на: комментарий от I60R

На счет функциональных клавиш. Что-то подобное уже несколько лет делают на ноутбуках. Только они пошли от обратного. Раньше нужно было для уменьшения яркости дисплея нажимать fn+f5, то теперь наоборот: fn+f5, чтобы сработала f5.

EmgrtE ★★★ ()
Ответ на: комментарий от anonymous

Согласен, что единого ответа нет, но и полная анархия - это также плохо.

Почему ты решил, что я свое видение вижу единственно верным?

EmgrtE ★★★ ()
Ответ на: комментарий от EmgrtE

Замечательно :)

Но мне для начала, пожалуй, стоит начать решать некоторые вопросы ИРЛ, чтобы появилось время на разработку и поддрежку.
А так же опыт…
Не хочется сначала наобещать людям, а затем забросить проект недоделанным

I60R ★★ ()

Отдельно хотелось бы услышать vi-пользователей. Это целая философия

Дальше даже читать не стал, хотя начало вроде адекватное было.

Линукс потому и занимает < 1% на десктопе, что некоторые личности смешивают несовместимое, например «хоткеи vi» и «удобство работы в DE»

Alve ★★★★★ ()
Ответ на: комментарий от I60R

а вот емакс избавляет от необходимости использовать кучу стороннего софта, а учитывая, что для gtk искаропки есть готовая emacs-like комбинация хоткеев — всё не так уж и страшно.

lazyklimm ★★★★★ ()
Ответ на: комментарий от batekman

Ctrl-Insert и Shift-Insert.

ну т.е. Ctrl-i тебе неудобно, а тянуться до insert, который вообще хрен знает где - норм?

lazyklimm ★★★★★ ()
Ответ на: комментарий от t184256

Это или будешь на чужих компах на печать слать вместо вставки.

если достаточно много работать на чужих компах - научишься переключать контексты, говорю как человек, который несколько месяцев работал на трёх компах с разными раскладками (ruu, ru-winkeys и кастомная).

lazyklimm ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.