LINUX.ORG.RU

XKB. Назначить сочетание клавиш на одну клавишу

 


2

3

Как реализовать посредством XKB отправку последовательности клавиш, например `Ctrl+C', при нажатии одной клавиши (например `С'?

Пробовал так:

//xkb/symbols
    key <AB03> {[ Uffe3+U63, C ]};
но это не работает.

Никак, насколько я помню. Конкретно для этого случая точно есть готовый символ, XF86Copy, кажется.

Не стоит привязываться к X11, используй лучше evdev или программируемую клавиатуру :)

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

А вот сочетания клавиш таки можно задавать посредством XKB. Получилось сделать так:

// Ctrl+C (Copy)
  key <AB03> { symbols = [ NoSymbol, NoSymbol ],
      	       actions = [ RedirectKey(key=<INS>, mods=Control) ]};

// Ctrl+V (Paste)
  key <AB04> { symbols = [ NoSymbol, NoSymbol ],
      	       actions = [ RedirectKey(key=<INS>, mods=Shift) ]};
но вот алфавитные клавиши не получается так назначить. Пробую так:
// Ctrl+Z (Undo) 
  key <AB01> { symbols = [ NoSymbol, NoSymbol ], 
               actions = [ RedirectKey(key=<LatZ>, mods=Control) ]};

// Ctrl+X (Cut) 
  key <AB02> { symbols = [ NoSymbol, NoSymbol, NoSymbol ], 
               actions = [ RedirectKey(key=<LatX>, mods=Control) ]};
никак не могу определить причину, чего ему не хватает.

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

Ну, тут я не копенгаген уже совсем, никогда не пытался такое сделать. Но чем не устраивают XF86Undo, XF86Cut и прочие? Вроде более прямое решение.

anonymous ()
Ответ на: комментарий от Dreamdrawer

Ты хочешь обойтись без лишних прослоек, но используешь Xorg и называешь это штатными средствами? Непонимат. Не хочешь прослоек — осваивай evdev в ядре. А лучше купи нормальную клавиатуру, которая будет работать везде без всяких прослоек.

anonymous ()