Files
skel/AGENTS.md
David Tomaschik aea7b0927e Fish updates
2026-02-17 12:31:12 -08:00

2.6 KiB

Installation and Environment

This is a set of dotfiles and utilities for setting up my personal environment on POSIX-style environments. It is cloned from github and installed from the install.sh script.

It mostly relies on symlinking dotfiles and other resources into the appropriate locations, but also installs dependencies in various ways.

I primarily target Debian Linux-based (Debian, Ubuntu, and Kali Linux) systems as well as MacOS. Other platforms are lower priorities. Shell scripts ending in .sh should use only POSIX features unless there is a shebang line at the beginning suggesting a different shell will be used.

zsh and fish are the key interactive shells to be configured, but bash may also be used at times.

Project Structure

  • bin/: Contains executable scripts that should be available in the shell's PATH.
  • dotfiles/: Contains configuration files (dotfiles) to be symlinked into the home directory.
  • packages/: Contains lists of packages to be installed by the install.sh script. Each file in this directory corresponds to a package set.
  • install.sh: The main installation script that sets up the environment, symlinks dotfiles, and installs packages.

Notes on Security Issues

It is safe to have scripts and tools re-invoke themselves with sudo when they require elevated privileges, as these are my own. Do not attempt to remove these use cases.

Making Changes

IMPORTANT: Only make those changes which are explicitly requested. If you identify other issues, notify me about them, but do not suggest changes until I ask for them.

When making large changes, explain your chain of thought transparently and explain solution design.

If making changes that affects how the user installs the tools, update README.md accordingly.

Adding a new dotfile

  1. Place the new dotfile in the dotfiles/ directory.
  2. The install.sh script will automatically symlink it to the home directory.

Adding a new script to bin/

  1. Add the new script to the bin/ directory.
  2. Ensure the script is executable (chmod +x).

Adding a new package

  1. Identify the appropriate package list in the packages/ directory (e.g., packages/cli, packages/kali).
  2. Add the new package name to the list.
  3. If a new package set is required, create a new file in the packages/ directory.

Platform-specific changes

When making changes that are specific to a platform (e.g., Debian vs. macOS), please check for existing conventions in the install.sh script or other files. Use conditional logic (e.g., checking uname) to apply platform-specific settings.