first draft of installing programs

This commit is contained in:
2026-07-11 16:52:50 -05:00
commit ef7a763d4b
6 changed files with 255 additions and 0 deletions

143
main.sh Normal file
View File

@@ -0,0 +1,143 @@
#!/bin/bash
# Last updated: 7/4/2026
# This was designed for Linux Mint XX.x; most of it should work for other distros. the desktop-environment.sh code will probably need to be different for anything that's not Cinnamon.
USER_DIR="/home/evan"
# Some things here require manual install because they aren't in apt repositories, don't have another stable installation source, and I don't want to rely on a static download location.
# These things will all be put into a TODO.md file in the current directory along with brief notes/instructions.
# check for root access
if [ "$EUID" -ne 0 ]
then echo "please run this script as root"
exit
fi
touch todo.md
mkdir -p /usr/local/bin
chmod 755 /usr/local/bin
apt-get update
#######################
## DEV/PROGRAMMING ##
## ESSENTIAL TOOLS ##
#######################
echo "## dev/programming & essential tools/programs" | tee todo.md -a
# Install some apt packages
apt-get install -y git jq build-essentials unzip # for development
apt-get install -y ripgrep # I honestly don't remember why I installed these
echo "* globstar?" | tee todo.md -a
# Install Python & uv (package manager)
# link /usr/bin/python to a real python install
echo "* install python" | tee todo.md -a
# Node.js 24 (with nvm - https://github.com/nvm-sh/nvm)
# also required for pyright language server (neovim)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.5/install.sh | bash
\. "$HOME/.nvm/nvm.sh" # in lieu of restarting the shell
nvm install 24
echo "* verify nvm stuff added to correct bashrc" | tee todo.md -a
# install a nerd font (provides special symbols for zsh/starship)
mkdir -p /usr/share/fonts/truetype/DejaVuSansMono/
unzip ./utils/DejaVuSansMono.zip /usr/share/fonts/truetype/DejaVuSansMono/
# zsh (better shell)
echo "* add zsh and starship, etc. + nerd font" | tee todo.md -a
apt-get install -y zsh
# starship (shell prompt)
curl -sS https://starship.rs/install.sh | sh
# echo 'eval "$(starship init zsh)"' | tee "#USER_DIR/.zshrc" -a # should already be in zshrc
mkdir -p "$USER_DIR/.config"
cp ./utils/starship.toml "$USER_DIR/.config/starship.toml"
# Neovim
echo "* install neovim & clone config" | tee todo.md -a
# Other editor(s) (TBD)
echo "* investigate and install other IDE(s)" | tee todo.md -a
# Brave browser
curl -fsS https://dl.brave.com/install.sh | sh
# GitHub SSH keys
echo "* generate new SSH key and add to GitHub?" | tee todo.md -a
# things I'd rather not install but have to
# Discord (chat)
echo "* install Discord (chat)" | tee todo.md -a
# Zoom (video call)
echo "* install Zoom (video call)" | tee todo.md -a
############################
## WORKFLOW/SMALL TOOLS ##
############################
echo "## workflow helpers, small tools, and utilities" | tee todo.md -a
# pbcopy/pbpaste (from macOS)
apt-get install -y xclip
printf '#!/bin/bash \nxclip -selection clipboard' | tee /usr/local/bin/pbcopy
chmod 755 /usr/local/bin/pbcopy
printf '#!/bin/bash \nxclip -selection clipboard -o' | tee /usr/local/bin/pbpaste
chmod 755 /usr/local/bin/pbpaste
# WordNet & def utility
apt-get install -y wordnet
printf '#!/bin/bash \nwn $1 -over' | tee /usr/local/bin/def
chmod 755 /usr/local/bin/def
# Artha (WordNet dictionary)
apt-get install -y artha
# qpdf (pdf manipulation)
apt-get install -y qpdf
# rndrmarkdown markdown renderer
apt-get install -y pandoc
cp ./utils/rndrmarkdown /usr/local/bin/rndrmarkdown
chmod 755 /usr/local/bin/rndrmarkdown
echo 'alias rmd="rndrmarkdown"' | tee ~/.bashrc -a
# readline (for piping 1 line into wc)
printf '#!/bin/bash \necho "$(head -n $1 $2 | tail -n 1)"' | tee /usr/local/bin/rline
chmod 755 /usr/local/bin/rline
echo "* verify rline formatted correctly"
# Calc (command-line calculator)
apt-get install -y calc
# OpenSSH server (prob already has ssh client)
apt-get install -y openssh-server
echo "* verify has openSSH client" | tee todo.md -a
# Wine (run windoze apps)
apt-get install -y winehq
# Gpick (color picker)
apt-get install -y gpick
# ksnip (screenshot)
apt-get install -y ksnip
# btop (system resource monitor)
apt-get install -y btop
##########################
## SPECIALTY PROGRAMS ##
##########################
source user-programs.sh
###########################
## DESKTOP ENVIRONMENT ##
###########################
# designed & tested on Cinnamon XX.x
source ./desktop-env.sh