Видео ролики бесплатно онлайн

Смотреть девушки видео

Официальный сайт jetune 24/7/365

Смотреть видео бесплатно

WeLinux.ru

23.01.09 19:43denis

How-to`sxbindkeys а-ля vim

Многие знают об особенностях работы с клавиатурой в редакторе vim. И многим они нравятся. Мне также нравятся эти особенности, и после знакомства с дополнением vimperator для firefox iceweasel захотелось сделать нечто подобное для всей системы в целом. А точнее — запускать программы по нажатию на клавиатуре какой-то предопределенной буквы.

Для того чтобы это реализовать нужно было создать какой-нибудь дополнительный режим работы клавиатуры, при котором запуск программ не мешал бы обычному вводу текста. Что-нибудь, похожее на XCompose key.

Давным-давно у меня был xbindkeys, настроенный на работу с мультимедийными клавишами клавиатуры. Его-то я и решил поковырять в первую очередь, и... все получилось! Поковыряв примеры scm файлов настройки (до этого у меня был стандартный формат), я накидал такой скриптик:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
;; Удаление "вторых" клавиш
(define (remove-keys)
  (remove-xbindkey '("g"))
  (remove-xbindkey '("w"))
  (remove-xbindkey '("f"))
  (remove-xbindkey '("o"))
  (remove-xbindkey '("a"))
  (remove-xbindkey '("t"))
  (remove-xbindkey '("m"))
  (remove-xbindkey '("l"))
  (remove-xbindkey '("h"))
  (remove-xbindkey '("Escape"))
  (grab-all-keys)
)

;; Добавление одной "второй" клавиши
(define (add-key key command)
  (xbindkey-function key
                     (lambda ()
                       (run-command command)
                       (remove-keys))))

;; Список "вторых" клавиш для добавления
(define (add-keys)
  (add-key "g" "google_search&")
  (add-key "w" "wikipedia_search&")
  (add-key "f" "firefox_url&")
  (add-key "o" "opera_url&")
  (add-key "a" "arora_url&")
  (add-key "t" "google_translate&")
  (add-key "m" "xclip -o | sed -n 1p | xargs xterm -e man")
  (add-key "l" "arora http://linux.org.ru/")
  (add-key "h" "arora http://habrahabr.ru/")

  (xbindkey-function '("Escape")
                     (lambda ()
                       (remove-keys)))
  )

;; цепляем "первую" клавишу
(xbindkey-function '("XF86AudioMute")
                     (lambda ()
                       (add-keys)
                       (grab-all-keys)))
 


Таким образом, при запуске xbindkeys цепляет клавишу XF86AudioMute, при нажатии на которую он цепляет заданные в функции add-keys клавиши поверх их первоначальных действий. После нажатия на одну из этих клавиш или клавишу Escape он их всех "отпускает" выполнять свои обычные действия, т.е. ввод символов.

Подробнее хотелось бы рассказать о клавишах g, f, m. Вдохновившись этой статьей на хабре, я написал вот такие скрипты:

Для g:
xclip -o | sed -r '2~1d;s/(^\s+|\s+$)//g;s/%/%25/g;s/#/%23/g;s/\$/%24/g;s/&/%26/g;s/\+/%2B/;s/,/%2C/g;s/:/%3A/g;s/;/%3B/g;s/=/%3D/g;s/\?/%3F/g;s/@/%40/g;s/\s/+/g' | awk '{print "http://www.google.ru/search?hl=ru&q=" $1}' | xargs arora


Для f:
xclip -o | sed -n 1p | xargs firefox -new-tab


Для m скрипт приведен в конфигурационном файле.

Для остальных браузеров/сервисов скрипты аналогичны, только с указанием других команд/url'ов.

Теперь я могу в любое время выделить имя функции (например, printf) в любом редакторе, нажать последовательно две клавиши и посмотреть документацию по ней или найти в гугле ошибку из лога какой-нибудь программы.

Может быть, кому-то, кто не любит сажать свои пальцы на шпагат нажатием комбинаций клавиш (зачастую, уже занятых чем-нибудь), такой подход к хоткеям покажется полезным.
+2
Коментариев нет

Top блогов (все)
Топ пользователей Топ блогов
Топ пользователей Топ блогов
Top пользователей (все)
Топ пользователей Топ блогов
В сети: kavren, Username, assaron, NucleoFag

Новенькие: spyfzm, rafdef, playpauseandstop, softzilla, sandul
welinux.ru
Идея сайта exelens; Движок 0byte, разработчик nvbn; Дизайн - Astramak

Смотреть онлайн бесплатно

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн