Einstellungen für .login-conf funktionieren nicht

cabriofahrer

Well-Known Member
Hatte das noch nie ausprobiert, da ich immer alles auf Englisch benutze, aber jetzt wollte ich doch mal die .login_conf für einen anderen PC auf Deutsch setzen und wenn ich Kap. 22.2 richtig verstehe, brauche ich für ein bestimmtes Benutzerkonto nur

Code:
me:\
       :charset=iso-8859-1:\
       :lang=de_DE.ISO8859-1:

machen.
Nach einem Aus- und Einloggen funktioniert das aber nicht. Spielt sddm dabei eine Rolle, der automatisch immer nur auf "us" ist?
 
Bei Änderung der .login_conf muss man hernach cap_mkdb laufen lassen, damit die Änderungen übernommen werden; siehe auch man-Page zu login.conf:
The default /etc/login.conf shipped with FreeBSD is an out of the box
configuration. Whenever changes to this, or the user's ~/.login_conf,
file are made, the modifications will not be picked up until cap_mkdb(1)
is used to compile the file into a database.
Haste das nach der Änderung durchgeführt?
 
Im Handbook wird das nur genannt für den Fall, dass man die zentrale login.conf ändert. Habe jetzt aber trotzdem mal $cap_mkdb .login_conf durchgeführt und trotzdem nichts.
 
Ich erinnere mich noch dunkel daran, dass man im sddm irgendwo eine "User session" oder so was aehnliches auswaehlen kann. Dann nutzt er auch die .xinitrc und evtl. auch die .login_conf. Ist leider schon zu lange her aber einen Versuch ist es wert.
 
Poste doch mal die Ausgabe von "locale", einmal in einer Konsole unter MATE, einmal in einer richtigen Konsole.
 
nun, so einfach ist das alles nicht. Aber es gibt hier Beiträge dazu. Schau mal nach "alles in Deutsch" oder so ähnlich

zur login.conf: die globale /etc/login.conf brauchte früher immer dieses cap_mkdb, ich glaube, das ist nun auch anders geworden. @Yamagi hatte neulich noch was dazu erklärt, wenn ich mich recht entsinne.
Die lokale .login.conf eines Users gilt für das Einloggen mit der shell und setzt eine Auswahl an bereits möglich gemachten localen. Bei weitem nicht alle Programme nutzen diese Variablen.

Nebenbei: es spricht nichts gegen die Verwendung von UTF
 
Poste doch mal die Ausgabe von "locale", einmal in einer Konsole unter MATE, einmal in einer richtigen Konsole.

Ich bin jetzt nicht mehr an diesem Rechner, aber die Ausgaben konnte ich noch sehen. In MATE:

Code:
$ local
local: Not in a function
$ locale
LANG=C
LC_CTYPE="C"
LC_COLLATE="C"
LC_TIME="C"
LC_NUMERIC="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=
$

In der richtigen Konsole war die Ausgabe anders (kann ich jetzt nicht wiedergeben) aber die Spracheinstellungen waren dort so, wie gewollt. Heißt das, dass MATE auf die Einstellungen der .login_conf nicht reagiert?
 
Du musst evtl die ~/.profile ändern! Folgendes hinzufügen:
Code:
CHARSET=iso-8859-1; export CHARSET
LANG=de_DE.ISO8859-1; export LANG
 
Nebenbei: es spricht nichts gegen die Verwendung von UTF
Nebenbei, es spricht sogar einiges gegen die Verwendung von 8bit Codierungen heutzutage :D
IMHO das Hauptproblem ist die Einfachheit des typischen Unix VFS: Dateinamen sind schlicht "octet-streams". Da hat man dann großen Spaß mit allen nicht-ASCII Zeichen wenn man mal die Codierung in der Locale ändert. Deshalb lieber gleich UTF8 nehmen, das ist heute quasi der Standard und kann alle Zeichen abbilden.
Du musst evtl die ~/.profile ändern! Folgendes hinzufügen:
Guter Hinweis! Wenn man nämlich einen "display manager" nutzt, wird login gar nicht verwendet, daher "zieht" die login.conf dann auch nicht. Die sollte man natürlich trotzdem auch entsprechend anpassen, weil sie für logins an der Konsole relevant ist.
 
Heißt das, dass MATE auf die Einstellungen der .login_conf nicht reagiert?

Ja, siehe auch den Hinweis von Zirlas
Guter Hinweis! Wenn man nämlich einen "display manager" nutzt, wird login gar nicht verwendet, daher "zieht" die login.conf dann auch nicht. Die sollte man natürlich trotzdem auch entsprechend anpassen, weil sie für logins an der Konsole relevant ist.

Oder Du stellst MATE direkt um, die werden auch dafür irgendwo Config Files haben. Und nimm wirklich direkt UTF-8.
 
nochmal: das Thema ist recht umfassend und du solltest die älteren Threads dazu suchen.
Ich füge hier meine alte (veraltete?) Mitschrift mal ein, die mir damals (so mit FreeBSD7.x ?) weiter half. So ganz wirklich hat sich grundsätzlich nichts geändert. Es gibt immer noch zahlreiche Orte, an denen korrekt gedreht werden muss/sollte und diverse Variablen vererben sich unterschiedlich und es gibt fast immer lokale und globale settings. Man muss darüber auch wirklich erst nachdenken. Will ich etwa meinen root auf german setzen? ist denn alles im single-user-Mode vorhanden, was german so braucht? Das soll nur ein Beispiel sein, ein anderes: da ist ein User, der nicht Deutsch will sondern meinetwegen Französisch oder Koreanisch. Soll ich trotzdem global vielleicht auf DE setzen, weil die meisten User das wollen?
Also, mein alter Text, "alles in Deutsch", ohne Gewähr und mit dem Hinweis, dass manche SW nochmal eigene Settings hat, womöglich auch dein mate:
Code:
/etc/rc.conf
keymap="de"

/etc/login.conf
german|German Users Accounts:\
        :charset=UTF-8:\
        :lang=de_DE.UTF-8:\
        :tc=default:

/etc/login.conf.db anlegen: cap_mkdb /etc/login.conf

german in /etc/master.passwd mit vipw eintragen
(weil ich den nicht kann, mache ich es mit ee und rufe danach vipw auf und speichere ab)
vipw /etc/master.passwd
user:$1$ZQy8cjlU$otNcIcr1NfPN5i7bnn.sY.:1001:0:german:0:0:name user:/home/user:/bin/csh

Lokalisierung für csh/tcsh
Die Lokalisierung für csh wird systemweit in der /etc/csh.login eingestellt.
Ich habe das auch gerne in der /etc/csh.cshrc gemacht.
setenv LC_ALL de_DE.UTF-8
setenv LANG de_DE.UTF-8
setenv MM_CHARSET UTF-8

Lokalisierung für sh/bash
Die Lokalisierung für sh und bash wird systemweit in der /etc/profile eingestellt.
LC_ALL=de_DE.UTF-8; export LC_ALL
LANG=de_DE.UTF-8; export LANG
MM_CHARSET=UTF-8; export MM_CHARSET

Es gibt auch lokale Einstellungen pro User, die manche Anwendungen auswerten: ~/.login und ~/.cshrc
Manche Anwendungen sehen auch nach einer ~/.login.conf oder einer ~/.login_conf
Die Syntax ist:

.cshrc
setenv LC_ALL de_DE.UTF-8
setenv LANG de_DE.UTF-8
setenv MM_CHARSET UTF-8

.login
me:\
    :charset=UTF-8:\
    :lang=de_DE.UTF-8:


X in der /etc/X11/xorg.conf
Section "InputDevice"
    Identifier     "Keyboard0"
    Driver         "kbd"
    Option         "XkbModel" "pc105"
    Option         "XkbLayout" "de"
    Option         "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection


KDM
dann noch später in der /usr/local/share/config/kdm/Xsession ganz oben eingefügt:
. /etc/profile
. ~/.profile
 
Es wäre aber doch "MM_CHARSET=UTF-8"; export MM_CHARSET und nicht nur "CHARSET", in der .profileoder?
Na, hast du es probiert?

Ich hatte es - so wie ich es dir geschrieben hatte - unter GhostBSD mehrfach anwenden müssen (englisches System beim neuangelegten Nutzer; einer von div. kleinen Bugs) und es hatte stets funktioniert.
 
Ich denke, der Hinweis bezüglich der .profile ist das, was ich eigentlich gesucht hatte: Dass der DE und die Programme eines bestimmten Benutzerkontos auf eine andere Sprache gestellt werden können. Wie ich festgestellt habe, funzt das dann auch für den DE und einige Programme wie z.B. xfburn. Für Firefox und LibreOffice jedoch nicht. Ich nehme an, einige Programme brauchen dazu extra Sprachpakete. Erwähnenswert auch, dass PCDM über einen netten blauen Button verfügt, mit dem man vor dem Login die Sprache auswählen kann. Allerdings ist mit PCDM die Shutdown-Funktion des DE ausgegraut (vielleicht weil er sudo will, was er als Abhängigkeit auch mitinstalliert). Da mir das aber wichtiger ist, nehme ich doch lieber SDDM, da funktioniert das mit dem Shutdown, weil mein User schließlich der operator-Gruppe angehört.

Na, hast du es probiert?

Ja, ich habe die Zeilen genau so übernommen und es hat geklappt. Im Handbook ist die Syntax für die .profile aber eben mit "MM_" angegeben.
 
Zurück
Oben