This is the set of tools that I use for day-to-day activity. Each major component will include each of its copy-and-paste install instructions, assuming that you are working from the base directory of this repository. To allow changes to be reflected immediately after any edits, all custom files will be soft-linked to the required repositories.
The dependencies for running the various items here can be handled either by:
decman: The declarative wrapper for ArchLinuxpacman. The modules for using that can be found in thedecmandirectory.home-manager: The declarative system used by Nix/NixOS, simply copy this directory to the standard~/.config/home-manager/directory, and runhome-manager switchto get the packages defined here repository.gentoo-protage(currently CLI-only): the list of packages that are to be installed can be found in theportage-cli-tools.txtfile. Pipe the contents to theemergecommand to save this.
After the main package installs, you will still need to add the various configuration files as a symbolic links into
your user directory. This repository provides the symlinkmgr tool in the ./bin/common/ directory, and you
can run this like:
./bin/common/symlinkmgr ./config/links-cli.txtThis links that are managed by this tool will be kept in a logfile so that links can be cleanly removed when the system is updated.
The package managers should be used for getting the libraries required to use the user tools and ideally nothing more.
This is an attempt to help ensure that this same repository can be used regardless of what system is being used, and not
tied to any single package management system. Configuration should largely be handled by the symlinkmgr mentioned
above. One exception to this rule is the use of decman to hard-wire GUI configuration into the user home directory.
These are configurations that are not expected to be changed often.
-
config: this directory should mirror the structure that is used in$HOME/.configfor files that you want to have version managed. Most application configurations are expected to sit here and be linked to the home folder. There are 3 exceptional applications that we want the directories to be elevated to the primary directory:nvim: My preferred text editor, with the most involved configuration.zsh: My preferred shell, with the most machine-dependent configurations.tmux: My preferred terminal multiplexer, with the (currently) my most experimental developments.
-
share: this directory should mirror the structure that is used in$HOME/.local/sharefor files that you want to have version managed. These typically contain small, one-off configurations for some cross-application configurations. -
bin: Custom helper scripts for terminal applications. The scripts here should either be python or bash, with the more exotic dependencies listed by the package manager session. There are currently 3 categories, the exposure of these paths are handled by thezshconfigurations. -
misc: Configuration for standard but not preferred tools:bashandvim. These will not be handled directly, but should serve as a reference for when setting on an environment where the fancier tools are not available. -
pkg: This is where the package management files should be placed.
Custom latex aliasing, symbols, and styling files. This is mainly for standalone documents generate without minimum document format restrictions and not publication ready. For any serious publications, it would be better to directly create a separate copy to ensure the object styles are properly frozen.
The packages here expected most of the common texlive packages for math writing are installed in the system
(which should be the case after installing the more common texlive-* packages from the official Arch repository). Some
external dependencies might be needed for the font configuration to function. For additional details, see the
texmf/tex/latex/README.