Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Auslesen Zusatztastatur

48 views
Skip to first unread message

olaf

unread,
Oct 1, 2020, 12:45:04 AM10/1/20
to
Moin Leute

Ich ueberlege gerade mir so eine Tastatur zu kaufen:

https://www.amazon.de/Logilink-Kabelloses-Keypad-Ziffernblock-Tasten/dp/B00KYPJAMK/

Jetzt brauche ich aber garkeinen Zehnerblock. Genauer gesagt hab ich
bereits einen an meiner Tastatur der nie genutzt wird.

Ich wuerde das Teil lieber als Funktionstasten fuer diverse
Sonderfunktionen in irgendwelchen Programmen nutzen. Ist das moeglich?
Werden da die Keycodes speziell weitergereicht oder taucht das Dingen
einfach nur als Taste 0-9 im System auf und ist nicht mehr zu
unterscheiden?

Olaf

Marcel Mueller

unread,
Oct 1, 2020, 3:09:15 AM10/1/20
to
Am 01.10.20 um 06:43 schrieb olaf:
> Moin Leute
>
> Ich ueberlege gerade mir so eine Tastatur zu kaufen:
>
> https://www.amazon.de/Logilink-Kabelloses-Keypad-Ziffernblock-Tasten/dp/B00KYPJAMK/
>
> Jetzt brauche ich aber garkeinen Zehnerblock. Genauer gesagt hab ich
> bereits einen an meiner Tastatur der nie genutzt wird.

> Ich wuerde das Teil lieber als Funktionstasten fuer diverse
> Sonderfunktionen in irgendwelchen Programmen nutzen. Ist das moeglich?

Mit Linux geht alles ... irgendwie. ;-)

Du musst es als erstes schaffen, für diese Tastaur einen anderen
Tastaturtyp zu verpassen. Mit xinput -list |grep key kannst Du die ID
der Tastatur heraus finden. Für diese kannst Du dann mit setxkbmap ein
abweichendes Mapping definieren. Da sollten sich genug unbenutzte
virtuelle Tasten finden lassen. Was die Terminal-Emulationen allerdings
damit Treiben, ist eine andere Sache. Aber zumindest mal die
Funktionstasten gehen bis 22 oder so, wovon am PC nur 12 genutzt sind.

> Werden da die Keycodes speziell weitergereicht oder taucht das Dingen
> einfach nur als Taste 0-9 im System auf und ist nicht mehr zu
> unterscheiden?

Die Tastatur-ID ist der Schlüssel zur Unterscheidung.


Marcel

Hermann Riemann

unread,
Oct 1, 2020, 3:43:13 AM10/1/20
to
Am 01.10.20 um 06:43 schrieb olaf:

> Ich ueberlege gerade mir so eine Tastatur zu kaufen:

> https://www.amazon.de/Logilink-Kabelloses-Keypad-Ziffernblock-Tasten/dp/B00KYPJAMK/

Also
https://www.idealo.de/preisvergleich/OffersOfProduct/4523023_-id0120-logilink.html

> Jetzt brauche ich aber keinen Zehnerblock. Genauer gesagt hab ich
> bereits einen an meiner Tastatur der nie genutzt wird.

> Ich wuerde das Teil lieber als Funktionstasten fuer diverse
> Sonderfunktionen in irgendwelchen Programmen nutzen. Ist das moeglich?
> Werden da die Keycodes speziell weitergereicht oder taucht das Dingen
> einfach nur als Taste 0-9 im System auf und ist nicht mehr zu
> unterscheiden?

Kennst Du SDL ( aktuell SDL2)?
Damit kann man in mittels C (oder C++) sehen,
was auf dem computer ankommt.

Wie z.B. welche Taste ( shift rechts oder shift links )
gedrückt und teilweise auch aktiv (z.B. NUMLOCK) ist.

Die Taste 7 hat den hex code 10 die Taste 7 in Nummernfeld
den hexcode 4F

Wie die Tasten weiterverarbeitet werden, hängt vom Treiber ab.
So erzeugen Tastaturtreiber für Deutsch
mittels alt rechts ( deutsche Tastatur Alt Gr ) deutsche Buchstaben,
die z.B. von vi oder emacs direkt verstanden werden
Im Gegensatz zu den meisten utf-Zeichen.
die unterschiedliche Tastenkombinationen brauchen.

( Für den Nummernblock gibt es vielleicht ein Hindernis,
wenn z.B. Arduino Leonardo verwendet wird. )

Hermann
der zeitweise an einer Tastatur mittels touchscreen
bastelt, die eine nach seinen Wünschen
angepasste Belegung haben sollen.

--
http://www.hermann-riemann.de

olaf

unread,
Oct 1, 2020, 6:30:04 AM10/1/20
to
Marcel Mueller <news.5...@spamgourmet.org> wrote:

>Mit Linux geht alles ... irgendwie. ;-)

Jaja. :-)

>Du musst es als erstes schaffen, für diese Tastaur einen anderen
>Tastaturtyp zu verpassen. Mit xinput -list |grep key kannst Du die ID

Interessantes Kommando. Ich hab Tastaturen in der Kiste von denen ich
bis jetzt noch garnichts wusste. :-)

Virtual core keyboard id=3 [master keyboard (2)]
Virtual core XTEST keyboard id=5 [slave keyboard (3)]
Power Button id=6 [slave keyboard (3)]
Power Button id=7 [slave keyboard (3)]
Burr-Brown from TI USB Audio DAC id=9 [slave keyboard (3)]
AT Translated Set 2 keyboard id=10 [slave keyboard (3)]



Ich denke ich probiere es einfach mal aus....

>damit Treiben, ist eine andere Sache. Aber zumindest mal die
>Funktionstasten gehen bis 22 oder so, wovon am PC nur 12 genutzt sind.

Ich weiss. Ich hatte vor Jahren auch schonmal die Tastatur einer AS400 an
meinem Rechner. Mit speziellem Mapping ging das auch. Bloed war nur das
ich jedesmal umstecken musste wenn ich mal was im Bios aendern wollte.

Olaf

Arno Lutz

unread,
Oct 1, 2020, 1:52:32 PM10/1/20
to
Am 01.10.20 um 09:43 schrieb Hermann Riemann:
>> Ich ueberlege gerade mir so eine Tastatur zu kaufen:
>> https://www.amazon.de/Logilink-Kabelloses-Keypad-Ziffernblock-Tasten/dp/B00KYPJAMK/
> Also
> https://www.idealo.de/preisvergleich/OffersOfProduct/4523023_-id0120-logilink.html
>
>> Jetzt brauche ich aber keinen Zehnerblock. Genauer gesagt hab ich
>> bereits einen an meiner Tastatur der nie genutzt wird.
>> Ich wuerde das Teil lieber als Funktionstasten fuer diverse
>> Sonderfunktionen in irgendwelchen Programmen nutzen. Ist das moeglich?
>> Werden da die Keycodes speziell weitergereicht oder taucht das Dingen
>> einfach nur als Taste 0-9 im System auf und ist nicht mehr zu
>> unterscheiden?
> Kennst Du SDL ( aktuell SDL2)?
> Damit kann man in mittels C (oder C++) sehen,
> was auf dem computer ankommt.

warum so kompliziert??
xev existiert.

man xev

Gruß
Arno

Thomas Wiegner

unread,
Oct 1, 2020, 5:48:07 PM10/1/20
to
On Thu, 01 Oct 2020, Arno Lutz <inv...@freakmail.de> wrote:
> Am 01.10.20 um 09:43 schrieb Hermann Riemann:

>>> Jetzt brauche ich aber keinen Zehnerblock. Genauer gesagt hab ich
>>> bereits einen an meiner Tastatur der nie genutzt wird.
>>> Ich wuerde das Teil lieber als Funktionstasten fuer diverse
>>> Sonderfunktionen in irgendwelchen Programmen nutzen. Ist das moeglich?
>>> Werden da die Keycodes speziell weitergereicht oder taucht das Dingen
>>> einfach nur als Taste 0-9 im System auf und ist nicht mehr zu
>>> unterscheiden?
>> Kennst Du SDL ( aktuell SDL2)?
>> Damit kann man in mittels C (oder C++) sehen,
>> was auf dem computer ankommt.
>
> warum so kompliziert??
> xev existiert.
>
> man xev

