~sergio
ARTIGOSFreeBSD no sobremesa
22-07-2022
O obxectivo é crear unha guía para logo facer un «Ansible» e automatizar a instalación do «meu escritorio» usando FreeBSD como sistema base.
Así que todo empezará coa instalación do sistema base desde un pendrive. Prácticamente coas opciós por defecto e creando o usuario «sergio». Logo de reiniciar no sistema base comezamos coa «miña configuración persoal».
Configuración da consola
O primeiro é ter UTF8 activado e o «locale» españolo:
echo 'kern.vty=vt' >> /boot/loader.conf # Default global locale # For (ba)sh echo 'export LANG=es_ES.UTF-8' >> /etc/profile echo 'export MM_CHARSET=UTF-8' >> /etc/profile # For (t)csh echo 'setenv LANG es_ES.UTF-8' >> /etc/csh.login echo 'setenv MM_CHARSET UTF-8' >> /etc/csh.login
Instalación de paquetes
Instalo xorg, o driver da gráfica e a base para logo instalar dwm.
pkg update pkg upgrade pkg install xorg drm-kmod gpu-firmware-amd-kmod-polaris10 lightdm \ lightdm-gtk-greeter xautolock clipit sndio mixertui \ compton feh alacritty zathura py39-ranger \ sudo bash neovim git tmux nerd-fonts npm go
Tamén se configura o driver da gráfica para que se cargue no inicio e faigo que se lancen os servicios de «entorno gráfico» desde o arranque do sistema.
sysrc -f /etc/rc.conf kld_list+=amdgpu sysrc dbus_enable="YES" && service dbus start service lightdm enable && service lightdm start sysrc -f /etc/rc.conf sndiod_enable="YES" && service sndiod start
Grupos para o usuario
Agregamos o usuario ó grupo video para que poda usar as X, ó grupo operator para que poda reiniciar o equipo e montar unidades. Tamén creo recordar que debería estar no grupo «wheel» para poder facer «su».
pw groupmod video -m video pw groupmod video -m operator pw groupmod video -m wheel
Sudo
Configuro sudo para que os membros do grupo wheel poidan executar calquera comando como root. Executar:
visudo
Descomentar a liña
%wheel ALL=(ALL) ALL
Configuración para o audio
Podese usar «mixertui» para xestionar o audio.
kldload sysctlbyname_improved echo 'sysctlbyname_improved_load="YES"' >> /boot/loader.conf
Webcam
Non é o mesmo unha partida de rol sin webcam... :D
pkg install webcamd v4l-utils v4l_compat echo 'cuse_load="YES"' >> /boot/loader.conf pw groupmod webcamd -m sergio service devd restart sysrc -f /etc/rc.conf webcamd_enable="YES" && service webcamd start
Hay un bug na reproducción de video que fai que se vexa laggeado ás veces. Polo visto é polo procesador que teño, un Ryzen. Solvéntase así:
sysctl kern.sched.steal_thresh=1 echo 'kern.sched.steal_thresh=1' >> /etc/sysctl.conf
Reboot
Un reboot ahora é xusto e necesario.
Instalación do DWM
Probablemente arrancara xa o lightdm así que salimos a unha terminal con ctrl+alt+f2 e entramos co usuario root. Para instalar o DWM hai que clonar o «meu» dwm-flexipatch:
git clone http://git.tr4ck.net/serxoz/dwm-flexipatch.git
FIXME! Fai falta copiar os arquivos modificados para que compile en FreeBSD. E logo:
make && make install
Crear o arquivo «/usr/local/share/xsessions/dwm.desktop» co seguinte contido:
[Desktop Entry] Name=dwm Comment=Dynamic, small, fast and simple window manager TryExec=dwm Exec=dwm Type=Application
Logo no home do usuario «sergio» crear o arquivo «.dwm/autostart.sh» co seguinte contido:
#!/usr/local/bin/bash setxkbmap -layout es setxkbmap -option caps:escape #feh --bg-scale Img/monte-nevoa.png feh --bg-scale Img/minimalism.jpg compton -b & clipit & xautolock -time 10 -locker blurlock & ##### status bar avg_load() { AVG_LOAD=`uptime | awk -F'[a-z]:' '{ print $2 }'` echo "L:$AVG_LOAD" } fecha() { echo $(date) } while true; do xsetroot -name "$(avg_load) | $(fecha) |" sleep 1 done &
Dándolle permisos de execución.
chmod +x /home/sergio/.dwm/autostart.sh
Ahora xa podo entrar na sesión X co entorno DWM como o usuario «sergio».
Dotfiles
Clonar o repo cos dotfiles e instalalas:
git clone git.tr4ck.net/serxoz/dotfiles cd dotfiles && sh install.sh
Extras
Instalar paquetes extras:
pkg install firefox telegram-desktop gimp flameshot thunar libreoffice
En este punto xa terei un escritorio usable e co mínimo, sin mierdas... A desfrutar!