💾 Archived View for moribundo.flounder.online › blog › fbsd › 003_que_hacer_freebsd_2.gmi captured on 2023-04-26 at 13:05:36. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-03-20)
-=-=-=-=-=-=-
Como sabemos, la variable LANG establece la configuración regional del sistema. El idioma y el código de país afectan el idioma predeterminado de la aplicación, el formato de números, el formato de fecha y hora, la intercalación de cadenas, la configuración de moneda y más.
Si esta varible la dejamos predeterminada como LANG=C no dispondremos de carácteres unicode (acentos, ñ, ç, símbolos varios, etc) en favor del más limitado US ASCII
Busca las que tienes configuradas actualmente en tu sistema:
locale
Y busca las regionales disponibles en tu sistema. Yo uso el valor regional es_ES.UTF-8:
locale -a | grep UTF-8
Edita /etc/login.conf para agregar la configuración correcta. Los shells de inicio de sesión heredarán las variables de entorno definidas aquí. La clase "default" es la que vale para todos los usuarios. Cambiaré el valor de las 2 últimas líneas de la sección:
NOTA: Es muy importante que las líneas acaben con \ menos la última
Importantísimo también reconstruir la base de datos de inicio de sesión, ya que el sistema no lee desde el archivo los valores, si no que los copia a una base de datos:
cap_mkdb /etc/login.conf
Listo, ya lo tienes... ¿seguro?.
Si todo te va bien, puedes saltarte esta sección.
Si en un sistema hay varios usuarios/as/es de diversas lenguas, quizá lo comentado anteriormente no sería lo más ideal, así que se puede crear un login.conf para cada user.
Ojo, porque en este caso el archivo no se llama login.conf, si no .login_conf (punto inicial y guión bajo). El archivo llevaría lo mismo:
nano ~/.login_conf default:\ :charset=UTF-8:\ :lang=es_ES.UTF-8:\ :tc=default:
Y como antes, hay que actualizar la base de datos:
cap_mkdb ~/.login_conf
Si todo va bien, ya podrías dejarlo aquí y seguir en la siguiente sección, pero oh, malvado locale, nunca funcionas a la primera, maldito !!!
Esto vale para la consola, pero a veces no es suficiente, así que puedes editar el archivo .profile y añadir lo siguiente al principio:
Peeeeeero los entornos de escritorio son puñeteros, y quieren su propia configuración, así que hay que editar los guiones de inicio y añadir:
NOTA: Usa .xinitrc para iniciar desde consola, o .xsession para iniciar desde un DM como slim, lightdm, gdm, etc...
Y para conseguir un control más preciso de la lengua, los que entienden sugieren editar el /etc/profile:
NOTA: Aquí no está la variable LC_LANG
Y aun más bestia, si notas algún problema de codificación rara, puedes añadir a /etc/profile:
Si tienes problemas con el teclado, añade a ~/.xinitrc:
Los locale son jodidos, a veces va, a veces se resiste. Me hice un té de hierbas con mi cerebro cuando se licuó devanádome los sesos intentando que los programas no salieran desfigurados y que Rofi funcionara y no me diera el error "Rofi-WARNING **: 13:45:08.713: Failed to set locale"
Para estas cosas, hay que setear la variable LC_ALL a modo US ANSII: export LC_ALL="C", pero de este modo pierdes la traducción de los programas, así que me dio por poner esa variable con 2 valores, y problema resuelto.
Te dejo mi archivo .xinitrc
export LC_ALL="C"
export LC_ALL=es_ES.UTF-8
export LC_LANG=es_ES.UTF-8
export LANG=es_ES.UTF-8
export MM_CHARSET=UTF-8
export LC_CTYPE=es_ES.UTF-8
export LC_MESSAGES=es_ES.UTF-8
#########################
/usr/local/bin/setxkbmap -model pc105 -layout es
numlockx &
exec ck-launch-session dbus-launch openbox-session
Si quieres que al meter un pendrive se automonte y muestre su contenido, hay que instalar automount.
pkg install automount
Edita el archivo /usr/local/etc/automount.conf. Seguramente no existe, créalo y llénalo con esto:
NOTA: Yo he puesto en FM pcmanfm como gestor de archivos, pero puedes poner Dolphin, Nautilus o el que uses. Deberás poner tu usuario en USER
Edita ahora /etc/sysctl.conf y añade:
Y ya debería funcionar. Me costó mucho menos que en GNU/Linux.
Si tienes algún disco NTFS puedes añadir el automount. Edita el /boot/loader.conf y añade:
Y en /etc/rc.conf añade:
Y reinicia el sistema de archivos:
/etc/rc.d/devd restart
Ahora carga el módulo fusefs y recarga de nuevo:
kldload fusefs /etc/rc.d/devd restart
Posiblemente no puedas montar nada o quizá puedas montarlos pero como solo lectura. Para evitarlo hay que darle permisos a los dispositivos. Edita /etc/devfs.conf
# Allow all users to access optical media
perm /dev/acd0 0666
perm /dev/acd1 0666
perm /dev/cd0 0666
perm /dev/cd1 0666
# Allow all USB Devices to be mounted
perm /dev/da0 0666
perm /dev/da1 0666
perm /dev/da2 0666
perm /dev/da3 0666
# Misc other devices
perm /dev/pass0 0666
perm /dev/xpt0 0666
perm /dev/uscanner0 0666
perm /dev/video0 0666
perm /dev/dvb/adapter0/dvr 0666
Para los dispositivos que se iniciarán después del arranque, hay que editar /etc/devfs.rules:
[devfsrules_common=7]
add path 'ad[0-9]\*' mode 666
add path 'ada[0-9]\*' mode 666
add path 'da[0-9]\*' mode 666
add path 'acd[0-9]\*' mode 666
add path 'cd[0-9]\*' mode 666
add path 'mmcsd[0-9]\*' mode 666
add path 'pass[0-9]\*' mode 666
add path 'xpt[0-9]\*' mode 666
add path 'ugen[0-9]\*' mode 666
add path 'usbctl' mode 666
add path 'usb/\*' mode 666
add path 'lpt[0-9]\*' mode 666
add path 'ulpt[0-9]\*' mode 666
add path 'unlpt[0-9]\*' mode 666
add path 'fd[0-9]\*' mode 666
add path 'uscan[0-9]\*' mode 666
add path 'video[0-9]\*' mode 666
Y activar las nuevas reglas editando /etc/rc.conf:
Y hasta quí la configuración general. Seguramente tú tengas otros dispositivos o características concretas que necesiten de otras configuraciones, pero por la red hay bastante info (en inglés, eso si).
Tags #freebsd