xev hilft leider nicht, wenn es darum geht gleiche Tasten von
verschieden Tastaturen zu unterscheiden.

Da hilft wie im anderen Teilthread erwähnt "xinput".

--
[X] Nail here for new Monitor

Arno Lutz

unread,
Oct 1, 2020, 6:44:31 PM10/1/20
to
Am 01.10.20 um 23:47 schrieb Thomas Wiegner:
wenn du noch mal schauen magst: meine Antwort bezieht sich auch "SDL".

Und mit xinput erkennst du IMHO erst mal nur das "Gerät", keine Tastencodes.
Mit xinput und xev erkennst du also das Gerät und mit xev den
zugehörigen Tastencode.
Möglicherweise liefert der separate Zehnerblock sogar eigene Codes aus.

Für das mapping würde ich dann xbindkeys einsetzen.

Gruß
Arno

olaf

unread,
Oct 2, 2020, 12:30:03 AM10/2/20
to
Arno Lutz <inv...@freakmail.de> wrote:

>wenn du noch mal schauen magst: meine Antwort bezieht sich auch "SDL".

Nur kein Stress! Ich hab die Tastatur bestellt und werde
in den naechstens Tagen mal testen was moeglich ist. 10Euro
kann man ja mal investieren.

Olaf

Hermann Riemann

unread,
Oct 2, 2020, 1:44:31 AM10/2/20
to
Am 02.10.20 um 00:44 schrieb Arno Lutz:

> wenn du noch mal schauen magst: meine Antwort bezieht sich auch "SDL".
> Und mit xinput erkennst du IMHO erst mal nur das "Gerät", keine
> Tastencodes.
> Mit xinput und xev erkennst du also das Gerät und mit xev den
> zugehörigen Tastencode.

Nach meinem Eindruck zeigt xinput die vorhandenen Geräte an,
xev und SDL welche Tasten in einem Fenster gedrückt wurden.
Wobei ich weder bei SDL noch bei xev gesehen haben,
von welchem Gerät ( Tastatur, Maus getrennter Ziffernblock,
logischer kvm-switch ) der Buchstabe eingeben wurde.
( Auch mehrere Tastaturen gleichzeitig an einem PC funktionieren.)

> Möglicherweise liefert der separate Zehnerblock sogar eigene Codes aus.

Ich vermute, dass er sich wie die Num Tastatur verhält.

> Für das mapping würde ich dann xbindkeys einsetzen.

Ist das ein getrennter Bereich?
mit xev bzw SDL geht die Benutzung das von einem Fenster aus.
xbindkeys vielleicht vom Hauptfenster.

Hermann
der xev vermutlich nicht benutzen wird.

--
http://www.hermann-riemann.de

Thomas Wiegner

unread,
Oct 2, 2020, 3:29:20 AM10/2/20
to
On Thu, 01 Oct 2020, Arno Lutz <inv...@freakmail.de> wrote:
> Am 01.10.20 um 23:47 schrieb Thomas Wiegner:
>> On Thu, 01 Oct 2020, Arno Lutz <inv...@freakmail.de> wrote:
>>> Am 01.10.20 um 09:43 schrieb Hermann Riemann:

>>>> Kennst Du SDL ( aktuell SDL2)?
>>>> Damit kann man in mittels C (oder C++) sehen,
>>>> was auf dem computer ankommt.
>>>
>>> warum so kompliziert??
>>> xev existiert.
>>>
>>> man xev
>>
>> xev hilft leider nicht, wenn es darum geht gleiche Tasten von
>> verschieden Tastaturen zu unterscheiden.
>>
>> Da hilft wie im anderen Teilthread erwähnt "xinput".
>
> wenn du noch mal schauen magst: meine Antwort bezieht sich auch "SDL".
>
> Und mit xinput erkennst du IMHO erst mal nur das "Gerät", keine Tastencodes.
> Mit xinput und xev erkennst du also das Gerät und mit xev den
> zugehörigen Tastencode.
> Möglicherweise liefert der separate Zehnerblock sogar eigene Codes aus.
>
> Für das mapping würde ich dann xbindkeys einsetzen.

Hast ja recht. Ich wollte eigentlich nur darauf hinweisen, dass man mit
xev eben nicht unterscheiden kann, ob die '1' Taste jetzt auf dem
normalen Keyboard oder auf dem Extra-Keyboard gedrückt wurde.

