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'sPATH.dotfiles/: Contains configuration files (dotfiles) to be symlinked into the home directory.packages/: Contains lists of packages to be installed by theinstall.shscript. 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
- Place the new dotfile in the
dotfiles/directory. - The
install.shscript will automatically symlink it to the home directory.
Adding a new script to bin/
- Add the new script to the
bin/directory. - Ensure the script is executable (
chmod +x).
Adding a new package
- Identify the appropriate package list in the
packages/directory (e.g.,packages/cli,packages/kali). - Add the new package name to the list.
- 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.