| 6 Oct 2025 |
Alessandro Candido | In reply to Francesco Se non ricordo male ci sono degli helper in lib che puoi usare per dire alla merge function di mettere qualcosa prima o dopo di qualcos'altro Secondo me è chiaramente qualcosa con cui fare il callo. Ma non è così terribile. Se hai poche occorrenze, puoi usare mkBefore/mkAfter. Se ne hai tante, cominci a usare mkOrder 1000, 2000, 3000... che poi è quello che fai tipicamente anche coi file in etc/ quando la configurazione è in una cartella e non in un unico file
https://nixos.org/manual/nixos/stable/#sec-option-definitions-ordering | 03:23:10 |
David | si è un workaround 🤷♂️ | 07:36:30 |
David | se non ha un default significa che viene valutata solo nei casi in cui è obbligatorio metterci un valore, in quel caso probabilmente sai che valore vuoi metterci | 07:39:09 |
Andrea Ciceri | Io quello intendevo per "unsettare" | 07:46:01 |
Andrea Ciceri | Non funziona sempre pero', se un default non ce l'ha? | 07:37:17 |
Andrea Ciceri | Non puoi neanche togliere elementi da una lista gia' settati in altri moduli che io sappia (o forse c'era un modo? O un workaround?) | 07:43:32 |
Andrea Ciceri | Il module system e' veramente versatile, puoi anche creare dei nuovi tipi che "mergiano" come vuoi te.
L'unico limite che mi da fastidio con cui spesso mi sono scontrato e' che non puoi "unsettare" un'opzione settata un altro modulo. | 07:35:18 |
Andrea Ciceri | Questo e' vero anche per i freeform module? Tipo se importo un modulo che mi setta app.settings.chiave (che e' un freeform module diciamo) ma io non voglio ce chiave appaia nel json/toml/quello che e' | 07:42:50 |
David | me le segno e controllo, non avevo mai pensato al primo caso | 07:44:22 |
David | non so se si può fare qualche magia facendo un modulo wrapper | 07:47:47 |
David | Puoi forzare il valore a il suo default | 07:36:03 |
David | tecnicamente è vero, non si può fare unset, non c'è un valore per "undefined" | 07:39:46 |
David | nel secondo in non vuoi fare "unset" del valore, vuoi proprio togliere una definition e non si può fare | 07:45:11 |
Andrea Ciceri | E comunque non lo usi da dentro il modulo stesso, devi prendere il punto fisso gia' computato | 07:53:16 |
Andrea Ciceri | Ma e' computazionalmente pesante | 07:52:20 |
David | non si può fare il filter perché:
- se fai il set alla stessa priorità diventa un infinite recursion
- se fai il set a una priorità più alta non hai accesso alla versione calcolata delle altre priorità | 07:51:10 |
Andrea Ciceri | esatto, stavo per scrivere la prima! Forse puoi usare extendModules | 07:51:58 |
David | o forse si, ma è una cosa così internal che non la userei comunque | 07:51:30 |
Francesco | Anzi il filter non so se sia possibile, ma mkForce sì | 07:50:02 |
Francesco | Nel secondo caso credo che tu possa andare a fare un filter sulla lista. So che se vuoi forzare una lista ad essere vuota puoi usare mkForce tipo environment.defaultPackages = lib.mkForce [] ti toglie tutti i default packages | 07:48:57 |
Francesco | Eh sì hai ragione | 07:51:50 |
Andrea Ciceri | In reply to David non so se si può fare qualche magia facendo un modulo wrapper Alla fine ho sempre trovato un modo eh, pero' sarebbe bello ci fosse un modo meno hacky. C'e' anche l'opzione drastica di usare disableModules e copia/incollare una versione diversa del modulo | 07:50:40 |
Francesco | A questo punto servirebbe un meccanismo tipo gli overlay per le options ma mi sembra un po' eccessivo 😅 | 08:08:34 |
Francesco | In reply to Andrea Ciceri esatto, stavo per scrivere la prima! Forse puoi usare extendModules Non lo conoscevo extendModules, interesting | 08:08:55 |
| 10 Oct 2025 |
Nonno Felice | Ah sì questo lo sto provando per fare girare tipo browser in isolamento | 11:22:18 |
Andrea Ciceri | @gecko4242 mi ero dimenticato di dirlo l'altro giorno ma come alternativa ancora piu' isolata ai NixOS containers (ma che comunque condivide lo store con l'host) c'e' anche questo: https://github.com/microvm-nix/microvm.nix | 11:12:23 |
gecko | Me ne aveva parlato un amico (che sta a Vienna, se no l'avrei aggiunto qui), ma a me l'idea di tirare su VM per niente mi da fastidio :P | 13:44:18 |
gecko | Signore Iddio c'ha dato i namespace, usiamoli | 13:44:47 |
Andrea Ciceri | a proposito di namespace e modi per far girare applicazioni in maniera isolata al nixcon ci sono stati due talk rigurdo questi due progetti.
https://github.com/gmodena/nix-flatpak?tab=readme-ov-file Questo semplicemente ti fa installare dichiarativamente applicazioni flatpak mi sembra di capire, quindi sempre bubblewrap/namespaces sotto
https://sr.ht/~alexdavid/jail.nix/ Questo sempre usa bubblewrap e ti lascia usare nix per impostarlo, pero' questo e' piu' pensato per eseguire output di derivazioni mi sa, mentre l'altro proprio per pacchetti flatpak. | 16:22:13 |
| 11 Oct 2025 |
Nonno Felice | https://bit.ly/3spIusR | 08:22:47 |