Mappa kortkommandon till tangenter?

Skrivbordsmiljöer, fönsterhanterare och desklets
rylleman
Inlägg: 477
Blev medlem: 23 apr 2007, 16:37
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS
Ort: bagarmossen

Mappa kortkommandon till tangenter?

Inlägg av rylleman »

Jag har ett A4 X7-G100-tangentbord som jag har en anpassad keymappning för.
Jag mappar om tangenterna som jag vill med inställningsfilen men lyckas inte med vad jag verkligen vill - lägga kortkommandon, som ctrl+s, till enskilda tangenter.
Jag vill använda tangentbordet som en slags kontrollbox för animation och bildbehandling.

Har letat runt på nätet men inte hittat något bra och enkelt sätt för detta. Någon som har något tips?

* har även frågat på internationella forumet, men där drunknar trådar obesvarade fortare än hade de betongskor på sig...
David Andersson
Inlägg: 1269
Blev medlem: 15 dec 2007, 03:20
OS: Xubuntu

Re: Mappa kortkommandon till tangenter?

Inlägg av David Andersson »

rylleman skrev: * har även frågat på internationella forumet, men där drunknar trådar obesvarade fortare än hade de betongskor på sig...
Jag har svarat på internationella forumet. För enkelhets skull läggar jag in google translates svensköversättning här. (Byt sova till sleep och eko till echo, annars funkar det inte, och Kortkommandon heter egentligen Tangentbordsgenvägar i Gnome.)
translate.google.com skrev: Jag ska dela upp det i två delproblem: 1) Fånga en knapptryckning för att göra det köra ett kommando. 2) Skicka en knapptryckning från ett kommando. Andra först.

2. Skicka en knapptryckning från ett kommando

Ett sätt att generera viktiga händelser är xmacroplay i paketet xmacro. Detta kommando kommer att skicka Ctrl-S efter 2 sekunder:

Kod: Markera allt

sova 2, eko KeyStrPress Control_L KeyStr s KeyStrRelease Control_L | xmacroplay $ DISPLAY
Den 2 sekunders sömn behövs så att Return-tangenten som åberopade kommandot har släppts innan nya knapptryckningar genereras. Det ger också dig tid att flytta fokus från terminalen till videon ansökan, så Ctrl-S skickas till programmet.

När du binder detta kommando för att en nyckel, förkorta sömnen till något i stil med 0,3 sekunder. Fokus ska vara i videon programmet när anropas, så sover bara tillräckligt länge för att åberopa nyckeln att släppas.

Kod: Markera allt

sova 0,3; eko KeyStrPress Control_L KeyStr s KeyStrRelease Control_L | xmacroplay $ DISPLAY
Kommandot kan användas som de är, men för att förenkla hanteringen, spara den i ett manus. Jag antar skriptet kallas ~/bin/mysendctrls. Ett skript kan se ut så här

Kod: Markera allt

#!/bin/bash
# Skicka ett Ctrl-S. Du får fritt kopiera, ändra och distribuera denna skrift.
sova 0,3; eko KeyStrPress Control_L KeyStr s KeyStrRelease Control_L | xmacroplay $ DISPLAY 
1. Fånga en knapptryckning för att göra det köra ett kommando (i Gnome)

I Gnome, gå till System> Inställningar> Kortkommandon. Tryck på Lägg, ange namn Skicka Ctrl-S och ange kommandot mysendctrls.

Rulla ner till Skicka Ctrl-S, klicka på Inaktiv och tryck på tangenten det är att åberopa detta kommando.

Alternative

1. Fånga en knapptryckning för att göra det köra ett kommando (i Xfce)

I Xfce, gå till Inställningar> Tangentbord på fliken genvägar till program, tryck Lägg, ange kommandot mysendctrls och tryck på tangenten det är att åberopa detta kommando.

Alternative

1. Fånga en knapptryckning för att göra det köra ett kommando (med xbindkeys)

Installera paketet xbindkeys.
För att hitta namnet på en tangent, kör

Kod: Markera allt

xbindkeys -k
och tryck på tangenten som ska bindas. Skapa en fil ~/xbindkeysrc innehåller (ersätt NAME_OF_KEY med namnet på nyckeln).:

Kod: Markera allt

# Du kan fritt kopiera, ändra och distribuera denna config-fil.
# Låt NAME_OF_KEY nyckeln skicka Ctrl-S
"mysendctrls"
   NAME_OF_KEY
Skriv svar

Återgå till "Skrivbordet"