• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

Einstellungen für .login-conf funktionieren nicht

cabriofahrer

Well-Known Member
Themenstarter #1
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?
 

turrican

Well-Known Member
#4
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?
 

cabriofahrer

Well-Known Member
Themenstarter #5
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.
 
#6
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.
 

pit234a

Well-Known Member
#8
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
 

cabriofahrer

Well-Known Member
Themenstarter #9
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?
 

Zirias

Well-Known Member
#11
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.
 

Alexco

Well-Known Member
#13
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.
 

pit234a

Well-Known Member
#15
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
 

cabriofahrer

Well-Known Member
Themenstarter #17
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.

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.