Install new computer (inc) 0.1.21#
Install basic software for different operating systems:
Installation for users#
First install uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
Then install inc:
uv tool install inc --python 3.12
Usage#
inc --help
Update inc#
When installed with uv tool install, update to the latest release with:
inc self update
List available scripts#
inc ls
Example output:
Available bash scripts:
conda_python311
conda_python312
dotfiles
gmsh
new_mac
Run a script#
inc run <script_name>
For example, to install gmsh:
inc run gmsh
To see what a script would do without running it:
inc run gmsh --dry-run
Install applications#
Install an individual application with the native package manager:
inc apps install gh
For the same short workflow used by the script runner, catalog applications are
also available through inc run and appear in its completion list:
inc run gh
App and profile names support shell completion after running
inc --install-completion. For example, type inc apps install g and press Tab.
Preview the command without installing anything:
inc apps install gh --dry-run
Install a predefined group of applications without confirmation:
inc apps install --profile core --yes
inc apps install --profile dev --yes
Inspect the catalog and current installation state:
inc apps list
inc apps status
inc doctor
Applications and platform package mappings are declared in inc/apps.toml.
The supported package families are Arch/Manjaro, Debian/Ubuntu, Fedora/RHEL,
openSUSE, macOS/Homebrew, and Windows/WinGet.
View script contents#
inc cat <script_name>
Installation for developers#
git clone https://github.com/joamatab/install_new_computer.git ~/install_new_computer
cd ~/install_new_computer
uv sync
Install the local checkout as an editable command that works from any directory:
just tool-install
just tool-check
For MacOs type this into a terminal first:
xcode-select --install
Testing the Mac setup flow#
uv sync --extra dev
uv run pytest
tests/test_mac_setup.py runs the setup scripts with temporary home directories,
local Git repositories, and substitutes for system-changing commands. It covers
sudo authorization, Fish returning to setup, dotfiles cloning and updates,
package failures, and paths with spaces. When Fish is installed, it also checks
the installer arguments with the real executable. CI installs Fish for this check.
These tests do not install the full application list or change macOS settings.
Before relying on a release for a fresh computer, also run inc run new_mac on a
disposable Mac or macOS VM and confirm the dotfiles links and applications work.