2013-02-20 2 views
6

Существует ли модифицированная клавиатура Colemak, разработанная специально для программирования?Модифицированный Colemak для программирования

Я пошел на холодную индейку на раскладке клавиатуры Colemak несколько дней назад, и мне очень нравится обычная типизация, но у меня есть некоторые проблемы для частых символов программирования, таких как ; (точка с запятой). Модифицированный макет, который имеет прямые сопоставления для фигурных скобок и скобок, будет приятным.

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

+0

Ожидание всего несколько дней, чтобы акклиматизироваться, вероятно, не достаточно, чтобы иметь реальное ощущение того ; (и т.д.) работают для вас. Однако ваш вопрос довольно старый; как вы идете? Что касается улучшения Colemak, если вы на Mac, посмотрите [Karabiner] (https://pqrs.org/osx/karabiner/), который можно использовать для создания практически любого (например, слоев, инвертирование номера номера и т. д.). – wincent

+0

@wincent Я все еще на Colemak и использую Karabiner, но я бы не рекомендовал переключиться с QWERTY на кого-либо еще. Я мазохист - мне уже слишком поздно, хотя я бы рекомендовал получить эргономичную клавиатуру, такую ​​как Kinesis. –

ответ

1

У вас есть взгляд на мотивы большого угла dreymar на colemak.com?

вы можете придерживаться; в середине клавиатуры для легкого доступа с [и] выше и ниже этого, возможно?

2

Я понимаю, что этот вопрос уже год, но вот мой ответ, если он помогает кому-то еще.

Это проблема, с которой я столкнулся чаще, чем я хотел бы уточнить.

Достаточно сказать, что нет, даже после нескольких месяцев поиска мне еще предстоит найти подходящий «Colemak для программирования». У него такое же раздражение, как и обычная QWERTY, в том, что он злоупотребляет правильным мизином для специальных символов, и желательно было бы переназначить, но теперь, когда беспорядок сделан, немедленных решений не будет.

Там только две вещи, которые вы можете сделать:

1) Сделайте заказ раскладки клавиатуры. Для Win/Lin/Mac существуют различные инструменты. Это аккуратно, так как вы можете просто перестроить все, как вам удобно. С другой стороны, огромный недостаток заключается в том, что никто другой не использует раскладку клавиатуры, и если вас попросят ввести что-то на компьютер, у вас будут проблемы, так как ваша мышечная память будет совсем другой.

2) Существует раскладка клавиатуры под названием Programmer Dvorak, целью которой является решение вашей проблемы. Здесь недостатком является то, что программист Dvorak относительно неизвестен по сравнению со стандартной клавиатурой Dvorak, так же, как и выше. Однако он только перегруппировывает специальные символы, что означает, что вы все равно можете использовать стандартный Dvorak, если это потребуется (и он гораздо более распространен, чем Colemak). Будьте готовы потратить месяцы на переходный период.

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

2

фон

Это я делаю час и половину презентации на клавиатуре истории макета и теории: https://www.youtube.com/watch?v=i1hK1qrdYtU

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

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

Используйте теорию и подстройте ее под свои нужды.

Терминология:

  • ALTGR: Обычно включен правильный ключ альт для вас, чтобы писать иностранные или диакритические символы.
  • Уровень 1: Макет без ключей-модификаторов (Shift, Altgr).
  • Уровень 2: Компоновка с Shift
  • Уровень 3: Размещение с Altgr
  • Уровень 4: Размещение с Shift + Altgr

Beta Keypad-ВИМ программиста Colemak v3

Это правый ориентированный макет, который я WAS использование за прошедший год: enter image description here

Имейте в виду, эта схема была оптимизирована для:

  • vi (Обратите внимание, как направленные клавиши на правой руке, так же, как vi)
  • C Языки
  • APL (Да, АПЗ)
  • XML (Вторичное рассмотрение)
  • Bash (set -o vi)

Он охватывает три основные радикальные теории на раскладках:

  1. Направленной Ключи Up Down Left Right Home End PgUp PgDn должен быть передан на уровень 3 все в пределах досягаемости для вашего естественного размещения пальца.
  2. Оба ключа Alt должны быть переведены в Altgr, так что вы можете получить доступ к Уровню 3 с любой рукой.
  3. Номера должны быть сняты с верхнего ряда и организованы в клавиатуру. Общие символы калькулятора должны окружать его.

    • Следует также сказать, что программисты планируют принципиально перемещать номера клавиш с уровня 1, потому что хороший программист не должен часто использовать Числа.См: https://en.wikipedia.org/wiki/Magic_number_%28programming%29

