På tangentbordstemat fixade jag lite makron på tangentbordet jag använder på jobbet. Målet var att slippa skriva ut min epost-signatur hela dagarna, utan att istället låta tangentbordet göra det åt mig - lite som ett självspelande piano!
Jag använder QMK, och har definierat upp en keymap sedan tidigare. I denna fil skapar jag först några egna tangentbordskoder:
enum custom_keycodes {
REGR,
HALS,
};
Senare i samma fil har jag en funktion vid namn process_record_user
, som verkar finnas för att kunna överlagra det normala beteendet när en trycker på en knapp. Här i bor en switch
-sats, och i den kastar vi in vad som ska hända när vi trycker ner REGR
eller HALS
.
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
// Massor av annan eventuell kod...
case HALS:
if (record->event.pressed) {
SEND_STRING("H'lsningar,\nOscar\narbetsplatsnamn\n");
}
break;
case REGR:
if (record->event.pressed) {
SEND_STRING("Regards,\nOscar\nwhereiwork\n");
}
break;
}
return true;
}
Först försökte jag få till unicode-inmatning för alla mina datorer för att kunna skicka in ett ä i den svenska hälsningsfrasen, allt utan någon framgång alls. Sedan kom jag på att SEND_STRING
-funktionen försöker översätta alla tecken som skickats till motsvarande tangentbordskoder, och då var lösningen given - skicka bara en apostrof!
Det jag har (miss)förstått av tangentbord är att i princip alla tangentbord skickar samma “tangentbordstryck” (signal) oavsett layout, men att signalerna tolkas om av operativsystemet, givet att vi använder en annan layout. Så när jag trycker på ä-knappen trycks en '-knapp (för ett amerikansk tangentbord, som annars är lite utav standarden i denna värld) in, men min dator tolkar det som ett ä istället. :/;-knappen blir ett ö, och så vidare. Så i makrot ovan skickar jag det mitt operativsystem kommer tolka som ett ä. Logiskt va?
För att använda dessa makron sedan lägger jag bara ut dem i min layout som vanligt, och använder den custom_keycode
jag definierat.