# repo containing configs and scripts to set up a box ### prerequisites - when running on a fresh system, ensure package manager is configured - i.e. source repos, mirrors, etc. are configured - zsh is installed (scripts are written for zsh) - ensure sudo access is configured for the current user (2025-01-27, not needed on macos) - export the env var `BOX_SETUP_OS` to indicate the operating system - options defined in `set_script_env_vars` file ##### prereqs, os specific, linux-placeholder - (currently none) ##### prereqs, os specific, macos - have to first install the package manager, [homebrew](https://brew.sh/) - for yabai window manager (at least for now, so as to not mess with SIP settings) - create 9 spaces/desktops - in system settings, manually set keyboard shortcuts to switch between spaces - in system settings, for desktop/dock/mission-ctrl: - `click wallpaper to reveal desktop`: set to "only in stage manager" - all `drag windows to corner/edge/place` types of options: disabled - `rearrange spaces based on recent use`: disabled - `when switch to app... switch to space with open windows of app`: disabled - `displays have separate spaces`: enabled - `show files on desktop`: enabled ### script run - git clone this repo (TODO: consider adding logic to handle automatically) - from the repo's root directory, run `./box_setup` ### todo items - config for nvim - config for mpd, mpc, ncmpcpp - config for ghostty - config for mpv - also, on macos, get it to open within terminal or just don't install it - config for gimp, `src_files/.config/GIMP` (dir) - set things in gtkrc only? still need to nest that within a sub dir? - or maybe just configure in gimp's gui, copy the whole resulting dir into `src_files/.config/GIMP` (edit out and delete what i don't need) and call it a day - for whatever is causing it, editor/terminal/other, git rid of ligatures/name? - for example, `>=` is two chars (`>` then `=`), not one char/symbol - decide on window manager for linux, then do config - look into xquartz for macos (x/xorg emulation or something?) - build in flags/logic for skipping certain installs/builds (and maybe configs?) on a given system (i.e. don't install on a company box, on a server, etc.) - decide on and implement approach for languages and versioning - docker? or alternatives like podman? any license concerns? - asdf, or language-specific version managers? - hybrid of the above?