• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Es regnet, ist neblig und kalt, alle sind krank und der Chef wird zunehmend cholerisch. Das Thema des Monats ist also folgerichtig --> Das Grau(en)
    Wir sind gespannt, war Euch dazu einfällt! Zum Wettbewerb --> Klick
  • Auch in diesem Jahr möchten wir auf unserer Webseite mit einem passenden Banner etwas weihnachtliche Stimmung verbreiten. Jeder Apfeltalker kann, darf und sollte uns einen Banner-Entwurf zusenden, wie und wo das geht, könnt Ihr hier nachlesen --> Klick

Ubuntu auf PowerBook G4 -- Tastaturbelegung anpassen

Lars

Gast
Hallo Forum,

aus purer Neugier habe ich parallel zu Mac OS X 10.4.10 noch Ubuntu-Linux in Version 7.04 »Feisty Fawn« auf einem PowerBook G4 installiert. Soweit, so gut -- die Dual-Boot-Umgebung funktioniert perfekt, ich kann beide Betriebssysteme frei nach Gusto verwenden.

Lediglich in Sachen Tastatur respektive deren Belegung hätte ich noch einen Wunsch: Insofern möglich würde ich gerne das Verhalten der Tasten [Befehl] und [Ctrl] ändern beziehungsweise anpassen. En detail sollte hierbei [Befehl] die Funktion von [Ctrl] übernehmen, während letztere dann nur noch für den Rechtsklick (und gegebenenfalls im Terminal) zum Zuge kommen sollte. Letzteres habe ich mittels des Daemon Mouseemu im Übrigen auch schon bewerkstelligen können. Es bliebe so gesehen also eigentlich nur noch das »Vertauschen« der Tasten [Befehl] und [Ctrl].

Ausserdem würde ich Sonderzeichen, insbesondere (oder zumindest) die diversen Klammervarianten, das Euro- sowie das @-Zeichen, über die vom Mac gewohnten und auf den entsprechenden Tasten vermerkten Tastenkombinationen erreichen.

Vielleicht gibt es ja eine Lösung für meine Anliegen ... :)

Schon mal vielen Dank für eventuelle Antworten
Lars
 

rgoetz

Boskoop
Registriert
09.03.07
Beiträge
41
Hallo,

Zu diesem Thema habe ich vor Jahren schon mal einen Anleitung verfasst und sie nun im mcnix wiki abgelegt.

Bis dann

R"udiger
 

Lars

Gast
Besten Dank -- dann will ich mich sogleich mal an die Umsetzung wagen ... ;)
 

Lars

