J'essaie d'utiliser nix sur Ubuntu, avec XMonad en tant que mon gestionnaire de fenêtres. J'ai ceci fonctionne bien sur un hôte utilisant nixOS, mais j'ai un deuxième appareil qui n'est pas encore prêt pour nixOS. nix sur Ubuntu fonctionne généralement bien là-bas, mais xmonad ne peut pas trouver de bibliothèques contributives.XMonad sur Nix - ne peut pas trouver xmonad-contrib
Les paquets concernés sont installés:
$ nix-env -q | grep xmonad
xmonad-0.13
xmonad-contrib-0.13
xmonad-extras-0.12.1
Mais recompiler mes xmonad.hs, il ne peut pas trouver les contrib libs:
$ xmonad --recompile
Error detected while loading xmonad configuration file: /home/martyn/.xmonad/xmonad.hs
xmonad.hs:32:1: error:
Failed to load interface for ‘XMonad.Layout.NoBorders’
Use -v to see a list of the files searched for.
...
Please check the file for errors.
Les fichiers concernés sont installés:
$ ls /nix/store/*xmonad-contrib*/lib/**/NoBorders*
/nix/store/4xrrwsm6362xkn9jn1b17kd891kv9z3a-xmonad-contrib-0.13/lib/ghc-8.0.2/xmonad-contrib-0.13/XMonad/Actions/NoBorders.dyn_hi
/nix/store/4xrrwsm6362xkn9jn1b17kd891kv9z3a-xmonad-contrib-0.13/lib/ghc-8.0.2/xmonad-contrib-0.13/XMonad/Actions/NoBorders.hi
/nix/store/4xrrwsm6362xkn9jn1b17kd891kv9z3a-xmonad-contrib-0.13/lib/ghc-8.0.2/xmonad-contrib-0.13/XMonad/Layout/NoBorders.dyn_hi
/nix/store/4xrrwsm6362xkn9jn1b17kd891kv9z3a-xmonad-contrib-0.13/lib/ghc-8.0.2/xmonad-contrib-0.13/XMonad/Layout/NoBorders.hi
En ajoutant xmonad-contrib à mon config.nix de nixpkgs, j'ai ajouté ces libs au paquet ghc reg tère:
$ cat ~/.config/nixpkgs/config.nix
with (import <nixpkgs> {});
{
packageOverrides = pkgs: with pkgs; {
myHaskellEnv = pkgs.haskellPackages.ghcWithPackages (haskellPackages: with haskellPackages; [ xmonad-contrib ]);
};
}
$ nix-env -iA nixpkgs.myHaskellEnv
$ ghc-pkg list | grep xmonad
xmonad-0.13
xmonad-contrib-0.13
$
avec cela, ce GHC (i) fonctionne bien:
$ /nix/store/7mkxsq7ydqcgnjbs59v1v47wfxpwrav5-ghc-8.0.2-with-packages/bin/ghc ~/.xmonad/xmonad.hs
[1 of 1] Compiling Main (/home/martyn/.xmonad/xmonad.hs, /home/martyn/.xmonad/xmonad.o) [flags changed]
Linking /home/martyn/.xmonad/xmonad ...
Mais la version de xmonad dans ce répertoire ne peut pas trouver les libs:
$ /nix/store/7mkxsq7ydqcgnjbs59v1v47wfxpwrav5-ghc-8.0.2-with-packages/bin/xmonad --recompile
Error detected while loading xmonad configuration file: /home/martyn/.xmonad/xmonad.hs
xmonad.hs:32:1: error:
Failed to load interface for ‘XMonad.Layout.NoBorders’
Use -v to see a list of the files searched for.
je peux contournez ceci en compilant en utilisant le ghc comme ci-dessus, et en déplaçant la sortie à la main vers ~/.xmonad/xmonad-x86_64-linux, et en l'exécutant. Mais c'est un petit peu hacky, et ne devrait sûrement pas être nécessaire?
Ce n'est pas une partie spécifique de votre configuration 'xmonad.hs' qui devrait donc être compilée" dans "nix (du point de vue de la gestion de la configuration)? – Zeta
Je ne suis pas un utilisateur xmonad moi-même mais voici le fichier de configuration xmonad de @Ptival sur NixOS: https://github.com/Ptival/config/blob/master/xmonad.nix –
Peut-être que xmonad.hs serait mieux géré "dedans" nix, mais je ne suis pas encore compétent pour y parvenir, et comme montré avec nixOS, il devrait être possible de choisir de ne pas travailler mais encore travailler (que ce soit sage ou non). – user3416536