LINUX.ORG.RU

Замапить LAlt+a/r/s/t на стрелочки

 , , ,


1

2

Пробовал через .Xmodmap:

keycode 38 = a A a A Left Left Left Left

Не работает.

В /usr/share/X11/xkb/symbols/us как я понял есть только AltGr мапы.

Еще попробовал: xmodmap -e «keycode 38 mod1 = a Left». Ничего не меняется. С перестановкой: xmodmap -e «keycode 38 mod1 = Left a», a начинает вести себя как стрелка влево, ALT+A тоже.

Если что xmodmap -pm выдает mod1 как Alt_L (0x40), Meta_L (0xcd)

Система: ArchLinux.

Что делать?

Deleted

Последнее исправление: meatich (всего исправлений: 2)

Тпруууу.. Я не туда заехал. Xmodmap биндит педали, но не сочетания. Если поменять «лево» на «право», то норм. А alt+key - нет.

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

Xmodmap биндит педали, но не сочетания.

Чавой?

копаем в сторону XBindKeys

Зачем здесь этот костыль?

Zmicier ★★★★★
()
Последнее исправление: Zmicier (всего исправлений: 1)

Пробовал через .Xmodmap

Это очень ограниченный язык управления XKB, с помощью какого можно было бы назначить «left» на Alt_L-a, только если бы такое сочетание уже существовало.

А вам нужно обратиться к полноценному языку описаний XKB, на каком написан в частности упомянутый вами /usr/share/X11/xkb/symbols/us. Тем более что он куда понятнее, чем это ваше «a A a A Left Left Left Left».

Zmicier ★★★★★
()

Однако тут есть одна тонкость. Если вы просто назначите <LEFT> клавише <LatA> на уровне зажатого левого альта, и будете жать <Alt_L-a>, то для искового клиента-то альт-то никуда не денется, он увидит <A-Left>, и (к примеру) сдвинет курсор не на символ влево, а на слово.

Если это не то, что вам нужно, то XKB здесь предоставляет два сходных механизма: overlay’и и RedirectKey с clearmods.

В первом случае надо будет переназначить нужную вам клавишу с <Alt_L> на переключение на overlay (альтом она при этом быть перестанет).

Скорее всего именно это вам и надо, поэтому держите выдержку из моего ~/.xkb.d и делайте по аналогии:

partial modifier_keys
xkb_symbols "lctrl_overlay" {
    replace key <LCTL> {
            type = "PC_CONTROL_LEVEL2",
            symbols = [ Control_L, NoSymbol ],
            actions = [ SetMods(modifiers=Control),
                        SetControls(controls=overlay1) ]
    };
};

partial modifier_keys
xkb_symbols "rctrl_overlay" {
    replace key <RCTL> {
            type = "PC_CONTROL_LEVEL2",
            symbols = [ Control_R, NoSymbol ],
            actions = [ SetMods(modifiers=Control),
                        SetControls(controls=overlay1) ]
    };
};

default partial modifier_keys
xkb_symbols "ctrl_overlay" {
    include "nav(lctrl_overlay)"
    include "nav(rctrl_overlay)"
};

partial modifier_keys
xkb_symbols "lctrl_lock_overlay" {
    replace key <LCTL> {
            type = "PC_CONTROL_LEVEL2",
            symbols = [ Control_L, NoSymbol ],
            actions = [ SetMods(modifiers=Control),
                        LockControls(controls=overlay1) ]
    };
};

partial modifier_keys
xkb_symbols "rctrl_lock_overlay" {
    replace key <RCTL> {
            type = "PC_CONTROL_LEVEL2",
            symbols = [ Control_R, NoSymbol ],
            actions = [ SetMods(modifiers=Control),
                        LockControls(controls=overlay1) ]
    };
};

partial modifier_keys
xkb_symbols "ctrl_lock_overlay" {
    include "nav(lctrl_lock_overlay)"
    include "nav(rctrl_lock_overlay)"
};

partial modifier_keys
xkb_symbols "rctrl_space_overlay" {
    replace key <SPCE> {
            type = "PC_RCONTROL_LEVEL2",
            symbols = [ space, NoSymbol ],
            actions = [ NoAction(),
                        SetControls(controls=overlay1) ]
    };
};

