commit a1fe4d6d7ddb892d21c1463453dee08a8810dc33 from: bt date: Tue Jun 18 14:06:56 2024 UTC Update README and files to reflect sourcehut platform commit - /dev/null commit + a1fe4d6d7ddb892d21c1463453dee08a8810dc33 blob - /dev/null blob + 017baf00ab705618aaf3dc61337cee200a00afab (mode 644) --- /dev/null +++ LICENSE @@ -0,0 +1,2 @@ +Mixed License. +I chose to mantain the original LICENSE of the projects I've forked. blob - /dev/null blob + 7b25d0ed8dc6ec5447ad75a43e450161adac106f (mode 644) --- /dev/null +++ README.md @@ -0,0 +1,104 @@ +# Open Suck + +**Latest changes based off OpenBSD 7.5** + +Lightweight Desktop installer for OpenBSD based on the suckless philosophy. +Includes my own custom set of suckless tools (dwm, slstatus, dmenu, etc.) + +![Screenshot of dwm running on +OpenBSD](./open-suck-75.png) + +Successfully installed on: + +- ThinkPad X201 +- ThinkPad X220 +- ThinkPad X260 +- Lenovo M73 Tiny + +## What You Get + +The Open Suck installer gives you the absolute barebones desktop experience: + +- `dwm` for window management +- `ranger` for your file browser +- `qutebrowser` as your core web browser +- `aerc` for your terminal-based mail client +- `slock` for screen locking +- `scrot`/`slop` for simple screenshot utilities +- `feh` for your image/file viewing +- `dunst` for notifications + +## Downloading + +1. Download the latest OpenBSD iso and follow the installer +2. Install `git`, `vim`, `bash` +3. Edit/create doas permissions (`/etc/doas.conf`): + +``` +permit nopass :wheel +``` + +Now logout and log back in as your main user. + +--- + +Clone the main installer project: + +`git clone https://git.sr.ht/~bt/open-suck-installer` + +`cd open-suck-installer` + +## Installing + +1) Install dependencies by running `./install-dependencies.sh`. The script will simply read required packages from `dependencies.txt` and run `pkg_add`. +2) Compile and install suckless software by running the `./install.sh` +3) Core program files (dwm, dmenu, etc) will be placed inside a newly created `open-suck-core` directory. Feel free to delete, rename or move this. + +## TL;DR + +```sh +cd open-suck-installer # CD into this repository +doas sh ./install-dependencies.sh # Install OpenBSD packages +doas sh ./install.sh # Install suckless tools +cp .xinitrc ~/.xinitrc # Apply .xinitrc +``` + +Reboot the machine. Log in as your main user. Run: + +``` +startx +``` + +--- + +## Optimizing OpenBSD + +### Improving Battery Performance + +Properly setup apmd: + +``` +rcctl enable apmd +rcctl set apmd flags -A +rcctl start apmd +``` + +### Setup WiFi + +> The following assumes you have installed/setup the proper firmware updates for your hardware. + + +``` +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 might also need to run `doas sh /etc/netstart` after. + blob - /dev/null blob + 637f26663bff149fbf67930956e83158d95a80be (mode 644) --- /dev/null +++ dependencies.txt @@ -0,0 +1,18 @@ +# Based on OpenBSD 7.5 + +# Browser +qutebrowser + +# Mail +aerc-0.17.0 + +# Fonts +jetbrains-mono + +# Utilities +ranger +feh +picom +dunst +scrot +slop blob - /dev/null blob + f216f6d8006946055e259b8911730adffd40e829 (mode 755) --- /dev/null +++ install-dependencies.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +if [ "$EUID" -ne 0 ] + then echo "The script has to be run as root." + exit +fi + +echo "This script is designed for OpenBSD and it will not work with in any other OS" +echo "Installing dependencies listed in dependencies.txt..." + +sed -e 's/#.*$//' -e '/^$/d' dependencies.txt | while read p; do + echo "Running pkg_add $p" + pkg_add $p +done blob - /dev/null blob + fbb8c32d465dd30e1ed094ab659ef0b419f4b7a9 (mode 755) --- /dev/null +++ install.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +if [ "$EUID" -ne 0 ] + then echo "The script has to be run as root." + exit +fi + +echo "Cloning core suckless programs into /open-suck-core" +mkdir ~/open-suck-core +cd ~/open-suck-core +git clone https://git.sr.ht/~bt/dwmo +git clone https://git.sr.ht/~bt/dmenuo +git clone https://git.sr.ht/~bt/slstatuso +git clone https://git.sr.ht/~bt/slocko +git clone https://git.sr.ht/~bt/sto + +cd dwmo +echo "Installing dwm" +rm -rf config.h +make clean install +cd .. + +cd dmenuo +echo "Installing dmenu" +rm -rf config.h +make clean install +cd .. + +cd slstatuso +echo "Installing slstatus" +rm -rf config.h +make clean install +cd .. + +cd sto +echo "Installing st" +rm -rf config.h +make clean install +cd .. + +cd slocko +echo "Installing slock" +rm -rf config.h +make clean install +cd .. +cd .. + +echo "Install finished. You should reboot the machine now." blob - /dev/null blob + 73cf8897d92d459f0274fbdd2c7e84d00b3fb6b5 (mode 644) Binary files /dev/null and screenshot.png differ