Использовать ISO_Level3_Shift как Escape при нажатии

Veamos qué sucede realmente aquí:

$ set -x
$ bash -c "var=3; echo $var"
+ bash -c 'var=3; echo '

Con set -xobtienes un seguimiento de qué comandos se ejecutan realmente (usa set +xpara desactivar esto ). Aquí vemos que la variable $varse expande a una cadena vacía antes de que se ejecute el shell secundario bash -c.

Esto se debe a las comillas dobles del argumento de bash -c, lo que hará que el shell actual realice una expansión variable dentro de la cadena. Dado que la variable varno está definida o está vacía en el shell actual, su expansión es la cadena vacía.

Para proteger una cadena de la "interferencia" del shell, use comillas simples:

$ bash -c 'var=3; echo $var'
+ bash -c 'var=3; echo $var'
3

... o escapar de$(En mi opinión, no tan agradable):

$ bash -c "var=3; echo \$var"
+ bash -c 'var=3; echo $var'
3
0
04.06.2019, 22:58
1 ответ

Почитав страницу xcape на github , я нашел простое решение. В прошлом году был объединен запрос на извлечение , который позволяет передавать коды клавиш вместо символов клавиш в xcape.

Решение:

xcape -e "#66=Escape"

Как получить правильный код ключа?

xev -event keyboard

Нажмите клавишу, которую вы хотите изменить. Тогда вы должны увидеть что-то подобное:

KeyPress event, serial 29, synthetic NO, window 0x4c00001,
    root 0x190, subw 0x0, time 771139, (110,626), root:(204,711),
    state 0x0, keycode 66 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
    XKeysymToKeycode returns keycode: 51
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

Там вы найдете свой код ключа (66 в этом примере ).

0
28.01.2020, 03:37

Теги

Похожие вопросы