diff --git a/custom-pkgs/commander-nvim/default.nix b/custom-pkgs/commander-nvim/default.nix deleted file mode 100644 index b6c60f2..0000000 --- a/custom-pkgs/commander-nvim/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ util, inputs, ... }: -util.vimPlugin { - name = "commander.nvim"; - source = inputs.commander-nvim; -} diff --git a/custom-pkgs/default.nix b/custom-pkgs/default.nix index 776f463..576d568 100644 --- a/custom-pkgs/default.nix +++ b/custom-pkgs/default.nix @@ -1,4 +1,9 @@ -{ lib, inputs, ... }: +{ + lib, + inputs, + pkgs-unstable, + ... +}: let inherit (builtins) attrNames filter readDir; dirs = @@ -13,7 +18,7 @@ lib.composeManyExtensions ( dir: import ./${dir} { util = util dir; - inherit inputs; + inherit inputs pkgs-unstable; } ) dirs ) diff --git a/custom-pkgs/fb-client/default.nix b/custom-pkgs/fb-client/default.nix deleted file mode 100644 index 7954b3b..0000000 --- a/custom-pkgs/fb-client/default.nix +++ /dev/null @@ -1 +0,0 @@ -{ util, ... }: util.package { } diff --git a/custom-pkgs/fb-client/package.nix b/custom-pkgs/fb-client/package.nix deleted file mode 100644 index dec7733..0000000 --- a/custom-pkgs/fb-client/package.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ - lib, - stdenv, - fetchurl, - python3, - ... -}: -stdenv.mkDerivation rec { - pname = "fb-client"; - version = "2.3.0"; - - src = fetchurl { - url = "https://paste.xinu.at/data/client/fb-${version}.tar.gz"; - sha256 = "sha256-EWTsoG7qy0IQ1GLEuvHEAEJyphl9hz1hFm53k1OdGYM="; - }; - - buildInputs = [ - (python3.withPackages ( - pyPkgs: with pyPkgs; [ - pycurl - pyxdg - ] - )) - ]; - - makeFlags = [ "PREFIX=$(out)" ]; - - meta = with lib; { - mainProgram = "fb"; - description = "Client for paste.xinu.at"; - homepage = "https://paste.xinu.at"; - license = licenses.gpl3Only; - }; -} diff --git a/custom-pkgs/gen-nvim/default.nix b/custom-pkgs/gen-nvim/default.nix deleted file mode 100644 index 9624edf..0000000 --- a/custom-pkgs/gen-nvim/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ inputs, util, ... }: -util.vimPlugin { - name = "gen.nvim"; - source = inputs.gen-nvim; -} diff --git a/custom-pkgs/otp/default.nix b/custom-pkgs/otp/default.nix index 5ecdefc..84e5e76 100644 --- a/custom-pkgs/otp/default.nix +++ b/custom-pkgs/otp/default.nix @@ -1 +1 @@ -{ util, inputs, ... }: util.package { inherit inputs; } +{ util, pkgs-unstable, ... }: util.package { inherit pkgs-unstable; } diff --git a/custom-pkgs/otp/package.nix b/custom-pkgs/otp/package.nix index f0bcda3..489fc19 100644 --- a/custom-pkgs/otp/package.nix +++ b/custom-pkgs/otp/package.nix @@ -1,6 +1,6 @@ -{ pkgs, inputs }: +{ pkgs, pkgs-unstable }: let - yubikey-manager = inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.yubikey-manager; + yubikey-manager = pkgs-unstable.yubikey-manager; ykman = "${yubikey-manager}/bin/ykman"; sk = "${pkgs.skim}/bin/sk"; wl-copy = "${pkgs.wl-clipboard}/bin/wl-copy"; diff --git a/custom-pkgs/util.nix b/custom-pkgs/util.nix index 17f9390..cb4042e 100644 --- a/custom-pkgs/util.nix +++ b/custom-pkgs/util.nix @@ -1,17 +1,4 @@ dir: { - vimPlugin = - { name, source }: - final: prev: { - vimPlugins = prev.vimPlugins // { - "${dir}" = prev.vimUtils.buildVimPlugin { - pname = name; - version = source.lastModifiedDate; - src = source; - doCheck = false; - }; - }; - }; - package = attrs: final: prev: { "${dir}" = final.callPackage ./${dir}/package.nix (attrs // { pkgs = prev; }); }; diff --git a/custom-pkgs/vimpeccable/default.nix b/custom-pkgs/vimpeccable/default.nix deleted file mode 100644 index 4dbf278..0000000 --- a/custom-pkgs/vimpeccable/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ inputs, util, ... }: -util.vimPlugin { - name = "vimpeccable"; - source = inputs.vimpeccable; -} diff --git a/custom-pkgs/windline-nvim/default.nix b/custom-pkgs/windline-nvim/default.nix deleted file mode 100644 index ca659cd..0000000 --- a/custom-pkgs/windline-nvim/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ inputs, util, ... }: -util.vimPlugin { - name = "windline.nvim"; - source = inputs.windline-nvim; -} diff --git a/flake.lock b/flake.lock index 0103503..094c1e7 100644 --- a/flake.lock +++ b/flake.lock @@ -47,22 +47,6 @@ "type": "github" } }, - "commander-nvim": { - "flake": false, - "locked": { - "lastModified": 1717816527, - "narHash": "sha256-eXOHR+lwHVJze6jvFuDlvcUtFSpV8EJqlWvXLRWeCNI=", - "owner": "FeiyouG", - "repo": "commander.nvim", - "rev": "84101e8eb1613a72bbdec655b734f891d8a00694", - "type": "github" - }, - "original": { - "owner": "FeiyouG", - "repo": "commander.nvim", - "type": "github" - } - }, "crane": { "locked": { "lastModified": 1750266157, @@ -312,22 +296,6 @@ "type": "github" } }, - "gen-nvim": { - "flake": false, - "locked": { - "lastModified": 1746271309, - "narHash": "sha256-s12r8dvva0O2VvEPjOQvpjVpEehxsa4AWoGHXFYxQlI=", - "owner": "David-Kunz", - "repo": "gen.nvim", - "rev": "c8e1f574d4a3a839dde73a87bdc319a62ee1e559", - "type": "github" - }, - "original": { - "owner": "David-Kunz", - "repo": "gen.nvim", - "type": "github" - } - }, "gitignore": { "inputs": { "nixpkgs": [ @@ -456,22 +424,6 @@ "type": "github" } }, - "keycloak-realms": { - "locked": { - "lastModified": 1721562747, - "narHash": "sha256-uHNWpe/j5Q7Ak9+SNQkCPy7t9ayQUDAt+2tZ7OFYv6Q=", - "owner": "rorosen", - "repo": "nixpkgs", - "rev": "79862894befe49e2837e3f5eefe11433eef6611a", - "type": "github" - }, - "original": { - "owner": "rorosen", - "ref": "keycloak-realm-import", - "repo": "nixpkgs", - "type": "github" - } - }, "ksoloti-pr": { "locked": { "lastModified": 1730719587, @@ -511,28 +463,6 @@ "type": "github" } }, - "nextcloud": { - "inputs": { - "keycloak-realms": "keycloak-realms", - "nixos-shell": "nixos-shell", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1730827799, - "narHash": "sha256-79sE72rlztvhx37PYh6m2TLE2J6ybVvDRMQBRWaohqc=", - "owner": "onny", - "repo": "nixos-nextcloud-testumgebung", - "rev": "c3fdbf165814d403a8f8e81ff8e15adcbe7eadd0", - "type": "github" - }, - "original": { - "owner": "onny", - "repo": "nixos-nextcloud-testumgebung", - "type": "github" - } - }, "nix-github-actions": { "inputs": { "nixpkgs": [ @@ -570,24 +500,6 @@ "type": "github" } }, - "nixos-shell": { - "inputs": { - "nixpkgs": "nixpkgs_4" - }, - "locked": { - "lastModified": 1728308049, - "narHash": "sha256-wjAkG8f5orZ4+wgXmEaFAJkVJS6ORqfgM0zzLEvbUNw=", - "owner": "Mic92", - "repo": "nixos-shell", - "rev": "9373ca9522f844a3b8029720c74f340e560e4462", - "type": "github" - }, - "original": { - "owner": "Mic92", - "repo": "nixos-shell", - "type": "github" - } - }, "nixpkgs": { "locked": { "lastModified": 1717196966, @@ -692,21 +604,6 @@ } }, "nixpkgs_4": { - "locked": { - "lastModified": 1628465643, - "narHash": "sha256-QSNw9bDq9uGUniQQtakRuw4m21Jxugm23SXLVgEV4DM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "6ef4f522d63f22b40004319778761040d3197390", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-unstable", - "type": "indirect" - } - }, - "nixpkgs_5": { "locked": { "lastModified": 1751741127, "narHash": "sha256-t75Shs76NgxjZSgvvZZ9qOmz5zuBE8buUaYD28BMTxg=", @@ -771,25 +668,19 @@ "inputs": { "agenix": "agenix", "colmena": "colmena", - "commander-nvim": "commander-nvim", "dnote": "dnote", "flake-parts": "flake-parts", - "gen-nvim": "gen-nvim", "gtrackmap": "gtrackmap", "hastebin": "hastebin", "home-manager": "home-manager_2", "ketchup": "ketchup", "ksoloti-pr": "ksoloti-pr", "lanzaboote": "lanzaboote", - "nextcloud": "nextcloud", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_4", "nixpkgs-unstable": "nixpkgs-unstable", "syntax-renderer": "syntax-renderer", - "vimpeccable": "vimpeccable", - "windline-nvim": "windline-nvim", - "workout-sync": "workout-sync", - "zen-browser": "zen-browser" + "workout-sync": "workout-sync" } }, "rust-overlay": { @@ -905,38 +796,6 @@ "type": "github" } }, - "vimpeccable": { - "flake": false, - "locked": { - "lastModified": 1640723263, - "narHash": "sha256-MnEOCb/0wvvcYnTOROmVO8HUge3dWmuweAXdpx1zbXE=", - "owner": "svermeulen", - "repo": "vimpeccable", - "rev": "bd19b2a86a3d4a0ee184412aa3edb7ed57025d56", - "type": "github" - }, - "original": { - "owner": "svermeulen", - "repo": "vimpeccable", - "type": "github" - } - }, - "windline-nvim": { - "flake": false, - "locked": { - "lastModified": 1743727738, - "narHash": "sha256-FIpbRzJMK/NcNnXJp7VXhMVPSknGYkLyaUqzhw5TYJY=", - "owner": "windwp", - "repo": "windline.nvim", - "rev": "1630ab15aa3349f1ad32ef78d5cff632ae74625d", - "type": "github" - }, - "original": { - "owner": "windwp", - "repo": "windline.nvim", - "type": "github" - } - }, "workout-sync": { "inputs": { "nixpkgs": [ @@ -956,26 +815,6 @@ "repo": "workout-sync", "type": "sourcehut" } - }, - "zen-browser": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1727721329, - "narHash": "sha256-QYlWZwUSwrM7BuO+dXclZIwoPvBIuJr6GpFKv9XKFPI=", - "owner": "MarceColl", - "repo": "zen-browser-flake", - "rev": "e6ab73f405e9a2896cce5956c549a9cc359e5fcc", - "type": "github" - }, - "original": { - "owner": "MarceColl", - "repo": "zen-browser-flake", - "type": "github" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index c2d2661..b6605e4 100644 --- a/flake.nix +++ b/flake.nix @@ -3,10 +3,6 @@ flake-parts.url = "github:hercules-ci/flake-parts"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; - nextcloud = { - url = "github:onny/nixos-nextcloud-testumgebung"; - inputs.nixpkgs.follows = "nixpkgs"; - }; gtrackmap = { url = "github:gtrackmap/gtrackmap"; inputs.nixpkgs.follows = "nixpkgs"; @@ -19,22 +15,6 @@ nixpkgs.follows = "nixpkgs"; }; }; - commander-nvim = { - url = "github:FeiyouG/commander.nvim"; - flake = false; - }; - vimpeccable = { - url = "github:svermeulen/vimpeccable"; - flake = false; - }; - windline-nvim = { - url = "github:windwp/windline.nvim"; - flake = false; - }; - gen-nvim = { - url = "github:David-Kunz/gen.nvim"; - flake = false; - }; ketchup = { url = "github:repomaa/ketchup"; inputs.nixpkgs.follows = "nixpkgs"; @@ -64,10 +44,6 @@ url = "sourcehut:~repomaa/syntax-renderer"; flake = false; }; - zen-browser = { - url = "github:MarceColl/zen-browser-flake"; - inputs.nixpkgs.follows = "nixpkgs"; - }; }; outputs = { diff --git a/home/common/default.nix b/home/common/default.nix index 00ac996..9d02ddc 100644 --- a/home/common/default.nix +++ b/home/common/default.nix @@ -2,6 +2,7 @@ config, lib, pkgs, + pkgs-unstable, inputs, self, ... @@ -9,8 +10,6 @@ { imports = [ ../gnome - ../custom-programs - ./neovim ./dnote.nix ../modules/zed inputs.hastebin.nixosModules.hm @@ -28,8 +27,8 @@ home.packages = with pkgs; [ htop gnupg - inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.yubioath-flutter - inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.yubikey-manager + pkgs-unstable.yubioath-flutter + pkgs-unstable.yubikey-manager gcc sqlite noto-fonts @@ -78,10 +77,9 @@ nixfmt-rfc-style tree virt-manager - inputs.zen-browser.packages.${pkgs.system}.specific - inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.ncspot + pkgs-unstable.ncspot devbox - inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.feishin + pkgs-unstable.feishin openscad bambu-studio ]; @@ -117,11 +115,6 @@ gpu-context = "wayland"; }; }; - fb-client = { - enable = true; - pastebin = "https://p.jokke.space"; - clipboard_cmd = "${pkgs.wl-copy-both}/bin/wl-copy"; - }; kitty = { enable = true; font = { diff --git a/home/common/dnote.nix b/home/common/dnote.nix index 56dd197..419d8d4 100644 --- a/home/common/dnote.nix +++ b/home/common/dnote.nix @@ -2,6 +2,7 @@ inputs, lib, pkgs, + pkgs-unstable, config, ... }: @@ -23,11 +24,10 @@ let phases = [ "installPhase" ]; installPhase = '' mkdir -p $out/bin - cp ${unstablePkgs.dnote}/bin/dnote-cli $out/bin/dnote + cp ${pkgs-unstable.dnote}/bin/dnote-cli $out/bin/dnote ''; }; cfg = config.programs.dnote; - unstablePkgs = inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}; in { options.programs.dnote = { diff --git a/home/common/neovim/default.nix b/home/common/neovim/default.nix deleted file mode 100644 index ff9f1d7..0000000 --- a/home/common/neovim/default.nix +++ /dev/null @@ -1,495 +0,0 @@ -{ pkgs, lib, ... }: -{ - imports = [ ../../modules/neovim ]; - - programs.neovim = - let - toLua = lib.generators.toLua { }; - luaMap = rhs: { - rhs = rhs; - lua = true; - options = { - silent = true; - }; - }; - in - { - enable = true; - defaultEditor = false; - options = { - number = true; - expandtab = true; - tabstop = 2; - shiftwidth = 2; - softtabstop = 2; - signcolumn = "yes"; - modeline = true; - hidden = true; - listchars = "tab:▸ ,trail:·"; - list = true; - undofile = true; - winblend = 30; - }; - withTreesitterPlugins = p: [ - p.lua - p.vim - p.vimdoc - p.nix - p.query - p.make - ]; - formatters = [ - { - filetypes = [ "nix" ]; - globs = [ "*.nix" ]; - exe = "${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt"; - stdin = true; - } - { - filetypes = [ "lua" ]; - globs = [ "*.lua" ]; - exe = "${pkgs.stylua}/bin/stylua"; - args = _: [ "-" ]; - stdin = true; - } - { - filetypes = [ "crystal" ]; - globs = [ "*.cr" ]; - exe = "${pkgs.crystal}/bin/crystal"; - args = file: [ - "tool" - "format" - ]; - stdin = false; - } - ]; - autoCommands = [ - { - event = "FileType"; - pattern = [ "lua" ]; - command = "setlocal expandtab"; - } - { - event = "FileType"; - pattern = [ - "makefile" - ]; - command = "setlocal shiftwidth=4 tabstop=4 softtabstop=4 noexpandtab"; - } - { - event = "FileType"; - pattern = [ - "gitcommit" - "gitrebase" - "gitconfig" - ]; - command = "set bufhidden=delete"; - } - { - event = "BufWinEnter"; - pattern = "*"; - command = "if line2byte(line('$')) > 1000000 | syntax clear | endif"; - } - ]; - signs = { - error = ""; - warning = ""; - hint = ""; - info = ""; - }; - env = { - GIT_EDITOR = "nvr -cc split --remote-wait"; - EDITOR = "nvr -cc close --remote-wait"; - }; - leader = " "; - mappings = { - normal = { - "" = "h"; - "" = "j"; - "" = "k"; - "" = "l"; - "n" = "n"; - }; - visual = { - "" = ">gv^"; - "" = "" = "which_key"; - }; - }; - in - '' - local telescope = require('telescope') - local commander = require('commander') - - commander.add(${toLua commands}) - telescope.load_extension('commander') - telescope.load_extension('ui-select') - - telescope.setup({ - defaults = { mappings = ${toLua mappings}, winblend = 30; }, - pickers = { - find_files = { - find_command = { "${pkgs.fd}/bin/fd", "-H", "--type=file", "--type=symlink" } - }, - }, - extensions = { - file_browser = { - hidden = true - }, - } - }) - ''; - mappings = { - normal = - (lib.attrsets.mapAttrs (key: value: luaMap "require('telescope.builtin').${value}") { - "f" = "find_files"; - "r" = "live_grep"; - "b" = "buffers"; - "h" = "help_tags"; - "o" = "oldfiles"; - "s" = "git_status"; - "/" = "current_buffer_fuzzy_find"; - "c" = "git_branches"; - }) - // (lib.attrsets.mapAttrs (key: value: luaMap "require('telescope').extensions.${value}") { - "n" = "file_browser.file_browser"; - ":" = "commander.filter"; - }); - }; - } - { - plugin = base16-nvim; - config = '' - vim.opt.termguicolors = true - vim.cmd('colorscheme base16-tomorrow-night') - ''; - } - { - plugin = octo-nvim; - config = "require('octo').setup()"; - } - { - plugin = gitsigns-nvim; - dependencies = [ plenary-nvim ]; - config = '' - require('gitsigns').setup(${ - toLua { - current_line_blame = true; - } - }) - ''; - } - { - plugin = windline-nvim; - config = "require('wlsample.airline')"; - } - { - plugin = luasnip; - config = '' - require('luasnip.loaders.from_snipmate').lazy_load() - require('luasnip.loaders.from_lua').lazy_load() - local luasnip = require('luasnip') - luasnip.setup({ updateevents = 'TextChanged,TextChangedI' }) - ''; - mappings = - let - mapping = rhs: luaMap "function() ${rhs} end"; - mappings = { - "" = mapping "luasnip.jump(1)"; - "" = mapping "luasnip.jump(-1)"; - "" = mapping "if luasnip.choice_active() then luasnip.change_choice(1) end"; - }; - in - { - insert = mappings; - select = mappings; - }; - } - { plugin = vim-abolish; } - { plugin = NrrwRgn; } - { - plugin = trouble-nvim; - dependencies = [ nvim-web-devicons ]; - mappings = - let - mapping = rhs: luaMap "function() require('trouble').${rhs} end"; - in - { - normal = { - "xx" = mapping "open()"; - "xd" = mapping "open('document_diagnostics')"; - "xl" = mapping "open('loclist')"; - "gR" = mapping "open('lsp_references')"; - }; - }; - } - { plugin = twilight-nvim; } - { plugin = which-key-nvim; } - { plugin = zen-mode-nvim; } - { - plugin = diffview-nvim; - config = - let - config = { - default = { - layout = "diff2_vertical"; - }; - merge_tool = { - layout = "diff3_vertical"; - }; - file_history = { - layout = "diff2_vertical"; - }; - }; - in - '' - require('diffview').setup(${toLua config}) - ''; - } - { - plugin = toggleterm-nvim; - dependencies = [ - plenary-nvim - pkgs.lazygit - ]; - config = '' - local Terminal = require('toggleterm.terminal').Terminal - local lazygit = Terminal:new({ - cmd = "${pkgs.lazygit}/bin/lazygit", - dir = "git_dir", - direction = "float", - hidden = true, - on_open = function (term) - vim.cmd('startinsert!') - vim.api.nvim_buf_set_keymap(term.bufnr, 'n', 'q', 'close', { noremap = true, silent = true }) - end, - on_close = function (term) - vim.cmd('startinsert!') - end, - }) - ''; - mappings = { - normal = { - "g" = luaMap "function () lazygit:toggle() end"; - }; - }; - } - { - plugin = copilot-cmp; - dependencies = [ - { - plugin = copilot-lua; - config = '' - require('copilot').setup({ - suggestion = { enabled = false }, - panel = { enajkbled = false }, - copilot_node_command = '${pkgs.nodejs}/bin/node', - }) - ''; - } - ]; - config = '' - require('copilot_cmp').setup() - ''; - } - { - plugin = gen-nvim; - config = - let - config = { - model = "llama3"; - }; - in - '' - require('gen').setup(${toLua config}) - ''; - } - { - plugin = bufferline-nvim; - config = - let - options = { - hover = { - enabled = true; - delay = 200; - reveal = [ "close" ]; - }; - }; - in - '' - require('bufferline').setup({ options = ${toLua options} }) - ''; - dependencies = [ - { - plugin = nvim-web-devicons; - } - ]; - } - ]; - lsp = { - servers = with pkgs; [ - { - name = "lua_ls"; - config = { - settings = { - Lua = { - diagnostics = { - globals = [ "vim" ]; - }; - }; - }; - }; - package = lua-language-server; - } - { - name = "yamlls"; - config = { - settings = { - redhat = { - telemetry = { - enabled = false; - }; - }; - yaml = { - schemas = { - "https://json.schemastore.org/github-workflow" = ".github/workflows/*.yml"; - "https://json.schemastore.org/prettierrc" = ".prettierrc"; - "https://json.schemastore.org/prettierrc.yml" = ".prettierrc.yml"; - "https://json.schemastore.org/prettierrc.yaml" = ".prettierrc.yaml"; - "https://json.schemastore.org/prettier.config.yml" = "prettier.config.yml"; - "https://json.schemastore.org/prettier.config.yaml" = "prettier.config.yaml"; - "https://schema.jokke.space/caddy.json" = [ - "*caddy*.yml" - "*caddy*.yaml" - ]; - }; - }; - }; - }; - package = yaml-language-server; - } - { - name = "tailwindcss"; - config = { - settings = { - tailwindCSS = { - classAttributes = [ - "class" - "className" - ]; - }; - }; - }; - package = tailwindcss-language-server; - } - { - name = "ts_ls"; - package = nodePackages.typescript-language-server; - config = { - single_file_support = false; - }; - rootPattern = [ "package.json" ]; - } - { - name = "eslint"; - package = vscode-langservers-extracted; - } - { - name = "nixd"; - package = nixd; - } - { - name = "bashls"; - package = nodePackages.bash-language-server.overrideAttrs (oldAttrs: { - buildDependencies = [ shellcheck ]; - afterInstall = '' - wrapProgram "$out/bin/bash-language-server" --prefix PATH : "${shellcheck}/bin" - ''; - }); - } - { - name = "crystalline"; - package = crystalline; - } - { - name = "rust_analyzer"; - package = rust-analyzer; - } - ]; - mappings = { - buf = { - declaration = "gD"; - definition = "gd"; - hover = "K"; - implementation = "gi"; - type_definition = "D"; - rename = "rn"; - code_action = "ca"; - }; - diagnostic = { - show_line_diagnostics = "e"; - goto_prev = "[d"; - goto_next = "]d"; - set_loclist = "q"; - }; - }; - }; - extraLuaConfig = '' - local function close_all_other_buffers(opts) - local current_buf = vim.api.nvim_get_current_buf() - local buffers = vim.api.nvim_list_bufs() - - for _, buf in ipairs(buffers) do - if buf ~= current_buf and vim.api.nvim_buf_is_loaded(buf) then - vim.api.nvim_buf_delete(buf, { force = opts.bang }) - end - end - end - - vim.api.nvim_create_user_command('CloseOtherBuffers', close_all_other_buffers, { bang = true }) - ''; - }; -} diff --git a/home/common/neovim/formatters.lua b/home/common/neovim/formatters.lua deleted file mode 100644 index 2b7d89a..0000000 --- a/home/common/neovim/formatters.lua +++ /dev/null @@ -1,46 +0,0 @@ -local Formatters = {} - -Formatters.setup = function() - local formatter = require('formatter') - local util = require('formatter.util') - - local js = { - function () - return { - exe = "npx", - args = {"prettier", "--stdin-filepath", util.escape_path(util.get_current_buffer_file_name())}, - stdin = true, - } - end - } - - local ruby = { - function () - return { - exe = "bundle", - args = {"exec", "rufo", "-x", "--filename", util.escape_path(util.get_current_buffer_file_name())}, - stdin = true, - } - end - } - - formatter.setup { - filetype = { - javascript = js, - typescript = js, - javascriptreact = js, - typescriptreact = js, - svelte = js, - ruby = ruby, - haml = ruby, - } - } - - vim.api.nvim_create_autocmd("BufWritePost", { - pattern = { "*.js", "*.ts", "*.jsx", "*.tsx", "*.svelte", "*.rb", "*.haml", "Gemfile", "*.rake" }, - command = "FormatWrite", - group = vim.api.nvim_create_augroup("FormatAutogroup", { clear = true }), - }) -end - -Formatters.setup() diff --git a/home/common/neovim/luasnippets/typescriptreact.lua b/home/common/neovim/luasnippets/typescriptreact.lua deleted file mode 100644 index 9f790a9..0000000 --- a/home/common/neovim/luasnippets/typescriptreact.lua +++ /dev/null @@ -1,83 +0,0 @@ -local ls = require("luasnip") -local fmt = require("luasnip.extras.fmt").fmt -local s = ls.snippet -local sn = ls.snippet_node -local i = ls.insert_node -local f = ls.function_node -local d = ls.dynamic_node - -return { - s( - { trig = "fc", desc = "React.FC" }, - fmt( - [[ - import React from "react" - - interface {props_name} {{ - {prop_types} - }} - - const {component_name}: React.FC<{props_name}> = ({props}) => {{ - return ( - {markup} - ) - }} - - export default {component_name} - ]], - { - props_name = i(3, "Props"), - prop_types = i(2), - component_name = d(1, function() - local filename = vim.api.nvim_buf_get_name(0) - local component_name - - if filename == "index.tsx" then - component_name = vim.fs.basename(vim.fs.dirname(filename)) - else - component_name = vim.fs.basename(filename):match("(.+)%.tsx") - end - - return sn(nil, i(1, component_name)) - end), - props = f(function(prop_types) - local props = {} - - for _, prop in ipairs(prop_types[1]) do - local parts = vim.split(prop, ":", { plain = true, trimempty = true }) - local name = parts[1] - if name then - table.insert(props, vim.trim(name)) - end - end - - return "{ " .. table.concat(props, ", ") .. " }" - end, { 2 }), - markup = i(0), - }, - { - repeat_duplicates = true, - } - ) - ), - s( - { trig = "t", desc = "" }, - fmt( - [[ - <{tag}> - {children} - - ]], - { - tag = i(1, "div"), - closing_tag = f(function(tag) - return vim.split(tag[1][1], " ")[1] - end, { 1 }), - children = i(0), - }, - { - repeat_duplicates = true, - } - ) - ), -} diff --git a/home/common/neovim/snippets/ruby.snippets b/home/common/neovim/snippets/ruby.snippets deleted file mode 100644 index aab553b..0000000 --- a/home/common/neovim/snippets/ruby.snippets +++ /dev/null @@ -1,33 +0,0 @@ -snippet if ruby if statement - if $1 - $0 - end - -snippet qt graphql query test - require "test_helper" - - module Graphql - module Queries - class $1Test < ActionDispatch::IntegrationTest - setup do - @user = users(:tobias) - rack_login(@user) - end - - test "Query$1" do - run_query("Query$1") do |json, msg| - $0 - end - end - - test "Query$1 without $2 permissions" do - @user.permission.update!($2: 0) - - run_query("Query$1") do |json, msg| - assert false - end - end - end - end - end - diff --git a/home/common/neovim/snippets/typescriptreact.snippets b/home/common/neovim/snippets/typescriptreact.snippets deleted file mode 100644 index 8b13789..0000000 --- a/home/common/neovim/snippets/typescriptreact.snippets +++ /dev/null @@ -1 +0,0 @@ - diff --git a/home/custom-programs/default.nix b/home/custom-programs/default.nix deleted file mode 100644 index ef6c9b0..0000000 --- a/home/custom-programs/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ ... }: -let - inherit (builtins) attrNames filter readDir; - dirs = - let - files = readDir ./.; - in - filter (name: files."${name}" == "directory") (attrNames files); -in -{ - imports = map (dir: ./${dir}) dirs; -} diff --git a/home/custom-programs/fb-client/default.nix b/home/custom-programs/fb-client/default.nix deleted file mode 100644 index d5735ed..0000000 --- a/home/custom-programs/fb-client/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: -let - cfg = config.programs.fb-client; -in -{ - options.programs.fb-client = - let - inherit (lib) mkEnableOption mkOption types; - in - { - enable = mkEnableOption { }; - pastebin = mkOption { - type = types.str; - default = "https://paste.xinu.at"; - }; - clipboard_cmd = mkOption { - type = types.pathInStore; - default = "${pkgs.wl-clipboard}/bin/wl-copy"; - }; - }; - - config = lib.mkIf cfg.enable { - home.packages = [ pkgs.fb-client ]; - xdg = { - configFile = { - "fb-client/config".text = '' - pastebin="${cfg.pastebin}" - apikey_file="${config.xdg.dataHome}/fb-client/apikey" - clipboard_cmd="${cfg.clipboard_cmd}" - ''; - }; - }; - }; -} diff --git a/home/default.nix b/home/default.nix index e4bb429..092bdde 100644 --- a/home/default.nix +++ b/home/default.nix @@ -1,11 +1,16 @@ -{ inputs, self, ... }: +{ + inputs, + pkgs-unstable, + self, + ... +}: { home-manager = { users = { jokke = import ./jokke; moco = import ./moco; }; - extraSpecialArgs = { inherit inputs self; }; + extraSpecialArgs = { inherit inputs self pkgs-unstable; }; sharedModules = [ (import ./common) ]; useUserPackages = true; useGlobalPkgs = true; diff --git a/home/jokke/default.nix b/home/jokke/default.nix index 29fe6e9..9fd4d97 100644 --- a/home/jokke/default.nix +++ b/home/jokke/default.nix @@ -31,72 +31,6 @@ gnome.profilePicture = ../assets/profile-pictures/jokke.png; - programs.neovim = { - extraPackages = with pkgs; [ - nodePackages.graphql-language-service-cli - ]; - withTreesitterPlugins = p: [ - p.typescript - p.svelte - p.prisma - p.graphql - ]; - formatters = [ - { - filetypes = [ - "typescript" - "typescriptreact" - "svelte" - ]; - globs = [ - "*.ts" - "*.tsx" - "*.svelte" - ]; - exe = "npx"; - args = file: [ - "prettier" - "--stdin-filepath" - file - ]; - stdin = true; - } - { - filetypes = [ "prisma" ]; - globs = [ "*.prisma" ]; - exe = "${pkgs.nodePackages.prisma}/bin/prisma"; - args = file: [ - "format" - "--schema" - ]; - stdin = false; - } - ]; - lsp.servers = with pkgs; [ - { - name = "svelte"; - package = nodePackages.svelte-language-server; - } - { - name = "denols"; - package = deno; - rootPattern = [ "deno.json" ]; - } - { - name = "graphql"; - package = nodePackages.graphql-language-service-cli; - config = { - filetypes = [ - "typescript" - "typescriptreact" - "graphql" - "svelte" - ]; - }; - } - ]; - }; - programs.ssh.matchBlocks = { "alderaan" = { hostname = "alderaan.space"; diff --git a/home/moco/default.nix b/home/moco/default.nix index 6c9386f..df21b80 100644 --- a/home/moco/default.nix +++ b/home/moco/default.nix @@ -70,70 +70,6 @@ in programs.git.extraConfig.user.email = "joakim.repomaa@mocoapp.com"; - programs.neovim = { - withTreesitterPlugins = p: [ - p.ruby - p.javascript - p.typescript - p.graphql - ]; - formatters = [ - { - filetypes = [ "ruby" ]; - globs = [ - "*.rb" - "Gemfile" - "*.rake" - ]; - exe = "bundle"; - args = file: [ - "exec" - "rufo" - "-x" - "--filename" - file - ]; - stdin = true; - } - { - filetypes = [ - "javascript" - "typescript" - "javascriptreact" - "typescriptreact" - ]; - globs = [ - "*.js" - "*.jsx" - "*.ts" - "*.tsx" - ]; - exe = "npx"; - args = file: [ - "prettier" - "--stdin-filepath" - file - ]; - stdin = true; - } - ]; - lsp.servers = with pkgs; [ - { - name = "ruby_lsp"; - config = { - init_options = { - formatter = "auto"; - }; - }; - package = ruby-lsp; - } - { - name = "graphql"; - package = nodePackages.graphql-language-service-cli; - } - ]; - }; - programs.ssh.matchBlocks = let aliases = [ diff --git a/home/modules/neovim/default.nix b/home/modules/neovim/default.nix deleted file mode 100644 index d0b3d28..0000000 --- a/home/modules/neovim/default.nix +++ /dev/null @@ -1,546 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: -let - cfg = config.programs.neovim; - toLua = lib.generators.toLua { }; - buildPluginConfig = - p: - let - pluginConfig = if builtins.hasAttr "plugin" p then p else { plugin = p; }; - name = pluginConfig.plugin.name; - - config = if (builtins.isNull pluginConfig.config or null) then "" else pluginConfig.config; - mappings = - if (builtins.isNull pluginConfig.mappings or null) then - "" - else - generateMappings pluginConfig.mappings; - mergedConfig = config + mappings; - in - [ - { - plugin = pluginConfig.plugin; - config = lib.modules.mkIf (mergedConfig != "") '' - Plugins[${toLua name}] = {} - Plugins[${toLua name}].setup = function() - ${ - lib.strings.concatMapStrings (line: if line == "" then "" else " ${line}\n") ( - lib.strings.splitString "\n" mergedConfig - ) - - } - end - - Plugins[${toLua name}].setup() - ''; - type = "lua"; - } - ] - ++ (lib.lists.concatMap buildPluginConfig pluginConfig.dependencies or [ ]); - - lspPluginConfig = with pkgs.vimPlugins; { - plugin = nvim-lspconfig; - dependencies = [ - nvim-cmp - cmp-nvim-lsp - cmp_luasnip - luasnip - ]; - - config = - (builtins.readFile ./lsp-config.lua) - + '' - local capabilities = vim.lsp.protocol.make_client_capabilities() - capabilities.workspace.didChangeWatchedFiles.dynamicRegistration = true - local lspconfig = require('lspconfig') - local util = require('lspconfig.util') - - local on_attach = function (client, bufnr) - local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end - local map = function (lhs, rhs) - print('set mapping ' .. lhs) - end - - -- Enable completion triggered by - buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') - - -- Mappings. - -- See `:help vim.lsp.*` for documentation on any of the below functions - - ${lib.strings.concatLines ( - lib.attrsets.mapAttrsToList (name: value: '' - local buf_${name} = vim.lsp.buf[${toLua name}] - if buf_${name} then - vim.keymap.set('n', ${toLua value}, buf_${name}, { buffer = bufnr }) - end - '') cfg.lsp.mappings.buf - )} - ${lib.strings.concatLines ( - lib.attrsets.mapAttrsToList (name: value: '' - local diagnostic_${name} = vim.lsp.buf[${toLua name}] - if diagnostic_${name} then - vim.keymap.set('n', ${toLua value}, diagnostic_${name}, { buffer = bufnr }) - end - '') cfg.lsp.mappings.diagnostic - )} - end - - vim.env.PATH = ${ - toLua ( - lib.makeBinPath ( - map (s: s.package) (builtins.filter (s: builtins.hasAttr "package" s) cfg.lsp.servers) - ) - + ":" - ) - } .. vim.env.PATH - local servers = ${ - toLua ( - map ( - { - name, - config ? { }, - rootPattern ? null, - ... - }: - { - inherit name; - config = config // (if (builtins.isNull rootPattern) then { } else { inherit rootPattern; }); - } - ) cfg.lsp.servers - ) - } - - for _, server in ipairs(servers) do - local server_config = server.config - server_config.on_attach = on_attach - server_config.capabilities = capabilities - server_config.flags = { - debounce_text_changes = 150 - } - - if server_config.rootPattern then - server_config.root_dir = util.root_pattern( - unpack(server_config.rootPattern) - ) - end - - lspconfig[server.name].setup(server_config) - end - ''; - - }; - - treesitterPluginConfig = with pkgs.vimPlugins; { - plugin = nvim-treesitter.withPlugins cfg.withTreesitterPlugins; - config = '' - require('nvim-treesitter.configs').setup(${ - toLua { - highlight = { - enable = true; - additional_vim_regex_highlighting = false; - }; - } - }); - ''; - }; - - formatterPluginConfig = with pkgs.vimPlugins; { - plugin = formatter-nvim; - config = '' - local formatter = require('formatter') - local util = require('formatter.util') - - formatter.setup({ - filetype = { - ${lib.strings.concatMapStringsSep ",\n " ( - { - exe, - args, - stdin, - no_append, - filetypes, - ... - }: - lib.strings.concatMapStringsSep ",\n " (filetype: '' - [${toLua filetype}] = { - function () - return { - exe = ${toLua exe}, - args = { - ${lib.strings.concatMapStringsSep ",\n " ( - arg: - if arg == "<>" then "util.escape_path(util.get_current_buffer_file_path())" else toLua arg - ) (args "<>")} - }, - stdin = ${toLua stdin}, - no_append = ${toLua no_append}, - } - end - } - '') filetypes - ) cfg.formatters} - } - }) - ${generateAutoCommand { - event = "BufWritePost"; - pattern = lib.lists.concatMap ({ globs, ... }: globs) cfg.formatters; - command = "FormatWrite"; - group = "FormatAutogroup"; - }} - ''; - }; - - customTypes = - let - inherit (lib) mkOption mkEnableOption types; - in - { - mapping = types.submodule { - options = { - rhs = mkOption { type = types.str; }; - lua = mkEnableOption { }; - options = mkOption { - type = types.nullOr ( - types.submodule { - options = { - buffer = mkOption { - type = types.nullOr (types.either types.int types.bool); - default = null; - }; - nowait = mkOption { - type = types.nullOr types.bool; - default = null; - }; - silent = mkOption { - type = types.nullOr types.bool; - default = null; - }; - expr = mkOption { - type = types.nullOr types.bool; - default = null; - }; - script = mkOption { - type = types.nullOr types.bool; - default = null; - }; - unique = mkOption { - type = types.nullOr types.bool; - default = null; - }; - replace_keycodes = mkOption { - type = types.nullOr types.bool; - default = null; - }; - }; - } - ); - default = { }; - }; - }; - }; - - modeMappings = types.attrsOf (types.either types.str customTypes.mapping); - - mappings = types.submodule { - options = { - normal = mkOption { - type = customTypes.modeMappings; - default = { }; - }; - insert = mkOption { - type = customTypes.modeMappings; - default = { }; - }; - visual = mkOption { - type = customTypes.modeMappings; - default = { }; - }; - command = mkOption { - type = customTypes.modeMappings; - default = { }; - }; - select = mkOption { - type = customTypes.modeMappings; - default = { }; - }; - }; - }; - - plugin = types.either types.package ( - types.submodule { - options = { - plugin = mkOption { type = types.package; }; - dependencies = mkOption { - type = types.listOf customTypes.plugin; - default = [ ]; - }; - mappings = mkOption { - type = customTypes.mappings; - default = { }; - }; - config = mkOption { - type = types.nullOr types.str; - default = null; - }; - }; - } - ); - - autoCommand = types.submodule { - options = { - event = mkOption { type = types.either types.str (types.listOf types.str); }; - pattern = mkOption { type = types.either types.str (types.listOf types.str); }; - command = mkOption { type = types.str; }; - }; - }; - - lspServer = types.submodule { - options = { - name = mkOption { type = types.str; }; - config = mkOption { - type = types.attrs; - default = { }; - }; - package = mkOption { - type = types.nullOr types.package; - default = null; - }; - rootPattern = mkOption { - type = types.nullOr (types.listOf types.str); - default = null; - }; - }; - }; - - formatter = types.submodule { - options = { - filetypes = mkOption { type = types.listOf types.str; }; - globs = mkOption { type = types.listOf types.str; }; - exe = mkOption { type = types.either types.path types.str; }; - args = mkOption { - type = types.functionTo (types.listOf types.str); - default = _: [ ]; - }; - stdin = mkEnableOption { }; - no_append = mkEnableOption { }; - }; - }; - }; - - generateMappings = - mappings: - lib.strings.concatLines ( - lib.attrsets.mapAttrsToList ( - mode: modeMappings: - lib.strings.concatLines ( - lib.attrsets.mapAttrsToList ( - name: value: - - let - mapping = { - lhs = name; - lua = false; - options = { }; - } // (if builtins.isString value then { rhs = value; } else value); - args = [ - (toLua (builtins.substring 0 1 mode)) - (toLua mapping.lhs) - (if mapping.lua then mapping.rhs else toLua mapping.rhs) - (toLua ( - builtins.listToAttrs ( - builtins.filter ({ value, ... }: !isNull (value)) (lib.attrsets.attrsToList mapping.options) - ) - )) - ]; - in - "vim.keymap.set(${lib.strings.concatStringsSep ", " args})" - ) modeMappings - ) - ) mappings - ); - - generateAutoCommand = - { - event, - pattern, - command, - group ? null, - }: - '' - vim.api.nvim_create_autocmd(${toLua event}, { - pattern = ${toLua pattern}, - command = ${toLua command}, - group = ${ - if isNull group then - toLua group - else - '' - vim.api.nvim_create_augroup(${toLua group}, { clear = true }) - '' - }, - }) - ''; - - generateAutoCommands = autoCommands: lib.strings.concatLines (map generateAutoCommand autoCommands); - - generateSignDefinitions = - signs: - lib.strings.concatLines ( - lib.attrsets.mapAttrsToList ( - name: value: - let - hl = "DiagnosticSign${ - lib.strings.toUpper (builtins.substring 0 1 name) - }${builtins.substring 1 (-1) name}"; - in - "vim.fn.sign_define(${toLua hl}, ${ - toLua { - text = value; - texthl = hl; - numhl = ""; - } - })" - ) signs - ); -in -{ - options.programs.neovim = - let - inherit (lib) mkOption types; - in - { - mappings = mkOption { - type = customTypes.mappings; - default = { }; - }; - plug = mkOption { - type = types.listOf customTypes.plugin; - default = [ ]; - }; - leader = mkOption { - type = types.str; - default = "\\"; - }; - options = mkOption { - type = types.attrs; - default = { }; - }; - snippets = mkOption { - type = types.attrsOf types.path; - default = { }; - }; - autoCommands = mkOption { - type = types.listOf customTypes.autoCommand; - default = [ ]; - }; - env = mkOption { - type = types.attrsOf types.str; - default = { }; - }; - signs = { - error = mkOption { - type = types.str; - default = ""; - }; - warning = mkOption { - type = types.str; - default = ""; - }; - info = mkOption { - type = types.str; - default = ""; - }; - hint = mkOption { - type = types.str; - default = ""; - }; - }; - lsp = { - servers = mkOption { - type = types.listOf customTypes.lspServer; - default = [ ]; - }; - mappings = { - buf = mkOption { - type = types.attrsOf types.str; - default = { }; - }; - diagnostic = mkOption { - type = types.attrsOf types.str; - default = { }; - }; - }; - }; - withTreesitterPlugins = mkOption { - type = types.functionTo (types.listOf types.package); - default = _: [ ]; - }; - formatters = mkOption { - type = types.listOf customTypes.formatter; - default = [ ]; - }; - }; - - config = { - programs.neovim = { - extraLuaConfig = lib.strings.concatLines [ - "local Plugins = {}" - (generateMappings cfg.mappings) - (generateAutoCommands cfg.autoCommands) - (lib.strings.concatLines ( - lib.attrsets.mapAttrsToList (name: value: "vim.env.${name} = ${toLua value}") cfg.env - )) - (lib.strings.concatLines ( - lib.attrsets.mapAttrsToList (name: value: "vim.opt.${name} = ${toLua value}") cfg.options - )) - (generateSignDefinitions cfg.signs) - "vim.g.mapleader = ${toLua cfg.leader}" - '' - local undodir = ${ - toLua ( - if builtins.hasAttr "undodir" cfg.options then - cfg.options.undodir - else - "${config.xdg.cacheHome}/nvim/undo" - ) - } - vim.opt.undodir = undodir - vim.fn.mkdir(undodir, 'p') - '' - ]; - plugins = lib.lists.concatMap buildPluginConfig ( - cfg.plug - ++ [ - lspPluginConfig - treesitterPluginConfig - formatterPluginConfig - ] - ); - vimAlias = lib.mkForce false; - vimdiffAlias = lib.mkForce false; - }; - - xdg.configFile = ( - lib.attrsets.mapAttrs' (name: value: { - name = "nvim/${name}"; - value = { - source = value; - }; - }) cfg.snippets - ); - - home.shellAliases = - let - nvim = ''nvim --listen "$XDG_RUNTIME_DIR/nvimsocket"''; - in - { - inherit nvim; - vim = nvim; - vimdiff = "${nvim} -d"; - }; - }; -} diff --git a/home/modules/neovim/lsp-config.lua b/home/modules/neovim/lsp-config.lua deleted file mode 100644 index b9ec3a0..0000000 --- a/home/modules/neovim/lsp-config.lua +++ /dev/null @@ -1,89 +0,0 @@ -local Lsp = {} - -Lsp.setup = function() - local luasnip = require("luasnip") - local cmp = require("cmp") - - local has_words_before = function() - if vim.api.nvim_buf_get_option(0, "buftype") == "prompt" then - return false - end - local line, col = unpack(vim.api.nvim_win_get_cursor(0)) - return col ~= 0 and vim.api.nvim_buf_get_text(0, line - 1, 0, line - 1, col, {})[1]:match("^%s*$") == nil - end - - cmp.setup({ - snippet = { - expand = function(args) - luasnip.lsp_expand(args.body) - end, - }, - window = { - completion = cmp.config.window.bordered(), - documentation = cmp.config.window.bordered(), - }, - mapping = { - [""] = function() - if luasnip.jumpable(-1) then - luasnip.jump(-1) - else - cmp.mapping.select_prev_item() - end - end, - [""] = function() - if luasnip.expand_or_jumpable() then - luasnip.expand_or_jump() - else - cmp.mapping.select_next_item() - end - end, - [""] = cmp.mapping.scroll_docs(-4), - [""] = cmp.mapping.scroll_docs(4), - [""] = cmp.mapping.complete(), - [""] = cmp.mapping.close(), - [""] = cmp.mapping.confirm({ - behavior = cmp.ConfirmBehavior.Replace, - select = true, - }), - [""] = function(fallback) - if cmp.visible() and has_words_before() then - cmp.select_next_item() - else - fallback() - end - end, - [""] = function(fallback) - if cmp.visible() and has_words_before() then - cmp.select_prev_item() - else - fallback() - end - end, - }, - sources = { - { name = "copilot", group_index = 2 }, - { name = "nvim_lsp", group_index = 2 }, - { name = "luasnip", group_index = 2 }, - }, - }) - - vim.o.completeopt = "menuone,noselect" - vim.o.updatetime = 250 - vim.cmd([[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})]]) - vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, { - virtual_text = { - source = "if_many", - }, - }) - - vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = "rounded" }) - - vim.lsp.handlers["textDocument/signatureHelp"] = - vim.lsp.with(vim.lsp.handlers.signature_help, { border = "rounded" }) - - vim.diagnostic.config({ - float = { border = "rounded", zindex = 1 }, - }) -end - -Lsp.setup() diff --git a/home/modules/zed/default.nix b/home/modules/zed/default.nix index 1d29dc9..bff8eb5 100644 --- a/home/modules/zed/default.nix +++ b/home/modules/zed/default.nix @@ -1,8 +1,8 @@ { - inputs, config, lib, pkgs, + pkgs-unstable, ... }: let @@ -70,7 +70,7 @@ in config = lib.mkIf cfg.enable { programs.zed-editor = { - package = inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.zed-editor; + package = pkgs-unstable.zed-editor; extensions = [ "ruby" "crystal" @@ -169,9 +169,7 @@ in path = lib.getExe nodePackages.vscode-json-languageserver; arguments = [ "--stdio" ]; }; - package-version-server.binary.path = - lib.getExe - inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.package-version-server; + package-version-server.binary.path = lib.getExe pkgs-unstable.package-version-server; eslint.settings.onIgnoredFiles = "off"; crystalline.binary.path = lib.getExe crystalline; ameba-ls.binary.path = lib.getExe ameba-ls; diff --git a/hosts/freun-dev/services.nix b/hosts/freun-dev/services.nix index 7a00f3d..d0f87d0 100644 --- a/hosts/freun-dev/services.nix +++ b/hosts/freun-dev/services.nix @@ -1,5 +1,6 @@ { pkgs, + pkgs-unstable, config, inputs, ... @@ -213,7 +214,7 @@ in mealie = { enable = true; - package = inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.mealie; + package = pkgs-unstable.mealie; subdomain = "cook"; credentialsFile = secrets.mealie.path; settings = { diff --git a/hosts/radish/hardware.nix b/hosts/radish/hardware.nix index 28ae142..2d4a7f8 100644 --- a/hosts/radish/hardware.nix +++ b/hosts/radish/hardware.nix @@ -1,20 +1,18 @@ { pkgs, + pkgs-unstable, inputs, lib, config, ... }: -let - pkgsUnstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}; -in { hardware.bluetooth.enable = true; hardware.bluetooth.powerOnBoot = true; services.udev.packages = [ pkgs.zsa-udev-rules - pkgsUnstable.yubikey-personalization + pkgs-unstable.yubikey-personalization inputs.ksoloti-pr.legacyPackages.${pkgs.system}.ksoloti ]; services.usbmuxd = { diff --git a/hosts/radish/packages.nix b/hosts/radish/packages.nix index 8e79471..a319d68 100644 --- a/hosts/radish/packages.nix +++ b/hosts/radish/packages.nix @@ -1,5 +1,6 @@ { pkgs, + pkgs-unstable, lib, inputs, config, @@ -10,7 +11,7 @@ let in { nixpkgs.config.allowUnfree = true; - nixpkgs.overlays = [ (import ../../custom-pkgs { inherit lib inputs; }) ]; + nixpkgs.overlays = [ (import ../../custom-pkgs { inherit lib inputs pkgs-unstable; }) ]; environment = { systemPackages = with pkgs; [ @@ -27,7 +28,7 @@ in pathsToLink = [ "/share/zsh" ]; }; - fonts.packages = with inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}; [ + fonts.packages = with pkgs-unstable; [ nerd-fonts.iosevka nerd-fonts.iosevka-term ]; diff --git a/modules/default.nix b/modules/default.nix index 3473dc8..5341bce 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -1,5 +1,9 @@ -{ inputs, ... }: +{ inputs, config, ... }: { + _module.args = { + pkgs-unstable = inputs.nixpkgs-unstable.legacyPackages.${config.nixpkgs.hostPlatform.system}; + }; + imports = [ ./vlans.nix ./firewall.nix diff --git a/modules/services/dnote.nix b/modules/services/dnote.nix index 562a7eb..3955246 100644 --- a/modules/services/dnote.nix +++ b/modules/services/dnote.nix @@ -1,14 +1,13 @@ { lib, - inputs, config, pkgs, + pkgs-unstable, ... }: let cfg = config.services.dnote; fqdn = "${cfg.subdomain}.${config.networking.domain}"; - pkgsUnstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}; types = { environment = lib.types.submodule { @@ -91,7 +90,7 @@ in after = [ "postgresql.service" ]; requires = [ "postgresql.service" ]; serviceConfig = { - ExecStart = "${pkgsUnstable.dnote}/bin/dnote-server -port ${toString cfg.port} start"; + ExecStart = "${pkgs-unstable.dnote}/bin/dnote-server -port ${toString cfg.port} start"; EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile; User = cfg.user; BindPaths = [ diff --git a/modules/services/workout-tracker.nix b/modules/services/workout-tracker.nix index c979c8d..d5235c0 100644 --- a/modules/services/workout-tracker.nix +++ b/modules/services/workout-tracker.nix @@ -1,15 +1,14 @@ { - pkgs, + pkgs-unstable, config, lib, - inputs, ... }: let cfg = config.services.workout-tracker; fqdn = "${cfg.subdomain}.${config.networking.domain}"; port = cfg.port; - package = inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.workout-tracker; + package = pkgs-unstable.workout-tracker; in { options.services.workout-tracker = {