partial modifier_keys
xkb_symbols "ctrl_space_overlay" {
    replace key <SPCE> {
            type = "PC_CONTROL_LEVEL2",
            symbols = [ space, NoSymbol ],
            actions = [ NoAction(),
                        SetControls(controls=overlay1) ]
    };
};

partial modifier_keys
xkb_symbols "super_space_overlay" {
    replace key <SPCE> {
            type = "PC_SUPER_LEVEL2",
            symbols = [ space, NoSymbol ],
            actions = [ NoAction(),
                        SetControls(controls=overlay1) ]
    };
};

partial modifier_keys
xkb_symbols "super_space_lock_overlay" {
    // key <I253> { symbols = [ NoSymbol ] };
    // key <I253> { actions = [ LockControls(controls=overlay1) ] };

    replace key <SPCE> {
            type = "PC_SUPER_LEVEL2",
            symbols = [ space, NoSymbol ],
            actions = [ NoAction(),
                        LockControls(controls=overlay1) ],
            overlay1 = <I253>
    };
};

partial modifier_keys
xkb_symbols "hwdm" {
    // key <I250> { symbols = [ NoSymbol ] };
    // key <I250> {
    //     actions = [ RedirectKey(key=<BKSP>, mods=Control) ]
    // };
    key <LatH> { overlay1 = <BKSP> };
    key <LatW> { overlay1 = <I250> };
    key <LatD> { overlay1 = <DELE> };
    key <LatL> { overlay1 = <RGHT> };
    key <LatM> { overlay1 = <LNFD> };
};

partial modifier_keys
xkb_symbols "pbnf" {
    key <LatP> { overlay1 = <UP> };
    key <LatB> { overlay1 = <LEFT> };
    key <LatN> { overlay1 = <DOWN> };
    key <LatF> { overlay1 = <RGHT> };
};

partial modifier_keys
xkb_symbols "ijkl" {
    key <LatI> { overlay1 = <UP> };
    key <LatJ> { overlay1 = <LEFT> };
    key <LatK> { overlay1 = <DOWN> };
    key <LatL> { overlay1 = <RGHT> };
};

partial modifier_keys
xkb_symbols "khjl" {
    key <LatK> { overlay1 = <UP> };
    key <LatH> { overlay1 = <LEFT> };
    key <LatJ> { overlay1 = <DOWN> };
    key <LatL> { overlay1 = <RGHT> };
};

partial modifier_keys
xkb_symbols "zxcv" {
    key <LatZ> { overlay1 = <UNDO> };
    key <LatX> { overlay1 = <CUT> };
    key <LatC> { overlay1 = <COPY> };
    key <LatV> { overlay1 = <PAST> };
};

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

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

Zmicier ★★★★★
()

И вообще на практике сама идея показала себя не с лучшей стороны, так что на практике я от этого отказался: GTK, Readline и Emacs позволяют все настроить куда гибче, чем на уровне тупой переадресации нажатий, а больше я и не пользуюсь толком ничем. Однако если вы пользуетесь чем-нибудь еще, то это может быть вам полезно, да.

Ну и наконец, вы не удовлетворите мое любопытство — что это за парадигма такая: mod-{a, r, s, t}?

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

Все равно спасибо за ссыль, до этого еще не натыкался.

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

Спасибо за развернутый ответ!

И вообще на практике сама идея показала себя не с лучшей стороны, так что на практике я от этого отказался: GTK, Readline и Emacs позволяют все настроить куда гибче, чем на уровне тупой переадресации нажатий, а больше я и не пользуюсь толком ничем.

Неудачно повозившись с альтом с один вечер, тоже решил что этого будет достаточно перемапить в emacs и qutebrowser все. С первым проблем не возникло, а во втором в caret mode мапы делать нельзя. А мне до стрелочек тянуться - как до тачпада. Да и стрелочки - это же повсеместно. Хотелось бы сделать сразу хорошо и надолго (я только перешел на линукс).

