!ZUiNnfpRqQMDrPLChM:nixos.org

Nix ♥ la francophonie

199 Members
Salon francographe de NixOS68 Servers

Load older messages


SenderMessageTime
19 Aug 2025
@jo.blade:matrix.orgJo.Blade

Home manager a des effets de bord alors que nixvim non

Pour moi c'est pas un detail d'implem

20:38:57
@raitobezarius:matrix.orgraitobezariustu peux utiliser home-manager sans effet de bord20:39:09
@raitobezarius:matrix.orgraitobezariusmais je pense qu'on est tous d'accord modulo la terminologie20:39:17
@jo.blade:matrix.orgJo.Blade

Ben à ma connaissance ça deal avec des fichiers dans le /home

Donc ça modifie le /home

20:39:43
@thoth101010:matrix.orgthothDownload flake.nix20:39:50
@jo.blade:matrix.orgJo.BladeNixvim ne travaille que dans le nix store, sans rien modifier en dehors20:40:05
@raitobezarius:matrix.orgraitobezariusl'implémentation de home-manager fait ça ajd20:40:19
@raitobezarius:matrix.orgraitobezariusmais y a plein de paquets qui sont wrappeables20:40:24
@raitobezarius:matrix.orgraitobezariuset tu pourrais désactiver l'activation entièrement et avoir le meme résultat20:40:32
@thoth101010:matrix.orgthothavec ce flake (et rust-analyzer dans le shell) mon nvim-lspconfig fonctionne 🤔20:40:32
@raitobezarius:matrix.orgraitobezariusje prétends juste que la propriété d'effet de bord appartient à la nature du logiciel plutot qu'à home-manager20:40:46
@raitobezarius:matrix.orgraitobezarius home-manager a évidemment cette fonctionnalité parce que gérer tous les dotfiles implique de gérer notamment des programmes qui peuvent pas juste se faire wrapper 20:41:01
@raitobezarius:matrix.orgraitobezariusje présume que nixvim l'évite juste parce qu'il existe pas de feature géré par nixvim qui ne soit pas gérable simplement par un wrapper20:41:33
@symphorien:xlumurb.eusymphorien bon bref pour exaltia tu n'as pas d'obligation d'utiliser ni home-manager ni nixvim etc. mais il faut avouer que c'est pas facile d'ếtre à mi-chemin: pour donner un exemple que je comprends complètement, si tu fais :TSInstall pour les grammaires treesitter, elles vont marcher jusqu'à un jour où tu vas lancer nix-collect-garbage. là il faudra les supprimer et les réinsntaller. Donc passer "tout nix" est sans doute trop compliqué au début mais à terme ça me semble incontournable 20:41:51
@symphorien:xlumurb.eusymphorienet le fait que avec nix il faut tout faire avec nix est un vrai inconvénient20:42:48
@thoth101010:matrix.orgthothMais là rust-analyzer est déjà géré par nix, non ?, c’est dans le shell20:42:58
@exaltia:chat.exaltia.frExaltia j'ai envie de prendre mes jambes a mon cou quand je lis par l'insertion d'un arbre d'inodes statiquement, mon treesitter semblais avoir survécu aux divers collect garbages. mais la, du coup, je suis encore plus paumée qu'au début 20:43:54
@raitobezarius:matrix.orgraitobezariusje pense que tu peux ignorer mes remarques20:44:08
@raitobezarius:matrix.orgraitobezariusce qu'à symphorien résume bien la situation20:44:14
@alex:tunstall.xyzAlex
In reply to @exaltia:chat.exaltia.fr
Est ce qu'il y a du monde ici qui utilise neovim + rustanalyzer sous nixos? j'y arrive pas je pige pas comment faire pour que rust-analyser tourne sous neovim avec kickstart.nvim
{
  programs.neovim.configure = {
    packages.myVimPackage.start = [ pkgs.vimPlugins.nvim-lspconfig ];
    customRC = ''
      lua <<EOF
      local onattach = function(client, bufnr)
        local bufopts = { noremap=true, silent=true, buffer=bufnr }
        vim.keymap.set("n", "gD", vim.lsp.buf.declaration, bufopts)
        vim.keymap.set("n", "gd", vim.lsp.buf.definition, bufopts)
        vim.keymap.set("n", "K", vim.lsp.buf.hover, bufopts)
        vim.keymap.set("n", "gi", vim.lsp.buf.implementation, bufopts)
        vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, bufopts)
        vim.keymap.set("n", "<space>D", vim.lsp.buf.type_definition, bufopts)
        vim.keymap.set("n", "<space>rn", vim.lsp.buf.rename, bufopts)
        vim.keymap.set("n", "<space>ca", vim.lsp.buf.code_action, bufopts)
        vim.keymap.set("n", "gr", vim.lsp.buf.references, bufopts)
      end
      local lspconfig = require("lspconfig")
      lspconfig.rust_analyzer.setup {
        on_attach = on_attach
      }
      EOF
    '';
  };
}

