degen

joined 1 year ago
 

I've tried just about every type of setup I can find for a nix shell with python.

I don't want to purely use nixpkgs for a lack of some packages and broken packages. I'm trying to use pyside6, but not everything in pyside6 is provided by the package, e.g. tools like uic.

Attempting to use a venv as normal leads to a disconnect between the env and system with libstdc++.so.6 unable to be found. There are a various different flakes I've tried to use like the-nix-way/dev-templates#python and others from forum discussions which add stdenv.cc.cc.lib to no avail.

I think the farthest I've gotten is with poetry/poetry2nix, where auto-patchelf warns about missing libQt6 libraries. Running with nix run fails to 'find all the required dependencies' even when adding qt6.qtbase or qt6.full to the packages. This is that flake, taken from the poetry2nix github with an added devshell:

{
  description = "Python application packaged using poetry2nix";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    poetry2nix.url = "github:nix-community/poetry2nix";
  };

  outputs = { self, nixpkgs, poetry2nix }:
    let
      system = "x86_64-linux";  # Adjust for your system
      pkgs = nixpkgs.legacyPackages.${system};
      inherit (poetry2nix.lib.mkPoetry2Nix { inherit pkgs; }) mkPoetryApplication;
    in {
      packages.${system}.default = mkPoetryApplication {
        projectDir = ./.;
      };

      apps.${system}.default = {
        type = "app";
        program = "${self.packages.${system}.default}/bin/app";
      };

      devShells.${system}.default = pkgs.mkShell {
        packages = [ pkgs.poetry ];
        buildInputs = [ pkgs.qt6.qtbase pkgs.qt6.full pkgs.qt6.wrapQtAppsHook ];
      };
    };
}

It seems kind of hopeless to get it working on NixOS. Does anyone have a working setup I could use for inspiration, or any other tips? I love the nix paradigm, but I'm honestly considering distrohopping with all of the trouble.

[–] degen@midwest.social 13 points 2 months ago* (last edited 2 months ago) (1 children)

What I'm referring to is the Baldur's Gate 3 fiasco. I don't know how things panned out, but people were turning away from it at the time. Admins were aware/involved as far as I ~~know~~ remember.

[–] degen@midwest.social 47 points 2 months ago (11 children)

Wonder how long that will stand. Also hasn't 1337 been deemed unsafe, or is it back on good terms?

 

I'm on NixOS and slowly working through neovim config.

I have treesitter installed with all grammars and it's set up in lua. When I run :TSymbols, it pops open a window showing -----treesitter-----, but no symbols are shown from the (python) code I have open.

All of the setup is put in place by the config flake I'm using, but I don't think there's any additional stuff to add for symbols to work. The treesitter section in the resulting init.lua from nix looks like this:

require('nvim-treesitter.configs').setup({
      ["context_commentstring"] = { ["enable"] = false },
      ["highlight"] = { ["enable"] = true },
      ["incremental_selection"] = {
        ["enable"] = false,
        ["keymaps"] = {
          ["init_selection"] = "gnn",
          ["node_decremental"] = "grm",
          ["node_incremental"] = "grn",
          ["scope_incremental"] = "grc"
        }
      },
      ["indent"] = { ["enable"] = false },
      ["refactor"] = {
        ["highlight_current_scope"] = { ["enable"] = false },
        ["highlight_definitions"] = {
          ["clear_on_cursor_move"] = true,
          ["enable"] = false
        },
        ["navigation"] = {
          ["enable"] = false,
          ["keymaps"] = {
            ["goto_definition"] = "gnd",
            ["goto_next_usage"] = "<a-*>",
            ["goto_previous_usage"] = "<a-#>",
            ["list_definitions"] = "gnD",
            ["list_definitions_toc"] = "gO"
          }
        },
        ["smart_rename"] = {
          ["enable"] = false,
          ["keymaps"] = { ["smart_rename"] = "grr" }
        }
      }
    })
[–] degen@midwest.social 1 points 2 months ago

Oh, for sure. It's really just preference that I like it. Really great to have options, though.

[–] degen@midwest.social 1 points 2 months ago (1 children)

Oh, by the way, is the padding issue due to the window size? When I run on tiling compositors, the full window is uneven with respect to character width so there's space on the bottom and side. I'm not sure if there's a way to fix it running in the terminal other than resizing so it's even. Don't know if you're tiling or not.

[–] degen@midwest.social 1 points 2 months ago

Nixvim is great too. Nixneovim was originally forked from it, apparently. And now that I've been thinking about it, I'm pretty sure the reason I ended up using nixneovim was indeed the way it handles direct vim options, and maybe less need for extraConfig? I've slowly been configuring more as well and didn't want to be confused learning vim config and having to figure out how to convey that in nix.

So that's a thought if you find yourself having the same trouble! It's not just a lot of config, but layers and layers and layers lol. Looking at you, lua in string literals.

3
submitted 2 months ago* (last edited 2 months ago) by degen@midwest.social to c/nix@programming.dev
 

https://github.com/NixNeovim/NixNeovim

I'm getting back into my setup after dualbooting and not touching it for a while. Flakes, home-manager, all that jazz. I was in the middle of messing around with my neovim config, bouncing between nixvim and nixneovim. Can't really remember why I was landing on nixneovim, but I think it had to do with having more 1-to-1 vim options through nix and more available plugins.

Part of this post is just to see what everyone's using, but I also can't copy to the system clipboard for the life of me! No ctrl-shift-v or anything. Oddly enough, ctrl-click-drag will copy a cut-off box of text. In nixneovim there's an option for clipboard, but that's just a string like 'unnamed' or 'unnamedplus', straight from the vim options. Nixvim has the option abstracted in a way that has the register and a provider for the functionality like wl-copy. I don't remember it not working with nixneovim before. That was months ago, though. Hoping someone would have an insight as I've been too deep in the weeds.

Edit: sooooo I just needed xclip in home.packages. I had tried installing it in a nix shell, but maybe that wasn't the right way to test. Doesn't seem to work with wl-clipboard, but I think neovim looks for xclip by default and nixneovim doesn't seem to have a way to give a different provider.

But still, how's everyone doing their neovim shenanigans?

[–] degen@midwest.social 1 points 8 months ago

Is this Nix bait? Cause I'd say Nix.