No description
| nix/modules/flake | ||
| src | ||
| .envrc | ||
| .gitattributes | ||
| .gitignore | ||
| .hlint.yaml | ||
| CLAUDE.md | ||
| flake.lock | ||
| flake.nix | ||
| hie.yaml | ||
| justfile | ||
| LICENSE | ||
| README.md | ||
| xmonad-config.cabal | ||
xmonad-config
Get a Haskell development environment up and running quickly. Thanks to Nix, this template is optimized for a fully reproducible and friendly development environment. It is based on:
- Nix + Flakes (via
github:srid/haskell-flake) + GHC 9.6 - VSCode + HLS
- fourmolu autoformatting
- Relude as Prelude.
.hlint.yamlis from relude
- Devshell commands are provided via just; run
justin devshell.
If you have an existing Haskell project, you should probably use https://github.com/srid/haskell-flake instead.
Getting Started
Initialize this template using:
nix --accept-flake-config run github:juspay/omnix -- \
init github:srid/xmonad-config -o ./yourproject
tldr: Install Nix, setup direnv, open in VSCode, install recommended extensions and run just run.
Full instructions: https://srid.ca/xmonad-config/start
Recommended dev environment setup: https://nixos.asia/en/direnv
Tips
- Run
nix flake updateto update all flake inputs. - Run
nix --accept-flake-config run github:juspay/omnix cito build all outputs. - pre-commit hooks will automatically be setup in Nix shell. You can also run
pre-commit run -amanually to run the hooks (e.g.: to autoformat the project tree using fourmolu, nixpkgs-fmt, etc. as well run programs like hlint). The hooks will checked as part of flake checks (thus CI). - Run
just docsto start Hoogle with packages in your cabal file. - Run the application without installing:
nix run github:srid/xmonad-config(ornix run .from checkout) - Common workflows
- Adding library dependencies in Nix: https://community.flake.parts/haskell-flake/dependency
- Adding tests: https://srid.ca/xmonad-config/tests
Discussions
Questions? Ideas? Suggestions? Join our NixOS Zulip or post in Github Discussions.