first draft of installing programs
This commit is contained in:
9
desktop-env.sh
Normal file
9
desktop-env.sh
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
###########################
|
||||||
|
## DESKTOP ENVIRONMENT ##
|
||||||
|
###########################
|
||||||
|
# Designed & tested on Cinnamon XX.x
|
||||||
|
|
||||||
|
echo "desktop-env.sh not populated"
|
||||||
|
|
||||||
|
# remap caps-lock to escape (more efficient neovim)
|
||||||
|
gsettings set org.gnome.libgnomekbd.keyboard options "['grp\tgrp:win_space_toggle', 'terminate\tterminate:ctrl_alt_bksp', 'caps\tcaps:escape']"
|
||||||
143
main.sh
Normal file
143
main.sh
Normal 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
|
||||||
|
|
||||||
6
removing-stuff.sh
Normal file
6
removing-stuff.sh
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
######################
|
||||||
|
## REMOVING STUFF ##
|
||||||
|
######################
|
||||||
|
echo "## removing stuff" | tee todo.md -a
|
||||||
|
|
||||||
|
echo "* remove ~/Videos, etc" | tee todo.md -a
|
||||||
46
user-programs.sh
Normal file
46
user-programs.sh
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
##########################
|
||||||
|
## SPECIALTY PROGRAMS ##
|
||||||
|
##########################
|
||||||
|
echo "## special/single-use/professional programs" | tee todo.md -a
|
||||||
|
|
||||||
|
# GIMP (image manipulation)
|
||||||
|
apt-get install -y gimp
|
||||||
|
|
||||||
|
# Audacity (audio manipulation)
|
||||||
|
apt-get install -y audacity
|
||||||
|
|
||||||
|
# VLC (video player)
|
||||||
|
apt-get install -y vlc
|
||||||
|
|
||||||
|
# ffmpeg (A/V transcoding)
|
||||||
|
apt-get install -y ffmpeg
|
||||||
|
|
||||||
|
# OBS studio (screen recording)
|
||||||
|
add-apt-repository ppa:obsproject/obs-studio
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y obs-studio
|
||||||
|
|
||||||
|
# FreeCAD (3D parametric modeling)
|
||||||
|
apt-get install -y freecad
|
||||||
|
|
||||||
|
# 3D printing slicer
|
||||||
|
echo "* choose and install 3D slicer" | tee todo.md -a
|
||||||
|
|
||||||
|
# ProtonVPN
|
||||||
|
echo "* install protonVPN" | tee todo.md -a
|
||||||
|
|
||||||
|
# Minecraft
|
||||||
|
echo "* install Minecraft" | tee todo.md -a
|
||||||
|
|
||||||
|
|
||||||
|
# unsure about right now
|
||||||
|
# qbittorrent
|
||||||
|
# MakeMKV?
|
||||||
|
# godot?
|
||||||
|
# remote access software?
|
||||||
|
# libreoffice?
|
||||||
|
# Docker?
|
||||||
|
# Homebrew?
|
||||||
|
# Obsidian?
|
||||||
|
# Gparted/parted?
|
||||||
|
|
||||||
BIN
utils/DejaVuSansMono.zip
Normal file
BIN
utils/DejaVuSansMono.zip
Normal file
Binary file not shown.
51
utils/rndrmarkdown
Normal file
51
utils/rndrmarkdown
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
outfile="output.pdf"
|
||||||
|
display=false
|
||||||
|
identity=false # keep same filename, but append '.pdf'
|
||||||
|
# -o flag with argument for output file (default output.pdf)
|
||||||
|
# -i flag (short for identity) to simply add '.pdf' to the filename
|
||||||
|
# -d flag to automatically display the output file after rendering
|
||||||
|
while getopts "o:id" opt; do
|
||||||
|
case ${opt} in
|
||||||
|
o)
|
||||||
|
outfile=$OPTARG
|
||||||
|
;;
|
||||||
|
i)
|
||||||
|
identity=true
|
||||||
|
;;
|
||||||
|
d)
|
||||||
|
display=true
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# remove all processed args
|
||||||
|
shift $((OPTIND - 1))
|
||||||
|
|
||||||
|
if [[ $1 == '' ]] ; then
|
||||||
|
echo "fatal: please provide an input file"
|
||||||
|
echo "usage: rndrmarkdown [-d] [-o <outfile>] infile.md"
|
||||||
|
echo "usage: rndrmarkdown [-d] [-i] infile.md"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
infile=$1
|
||||||
|
|
||||||
|
if [ $identity = true ]; then
|
||||||
|
outfile="$1.pdf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "in $infile out $outfile display $display"
|
||||||
|
|
||||||
|
pandoc -s \
|
||||||
|
-V linkcolor:blue \
|
||||||
|
-V fontfamily:courier \
|
||||||
|
-V fontsize=12pt \
|
||||||
|
-V geometry:margin=0.85in \
|
||||||
|
-o "$outfile" "$infile"
|
||||||
|
|
||||||
|
if [[ $display == true ]] ; then
|
||||||
|
echo "opening $outfile..."
|
||||||
|
xdg-open $outfile
|
||||||
|
fi
|
||||||
|
|
||||||
Reference in New Issue
Block a user