~sergio

ARTIGOS

FreeBSD 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!