LINUX.ORG.RU

Как запилить такой экшон? (шорткаты для Git на numpad'е клавиатуры / хардварные кнопки для Git)

 , , ,


2

2

Простите, если вам пришло уведомление по причине вашей подписки на тег «Git». Возможно кто-то из пользователей сабжа уже реализовал то, о чем я интересуюсь, и поэтому я влепил этот тег.

Как известно, на многих ноутбуках и клавиатурах есть нампад (numpad или keypad?) - совершенно бесполезный массив кнопок.

Я хочу сделать из него пульт управления VCS, конкретно, например для Git. Рассмотрим на простом примере:

Нажатие на кнопку [2] (она же KP_Down) делает следующее:

git clone --depth 1 <вставка из буфера обмена> <CR>
т.е., будучи в терминале, нажав 2 - у меня автоматически вводится «git clone», вставляется адрес из буфера обмена и нажимается Enter (<CR>). Готово.

Если хочу не в текущую диру, то ввожу сначала путь, а в экшон просто добавляется C-a (Home). В общем неважно, надеюсь суть ясна? Кнопок как минимум 9, а с модификаторами вообще можно будет забыть о вводе каких либо управляющих команд. Кнопка 2/8 с стрелочками вниз/вверх мнемонически удобно для clone/push, например.

Вопрос: как такое реализовать? (проблема конкретно забиндить на одно нажатие кнопки: управляющая команда + вставка из буфера обмена + <CR>)

xcape? xdotool? или можно по хардкору как?

★★☆

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

А вообще, идея интересная, подпишусь

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

Нет. Но довольно таки часто (раз 20-30 в сутки) приходится это делать. Почему-бы не автоматизировать. Работа с Git просто как пример, нужно еще для различных кейсов.

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

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

baverman ★★★ ()

На здешнем faq была страничка про xkb, хотя я не уверен, что так можно сымитировать нажатие целого вороха кнопок. Через средства твоей любимой DE/WM это можно сделать проще, но там будет привязка к клавише-модификатору, что, в общем-то, не так уж и плохо.

Deleted ()

А ты можешь вообще на кнопку забиндить команду? Забиндь

echo $(echo | "git clone --depth 1 $(xclip -o)")

Пример для вгета, например (предполагая, что в буфере - example.iana.com):

cdshines@v3700:~|⇒  echo $(echo | wget $(xclip -o))
--2013-06-11 01:02:05--  http://example.iana.org/
Resolving example.iana.org (example.iana.org)... 93.184.216.119, 2606:2800:220:6d:26bf:1447:1097:aa7
Connecting to example.iana.org (example.iana.org)|93.184.216.119|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1270 (1.2K) [text/html]
Saving to: ‘index.html.2’

100%[=============================================================================>] 1,270       --.-K/s   in 0s

2013-06-11 01:02:06 (213 MB/s) - ‘index.html.2’ saved [1270/1270]

--2013-06-11 01:02:06--  http://example.iana.org/
Resolving example.iana.org (example.iana.org)... 93.184.216.119, 2606:2800:220:6d:26bf:1447:1097:aa7
Connecting to example.iana.org (example.iana.org)|93.184.216.119|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1270 (1.2K) [text/html]
Saving to: ‘index.html.3’

100%[=============================================================================>] 1,270       --.-K/s   in 0s

2013-06-11 01:02:06 (103 MB/s) - ‘index.html.3’ saved [1270/1270]


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

Да, спасибо большое, удалось запилить:

~/.xbindkeysrc

"/usr/bin/xvkbd -xsendevent -text "echo \[$]\[(]echo \[|] git clone \[-]\[-]depth \[1] \[$]\[(]xclip \[-]o \[-]selection clipboard\[)]\[)]\r" &"
KP_Down
Пример того, о чем спрашивал выше. Теперь по нажатию KP_Down клонируется репа, адрес которой берется из буфера обмена. Кстати, можно экспериментировать с primary, secondary и clipboard буфером. Ура!

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

ugh, какой синтаксис *__*

Хотя в КДЕ не лучше есть способы:

https://dl.dropboxusercontent.com/u/12869350/snapshot77.png

https://dl.dropboxusercontent.com/u/12869350/snapshot76.png

https://dl.dropboxusercontent.com/u/12869350/snapshot78.png

Причем шорткаты биндятся от нажатия, то есть ни о каком KP_Down не может быть и речи - либо 2, либо «Down», которое откуда угодно может быть.

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