diff --git a/configure-machine.sh b/configure-machine.sh index 483ddd0..cd685b3 100644 --- a/configure-machine.sh +++ b/configure-machine.sh @@ -1,12 +1,12 @@ #!/bin/bash -# This script configures the machines to auto-launch Moonlight streaming on startup. + +# This script configures converted Lenovo N42 ChromeBooks loaded with Linux Mint XFCE. function configureMachine() { # Update everything. - apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D5AFC5E2A4987676 241FE6973B765FAE apt-get -y update apt-get -y upgrade apt-get -y dist-upgrade @@ -15,16 +15,26 @@ function configureMachine() { # Tools for us. apt-get -y install mc joe openssh-server - # Disable screensaver. - sed -i 's/mode:[[:space:]]*blank/mode: off/' /home/${SUDO_USER}/.xscreensaver - xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/dpms-enabled -t bool -s false + # Disable screensaver/blanking/dimming. + xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/dpms-enabled -t bool -s false --create + xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/blank-on-ac -s 0 --create + xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/brightness-on-ac -s 9 --create + xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/brightness-level-on-ac -s 100 --create # Change clock format. plugin_name="$( xfconf-query -c xfce4-panel -p /plugins -lv | grep -E '/plugins/plugin-[0-9]+.*clock' | cut -d" " -f '1-1' )" - xfconf-query -c xfce4-panel -p ${plugin_name}/digital-format -t "string" -s '%T%n%Y-%m-%d' -n + xfconf-query -c xfce4-panel -p ${plugin_name}/digital-time-format -t "string" -s '%l:%M:%S %P' --create + xfconf-query -c xfce4-panel -p ${plugin_name}/digital-date-format -t "string" -s '%b %d, %Y' --create + + # Disable unneeded desktop services. + mkdir -p /home/${SUDO_USER}/.config/autostart + declare -a disable=("light-locker" "mintreport" "mintupdate" "mintwelcome" "nvidia-prime" "sticky" "warpinator-autostart") + for i in "${disable[@]}"; do + echo -e "[Desktop Entry]\nHidden=True\n" > /home/${SUDO_USER}/.config/autostart/${i}.desktop + done + chown -R ${SUDO_USER}:${SUDO_USER} /home/${SUDO_USER}/.config/autostart # Install Moonlight. - apt-get -y install flatpak flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo flatpak install -y flathub com.moonlight_stream.Moonlight @@ -37,29 +47,72 @@ function configureMachine() { # Add icon to desktop cat <<- ICON > /home/${SUDO_USER}/Desktop/Moonlight.desktop [Desktop Entry] - Version 1.0 - Type Application - Name Moonlight - Comment Game Streaming Client - Exec /home/${SUDO_USER}/moonlight.sh - icon palemoon - Path /home/${SUDO_USER} - Terminal false - StartupNotify false + Version=1.0 + Type=Application + Name=Moonlight + Comment=Game Streaming Client + Exec=/home/${SUDO_USER}/moonlight.sh + Icon=network-idle + Path=/home/${SUDO_USER} + Terminal=false + StartupNotify=false ICON + chown ${SUDO_USER}:${SUDO_USER} /home/${SUDO_USER}/Desktop/Moonlight.desktop :< /home/${SUDO_USER}/unsafe-update.sh + #!/bin/bash + ### + ### THIS IS TOTALLY NOT A SECURE WAY TO UPDATE ANYTHING! ### + ### + if [[ -f unsafe-update-payload.sh ]]; then + rm -f unsafe-update-payload.sh + fi + wget https://forge.duensing.digital/Duensing_Digital/chromebook-linux/raw/branch/master/unsafe-update-payload.sh + if [[ -f unsafe-update-payload.sh ]]; then + source unsafe-update-payload.sh + unsafeUpdate + fi + UPDATE + shc -S -f /home/${SUDO_USER}/unsafe-update.sh + chmod u+s /home/${SUDO_USER}/unsafe-update.sh.x + rm /home/${SUDO_USER}/unsafe-update.sh.x.c + + # Add auto update icon to autostart. + cat <<- ICON > /home/${SUDO_USER}/.config/autostart/AutoUpdate.desktop + [Desktop Entry] + Version=1.0 + Type=Application + Name=Auto Update + Comment=Duensing Digital Client Auto Update + Exec=/home/${SUDO_USER}/unsafe-update.sh.x + Icon=mintupdate-type-backport + Path=/home/${SUDO_USER} + Terminal=true + StartupNotify=false + ICON + chown ${SUDO_USER}:${SUDO_USER} /home/${SUDO_USER}/.config/autostart/AutoUpdate.desktop + # Reboot! reboot } +if [[ ${EUID} -ne 0 ]]; then + echo "${0} must be run as root." + exit 1 +fi + # All the config is in a function so we can stream this script from forge.duensing.digital. -sudo configureMachine +configureMachine diff --git a/unsafe-update-payload.sh b/unsafe-update-payload.sh new file mode 100644 index 0000000..c3706c0 --- /dev/null +++ b/unsafe-update-payload.sh @@ -0,0 +1,12 @@ +function unsafeUpdate() { + # Handle system updates. + apt-get update + apt-get -fy upgrade + apt-get -fy dist-upgrade + apt-get -fy autoremove + if [[ -f /var/run/reboot-required ]] then + shutdown -r now + fi + + # Additional updates. +}