[gelöst] Wie Tastaturbelegung dauerhaft ändern?

Hast Du Probleme mit Hardware, die durch die anderen Foren nicht abgedeckt werden? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
borish
Beiträge: 195
Registriert: 31.08.2009 23:47:21

[gelöst] Wie Tastaturbelegung dauerhaft ändern?

Beitrag von borish » 08.05.2019 13:20:45

Ich habe eine .Xmodmap angelegt, um die Shift-Lock-Taste zu eine F13-Taste zu ändern. Aber die Einstellungen merkt sich Gnome nicht dauerhaft, ich muss xmodmap manuell ausführen. Wie bekomme ich die Änderungen dauerhaft?
Zuletzt geändert von borish am 08.05.2019 18:04:26, insgesamt 1-mal geändert.

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: Wie Tastaturbelegung dauerhaft ändern?

Beitrag von tobo » 08.05.2019 14:10:17

Aus der manpage:
It is usually run from the user's session startup script to configure the keyboard according to personal tastes.

Somit wäre ~/.xsession ein richtiger Ort:

Code: Alles auswählen

[ -f "$HOME/.Xmodmap" ] && /usr/bin/xmodmap "$HOME/.Xmodmap"

borish
Beiträge: 195
Registriert: 31.08.2009 23:47:21

Re: Wie Tastaturbelegung dauerhaft ändern?

Beitrag von borish » 08.05.2019 14:30:55

Ich habe eine .xsession mit obigem Inhalt angelegt, diese bleibt aber wirkungslos. Ich vermute, dass gdm die .xsession nicht liest.
Zuletzt geändert von borish am 08.05.2019 15:01:26, insgesamt 1-mal geändert.

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: Wie Tastaturbelegung dauerhaft ändern?

Beitrag von tobo » 08.05.2019 14:46:52

.xsession nicht .Xsession. Ändere das mal und probiere. Wenn das nicht funktioniert, existiert eine ~/.xinitrc bei dir? Bin mir komplett unsicher über das Startverhalten dieser Displaymanager.

borish
Beiträge: 195
Registriert: 31.08.2009 23:47:21

Re: Wie Tastaturbelegung dauerhaft ändern?

Beitrag von borish » 08.05.2019 15:02:29

Ich hatte mich verschrieben, die Datei heißt .xsession. Ich habe keine .xinitrc.

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: Wie Tastaturbelegung dauerhaft ändern?

Beitrag von tobo » 08.05.2019 15:13:19

Geh' einfach mal hier die die 3 Dateien von oben nach unten durch. Ich nehme aber mal an, dass du den Login benötigst.
GDM
Be careful with GDM, it will run all script as root, a different error code than 0 could limit your log in capability and GDM will wait for your script to finish making it irresponsive as long as your command run.
For complete explanation read the documentation.

Before Login
If you need to run commands before a user logged-in you can edit the file:
/etc/gdm3/Init/Default.
This file is a shell script that will be executed before the display manager is displayed to the user.

After Login
If you need to execute things once a user has logged in but before its session has been initialize edit the file:
/etc/gdm3/PostLogin/Default If you want to execute command after the session of session initialization (env, graphical environment, login...) edit the file:
/etc/gdm3/PreSession/Default
https://unix.stackexchange.com/question ... n-on-linux

EDIT: $HOME kannst du natürlich nur nach Login verwenden. Am einfachsten ausschreiben: /home/<USERNAME>

KP97
Beiträge: 3433
Registriert: 01.02.2013 15:07:36

Re: Wie Tastaturbelegung dauerhaft ändern?

Beitrag von KP97 » 08.05.2019 15:18:54

Schreib' das mal in Deine .bashrc

Code: Alles auswählen

if [ "$TERM" == "xterm" ]; then
          xmodmap ~/.Xmodmap
fi

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: Wie Tastaturbelegung dauerhaft ändern?

Beitrag von tobo » 08.05.2019 15:27:35

Was aber keine so tolle Idee wäre:
1. würde das die Bash voraussetzen, 2. würde es bei jeder interaktiven Nicht-Login-Sitzung ausgeführt werden und 3. setzt es xterm voraus.

borish
Beiträge: 195
Registriert: 31.08.2009 23:47:21

Re: Wie Tastaturbelegung dauerhaft ändern?

Beitrag von borish » 08.05.2019 15:41:47

In der ersten Datei steht

Code: Alles auswählen

sysmodmap=/etc/X11/Xmodmap