Ну и наконец, вы не удовлетворите мое любопытство — что это за парадигма такая: mod-{a, r, s, t}?

Использую раскладку Colemak (setxkbmap us -variant colemak), а первые четыре клавиши home row - a, r, s, t. С этим собственно и связан вопрос - как я понял мне нужно писать так:

partial modifier_keys
xkb_symbols "arst" {
    key <LatA> { overlay1 = <LEFT> };
    key <LatR> { overlay1 = <UP> };
    key <LatS> { overlay1 = <DOWN> };
    key <LatT> { overlay1 = <RGHT> };
};

Но если это просто закинуть в ~/.xkb.d, то он не загружается по умолчанию и я не нашел команду как его загрузить. Или можно просто куда то закинуть этот кусок кода в /usr/share/X11/symbols/us ? Но так что бы еще что бы colemak подгружался, который там же. Не хватает знаний как сделать.

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

Использую раскладку Colemak, а первые четыре клавиши home row - a, r, s, t.

Вот оно что! Ну так они тогда и не a, r, s, t, а <AC01>, <AC02>, <AC03> и <AC04>.

А вообще любопытства не убавилось — это ваше личное изобретение или так где-то принято? Давно пользуетесь?

А мне до стрелочек тянуться - как до тачпада
достаточно перемапить в emacs

Так в Емаксе как бы и не особо поощрятся стрелочками пользоваться. Куча сочетаний из коробки предусмотрена не только для перемещения по строкам и символам, но и по разным смысловым единицам, и «альт» нужен в своем собственном значении еще как.

я только перешел на линукс

Линукс®? Нет, он вам здесь не поможет. Давайте все-таки в Иксах.

Но если это просто закинуть в ~/.xkb.d, то он не загружается по умолчанию

Ну во-первых, увы, да. А во-вторых, я надеюсь, вы уловили, что это варианты (причем взаимоисключающие), то есть нужна еще строчка, где вы собственно выберете, что́ надо. Да и все остальное: раскладки и прочее надо описать, так что вот вам собственно головной ~/.xkb в своей минимальности:

xkb_keymap {
  xkb_keycodes {
    include "evdev+aliases(qwerty)"
  };

  xkb_types {
    include "complete"
  };

  xkb_compatibility {
    include "complete"
    include "ledcaps(group_lock)"
  };

  xkb_symbols {
    include "pc+us:1+ru:2+inet(evdev)"
    include "nav(ctrl_overlay)+nav(hwdm)+nav(pbnf)"
  };
};

Здесь nav, как вы поняли, — это имя файла из ~/.xkb.d/symbols/, что я привел выше.

и я не нашел команду

$ xkbcomp -I"$HOME/.xkb.d" "$HOME/.xkb" "$DISPLAY"
Zmicier ★★★★★
()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от Zmicier

~/.xkb в своей минимальности

Да, для а переноса своих настроек $ setxkbmap -print в помощь.

Zmicier ★★★★★
()
Последнее исправление: Zmicier (всего исправлений: 2)
Ответ на: комментарий от Zmicier

Все сделал как у Вас, строки из $ setxkbmap -print адаптировал как надо в .xkb по вашему шаблону, в ~/.xkb.d/symbols/nav кусок кода из моего предыдущего поста записал, в .xkb nav(arst) по аналогии добавил. Не работает. Кэша .xkm в /var/lib/xkb/ не обнаружилось (проверял через ls -la).

Придумал вот такие грабли. В .Xmodmap заменил кейкод левого альта на ISO_Level3_Shift NoSymbol ISO_Level3_Shift - то есть на AltGr. Как и в первом посте сделал keycode 38 = a A a A Left Left Left Left. Таки работает! Но не везде. В gvim все норм, но не в qutebrower'e и не в терминале.

Я так подумал, а они там особо и не нужны эти стрелки в этом qutebrower'e. Плюс все старые бинды связанные с левым альтом в приложениях перестают функционировать (в том же i3, хоть и решается это через xbindkeys).

Но все это микрооптимизации. Я хоть и думал, что на лине это как семечки расколется (а не растянется на три вечера), ну да и хрен с ним. Как Вы и говорили:

И вообще на практике сама идея показала себя не с лучшей стороны, так что на практике я от этого отказался: GTK, Readline и Emacs позволяют все настроить куда гибче, чем на уровне тупой переадресации нажатий, а больше я и не пользуюсь толком ничем.

Кстати, что за GTK? Это же графическая библиотека, а не приложение?

А вообще любопытства не убавилось — это ваше личное изобретение или так где-то принято? Давно пользуетесь?

Ну раз уже такое дело, то расскажу. В новый год 2016 зачесалось познать дзен текстовый редакторов и выбор пал на вим. Слепым набором я уже владел, но начитавшись про dvorak и colemak и RSI(repetitive strain injury), решил переучиться (почему колмак, гуглить dvorak vs colemak, там просто по цифровым показателям он лучше). Короче, сразу учил и colemak и vim. Отказался от qwerty совсем. Сначала было тяжко. Особенно донимал (месяц наверное) тот факт, что 's' стоит третьей клавишей во втором ряду (в кверти - второй). Путался постоянно. Через неделю скорость была еще плохой, но терпимой. Через полгода скорость была такой же как рекорд на кверти. Сейчас быстрее чем на кверти (438 cpm в стамине (это прога под винду)). Но это не главное, главное что теперь пальцы и правда не дергаются сами по себе после длительных сессий программирования. Удобнее эта раскладка.

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

Все сделал как у вас
не работает

УМВР.

Именно так отвечают в таких случаях. Намекая, что тут не телепаты собрались, и где там вашего «все как у вас» что́ не как у «нас» по пересказам не видят.

Таки работает! Но не везде.

Я уже, кажется, об’яснял, что́ это дает.

Плюс все старые бинды связанные с левым альтом в приложениях перестают функционировать

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

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

Zmicier ★★★★★
()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от Deleted

думал, что на лине это как семечки расколется
на лине

Пардон?

это ваше личное изобретение или так где-то принято?

раз уже такое дело, то расскажу
сразу учил и colemak и vim
теперь пальцы и правда не дергаются сами по себе после длительных сессий программирования. Удобнее эта раскладка

Все это, конечно, очень трогательно... Но если я еще верно помню, по vi'йной парадигме перемещение по символам — это <AC06>, <AC07>, <AC08>, <AC09>, а никак не <Alt_L-AC01>, <Alt_L-AC02>, <Alt_L-AC03>, <Alt_L-AC04>.

То есть на вопрос вы решили не отвечать. Ну и бог с вами.

repetitive strain injury

В контексте стрелочки влево под мизинцем весьма актуально, да. ;-)

Кстати, что за GTK?

GNU Image Manipulation Program Toolkit :-)

Это же графическая библиотека, а не приложение?

Так точно. В отличие от вашей Qt она позволяет пользователю настраивать сочетания клавиш. До Емакса ей конечно далеко, да и до Ридлайна не дотягивает, но все-таки это далеко не бездумная пересылка типа C-n → <down>.

Емакс-подобные (а на самом деле как раз Ридлайн-подобные) сочетания включены в поставку, см. /usr/share/themes/Emacs/gtk-3.0/gtk-keys.css.

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

Ладно. А теперь ближе к делу.

То ли я чего-то не догоняю, то ли одно из двух, но у меня не получилось сделать так, чтобы перехватывались только <a>, <s>, <d>, <f> с левым альтом, а с правым пропускались, и при этом от устаревших клиентов, для каких нет никаких правых / левых, а есть только mod1 (это URxvt, Емакс, Вим, ваш i3, емнип, тоже), не отвалился левый альт вообще.

Так что помимо варианта с оверлэем могу только предложить еще вариант с обоими альтами:

~/.xkb.d/types/action:

partial default xkb_types "action" {
    type "FOUR_LEVEL_ALPHABETIC+ALT_ACTION" {
	modifiers = Shift+Lock+LevelThree+Alt;
	map[None] = Level1;
	map[Shift] = Level2;
	map[Lock]  = Level2;
	map[LevelThree] = Level3;
	map[Shift+LevelThree] = Level4;
	map[Lock+LevelThree] =  Level4;
	map[Lock+Shift+LevelThree] =  Level3;
        map[Alt] = Level5;
	level_name[Level1] = "Base";
	level_name[Level2] = "Shift";
	level_name[Level3] = "Alt Base";
	level_name[Level4] = "Shift Alt";
        level_name[Level5] = "Action";
    };
};

~/.xkb.d/symbols/nav:

partial modifier_keys
xkb_symbols "alt_asdf" {
    key <AC01> {
            type = "FOUR_LEVEL_ALPHABETIC+ALT_ACTION",
            actions = [ NoAction(), NoAction(), NoAction(), NoAction(),
                        RedirectKey(key=<LEFT>, clearmods=Alt) ]
    };
    key <AC02> {
            type = "FOUR_LEVEL_ALPHABETIC+ALT_ACTION",
            actions = [ NoAction(), NoAction(), NoAction(), NoAction(),
                        RedirectKey(key=<DOWN>, clearmods=Alt) ]
    };
    key <AC03> {
            type = "FOUR_LEVEL_ALPHABETIC+ALT_ACTION",
            actions = [ NoAction(), NoAction(), NoAction(), NoAction(),
                        RedirectKey(key=<UP>, clearmods=Alt) ]
    };
    key <AC04> {
            type = "FOUR_LEVEL_ALPHABETIC+ALT_ACTION",
            actions = [ NoAction(), NoAction(), NoAction(), NoAction(),
                        RedirectKey(key=<RGHT>, clearmods=Alt) ]
    };
};

~/.xkb:

xkb_keymap {
  xkb_keycodes {
    include "evdev+aliases(qwerty)"
  };

  xkb_types {
    include "complete"
    include "action"
  };

  xkb_compatibility {
    include "complete"
    include "ledcaps(group_lock)"
  };

  xkb_symbols {
    include "pc+us:1+ru:2+inet(evdev)"
    include "group(shift_caps_switch)"
    include "nav(alt_asdf):1+nav(alt_asdf):2"
  };
};
Zmicier ★★★★★
()
Ответ на: комментарий от Zmicier

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

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

Но если я еще верно помню, по vi'йной парадигме перемещение по символам — это <AC06>, <AC07>, <AC08>, <AC09>, а никак не <Alt_L-AC01>, <Alt_L-AC02>, <Alt_L-AC03>, <Alt_L-AC04>.

То есть на вопрос вы решили не отвечать. Ну и бог с вами.

Но не при колмаке :) Для сохранения мнемоники, значения клавиш диктуются символьно, а не позиционно. При колмаке, это значит что надо нажимать все те же h, j, k, l, которые расположены в других местах, и пользоваться ими неудобно. Отсюда и выход с альтом. Вы имели ввиду этот вопрос?

Так что помимо варианта с оверлэем могу только предложить еще вариант с обоими альтами

Работает! Редактировать сообщения в этом браузере стало в 10 раз приятнее. Большое спасибо!

Кстати правый альт я просто перемапил через .Xmodmap на Escape. Все отлично.

Единственная проблема которая имеется на данный момент - при переключении языка через Caps Lock на русский, диод капс лока либо загорается либо потухает в зависимости от его предыдущего состояния. При переключении на английский диод остается таким же как и прежде. Проблема в том что при включенном диоде на английском не печатаются a,r,s,t. Надо делать еще несколько переключений что бы диод потух и раскладка была на английском. Не подскажете как исправить?

думал, что на лине это как семечки расколется на лине

Пардон?


На линуке :) Я имел ввиду что мои предположения о простоте настройки клавы были немного иными чем сейчас.

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

На линуке :) Я имел ввиду что мои предположения о простоте настройки клавы были немного иными чем сейчас.

И да, я понял что дело в иксах а не в ядре.

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

Вы имели ввиду этот вопрос?

Нет, я имел в виду ровно тот вопрос, какой задал: «Это ваше личное изобретение или так где-то принято?».

Большое спасибо!

Да всегда пожалуйста.

Кстати правый альт я просто перемапил через .Xmodmap на Escape.

Ага, прелестно, то есть ограничиться левым можно было даже не пытаться.

Для справки могу сообщить, что по нормальному это делается как-то так:

Но я так и не понял: обозреватель обозревателем, а основной-то инструмент у вас какой? Емакс с vi’йным управлением? В этом случае, боюсь, от альта отказываться особо неразумно: у вас же тогда эскейп мету не зажимает? То есть нажать какой-нибудь M-a становиться невозможно вовсе.

Тут можно посоветовать назначить ESC вместо *залипающих* альтов (да обоих, почему нет). XKB так не умеет, но можно воспользоваться костылем типа xcape(1).

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

это делается как-то так

Ой, пардон, у меня выдержка отвалилась:

partial modifier_keys
xkb_symbols "ralt_esc" {
    replace key <RALT> {
        type = "ONE_LEVEL",
        symbols = [ Escape ]
    };
};
Zmicier ★★★★★
()

Alt_L

А он замапен как модификатор ?

Я так пробовал WASD на стрелочки замапить, сделал CapsLock модификатором для 3го слоя (AltGr) через setxmodmap, А дальше уже стрелки в .Xmodmap

Правда у меня не срослось с W, она упорно отказалась мапиться и я забил

Dred ★★★★★
()
Последнее исправление: Dred (всего исправлений: 1)
Ответ на: комментарий от Deleted

Единственная проблема которая имеется на данный момент - при переключении языка через Caps Lock на русский, диод капс лока либо загорается либо потухает в зависимости от его предыдущего состояния.

Хм... Проверил — УВМР.

Посмотрите на настоящее состояние XKB — ничего ли постороннего не затесалось:

$ xkbcomp "$DISPLAY" -
Zmicier ★★★★★
()

вот такой у меня сейчас setxmodmap

setxkbmap -query
rules:      evdev
model:      pc105
layout:     us,ru
variant:    ,,
options:    terminate:ctrl_alt_bksp,grp:alt_shift_toggle,grp_led:scroll,grp_caps_lock_toggle,lv3:caps_switch,lv5:rwin_switch_lock,lv3:caps_switch_latch,compose:rwin-altgr,misc:typo

Кажись misc:typo включает 3й слой

Вот такая вешает «влево» на «A»

xmodmap -e "keycode  38 = a A Cyrillic_ef Cyrillic_EF Left NoSymbol Left NoSymbol" 

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

Dred ★★★★★
()
Последнее исправление: Dred (всего исправлений: 2)
Ответ на: комментарий от Zmicier

Посмотрите на настоящее состояние XKB — ничего ли постороннего не затесалось

Да, таки без .Xmodmap все нормально работало, я ж про него и забыл. Удалил строку с caps-lock'ом из .Xmodmap (keycode 66 = ...) и все теперь хорошо.

Но я так и не понял: обозреватель обозревателем, а основной-то инструмент у вас какой? Емакс с vi’йным управлением? В этом случае, боюсь, от альта отказываться особо неразумно: у вас же тогда эскейп мету не зажимает? То есть нажать какой-нибудь M-a становиться невозможно вовсе.

Ага, Emacs с evil-mode'ом. Установил арч неделю назад и вместе с ним решил освоить и емакс, но что бы не отказываться от вима. А на счет комбинаций, я слишком привык к ним. Те же стрелочки. Вот скажем на qwerty: J, K у меня круглые скобки. А какие там понятия у емакса на счет M-j, M-K вопрос второй. Теперь еще забиндил alt + qwerty: q,w,e,r,g,h,u,i,o,p на отдельные workspace'ы, каждый с определенным приложением, в i3. Да, черт, это настолько удобно, что я готов программировать даже в гедите, лишь бы оно работало.

Кстати, еще один большой для меня плюс стрелок через альт и в то же время колмака - так это освобождаются клавиши кверти: h, j, k, l. Теперь colemak: h, l (qwerty: h, u) работают в качестве перемотки на пол-страницы. И это в связке с easymotion (emacs: ace-jump). Это супер быстрая навигация.

Так ли все это сказочно на чистых биндах емакса? Я не знаю.

