Tentative de rendre disponible un package dans home-manager

Bonjour,

Encore gros débutant en écriture de flakes, j’écris petit à petit du code.

Mon problème qui me mène à vous, c’est la tentative de package un petit script bash s’appelant sshtui, accompagné d’un fichier de configuration (pour un autre package : television).

J’arrive à produire “un truc” me permettant d’avoir programs.sshtui.enable = true;qui déploie le fichier de configuration.

MAIS, je n’arrive pas à avoir cette même commande qui s’occupe d’ajouter mon package dans home.packages.

J’ai essayé un ensemble de choses qui m’ont juste complètement embrouillé, et j’ai donc besoin d’un regard éclairé pour m’expliquer:

  • Comment atteindre mon objectif.
  • Que mon objectif est un mauvais objectif, et m’expliquer ce que je devrais faire.

Voici l’URL du projet: GitHub - gfriloux/sshtui

Comme expliqué dans le README.md, mon package est installé via:

home.packages = [
  sshtui.packages.x86_64-linux.sshtui
];

Ce qui me parait plutôt vilain, pas normal, n’est-il pas possible que juste spécifier programs.sshtui.enable = true; s’en occupe?

J’ai essayé d’écrire plein de choses dans modules/home/sshtui/default.nix pour avoir home.packagesqui référence mon packages/sshtui, sans succès.

Est-ce que je me suis complètement trompé de façon de faire?

Salut !

Je pense que ton soucis vient du fait que le nixpkgs qu’home-manager utilise pour trouver ton package ne contient pas l’overlay.

Est-ce que cela fonctionne mieux si tu rajoute quelque chose comme:

nixpkgs.overlays = [ sshtui.overlays ];

dans ta config home-manager ?

D’ailleurs, nix flake show github:gfriloux/sshtui râle car overlays devrait être un attrset et pas une fonction.

Bonjour!
Merci déjà de prendre le temps de regarder mes tentatives de savant fou!

Ajouter nixpkgs.overlays = [ sshtui.overlays ]; ne semble pas fonctionner (ou bien je m’y prends mal):

home-manager build --flake .#main
warning: Git tree '/home/kuri/.config/home-manager' is dirty
error:
       … in the left operand of the update (//) operator
         at /nix/store/l2pl49aczg4lhid2xgnr497z439sx3sm-source/modules/default.nix:61:5:
           60|     module
           61|     // {
             |     ^
           62|       activationPackage = module.config.home.activationPackage;

       error: attribute 'legacyPackages' missing
       at /nix/store/d8qr1c9jhy87yb4k8xa4gxs23vhb4awk-source/flake.nix:32:16:
           31|       home-manager.lib.homeManagerConfiguration {
           32|         pkgs = nixpkgs.legacyPackages.x86_64-linux;
             |                ^
           33|         modules = [
error: Recipe `build` failed on line 2 with exit code 1

concernant le retour de nix flake show, je vais aussi essayer de voir ça, c’est peut-être lié, peut-être pas, en tout cas quelque nchose n’est pas bon!

J’ai réussi à fix avec ce commit : fix(all): integration into home-manager · gfriloux/sshtui@742ee3f · GitHub

ça fait bien ce que je souhaite, désormais!

Merci pour l’aide, même si elle n’a pas directement solutionné mon problème, j’ai fix le soucis d’overlay (qui était un de mes deux problèmes, finalement!)

1 Like