diff --git a/modules/editor/neovim.nix b/modules/editor/neovim.nix index ed1d0fb..eece616 100644 --- a/modules/editor/neovim.nix +++ b/modules/editor/neovim.nix @@ -1,9 +1,11 @@ -{ inputs, ... }: { - flake.modules.homeManager.neovim = { pkgs, config, lib, ... }: - let - configHome = "${config.home.homeDirectory}/.config/dotfiles/homes/quirinecker"; - rlang = pkgs.rWrapper.override { + inputs, + ... +}: +let + rlang = + pkgs: + pkgs.rWrapper.override { packages = with pkgs.rPackages; [ languageserver box @@ -13,66 +15,93 @@ knitr ]; }; + runtimeDependencies = pkgs: [ + pkgs.cargo + pkgs.rustc + pkgs.nodejs + pkgs.yarn + pkgs.unzip + pkgs.ripgrep + pkgs.fd + pkgs.luajitPackages.lua-lsp + pkgs.lua-language-server + pkgs.nil + pkgs.nixfmt + pkgs.nixd + pkgs.rust-analyzer + pkgs.rustfmt + pkgs.typescript-language-server + pkgs.vue-language-server + pkgs.vtsls + pkgs.deno + pkgs.vscode-langservers-extracted + pkgs.yaml-language-server + (rlang pkgs) + pkgs.jdt-language-server + pkgs.tailwindcss-language-server + pkgs.pyright + pkgs.protols + pkgs.clang-tools + pkgs.taplo + pkgs.tinymist + pkgs.dart + pkgs.tree-sitter + ]; +in +{ + flake.modules.homeManager.neovim = + { + pkgs, + config, + ... + }: + { + home.sessionVariables = { + RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}"; + }; - in - { - home.sessionVariables = { - RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}"; + programs.neovim.enable = true; + programs.zathura.enable = true; + home.packages = runtimeDependencies pkgs; + xdg.configFile = { + "nvim/init.lua".source = config.lib.file.mkOutOfStoreSymlink ./neovim/init.lua; + "nvim/lua".source = config.lib.file.mkOutOfStoreSymlink ./neovim/lua; + "nvim/ftplugin".source = config.lib.file.mkOutOfStoreSymlink ./neovim/ftplugin; + "nvim/projects".source = config.lib.file.mkOutOfStoreSymlink ./neovim/projects; + }; + + # Todo: fix vue language server + # home.activation.npm-install = lib.hm.dag.entryAfter [ "writeBoundary" ] '' + # nix-shell -p nodejs --run "cd ${configHome}/.npm_global && npm install" + # ''; }; - programs.neovim.enable = true; - programs.zathura.enable = true; - home.packages = [ - pkgs.cargo - pkgs.rustc - pkgs.nodejs - pkgs.yarn - pkgs.unzip - pkgs.ripgrep - pkgs.fd - pkgs.luajitPackages.lua-lsp - pkgs.lua-language-server - pkgs.nil - pkgs.nixfmt - pkgs.nixd - pkgs.rust-analyzer - pkgs.rustfmt - pkgs.typescript-language-server - pkgs.vue-language-server - pkgs.vtsls - pkgs.deno - pkgs.vscode-langservers-extracted - pkgs.yaml-language-server - rlang - pkgs.jdt-language-server - pkgs.tailwindcss-language-server - pkgs.pyright - pkgs.protols - pkgs.clang-tools - pkgs.taplo - pkgs.tinymist - pkgs.dart - pkgs.tree-sitter - ]; - xdg.configFile = { - "nvim/init.lua".source = config.lib.file.mkOutOfStoreSymlink ./neovim/init.lua; - "nvim/lua".source = config.lib.file.mkOutOfStoreSymlink ./neovim/lua; - "nvim/ftplugin".source = config.lib.file.mkOutOfStoreSymlink ./neovim/ftplugin; - "nvim/projects".source = config.lib.file.mkOutOfStoreSymlink ./neovim/projects; + perSystem = { pkgs, self', ... }: { + packages.neovim-config = pkgs.stdenv.mkDerivation { + pname = "neovim-config"; + version = "1.0"; + src = ./neovim; + + installPhase = '' + mkdir -p $out/nvim + cp -r lua init.lua $out/nvim + ''; }; - - # Todo: fix vue language server - # home.activation.npm-install = lib.hm.dag.entryAfter [ "writeBoundary" ] '' - # nix-shell -p nodejs --run "cd ${configHome}/.npm_global && npm install" - # ''; - }; - - perSystem = { pkgs, ... }: { packages.neovim = inputs.wrappers.lib.wrapPackage { inherit pkgs; package = pkgs.neovim; - flags = { - "-u" = ./neovim/init.lua; + runtimeInputs = runtimeDependencies pkgs; + env = { + XDG_CONFIG_HOME = "${self'.packages.neovim-config}"; + }; + }; + + packages.neovim-slim = inputs.wrappers.lib.wrapPackage { + inherit pkgs; + package = pkgs.neovim; + runtimeInputs = [ ]; + env = { + XDG_CONFIG_HOME = "${self'.packages.neovim-config}"; }; }; }; diff --git a/modules/gaming/core.nix b/modules/gaming/core.nix new file mode 100644 index 0000000..ce1ccfc --- /dev/null +++ b/modules/gaming/core.nix @@ -0,0 +1,9 @@ +{ + ... +}: +{ + flake.modules.nixos.core = { pkgs, ... }: { + programs.steam.enable = true; + hardware. + }; +}