From 29b28e9da54a8baaa87d18be651d8c0806efa4d0 Mon Sep 17 00:00:00 2001 From: Thomas Cole Date: Mon, 12 Jul 2021 20:37:34 -0400 Subject: [PATCH] First commit --- firstboot.sh | 50 ++++++++++++++++ preseed.cfg | 144 +++++++++++++++++++++++++++++++++++++++++++++++ preseedserver.sh | 13 +++++ 3 files changed, 207 insertions(+) create mode 100644 firstboot.sh create mode 100644 preseed.cfg create mode 100755 preseedserver.sh diff --git a/firstboot.sh b/firstboot.sh new file mode 100644 index 0000000..846d0a7 --- /dev/null +++ b/firstboot.sh @@ -0,0 +1,50 @@ +#!/bin/bash + +if [ "$EUID" -ne 0 ] + then echo "Please run as root" + exit +fi + +doasuser () { + su clc -c "$1" +} + +echo "Cleaning up default Gnome Install." +#clean up gnome things +apt purge -y gnome-games xterm +apt autoremove -y + +echo "Installing base applications." +apt install -y curl vlc +snap install zoom-client + +#install google chrome +wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb +apt install -y ./google-chrome-stable_current_amd64.deb + +echo "Installing extensions." +wget https://raw.githubusercontent.com/brunelli/gnome-shell-extension-installer/master/gnome-shell-extension-installer +chmod +x gnome-shell-extension-installer +doasuser './gnome-shell-extension-installer 307' #dash-to-dock + +echo "Configuring desktop." +#set shell theme and dock +doasuser 'gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"' +doasuser 'gsettings --schemadir ~/.local/share/gnome-shell/extensions/dash-to-dock@micxgx.gmail.com/schemas/ set org.gnome.shell.extensions.dash-to-dock dock-position BOTTOM' +doasuser 'gsettings --schemadir ~/.local/share/gnome-shell/extensions/dash-to-dock@micxgx.gmail.com/schemas/ set org.gnome.shell.extensions.dash-to-dock preferred-monitor 0' + +#configure favorites +doasuser 'gsettings set org.gnome.shell favorite-apps '"'"'["firefox-esr.desktop", "google-chrome.desktop", "org.gnome.Nautilus.desktop", "vlc.desktop", "zoom-client_zoom-client.desktop", "libreoffice-impress.desktop"]'"'"'' + +#add min and max buttons to title bars +doasuser 'gsettings set org.gnome.desktop.wm.preferences button-layout "appbar:minimize,maximize,close"' + +echo "Cleaning up." +rm google-chrome-stable_current_amd64.deb gnome-shell-extension-installer + +echo "Running update." +apt update +apt upgrade -y + +echo "Rebooting..." +systemctl reboot \ No newline at end of file diff --git a/preseed.cfg b/preseed.cfg new file mode 100644 index 0000000..33f1550 --- /dev/null +++ b/preseed.cfg @@ -0,0 +1,144 @@ +#### Contents of the preconfiguration file (for buster) +### Localization +# Preseeding only locale sets language, country and locale. +d-i debian-installer/locale string en_US + +# Keyboard selection. +d-i keyboard-configuration/xkb-keymap select us + +### Network configuration +# netcfg will choose an interface that has link if possible. This makes it +# skip displaying a list if there is more than one interface. +d-i netcfg/choose_interface select auto + +# Any hostname and domain names assigned from dhcp take precedence over +# values set here. However, setting the values still prevents the questions +# from being shown, even if values come from dhcp. +d-i netcfg/get_hostname string unassigned-hostname +d-i netcfg/get_domain string unassigned-domain + +# If you want to force a hostname, regardless of what either the DHCP +# server returns or what the reverse DNS entry for the IP is, uncomment +# and adjust the following line. +#d-i netcfg/hostname string somehost + +# Disable that annoying WEP key dialog. +d-i netcfg/wireless_wep string + +# If non-free firmware is needed for the network or other hardware, you can +# configure the installer to always try to load it, without prompting. Or +# change to false to disable asking. +d-i hw-detect/load_firmware boolean true + +### Mirror settings +# If you select ftp, the mirror/country string does not need to be set. +#d-i mirror/protocol string ftp +d-i mirror/country string manual +d-i mirror/http/hostname string http.us.debian.org +d-i mirror/http/directory string /debian +d-i mirror/http/proxy string + +### Account setup +# Root password, either in clear text +#d-i passwd/root-password password testroot +#d-i passwd/root-password-again password testroot +# or encrypted using a crypt(3) hash. +d-i passwd/root-password-crypted password RagByQTSHsyIY + +# To create a normal user account. +d-i passwd/user-fullname string CLC User +d-i passwd/username string clc +# Normal user's password, either in clear text +#d-i passwd/user-password password passwd +#d-i passwd/user-password-again password passwd +# or encrypted using a crypt(3) hash. +d-i passwd/user-password-crypted password JY0jSrbzJgbx2 + +### Clock and time zone setup +# Controls whether or not the hardware clock is set to UTC. +d-i clock-setup/utc boolean true + +# You may set this to any valid setting for $TZ; see the contents of +# /usr/share/zoneinfo/ for valid values. +d-i time/zone string US/Eastern + +# Controls whether to use NTP to set the clock during the install +d-i clock-setup/ntp boolean true + + +### Partitioning +d-i partman-auto/method string lvm +d-i partman-auto-lvm/guided_size string max +d-i partman-lvm/device_remove_lvm boolean true +d-i partman-md/device_remove_md boolean true +d-i partman-lvm/confirm boolean true +d-i partman-lvm/confirm_nooverwrite boolean true + +d-i partman-auto/choose_recipe select atomic + +d-i partman-partitioning/confirm_write_new_label boolean true +d-i partman/choose_partition select finish +d-i partman/confirm boolean true +d-i partman/confirm_nooverwrite boolean true + +d-i partman-md/confirm boolean true +d-i partman-partitioning/confirm_write_new_label boolean true +d-i partman/choose_partition select finish +d-i partman/confirm boolean true +d-i partman/confirm_nooverwrite boolean true + +d-i partman-efi/non_efi_system boolean true + +### Base system installation + +### Apt setup +# You can choose to install non-free and contrib software. +d-i apt-setup/non-free boolean true +d-i apt-setup/contrib boolean true + +### Package selection +#tasksel tasksel/first multiselect standard, web-server, kde-desktop + +# Individual additional packages to install +#d-i pkgsel/include string openssh-server build-essential +d-i pkgsel/include string snapd + +# Whether to upgrade packages after debootstrap. +# Allowed values: none, safe-upgrade, full-upgrade +#d-i pkgsel/upgrade select none + +### Boot loader installation +# This is fairly safe to set, it makes grub install automatically to the MBR +# if no other operating system is detected on the machine. +d-i grub-installer/only_debian boolean true + +# This one makes grub-installer install to the MBR if it also finds some other +# OS, which is less safe as it might not be able to boot that other OS. +d-i grub-installer/with_other_os boolean true + +# Due notably to potential USB sticks, the location of the MBR can not be +# determined safely in general, so this needs to be specified: +#d-i grub-installer/bootdev string /dev/sda +# To install to the first device (assuming it is not a USB stick): +#d-i grub-installer/bootdev string default + +# Use the following option to add additional boot parameters for the +# installed system (if supported by the bootloader installer). +# Note: options passed to the installer will be added automatically. +#d-i debian-installer/add-kernel-opts string nousb + +### Finishing up the installation + +# Avoid that last message about the install being complete. +d-i finish-install/reboot_in_progress note + +#### Advanced options +### Running custom commands during the installation + +# This command is run just before the install finishes, but when there is +# still a usable /target directory. You can chroot to /target and use it +# directly, or use the apt-install and in-target commands to easily install +# packages and run commands in the target system. +#d-i preseed/late_command string apt-install zsh; in-target chsh -s /bin/zsh + +d-i preseed/late_command string in-target wget http://192.168.122.1/firstboot.sh \ No newline at end of file diff --git a/preseedserver.sh b/preseedserver.sh new file mode 100755 index 0000000..c0e646a --- /dev/null +++ b/preseedserver.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +if [ "$EUID" -ne 0 ] + then echo "Please run as root" + exit +fi + +LOCALIP=$(hostname -I) + +echo "Starting server. Press CTRL+C to stop." +echo -e "Local IP address: \e[32m$LOCALIP\e[0m" + +python3 -m http.server 80 \ No newline at end of file