Как я могу связать свой ключ capslock с командой fish shell и отключить его функциональные возможности переключения?


9

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

Однако я обнаружил, что хочу tabиспользовать функцию complete_autocomplete, а не однозначную. Клавиши «Вперед» и «Конец» оба делают это, но они находятся вне досягаемости моих пальцев в обычном положении печати.

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

Я пытался, setxkbmap -option caps:noneно это, кажется, отключить capslockключ полностью. Я полагаю, что мог бы связать его с клавишей «вперед» или «конец», но я тоже не уверен, как это сделать.

Кроме того, я не могу найти ключевую привязку в оболочке рыбы для capslock:

cowpig@gerty:~$ bind -K
b2
backspace
btab
dc
down
end
enter
f1
f2
f3
f4
f5
f6
f7
f8
f9
f10
f11
f12
f13
f14
f15
f16
f17
f18
f19
f20
home
ic
left
npage
ppage
right
sdc
send
sf
shome
sic
sleft
snext
sprevious
sr
sright
up

Я считаю, что вам придется найти инструмент переотображения на системном уровне для Ubuntu, так как программы пользовательской земли обычно не могут подавить поведение caps-lock по умолчанию.
Ник Свитинг,

Я предполагаю, что вы можете использовать xbindkeys, чтобы установить поведение блокировки по умолчанию, сказать ему отправить другое событие и обработать это событие в fish?
XtrmJosh



Вы могли бы написать демона Python, чтобы справиться с этим. Некоторая основная информация здесь: stackoverflow.com/questions/22367358/…
Nandakumar Edamana

Ответы:


2

Во-первых, проверьте руководство, потому что я думаю, что Ctrl+ Fтакже будет автозаполнение. Вы можете видеть это, набрав helpв рыбе.

Если вы хотите продолжить сопоставление, запустите xevи нажмите, capslockчтобы получить код ключа. Мой 66:

enter code hereKeyRelease event, serial 37, synthetic NO, window 0x5200001,
root 0x4b7, subw 0x0, time 6149967, (918,609), root:(984,661),
state 0x10, keycode 66 (keysym 0xff57, End), same_screen YES,
XKeysymToKeycode returns keycode: 37
XLookupString gives 0 bytes: 
XFilterEvent returns: False

Теперь создайте скрипт (т.е. ~ / xmodmap.sh) с разрешением 755 и следующим текстом:

#/bin/bash
xmodmap -e "keycode 66 = End"
xmodmap -e "clear Lock"

Запустите скрипт, и он будет преобразован capslockв Endключ.

Чтобы сделать это постоянным, добавьте эту команду в автозагрузку приложений:

/bin/bash -c "sleep 7 && /home/myusername/xmodmap.sh"

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

Я использую , Alt Grчтобы отобразить некоторые ключи к сближению позиций: Настройка раскладки клавиатуры , включая клавиши навигации


Это почти то, что я хочу :)
mavix
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.