| 12 Aug 2021 |
elonsroadster | In reply to @elonsroadster:matrix.org Is there a standard way to allow users of a flake devShell to add further customizations to that shell? No one has any ideas for this? | 02:38:06 |
tomberek | elonsroadster: you are probably looking for "shellHook" | 03:36:10 |
elonsroadster | tomberek: I don't think so. I want to be able to modify the nix expression provided by a flake as the devShell. For example, I want to be able to add additional developer tools to the nix shell that shouldn't necessarily be added to the nix shell for everybody. My particular use case is that I want to add a language server implementation that is using the same compiler versions etc. as what is in the nix shell as part of the nix shell. | 03:42:09 |
elonsroadster | My understanding of shellHook is that its a parameter that allows the execution of additional shell commands and stuff, not a way to add or modify the derivation that actually generates the shell | 03:42:55 |
mewp | wouldn't makeOverridable work here? | 05:07:09 |
Jez (he/him) 🌦️ | In reply to @balsoft:balsoft.ru It works only if you have the channel. I don't. Oh, I see what you mean! | 06:50:46 |
elonsroadster | In reply to @mewp:nurupo.pl wouldn't makeOverridable work here? im not super familiar with that | 06:57:59 |
elonsroadster | mewp: I mean thats sort of what I'm looking for, but generally, I want to be able to use nix develop but override aspects of the devShell. makeOverrideable, only makes it so that if I somehow am able to import the flake that I can then further modify it | 07:00:09 |
elonsroadster | I believe that most of the functions that create shells probably already have makeOverridable applied | 07:00:39 |
mewp | all right but override how? as in, not what you want to change, but how would you like to change it? | 07:01:59 |
elonsroadster | so the primary use case I have is adding certain developer tools, which may not be of use to everybody | 07:02:19 |
elonsroadster | so like | 07:02:22 |
elonsroadster | I'd like to add say an lsp server to the devShell | 07:02:40 |
elonsroadster | having the lsp server in e.g. my profile, or installed globally in any way is not a good solution. Between diff projects I will need diff versions, and the version of the language server should depend on how things are set up for that particular project | 07:03:48 |
elonsroadster | so I guess one thought is that I know that there is a compat library that eelco wrote (https://github.com/edolstra/flake-compat/blob/master/default.nix) | 07:04:38 |
mewp | ah, so if I understand correctly, you want to have personal customizations to a devShell? | 07:04:56 |
elonsroadster | right exactly | 07:05:07 |
elonsroadster | this seems like it would be a pretty common thing, and something that nix develop should generally support | 07:05:25 |
elonsroadster | but yeah I guess I could do something like what flake-compat does to make shell.nix work and add the customizations there | 07:05:51 |
mewp | all right then, I'd import a customization.nix | 07:05:55 |
elonsroadster | you mean in the flake | 07:06:15 |
mewp | that would be an empty attrset in the repo, and added to gitignore | 07:06:18 |
mewp | yes | 07:06:20 |
mewp | and just change the filr | 07:06:28 |
mewp | * and just change the file | 07:06:32 |
elonsroadster | yeah | 07:06:37 |
elonsroadster | thats what i did here: https://github.com/xmonad/xmonad-contrib/pull/589 | 07:06:41 |
elonsroadster | the thing that really sucks about it | 07:06:46 |
elonsroadster | is that actually the customization file | 07:06:57 |
elonsroadster | only works if you git add it | 07:07:03 |