n-osborne has quit [Remote host closed the connection]
domogled has quit [Ping timeout: 240 seconds]
domogled1 is now known as domogled
nhs has joined #nixos
plumm has quit [Ping timeout: 240 seconds]
supersandro2000 has quit [Disconnected by services]
supersandro2000 has joined #nixos
nhs has quit [Ping timeout: 256 seconds]
zebrag has quit [Quit: Konversation terminated!]
plumm has joined #nixos
zebrag has joined #nixos
Rusty1 has joined #nixos
nhs has joined #nixos
nbathum has quit [Remote host closed the connection]
red[evilred] has joined #nixos
<red[evilred]>
I have a curious question
<red[evilred]>
when you have a NixOS service for something like say, a minecraft server
<red[evilred]>
services.mincraft
<red[evilred]>
* services.minecraft
<red[evilred]>
even
<red[evilred]>
I guess unless the modulle is designed for it, you can't run multiple instances of it?
<SomeoneSerge>
RE: debugging flake-based "nix build". Just learned about "nix build -L" and "nix log /nix/store/...". They're totally awesome, but should be discoverable via "nix build --help"
domogled1 has joined #nixos
<infinisil>
red[evilred]: Yup
domogled has quit [Ping timeout: 240 seconds]
domogled1 is now known as domogled
<hexa->
nixos-containers would be a workaround
<infinisil>
I guess nixos containers is the next best workaround
<infinisil>
Hehe
<hexa->
until infinisil comes up with another rfc
<red[evilred]>
Unfortunately, nix-containers use cgroups and the java in nixos is broken for cgroups
<red[evilred]>
:-/
<infinisil>
I do have ideas!
<hexa->
Great!
rb2k has joined #nixos
<red[evilred]>
Always happy to bring problems for people to write ideas about?
* red[evilred]
looks sheepish
mbrgm_ has joined #nixos
<red[evilred]>
apparently what's happening is that cgroups in nix-containers use cgroup v1
<red[evilred]>
(even though the host uses v2)
<red[evilred]>
and java misdetects cgroup v1 and cgroup v2
<red[evilred]>
which causes anything that tries to use it to crash out as it can't read the correct fields
mbrgm has quit [Ping timeout: 264 seconds]
mbrgm_ is now known as mbrgm
nhs has quit [Ping timeout: 272 seconds]
nhs has joined #nixos
mizu_no_oto has joined #nixos
<red[evilred]>
I could probably use virtual machines
<red[evilred]>
little heavy on resources, but beats the alternatives
<red[evilred]>
or...
<red[evilred]>
I could just build all my definitions in my configuration.nix and learn how to do these things properly once and for all
<red[evilred]>
(crazy - I know)
<red[evilred]>
If I want to help NixOS more than I am now, I really do need to get over my irrational fear of some parts of the build system
nhs has quit [Ping timeout: 240 seconds]
Jd007 has joined #nixos
domogled has quit [Ping timeout: 272 seconds]
gustavderdrache has quit [Quit: Leaving.]
nhs has joined #nixos
rb2k has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
tim140123 has quit [Quit: Connection closed]
nhs has quit [Ping timeout: 265 seconds]
marcusr has quit [Remote host closed the connection]
<Gaelan>
Is there something in the hardware that cares about the partition table? I thought that was GRUB's job.
<simpson>
Lucky 10000: The motherboard has to read a sector from the hard drive and load it for the CPU. Traditionally, it was always the first (zeroth?) sector. This is why the MBR and GRUB live at the front of the disk.
blahblah441_ is now known as blahblah441
nhs has joined #nixos
dani- has quit [Read error: Connection reset by peer]
srhb has quit [Read error: Connection reset by peer]
jackdk has quit [Read error: Connection reset by peer]
dani- has joined #nixos
CustosLimen has quit [Ping timeout: 246 seconds]
mgsk has quit [Ping timeout: 240 seconds]
sss2 has quit [Quit: Leaving]
valwal_ has quit [Ping timeout: 265 seconds]
jackdk has joined #nixos
srhb has joined #nixos
jkkm has quit [Read error: Connection reset by peer]
victorbjelkholm has quit [Read error: Connection reset by peer]
joedevivo has quit [Read error: Connection reset by peer]
inkbottle has quit [Quit: Konversation terminated!]
kozowu has quit [Read error: Connection reset by peer]
typetetris has quit [Read error: Connection reset by peer]
valwal_ has joined #nixos
joedevivo has joined #nixos
jkkm has joined #nixos
mgsk has joined #nixos
kozowu has joined #nixos
typetetris has joined #nixos
Supersonic112 has joined #nixos
victorbjelkholm has joined #nixos
CustosLimen has joined #nixos
Supersonic has quit [Ping timeout: 260 seconds]
Supersonic112 is now known as Supersonic
nhs has quit [Ping timeout: 256 seconds]
rb2k has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<supersandro2000>
on linux gpt should work in uefi and bios
<supersandro2000>
windows and mac enforce uefi for gpt
waleee-cl has quit [Quit: Connection closed for inactivity]
<srhb>
jawr: Good start. :) The "skeleton" looks right.
<jawr>
error: The option value `networking.wireguard.interfaces.wg0.peers.[definition 1-entry 3].allowedIPs' in `/home/admin/kluster' is not of type `list of strings'.
<srhb>
jawr: And how did you define allowedIPs in createWgPeer?
<jawr>
and trying to use `nix-instantiate --eval --strict ./kluster` also fails
<jawr>
ahh ofc
<jawr>
building, merci
<srhb>
*quack* :)
<jawr>
much appreciated :)
palo1 has joined #nixos
<jawr>
this is what i have so far: https://pastebin.com/8271tfvD is it more idiomatic to be using modules instead of functions?
nhs has joined #nixos
palo has quit [Ping timeout: 272 seconds]
palo1 is now known as palo
<srhb>
jawr: I prefer modules when I can get away with it, but I think it's a matter of taste. Modules always compose the same (ie. via imports) while arbitrary functions compose via arbitrary function application. I wouldn't call it un-idiomatic though. Your indentation is, however. :-P
<srhb>
jawr: Plus there's something neat about `imports = [ wg-peer kube-master kube-kubelet ];` :)
<srhb>
jawr: Makes it very clear what's going on.
<srhb>
I guess it's not really so much the composition part than it is the fact that it's a common "interface" which ultimately makes things very reusable.
<jawr>
yeah originally i was using imports, but i found that a lot was repeated
nhs has quit [Ping timeout: 246 seconds]
<srhb>
That really oughtn't be the case.
<srhb>
But practice makes perfect :)
<jawr>
im using vms so theyre all using the same hardware-config.nix abar the uuid for example
<srhb>
Well, you're still free to do that.
<jawr>
this is for nixops if it wasnt clear before
<srhb>
I guessed (or one of its many clones) :)
<jawr>
ill try changing this to modules so i get more exposure. once again thanks for your help
<srhb>
jawr: A quick rundown of my preferred layout is basically `hostname = { imports = [ role1 role2 role3 common-hardware ]; host-specific-stuff = ...; };`
<jawr>
but if role1 is a .nix file, how are you passing arguments to it?
<jawr>
or role1 is statically typed to that roles configuration?
<srhb>
jawr: I do that via the module system. Either I create a specific options module with the necessary "arguments" or I use the ad-hoc config.lib attrset
<srhb>
jawr: In fact, the "Args" can just be defined in each role
<srhb>
jawr: The key point I'm trying to make, I think, is that defining new ad-hoc options is really cheap, and makes things compose nicely via the module system :)
ahmed_elgabri has joined #nixos
<jawr>
ok, i will have another crack at the modules method. current way definitely doesnt feel nix'y
<srhb>
jawr: Feel free to ask if you get stuck. :) I think it'll feel "obvious" once you create a simple role module that defines some options (for you to use as args in the "main" file)
nhs has joined #nixos
<srhb>
jawr: And try at first with the little known config.lib! It's a really handy quick-and-dirty way to hack "args" :)
fabian_a has joined #nixos
<srhb>
jawr: ie. you can set `lib.role1.optionA = 42;` in your "main" file and use the value `config.lib.role1.optionA` in your role without having to define new options
ahmed_elgabri has quit [Ping timeout: 272 seconds]
<jawr>
that does indeed sound nice, going to read up on role modules
Orbstheorem has joined #nixos
<srhb>
That's just a term I've been using for our conversation, I don't think you'll find any resources online. However, it's just "modules" :)
ahmed_elgabri has quit [Ping timeout: 260 seconds]
berberman_ has joined #nixos
medvid has joined #nixos
nhs has quit [Ping timeout: 246 seconds]
berberman has quit [Ping timeout: 272 seconds]
vidbina_ has joined #nixos
shibboleth has joined #nixos
m0rphism1 has quit [Ping timeout: 256 seconds]
ptrcmd has joined #nixos
<eyJhb>
Currenty build a `make-disk-image.nix`, is it possible to run the optimize nix store after everything has been copied over?
<eyJhb>
Ie. I want to run `nix-store --optimise` ? Not sure if it is necsessary
respawn has quit [Quit: Leaving]
<supersandro2000>
you mean inside the disk image?
orivej has joined #nixos
<eyJhb>
Yes supersandro2000 :)
<eyJhb>
Trying to do a little hack and slash now, but unsure how I can specify the store path for `nix-store --optimise`
<eyJhb>
(ie. right now I am just editing the `make-disk-image.nix`, and throwing it in there to see if it actually reduces the images size (in this case)
<immae>
eyJhb: after wrapping nixos-enter you should have nix-store in /nix/var/nix/profiles/system/sw/bin/nix-store
nhs has quit [Ping timeout: 265 seconds]
ahmed_elgabri has quit [Ping timeout: 260 seconds]
<immae>
Otherwise the only way I can see in make-disk-image.nix to add some code is to hijack the configFile value (which is not protected) with a inlined shell code that redefines the umount function (which is the last command executed with the partition mounted)
<eyJhb>
immae: Wondering, shouldn't it just work with `nix-enter --root /mnt -- nix-store --optimise` ?
<immae>
eyJhb: it should, the best way is to test
lambdanature[m] has quit [Quit: Idle for 30+ days]
cypher25519[m] has quit [Quit: Idle for 30+ days]
<eyJhb>
But doesn't seem like it does much
ahmed_elgabri has joined #nixos
rhyfore[m] has quit [Quit: Idle for 30+ days]
boskote[m] has quit [Quit: Idle for 30+ days]
eganjs[m] has quit [Quit: Idle for 30+ days]
<eyJhb>
It instantly finished
<immae>
So it doesn’t have anything to do I guess
<eyJhb>
Trying again with verbose (if possible)
<eyJhb>
Just going to upload the current image
<immae>
if you have nothing in the logs it means it worked correctly, otherwise you may test with `nix-enter --root /mnt -- env` and look at the PATH
<eyJhb>
Oh it does something
<eyJhb>
Running it now. Would be cool if it could shrink the image noticebly from 750 MB to less!
Qwerky has quit [Remote host closed the connection]
nhs has quit [Ping timeout: 268 seconds]
<ronthecookie>
how can i enable programs.steam but using a different nixpkgs that i have imported in this file under a let binding?
<makefu>
ronthecookie: using options from different nixpkgs versions is kinda hard to get right. i recommend you copy-paste the module implementation into a nix file and import it. replace the environment.systemPackages = [ pkgs.steam ] with unstable-pkgs.steam
<ronthecookie>
makefu: alright, fair enough
nhs has joined #nixos
Qwerky has joined #nixos
Qwerky_ has joined #nixos
Qwerky has quit [Read error: Connection reset by peer]
Qwerky_ has quit [Remote host closed the connection]
<{^_^}>
[nix] @domenkozar pushed to installer-artifact « Generate installer script for each PR/push »: https://git.io/JtXTH
ATuin has joined #nixos
nhs has quit [Ping timeout: 265 seconds]
haritz has quit [Ping timeout: 256 seconds]
ahmed_elgabri has quit [Ping timeout: 265 seconds]
haritz has joined #nixos
haritz has quit [Changing host]
haritz has joined #nixos
edwtjo has joined #nixos
edwtjo has joined #nixos
edwtjo has quit [Changing host]
<ronthecookie>
how can I use fetchFromGithub in a let binding on my root configuration.nix? `{ fetchFromGitHub ? (import <nixpkgs> { }).fetchFromGitHub }:` blows up with error: anonymous function at /home/ron/git/nixfiles/hosts/cookiemonster/default.nix:1:1 called with unexpected argument 'config'
<makefu>
ronthecookie: the ... was the important part there
<ronthecookie>
makefu: yeah i did it with the ... but anyhow ive worked around that issue now
<makefu>
when you use imports = [ ./file ]; then the default function parameters are { pkgs, config, lib } i think. when you do not need everything you can add a placeholder ...
<__monty__>
If CI finishes it's already cached, so just CI. A channel needs to pass some conditions before it advances. Like the big popular packages need to have been built/cached.
<adisbladis>
shla: Our kernel package maintainer is in north america and it's just been a weekend
<adisbladis>
I think we'll see some PRs later today
<adisbladis>
Also feel free to contribute PRs yourself :)
<simonpe^^>
I often generate a script using runCommand in combination with substituteAll, I wrote a function to do that but I'm thinking there must be something like that in the standard library already
rb2k has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
malook has quit [Quit: malook]
nhs has quit [Ping timeout: 240 seconds]
Qwerky has joined #nixos
<{^_^}>
[nix] @domenkozar pushed to installer-artifact « Generate installer script for each PR/push »: https://git.io/JtXWa
rb2k has joined #nixos
fuzzypixelz has joined #nixos
dev_mohe has quit [Quit: dev_mohe]
jnbrains has joined #nixos
plumm has quit [Quit: My Mac Pro has gone to sleep. ZZZzzz…]
plumm has joined #nixos
nhs has joined #nixos
respawn_ has joined #nixos
nhs has quit [Ping timeout: 240 seconds]
aswanson has joined #nixos
jnbrains has quit [Quit: jnbrains]
hyper_ch4 has joined #nixos
<fuzzypixelz>
nix flake update --recreate-lock-file followed by nixos-rebuild switch --flake, really slows down my system to a halt
plumm has quit [Quit: My Mac Pro has gone to sleep. ZZZzzz…]
FRidh has quit [Ping timeout: 256 seconds]
<fuzzypixelz>
not during the evaluation nor the download (though they are noticeable too), but especially during the build
<fuzzypixelz>
I basically can't move the cursor anymore and have to stop using the computer
FRidh has joined #nixos
hyper_ch2 has quit [Ping timeout: 272 seconds]
nhs has joined #nixos
plumm has joined #nixos
<fuzzypixelz>
I do realize that by not upgrading my lock file very frequently (I do it once every 2 weeks?) there is much more work to do once I do upgrade it, but still? can I limit its access to ressources somehow?
<gianarb>
It is not going well, any feedback? I am probably missing some environment variable like GOROOT or GOPATH but I can't find exmaple online! Thanks
kaliumxyz has joined #nixos
oushri has joined #nixos
<simpson>
It seems like all of the dependencies are missing. I'm not sure what you've tried so far, but usually one will want to use go2nix or dep2nix depending on how the application references its dependencies.
<Ke>
I guess nix channels are added to /root/.nix-channels, how do people manage these with impermanence or something
<gchristensen>
the root user is subscribed to the channel used to create the system on startup if it isn't already subscribed to any channels, I just do that
<{^_^}>
[nix] @domenkozar pushed to installer-artifact « Generate installer script for each PR/push »: https://git.io/JtXRs
<Ke>
I guess this is rather trivial problem, but just asking
<zceejkr>
Hello, I am trying to run a service on my nixos machine and I ran into a problem. The service is running on UDP port 30000. I have opened it like so: networking.firewall.allowedUDPPorts = [ 30000 ]. Connection from LAN work fine. However, when I try connecting from an external IP, my connection seems to get filtered by the firewall. I am pretty sure my router port forwarding is set up correctly. Should the configuration I listed work on
<zceejkr>
it's own, or is there special treatment of external IPs in NixOS's firewall?
rb2k has joined #nixos
<gchristensen>
nixos's firewall doesn't treat them special afaik, so I'd look at your router a bit more carefully
<zceejkr>
Ok sorry for such stupid questions, but I found the firewall settings on my router, and I need to add specific rules about which connections to allow. It wants me to specify a Destination address and a Source address. I assume the destionation address is the LAN address of my server. For source address I want to allow any address, but if I put in 0.0.0.0, the router software complains it's not a valid address. Is there an alternative
<zceejkr>
way to specify any address?
<zceejkr>
The field just says: "Source IP address[/prefix length]:", and gives a text box...
<cransom>
use 0.0.0.0/0
<zceejkr>
Still says it's an invalid IPv4 address...
zupo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<cransom>
and it's wrong. maybe there's other docs for that router around? maybe some other magic value for that.
rb2k_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ardumont has quit [Ping timeout: 240 seconds]
zceejkr has quit [Read error: Connection reset by peer]
<gustavderdrache>
as someone who had a lot of trouble with CIDR notation, what finally clicked about the "/x" notation is that it means "keep this many bits"
<gustavderdrache>
so an address like "0.0.0.0/0" means "every bit can vary"
zceejkr has joined #nixos
<dupon1>
Hi, do people already packaged Elixir services? The nixpkgs manual is pretty light about BEAM languages
<gustavderdrache>
and "1.2.3.4/32" means "keep all 32 bits"
shibboleth has joined #nixos
<gchristensen>
ipcalc is a nice tool for visualizing it
nhs has quit [Ping timeout: 272 seconds]
ahmedelgabri has quit [Ping timeout: 272 seconds]
<oushri>
Does anyone have an example of using a separate home manager flake in a Nixos system flake? I'd like to keep them in two separate repositories (so I can use the HM in non-Nixos systems), and I'd like to avoid using git submodules. I've got my NixOS system working using flake, but I currently have the home manager config in the same repo, and use HM's Nixos modules to pull it in. But it seems like it should
<oushri>
be possible to just use 2 flakes (I'm very new to Nix).
<rdk31>
Hi guys, I'm trying to use c# extension for vscode. As far as I know there are two methods, vscode-with-extensions or installing omnisharp-roslyn manually and setting the path in vscode settings. I've tried the latter with no success as I get the error described in the issue list of omnisharp-roslyn
<drozdziak1>
In my nix-shell spec I have two inputs (docker-compose and tmuxp) that overwrite each other's PYTHONPATH with the wrong python version, what can I do about that?
<drozdziak1>
i.e. docker-compose finds a 2.7 PyYAML which breaks on module `error` and tmuxp finds 3.8 `PyYAML` which breaks on some syntax for docker-compose
<drozdziak1>
I'm reading `default.nix` in `interpreters/python`, would `wrapPython` be the correct way to do things in this case?
hiro98 has quit [Remote host closed the connection]
zakame has quit [Ping timeout: 272 seconds]
zupo_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<cwslimy[m]>
How can I delete old profiles from GRUB?
<cwslimy[m]>
I made too many and now I only have 2 options for prior system configurations, hah
zebrag has quit [Quit: Konversation terminated!]
zebrag has joined #nixos
rb2k has joined #nixos
SomeoneSerge has joined #nixos
<cwslimy[m]>
is it as simple as deleting the profile from `/nix/var/nix/profiles/`?
n-osborne has joined #nixos
oxalica1 has quit [Quit: oxalica1]
<cwslimy[m]>
* is it as simple as deleting the profile from `/nix/var/nix/profiles/`?
<cwslimy[m]>
EDIT: No. They are still in grub
zupo has joined #nixos
vrinek has quit [Ping timeout: 272 seconds]
<gchristensen>
cwslimy[m]: `nixos-rebuild boot` will clean it up
sigmundv has quit [Read error: Connection reset by peer]
<cwslimy[m]>
Ah cool, thanks!
sigmundv has joined #nixos
<cwslimy[m]>
Is there any way to generate profiles automatically with the nix language or are they all imperative? I have a few that all end up being outdated as I make changes to the system
<V>
define "generate profiles automatically"
<V>
you can add a new generation for a specific profile using nix-env -p <profile> --set <path>
alexherbo2 has quit [Ping timeout: 240 seconds]
<V>
profiles aren't something you deal with at the Nix language level, they're just a way of providing versioned environments - you have an environment for your system, one for each user on the system, and so on
<cwslimy[m]>
<V "you can add a new generation for"> As a simple example, I'd like to be able to boot up with or without VPN and some of my noisier network software enabled. These are defined in `noisy-network.nix`.
<cwslimy[m]>
<V "define "generate profiles automa"> As a simple example, I'd like to be able to boot up with or without VPN and some of my noisier network software enabled. These are defined in `noisy-network.nix`.
mallox has quit [Quit: WeeChat 3.0.1]
<ivan>
adyatlov: maybe still downloading something else
<adyatlov>
ivan: How can I see what? Verbose -v doesn't work
<ivan>
adyatlov: try nethogs as root
<V>
cwslimy[m]: I'm not sure what you're doing in Matrix, but you sent that message twice over IRC. I recommend staying away from editing/etc
turion has joined #nixos
<adyatlov>
ivan: Thanks, I see a curl process from nixbld1 user
<cwslimy[m]>
I did edit the message because I replied to the wrong one. Didn't think about the irc bridge, sorry
<drozdziak1>
What's the easiest way to wrap an existing nix-enabled Python program?
<V>
cwslimy[m]: would you find the `specialisation` module useful here?
<tpw_rules>
aynish: yeah idk how that works. it seems to just show the curl for headers, then not any progress for the actual download. it will finish at some point
<tpw_rules>
probably in a while because iirc that archive is several hundred megs
<drozdziak1>
`wrapPythonPrograms` looks promising but I wonder if there's an easier way without manual copying
dev_mohe has quit [Client Quit]
n-osborne has joined #nixos
<cwslimy[m]>
<V "cw (Annuit Coeptis): would you f"> A quick search I can't find anything about that. Do you have a link?
sigmundv has quit [Read error: Connection reset by peer]
herrin has joined #nixos
oushri has joined #nixos
sigmundv has joined #nixos
lsix has joined #nixos
rb2k has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<matthewcroughan>
prusnak: Hey, I'm trying to use your nixos/docker, and it only sets up the nix profiles for root, do you think there'll ever be a solution to this?
mcwitt has joined #nixos
<matthewcroughan>
This means that we can't use any user other than ROOT in any container made with this image.
<prusnak>
matthewcroughan: it's not mine, I just contributed - please file an issue on github
<prusnak>
@peti has the final word on it
<prusnak>
as he's the repo owner
fendor has quit [Remote host closed the connection]
vidbina_ has joined #nixos
fendor_ is now known as fendor
fendor has quit [Read error: Connection reset by peer]
<mep1911>
hi, i'm trying to install nixos on a rather new Tuxedo Polaris notebook (AMD Ryzen). Booting from the Live-ISO the display manager won't start. I tried the recent stable and unstable versions. With a recent unstable the status says "Failed to read display number from pipe"
mcwitt has quit [Remote host closed the connection]
zebrag has quit [Quit: Konversation terminated!]
zebrag has joined #nixos
<rmcgibbo[m]>
I think I had the same problem (? i can't totally remember), and I have an AMD Ryzen 7 4700U. IIRC I had to use a newer kernel.
<Yaniel>
yeah the ryzen APUs need very recent kernels
<makefu>
+1 for recent kernel otherwise the gpu is not supported
<andoriyu>
anyone has any luck using remote-ssh from vscode with nixos as target? I've read the wiki, but I'm getting node vesrsion mismatche error
cole-h has joined #nixos
<mep1911>
colemickens thx :) i'll handle it, i used to install arch and such things, but it's not my specialty, i'm out of the loop. nixos is usually easier to install than arch actually afair, can do it almost entirely graphically (with gparted)
<colemickens>
mep1911
n-osborne has quit [Remote host closed the connection]
turlando has quit [Remote host closed the connection]
<qbit>
i guess because "//" doesn't do nested stuff?
<drakonis>
still no ruby 3.0 on nixpkgs yet?
<tpw_rules>
qbit: yes, that syntax would override all of the programs attribute from baseUser
<qbit>
is there a way to inherit baseUser, and allow modifying it?
<tpw_rules>
i think there's a function but i can't recall it, or if it works in this situation
<tpw_rules>
you could say home-manager.users.bob = baseUser // { programs = baseUser.programs // {git = {..};} };
mmmattyx has joined #nixos
K0kada has joined #nixos
<tpw_rules>
alternately, because of how nix combines options, i believe you could just say home-manager.users.bob = baseUser; home-manager.users.bob.programs.git = {...};
<qbit>
hm. i tried that, but it errored with "programs.git already defined"
<cwslimy[m]>
<tpw_rules "you could say home-manager.users"> What operation is `//`?
<tpw_rules>
a // b is the attribute set a with any attributes defined by b replaced by their values in b