Tangentbord
-
- Inlägg: 83
- Blev medlem: 07 apr 2007, 18:47
- OS: Ubuntu
- Utgåva: 12.04 Precise Pangolin LTS
- Ort: Linköping
- Kontakt:
Tangentbord
Tja, jag vill ha ett program som registrerar tangenttryckningar och visar statistik på vilka man använder mest så att om man vill man kan programmera om tangentbordet.!
Jag vet att vanligast är att skriva programmet själv men tänkte att det borde kanske finnas?!
Jag vet att vanligast är att skriva programmet själv men tänkte att det borde kanske finnas?!
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Tangentbord
Vad hade du tänkt dig? Bara registrera vilka tangenter som är vanligast för just dig så att du kan mappa om tangentbordet så att de vanligaste tangenterna hamnar bättre till? Eller ville du ha något mer avancerat som även tar hänsyn till i vilken ordning du trycker på tangenterna? Och isf, räcker det med ett minne bakåt? Eller ska det vara minne i flera steg?MrYdremark skrev:Tja, jag vill ha ett program som registrerar tangenttryckningar och visar statistik på vilka man använder mest så att om man vill man kan programmera om tangentbordet.!
-
- Inlägg: 83
- Blev medlem: 07 apr 2007, 18:47
- OS: Ubuntu
- Utgåva: 12.04 Precise Pangolin LTS
- Ort: Linköping
- Kontakt:
Re: Tangentbord
mer tänkt mig något som visar villka tangenter jag använder mest så jag kan mappa om dom så de hamnar bättre till!
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Tangentbord
Jag tycker att det här är ett väldigt intressant ämne. Just att försöka anpassa tangentbordslayouten helt efter egna behov.
Om vi börjar med att skilja vi på tecken och tangenter. Ett tecken kan flyttas till vilken tangent som helst, medan tangenterna sitter där de sitter. En bra tangentbordslayout ska alltså ha de vanligaste tecknen på de bäst belägna tangenterna.
För att kunna jämföra olika tangentbordslayouter behöver vi veta två saker; Hur vanliga de olika tecknen är, samt hur bra de olika tangenternas lägen är.
Du frågar efter ett program som kan hjälpa dig med den första biten. Men den andra biten är minst lika viktig. Det är ganska självklart att tangenter som ligger nära pekfingrarna har bättre lägen än de som ligger vid lillfingrarna. Men det är inte hela sanningen.
Om en tangent har ett bra läge eller inte beror även mycket på vilken tangent som trycktes ner gången innan (Även tangenten som trycktes ner två gånger innan kan vara intressant beroende på hur snabbt man skriver). För att förtydliga... två olika tangenter undre höger pekfinger har var för sig mycket bra lägen, men att trycka på dem efter varandra är betydligt sämre än att trycka på två tangenter med olika fingrar.
Därför är det intressant att ta hänsyn till ordningen, i alla fall i ett minnessteg. Det behövs om man överhuvudtaget ska komma i närheten av tangentbordslayouter som redan finns, t.ex. dvorak. Två steg kostar däremot nästan helt säkert mer än vad det smakar.
Med ett minnessteg så är det inte längre tangentens läge som är viktigt, utan det är följden av två tangenttryckningar som betygsätts. Man ska med andra ord matcha in de vanligaste (två)teckenföljderna så att de hamnar på de bästa tangentföljderna. Vi vet t.ex. att teckenföljden "en" är väldigt vanlig. Då ska e och n ligga på tangenter som tillsammans har ett bra tangentföljdsbetyg.
Om du inte är intresserad av att ta med något minnessteg så kan du lika gärna köra med dvorak eller motsvarande. Det ger helt säkert ett bättre resultat.
Om vi börjar med att skilja vi på tecken och tangenter. Ett tecken kan flyttas till vilken tangent som helst, medan tangenterna sitter där de sitter. En bra tangentbordslayout ska alltså ha de vanligaste tecknen på de bäst belägna tangenterna.
För att kunna jämföra olika tangentbordslayouter behöver vi veta två saker; Hur vanliga de olika tecknen är, samt hur bra de olika tangenternas lägen är.
Du frågar efter ett program som kan hjälpa dig med den första biten. Men den andra biten är minst lika viktig. Det är ganska självklart att tangenter som ligger nära pekfingrarna har bättre lägen än de som ligger vid lillfingrarna. Men det är inte hela sanningen.
Om en tangent har ett bra läge eller inte beror även mycket på vilken tangent som trycktes ner gången innan (Även tangenten som trycktes ner två gånger innan kan vara intressant beroende på hur snabbt man skriver). För att förtydliga... två olika tangenter undre höger pekfinger har var för sig mycket bra lägen, men att trycka på dem efter varandra är betydligt sämre än att trycka på två tangenter med olika fingrar.
Därför är det intressant att ta hänsyn till ordningen, i alla fall i ett minnessteg. Det behövs om man överhuvudtaget ska komma i närheten av tangentbordslayouter som redan finns, t.ex. dvorak. Två steg kostar däremot nästan helt säkert mer än vad det smakar.
Med ett minnessteg så är det inte längre tangentens läge som är viktigt, utan det är följden av två tangenttryckningar som betygsätts. Man ska med andra ord matcha in de vanligaste (två)teckenföljderna så att de hamnar på de bästa tangentföljderna. Vi vet t.ex. att teckenföljden "en" är väldigt vanlig. Då ska e och n ligga på tangenter som tillsammans har ett bra tangentföljdsbetyg.
Om du inte är intresserad av att ta med något minnessteg så kan du lika gärna köra med dvorak eller motsvarande. Det ger helt säkert ett bättre resultat.
-
- Inlägg: 83
- Blev medlem: 07 apr 2007, 18:47
- OS: Ubuntu
- Utgåva: 12.04 Precise Pangolin LTS
- Ort: Linköping
- Kontakt:
Re: Tangentbord
Jo precis. riktigt intressant det här alltså.. har också tänkt på just det där med olika tangentföljder. men hur får man reda på just dessa?
Man kan ju skriva något program som visar vilka olika tangentföljder som används mest under, ska vi säga, en månads tid. Men min fråga är då, finns det något färdigt sådant program? eller någon här som har skrivit något liknande och vill dela med sig, eller måsta jag börja klura på hur man ska skriva det själv?
Jag vill ju ha det så personligt som möjligt så just de tangentföljder jag använder mest sitter på de ställe där jag tycker det känns bäst..
Skriv gärna vad ni alla andra tycker o om ni har på något annorlunda sätt eller liknande! Intressant att veta.
Pace!
Man kan ju skriva något program som visar vilka olika tangentföljder som används mest under, ska vi säga, en månads tid. Men min fråga är då, finns det något färdigt sådant program? eller någon här som har skrivit något liknande och vill dela med sig, eller måsta jag börja klura på hur man ska skriva det själv?
Jag vill ju ha det så personligt som möjligt så just de tangentföljder jag använder mest sitter på de ställe där jag tycker det känns bäst..
Skriv gärna vad ni alla andra tycker o om ni har på något annorlunda sätt eller liknande! Intressant att veta.
Pace!

- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Tangentbord
För att få en riktigt bra tangentbordslayout vill du inte bara veta vilka teckenfölder som är vanligast, du vill veta exakt hur vanliga alla olika teckenföljder är i förhållande till varandra, så att även de ovanligaste hamnar "rätt".MrYdremark skrev:har också tänkt på just det där med olika tangentföljder. men hur får man reda på just dessa?
Man kan ju skriva något program som visar vilka olika tangentföljder som används mest under, ska vi säga, en månads tid.
Jag pysslade en del med det här för ett par år sedan. Det du vill ha är två matriser. En för teckenföljder och en för tangentföljder.
Varje element i teckenföljds-matrisen ska representera hur vanlig en viss teckenföljd är... Säg att du numrerar tecknen så att e får nummer 4 och n får nummer 14. Då ska matriselementet (4,14) representera hur vanlig teckenkombinationen "en" är, dvs hur många gånger just den kombinationen förekommer under dina mätningar (delat på det totala antalet uppmätta teckenkombinatinoer). På samma sätt representerar matriselement (14,4) hur vanlig teckenkombinationen "ne" är. Det blir alltså en kvadratisk matris med (antalet tecken)^2 olika värden.
För att få värden till din matris kan du så klart använda ett sånt program som du frågar efter. Jag hade inte så stort tålamod att jag orkade vänta flera månder på resultatet. Så jag gick istället igenom färdiga texter och räknade teckenkombinationer i dem. Jag använde svenska och engelska ordlistor, mängder av nyhetsartiklar från bland annat dagens nyheter, och såklart en massa saker som jag skrivit själv.
När det gäller tangentföljdsmatrisen så är det svårare att få bra värden till den. Varje matriselement representerar här hur bra en viss tangentföljd är. Det ska såklart vara en kvadratisk matris med (antalet tangenter)^2 matriselement. Element (1,2) anger hur jobbigt det är att trycka på tangent 1 följt av tangent 2. Och omvänt anger element (2,1) hur jobbigt det är att trycka på tangent 2 följt av tangent 1. Ett tangentföljd med värde 0 är absolut bäst eftersom den inte kostar något.
Min tangentföljdsmatris tar hänsyn till en massa saker, och är mycket bra om man använder touchtyping. Men den skulle fortfarande kunna behöva en del justeringar när det gäller inbördes kostnadsrelationer, dvs hur mycket dyrare en viss tangentkombination ska vara jämfört med en annan.
För att tillslut få fram ett mätvärde på hur bra en tangentbordslayout är, så är det bara att räkna ihop allting. Multiplicera varje teckenkombinationsvärde med motsvarande tangentkombinationsvärde och addera ihop resultatet. Vi får lägst totalvärden om vanliga teckenkombinationer (höga värden) mutipliceras ihop med bra tangentkombinationer (låga värden), och ovanliga teckenkombinatier (låga värden) mutlipliceras med dåliga tangentkombinatienor (höga värden). Ju lägre totalvärde, desto bättre tangentbordslayout med andra ord.
För att det inte ska vara alltför förvirrande så tar vi ett enkelt exempel:
Vi har två tecken, a och b, samt två tangenter #1 och #2. Vi vet hur oftar de olika teckenkombinationerna förekommer: ab=10ggr, ba=15ggr, aa=0ggr och bb=5ggr. Samt hur kostsamma de olika tangentkombinatinerna är: #1#2=0, #2#1=0.5, #1#1=0.9, #2#2=1.
Om vi väljer att placera a på #1 och b på #2 så får vi följande totalkostnad:
(aa)*(#1#1) + (ab)*(#1#2) + (ba)*(#2#1) + (bb)*(#2#2) = 0*0.9 + 10*0 + 15*0.5 + 5*1 = 12.5
Väljer vi istället att placera b på #1 och a på #2 så blir totalkostnaden:
(bb)*(#1#1) + (ba)*(#1#2) + (ab)*(#2#1) + (aa)*(#2#2) = 5*0.9 + 15*0 + 10*0.5 + 0*1 = 9.5
Det är alltså mycket bättre att placera b på #1 och a på #2 jämfört med tvärt om.
Re: Tangentbord
Jag har ett program som räknar hur många tecken du skriver, det är baserat på en keylogger till X (xspy), borde vara ganska simpelt att skriva om så att det kan räkna hur många gånger du skriver alla olika tecken.
Det borde inte heller vara så svårt att utöka till att spara sekvenser heller problemet är väl hur man ska ta å spara dessa på nåt vettigt sätt.
kanske nån tuppel i stilen med (sekvens, antal gånger) typ (apa, 45). Med något timeout värde för hur länge det går innan man påbörjar en ny sekvens.
Det borde inte heller vara så svårt att utöka till att spara sekvenser heller problemet är väl hur man ska ta å spara dessa på nåt vettigt sätt.
kanske nån tuppel i stilen med (sekvens, antal gånger) typ (apa, 45). Med något timeout värde för hur länge det går innan man påbörjar en ny sekvens.
Kod: Markera allt
/* compile: gcc -o counter counter.c -lX11 -Wall -std=c99
* usage: counter file
*
* Based on:
* xspy
* Jon A. Maxwell (JAM)
* jmaxwell@acm.vt.edu
*
*/
#include <X11/Xlib.h>
#include <X11/X.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/time.h>
#include <unistd.h>
#include <signal.h>
#define DEFAULT_DISPLAY ":0"
#define DEFAULT_DELAY 10000
#define BIT(c, x) ( c[x/8]&(1<<(x%8)) )
#define TRUE 1
#define FALSE 0
long int count;
FILE *f;
void usleep(int x) {
struct timeval time;
time.tv_sec= x/1000000;
time.tv_usec=x%1000000;
select(0, NULL, NULL, NULL, &time);
}
void sig_hant(int sig) {
rewind(f);
fprintf(f,"%ld",count);
exit(0);
}
int main(int argc, char *argv[]) {
char *hostname=DEFAULT_DISPLAY,
*char_ptr,
buf1[32], buf2[32],
*keys,
*saved,
saved_count[256];
int i, delay=DEFAULT_DELAY;
Display *disp;
pid_t pid;
signal(SIGTERM,sig_hant);
if(argc < 2) {
fprintf(stderr,"usage %s file\n",argv[0]);
return -1;
}
if((pid = fork()) < 0) {
fprintf(stderr,"cant fork(1)!");
} else if(pid !=0) {
exit(0);
}
if((pid=fork()) < 0)
fprintf(stderr,"cant fork(2)!");
else if(pid != 0)
exit(0);
setsid();
f = fopen(argv[1],"r+");
if(f == NULL) {
fprintf(stderr,"could not open file\n");
return -1;
}
memset(saved_count,0,256);
fread(saved_count,256,sizeof(char),f);
count = atol(saved_count);
//printf("Initial count %ld\n",count);
/* setup Xwindows */
disp=XOpenDisplay(hostname);
if (NULL==disp) {
fprintf(stderr, "Cannot open X display: %s\n", hostname);
return -1;
}
XSynchronize(disp, TRUE);
/* setup buffers */
saved=buf1;
keys=buf2;
XQueryKeymap(disp, saved);
while (1) {
/* find changed keys */
XQueryKeymap(disp, keys);
for (i=0; i<32*8; i++) {
if (BIT(keys, i)!=BIT(saved, i)) {
if (BIT(keys, i) != 0 ) {
count++;
/* printf("count %ld\n",count);*/
if(!(count % 10)) {
rewind(f);
fprintf(f,"%ld",count);
}
}
}
}
/* swap buffers */
char_ptr=saved;
saved=keys;
keys=char_ptr;
usleep(delay);
}
}
The Black Mountain Scorpion Hoedown Bluegrass Experience Gang
From Left to Right: Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle.
From Left to Right: Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle.
-
- Inlägg: 83
- Blev medlem: 07 apr 2007, 18:47
- OS: Ubuntu
- Utgåva: 12.04 Precise Pangolin LTS
- Ort: Linköping
- Kontakt:
Re: Tangentbord
Tja. Jag testar att köra Dvorak men kan inte byta plats på B och X tangenterna. nån som vet hur man mappar om de två så att jag får dem där jag vill?
//Anders
//Anders
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Tangentbord
Jag vet hur man gör. Men jag undrar varför du vill byta plats på B och X om du tänkt använda dvorak? Det finns en anledning till att just X sitter där den sitter på dvorak-layouten. Det är nämligen en av de sämsta tangentpositionerna pa hela tangentbordet, och att ha en mycket vanligare bokstav som B där är bara dumt.MrYdremark skrev:Tja. Jag testar att köra Dvorak men kan inte byta plats på B och X tangenterna. nån som vet hur man mappar om de två så att jag får dem där jag vill?
Om du skriver mycket mer svenska än engelska så finns det betydligt bättre justeringar att göra än att byta just B och X. Du vill t.ex. nästan helt säkert flytta R så att den hamnar på höger "hemrad". Det är även en bra idé att byta plats på C och K, samt V och W.
Sen har vi det här med Å, Ä, Ö. Det är vokaler, så du vill ha dem på vänstra sidan av tangentbordet. Men ingen av de svenska justeringar av dvorak som jag har sett hittills verkar över huvud taget bry sig om att Ä är mycket vanligare än Å och Ö.
- sontho
- Inlägg: 312
- Blev medlem: 05 sep 2006, 21:29
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Karlskoga, Värmland
Re: Tangentbord
En lite nyfiken fråga så här mitt i.
Ni som använder andra layouter, hur tycker ni det fungerar när ni kommer till en annan dator, det lär ju med största säkerhet vara gamla vanliga qwerty där.
Är bara lite nyfiken, och vid tillfälle ska jag nog testa dvorak bara för att prova.
Thomas Nyfiken
Ni som använder andra layouter, hur tycker ni det fungerar när ni kommer till en annan dator, det lär ju med största säkerhet vara gamla vanliga qwerty där.
Är bara lite nyfiken, och vid tillfälle ska jag nog testa dvorak bara för att prova.
Thomas Nyfiken
- mcNisse
- Inlägg: 5211
- Blev medlem: 06 feb 2007, 20:51
- OS: Debian
- Utgåva: Vet inte/ingen utgåva passar
Re: Tangentbord
För min del går det relativt bra. Det står ju vilket tecken man ska trycka...sontho skrev:En lite nyfiken fråga så här mitt i.
Ni som använder andra layouter, hur tycker ni det fungerar när ni kommer till en annan dator, det lär ju med största säkerhet vara gamla vanliga qwerty där.
Är bara lite nyfiken, och vid tillfälle ska jag nog testa dvorak bara för att prova.
Thomas Nyfiken

Som tur är går det relativt enkelt att byta till amerikansk dvorak på windowsburkar och linux maskiner är det enkelt så länge man håller sig till skrivbordsmiljöerna.
Jag skriver nu enbart med höger hand. Och har av den anledningen bytt tillbaka till qwerty.
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Tangentbord
När det finns en specialanpassad högerhands-dvorak!mcNisse skrev:Jag skriver nu enbart med höger hand. Och har av den anledningen bytt tillbaka till qwerty.

- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Tangentbord
Det är egentligen inga problem. Mest en bekvämlighetsfråga för min del. Lite som att sitta på träpall när man är van vid fotölj.sontho skrev:En lite nyfiken fråga så här mitt i.
Ni som använder andra layouter, hur tycker ni det fungerar när ni kommer till en annan dator, det lär ju med största säkerhet vara gamla vanliga qwerty där.
- mcNisse
- Inlägg: 5211
- Blev medlem: 06 feb 2007, 20:51
- OS: Debian
- Utgåva: Vet inte/ingen utgåva passar
Re: Tangentbord
Konservburk skrev:När det finns en specialanpassad högerhands-dvorak!mcNisse skrev:Jag skriver nu enbart med höger hand. Och har av den anledningen bytt tillbaka till qwerty.

Jo jag vet... men det tog mig nästan ett halvår att lära mig dvorak och jag är enarmad bara en vecka till.
-
- Inlägg: 83
- Blev medlem: 07 apr 2007, 18:47
- OS: Ubuntu
- Utgåva: 12.04 Precise Pangolin LTS
- Ort: Linköping
- Kontakt:
Re: Tangentbord
Jag är också mer ute efter att testa Dvorak lite. kul o se hur de känns. alltså jag vill inte byta plats så att säga. men jag kan inte sätta fast tangenten just där B o X Ska sitta så att säga. de ska ju sitta brevid varandra. så jag skulle bara lägga om de...
Kan någon säga hur man gör? i allmänhet är det bra/kul o veta hur man gör!
//Anders
Kan någon säga hur man gör? i allmänhet är det bra/kul o veta hur man gör!
//Anders
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Tangentbord
Visst ligger X och B brevid varandra, men med dvorak så skriver du X med vänsterhanden och B med högerhanden. Det blir en j-vla skillnad om du byter plats på just de tangenterna.MrYdremark skrev:Jag är också mer ute efter att testa Dvorak lite. kul o se hur de känns. alltså jag vill inte byta plats så att säga. men jag kan inte sätta fast tangenten just där B o X Ska sitta så att säga. de ska ju sitta brevid varandra. så jag skulle bara lägga om de...
Det är helt enkelt inge bra idé. Mixtra inte med layouten om du verkligen vill testa dvorak. Vill du ha något bättre än dvorak så finns det en massa vettiga justeringar du kan göra, men att byta plats på B och X är inte en av dem.
- mcNisse
- Inlägg: 5211
- Blev medlem: 06 feb 2007, 20:51
- OS: Debian
- Utgåva: Vet inte/ingen utgåva passar
Re: Tangentbord
Mixra inte med tangentbordet. F och J måste sitta där de sitter för att man ska hitta tillbaka med händerna till rätt position ifall att man tappar bort sig, utan att titta på tangentbordet.MrYdremark skrev:Jag är också mer ute efter att testa Dvorak lite. kul o se hur de känns. alltså jag vill inte byta plats så att säga. men jag kan inte sätta fast tangenten just där B o X Ska sitta så att säga. de ska ju sitta brevid varandra. så jag skulle bara lägga om de...
Jag lärde mig dvoak genom att skriva ut layouten med både qwerty och dvorak symbolerna och genom en sajt där man kunde träna på att skriva. Poängen med dvorak är ju att lära sig skriva utan att titta på tangentbordet, och då spelar det ingen roll vad som står på dem!?
-
- Inlägg: 83
- Blev medlem: 07 apr 2007, 18:47
- OS: Ubuntu
- Utgåva: 12.04 Precise Pangolin LTS
- Ort: Linköping
- Kontakt:
Re: Tangentbord
är det någon som vet hur man mappar om tangenterna. skitsamma om man inte ska eller så, vill veta hur man gör!
/Anders
/Anders

- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Tangentbord
Jo, jag vet hur man gör. Jag ville bara få dig att tänka till en extra gång innan du gör något som du kan komma att ångra senare.MrYdremark skrev:är det någon som vet hur man mappar om tangenterna. skitsamma om man inte ska eller så, vill veta hur man gör!
Men för att svara på frågan: Antingen använder du den gamla och enkla xmodmap, eller den nya, mer flexibla (och svårare) xkb.