Immer wieder Multimediatasten

R

ralli

Guest
Vor einigen Jahren habe ich mir eine USB MS Tastatur Natural Keyboard Pro gekauft, die hier immer noch ihren Dienst versieht. Früher unter Linux und heute unter FreeBSD, häufig funktionieren die Multimediatasten unter den verschiedenen Desktop von überhaupt nicht bis nur eingeschränkt. Bisher werden die Multimediatasten Stumm, Lauter und Leiser nur vom Gnome Desktop richtig erkannt. Das ist mehr als nur ärgerlich, denn ich möchte nicht nur deshalb Gnome installieren. Was garnicht geht, das die Stumm Taste nicht funktioniert, wenn mal das Telefon geht und ich die Musik, die ich ab und zu auch während der Arbeit höre, abstellen kann. Kennt jemand eine Lösung für FreeBSD? Im Augenblick habe ich den Mate Desktop im EInsatz, aber da funktionieren die Multimediatasten auch nicht. Der Mate Klangregler funktioniert, aber stumm schalten geht auch nicht.
 
Wenn Gnome die Tasten nutzen kann heißt das ja schonmal, dass die Keycodes im System ankommen. Das ist ja schon gut. Kannst du in dem Desktop deiner Wahl mit dem beiliegenden Konfigurationswerkzeug für Keyboardshortcuts die Tasten belegen?
Was passiert wenn du xev startest und die Tasten drückst? Kommen die Tasten an?
 
Nein xev meldet, das bei dem Drücken aller drei Multimediatasten leider kein Code ankommt.
 
Es scheint also keine globale Lösung zu geben. Wenn ich volumeicon benutze, geht es in Mate, aber nur softwaremäig. Die Mute Taste funktioniert nicht. Leider habe ich keine zweite Tastatur mehr, dann könnte ich ausschließen, das die Mute Taste eine Macke hat. Wenn ich ein Video mit smplayer anschaue oder damit Musik höre, geht es innerhalb des smplayers auch. Das reicht mir ja eigentlich. Trotzdem ist es ein großes Durcheinander. Es erklärt auch nicht, warum es mit dem Gnome Desktop mit den Multimediatasten einwandfrei funktioniert. Dann kann die Tastatur auch nicht kaputt sein. Es gibt auf meiner Multimedia Tastatur auch noch andere Sondertasten, es kann der Mail Client aufgerufen werden oder der Taschenrechner. Das alles funktioniert auch unter Mate einwandfrei. Wahrscheinlich ist es die Software. Multimedia Tastaturen sind ja generell keine Exoten mehr.
 
Danke Fusselbär, aber ich lasse es jetzt so, im übrigen wird die Mute Taste unter gnome auch nicht erkannt, warum auch immer. Die anderen beiden Lautstärketasten lauter und leiser funktionieren ja.
 
Habe mal ausgiebig recherchiert, mit dem Problem stehe ich ja nicht alleine da. Die Foren sind voll davon. Dabei sind doch Multimedia Tastaturen beileibe keine Seltenheit mehr und die die Keys von Stumm, Lauter und Leiser doch auch in X standardisiert. Was mir komisch vorkommt, das ich alleine hier im Forum dieses Problem habe. Wahrscheinlich wird es einfach ignoriert, weil es eh keine wirkliche Lösung gibt. Das von @Fusselbär vorgeschlagene uhidd habe ich mir auch durchgelesen, blicke da aber nicht durch und weiss nicht, was ich genau machen muß.
 
Weil das alles nicht alleine X ist.
xev zeigt ja auch nur an, was der X-Server erkennt (afaik). Es gibt darüber hinaus ja auch die Keyboard-Erkennung des Systems und Sound ist ja grundsätzlich eine Aufgabe des Treibers und des Systems, man braucht dazu keine Grafik und kein X.
Da spielen also viele Faktoren eine Rolle und welches DE da nun was wie nimmt und hinein interpretiert (und dann auch ausführen darf), müsste man in der Doku zu diesem DE dann erfahren. Da habe ich nie etwas gelesen, das solche Grundlagen erklärt.
Du müsstest also die Events in Erfahrung bringen, die Keycodes für das System und denen dann Ereignisse zuordnen, ganz, wie das bei ACPI-Events auch passiert.
Ich will mich da nicht mehr einlesen und du hast ja auch geschrieben, dass du letztlich damit leben kannst.

