Skip to content

Instantly share code, notes, and snippets.

@bdombro
Last active November 29, 2023 17:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bdombro/77640867e3386922ef3edac0df7bda3a to your computer and use it in GitHub Desktop.
Save bdombro/77640867e3386922ef3edac0df7bda3a to your computer and use it in GitHub Desktop.
sudo timeshift --create --scripted --comments "Fresh install" &> /dev/null # first snapshot works but reports error
echo "*******Install Foundation*******"
sudo cp -rf /etc /etc.orig
# Allow sudo password prompts and sessions to last forever
print "\nDefaults env_reset,timestamp_timeout=-1,passwd_timeout=0\n" | sudo tee -a /etc/sudoers
# Set suspend to always suspend-then-hibernate
sudo ln -s /usr/lib/systemd/system/systemd-suspend-then-hibernate.service /etc/systemd/system/systemd-suspend.service
# setup packagers
sudo pacman-mirrors --country United_States
sudo pacman -Sy --noconfirm
sudo pacman -S --noconfirm --needed vim git rust base-devel lsof jq mercurial
sudo pacman -R --noconfirm manjaro-gnome-tour manjaro-hello
sudo rm /usr/share/applications/manjaro-documentation.desktop
cd /opt && sudo git clone https://aur.archlinux.org/yay-git.git && sudo chown -R `whoami`:`whoami` ./yay-git && cd yay-git && makepkg --noconfirm --needed -si && cd ~
yay -S --noconfirm --needed debtap
curl https://raw.githubusercontent.com/srevinsaju/zap/main/install.sh | sudo bash -s
sudo ln -s /var/lib/snapd/snap /snap
# Enable bluetooth on start
sudo sed -i 's/#AutoEnable=false/AutoEnable=true/' /etc/bluetooth/main.conf
# Add modules to grub
sudo grub-install --recheck --no-rs-codes --modules="btrfs zstd part_gpt part_msdos"
sudo update-grub
# Enable user home encryption features (doesnt actually encrypt anything, just enables the features)
sudo modprobe ecryptfs
if [ $(grep pam_ecryptfs /etc/pam.d/system-auth | wc -l) = "0" ]; then
sudo sed -i '/^auth\s*\[default=die\]\s*pam_faillock.so\s*authfail/a auth [success=1 default=ignore] pam_succeed_if.so service = systemd-user quiet\nauth required pam_ecryptfs.so unwrap' /etc/pam.d/system-auth
sudo sed -i '/^-password\s*\[success=1\s*default=ignore\]\s*pam_systemd_home.so/i password optional pam_ecryptfs.so' /etc/pam.d/system-auth
sudo sed -i '/^session\s*required\s*pam_unix.so/a session [success=1 default=ignore] pam_succeed_if.so service = systemd-user quiet\nsession optional pam_ecryptfs.so unwrap' /etc/pam.d/system-auth
fi
# Gnome settings
gsettings set org.gnome.system.location enabled true
gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize'
# Save Chrome gesture extension
wget https://github.com/koseduhemak/touchpadswipe/files/2875483/src.zip
unzip src.zip; rm src.zip src.pem; mv src.crx ~/Downloads/chrome-gestures-extension.crx
# sign boot partition for efi secure boot
# TODO: tried sbctl but didn't work and BROKE bitlocker
# yay -S sbctl
# echo "*******Dell Fingerprint*******"
# sudo sh -c 'cat > /etc/apt/sources.list.d/focal-dell.list << EOF
# deb http://dell.archive.canonical.com/updates/ focal-dell public
# # deb-src http://dell.archive.canonical.com/updates/ focal-dell public
# deb http://dell.archive.canonical.com/updates/ focal-oem public
# # deb-src http://dell.archive.canonical.com/updates/ focal-oem public
# deb http://dell.archive.canonical.com/updates/ focal-somerville public
# # deb-src http://dell.archive.canonical.com/updates/ focal-somerville public
# deb http://dell.archive.canonical.com/updates/ focal-somerville-melisa public
# # deb-src http://dell.archive.canonical.com/updates focal-somerville-melisa public
# EOF'
# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F9FDA6BED73CDC22
# sudo apt update -qq
# sudo apt install oem-somerville-melisa-meta libfprint-2-tod1-goodix oem-somerville-meta tlp-config -y
# sudo pam-auth-update
echo "*******docker*******"
sudo pacman -S --noconfirm --needed docker
echo "*******1Password*******"
sudo snap install 1password
echo "*******VS Code*******"
sudo snap install --classic code
echo "*******1Password*******"
sudo snap install postman
echo "*******Slack*******"
sudo snap install --classic slack
echo "*******Sublime*******"
sudo snap install --classic sublime-text
# echo "*******Chromium*******"
# Install brave (below) instead of Chromium bc it supports chrome extension store
# sudo snap install chromium
# yay -S --noconfirm chromium
echo "*******Brave*******"
yay -S --noconfirm brave-browser
echo "*******Obsidian*******"
flatpak install -y md.obsidian.Obsidian flathub
echo "*******Impression -- an ISO usb writer tool*******"
flatpak install -y flathub io.gitlab.adhami3310.Impression
echo "*******Gnome Web*******"
yay -S --noconfirm epiphany-browser
# Tip: Web can easily install web apps to Gnome
# Tip: FB MEssenger: Add custom JS to FB Messenger web app from codepile.net/pile/5NepjG9j
# Tip: MS To Do: Add https://login.live.com to "Manage additional urls" for login to work
# Tip: MS To Do: dark css: https://www.codepile.net/pile/AaMbQ09P
echo "*******Spotify*******"
# sudo snap install spotify
# Spotify app is buggy -- use natifier instead
echo "*******NVM*******"
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
nvm install 16
npm i --global tsc yarn pnpm nativefier
echo "*******Nextcloud*******"
yay -S --noconfirm --needed nextcloud-client
echo "*******GH CLI**********"
sudo pacman -S github-cli
# echo *******Anbox*******
# sudo snap install --devmode --beta anbox-installer
# sudo apt install linux-headers-generic android-tools-adb
# sudo modprobe ashmem_linux
# sudo modprobe binder_linux
# wget https://raw.githubusercontent.com/geeks-r-us/anbox-playstore-installer/master/install-playstore.sh
echo "*******Cleanup********"
sudo cp -rf /etc /etc.snap1
sudo rm -rf /tmp/*
sudo timeshift --create --comments "Post setup.sh"
echo "
Done! Your next steps:
- create a user using https://gist.github.com/bdombro/abd441b8c52bddb0083a3292a5679ff5
- enable gestures in chromium browsers by by dragging chrome-gestures-extension.crx to extensions
- enable fingerprints in user settings
- configure zsh --> `p10k configure`
"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment