An opinionated macOS setup focused on software development.
After pressing ? key a window enumerating all contextual key mappings
appears.
| language | actions | completion | diagnostics | formatting | highlighting |
|---|---|---|---|---|---|
| bash | ☒ | ☑ | ☑ | ☑ | ☑ |
| dhall | ☒ | ☑ | ☑ | ☑ | ☑ |
| docker | ☒ | ☒ | ☑ | ☒ | ☑ |
| GitHub Actions workflow | ☑ | ☑ | ☑ | ☑ | ☑ |
| html | ☒ | ☑ | ☑ | ☑ | ☑ |
| java | ☒ | ☑ | ☑ | ☑ | ☑ |
| json | ☒ | ☑ | ☑ | ☑ | ☑ |
| javascript | ☑ | ☑ | ☑ | ☑ | ☑ |
| lua | ☑ | ☑ | ☑ | ☑ | ☑ |
| markdown | ☑ | ☑ | ☑ | ☑ | ☑ |
| nix | ☒ | ☑ | ☑ | ☑ | ☑ |
| purescript | ☑ | ☑ | ☑ | ☑ | ☑ |
| python | ☑ | ☑ | ☑ | ☑ | ☑ |
| typescript | ☑ | ☑ | ☑ | ☑ | ☑ |
| yaml | ☑ | ☒ | ☑ | ☑ | ☑ |
After pressing \ key a window enumerating all key mappings appears.
The same window shows when user starts but does not finish a key
sequence which has some action assigned to it.
Run from a directory of your choice:
nix flake init --template github:mstream/nix-chad/main#defaultUpdate any config entries to your liking, like in this example.
After any change to configuration, run from the directory where
flake.nix file resides:
nix run .#switchWhile it is easy to roll back unwanted/broken configuration by either
reverting your configuration changes or using a different nix-chad
flake revision, there are some classes of misconfigurations that are
more difficult to undo.
One of them is one that results in an error during ZSH shell
initialization. If that results in, e.g. PATH environmental variable
not being properly set, you may lose easy access to your binaries.
In this situation, to recover back to working state, you may need to:
- switch to Bash using an absolute binary path
- use GUI tools (maybe enough to edit but not enough to rebuild Nix configuration)
- set
PATHenvironmental variable manually (requires knowledge about Nix) - install needed binaries without nix (an overkill just for recovery)
- using absolute
nix storepaths (very fiddly)
None of these options are convenient and most of them require relatively broad administrative knowledge. Thus, after every switch, it is highly recommended to:
- leave current shell session open
- create a new one,
- observe if initialization scripts do not produce any errors,
- and if so, use the previous session to fix the issues
To stay up-to-date witch changes to Nix Chad, run periodically:
nix flake update