Solche Tasten, die in X erkannt werden (also mit xev ausgelesen werden können), bei denen weiß ich, dass sie in meinem Fenstermanager (OpenBox) benutzt werden können, um ihnen Ereignisse zuzuweisen. Das gilt auch für Tastenkombinationen. Angenommen ALT+S soll stumm schalten. Dann kann man einfach in die entsprechende Konfig eintragen, dass ALT+S ein Script ausführt. In dem Script führt man den entsprechenden mixer-Befehl aus und schon ist stumm.
Man kann sich da nun einige Spielereien ausdenken. Etwa, zuerst die Werte aus dem Mixer auslesen und irgendwo speichern und dann mit einem neuen Tastendruck die gespeicherten Werte setzen. Das scheint wirklich nicht kompliziert und es war für mich ein Grund, OpenBox treu zu bleiben.
 
Ja, es geht schon einiges, wenn es wichtig ist. Folgendes kann ich jetzt festhalten: Die Mute (Stumm) Taste funktioniert grundsätzlich bei keinem Desktop, warum auch immer. Unter dem Mate Desktop funktioneren die anderen beiden Multimediatasten Lauter und Leiser auch ncht. Allerdings funktionieren die beiden Tasten unte dem Gnome- und KDE Desktop einwandfrei. Ich habe alles ausprobiert und bin nun wieder zum KDE Desktop zurückgekehrt, weil der hochkonfigurierbar ist und ich auch alles einstellen kann. Alle drei Tasten funktionieren nur unter Linux Mint 18 einwandfrei. Aber ich bleibe ja bei FreeBSD, deshalb wechsel ich nicht, obwohl das noch systemd Verweigerer sind.
 
Wie verhält es sich mit KDE4? Ich hatte früher immer Gnome2 und dann später MATE genutzt und ab irgendeiner MATE-Version funktionierten die Multimediatasten einfach nicht mehr, was mich dann definitiv geärgert hat (auch nach dem Wegfall von GDM2) und mich zum Umsteigen auf KDE4 bewegt hat. Die Multimediatasten scheinen auch bei Kodi im Standalone-Modus zu funktionieren.
 
Danke für den Hinweis @cabriofahrer. Ich habe alle Desktop ausprobiert. Richtig funktionieren die Multimediatasten nur unter KDE4. Deshalb ist das auch wieder mein Standard Desktop. Ja, ich bin nun mal auch ein Perfektionist.;) Bei KDE paßt einfach alles.
 
kbdscan (misc/kbdscan) ist so ein Tool, mit dem man Tasten-Codes auslesen kann und zwar außerhalb von X. Damit müsste man erst mal sehen, ob da überhaupt ein Code erkannt wird (vermutlich schon, wenn manche DEs was machen). Dann kann man die keymap-Datei editieren und für die zusätzlichen Codes "Aktionen" bestimmen. Diese Aktionen sind aber oft nur Abkürzungen für gleichzeitig gedrückte Tasten innerhalb des normalen Keyboards. Dazu muss man sich die vielen man-Pages zu kbdcontrol etc durchlesen. Man findet diese Seiten mühelos, wenn man erst mal damit anfängt, sich da einzulesen.
Ich sage nicht, dass all das einfach ist. Es ist aber einfach der Weg, wie sowas funktioniert (oder funktionieren kann).
Erst den Code einer Taste lesen, dann in der keymap dafür sorgen, dass er irgendwas zugeordnet wird, dann diesem Ereignis wiederum eine Aktion zuteilen (also Aktion diesmal anders benutzt als oben).
Wird HAL genutzt, kann das unterschiedlich sein, weil vielleicht eine Policie dem Tastendruck direkt etwas zuordnet.
Statt HAL könnten diverse DE auch eigene Mechanismen haben.
Es kann dann nur die Dokumentation des DEs helfen, leider sind diese Dokus allermeist nicht besonders hilfreich, wenn man herausfinden will, wie da etwas funktioniert. Da ist schon ausdauernde Arbeit gefragt.
Hat man es, dann kann man anderen mit gleichem Problem durchaus helfen.
Ansonsten ist es viel Arbeit im Verhältnis zum Ergebnis: wie oben schon erläutert, kann ja jederzeit (in vielen DEs und in OpenBox) eine Kombination von Tasten der "regulären Tastatur" benutzt, und eine Aktion nach Wunsch dafür eingerichtet werden. Dann braucht man für eine Sondertastatur keine eigene keymap zu bauen.
 
  • Like
