o1lo01ol1o has quit [Remote host closed the connection]
o1lo01ol1o has joined #home-manager
<siraben>
Is there a way to specify garbage collection in home manager in darwin?
<siraben>
Also, what's a good way to clear all manually user installed packages without accidentally deleting nix as well?
<NobbZ[m]>
@sirab
<NobbZ[m]>
* @siraben, perhaps you can create a service that runs regularly?
<siraben>
NobbZ: No way to declaratively do it like in NixOS?
<NobbZ[m]>
You can create services through HM, or is that not possible on darwin?
<siraben>
Hm, on NixOS it was gc.enable = true;
<siraben>
Or something like that
<NobbZ[m]>
I know, but its a system config concern there, not HMs.
<siraben>
Ah, I see.
<siraben>
Then I'll have to create a service. Thanks.
<NobbZ[m]>
Though I've heard `nix-darwin` were a replacement for system configuration on mac, but perhaps I missunderstood how things work there.
<siraben>
Yeah, I might consider switching to `nix-darwin`, not yet though. I recently switched to using HM and deleted homebrew
<NobbZ[m]>
And deleting unused packages is usually done through a GC
<siraben>
NobbZ: Right, but I want to be able to only manage packages through HM not `nix-env`, maybe I'll install a package through `nix-env` and forget
<NobbZ[m]>
`nix-env -q --installed`, remove all except `home-manager-path`
<NobbZ[m]>
I do not use `nix-env` anymore, though I still have entries in the list, because they are still there from when I did, and just not have found to migrate those.
<pickfire>
Can home manager invoke pkgs.mkShell from nix to setup i18n locale?
<pickfire>
NobbZ[m]: Oh, you don't use `nix-env`? What do you use?
<NobbZ[m]>
home-manager…
<pickfire>
Oh
<pickfire>
NobbZ[m]: Do you know how to configure stuff from pkgs.mkShell from nix to setup i18n locale?
<NobbZ[m]>
Sorry, I don't get that question…
<pickfire>
On linux usually we need to change /etc/locale.gen
<pickfire>
But I don't see that for home-manager.
<NobbZ[m]>
`mkShell` creates something that is only usable for `nix-shell` command, no way to build it or use it as `buildInput`.
<pickfire>
I saw there is i18n.supportedLocales in nix.
<NobbZ[m]>
`/etc` is systems conern, `home-manager` is managing user settings
<pickfire>
But I can't use i18n.supportedLocales in home-manager.
<pickfire>
But home-manager cannot use my /etc locale, I am not using NixOS.
<pickfire>
So my locale is broken and I had to uninstall home-manager.
<NobbZ[m]>
Yes, we talked earlier about that today. You need a way to source `hm-session-vars.sh` into your shell.
<pickfire>
It's sourced, I checked.
<pickfire>
I echoed the variables in hm-session-vars.sh and it's there.
<NobbZ[m]>
Back when I was on ArchLinux + nix + HM, I had no problems with the locale, and I didn't even set it in HM…
<pickfire>
Oh, I also use arch linux.
<pickfire>
NobbZ[m]: What did you set for your locale?
<NobbZ[m]>
`de_DE.UTF-8`
<NobbZ[m]>
Though today it is `en_US.UTF-8` (nixOS)
<pickfire>
Huh? Even `en_US.UTF-8` is not working for me. T_T
<NobbZ[m]>
And as I said, I never set it through `home-manager`, I always kept it as a system config responsibility.
<pickfire>
My system had it set, but when I installed home-manager, it comes with man-db.
<pickfire>
When I type `man man`, it uses nix's man from home-manager, then `env LANG=zh_CN.UTF-8 man man` broke.
<NobbZ[m]>
In what sense?
<pickfire>
The two-width chinese characters become one-width.
<pickfire>
It's like all the characters is merging together.
<pickfire>
Even typing `locale` got some errors.
<pickfire>
And UTF-8 broke, kakoune starts displaying weird characters.
<NobbZ[m]>
As far as I know, nix provided stuff comes with english only anyway.
<pickfire>
Ah, I didn't know about that.
<pickfire>
Don't they keep the original locales?
<NobbZ[m]>
Not quite sure. I've read in the forums once, that enabling real localisation would be far too complicated and increase store sizes a lot. Some things where it doesn't coast much, or where it can be loaded at runtime, there it might work, but when its compiled hard into the binary, often just en_* or C is kept.
<NobbZ[m]>
Can't even find that post now…
<pickfire>
Ah, so basically nix can only be used english only?
<pickfire>
Weird, fcitx is available in nix though.
<NobbZ[m]>
Again, I was just repeating with my own words what I understood from that thread. And I'm also not sure what fcitc is…
<NobbZ[m]>
* Again, I was just repeating with my own words what I understood from that thread. And I'm also not sure what fcitx is…
<pickfire>
fcitx is an IME (Input Method Editor) to insert CJK characters.
<pickfire>
So it means someone was using it to input Asian characters.
<NobbZ[m]>
Not providing localisation is quite different from not providing tools that only have a local use.
<pickfire>
CJK* not full asian
<pickfire>
Yes, but some does not even provide tools, nix is considered better in that sense.
<NobbZ[m]>
For me as someone who is used to Latin scripts only, CJK is not much different to Asian scripts :D
<NobbZ[m]>
If you try bash or zsh, enabled through HM, does it work better then?
<pickfire>
Err, no. Asian have a bunch of scripts, CJK is square, others usually sticks together.
<pickfire>
Never tried that but I wouldn't do that too, I am stuck with fish as of the time being.
<pickfire>
Last time I used zsh but needs too much configuration, fish's defaults is very good.
<NobbZ[m]>
Well, geographically kyrillic is Asian as well, isn't it?
<pickfire>
Ah, you mean the russian characters?
<pickfire>
They seemed more latin to me.
<NobbZ[m]>
I really can't work with fish, as it's incompatible to any example on the internet... But it's your choice. But just to test if it works, zsh or bash should be fine.
<pickfire>
No, I tried using bash to run `man man` after installing home-manager.
<pickfire>
Same issue.
<pickfire>
I don't think it is related to shell. Probably somewhere wrong with locale.
<NobbZ[m]>
Was it a bash managed through HM?
<pickfire>
Oh shit
<pickfire>
Haha
<pickfire>
en-US.UTF-8
<pickfire>
No wonder, it should be en_US.UTF-8
<pickfire>
GG
<pickfire>
But I wish nix could have told me that I am setting a non-existent locale.
<NobbZ[m]>
I haven't even realised...
<pickfire>
Weird, it didn't error out when home-manager switch, it just sets the locale happily.
<pickfire>
Nice, it works now.
<NobbZ[m]>
Yeah, for nix it's just a string. There is nothing that would check for validity.
<pickfire>
Oh, no. man still doesn't work. Only `locale` works.
<pickfire>
man can only display english man pages, not others in system.
<NobbZ[m]>
You might need to adjust `MAN_PATH` or what the name was, to include nix managed manages as well as the wrapping is location
<pickfire>
I can by default see the man pages from home-manager.
<NobbZ[m]>
Yes, that's why I say, you also need to add the systems managed to the man path
<pickfire>
Oh, this works without issue `env LANG=C.UTF-8 man man`.
<pickfire>
NobbZ[m]: No, I can also see system man pages by default.
<pickfire>
Only that I can't see those man pages from other locales (`en_US.UTF-8`, `zh_CN.UTF-8`).
<pickfire>
I think man from home-manager maybe hard-coded the locale LANG=C.UTF-8?
__monty__ has joined #home-manager
<NobbZ[m]>
Well, If you set an explicit locale, you won't see those resources that differ in locale. C though means, give me whatever the default is
<NobbZ[m]>
Having most of your system based on a zh* locale and the nix parts on en* will probably not work very long...
<pickfire>
Oh, I just realized env LC_TIME=ja_JP.UTF-8 /usr/bin/exa -l / won't work anymore.
<pickfire>
I mean env LC_TIME=ja_JP.UTF-8 exa -l /
<pickfire>
So it means nix is only usable for those that only want english locale? T_T
<pickfire>
Even though I use english mainly but sometimes I do still want to read other locales.
<pickfire>
I also probably wouldn't set it to C even though I use en_US a lot, I don't see why en_US should be the default.
<pickfire>
Thanks for the help. NobbZ[m]
<NobbZ[m]>
I never fully understood all the locale things, but I learnt early, that it's not meant to be mixed all day, but consistently
<pickfire>
I do think nix is good in terms that you don't have to write custom rc to itegrate between applications.
<pickfire>
Well, one could still set a consistent zh_CN.UTF-8 locale but I don't think it is possible.