Вот как теория разыгрывается в течение года использование:

Теория 1 - Направленная Ключи

EXPLOSIVE ПОВЫШЕНИЕ НА ВСЕЙ Workflow, особенно документа для редактирования (в отличие от программирования, где vi уже предоставляет эту функциональность)

  • Клавиши Home и End чрезвычайно полезны при правильном размещении.
  • Направляющие ключи являются незаменимыми.
  • PgUp и PgDn недоиспользуются, однако это может быть из-за того, что вы наклонили пошатнутые места клавиатуры, заставляя вас растягиваться на Prior. В настоящее время тестирование этого отменено на левой руке

Теория 2 (изображенном на Низ этого ответа.) - AltGr

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

При необходимости важно отметить, что некоторые очень незначительные боли могут развиваться с большим пальцем, нажимая на них так часто. Небольшая цена для оплаты. Если бы вы могли получить усаженную компоновку пробелов, например: enter image description here

Это, вероятно, решит проблему.

Другая проблема, которая была бы огромной для большинства пользователей, не имела альт-ключа. Однако на Ubuntu вы можете получить доступ ко многим командам меню с помощью HUD, что устраняет необходимость в 90% сочетаний клавиш, которые будут использовать Alt. Единственная проблема, с которой я мог столкнуться, - это не иметь доступа к терминалам TTY. (Alt + Ctrl + F1) Я никогда не беспокоился переназначить его, хотя должен.

Теория 3 - Число Pad

enter image description here

Это было жестким, а именно из-за его левой ориентации. В предыдущих версиях я экспериментировал с перемещением клавиатуры на один уровень, так что 0 и 1 были бы в домашнем ряду, а с переходом числа в обратном направлении (обратите внимание, как это делается 3210 вместо 0123).

В конце концов я пришел предпочитать, но корректировка была довольно трудной, потому что:

  • Мышечная память для клавиатур чаще всего с правой стороны.
  • Горизонтально разнесенные раскладки клавиатуры (которые фантастически глупы. Смотрите мое видео на YouTube), сделайте сложную цифровую панель, хотя я разработал лучший компромисс.
  • Обратный порядок цифр, который необходим, потому что вы хотите, чтобы 0 и 1 (наиболее распространенные) доступны указательным пальцем.

В конце дня (и многие месяцы его корректировки) я предпочитаю его, хотя я чувствую, что он только на 40% настолько хорош, насколько это возможно. Что еще более важно, хотя, я обнаружил несколько вещей:

  • + было на самом деле проще набрать на уровне 3 затем положить его на 1-го уровня от в углу или даже в верхнем ряду.
  • . был невероятно полезен на b

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

Бета WADS-клавиатура Программисты Colemak v1

enter image description here

Оптимизированный для:

  • C Языки ();//<< ""\n\tm_
  • Bash /""<*&&||\\(\)^C
  • Редактирование документа ?!Shift_RControl_R

