Scripts for storing and versioning home directory configuration files, aka "dotfiles"
An explanatory series of articles I wrote on the subject is available here.
Unless you have configured things differently (good for you), Linux users will probably use Bash, Windows users Powershell, and Mac users Zsh.
The Unix shell scripts (they end with .sh
not Powershell), have been tested on Bash, Zsh, Busybox's Ash which is actually Dash.
The Powershell scripts (they end with .ps1
) were tested on Windows, with Powershell version 5.1.
Warning: before downloading and executing any of these scripts, read over them. I make no claims that they will work or even be safe on your system. You may want to check the function names, for instance, to make sure they do not overwrite vital functions you have already composed. You should also make sure I am not a nefarious individual intent on installing malware on your system or erasing all your files. A little paranoia is in order, as usual.
In general, the instructions for usage are available in comments at the top of each script, and/or in the articles I wrote.
Powershell users will want to first make sure their execution policies allow executing code that is unsigned. For instance the following will allow code you write (or copy and paste, or pipe from Invoke-WebRequest
to Invoke-Expression
) to execute, but insist that downloaded files have to be signed.
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
Then you can download and execute the relevant file with iwr -useb $URL | iex
or download it first then pipe/execute it with gc -Raw $FILENAME | iex
or unblock the file with Unblock-File
or if you just want to throw caution to the wind temporarily, use Set-ExecutionPolicy Bypass -Scope Process
to bypass policy entirely in the current Powershell session.
Read more about setting Execution Policies in the Powershell docs.
Feel free to open an issue if you have suggestions, questions, or glowing affirmations.
Copyright © 2023 Jonathan Bowman. All documentation and code contained in these files may be freely shared in compliance with the Apache License, Version 2.0 and is provided “AS IS” without warranties or conditions of any kind.