Detta tips är gjort för Linux, men det borde gå att göra samma sak på Windows eller MacOS.
Jag använder ofta det numeriska tangentbordet för att mata in siffror, men jag använder aldrig det i ”num-lock off” läge. Därför tänkte jag koppla lite makron till dessa knappar i stället.
Då kan jag sätta den numeriska delen i ”makroläge” eller normalt numeriskt läge med ett knapptryck. Det jag testar här fungerar inte med alla tangenterna utan endast de som är home, pgup, egin, end, pgdn, insert och delete (knapparna 7,9,5,1,3,0,,). De knappar som är pilar kan tyvärr inte kopplas till den här typen av kommandon.
Inställningarna för tangentbordet görs just i ”inställningar” för operativsystemet (jag använder Ubuntu Budgie här).
Längst ner i inställningarna så finns en knapp för att lägga till nya kommandon. När man klickar på denna så får man en ny dialog där man fyller i ett namn, själva kommandot och den tangentbordskombination som skall användas.
Namn är inte så konstigt, välj bara något som låter logiskt för det kommando som skall utföras.
Kommando är lite speciellt, medan kortkommando väljs genom att klicka på fältet och trycka på den tangent som skall kopplas till kommandot. Om de icke numeriska tangenterna inte räcker till så kan man även koppla makron till dessa knappar i kombination med shift, altgr och shift altgr också. Detta betyder att det snabbt blir många möjliga makrokombinationer.
För att testa så skapar jag ett ”Skriv lite kod” kommando kopplat till ”End” (1) på knappsatsen. Kommandot är:
bash -c ' sleep 0.5; xdotool getactivewindow type "Open Source är Bäst!"'
Kommandot är ett ”bash” kommando som skriver texten ”Open Source är Bäst!” i det aktiva fönstret. Om jag testar i en texteditor så ser jag följande när jag trycker på knappen.
Kommandot har en ”sleep” funktion som väntar lite innan kommandot körs. Det behövs inte alltid, men i en del fall är det en bra idé att vänta lite. ”xdotool” är ett verktyg för just x fönsterhanterare, så jag utgår från att det inte fungerar med Wayland… Getacrivewindow och type är xdotool kommandon, men det finns flera andra också.
Ett användbart exempel är ”key” där man i text anger enstaka eller en serie med tangenttryckningar man vill skall utföras.
bash -c ' sleep 0.5; xdotool getactivewindow type "<p></p>" && xdotool key Left Left Left Left'
Ovanstående kommando skriver in html-taggen för stycke (paragraph) och backar markören så att den hamnar mellan taggarna. Om man ofta skapar stycken i html på olika platser så kan detta vara ett användbart kommando. Det går i princip att skapa hur avancerade texter som helst att infoga. Kanske en HTML kod för att skapa lite snyggare texter i QGIS layout?
”Key” kan också användas till att anropa andra tangentbordstryckningar eller kombinationer. Vill man exempelvis skicka ctrl + c följt av ctrl + v för att kopiera en markerad text, hoppa till slutet av texten och klistra in den (av någon anledning), så kan man använda följande kod:
bash -c 'sleep 0.5; xdotool key Ctrl+c Right Ctrl+v'
Detta var det lätta sättet… Jag får se om detta räcker för det jag kanske vill kunna göra, eller om jag får ge mig in i xinput och skapa egna funktioner för att tolka alla tangenters nedtryckningar. Med xinput så kan man exempelvis ansluta hur många extra tangentbord som helst och skapa makroskript för varje enskild tangent på dessa ”extra” tangentbord, utan att det behöver krocka med det ursprungliga tangentbordet. Lite mera jobb, men har man väldigt många makron man vill kunna använda, eller har svårt att komma ihåg alla snabbkommandon för olika saker i program man använder ofta, så kan det vara värt att undersöka vidare.