[РЕШЕНО] Забиндить Escape на Ctrl+Space (не выходит)

Настройка графического интерфейса, Иксов, десктопов, оконных менеджеров и иксовых терминалов

Модератор: Модераторы разделов

Аватара пользователя
Black
Сообщения: 1104
ОС: ArchLinux

[РЕШЕНО] Забиндить Escape на Ctrl+Space

Сообщение Black »

Доброго вечера.
Пытаюсь сделать так, чтобы в иксах при нажатии ctrl+space выдавался пробел escape. Поскольку файл раскладки у меня свой, просто дописал в конец строчку (в оба файла - us_my и ru_my):

Код: Выделить всё

    key <SPCE> {[  space,  Escape  ], type[group1] = "PC_CONTROL_LEVEL2" };
И... не работает. xev показывает, что escape есть, но никто кроме xev это не воспринимает. Что я делаю не так?
xev

Код: Выделить всё

KeyPress event, serial 35, synthetic NO, window 0x2800001,
    root 0x4bd, subw 0x0, time 28782853, (1184,435), root:(1186,466),
    state 0x10, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 35, synthetic NO, window 0x2800001,
    root 0x4bd, subw 0x0, time 28783150, (1184,435), root:(1186,466),
    state 0x14, keycode 65 (keysym 0xff1b, Escape), same_screen YES,
    XKeysymToKeycode returns keycode: 9
    XLookupString gives 1 bytes: (1b) "
    XmbLookupString gives 1 bytes: (1b) "
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x2800001,
    root 0x4bd, subw 0x0, time 28783255, (1184,435), root:(1186,466),
    state 0x14, keycode 65 (keysym 0xff1b, Escape), same_screen YES,
    XKeysymToKeycode returns keycode: 9
    XLookupString gives 1 bytes: (1b) "
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x2800001,
    root 0x4bd, subw 0x0, time 28783465, (1184,435), root:(1186,466),
    state 0x14, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False
PS: archlinux, xorg-server-21.1.13-1, notion (собран из git)
Последний раз редактировалось Black 17.09.2024 20:12, всего редактировалось 2 раза.
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21180
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Забиндить Escape на Ctrl+Space

Сообщение Bizdelnick »

Black писал:
11.09.2024 20:23
при нажатии ctrl+space выдавался пробел
Так escape или пробел?
Black писал:
11.09.2024 20:23
xev показывает, что escape есть, но никто кроме xev это не воспринимает.
А какого именно действия Вы ждёте? По выхлопу xev это получается Ctrl+Esc, а не просто Esc, и вряд ли можно сделать иначе.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Black
Сообщения: 1104
ОС: ArchLinux

Re: Забиндить Escape на Ctrl+Space

Сообщение Black »

Bizdelnick писал:
12.09.2024 11:21
Так escape или пробел?
Escape. Очепятка, исправился.
Bizdelnick писал:
12.09.2024 11:21
А какого именно действия Вы ждёте? По выхлопу xev это получается Ctrl+Esc, а не просто Esc, и вряд ли можно сделать иначе.
По выхлопу получается так. А хочется чтобы был просто escape.

Пока что нагуглил вот такое: https://github.com/alols/xcape
Без параметров делает escape из ctrl, если тот просто жмакнуть. При этом сочетания типа ctrl+d, ctrl+alt+l и т.п., работают как обычно. Буду пробовать.
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
Спасибо сказали:
Kopilov
Сообщения: 953
ОС: [K]Ubuntu, Debian

Re: Забиндить Escape на Ctrl+Space

Сообщение Kopilov »

Bizdelnick писал:
12.09.2024 11:21
вряд ли можно сделать иначе
Хех. Я попробовал забиндить ctrl+space на команду xdotool key Escape (через настройки DE) и пытался понять, почему начал диспетчер процессов открываться. А потому, что эта комбинация отрабатывала, как ctrl+space+escape, по которой он по умолчанию и открывается.

А вариант sleep 0.5s && xdotool key Escape работает почти так, как хочет Black. Главное за эти 0.5s успеть отпустить все клавиши.
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2971
ОС: Gentoo

Re: Забиндить Escape на Ctrl+Space

Сообщение ormorph »

Свой парсер нажатия клавиш написать и не мучиться, чтобы работал как демон. Просто нужно задержу установить, чтобы не получилась комбинация ctrl+space+escape. Если на Python, то смотреть пакеты pynput и pyautogui.
Спасибо сказали:
Аватара пользователя
Black
Сообщения: 1104
ОС: ArchLinux

Re: Забиндить Escape на Ctrl+Space

Сообщение Black »

Kopilov писал:
12.09.2024 13:46
А вариант sleep 0.5s && xdotool key Escape работает почти так, как хочет Black. Главное за эти 0.5s успеть отпустить все клавиши.
xdotool key Escape тоже пробовал с тем же успехом. А вот до sleep 0.5 не додумался. Но оно будет неудобно - я таки жмакаю кнопки несколько быстрее, чем раз в полсекунды. В mc, кажется, escape срабатывал как раз с задержкой в полсекунды-секунду. Дико раздражало, когда оно полсекунды думает.

Пока что пытаюсь привыкать к xcape. Вроде годный способ. Просто я давно себе в vim прицепил этот ctrl+space в качестве пробела, привык. Вот захотелось теперь везде так сделать, а оно оказалось с подвохом :-\
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
Спасибо сказали:
Аватара пользователя
Black
Сообщения: 1104
ОС: ArchLinux

Re: Забиндить Escape на Ctrl+Space

Сообщение Black »

Хм... Придумал ещё одно применение для xcape, и оно опять не работает.

Shell

xcape -t 1000 -e 'Control_L=Escape;Shift_L=ISO_First_Group;Shift_R=ISO_Last_Group'
Левый шифт переключает на первую ракладку, а правый... тоже на первую, хотя должен бы на вторую. (уже оффтоп, но не совсем)


UPD: Таки остановился на варианте, предложенном Kopilov, только с задержкой 0.2 с: sleep 0.2; xdotool key Escape. Успеваю отпустить кнопки, и при этом не слишком заметная задержка.
А xcape - глючит. Периодически перестаёт работать, потом опять работает. Какой-то системы в поведении не замечено.
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
Спасибо сказали: