/*
 * ArraKISS; 🚀 Capsule;
 * tout; log; twtxt; à propos & contact;
 */

Post-installation d'OpenBSD desktop


Notes personnelles pour profiter d'OpenBSD dans un usage "desktop".


Installation chiffrée


Voir la FAQ


S'il y a un bug à la fin de l'installation en cas d'UEFI, installer le chargeur de démarrage à la main avec installboot.


Autologin


Si on est le seul utilisateur de la machine et que l'ensemble est chiffré et qu'on éteint son ordi lorsqu'on ne l'utilise pas, alors on peut activer l'autologin pour xenodm :


echo 'DisplayManager._0.autoLogin: user' >> /etc/X11/xenodm/xenodm-config

Dans ce cas, je vous conseille de désactiver la possibilité de fermer la session graphique avec Ctrl-Shift-backspace.  Sinon, n'importe qui peut prendre le contrôle de votre session même si vous l'avez verrouillée avec xlock (ou autre).


cat << EOF >> /etc/X11/xorg.conf
Section "ServerFlags"
    Option "DontZap" "true"
EndSection
EOF

Performance d'affichage : machdep.allowaperture


Puisque c'est suggéré dans mon fichier /var/log/Xorg.0.log, j'active ette option:


echo "machdep.allowaperture=1" >> /etc/sysctl.conf

softdeps


L'option softdeps permet d'accélérer l'utilisation des disques.  Attention, en cas de crash, il y a plus de risques d'avoir des pertes malgré le caractère très conservateur du système de fichier d'OpenBSD.


sed -i 's/rw,/rw,softdep,/g' /etc/fstab

On peut aller encore plus loin en ne tenant pas compte des dates d'accès (noatime) :


sed -i 's/rw,/rw,softdep,noatime,/g' /etc/fstab

doas


cat << EOF > /etc/doas.conf
permit persist :wheel
permit nopass  :wheel cmd /sbin/disklabel
permit nopass  :wheel cmd /sbin/umount
permit nopass  :wheel cmd /sbin/shutdown
permit nopass  :wheel cmd /sbin/reboot
permit nopass  :wheel cmd /sbin/mount
permit nopass  :wheel cmd /usr/sbin/zzz
permit nopass  :wheel cmd /usr/sbin/ZZZ
EOF

wsconsctl


cat << EOF > /etc/wsconsctl.conf

keyboard.bell.volume=0
display.brightness=80
EOF

Installation de quelques programmes


dwm


dwm


cd /tmp
git clone --depth=1 https://git.suckless.org/dwm
cd dwm
# patches
ftp https://dwm.suckless.org/patches/deck/dwm-deck-double-6.2.diff
ftp https://dwm.suckless.org/patches/focusmaster/dwm-focusmaster-20200717-bb2e722.diff
for i in *.diff; do patch -p1 < $i; done
ftp -o config.h https://ybad.name/pub/dwm-config.h
sed -i /^#FREETYPEIN/s/^#// config.mk
make
make install PREFIX=$HOME MANPREFIX=$HOME/man/

dmenu avec support de la souris


dmenu


cd /tmp
ftp https://dl.suckless.org/tools/dmenu-5.0.tar.gz
tar xvzf dmenu-5.0.tar.gz
cd dmenu-5.0
ftp https://tools.suckless.org/dmenu/patches/mouse-support/dmenu-mousesupport-5.0.diff
patch -p1 < dmenu-mousesupport*.diff
sed -i /^#FREETYPEINC/s/^#// config.mk
make
make install PREFIX=$HOME MANPREFIX=$HOME/man/

rover


Un excellent estionnaire de fichiers rapide et simple: => https://lecram.github.io/p/rover/ rover


https://lecram.github.io/p/rover/


cd /tmp
git clone --depth=1 https://github.com/lecram/rover.git
cd rover
make
make install PREFIX=$HOME

Scripts


cd /tmp
ftp https://ybad.name/code/Scripts.tgz
tar xvzf Scripts.tgz
mv Scripts/mybin $HOME/bin

Install dotfiles (fichiers de configuration)


cd /tmp
mkdir dotfiles && cd dotfiles
ftp https://ybad.name/code/dotfiles.tgz
tar xvzf dotfiles.tgz
cd dotfiles
for i in *; do cp -r $i $HOME/.$i; done
mkdir -p $HOME/.config/gtk-3.0/
mv $HOME/.gtk-3.0-settings.ini $HOME/.config/gtk-3.0/settings.ini

Résolveur DNS indépendant (unwind) + adblock


rcctl enable unwind
echo "nameserver 127.0.0.1" > /etc/resolv.conf
echo "lookup file bind" >> /etc/resolv.conf
echo "prepend domain-name-servers 127.0.0.1;" >> /etc/dhclient.conf
echo "block list \"/var/unwind.block\"" > /etc/unwind.conf

cat << EOF >> /etc/rc.local
if [ -n "$(find /var/unwind.block -mtime +7 )" ]; then
    # wait for internet access
    while true; do
        nc -zw1 ybad.name 443 && break || sleep 60
    done
    ftp -o- https://ybad.name/pub/unwind.block.gz | gunzip > /var/unwind.block
fi
EOF

unwind.block.gz


rc.local


cat << EOF >> /etc/rc.local
sleep 30 && syspatch
sleep 60 && find /home -name "*.core" -delete &
EOF

Gestion de l'énergie


Le système sera suspendu si la batterie descend en-dessous de 8%.  Ça permet de brancher la machine sans perdre son travail.


rcctl enable apmd
rcctl set apmd flags -A -z 8

Et pour que l'écran soit verouillé après avoir suspendu la machine:


# cat /etc/apm/suspend
#!/bin/sh
pkill -USR1 xidle

Le script checkbatt permet d'avoir une alerte si la batterie a un niveau trop faible.  Il s'appelle via un cron.


checkbatt


ntpd


sed -i 's/www\.google\.com/www.openbsd.org/' /etc/ntpd.conf

firmwares


Si aucun accès à internet n'est disponible, récupérer les firmwares en ligne, les copier sur une clé USB, monter la clé puis lancer "fw_update" ainsi :


fw_update -p /chemin/vers/cle/usb/

http://firmware.openbsd.org/firmware/


réseau et WiFi


Sur un portable, on peut activer le WiFi et le filaire avec de préférence le filaire.  En cas de déconnexion, l'autre carte réseau prend le relais.


Dans mon cas, sur un x250 :


# cat /etc/hostname.iwn0
join wifi1 wpakey blabla
join wifi2 wpakey pouet
up

# cat /etc/hostname.em0
up

# cat /etc/hostname.trunk0
trunkproto failover trunkport em0
trunkport iwm0
inet6 autoconf
dhcp

Montage de cdrom/DVD


$ doas mkdir /cdrom 
$ cat /etc/fstab
/dev/cd0a /cdrom cd9660 ro,noauto 0 0

login.conf et meilleures performances


On peut modifier le fichier /etc/login.conf pour profiter de toute la mémoire disponible sur le système et augmenter les limites :


# sed -i 's/datasize-cur=768M/datasize-cur=4096M/' /etc/login.conf
# sed -i 's/datasize-max=768M/datasize-max=4096M/' /etc/login.conf

ports


Liste générée avec pkg_info -zm > obsdpkg.list.


ftp https://ybad.name/pub/obsdpkg.list
pkg_add -vmzl obsdpkg.list