You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
1.6 KiB
Bash

6 years ago
#!/bin/bash
###
# This file is part of the code-cloppers openbox setup. Use at your own risk.
#
# This script should setup openbox for a user on ubuntu
set -eo pipefail
6 years ago
is-in-path() {
which "$1" &>>/dev/null
}
install-apt-dependencies() {
echo "=> Installing apt dependencies"
set -x
sudo apt-get update && \
sudo apt-get install xcompmgr openbox albert plank
set +x
}
install-dependencies() {
echo "=> Checking dependencies"
if ! is-in-path xcompmgr || ! is-in-path openbox; then
install-apt-dependencies
fi
}
here() {
dirname "$(readlink -f "${BASH_SOURCE[0]}")"
}
config-dir() {
if ! [[ $# -ge 1 ]]; then
echo "$(caller) Expected argument" >&2
return 1
fi
declare app="$1"
echo "$HOME/.config/$app"
}
create-dir-if-not-exists() {
[[ -d $1 ]] || mkdir -p "$1"
}
6 years ago
copy-files-in-dir-to() {
declare source="$1" destination="$2"
create-dir-if-not-exists "$destination"
cp -r "$source/"* "$destination"/
}
copy-config() {
6 years ago
echo "=> Copying config"
copy-files-in-dir-to "$(here)/config/albert" "$(config-dir albert)"
copy-files-in-dir-to "$(here)/config/openbox" "$(config-dir openbox)"
6 years ago
}
add-custom-startup() {
declare startup_file=''
read -rep "Please provide a path to a custom startup script for your sessions (default: ~/.startup):" \
startup_file
[[ -z $startup_file ]] && startup_file="$HOME/.startup"
6 years ago
printf 'source "%s"\n' "$startup_file" >> "$(config-dir openbox)/autostart.sh"
}
6 years ago
setup-openbox-for-user() {
install-dependencies
copy-config
add-custom-startup
6 years ago
echo "=> Finished"
}
setup-openbox-for-user