Ulli Horlacher

unread,
Oct 3, 2020, 3:27:15 AM10/3/20
to
olaf <ol...@criseis.ruhr.de> wrote:

> Ich ueberlege gerade mir so eine Tastatur zu kaufen:
>
> https://www.amazon.de/Logilink-Kabelloses-Keypad-Ziffernblock-Tasten/dp/B00KYPJAMK/
>
> Jetzt brauche ich aber garkeinen Zehnerblock. Genauer gesagt hab ich
> bereits einen an meiner Tastatur der nie genutzt wird.
>
> Ich wuerde das Teil lieber als Funktionstasten fuer diverse
> Sonderfunktionen in irgendwelchen Programmen nutzen.

Warum nimmst du dann nicht den Ziffernblock deines keyboards fuer
Sonderfunktionen?

Mach ich seit 35 Jahren.
Wie kann man sonst auch nur vernuenftigen seinen Editor bedienen? :-)


--
Ullrich Horlacher Server und Virtualisierung
Rechenzentrum TIK
Universitaet Stuttgart E-Mail: horl...@tik.uni-stuttgart.de
Allmandring 30a Tel: ++49-711-68565868
70569 Stuttgart (Germany) WWW: http://www.tik.uni-stuttgart.de/

olaf

unread,
Oct 3, 2020, 4:15:02 AM10/3/20
to
Ulli Horlacher <fram...@rus.uni-stuttgart.de> wrote:

>Warum nimmst du dann nicht den Ziffernblock deines keyboards fuer
>Sonderfunktionen?

Ganz einfach. Es gibt den intelligenten und kreativen Teil der
Menschheit und den Rest. Bei ersterem ist der Ziffenblock an der
falschen Seite angebracht weil der rechtshaendige Poebel leider die
Welt dominiert. .-)

>Wie kann man sonst auch nur vernuenftigen seinen Editor bedienen? :-)

Indem man alle Emacs-Kommandos auswendig lernt? :-p

Olaf

Ulli Horlacher

unread,
Oct 3, 2020, 4:47:03 AM10/3/20
to
olaf <ol...@criseis.ruhr.de> wrote:

> >Wie kann man sonst auch nur vernuenftigen seinen Editor bedienen? :-)
>
> Indem man alle Emacs-Kommandos auswendig lernt? :-p

Und das hilft die Anzahl der Tastendruecke pro Funktionsaufdruck zu
minimieren?

Hermann Riemann

unread,
Oct 3, 2020, 1:34:41 PM10/3/20
to
Am 03.10.20 um 09:27 schrieb Ulli Horlacher:

>> Jetzt brauche ich aber garkeinen Zehnerblock. Genauer gesagt hab ich
>> bereits einen an meiner Tastatur der nie genutzt wird.
>>
>> Ich wuerde das Teil lieber als Funktionstasten fuer diverse
>> Sonderfunktionen in irgendwelchen Programmen nutzen.
>
> Warum nimmst du dann nicht den Ziffernblock deines keyboards fuer
> Sonderfunktionen?

Für was?

in
man unicode_start
steht:
type hexadecimal Alt-xxxx using the numeric keypad,
and again produce UTF-8

An sich wunderbar, aber wo sind im keypad
die hex-Werte a bus´bis f?

Hermann
der sich schon des öfteren ein
hex keypad gewünscht hat.

--
http://www.hermann-riemann.de

olaf

unread,
Oct 6, 2020, 9:45:03 AM10/6/20
to

So die Tastatur ist heute eingetroffen.

Wenn ich das richtig sehen wird sie von xinput so gefunden:
MOSART Semi. 2.4G Keyboard Mouse System Control id=11 [slave keyboard (3)]
MOSART Semi. 2.4G Keyboard Mouse id=12 [slave keyboard (3)]

Hiermit konnte ich schonmal testweise einen anderen Keycode vergeben:

xmodmap -e "keycode 79 = F13 F13 F13 F13 F13"

Das betrifft dann die Taste "7" auf der Zusatztastur und auch die 7
auf dem Zehnerblock meiner normanen Tastatur.

