openbsd-scripts/configure-system.ksh

89 lines
3.0 KiB
Bash
Executable File

#!/bin/ksh
# Copyright (c) 2022, Scott C. MacCallum (scm@sdf.org)
# All rights reserved.
# Redistribution and use of this software in source and binary forms, with or
# without modification, are permitted provided that the following conditions
# are met:
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Neither the name of Scott C. MacCallum nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission of Scott C.
# MacCallum.
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
echo -n "User in wheel group: "
read $user
# Enable the power manager and start it at boot. Have it adjust automatically
# adjust to power needs. Put the computer in suspend (deep sleep) state when
# 15% of the battery is left
rcctl enable apmd
rcctl set apmd flags -A -z 15
rcctl start apmd
# Set max the processes, max threads, maxfiles, and turn on audio and camera
# recording
echo "kern.maxproc=4096" >> /etc/sysctl.conf
echo "kern.maxthread=4096" >> /etc/sysctl.conf
echo "kern.maxfiles=32768" >> /etc/sysctl.conf
echo "kern.audio.record=1" >> /etc/sysctl.conf
echo "kern.video.record=1" >> /etc/sysctl.conf
# Unmute the speakers
echo "outputs.spkr_mute=off" >> /etc/mixerctl.conf
# Mute the shell beep, enable the Alt key for GNU Emacs, and enable touchpad
# tapping
echo "keyboard.bell.volume=0" >> /etc/wsconsctl.conf
echo "keyboard.encoding=us.metaesc" >> /etc/wsconsctl.conf
echo "mouse.tp.tapping=1" >> /etc/wsconsctl.conf
# Add the user to the operator and staff group
usermod -G operator $user
usermod -G staff $user
# Set LC_CTYPE for Mosh
echo "export LC_CTYPE=en_US.UTF-8" >> /home/$user/.profile
# Allow users in the wheel group to use doas
echo "permit :wheel" >> /etc/doas.conf
# Enable SSH at boot
rcctl enable sshd
echo "https://mirrors.mit.edu/pub/OpenBSD >> /home/$user/.profile
export PKG_PATH=https://mirrors.mit.edu/pub/OpenBSD/$(uname -r)/packages/$(uname -m)/
# Wi-Fi setup
touch /etc/hostname.wifi_device
echo "join NETWORK wpakey PASSWORD" >> /etc/hostname.wifi_device
echo "inet autoconf" >> /etc/hostname.wifi_device
# GCC setup
ln -s /usr/local/bin/egcc /usr/bin/gcc