This repository contains scripts designed to streamline the setup and operation of machines in the university lab, with support for both windows and macOS.
The goal of this project is to fully harness the potential of lab machines. Since students can't always guarantee access to the same machine each time, these scripts help set up the environment quickly and efficiently.
To start the setup process on a Windows machine, open PowerShell and run the following command:
Set-ExecutionPolicy Bypass -Scope Process
iwr -useb https://bit.ly/utas-setup-win | iex
This setup script has been tested on Windows 11 in the Launceston Lab and automates the installation and configuration of various tools, including:
jq
, jid
, marp
(Markdown to Slides), gh
(GitHub CLI), fastfetch
, dua
(Disk Usage Analyzer), tldr
(simplified man pages), carnac
(for displaying keystrokes during demonstrations), sysinternals
(ZoomIt
for efficient demonstrations), yt-dlp
, and msys2
(which supports tmux
on Windows), along with several VSCode extensions.oh-my-zsh
, and enables Emacs keybindings by default.git st
for git status
and git lg
for visualizing Git logs. For a complete list, see the Git configuration section.To start the setup process on a Mac machine, open Terminal and run the following command:
/bin/bash -c "$(curl -fsSL https://bit.ly/utas-setup-mac)"
source ~/.profile
This setup script has been tested on macOS in the Launceston lab with the following execution times:
real: 2m32.440s
user: 0m32.330s
sys: 0m18.064s
It automates the installation and configuration of various tools, including:
Alias Setup: Configures essential aliases and functions within the ~/.profile
file. This includes utas
to quickly copy your UTAS email to the clipboard—handy in various scenarios—SSH shortcuts for commonly used lab servers, and awake
to keep your Mac awake during long tutoring sessions.
Homebrew Installation: Installs Homebrew, the de facto package manager for macOS, in a user-specific location (~/.local/Homebrew
). The script ensures that Homebrew’s binaries are added to your PATH and configures Homebrew Cask options to install applications in the ~/Applications
directory.
Git Configuration: Sets up useful Git aliases, such as git lg
for a graphical log view and git st
for quick status checks.
Zoom Installation: Installs Zoom via Homebrew without requiring root privileges. Since Zoom is not pre-installed on the lab's Mac machines, this setup allows students to attend Zoom sessions while continuing their work in the Mac lab. This helps avoid the inconvenience of switching to a Windows machine. However, please note that screen sharing is not permitted on the lab's macOS machines due to permission restrictions.
iTerm2 Version Lock: Locks iTerm2, a popular terminal emulator for macOS, to version 3.4.23, preserving this specific version against future updates. The repository includes my personal iTerm2 settings, which will be cloned into your home directory during the setup process. You can restore these settings to experience the configuration firsthand. I've increased the font size to 24 and set the opacity to 0.33 for better visualization. Additionally, I've configured the option key as the meta key, enabling the use of Bash built-in readline shortcuts for efficient command-line editing. For more details on these shortcuts, you can explore the GNU Readline Library. Building these shortcuts into muscle memory can enhance improve our CLI experience.
VSCode Extensions: Installs a set of VSCode extensions tailored for development, including GitHub Copilot, Python-related tools, and remote SSH capabilities, to enhance your coding and debugging experience on macOS.
Utilities and Tools: Installs a variety of useful command-line tools, such as tlrc
, jid
, pandoc
, jq
, zip
, and dua-cli
, to enhance productivity. These tools are essential for tasks like data processing, text formatting, and disk usage analysis.
Personal Customization: If a custom customization
function is defined, the script will execute this function to apply additional personal preferences, ensuring your environment is tailored to your specific needs.
KIT718 and KIT719 Dependencies: Installs specific dependencies required for the KIT718 and KIT719 units, such as Python packages for data science (matplotlib
, scikit-learn
, pandas
, scikit-image
) and a Sense HAT emulator for KIT719. These are commented out by default and included for demonstration purposes only, due to the execution time would be tremendous.