dotfiles
On Linux I mostly use GNU Bash and edit in neovim. I prefer GNOME or Pop!_OS for a graphical environment because those are the only two I've used that I know how to configure basic keybinds for.
I either use the
gnome-terminal
default
or alacritty
for a terminal
emulator. wezterm
is another good option
that I haven't tried yet.
Recently I've been trying to stand up a usable Windows environment. On Windows I use Windows Terminal for an emulator and default it to PowerShell.
Below are some notes on setup scripts and configuration files contained in the repository.
Usage
Bash scripts can be found in the bash
directory and PowerShell
scripts can be found in the ps1
directory.
Sripts generally have the form *_(setup|install).(sh|ps1)
and the script
contents leverage some common shell functions in most cases so they're
easier to read and understand.
Below are some older notes that I'm keeping in for now.
Windows Subsystem for Linux)
Ubuntu (or./
link_files.sh
symbolically links these files to your$HOME
directory./
setup_apt_packages.sh
installs usefulapt
packages./
setup_grip.sh
adds themd
alias to locally host rendered GitHub markdown./
setup_nvim.sh
installs Neovim and makes it a default terminal editor./
setup_rust.sh
installs and sets up environment variables for Rust./
setup_vscode.sh
installs and sets up VSCodium
Windows 10
It may be necessary to execute Set-ExecutionPolicy Bypass
to execute PowerShell
scripts, as well as running PowerShell
as an administrator.
.\
setup.ps1
may need to run multiple times does a few things:- Tries to install PowerShell 7
via
.\
install_ps7.ps1
- Tries to install Chocolatey (
choco
) - Runs
.\
choco_installs.ps1
to install useful system dependencies (e.g. text editors) - Runs
.\
link_files.ps1
to link our PowerShell Profile (profile.ps1
) to the correct location, plus other configurations
- Tries to install PowerShell 7
via
Design Intent
The goal is to prefer symbolic links to the actual source files in this repository rather than relying on copies or appends to files.
In .gitignore
we exclude .bash_includes/*.sh
so that members
of bash_deps
can be "loaded" in via symbolic links when the
relevant setup script is executed and the setup scripts opts to link a file.
Overall, this makes it easier to manage the N+1 case of further automating something like an initial workstation setup.