Gast
Ich muss leider ganz kleinlaut zugeben, dass es mir beim besten Willen nicht gelingt, die beschriebene Vorgehensweise in die Tat umzusetzen. Hätte vielleicht noch jemand den entscheidenden FIngerzeig oder eine alternative Lösung (für DAUs) parat? :-[
 

rgoetz

Boskoop
Registriert
09.03.07
Beiträge
41
Hallo,

Wo hängt es den?

Hast du mal klein angefangen (nur einen Taste verändert)?

Einmal kurz was zur Logik von xmodmap:

Jede Taste hat eine Nummer (auch keycode geannt)
Diesem keycode kann man ein Symbol zuordenen. Es gibt zwei Arten von Symbolen,
solche die unmittelbar ein Zeichen ausgeben und solche die nur ein Name für die Taste sind.
Zu den ersteren gehört die Taste 'A', zu den zweiten gehören z.B. die Control oder Alt-Tasten.
Letztere müssen nun noch eine Funktion, bzw. einem "Modifier" zugeordnet werden.

Nun zu einem Beispiel:
Vertauschen der Funktionalität von Ctrl und Alt-Taste:

Variante 1: Vertauschen der Zuordnung zwischen Funktion und Tastensymbol

---------------

clear control
clear mod1
add mod1 = Control_R Control_L
add control = Alt_L Alt_R

------------------

in eine Datei (z.B. names Xmodmap) schreiben.
und im terminal mit

xmodmap Xmodmap

aktivieren. In diesem Fall setze ich voraus das die Zuordnugn keycode zu Symbol vorher schon sinnvoll ist.

Variante zwei: Veränderng der Zuordnung der Symbole zu den keycodes (im Beispiel verwende ich die Keycodes meines Keyboard hier, kann bei dir anders sein, s.u.):

die Keycodes bei mir sind:
links: control=37, Windows=115, Alt=64
rechts Alt=113, Windows=116, Control=109

(ich arbeite beruflich an einem Linux-PC mit "Windows"-Tastatur, ich setzte in den Beispielen mal Windows=Befehl/Apfel/Propeller, auch wenn die Anordnung anders ist)

-------------------------

keycode 37 = Alt_L
keycode 64 = Control_L
keycode 113 = Control_R
keycode 109 = Alt_R

------------------------------

Das ganze in eine Datei und wie oben aktivieren.
In diesem Fall setze ich voraus das die Zuordnugn Symbol zu Funktion vorher schon sinnvoll ist.


Variante 3: Auf Nummer sicher

-------------------------

keycode 37 = Control_L
keycode 64 = Alt_L
keycode 113 = Alt_R
keycode 109 = Control_R

clear control
clear mod1
add mod1 = Control_R Control_L
add control = Alt_L Alt_R

------------------------------

Weiteres Vorgehen wie oben.

Alles klar? Soweit.


Dann weiter, die Befehlstaste ist unter Unix ursprünglich nicht vorgesehen. aber es gibt die Tastatursymbole 'Super_L' und 'Super_R' die man dafür verwenden kann.

Damit könnte man dann folgendes machen:

-------------------------

keycode 37 = Control_L
keycode 115 = Super_L
keycode 64 = Alt_L
keycode 113 = Alt_R
keycode 116 = Super_R
keycode 109 = Contorl_R

clear control
clear mod1
add mod1 = Control_R Control_L
add control = Super_L Super_R

------------------------------

Falls du noch einen zweite Tastaturebene haben willst, meld dich noch mal. Dann erklär ich auch das noch (gerne). Nur für jetzt würde es wohl zuviel

Nun noch ein letztes. Wie bekommst du den keycode einer Taste.
Dazu öfnnest du ein Terminal und startest das program xev

Das öfnnet ein Fenster, in das du die Maus bewegst. Während dessen erscheinen massig Meldungen im Terminal (das sind die X-Events, die deine Mausbewegung verursacht).Im fenster angekommen tippst du auf deie Taste, deren keycode du willst und schreibst ihn dir auf paier auf (auf dem rechner wird es schwierig, weil bevor du woanders hinkommst zuvielen weiter X-Events angezeigt werden)

Ein Solche Anzeige sieht z.B. so aus:

Code:
KeyPress event, serial 27, synthetic NO, window 0x3000001,
    root 0x60, subw 0x0, time 1620747168, (66,172), root:(244,409),
    state 0x0, keycode 37 (keysym 0xffe4, Control_R), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 30, synthetic NO, window 0x3000001,
    root 0x60, subw 0x0, time 1620747740, (66,172), root:(244,409),
    state 0x4, keycode 37 (keysym 0xffe4, Control_R), same_screen YES,
    XLookupString gives 0 bytes:

Hier ging es um die Taste mit dem Keycode 37, die bei mir dem Symbol 'Control_R' zugeorndet ist.


Zum Schluss:

Wenn du dir ganz sicher bist, dass deine Xmodmap-datei in Ordnung ist, logt dich noch einmal aus X11 aus und neu eine und probier sie aus. Wenn nun alles O.K. ist, dann kannst du sie in dein Homeverzeichnis als ".Xmodmap" packen (beachte den Punkt am Anfang) viele Ditributionen binden dann deren Inhalt beim Einloggen automatisch ein. Allerdings können KDe oder Gnome dies auch wieder überschrieben. In diesem Fall sind weitere Tricks nötig (melde die ggfs noch mal)

Und ein allerletztes:

Das beschriebene gilt nur fürt X11, aber nicht für die nichtgrafischen Textkonsolen. Da geht ähnliches, aber mit anderen Kommandos (sind leider zwei extra Welten).

ICh hoffe das war jetzt klarer. Wenn nciht frag noch mal nach (am besten mit Verweise darauf wo es unklar wird).

Bis dann

R"udiger
 
  • Like
Reaktionen: 1 Person

Lars

Gast
Hossa, nach diesem Beitrag sollten wirklich keine Fragen mehr offen sein ... :) Ich werde mich asap nochmal an die Umsetzung wagen und mich hernach auf jeden Fall wieder melden.
 

