Setup OpenBSD as a daily driver using only the included, core programs. Based on OpenBSD 7.6. --- {{TOC}} ## Requirements - USB device - Ethernet connection (with active internet) - A cup of coffee The real requirements are having patience and a passion for keeping things minimal. It's important to remeber that this setup isn't the most user-friendly. There will be no config files to edit or download in this guide. We will be using the `xenodm` login manager paired with the default stacked window manager `fvwm`. And that's it. You have been warned! ## Installation Make sure you have the latest OpenBSD image formatted on a USB device (or burned to a CD if that's your cup of tea!) and that your computer/laptop is set to boot from USB via the BIOS. Also make sure you are connected to the internet via ethernet cable (don't worry, we'll setup WiFi in a minute!) Boot into the device and input the following when guided through the installer: 1. Boot from USB 2. Choose `Install` 3. Keyboard layout: `us` 4. Hostname: `x220` (or whatever you choose) 5. Network: `em0` 6. IPv4: `autoconf` 7. IPv6: `none` 8. Network interface: `done` 9. Password for root 10. Start sshd by default? `yes` 11. X Window System start with xenodm? `no` 12. Setup user? `username` (follow setup user steps) 13. Allow root ssh login? `no` 14. Timezone 15. Which disk? Use internal (`sd0` etc.) 16. Encrypt root disk? `no` 17. Use `WHOLE` disk 18. Use `AUTO` layout 19. Which disk to initialize: `done` 20. Location of sets: `http` 21. HTTP Proxy URL? `none` 22. HTTP Server? `1` (Toronto) 23. Confirm again 24. Server directory? `pub/OpenBSD/7.6/amd64` 25. Set names? `done` 26. Drink some coffee while it verifies (depends on network speed) 27. Location of sets? `done` 28. Congrats! 29. Reboot and remove USB device ## First Boot Tweaks ### User Permissions Before we do anything, we should give our main user full access via `doas`. Login as `root` and run the following: su - echo "permit nopass :wheel" >> /etc/doas.conf exit ### Firmware The next steps will help you ensure you have the latest firmware. Simply run the command: `fw_update` ### WiFi To enable wifi on your device, run the following command (filling in the proper details where need be) ifconfig iwn0 up ifconfig iwn0 scan echo "join WIFI-NAME wpakey PASSPHRASE" >> /etc/hostname.iwn0 echo "dhcp" >> /etc/hostname.iwn0 echo "inet6 autoconf" >> /etc/hostname.iwn0 echo "up powersave" >> /etc/hostname.iwn0 dhclient iwn0 Take note of the `iwn0`, as this might differ on your machine. (You can check this by running `ifconfig`) You might also need to run `doas sh /etc/netstart` after. ### Performance Boost This step is optional and targeted towards devices with batteries (laptops, IoT devices etc). Properly setup apmd: rcctl enable apmd rcctl set apmd flags -A rcctl start apmd ## Login Manager Remember when we chose `No` when the installer asked us "X Window System start with xenodm?". Well, now we want to enable that before our next reboot: doas rcctl enable xenodm Now reboot your device. doas reboot ## The First *Real* Login Now you will be presented with the glorious `xenodm` login screen.
Default xenodm login screen
The beautiful, default xenodm login screen. Image taken from tumfatig.net (who has some wonderful OpenBSD guides you should check out!)
Login with your created user details and you should see something like this:
Default fvwm view once logged in
Taken from the main OpenBSD Wikipedia page. (Some applications will not be opened by default)
Absolutely glorious. You'll also notice a 3x3 grid box in the bottom right corner: fvwm workspace pager This is called the "workspace pager" or "pager". Each section represents an individual *desktop* (or workspace if your more familiar with MacOS terminology). You can click on any grid item to instantly move to that desktop. You can also navigate around using the Ctl + keys. ## Additional Packages - aerc - Firefox - ffmpeg - picom ## Configs Okay, I *know* I said there wouldn't be any configs included in this guide. Frankly, you should be having zero problems working with all those defaults now that you've run through this guide! BUT - I wanted to include some *very minor* configuration tweaks that might make things a little more intuitive for newcomers. Feel free to ignore these entirely! ## Support OpenBSD If you've found this guide helpful or even sparked an interest in OpenBSD, please consider [donating directly to the OpenBSD Project](https://www.openbsd.org/donations.html). A little goes a long way, and the OpenBSD Project is a volunteer-driven software group funded by donations! ## Contribute to OpenBASED I'm far from an OpenBSD expert! Please [help improve this project](https://git.sr.ht/~bt/openbased)!