From a20d307574fd3a9ec118beeb59ba2b15a49771bd Mon Sep 17 00:00:00 2001 From: cnst Date: Sat, 13 Jul 2024 08:39:31 +0200 Subject: [PATCH] shells and stuff --- flake.nix | 2 - home/extra/neovim/default.nixnew | 64 +++++++++++++++++++ nixos/core/shells/dev.nix | 30 +++++++-- .../core/shells/{_minimal.nix => minimal.nix} | 0 nixos/hosts/cnix/imports.nix | 2 + 5 files changed, 91 insertions(+), 7 deletions(-) create mode 100644 home/extra/neovim/default.nixnew rename nixos/core/shells/{_minimal.nix => minimal.nix} (100%) diff --git a/flake.nix b/flake.nix index 31c1d0b2..b111ca26 100644 --- a/flake.nix +++ b/flake.nix @@ -42,7 +42,6 @@ home-manager, systems, lanzaboote, - fenix, ... } @ inputs: let inherit (self) outputs; @@ -57,7 +56,6 @@ ); in { inherit lib; - packages.x86_64-linux.default = fenix.packages.x86_64-linux.minimal.toolchain; devShells = forEachSystem (pkgs: import ./nixos/core/shells/dev.nix {inherit inputs pkgs;}); formatter = forEachSystem (pkgs: pkgs.alejandra); diff --git a/home/extra/neovim/default.nixnew b/home/extra/neovim/default.nixnew new file mode 100644 index 00000000..037e5c84 --- /dev/null +++ b/home/extra/neovim/default.nixnew @@ -0,0 +1,64 @@ +{pkgs, ...}: { + programs.neovim = { + enable = true; + + vimAlias = true; + viAlias = true; + vimdiffAlias = true; + + plugins = with pkgs.vimPlugins; [ + gruvbox-material-nvim + cmp-buffer + cmp-nvim-lsp + cmp-path + cmp-spell + cmp-treesitter + cmp-vsnip + friendly-snippets + gitsigns-nvim + lightline-vim + lspkind-nvim + neogit + null-ls-nvim + nvim-autopairs + nvim-cmp + nvim-colorizer-lua + nvim-lspconfig + lualine-nvim + nvim-tree-lua + conform-nvim + (nvim-treesitter.withPlugins (_: pkgs.tree-sitter.allGrammars)) + plenary-nvim + rainbow-delimiters-nvim + telescope-fzy-native-nvim + telescope-nvim + vim-floaterm + vim-sneak + vim-vsnip + which-key-nvim + ]; + + extraPackages = with pkgs; [gcc ripgrep fd]; + + extraConfig = let + luaRequire = module: + builtins.readFile (builtins.toString + ./config + + "/${module}.lua"); + luaConfig = builtins.concatStringsSep "\n" (map luaRequire [ + "init" + "lspconfig" + "nvim-cmp" + "theming" + "treesitter" + "treesitter-textobjects" + "utils" + "which-key" + ]); + in '' + lua << + ${luaConfig} + + ''; + }; +} diff --git a/nixos/core/shells/dev.nix b/nixos/core/shells/dev.nix index 6eee3d92..b777b0ff 100644 --- a/nixos/core/shells/dev.nix +++ b/nixos/core/shells/dev.nix @@ -1,12 +1,25 @@ { + pkgs, inputs, - pkgs ? import {}, ... }: let + minimalMkShell = import ./minimal.nix {inherit pkgs;}; + # 16 is broken: https://github.com/NixOS/nixpkgs/issues/244609 # llvmPackages = pkgs.llvmPackages_16; llvmPackages = pkgs.llvmPackages_15; + gstreamerPath = + "" + + ":" + + "${pkgs.gst_all_1.gst-plugins-base}/lib/gstreamer-1.0" + + ":" + + "${pkgs.gst_all_1.gst-plugins-good}/lib/gstreamer-1.0" + + ":" + + "${pkgs.gst_all_1.gst-plugins-bad}/lib/gstreamer-1.0" + + ":" + + "${pkgs.gst_all_1.gst-plugins-ugly}/lib/gstreamer-1.0"; + _rustBuildFenix = inputs.fenix.packages.${pkgs.stdenv.hostPlatform.system}.latest.withComponents [ "cargo" "clippy" @@ -17,8 +30,16 @@ ]; _rustBuild = _rustBuildFenix; -in { - default = pkgs.mkShell { +in + minimalMkShell { + name = "cnst-nixcfg-dev"; + hardeningDisable = ["fortify"]; + + LD_LIBRARY_PATH = "${pkgs.libglvnd}/lib"; + LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; + RUST_BACKTRACE = 1; + GST_PLUGIN_SYSTEM_PATH = gstreamerPath; + nativeBuildInputs = with pkgs; [ _rustBuild llvmPackages.lldb @@ -127,5 +148,4 @@ in { xorg.xcbutilkeysyms xorg.xcbutilimage # wezterm ]; - }; -} + } diff --git a/nixos/core/shells/_minimal.nix b/nixos/core/shells/minimal.nix similarity index 100% rename from nixos/core/shells/_minimal.nix rename to nixos/core/shells/minimal.nix diff --git a/nixos/hosts/cnix/imports.nix b/nixos/hosts/cnix/imports.nix index 81ffe213..3660f818 100644 --- a/nixos/hosts/cnix/imports.nix +++ b/nixos/hosts/cnix/imports.nix @@ -77,6 +77,8 @@ python3 python312Packages.httplib2 python312Packages.oauth2 + gtk3 + gtk4 ]; }; }