XMODMAP=`gdmwhich xmodmap`
if [ "x$XMODMAP" != "x" ] ; then
  if [ "x$GDM_PARENT_DISPLAY" = "x" ]; then
    if [ -f $sysmodmap ]; then
      $XMODMAP $sysmodmap
    fi
  else
    ( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $XMODMAP -pke ) | $XMODMAP -
  fi
Am Ende geht es weiter mit

Code: Alles auswählen

SETXKBMAP=`gdmwhich setxkbmap`
Allerdings gibt es auf meinem Stretch weder gdmwhich noch /etc/X11/Xmodmap.

Es scheint, dass in keiner der Dateien $HOME/.xsession oder .Xmodmap verwendet wird.

KP97
Beiträge: 3433
Registriert: 01.02.2013 15:07:36

Re: Wie Tastaturbelegung dauerhaft ändern?

Beitrag von KP97 » 08.05.2019 15:48:12

Wir reden doch von einer selbstangelegten Punktdatei .Xmodmap in Deinem Home?
@tobo
Eine .bashrc ist in jedem System, und xterm muß nicht installiert sein.
Das hat vor Jahren bei mir immer problemlos funktioniert, auch mit einem anderen Terminal.

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: Wie Tastaturbelegung dauerhaft ändern?

Beitrag von tobo » 08.05.2019 16:08:32

Die ~/.bashrc wird ja aber nicht zwingend ausgeführt. Und wieso sollte das Ausführen des Befehls an das Setzen der Variable $TERM auf xterm gekoppelt sein? Das macht ja überhaupt keinen Sinn. Bei mir steht $TERM z.B. auf rxvt-unicode und anstatt bash benutze ich häufig mksh.

@borish: Mit durchgehen meinte ich, du hättest die obige Quelltextzeile nacheinander in den 3 Dateien unten anfügen sollen und dann ausprobieren, ob's nach einem Neustart funktioniert!?
Dann jetzt so: Kopiere mit Root-Rechten

Code: Alles auswählen

[ -f "$HOME/.Xmodmap" ] && /usr/bin/xmodmap "$HOME/.Xmodmap"
an das Ende der Datei /etc/gdm3/PreSession/Default und dann die grafische Oberfläche beenden und neu starten.

borish
Beiträge: 195
Registriert: 31.08.2009 23:47:21

Re: Wie Tastaturbelegung dauerhaft ändern?

Beitrag von borish » 08.05.2019 18:01:39

@KP97: Mit .bashrc funktioniert es nicht, weil das erst gelesen wird, wenn ein Terminal geöffnet wird.

Da es offenbar keine Lösung gibt, die ohne das Hacken von Systemdateien auskommt, habe ich einfach in

Code: Alles auswählen

/usr/share/X11/xkb/symbols/de 
die Zeile

Code: Alles auswählen

key <CAPS>  { [ Caps_Lock	]	};
geändert. Das funktioniert.

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: Wie Tastaturbelegung dauerhaft ändern?

Beitrag von tobo » 08.05.2019 18:22:16

borish hat geschrieben: ↑ zum Beitrag ↑
08.05.2019 18:01:39
Da es offenbar keine Lösung gibt, die ohne das Hacken von Systemdateien auskommt, habe ich einfach in

Code: Alles auswählen

/usr/share/X11/xkb/symbols/de 
die Zeile

Code: Alles auswählen

key <CAPS>  { [ Caps_Lock	]	};
geändert. Das funktioniert.
Bis zum nächsten Update dieser Datei, durch die Paketverwaltung. In /etc liegen Konfigurationsdateien, die systemweite Gültigkeit haben und zum Ändern vorgesehen sind. Wo ist dein Problem, was funktioniert nicht dabei? Aber, wenn's ja funktioniert ist es ok...

borish
Beiträge: 195
Registriert: 31.08.2009 23:47:21

Re: [gelöst] Wie Tastaturbelegung dauerhaft ändern?

Beitrag von borish » 08.05.2019 19:40:48

Deine Lösung habe ich getestet, sie hat aber auf meinem Debian Stretch nicht funktioniert.
Ja, eine Lösung ohne Ändern von Systemdateien wäre mir auch lieber.

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: [gelöst] Wie Tastaturbelegung dauerhaft ändern?

Beitrag von tobo » 08.05.2019 20:23:38

Dann würde ich an deiner Stelle diese Lösung erstmal beibehalten, das [gelöst] im Thread-Titel entfernen und darauf warten, dass sich jemand mit Ahnung meldet. Das sollte eigentlich ein Allerweltsproblem für einen gdm-Benutzer bzw. generell einen Benutzer eines Displaymanagers sein!?

Antworten