Lars

Gast
[SIZE=-1]Halleluja, es ist vollbracht ... 8)

Dank der guten Anleitung habe ich das Anpassen soweit hinbekommen, mein erster Versuch war im Übrigen am Aktivieren des neuen Tastaturlayouts gescheitert.

Was mir jetzt noch fehlt, ist der entscheidende Tipp in Sachen Sonderzeichen, vielleicht hat ja noch jemand die nötige Geduld. Euro- und At-Symbol sowie die diversen Klammervarianten finde ich zu meiner Verwunderung bereits an ihrem vertrauten Platz. Lediglich die spitzen Klammern liegen auf der falschen Taste, en detail auf jender unterhalb der Escape-Taste (Accent Hau-mich-tot und Grad-Symbol). Ich schätze mal, das fällt unter die Konfiguration der zweiten Tastaturebene, da ja schliesslich zwei Tasten zu bedienen sind, oder?

Schon mal vielen Dank bis hierher! :)
[/SIZE]
 

rgoetz

Boskoop
Registriert
09.03.07
Beiträge
41
Hallo,

Zum einen kannst du einer Taste das Key-Symbol 'Mode_switch' zuweisen. Wenn du diese Taste drückst wird die zweite Tastaturebene aktiviert. Du muss acuh nix weiter tun um diese Funktion einzubinden. Die Zuweisung des Symbols reicht hier (anders als bei ALT, Shift oder Control)

Zum anderen kannst du jedem Keycode (ausser solchen, denen du eine "Funktion" zugewiesen hast)
vier Symbole zuweisen, und zwar

ohne modifiert, mit Shift, mit Mode_switch, mit Mode-Switch und Shift

als z.B. um das ü udn Ü bei einer amerikanischen Tastatur auf die [ / { -Taste zu bekommen (ich bevorzuge die amerikanische Layout aber mit Zusatztasten ür die deutschen Sonderzeichen):

keycode 34 = bracketleft braceleft udiaeresis Udiaeresis

usw.

Ich hoffe, dass hilft dir weiter.

BTW:

mit

xmodmap -pm

kann man sich das aktuelle modifier-Set angucken, und mit

xmodmap -pke
bzw.
xmodmap -pke | less

kann man sich die aktuelle Keycode-Symbol Zuweisung angucken. Bei diesem Befehl stimmt sogar die Syntax sodass man daraus direkt eine Xmodmap-Datei machen kann (allerdings ohne Anpassung der Modifier)

Bis dann

R"udiger
 

Lars

Gast
Herrlich, jetzt klappt alles wie gewünscht -- besten Dank für deine Geduld! :)

Der Vollständigkeit halber nachstehend noch die von mir auf Basis dieses Threads erstellte .Xmodmap, möglicherweise kann diese ja nochmal irgendwann jemand gebrauchen.

Code:
keycode 37  = Control_L
keycode 64  = Alt_L
keycode 113 = Alt_R
keycode 115 = Super_L
keycode 116 = Super_R

keycode 94  = asciicircum degree    # Gradzeichen, Accent Circumflex und 
keycode 49  = less greater          # spitze Klammern korrekt zuordnen

clear Lock                          # Feststelltaste deaktivieren
clear control                       # Zuordnung Control-Taste aufheben
clear mod1                          # Zuordnung Alt-Taste aufheben

add control = Super_L Super_R       # Linke und rechte Befehl-Taste neu zuordnen
add mod1    = Control_L             # Linke Control-Taste neu zuordnen