Reaktionen: lme
Meine praktische Erfahrung ist die, das es hinsichtlich der Multimediatasten einer Tastatur keinen definierten Standard gibt. Und das hat mit dem jeweiligen OS wohl auch wenig zu tun, weil ein Betriebssystem dafür wohl nicht zuständig ist. Unter FreeBSD gehen zumindest laut und leise mit KDE und Gnome. Die Mute Taste hat bis jetzt weder Gnome, noch KDE und Mate sowieso nicht erkannt. Das ist bei Linux auch nicht anders. Das einzige Linux, was alle drei Tasten mit dem Cinnamon Desktop richtig erkennt und ausführt ist Linux Mint 18 Sarah. Es wäre interessant zu wissen, wie sich Cinnamon unter FreeBSD 11 verhält, aber das habe ich noch nie zu Laufen gebracht. Es stürzt nach der Installation immer ab. Ob es da noch bedingte Dinge bei oder nach der Installation zu berücksichtigen sind, weiß ich nicht. Gibt es hier im Forum jemanden, der Cinnamon installiert hat und bei dem es läuft? Dann laßt mich es bitte wissen.
 
FreeBSD unterstützt IMHO nur 8-Bit Tasten und einige Tastaturen brauchen 9 Bit. So gehen dann Multimediatasten usw. auf dem Weg durch kbdmux verloren. Die bekommt man nur wenn man direkt von dem USB Device liest.
 
Aha, gut zu wissen, danke. Mit einem guten Klangregler läßt sich ja auch alles steuern. Seltsam ist nur das das unter verschiedenen Desktop Systemen funktioniert oder eben nicht, da die Hardware, also in diesem Falle die Tastatur, doch dieselbe ist (entweder 8 oder 9 Bit).
 
Moin !

@ralli ...

Da muss ich dir widersprechen , ich habe hier eine Logitech-Tastatur und die MM-Tasten werden
unter jedem Linux erkannt !
Selbst wenn nur Openbox installiert ist , ohne grosses gedöns drumherum !

Liegt wohl auch am Hersteller der Tastatur !

Gruss

P.S. :

Es müssen natürlich Befehle den Keys zugeordnet werden :

<keybind key="XF86AudioMute">
<action name="Execute">
<command>amixer -q sset Master toggle</command>
</action>
</keybind>

Bei Freebsd werden die Keys nur nicht erkannt , wie man mit "xev"
gut erkennen kann !
 
Ich hatte das bei meiner Tastatur mal vor vielen Jahren mit sysutils/uhidd gemacht. Anstatt xmodmap hattte ich aber x11/xbindkeys und xte aus x11/xautomation verwendet.
Das hier habe ich noch in meiner ~/.xbindkeysrc stehen.
Code:
cat ~/.xbindkeysrc

"xte 'keydown Alt_L' 'key Left' 'keyup Alt_L'"
   b:8 # Maustaste 8

"xte 'keydown Alt_L' 'key Right' 'keyup Alt_L'"
   b:9 # Maustaste 9

# Start KDE kcalc with special key
#"kcalc"
#   c:92 # Taschenrechnertaste
#
# Increase Sound Volume with xte
# "xte 'keydown Super_R' 'key Up' 'keyup Super_R'"
#"mixer vol +1"
#   c:170
#
# Decrease Sound Volume with xte
# "xte 'keydown Super_R' 'key Down' 'keyup Super_R'"
#"mixer vol -1"
#   c:184
#
# Mute Audio
#"mixer vol 0"
#   c:147
#
# Home Button
#"xdg-open ~"
#   c:189

Die seitlichen Daumentasten der Maus nutze ich heute immer noch so. Aber der uhidd war damals mit meiner Tastatur nicht so zuverlässig. Kann mich da noch dunkel daran erinnern, dass es sich gelegentlich vergnatzbadelt hatte. Springender Mauscursor, oder irgendwelche anderen sonderbaren Effekte hatte ich damals. Für mich hat sich das mit den Lautstärketasten auf der Tastatur dafür nicht gelohnt, da ich die Lautstärke gewöhnlich am Kopfhörerkabel mit dem Hardware-Regler einstelle.
 
Moin @bluescreen,

Du darfst mich gerne korrigieren, ich habe nur meinen augenblicklichen WIssensstand widergegeben, und der muß ja nicht zwangsläufig richtig oder aktuell sein. Tatsächlich habe ich vor einigen Jahren eine neue Microsoft Natural Keyboard USB Tastatatur geschenkt bekommen, an der mich nur der Name stört, ansonsten ist sie wirklich gut. Aber einem geschenkten Gaul schaut man ja bekanntermaßen nicht ins Maul.

In welche Datei muß dies eingetragen werden?

