Hi,
how would one create a development environment for #xmonad contained within my nixos system configuration?
My flake for my system sets up xmonad with a custom config.hs
and I’d like to get a suitable dev environment when editing the config.hs
. Usually when developing for haskell, I’ll use a flake and setup a devShell
which then gets loaded by direnv
.
- is there best practice?
- my
config.hs
is in a subdirectory
My first attempt would be to just provide a shell.nix
next to my config.hs
- but that wouldn’t load the exact same xmonad as the system one, since it’s separate from the flake.
Good question. I have an xmonad config in my setup and I’d also love this.
Here’s a project where I’m using Haskell with nix flakes if it’s helpful at all: https://github.com/cardanonix/pelotero-engine/blob/main/flake.nix
I’m betting we could use and alter that flake file to achieve something to that effect. It would be a game-changer for me. I currently do the whole eval thing to test my changes and it takes FOREVER to know if I’ve done something dumb.
Here’s my meta-config, if that helps at all: https://github.com/harryprayiv/nix-config
The Haskell and Xmonad part:
home manager: https://github.com/harryprayiv/nix-config/tree/intelTower/home/programs/xmonad
Base system: https://github.com/harryprayiv/nix-config/blob/intelTower/system/wm/xmonad.nix
Ps. I started an xmonad community here on Lemmy: https://infosec.pub/c/xmonad
Edit: surely OP will reply……💀
Hi, I didn’t get a notification and then totally forgot to manually check :(
Thanks for your links, I’ll check them out! My setup is quite similar to yours.
Another idea could be to extract the home/programs/xmonad thingy into its own flake somehow.
Currently I’m trying to figure out if direnv is able to load a particular devShell somehow (and then limim it to a particular host), but didn’t make progress yet. My idea is to have a devShells entry that pulls in xmonad etc. but only gets activated if I enter the xmonad subdirectory… Mh maybe a simple shell.nix with manually managed pinning for nixpkgs could be a way forward.
I’m currently also doing the nixos-rebuild step to check the config.