Sie sind nicht angemeldet.

1

27.03.2010, 15:00

Xmodmap und Fluxbox

Hallo liebes Forum ich habe folgende Frage, wäre sehr nett, wenn mir jemand helfen könnte:

Ich will mit Xmodmap etwas an meinem Tastaturlayout verändern. Ich will aus der Windowstaste ein zweites AltGr machen und die CapsLock-Taste mit der Escape-Taste vertauschen.

Soweit ist das kein Problem, ich habe mir dafür ein Skript geschrieben. Wenn ich das manuell ausführe, funktioniert es auch perfekt.

Jetzt wollte ich aber, dass das Skript über die Autostart-Funktion von Fluxbox gestartet wird.

habe dafür in der Datei .fluxbox/init die Zeile

Quellcode

1
session.screen0.rootCommand:    sh ~/.fluxbox/autostart.sh
wobei in autostart.sh der Befehl

Quellcode

1
xmodmap /home/mela/.Xmodmap &
ausgeführt wird.

Aus irgendeinem Grund kommt, wenn der Befehl auf diese Art ausgeführt wird, die Tastaturbelegung so durcheinander, dass die ganzen Sonderzeichen, wie {, [, @ usw. nicht mehr richtig funktionieren (stattdessen kommt µ, Ü oder ähnliches).

Habe es auch mal mit der Datei .fluxbox/startup versucht, klappt auch nicht.

Hat jemand eine Idee?

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 330

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

2

28.03.2010, 00:06

http://fluxbox-wiki.org/index.php?title=…he_startup_file
Funktioniert xmodmap /home/mela/.Xmodmap korrekt wenn Du es in z. B. einem XTerm eingibst nachdem Fluxbox gestartet ist?
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

3

28.03.2010, 12:34

Vielen Dank für deine Antwort.

Ich habe es auch so versucht wie in dem Link beschrieben, aber da ergibt sich das gleiche Problem.

Selbst wenn ich die Zeit in dem Skript unter "How do I start an application after fluxbox starts" auf 10 Sekunden erhöhe, funktioniert es nicht, aber dann nur wenn ich vorher keine Taste drücke. Drücke ich dagegen irgendeine Taste bevor der Befehl ausgeführt wird, klappts. Komischer Effekt, oder!?

Das wäre natürlich ein Workaround, aber ein ziemlich doofer, um ehrlich zu sein....

Und ja, wenn ich den Befehl xmodmap /home/mela/.Xmodmap nach dem Start von Fluxbox in XTerm eingebe funktioniert es korrekt.

4

28.03.2010, 17:48

Ich hätte da Ideen, wie man den Workaround noch doofer machen kann:
  • Man könnte versuchen mit xmacro eine Tastatureingabe zu simulieren, bevor der Befehl ausgeführt wird.
  • Man könnte xmodmap in einem eigenen Terminal starten ("xterm -e 'xmodmap ...'").
  • (Irgendwie gefällt es mir nicht, dass in dem Start-Script "&" für Background-Jobs verwendet wird, aber kein "disown" oder "nohup" dazu, aber vllt. soll das sicherstellen, dass am Ende des Scripts alle Programme mit einem SIGHUP ins Gras beißen sollen und das Ende des Scripts wird irgendwie auf das Ende der Session verzögert... Ich weiß es nicht...)

5

30.03.2010, 00:25

Danke für deine Hilfe.

Punkt 1: Problem bleibt bestehen.
Punkt 2: Gute Idee, hatte große Hoffnung, dass das funktioniert aber leider nein (wie Low-Level ist das???) ... Habe in meiner .fluxbox/startup vor dem xmodmap eingefügt:

Quellcode

1
 echo "KeyStrPress a KeyStrRelease a" | xmacroplay :0
aber kein Erfolg.
Punkt 3: Ich finde das irgendwie logisch. So wie du sagt: Wenn Fluxbox beendet wird, sollen die in startup gestarteten Prozesse nicht weiterlaufen.

PS: Warum ist hier eigentlich so wenig los, wo man doch so schnell und kompetent geholfen bekommt? ;-)

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 330

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

6

30.03.2010, 00:55

Lass mal das "&" am Zeilenende des Aufrufes von xmodmap weg.
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

7

30.03.2010, 18:05

Auch dann bleibt das Problem bestehen.

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 330

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

8

30.03.2010, 18:13

Wie startest Du Flubox? GDM? KDM? Beende mal alle Displaymanager und Xorg so das keine grafische Oberflaeche mehr laeuft und erstell eine ~/.xinitrc mit folgendem Inhalt:

Quellcode

1
2
/path/to/xmodmap /home/mela/.Xmodmap
exec /path/to/fluxbox

Anschliessend gibt startx >$HOME/startx.log 2>&1 ein. Wenn es dann funktioniert, zickt irgendein anderes Script vom Displaymanager/Xserver/.. dazwischen und wenn nicht, poste die Datei ~/.startx.log hier.
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

9

30.03.2010, 19:47

funktioniert immer noch nicht.
»Mela« hat folgende Datei angehängt:
  • startx.log (11,65 kB - 17 mal heruntergeladen - zuletzt: 03.02.2011, 14:27)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Mela« (30.03.2010, 19:51)


strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 330

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

10

30.03.2010, 20:06

Zitat

Fehler beim Lesen: session.ignoreBorder
Benutze Standardeinstellung
Fehler beim Lesen: session.forcePseudoTransparency
Benutze Standardeinstellung
Fehler beim Lesen: session.tabPadding
Benutze Standardeinstellung
Fehler beim Lesen: session.styleOverlay
Benutze Standardeinstellung
Fehler beim Lesen: session.slitlistFile
Benutze Standardeinstellung
Fehler beim Lesen: session.groupFile
Benutze Standardeinstellung
Fehler beim Lesen: session.appsFile
Benutze Standardeinstellung
Fehler beim Lesen: session.tabsAttachArea
Benutze Standardeinstellung
Fehler beim Lesen: session.modKey
Benutze Standardeinstellung
Failed to read: session.screen0.imageDither
Setting default value
[...]

So wie ich das sehe werden die Konfigurationsdateien von Fluxbox nicht korrekt/komplett abgearbeitet. Hat ~/.fluxbox/ incl. aller Dateien die korrekten Rechte? Versuch mal

Quellcode

1
mv ~/.fluxbox ~/fluxbox-backup

Anschließend starte Fluxbox nochmal mit startx >$HOME/startx.log 2>&1
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

11

30.03.2010, 20:55

er sagt dann nur, dass er die Standardeinstellungen nicht finden kann. Ansonsten kommen die gleichen Fehlermeldungen und das Problem bleibt.
»Mela« hat folgende Datei angehängt:
  • startx.log (11,76 kB - 9 mal heruntergeladen - zuletzt: 03.02.2011, 14:27)

12

31.03.2010, 21:35

Noch eine Frage: Ist es möglich direkt ein eigenes xkb-Layout zu erstellen? Vielleicht ist das ja die Lösung...

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 330

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

13

31.03.2010, 22:12

Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

14

02.04.2010, 15:08

Danke für die Links.

Also xkbcomp $DISPLAY xkb.dump hat sich zuerst einmal mit einer Fehlermeldung

Quellcode

1
2
3
Warning:          Could not load keyboard geometry for :0
                  BadAlloc (insufficient resources for operation)
                  Resulting keymap file will not describe geometry
beendet.

Nur wenn ich vorher mit setxkbmap -layout de -variant nodeakeys das Tastaturlayout erneut geladen habe, hat es geklappt.

Ich habe es jetzt so gemacht:
1. In die Datei /usr/share/X11/xkb/symbols/de am Ende eingefügt:

Quellcode

1
2
3
4
5
6
partial alphanumeric_keys
xkb_symbols "caps_esc" {
    include "de(nodeadkeys)"
    name[Group1] = "Germany - 2";
    key <CAPS> { [ Escape ] } ;
};

2. Das Layout dann mit setxkbmap -layout de -variant caps_esc geladen. Den Befehl in .fluxbox/startup eingefügt, weil ich da schon alles zusammen habe, was nach nach dem Login ausgeführt werden soll (man könnte natürlich auch xorg.conf ändern oder es in die .xinitrc einfügen usw.)

Jetzt funktioniert es... ENDLICH.

Vielen Dank noch mal für eure Hilfe!

Melanie

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Mela« (02.04.2010, 15:09)


strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 330

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

15

02.04.2010, 20:57

Raffiniertes Maedel :+++:
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

16

06.04.2010, 15:55

hehe, danke.
Aber mir ist aufgefallen, man muss es doch über xorg.conf machen. Das laden mit setxkbmap während dem Start von fluxbox führt wieder zu anderen Problemen.

Thema bewerten