Нет, я имел в виду ровно тот вопрос, какой задал: «Это ваше личное изобретение или так где-то принято?».

«Это все мое, родное...»

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

Удалил строку с caps-lock'ом из .Xmodmap (keycode 66 = ...) и все теперь хорошо.

Ну и славно. А там еще что-то осталось? Неплохо бы тоже поудалять.

Емакс с evil-mode’ом

То есть наслоено три несовместимых уровня управления: емаксовый, вимовый и ваш с альтом. Ну-ну.

какие там понятия у емакса на счет M-j, M-k

Как вы наверняка уже заметили, емаксовый подход — в назначении клавиш сугубо по мнемонике, без учета расположения клавиш. Так что на любой раскладке C-n, где бы не находилась «n», будет переходом на следующую (next) строку, а C-x C-s — сохранением (save).

Кстати, в свете нестандартной раскладки вы уже разобрались со вводом кириллицы в ГНУ Емаксе? Если нет, то сообщаю, что вам нужна quail-keyboard-layout-alist; вашей QWFPGJ там нет, но добавить несложно.

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

То есть наслоено три несовместимых уровня управления: емаксовый, вимовый и ваш с альтом. Ну-ну.

Меня все устраивает /╲/\╭( ͡° ͡° ͜ʖ ͡° ͡°)╮/\╱\

Кстати, в свете нестандартной раскладки вы уже разобрались со вводом кириллицы в ГНУ Емаксе? Если нет, то сообщаю, что вам нужна quail-keyboard-layout-alist; вашей QWFPGJ там нет, но добавить несложно.

Русская раскладка у меня стандартная, колмак заточен только под английский, поэтому все работает.

А Емакс хорош и лисп его приятен :) Потихоньку буду пилить свой Spacemacs, но без всего того что меня в нем раздражает, вроде хелма который выскакивает на каждый пробел.

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

в свете нестандартной раскладки вы уже разобрались со вводом кириллицы в ГНУ Емаксе? Если нет, то сообщаю, что вам нужна quail-keyboard-layout-alist; вашей QWFPGJ там нет, но добавить несложно.

Русская раскладка у меня стандартная, колмак заточен только под английский, поэтому все работает
все работает

Вот здесь поподробнее, пожалуйста.

Раскладка где? В Иксах? Так же Емакс, как и ряд других программ с историей, не умеет с ней работать. Или я пропустил такое эпохальное событие?

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

Перешел на другой комп, забыл залогинится, уведомлений не видел, Вашего сообщения соответственно тоже.

Ну да, в Иксах. УМВР. Переключаю на кириллицу через шифт+капс-лок, в Емаксе в evil-insert-mode все печатается и отображается правильно. Или Вы про команды которые не работают с кириллицей? Это, да, была такая проблема, еще в виме приходилось постоянно переключаться. Но тут же лисп, тут можно все. Т.к. символы русской раскладки нужны только в инсерт моде, а в нормальном нужна всегда латиница, проблему я решил установкой xkblayout-state и написанием:

(defun obtain-current-layout-name ()
  (shell-command-to-string "xkblayout-state print \"%n\""))

(defun switch-layout-to-English ()
  (shell-command-to-string "xkblayout-state set 0"))

(defun switch-layout-to-Russian ()
  (shell-command-to-string "xkblayout-state set 1"))

(defvar layout-when-exiting-insert-mode (obtain-current-layout-name))

(defun on-enter-insert-mode ()
  (if (equal "Russian" layout-when-exiting-insert-mode)
      (switch-layout-to-Russian)))

(defun on-exit-insert-mode ()
  (setq layout-when-exiting-insert-mode (obtain-current-layout-name))
  (switch-layout-to-English))

(add-hook 'evil-insert-state-entry-hook 'on-enter-insert-mode)
(add-hook 'evil-insert-state-exit-hook 'on-exit-insert-mode)

Одним словом, раскладка для инсерт-мода запоминается.

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

ПС Хотя да, обычные сочетания Emacs через modifier-keys конечно в инсерт-моде при кириллице не работают. Но я ими и не пользуюсь.

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