Holdover Теории:

  • обратного Кронштейны: Ориентация () изменяется на )( является очень предпочтительным. Это часть основной теории Колемака, которая гласит, что легче свернуть пальцы с мизинец на большой палец. (Colemak - это макет, который подчеркивает перетаскивание пальцев по ручному изменению, которое Dvorak уделяет приоритет). Особенно полезен для этой чрезвычайно распространенной триггеры C++. (); Было удивительно легко привыкнуть, хотя это кажется обратным.
  • Уровень 2 в основном нетронутый: Это просто для практической регулировки. Это не очень важный слой, поэтому он поддерживается для мышечной памяти.
  • Управление между сменой и z: Лучший мод. Копирование, вставка, Выбрать все и Отменить не являются более болезненными и неудобными, и теперь это простой рулон.
  • Return on Level 3 right pinky: В vim, o создает новую строку. Было целесообразно разместить Return на этом ключе для редактирования текста. Это оказалось очень удобным, и это быстро стало мышечной памятью.
  • Двойной котировочный средний палец: Его преступник имеет двойную кавычку на уровне 2. Я с большим удовольствием нашел его в самом легком для достижения ключа верхней строки, 4.
  • ? на уровне 1: Человек, которого я люблю. Не нужно заканчивать с ручным переключением клавиш, это не для написания документов.

Новые теории

  • мизинец никогда не должны касаться ПРОБЕЛ строки, или даже смены ключей: Преимущества перемещения этого ключа управления на один уровень вверх убедили меня совсем об этом. (Обратите внимание, что у меня есть французский макет, который превращает левую смену в две кнопки.) В конце концов, это то, чем развивается страшный emacs pinky. Таким образом, клавиша смены была помещена в домашнюю строку. В то время как у меня возникло соблазн также превратить Capslock в ключ переключения и переместить назад на Alt+D, я собираюсь просто придерживаться правой клавиши сдвига o. В моем коротком опыте, я уже люблю его там, и не пропустите все, что у меня было раньше.
  • Вы никогда не должны закончить заявление, пункт, или предложение на уровне 2: Из-за моего большого успеха с ? на 1-го уровня, я решил поставить ! там, хотя и в дальнем углу. Я переместил его в дальний угол, потому что это не так часто, и ¬ и ~ оба являются представителями фальшивых/не-операторов. !=~Deconstructors(P & ¬Q). Основной упор заключается в том, что вы должны иметь возможность завершить утверждение, параграф, предложение и т. Д., Не выполняя ключевой комбо, поскольку это нарушает поток.
  • Использование памяти мышью WADS: В то время как vi у вас есть направления на правой руке, любой, кто играл в видеоигру, привык делать движение своей правой рукой, поэтому следует следить за тем, левая рука. Будет переназначить Vim, но последовать этому примеру, что потребует некоторой корректировки.
  • Клавиатура должна находиться только на правой руке.: Как уже было сказано, это визуально имеет больше смысла, сохраняет 0 и 1 на указательном пальце и использует мышечную память, разработанную с помощью клавиатуры.
  • Побег на уровне 3 a: Мы посмотрим, как это развивается. Я попробовал это на тильде, но обычно забывал, что это было там. Как пользователь vim, мне нужно немного Escape, но обычно я уменьшал эту потребность путем сопоставления inoremap, так что клавиши направления 3 уровня сбрасывались (и перемещали курсор) при нажатии.
  • Уровень 3 C и V должны быть заполнены с очень распространенной, не алфавитно-цифровой биграммы: На данный момент, у меня есть его */, как это важно для комментирования, но он может быть наполнен многими разными вещами.
  • & на уровне 1 в положении сдвига: Самый неприятный персонаж, который когда-либо пытался нажать и при нажатии shift. То же самое касается ^, который я бы использовал справедливым битом в регулярных выражениях. Если вы вообще полагаетесь на них, вам нужно найти лучшее место для них.
  • Попробуем вставить и удалить на уровне 3 Z и X.

Все остальное - в основном просто отделка. Опять же, вы перемещаете их в зависимости от вашего использования. Разработчик python может захотеть поставить : на первый уровень и разместить его для комбо с Return.

Неудачные Теории

  • Shift + Backspace должен выполнить Delete: Путь слишком запутанным и не полезно.

  • 78/* биграмм: Это не было на самом деле, что плохо, но это было не очень полезно, учитывая биграмм идет как направление. Это также потребовало значительного растяжения. Я думаю, что было бы лучше иметь персонажей в каждой руке, чтобы было проще объединить их в обоих направлениях.

  • Tilde Escape: Just under used. Если вы собираетесь растягиваться так далеко, возможно, также ударить ключ спасения, который я часто делал.

  • {} на 1-го уровня правой руки у входа, а не наоборот: Это было ужасно и откровенно болезненным биграмм, очень неудобно выполнять в случае, если вы когда-нибудь понадобится {}. Лучше место для одного несвязанных символов (то есть, два символа вы не подтолкнет подряд)


создать свой собственный пользовательский макет

https://docs.google.com/spreadsheets/d/1LkvWvwjahVaJyaN9hmDdulrAN08x7gQEM6DT4NFkok4/edit#gid=507511935

Я создал эту таблицу, которая будет генерировать соответствующий код xkb для вставки в макет. Просто:

  1. Изменить символы на Layout Definition Page
  2. в этом будет преобразовывать символы юникода, которые объединяются в разработке XKB кода.
  3. Перейдите на страницу XKB и выберите строки и вставьте их в свой макет.
  4. Правильно добавьте новый макет.

Теперь, создавая правильное расположение на самом деле довольно сложно, так что я просто заменить то, что уже в определении Colemak (BACKUP FIRST, если вы сделаете ошибку, вы не сможете печатать на всех, и может даже нужна живая загрузка для устранения проблемы)

и это выглядит следующим образом:.

sudo vim /usr/share/X11/xkb/symbols/us 

// Colemak symbols for xkb on X.Org Server 7.x 
// 2006-01-01 Shai Coleman, http://colemak.com/ 
// Akiva Abraham WADS-Keypad Programmer's Colemak 

partial alphanumeric_keys 
xkb_symbols "colemak" { 

include "us" 
name[Group1]= "English (Colemak)"; 

key <CAPS> { [ BackSpace, BackSpace,  BackSpace,  BackSpace ] }; 
key <LSGT> { [Control_R, Control_R, Control_R, Control_R] }; 
key <SPCE> { [  space,  space,   space,  nobreakspace ] }; 

key <TLDE> { [U0021, U007E, U00AC, U00A4] }; 
key <AE01> { [U005B, U0021, U005B, U20AC] }; 
key <AE02> { [U005D, U0040, U005D, U00A2] }; 
key <AE03> { [U002F, U0023, U002F, U00A3] }; 
key <AE04> { [U0022, U0024, U0022, U00A5] }; 
key <AE05> { [U003C, U0025, U003C, U003C] }; 
key <AE06> { [U003E, U005E, U003E, U003E] }; 
key <AE07> { [U0026, U0026, U0026, U2030] }; 
key <AE08> { [U002A, U002A, U002A, U00BC] }; 
key <AE09> { [U0029, U007D, U0029, U00BD] }; 
key <AE10> { [U0028, U007B, U0028, U00BE] }; 
key <AE11> { [U005F, U005F, U002D, U2308] }; 
key <AE12> { [U003D, U002B, U003D, U230A] }; 

key <AD01> { [U0071, U0051, minus, U00A9] }; 
key <AD02> { [U0077, U0057, Home, U00AE] }; 
key <AD03> { [U0066, U0046, Up, U2191] }; 
key <AD04> { [U0070, U0050, End, U00B6] }; 
key <AD05> { [U0067, U0047, Prior, U2371] }; 
key <AD06> { [U006A, U004A, U0023, U2372] }; 
key <AD07> { [U006C, U004C, U0037, U00B0] }; 
key <AD08> { [U0075, U0055, U0038, U22A4] }; 
key <AD09> { [U0079, U0059, U0039, U00A7] }; 
key <AD10> { [U003B, U003A, U2234, U2234] }; 
key <AD11> { [U005C, U005C, minus, U0025] }; 
key <AD12> { [U007C, U00A6, U007C, U2262] }; 
key <BKSL> { [U0027, U0060, U0060, U2260] }; 

key <AC01> { [U0061, U0041, Escape, U2122] }; 
key <AC02> { [U0072, U0052, Left, U2190] }; 
key <AC03> { [U0073, U0053, Down, U2193] }; 
key <AC04> { [U0074, U0054, Right, U2192] }; 
key <AC05> { [U0064, U0044, Next, U2228] }; 
key <AC06> { [U0068, U0048, U0024, U2227] }; 
key <AC07> { [U006E, U004E, U0034, U22A3] }; 
key <AC08> { [U0065, U0045, U0035, U22A5] }; 
key <AC09> { [U0069, U0049, U0036, U22A2] }; 
key <AC10> { [U006F, U004F, Return, U2235] }; 
key <AC11> { [Shift_R, Shift_R, Shift_R, Shift_R] }; 

key <AB01> { [U007A, U005A, Insert, U2229] }; 
key <AB02> { [U0078, U0058, KP_Delete, U222A] }; 
key <AB03> { [U0063, U0043, U002A, U2282] }; 
key <AB04> { [U0076, U0056, U002F, U2283] }; 
key <AB05> { [U0062, U0042, U002E, U2022] }; 
key <AB06> { [U006B, U004B, U0030, U00BA] }; 
key <AB07> { [U006D, U004D, U0031, U00B9] }; 
key <AB08> { [U002C, U003C, U0032, U00B2] }; 
key <AB09> { [U002E, U003E, U0033, U00B3] }; 
key <AB10> { [U003F, U003F, U002F, U2020] }; 

include "level3(ralt_switch)" 
include "level3(lalt_switch)" 
}; 
Смежные вопросы