Ich hab so problemlos F13 bis F26 vergeben und da klappt auch wie ich mit
xev ueberpruefen konnte.

Leider hab ich eine Kleinigkeit uebersehen. Das Programm das ich damit
verbessern wollte. (eagle) erlaubt es leider nur Befehle fuer "F1" bis "F12"
zu vergeben. ARGH!

Eine Loesung waere es wenn ich jetzt noch z.B F13 einen laengeren String
zuweisen koennte. Das hab ich mal mit einem eintrag in /etc/inputrc
probiert:
"\e[13~": "Hallo"

Leider ohne Ergebnis. Hab ich noch was uebersehen?

Olaf

olaf

unread,
Oct 6, 2020, 10:45:03 AM10/6/20
to

Hm..wenn ich das richtig verstehe dann kommen die Tasten irgendwie
nicht in der Shell an.

Hab ich z.B xev laufen und druecke in dem Terminalfenster wo xev
lauft "F12" so bekommen ich ^[[23
Mach ich das mit der neu definierten "F13" so kommt:

MappingNotify event, serial 43, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248

Bewege ich die Maus auf das xev-Fenster und drueck dort "F13"
kommt dagegen:

KeyPress event, serial 42, synthetic NO, window 0x1200001,
root 0x716, subw 0x0, time 385048100, (150,167), root:(1081,190),
state 0x0, keycode 79 (keysym 0xffca, F13), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False


Ein weiteres Problem, hiermit kann ich F12 neu belegen:
bind '"\e[25~":"foobar"'

Das funktioniert in der bash auch. Es funktioniert aber
nicht mehr im Eingabefenster von eagle. Liegt das an
dem Programm oder an X11 oder an KDE?

Olaf

Ulli Horlacher

unread,
Oct 6, 2020, 11:21:43 AM10/6/20
to
olaf <ol...@criseis.ruhr.de> wrote:

> Hm..wenn ich das richtig verstehe dann kommen die Tasten irgendwie
> nicht in der Shell an.

Die Shell nimmt niemals keyboards events an. Das macht der
Terminaltreiber, in deinem Fall wohl das xterm.


> Hab ich z.B xev laufen und druecke in dem Terminalfenster wo xev
> lauft "F12" so bekommen ich ^[[23

Das setzt das xterm so um.


> Bewege ich die Maus auf das xev-Fenster und drueck dort "F13"
> kommt dagegen:
>
> KeyPress event, serial 42, synthetic NO, window 0x1200001,
> root 0x716, subw 0x0, time 385048100, (150,167), root:(1081,190),
> state 0x0, keycode 79 (keysym 0xffca, F13), same_screen YES,
> XLookupString gives 0 bytes:
> XmbLookupString gives 0 bytes:
> XFilterEvent returns: False

Das ist das X event.


> Ein weiteres Problem, hiermit kann ich F12 neu belegen:
> bind '"\e[25~":"foobar"'

DAS wiederum ist ein bash/readline feature, das ueberhaupt nichts mit X11
zu tun hat.


> Das funktioniert in der bash auch.

Weil die bash readline verwendet.


> Es funktioniert aber nicht mehr im Eingabefenster von eagle.

Ich weiss zwar nicht, was eagle ist, aber das verwendet wohl kein
readline, deshalb ignoriert es deine Konfiguration.


> Liegt das an dem Programm

Ja.

Du musst jemanden fragen, der sich mit eagle auskennt.

Das Ganze ist aber laengst kein Hardware-Problem mehr.
Du solltest damit nach de.comp.os.unix.x11 umziehen.

olaf

unread,
Oct 6, 2020, 1:15:04 PM10/6/20
to
Ulli Horlacher <fram...@rus.uni-stuttgart.de> wrote:


>Das Ganze ist aber laengst kein Hardware-Problem mehr.
>Du solltest damit nach de.comp.os.unix.x11 umziehen.

Das stimmt. Allerdings hab ich das Problem jetzt weitestgehend
geloest. Man kann die gewuensche Eingabe in KDE einstellen.
Mit der kleinen aber unangenehmen einstellung das dort die rechte
ALT-Taste nicht funktioniert.

Aber sonst kann ich die Hardware empfehlen. :-)
Laeuft super unter Linux und die 10Euro ist das wert.

Olaf
0 new messages