Hallo,
ich bin gerade dabei, mich in die Anfangsgründe von Python und Tkinter einzuarbeiten.
Als einer, der irgendwann in der Steinzeit ein bisschen hobbymäßig mit Basic und Javascript rumgespielt hatte, finde ich in Python endlich die Sprache, die ich mir immer gewünscht habe, übersichtlich im Code und plattformübergreifend.
Ich arbeite mich langsam rein und es macht Freude.
Es gab allerdings einen sehr konkreten Grund für dieses Vorhaben:
Aufgrund einer körperlichen Behinderung kann ich an meinem Trackball nicht gleichzeitig den Button drücken und die Kugel bewegen.
Dieses Problem beschäftigt mich bei jedem Systemwechsel auf's Neue und ich hatte schon die seltsamsten Lösungen dafür. Von aus dem Trackball heraus zu einem Kippschalter geführten Kabeln bis hin zu einem kleinen Tool, das Systemereignisse auf Tasten legt.
Die mit Abstand beste Lösung hatte ich bei Windows Vista (höhere Windows hatte ich noch nicht), wo ich eine Einstellung gefunden hatte, mit der die Maus als gedrückt behandelt wurde, nachdem man den Button mindestens 3 Sekunden gedrückt hielt, und beim nächsten Druck wieder normal.
Das hat sehr gut funktioniert.
Auf meinem neuen Rechner möchte ich jetzt aber gerne auf Windows weitgehend verzichten und arbeite mit Xubuntu.
Dabei muss ich aber leider feststellen, dass Ubuntu in Bezug auf Barrierefreiheit noch elend viel zu wünschen übrig lässt.
Aber was nicht ist, kann ja noch werden.
So habe ich mir als naiver Laie gedacht, dass es ja nicht so schwierig sein dürfte, ein kleines Script zu schreiben, dass das oben beschriebene Verhalten (3 Sekunden usw.) ermöglicht.
Ich würde mir sogar zutrauen, das selber zu schreiben, wenn ich denn wüsste, wo ich irgendwelche Module/Pakete/whatever finde, mit denen ich Mausereignisse auslesen und beeinflussen kann.
Kann mir vielleicht jemand einen Tip geben, wo ich da was finde?
Oder ist mein Vorhaben an sich unrealistisch? Kann man so ein Script problemlos in's System einbinden, ohne dass es Ärger gibt? Ich möchte dieses ver***te Problem ein für alle mal aus der Welt schaffen, für mich und für Andere.
Sonst müsste ich wieder zu Windows wechseln, denn so kann ich nicht arbeiten. Das fände ich aber schade und obendrein eigentlich peinlich für die Linux-Community.
Alles Gute und mindestens ein Wunder pro Tag
wünscht JK
Mausfunktion für Behinderte
-
BlackJack
@artogen: Kurze Netzrecherche ergab, dass es so eine Option bei Ubuntu, also dem GNOME-Desktop, mal gab und anscheinend im Zuge dieser komischen „der Benutzer ist durch zu viele Optionen nur verwirrt”-Aktionen wieder rausgeflogen ist. Also möglich ist es grundsätzlich schon. Ich würde an Deiner Stelle aber erst einmal bei den Einstellungen oder fertigen Programmen suchen, und vielleicht mal bei ubuntuusers.de nachfragen ob da jemand entsprechende Möglichkeiten kennt.
Wenn man das selber programmieren möchte, ist die Frage wo man am besten ansetzt. Das geht ja schon ziemlich in Richtung Systemprogrammierung.
Wenn man das selber programmieren möchte, ist die Frage wo man am besten ansetzt. Das geht ja schon ziemlich in Richtung Systemprogrammierung.
- diesch
- User
- Beiträge: 80
- Registriert: Dienstag 14. April 2009, 13:36
- Wohnort: Brandenburg a.d. Havel
- Kontaktdaten:
Sowas sollte sich mit python-xlib bzw. python3-xlib machen lassen. Der Quellcode von xhotskeys ist evtl. hilfreich, um zu verstehen, wie man damit umgeht.
Wenn es dir reicht, Mausereignisse mit der Tastatur zu simulieren, schau dir mal https://de.wikipedia.org/wiki/Tastaturmaus an.
Mit dem Programm xdotool (Paket xdotool in Xubuntu) kannst du Mausereignisse auf der Kommandozeile simulieren, z.B.
Vermutlich kannst du dir in Xubuntu Tastenkürzel einrichten, mit denen du solche Befehele ausführen kannst.
Das Programm ist in C geschrieben, die Xlib-Aufrufe sollten in Python aber ähnlich sein. Wenn du also C ein bisschen lesen kannst, könnte der Quellcode auch intererssant für dich sein.
Möglicherweise kann dir auch auf der Ubuntu-Accessibility-Mailingliste oder dem Accessibility Team jemand weiterhelfen.
Wenn es dir reicht, Mausereignisse mit der Tastatur zu simulieren, schau dir mal https://de.wikipedia.org/wiki/Tastaturmaus an.
Mit dem Programm xdotool (Paket xdotool in Xubuntu) kannst du Mausereignisse auf der Kommandozeile simulieren, z.B.
Code: Alles auswählen
xdotool mousedown 1
xdotool mouseup 1 Das Programm ist in C geschrieben, die Xlib-Aufrufe sollten in Python aber ähnlich sein. Wenn du also C ein bisschen lesen kannst, könnte der Quellcode auch intererssant für dich sein.
Möglicherweise kann dir auch auf der Ubuntu-Accessibility-Mailingliste oder dem Accessibility Team jemand weiterhelfen.
http://www.florian-diesch.de
Hallo,
erst mal vielen Dank für die Antworten.
Auch wenn ihr mich erst mal kräftig desillusioniert habt.
@ Black Jack
Gewöhnungsbedürftig und umständlich.
Für jemand wie mich, der die Mauskugel sowieso nur eingeschränkt bewegen kann, eine zusätzliche Blockade für den ohnehin schon erschwerten Work Flow.
Das muss einfach einfacher gehen!
Es gibt immer nur Verweise auf diese Mausgesten oder noch schlimmere Tools, die noch umständlicher zu handlen sind.
Vielleicht suche ich ja auch falsch, aber eigentlich hatte ich andere Dinge mit meinem neuen 12 Gb RAM System und meiner kostbaren Lebenszeit vor, als solche lästigen Kleinigkeiten zu beackern, die btw unter Windows schon sehr lange zufriedenstellend gelöst sind.
Wie oben beschrieben:
Normaler Klick - normaler Klick
Button >3 Sekunden festhalten, dann loslassen - System betrachtet Button weiter als gedrückt
bis zum
nächsten Klick - Alles wieder normal
----
Alternativ:
Irgendeine sonst nie genutzte Taste (zB Pause) mit der Mausbutton ist gedrückt Funktion belegen, bis zum nächsten Ereignis.
-------
Ich kann irgendwie nicht glauben, dass das so schwierig zu machen ist.
------
@driesch
Ich fühle mich ja geschmeichelt, aber ich glaube, Du überschätzt mich.
Ich hätte es vielleicht ein wenig klarer ausdrücken können, aber ich bin bezgl. Linux ein Anfänger, beginne gerade erst, das Dateisystem zu überblicken, wenn auch noch lange nicht zu verstehen.
Und ich bin Anwender, Enduser, manchmal auch Dau, der einfach nur mit guten Programmen arbeiten möchte, dem Betriebssystemgeschichten aber eher suspekt sind.
Versteht mich nicht falsch.
Ich bin durchaus bereit, Zeit zu investieren und mich reinzuarbeiten.
Aber ich möchte auch vorher gerne schon die Maus ziehen können.
In den Bereichen, in denen ich unterwegs bin (Bildbearbeitung, 3D, Filmschnitt) ist das unverzichtbar.
@driesch
Nichtsdestotrotz kann mir Deine Antwort vielleicht schon einen Ansatz zur Lösung bieten.
Du kannst das Maß meiner Unwissenheit vielleicht daran erkennen, dass ich mit Deinen Tips zu Xlib (noch) komplett überfordert bin. Ich weiß nicht, wie man da ran kommt und bin auch immer ängstlich, irgendwas zu zerschießen.
Sogar an dem "kurzen Blick" auf den Quellcode von hotskeys bin ich gescheitert.
Ich habe es runtergeladen, wusste aber erstmal nicht, wohin entpacken und finde es jetzt nicht mehr.
Der Sucher Catfish meldet kritischen Fehler.
Das ist aber jetzt hier nicht wichtig, sondern soll nur illustrieren, dass ich mich noch ein bisschen dumm anstelle.
Die Tastaturmaus hilft mir schon manchmal, aber auch das ist unbefriedigend, weil der Ziffernblock für mich sehr oft eine große Arbeitserleichterung bietet.
Und in Blender, einem meiner Hauptwerkzeuge, ist der Ziffernblock ein wesentliches Element der Bedienung.
Aber es gab auch ein Erfolgserlebnis.
xdotool konnte ich aus dem Software Center installieren, und wenn ich im Terminal Deine Zeile - xdotool mousedown 1 - eingebe, wird die Maus bis zum nächsten Klick als gedrückt behandelt.
Wenn Du vielleicht noch so ungeheuer nett sein könntest, mir dabei zu helfen, diese Funktion auf der 'Pause'-Taste systemweit verfügbar zu machen, wären (fast) alle meine Probleme gelöst.
Ach ja, die Accessibility Infobereiche von Ubuntu erlebe ich als einigermaßen katastrophal.
Mir wird durchaus langsam klar, dass das hier ein bisschen Off Topic Python abdriftet.
Aber ich habe irgendwie das Gefühl, dass die Lösung sehr nahe ist, möchte ungern in einem anderen Forum wieder ganz von vorne anfangen und bitte deshalb um Entschuldigung und Verständnis.
Mit Dank für das bisher Geleistete und vielleicht auch im Voraus verbleibe ich,
JK
erst mal vielen Dank für die Antworten.
Auch wenn ihr mich erst mal kräftig desillusioniert habt.
@ Black Jack
Ja, über Mausgesten. Das war aber auch nicht sonderlich praktikabel.Kurze Netzrecherche ergab, dass es so eine Option bei Ubuntu, also dem GNOME-Desktop, mal gab und anscheinend im Zuge dieser komischen „der Benutzer ist durch zu viele Optionen nur verwirrt”-Aktionen wieder rausgeflogen ist.
Gewöhnungsbedürftig und umständlich.
Für jemand wie mich, der die Mauskugel sowieso nur eingeschränkt bewegen kann, eine zusätzliche Blockade für den ohnehin schon erschwerten Work Flow.
Das muss einfach einfacher gehen!
Ich habe mir schon ganz schön den Wolf gesucht. Stunden und Tage, frag mich nicht, wo überall.Also möglich ist es grundsätzlich schon. Ich würde an Deiner Stelle aber erst einmal bei den Einstellungen oder fertigen Programmen suchen, und vielleicht mal bei ubuntuusers.de nachfragen ob da jemand entsprechende Möglichkeiten kennt.
Es gibt immer nur Verweise auf diese Mausgesten oder noch schlimmere Tools, die noch umständlicher zu handlen sind.
Vielleicht suche ich ja auch falsch, aber eigentlich hatte ich andere Dinge mit meinem neuen 12 Gb RAM System und meiner kostbaren Lebenszeit vor, als solche lästigen Kleinigkeiten zu beackern, die btw unter Windows schon sehr lange zufriedenstellend gelöst sind.
Wie oben beschrieben:
Normaler Klick - normaler Klick
Button >3 Sekunden festhalten, dann loslassen - System betrachtet Button weiter als gedrückt
bis zum
nächsten Klick - Alles wieder normal
----
Alternativ:
Irgendeine sonst nie genutzte Taste (zB Pause) mit der Mausbutton ist gedrückt Funktion belegen, bis zum nächsten Ereignis.
-------
Ich kann irgendwie nicht glauben, dass das so schwierig zu machen ist.
------
@driesch
Ich fühle mich ja geschmeichelt, aber ich glaube, Du überschätzt mich.
Ich hätte es vielleicht ein wenig klarer ausdrücken können, aber ich bin bezgl. Linux ein Anfänger, beginne gerade erst, das Dateisystem zu überblicken, wenn auch noch lange nicht zu verstehen.
Und ich bin Anwender, Enduser, manchmal auch Dau, der einfach nur mit guten Programmen arbeiten möchte, dem Betriebssystemgeschichten aber eher suspekt sind.
Versteht mich nicht falsch.
Ich bin durchaus bereit, Zeit zu investieren und mich reinzuarbeiten.
Aber ich möchte auch vorher gerne schon die Maus ziehen können.
In den Bereichen, in denen ich unterwegs bin (Bildbearbeitung, 3D, Filmschnitt) ist das unverzichtbar.
@driesch
Nichtsdestotrotz kann mir Deine Antwort vielleicht schon einen Ansatz zur Lösung bieten.
Du kannst das Maß meiner Unwissenheit vielleicht daran erkennen, dass ich mit Deinen Tips zu Xlib (noch) komplett überfordert bin. Ich weiß nicht, wie man da ran kommt und bin auch immer ängstlich, irgendwas zu zerschießen.
Sogar an dem "kurzen Blick" auf den Quellcode von hotskeys bin ich gescheitert.
Ich habe es runtergeladen, wusste aber erstmal nicht, wohin entpacken und finde es jetzt nicht mehr.
Der Sucher Catfish meldet kritischen Fehler.
Das ist aber jetzt hier nicht wichtig, sondern soll nur illustrieren, dass ich mich noch ein bisschen dumm anstelle.
Die Tastaturmaus hilft mir schon manchmal, aber auch das ist unbefriedigend, weil der Ziffernblock für mich sehr oft eine große Arbeitserleichterung bietet.
Und in Blender, einem meiner Hauptwerkzeuge, ist der Ziffernblock ein wesentliches Element der Bedienung.
Aber es gab auch ein Erfolgserlebnis.
xdotool konnte ich aus dem Software Center installieren, und wenn ich im Terminal Deine Zeile - xdotool mousedown 1 - eingebe, wird die Maus bis zum nächsten Klick als gedrückt behandelt.
Wenn Du vielleicht noch so ungeheuer nett sein könntest, mir dabei zu helfen, diese Funktion auf der 'Pause'-Taste systemweit verfügbar zu machen, wären (fast) alle meine Probleme gelöst.
Ach ja, die Accessibility Infobereiche von Ubuntu erlebe ich als einigermaßen katastrophal.
Mir wird durchaus langsam klar, dass das hier ein bisschen Off Topic Python abdriftet.
Aber ich habe irgendwie das Gefühl, dass die Lösung sehr nahe ist, möchte ungern in einem anderen Forum wieder ganz von vorne anfangen und bitte deshalb um Entschuldigung und Verständnis.
Mit Dank für das bisher Geleistete und vielleicht auch im Voraus verbleibe ich,
JK
-
BlackJack
@artogen: Ich meinte keine Mausgesten sondern tatsächlich das Feature was Du von Windows kennst. Ich finde die Webseite jetzt blöderweise nicht wieder. Wobei die nicht direkt geholfen hätte weil das ein drei Jahre alter Forenbeitrag von jemandem war, der fragte wo die besagte Option abgeblieben ist und es keine (befriedigende) Antwort darauf gab.
Ich bin auch der Meinung das es einfacher gehen muss oder zumindest müsste, denn die „sticky key”-Lösung auch für Maustasten umzusetzen erscheint mir irgendwie logisch und offensichtlich. Ich bin verwundert, dass es das nicht einfach gibt.
Auch wenn Du schon unendlich lange gesucht hast würde ich an Deiner Stelle trotzdem mal bei ubuntuusers.de ein Thema dazu aufmachen. Vielleicht kennt ja jemand etwas, oder fühlt sich animiert etwas zu programmieren. Zumindest schafft es ein Problembewusstsein. Die meisten Leute denken ja nicht an Anforderungen die deutlich von ihrem eigenen Umgang mit Hard- und Software abweichen.
diesch hat ja auch auf die Ubuntu-Accessibility-Mailingliste verwiesen. Wenn die Info-Seiten katastrophal sind, kann man das dort vielleicht auch thematisieren. Dieser ganze Linux/Open Source/Community-Kram lebt ja vom mitmachen also auch konstruktiver Kritik. Vielleicht bekommst Du dort ja irgendwie Leute organisiert, die helfen das an die richtigen Stellen weiter zu tragen. Meiner Meinung nach müsste man das am besten direkt in den Maustreiber für X als Option integrieren. Und dann die entsprechenden Leute/Teams bei den Desktopumgebungen dazu bringen diese Option in den grafischen Einstellungswerkzeugen auch Leuten anzubieten die nicht in irgendwelchen Konfigurationsdateien mit Texteditor herumpfuschen können oder wollen.
Das mit der Taste (auf der Tastatur) sollte machbar sein. Die meisten grossen Desktopumgebungen können Tasten(kombinationen) Aktionen zuweisen. Und unabhängig von der Desktopumgebung geht das mit ``xBindKeys``. Damit solltest Du eine „unbenutzte” Taste mit dem xdotool-Aufruf belegen können.
Ich bin auch der Meinung das es einfacher gehen muss oder zumindest müsste, denn die „sticky key”-Lösung auch für Maustasten umzusetzen erscheint mir irgendwie logisch und offensichtlich. Ich bin verwundert, dass es das nicht einfach gibt.
Auch wenn Du schon unendlich lange gesucht hast würde ich an Deiner Stelle trotzdem mal bei ubuntuusers.de ein Thema dazu aufmachen. Vielleicht kennt ja jemand etwas, oder fühlt sich animiert etwas zu programmieren. Zumindest schafft es ein Problembewusstsein. Die meisten Leute denken ja nicht an Anforderungen die deutlich von ihrem eigenen Umgang mit Hard- und Software abweichen.
diesch hat ja auch auf die Ubuntu-Accessibility-Mailingliste verwiesen. Wenn die Info-Seiten katastrophal sind, kann man das dort vielleicht auch thematisieren. Dieser ganze Linux/Open Source/Community-Kram lebt ja vom mitmachen also auch konstruktiver Kritik. Vielleicht bekommst Du dort ja irgendwie Leute organisiert, die helfen das an die richtigen Stellen weiter zu tragen. Meiner Meinung nach müsste man das am besten direkt in den Maustreiber für X als Option integrieren. Und dann die entsprechenden Leute/Teams bei den Desktopumgebungen dazu bringen diese Option in den grafischen Einstellungswerkzeugen auch Leuten anzubieten die nicht in irgendwelchen Konfigurationsdateien mit Texteditor herumpfuschen können oder wollen.
Das mit der Taste (auf der Tastatur) sollte machbar sein. Die meisten grossen Desktopumgebungen können Tasten(kombinationen) Aktionen zuweisen. Und unabhängig von der Desktopumgebung geht das mit ``xBindKeys``. Damit solltest Du eine „unbenutzte” Taste mit dem xdotool-Aufruf belegen können.
Vielen Dank für eure Hilfe.
Ich glaube, Xbindkeys ist genau das, was ich brauche.
Ich habe es sogar (wiedermal mit erheblichem Zeitaufwand, weil ich zu voreilig war) so installiert bekommen, dass keine Fehlermeldungen mehr auftreten.
Dummerweise funktioniert es nicht!!
Wenn ich als command dieses - xdotool mousedown 1 - eingebe, passiert ziemlich genau gar nichts, jedenfalls nichts wahrnehmbares.
Im Terminal geht der Befehl einwandfrei.
Fehlt da noch irgendwas?
Ich werde mir wohl erstmal so behelfen, dass ich den Befehl bei Bedarf in's Terminal kopiere.
Viel umständlicher geht kaum.
Aber dafür wird's mir sicher ziemlich bald so lästig, dass ich mich noch mal dahinter klemme.
Jedenfalls habe ich jetzt erstmal die Faxen dicke und muss irgendwas ganz anderes machen.
Ich hätte gute Lust, loszuziehen und ein paar Faschos zu verhauen.
Wenn die wüssten, was für ein Glück sie haben, dass ich behindert bin.
Trotzdem noch mal Danke für eure Hilfe.
Ohne euch wäre ich jetzt noch viel frustrierter.
Freundliche Grüße,
JK
Ich glaube, Xbindkeys ist genau das, was ich brauche.
Ich habe es sogar (wiedermal mit erheblichem Zeitaufwand, weil ich zu voreilig war) so installiert bekommen, dass keine Fehlermeldungen mehr auftreten.
Dummerweise funktioniert es nicht!!
Wenn ich als command dieses - xdotool mousedown 1 - eingebe, passiert ziemlich genau gar nichts, jedenfalls nichts wahrnehmbares.
Im Terminal geht der Befehl einwandfrei.
Fehlt da noch irgendwas?
Ich werde mir wohl erstmal so behelfen, dass ich den Befehl bei Bedarf in's Terminal kopiere.
Viel umständlicher geht kaum.
Aber dafür wird's mir sicher ziemlich bald so lästig, dass ich mich noch mal dahinter klemme.
Jedenfalls habe ich jetzt erstmal die Faxen dicke und muss irgendwas ganz anderes machen.
Ich hätte gute Lust, loszuziehen und ein paar Faschos zu verhauen.
Wenn die wüssten, was für ein Glück sie haben, dass ich behindert bin.
Trotzdem noch mal Danke für eure Hilfe.
Ohne euch wäre ich jetzt noch viel frustrierter.
Freundliche Grüße,
JK
-
BlackJack
@artogen: Da haben die Faschos dieses Wochenende ja noch mal Glück gehabt.
Gewalt ist sowieso keine Lösung.
Bei Linux- und Open-Source-Programmen allgemein bin ich ja der Meinung, dass „Zertifikate“ bei sowas helfen würden: Z.B. erstellt ein Eingabehilfen-Projekt eine gute Dokumentation, in der die Probleme beschrieben werden und was es für Lösungen gibt. Die meisten Programmierer können sich ja gar nicht vorstellen, was es überhaupt für Probleme gibt. Da muss es dann natürlich eine gute Anlaufstelle geben, die sowas beschreibt.BlackJack hat geschrieben: Auch wenn Du schon unendlich lange gesucht hast würde ich an Deiner Stelle trotzdem mal bei ubuntuusers.de ein Thema dazu aufmachen. Vielleicht kennt ja jemand etwas, oder fühlt sich animiert etwas zu programmieren. Zumindest schafft es ein Problembewusstsein. Die meisten Leute denken ja nicht an Anforderungen die deutlich von ihrem eigenen Umgang mit Hard- und Software abweichen.
Außerdem würde das Projekt dann ein Logo erstellen, was zeigt, ob das entsprechende Programm die Eingabehilfen vernünftig unterstützt oder nicht. Die Software könnte dann auf ihrer Webseite (und auch im Paketmanager) das Logo verwenden (natürlich nur, wenn die Voraussetzungen erfüllt sind) und so kann man direkt sehen, ob die Software das alles vernünftig unterstützt.
Das könnte man dann in mehreren Schritten machen, z.B. die hier beschriebende Mausfunktion, ein Screenreader usw. Das Ziel wäre dann evtl. zu 25% erfüllt und es ist gleichzeitig ein Anreiz für die Programmierer, 100% zu erreichen.
Solche Zertifikate wären auch gut für andere Sachen, z.B. Sprachen- (RTL, Unicode usw) oder Hardwareunterstützung.