Et dans les projets Rust j'installe rust-analyzer parmi les outils du nix-shell.

20:44:14
@jo.blade:matrix.orgJo.BladeOuais c'est la raison pour laquelle je me sens pas de recommander nix à mon entourage. C'est un peu comme ouvrir la boite de pandore, dès que tu commence t'es obligé de faire tout "full nix" sans retour en arrière possible20:44:15
@symphorien:xlumurb.eusymphorientout nix ça veut pas seulement dire "je fournis rust-analyzer depuis nix" ça veut aussi dire "je renonce à utiliser mason.nvim" par exemple (je connais pas kickstart"20:44:17
@raitobezarius:matrix.orgraitobezarius* ce qu'a dit symphorien résume bien la situation20:44:18
@alex:tunstall.xyzAlex *
{
  programs.neovim.configure = {
    packages.myVimPackage.start = [ pkgs.vimPlugins.nvim-lspconfig ];
    customRC = ''
      lua <<EOF
      local on_attach = function(client, bufnr)
        local bufopts = { noremap=true, silent=true, buffer=bufnr }
        vim.keymap.set("n", "gD", vim.lsp.buf.declaration, bufopts)
        vim.keymap.set("n", "gd", vim.lsp.buf.definition, bufopts)
        vim.keymap.set("n", "K", vim.lsp.buf.hover, bufopts)
        vim.keymap.set("n", "gi", vim.lsp.buf.implementation, bufopts)
        vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, bufopts)
        vim.keymap.set("n", "<space>D", vim.lsp.buf.type_definition, bufopts)
        vim.keymap.set("n", "<space>rn", vim.lsp.buf.rename, bufopts)
        vim.keymap.set("n", "<space>ca", vim.lsp.buf.code_action, bufopts)
        vim.keymap.set("n", "gr", vim.lsp.buf.references, bufopts)
      end
      local lspconfig = require("lspconfig")
      lspconfig.rust_analyzer.setup {
        on_attach = on_attach
      }
      EOF
    '';
  };
}

Et dans les projets Rust j'installe rust-analyzer parmi les outils du nix-shell.

20:44:56
@raitobezarius:matrix.orgraitobezarius(je suis pas 100 % d'accord sur le full nix mais je pense que ce débat va polluer cette room et nous emmenera trop loin et de toute façon dans la discussion actuelle, il est plutot vrai)20:45:22
@exaltia:chat.exaltia.frExaltia Si je comprends bien ceci. tu as juste neovim d'installé (je suppose que je peux mettre les keymap ultérizeurement, et le lsp, et que rust analyser et toute la chaine d'outils de compilation rust se retrouve dans mon shell.nix? 20:47:26
@jo.blade:matrix.orgJo.Blade

La liste est longue, tu dois renoncer à tous les packages manager de langages (pip, npm...)

Et le pire c'est les projets multi langages qui font des bizarreries niveau système de build

Mon cauchemar des derniers mois c'est les projets js qui utilisent l'ORM prisma car prisma download des binaires rust qui doivent absolument matcher la version de la lib js (et bien sûr t'as jamais la bonne version dans nixpkgs)

20:47:36
@jo.blade:matrix.orgJo.BladeApres il y a "nix ld" qui permet de depanner parfois20:48:17
@thoth101010:matrix.orgthothah oui, il y a mason dans kickstart 🤔 Peut-être qu’en le désintallant ça réglera tout 🙃20:48:21
@thoth101010:matrix.orgthoth * ah oui, il y a mason.nvim dans kickstart 🤔
Peut-être qu’en le désinstallant ça réglera le problème 🙃
20:48:41

Show newer messages


Back to Room ListRoom Version: 6