<keybind key="XF86AudioMute">
<action name="Execute">
<command>amixer -q sset Master toggle</command>
</action>
</keybind>

Und welches Programm muß installiert werden und beim Start von KDE ausgeführt?

Danke!
 
@bluescreen, habe es schon gefunden, es war nur für openbox und muß in die openbox Konfigurationsdatei rc.xml eingetragen werden.
 
https://wiki.archlinux.org/index.php/extra_keyboard_keys
https://wiki.ubuntuusers.de/Xmodmap/

möchte ich nochmal anregen. Ich denke, da wird die Sache übersichtlich erklärt und mögliche Lösungen erörtert. Dabei werden auch Tools benutzt, die die Sache vereinfachen können. Ob es bei uns auch eine dmesg-Nachricht gibt, wie das bei Linux offenbar der Fall ist, das weiß ich nicht. Meine Tasten werden alle erkannt, soweit ich das weiß. kbdscan zeigt deshalb bei mir auch zu jeder Taste einen Scan, genau, wie xev auch.


<keybind key="XF86AudioMute">
<action name="Execute">
<command>amixer -q sset Master toggle</command>
</action>
</keybind>
funktioniert auch in OpenBox nur, wenn XF86AudioMute bekannt ist (also eine Tastatur einen entsprechenden Code liefert und der auch nach X durchgereicht wird UND amixer installiert ist (gibt es den für FreeBSD?) und gefunden wird und die Optionen hat, die hier benutzt werden.

Ein Eintrag in einer entsprechenden Policie bei Benutzung von HAL könnte auch nur funktionieren, wenn die Taste erkannt wird und ihr ein Code zugeordnet werden kann.

Und Kamikaze sagte es ja schon: es könnte auch sein, dass diverse DEs oder Distributionen noch weiter gehen und vielleicht direkt am USB-Gerät lesen und hier irgendwas arrangieren. Ohne die jeweilige Doku ist das sehr schwierig heraus zu finden. Und es sagt einem daher nur wenig, wenn es bei "anderen" geht, weil man dann immer noch nicht weiß, was die denn gedreht haben.

Wenn du einen Code bekommst, gibt es eine reelle Chance, die Tasten auch zu benutzen und zwar auf der Konsole und unter X und relativ unabhängig zum DE.
Ohne Code sieht es wohl schlecht aus.
 
@pit234a, danke für die Links. Sich mal einen Überblick zu verschaffen, ist ja nie verkehrt. Bei mir geht ja lediglich die Mute Taste nicht, damit kann ich auf jeden Fall leben. Ich erlebe immer wieder die haarsträubendsten Dinge, auch bei "abgehangenen" und eigentlich ausgereiften Desktops. So habe ich gestern bei KDE versucht mein Schriftbild zu verbessern. Das ist mir nur zum Teil gelungen. Und als ich den alten Zustand mit dem Button Voreinstellungen wiederherstellen wollte, funktionierte das nicht wirklich. Wenn ich in KDM eine größere Schrift haben will, was auch meiner eingestellten Auflösung entspricht, funktioniert das auch nicht richtig. Also iregdwas ist ja immer.... Aber ich muß und bin nicht mit allem einverstanden. Bei KDE, ansonsten gut ausgestattet, muß ich Browser und Mail Client nachinstallieren. Kmail mag ich wegen Akonadi Abhängigkeit nicht. Auch wenn das jetzt sprunghaft aussieht, ich arbeite nun mit dem Gnome Desktop weiter. Da ist alles und nicht nur gefühlt schneller. Und Die Schrift ist wirklich gut lesbar. Alles aus einem Guß, das mochte ich schon immer. Und K3b und digikam laufen auch unter Gnome einwandfrei. Sorry, das es etwas OT geworden ist, weil ich etwas ausgeholt habe. Ich habe wirklich lange experimentiert und komme wieder und immer wieder auf Gnome zurück, weil mir die Bedienung am Besten gefällt.
 
Es soll jeder versuchen, mit seiner eigenen Idee so weit zu kommen, wie es nur geht und wenn jemand sich halt dazu DEs installiert und darin eingebettete Anwendungen nutzt, die ihm zusagen UND auch noch so aussehen, wie er das möchte, dann ist die Welt ja in Ordnung. Es muss da ja nicht ein bestimmtes DE herauskommen, dass den meisten anderen vielleicht eher zusagt.
Ich selbst habe eine andere Erwartungshaltung entwickelt und konnte gar kein DE finden, das mich nach KDE3 wirklich begeistert hätte. Deshalb nutze ich kein DE mehr und habe auch den Kontakt zu den Entwicklungen vollkommen verloren. Mir tut das gut, mir gefällt es besser ohne DE.
Dafür musste ich irgendwann oder eigentlich immer mal wieder Defizite in Kauf nehmen oder daran arbeiten. Die Mute-Taste wäre so ein Defizit, das aber bei mir nicht vorkommt. Nur, ich hätte Ideen, dieses Problem anzugehen und zu lösen, ohne dass ich gleich ein DE dafür wechseln muss oder will (was bei dir ja auch nicht der Fall ist, das ist nicht auf dich bezogen).
In FreeBSD hat man diese Arbeiten häufiger, als bei vielen GNU/Linux-Distros, weil sich hier viele Leute schon vorab bemühen, alle Defizite möglichst gut in den Griff zu bekommen. Das bedeutet nicht, dass es nur perfekte Distros gibt und alle, die wie wir versuchen sich ein System aus dem Angebot selbst zusammen zu stellen automatisch versagen, aber es arbeiten in diesen Distros meist sehr viel mehr Menschen am Gelingen und haben daher eher Erfolg, als wenn man das für sich alleine versucht. Hinzu kommt, dass gerade die großen DEs in ihren Dokus sehr viel Gewicht auf das Erklären der Funktionalität legen (müssen) und nicht die Grundlagen beschreiben. Wie bei den Distros werden einfach solche Dinge zusammengestellt, die man braucht oder für nötig erachtet und man geht davon aus, dass der Endanwender glücklich ist, wenn eben nur die Effekte stimmen.
Auch deshalb fühle ich mich ohne DE wohler.

Du wirst es also, egal bei welchem DE, schwieriger haben, dieses Problem anzugehen und zu lösen.
Die Aufgabe auf der Konsole die Tasten zur Aktion zu führen oder unter X, ist vielleicht noch einfacher, als unter einem DE mit eigenen Mechanismen, die man nicht kennt und sieht.
 
Da ich gerade dasselbe Problem hatte und auf meiner neuen Tastatur die Multimedia-Tasten benutzen wollte (unter i3), hole ich das hier nochmal aus der Versenkung.

Wie Kamikaze schon schrieb, gibt der Tastatur-Kerneltreiber Tasten die er nicht kennt/verarbeiten kann garnicht erst weiter, schlussendlich hat auch xev unter X die Multimediatasten garnicht erst gesehen. Hier kommt uhidd ins Spiel.

* pkg install uhidd
* Folgendes kommt in die /etc/rc.conf:
Code:
uhidd_flags="-oumk"
uhidd_enable="YES"
* Danach uhidd mittels /usr/local/etc/rc.d/uhidd starten
* Jetzt drückt man alle Tasten durch, die man belegen möchte, das sollte ein /var/run/uhidd.ugenX.X/cc_keymap file anlegen. Diese Datei kopiert man nach /usr/local/etc/uhidd.conf um diese Konfiguration permanent zu machen (uhidd würfelt ansonsten beim nächsten Start ggf. neue Keycodes für die Tasten).
* Ist das geschafft, benutzt man xev um herauszufinden, welcher Keycode sich hinter den Tasten verbirgt (xev starten, Taste drücken, Zahl hinter "keycode" merken)
* Jetzt schreibt man sich eine ~/.xmodmap mit den entsprechenden Keycodes und mappt diese entsprechend. Bei mir sieht die Datei so aus:
Code:
keycode 184 = XF86AudioMute
keycode 170 = XF86AudioLowerVolume
keycode 92 = XF86AudioRaiseVolume
* Das wars im Prinzip. Jetzt braucht man nur noch ein Programm, was die Tasteneingaben abfängt und damit was tut. In meinem Fall ist das volumeicon.

Hoffe das hilft.

PS: Im übrigen legt uhidd auch eine /usr/local/etc/devd/uhidd-devd.conf an. Heißt, zieht und steckt man die Tastatur / die Maus (eben jedes USB-Input-Device) spawnt dafür automatisch ein uhidd Prozess. Ohne reboot hab ich das bei mir mittels /etc/rc.d/devd restart scharf gemacht.

Ich bin von dieser Lösung tatsächlich insgesamt recht angetan.
 
Hallo @steinex, danke für Deine Arbeit. Ich habe das gerade abgearbeitet. Die Mute Taste funktioniert aber immer noch nicht. Und die Lauter- und Leisertasten funktionieren bei mir mit volumeicon auch ohne diesen Workaround. Damit kann ich aber leben.;)
 
Zurück
Oben