Debian dotfiles for a mostly WSL2-based setup with a growing list of compatible distros/environments.
Install apt packages and basic Bash profile:
curl -s https://raw.githubusercontent.com/dannybrown37/dotfiles/main/install/this_repo.sh | bashThe output of make in the root directory:
Usage: make [option]
Bootstrap scripts:
bash Install Bash profile (tmux, apt packages, etc.)
python Install Python environment (uv, select uv tools)
node Install Node.js environment (nvm, Node 22, select global packages)
deno Install Deno 2
golang Install Go environment (latest Golang version)
rust Install Rust environment (latest Rust version, select global packages)
nvim Install Neovim
vscode Install VS Code extensions and settings
all Install all of the above
gnome Install Gnome extensions
These commands require GPG keys and secrets:
sync-secrets Attempt to sync local secrets and password-store
insert-ahk Push local ahk secrets to password-store
insert-bash Push local bash secrets to password-store
insert-secrets Write all secrets files to password-store
pull-ahk Pull ahk secrets from password-store to local files
pull-bash Pull bash secrets from password-store to local files
pull-secrets Read all secrets files from password-storeahk: run all AutoHotKey scripts in the./ahkdirectory from WSL or Git Bash in the Windows environmentahk help: feed all available hotstrings intofzffor review (not selection)ahk kill: kill all running autohotkey processesahk open: open ahk/hotstrings.ahk in VSCodeahk secrets: open ahk/secrets.ahk in VSCodebuildlogs: see the latest build logs for configured AWS CodePipeline stackcdp: move directly to any directory in ~/projects (with tab autocomplete)cf: use fzf to open one or more (with tab) files in VS Codecht: curl cht.sh for commonly used tools/languages. Add new ones as needed in cht/.cht_sh_indexcpw: copy files from WSL to Windows easily, defaults to Downloads folder (with tab autocomplete)ff: Fuzzy find current folder with a preview panel.fh: Run bash history intofzfand select command to run from there.gg/google: google something from the terminal, no quotes needed, pops open a web browserlopen: open to the monitoring tab of a specific AWS Lambdamk: mkdir and cd into itnode_project_init: spin up a git repo, gitignore file, and package.json for a Node projectnvi: use fzf to open one or more (with tab) files in Neovimpip_project_init: spin up a Python package starter set of files viacookiecutterand my configuration for itpush: Send a push alert to your phonepush_to_topic: Send a push alert to a custom topicurl: Open up a URL directly using the system browser
- In the
ahk/directory, set up any number of AutoHotKey scripts:hotstrings.ahkfor generalized shortcutssecrets.ahkfor non-public shortcuts not to be committed- etc.
- In the
bin/directory, configure scripts that use dynamic data and need to invoke other functions outside of the main function - In the
config/directory, configure a Bash profile based on various settings:.bashrcholds a full config file that is symlinked to~.gitconfigholds git config info that is symlinked to~.inputrcfor Bash prompt customizations.ruff.tomlholds Python linting rules symlinked to~for global use.secretsholds data not for committing to git
- In the
./nvimdirectory, configure a Neovim profile. - In the
./.vscodedirectory:settings.jsonfor VS Code user settingsextensions.txtfor essential VS Code extensions
- In the
./wsl/directory, configure WSL-only settings and functions
- Use Ctrl+J/Ctrl+K to scroll up and down through command history
- Use escape to clear current prompt entry
Assuming you are properly authorized to do so on the machine in question:
make insert-secretsPush ./config/.secrets and ./ahk/secrets.ahk into the encrypted password-store.
Or push individually:
make insert-ahkmake insert-bash
make pull-secretsPull data from the password-store into locations at ./config/.secrets and ./ahk/secrets.ahk
Or pull individually:
make pull-ahkmake pull-bash
make sync-secretsAttempt to sync data between password-store and local secrets files. Because this may
have unintended consequences, local secrets files are backed up first (password-store
would require a commit to truly overwrite).
For when you're truly starting from scratch.
In PowerShell, choose a distro:
wsl --set-default-version 2
wsl --install -d DebianTo reset a WSL distro (for example):
wsl --unregister kali-linux