Seite 1 von 1

Tastenbezeichnung unter Q3

Verfasst: 15.10.2004, 15:47
von skyjaker
Hi Leute,

wie kann ich die Taste "Alt Gr" unter Q3 binden?

Verfasst: 15.10.2004, 16:46
von whatever
im config menu binden und dann nachschauen, was er in die cfg geschrieben hat? :rolleyes:

Verfasst: 15.10.2004, 16:49
von skyjaker
so schlau war ich auch, nur funktioniert die taste im config menu nicht

Verfasst: 15.10.2004, 17:13
von 1337 gamestar-kiddie
Ich glaube altgr kann man nicht seperat binden, es wird mit alt synonym verwendet. Korrigiert mich wenn ich falsch liege

Verfasst: 15.10.2004, 17:30
von skyjaker
dann kann ich mit der Taste also gar nichts anfangen :(

Verfasst: 15.10.2004, 19:05
von edgewalker
Du könntest die Taste per xmodmap unter X11 mit was anderem belegen und das zugewiesene Keysym unter Q3 binden. Die Änderung könntest du vom Q3-Startskript aus vor dem Start von Quake vornehmen und nach dessen Ende wieder rückgängig machen.

Verfasst: 15.10.2004, 19:35
von skyjaker
@edgewalker

Das mit der xmodmap habe ich bereits gelesen und ausprobiert, aber es klappt nicht.

Wie würdest du das scripten?

Verfasst: 15.10.2004, 19:38
von edgewalker
Was genau hast du gemacht?

Verfasst: 16.10.2004, 02:09
von texray
Also das läuft so: du kannst per xmodmap eine Taste mit einer andern belegen... sozusagen.
Praktisch ist das so: Ich starte xev und schaue nach, welchen Keycode und welchen Keysym die AltGr Taste hat:

Code: Alles auswählen

KeyPress event, serial 24, synthetic NO, window 0x1600001,
    root 0xb5, subw 0x1600002, time 49981578, (44,56), root:(321,322),
    state 0x10, [yellow]keycode 113[/yellow] (keysym 0xfe03, [yellow]ISO_Level3_Shift[/yellow]), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False
Dann kannst du z.B. deine AltGr Taste auch zu deiner "Entf"-Taste machen (ich schätz mal die ist nicht so wichtig in Q3):

[red]xmodmap -e "keysym ISO_Level3_Shift = Delete"[/red]

und um das wieder rückgängig zu machen:

[red]xmodmap -e "keycode 113 = ISO_Level3_Shift"[/red]

Nach dem ersten Befehl verhält sich die AltGr Taste also exakt wie eine Entfernen-Taste, nach dem 2. wieder wie gehabt. Die beiden Aufrufe kannst du dann in dein Q3-Startscript (z.B. /usr/local/games/quake3/baseq3/quake3) vor bzw. nach dem Aufruf der Binary eintragen. In der Config kannst du dann einfach irgendwas auf "Entfernen" binden.

Verfasst: 16.10.2004, 11:51
von skyjaker
Also die Zeile

xmodmap -e "keysym ISO_Level3_Shift = Delete"

in /home/user/.Xmodmap eintragen

Q3 über das Script:

#!/bin/sh
# Needed to make symlinks/shortcuts work.
xmodmap /home/user/.Xmodmap
cd /usr/local/games/quake3
quake=./quake3.x86
$quake $* exit $?

starten. Und wie wird dann die

xmodmap -e "keycode 113 = ISO_Level3_Shift"

aufgerufen?

EDIT: mein Sys kennt weder ISO_Level3_Shift noch keycode 113 :ugly: - aussedem bewegt sich in Quake die Maus machmal selbstständig, ohne das ich sie bewege :catch:

Verfasst: 16.10.2004, 12:57
von texray
Du hast ein paar von meinen Anweisungen überlesen.
Zuerst mal solltest du nachschauen wie der Keycode und der Keysym der AltGr Taste auf deinem System ist, benutz dazu das Programm "xev". Es erscheint ein kleines weisses Fenster, da bewegst du einfach den Mauszeiger rein, dann drückst du AltGr und schaust im Terminal, aus dem du das Programm gestartet hast, nach der Ausgabe. Die sollte dann so ähnlich aussehen wie in meinem vorherigen Posting, die relevanten Werte hab ich gelb markiert.

Ausserdem empfehle ich, die xmodmap-Aufrufe nicht in dein .Xmodmap einzutragen, sondern in dein Quake3-Script, damit die Taste auch nur in Quake3 remapped ist - sonst kannst du beispielsweise beim normalen Betrieb von X keine Backslashes oder @s mehr eingeben, also in etwa so:

Code: Alles auswählen

#!/bin/sh
# Needed to make symlinks/shortcuts work.
xmodmap -e "keysym Keysym_deiner_Altgr_taste = Delete"
cd /usr/local/games/quake3
quake=./quake3.x86
$quake $* exit $?
xmodmap -e "keycode Keycode_deiner_Altgr_taste = keysym_deiner_altgr_taste"

Verfasst: 16.10.2004, 15:42
von skyjaker
Also die AltGR funktioniert jetzt in q3, nur funktioniert das (at)-Zeichen nicht mehr.

Das ergab xev:

keycode 113 (keysym 0xfe03, ISO_Level3_Shift)

Das

modmap -e "keycode Keycode_deiner_Altgr_taste = keysym_deiner_altgr_taste"

sieht bei mir dann so aus:

xmodmap -e "keycode 113 = ISO_Level3_Shift"

Richtig, oder? Aber wieder geht dann die AltGr in Linux nichtmehr?

Verfasst: 17.10.2004, 01:16
von texray
Der Befehl ist richtig (und ganz nebenbei bemerkt, auch genau der Befehl, den ich meinem ersten Post schon exakt so hingeschrieben hatte, wo du geantwortet hattest, dein System würde weder den Keycode noch den Keysym kennen ... :ugly: ),
wenn du den so aufrufst, sollte sich die AltGr Taste wieder wie gehabt verhalten.
Ich habs genauso gemacht und es geht...

Verfasst: 17.10.2004, 02:02
von skyjaker
naja wenn ich neu starte, dann funktioniert das @ wieder

thx@tex :D

Verfasst: 17.10.2004, 02:32
von edgewalker
Wie genau sieht das jetzt bei dir aus?

Änderst du einmal keysym und dann keycode, so wie in texrays Beispiel?

Verfasst: 17.10.2004, 18:32
von skyjaker
>so wie in texrays Beispiel?

genau

Verfasst: 17.10.2004, 20:02
von edgewalker
Das kann natürlich, wie ich selber grade merke, nicht funktionieren weil da ein exit vor dem xmodmap steht..

Versuch's mal mit

Code: Alles auswählen

#!/bin/bash
RESTORE=$( xmodmap -pke )[br]trap 'echo "$RESTORE" | xmodmap -' EXIT[br]# und dann beliebig viele Keycode-Änderungen[br]xmodmap -e 'keycode 113 = Delete'
cd /usr/local/games/quake3[br]./quake3.x86 "$@"[br]exit $?

Verfasst: 17.10.2004, 22:39
von texray
Klar mit dem Exit...
das kommt davon wenn man Codeblöcke quotet ohne sie richtig zu lesen ;)