Compare commits

...

186 commits

Author SHA1 Message Date
99c525613a ci testing 2026-02-27 22:44:59 -06:00
db330b546d cleanup nvim merge and general janitorial work 2026-02-27 22:44:59 -06:00
c544159576 Add 'pkgs/nvim/' from commit 'e5a176d5b7'
git-subtree-dir: pkgs/nvim
git-subtree-mainline: 6fd74fbf0c7a66496ea6f99f85f6045b822f1f4f
git-subtree-split: e5a176d5b7
2026-02-27 22:44:59 -06:00
e5a176d5b7 improve blink.cmp perf in large directories 2026-02-23 22:51:32 -06:00
e9d4373ddc update difftool name 2026-02-15 23:36:13 -06:00
7000c3a405 diffedit inline 2026-02-15 23:12:26 -06:00
23abd72cf8 fix colorscheme diffs 2026-01-30 00:01:47 -06:00
7a86861f09 use jj.nvim instead of custom jank 2026-01-19 23:50:07 -06:00
3c5c3a6745 misc cleanup 2026-01-12 01:13:57 -06:00
775af7d730 flake.lock: Update
Flake lock file updates:

• Updated input 'dart':
    'github:iofq/dart.nvim/26b476f2113143329637a27d4e52ce9772bcae5b?narHash=sha256-Z9idyP9kiKxC10VL0vHnxcBwrkpNtBrC%2BZxl9mQbCj8%3D' (2025-10-18)
  → 'github:iofq/dart.nvim/205f809fbb27d56aff22756a97b5ba6f0c7243c3?narHash=sha256-lLY34wnbyzi21zE8i%2BVM0AoEt67r4aPn/EoaZ8o4NgU%3D' (2025-12-07)
• Updated input 'neovim-nightly-overlay':
    'github:nix-community/neovim-nightly-overlay/3c9432813e5528a13075f5493da6ff9ef249ad1d?narHash=sha256-THAk4qzBOsp03bDBYK9Ek3mQEvl2g8Fea0QhpCoEzfs%3D' (2025-10-19)
  → 'github:nix-community/neovim-nightly-overlay/d31b28318affe5d58ef12e7f72a7adfa66930a7a?narHash=sha256-pxxUR3VRDcDpMgF1qb9FnlHAEOGi24bk6pdB1QzL1II%3D' (2026-01-10)
• Removed input 'neovim-nightly-overlay/flake-compat'
• Updated input 'neovim-nightly-overlay/flake-parts':
    'github:hercules-ci/flake-parts/4e627ac2e1b8f1de7f5090064242de9a259dbbc8?narHash=sha256-lbHQ7FXGzt6/IygWvJ1lCq%2BTxcut3xYYd6VIpF1ojkg%3D' (2025-10-18)
  → 'github:hercules-ci/flake-parts/250481aafeb741edfe23d29195671c19b36b6dca?narHash=sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY%3D' (2026-01-05)
• Removed input 'neovim-nightly-overlay/git-hooks'
• Removed input 'neovim-nightly-overlay/git-hooks/flake-compat'
• Removed input 'neovim-nightly-overlay/git-hooks/gitignore'
• Removed input 'neovim-nightly-overlay/git-hooks/gitignore/nixpkgs'
• Removed input 'neovim-nightly-overlay/git-hooks/nixpkgs'
• Removed input 'neovim-nightly-overlay/hercules-ci-effects'
• Removed input 'neovim-nightly-overlay/hercules-ci-effects/flake-parts'
• Removed input 'neovim-nightly-overlay/hercules-ci-effects/nixpkgs'
• Updated input 'neovim-nightly-overlay/neovim-src':
    'github:neovim/neovim/be73c35943f85e7835c3a0fc89bddaeba944db29?narHash=sha256-VYkZdjjMOYsugoSydDDWE/1l79swm4zc4NJl1Z0brjA%3D' (2025-10-18)
  → 'github:neovim/neovim/930817f1009d9d392103b5440e2503cb47fdacc0?narHash=sha256-hcdQHR8l8oZDIl0vXKNtbrN%2B32dTs9EYvlqppoHgG2k%3D' (2026-01-09)
• Removed input 'neovim-nightly-overlay/treefmt-nix'
• Removed input 'neovim-nightly-overlay/treefmt-nix/nixpkgs'
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/6a3b08503e9cab108f9f0ec27065c5854655662a?narHash=sha256-Il5%2B67iRA3xp0cIErILj4VwEJ2ICrDrvTAHEmBsZJKQ%3D' (2025-10-19)
  → 'github:NixOS/nixpkgs/299d331f770cdf7c466a4faa08b3070a767d681d?narHash=sha256-V7El1ktdJ0/WWEr6wGBKFYu433vitrWvxmvPk79FsSc%3D' (2026-01-10)
• Updated input 'nvim-treesitter-main':
    'github:iofq/nvim-treesitter-main/420c14c0523d65c6c7ce943e8f2fb896eff950e3?narHash=sha256-WJScDX0q/%2BPCRpvBSlJfV01kwvu9WCk5YDpzW2Zswj8%3D' (2025-10-19)
  → 'github:iofq/nvim-treesitter-main/d82b04e1a05f88ed88c6221672ca0636dc8d6ef7?narHash=sha256-ej7y4nhiJNFE/HcZSPTEIrU6/WQmkMJo%2BbVQfgT3abE%3D' (2026-01-06)
• Updated input 'nvim-treesitter-main/nixpkgs':
    'github:nixos/nixpkgs/544961dfcce86422ba200ed9a0b00dd4b1486ec5?narHash=sha256-EVAqOteLBFmd7pKkb0%2BFIUyzTF61VKi7YmvP1tw4nEw%3D' (2025-10-15)
  → 'github:nixos/nixpkgs/fb7944c166a3b630f177938e478f0378e64ce108?narHash=sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf%2BOkucw%3D' (2026-01-02)
• Updated input 'nvim-treesitter-main/nvim-treesitter':
    'github:nvim-treesitter/nvim-treesitter/71bf1665f804d46f7e4b24ad7ffc11f6ea5b271a?narHash=sha256-ZeNCXy6%2BI18N%2BNu2sKnEk2otVEb8V3tKhL8Jq95wS5k%3D' (2025-10-19)
  → 'github:nvim-treesitter/nvim-treesitter/300b906a9514d5e0ce02911d371445382fe35a31?narHash=sha256-LX0rKTZ56Rp0uQfIXZ2JrcWxuCA/t8NJjK05aKiT0Yw%3D' (2026-01-03)
• Updated input 'nvim-treesitter-main/nvim-treesitter-textobjects':
    'github:nvim-treesitter/nvim-treesitter-textobjects/1b2d85d3de6114c4bcea89ffb2cd1ce9e3a19931?narHash=sha256-%2BKmOpRi4JAqm6UqYdtk80jwFrJhLCs0lZM/Liofq0R4%3D' (2025-08-28)
  → 'github:nvim-treesitter/nvim-treesitter-textobjects/28a3494c075ef0f353314f627546537e43c09592?narHash=sha256-5VeIAW09my%2B4fqXbzVG7RnLXrjpXAk/g2vd7RbhNws8%3D' (2026-01-03)
2026-01-09 23:08:24 -06:00
63f5dd46e9 flake.lock: Update
Flake lock file updates:

• Updated input 'dart':
    'github:iofq/dart.nvim/8822aabbfef95eda2b22a8f7ee08912c762ef941?narHash=sha256-ADZ2b2Oz%2BMOSjdKKCcQX9KmlhtmvVlZFEJr0HigWsOY%3D' (2025-11-01)
  → 'github:iofq/dart.nvim/205f809fbb27d56aff22756a97b5ba6f0c7243c3?narHash=sha256-lLY34wnbyzi21zE8i%2BVM0AoEt67r4aPn/EoaZ8o4NgU%3D' (2025-12-07)
• Updated input 'neovim-nightly-overlay':
    'github:nix-community/neovim-nightly-overlay/2c33f92a62588cd30dbba26fa39384e29229bc6f?narHash=sha256-h3c8Mcs4wI0U9JKzDyj1X%2BJUMc5KsfIXu2eyRE5ktAs%3D' (2025-11-09)
  → 'github:nix-community/neovim-nightly-overlay/f7fbc4e3d4ccea45eaa5b187884592eb42dfdbbd?narHash=sha256-YMf/PUyY4z7RlIe/Dzn1NnxZGS0Vp2eHxcMNWJM9q%2BA%3D' (2025-12-18)
• Updated input 'neovim-nightly-overlay/flake-parts':
    'github:hercules-ci/flake-parts/26d05891e14c88eb4a5d5bee659c0db5afb609d8?narHash=sha256-xxdepIcb39UJ94%2BYydGP221rjnpkDZUlykKuF54PsqI%3D' (2025-11-06)
  → 'github:hercules-ci/flake-parts/a34fae9c08a15ad73f295041fec82323541400a9?narHash=sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw%3D' (2025-12-15)
• Updated input 'neovim-nightly-overlay/neovim-src':
    'github:neovim/neovim/ded578625219d5056fdacdba4b04f0d5bf4fbe9d?narHash=sha256-npSk%2BFSPkiaGwKTluegZ3tXqDpe3EFiRMQJ2Cc6rq4Y%3D' (2025-11-08)
  → 'github:neovim/neovim/c172fd9f464d5766eab9071e8f4770504c920c05?narHash=sha256-KE/ufBGH8XFXTw3Vt1DrK1rQmAEp1Q%2BoyLQibX5UKO0%3D' (2025-12-17)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/cdfa60cc7448c7943dd3feb0ab18e342d569c7a4?narHash=sha256-kGEigbGxzpXpyeU9BtILXsMwTls5XcLyXEwYVfNjO4g%3D' (2025-11-09)
  → 'github:NixOS/nixpkgs/1306659b587dc277866c7b69eb97e5f07864d8c4?narHash=sha256-KJ2wa/BLSrTqDjbfyNx70ov/HdgNBCBBSQP3BIzKnv4%3D' (2025-12-15)
• Updated input 'nvim-treesitter-main':
    'github:iofq/nvim-treesitter-main/69e9583fe72fa2dbffcb740563a9cc48396e3f75?narHash=sha256-hRGD%2BCE04Z1qAJAaiJs6o%2BblS0WUEqfVS/5cqA0NcDI%3D' (2025-11-09)
  → 'github:iofq/nvim-treesitter-main/2e8b5c686fc346c34b1d2a269584b32f480e7b7f?narHash=sha256-%2BUw%2B965kDJTriyUGiYF/eYAuQBowoBZpLzJswInqLCY%3D' (2025-12-14)
• Updated input 'nvim-treesitter-main/nixpkgs':
    'github:nixos/nixpkgs/ae814fd3904b621d8ab97418f1d0f2eb0d3716f4?narHash=sha256-YRqMDEtSMbitIMj%2BJLpheSz0pwEr0Rmy5mC7myl17xs%3D' (2025-11-05)
  → 'github:nixos/nixpkgs/2fbfb1d73d239d2402a8fe03963e37aab15abe8b?narHash=sha256-9VvC20PJPsleGMewwcWYKGzDIyjckEz8uWmT0vCDYK0%3D' (2025-12-11)
• Updated input 'nvim-treesitter-main/nvim-treesitter':
    'github:nvim-treesitter/nvim-treesitter/d97d226cfd4c00af000b3b8529261352677fc6a8?narHash=sha256-hXs9TdytYtBeXW6nx9QZiQcqsuj1uLuZMf8kclaScQ8%3D' (2025-11-08)
  → 'github:nvim-treesitter/nvim-treesitter/74b119812e9f82bccc2f0eca156faff0354362ae?narHash=sha256-HT%2BUzX1m4hm2QAqDa0dltArr3gMyYhXHnHoYkkQBWZA%3D' (2025-12-13)
• Updated input 'nvim-treesitter-main/nvim-treesitter-textobjects':
    'github:nvim-treesitter/nvim-treesitter-textobjects/7024f8687b060dd9a425bde1fa8621c896a38138?narHash=sha256-gzeT2gtmFaXhRSC13mijH6tlk/eWRZaUrGiEpKoAorA%3D' (2025-11-08)
  → 'github:nvim-treesitter/nvim-treesitter-textobjects/0d7c800fadcfe2d33089f5726cb8907fc846eece?narHash=sha256-w2dzc5oWyEoPUgbqaAuNKCeFeh81rYJPOCPVRnFC724%3D' (2025-12-14)
2025-12-18 00:14:36 -06:00
8fc4e6a407 flake.lock: Update
Flake lock file updates:

• Updated input 'dart':
    'github:iofq/dart.nvim/71421e7ef5aee8267e24dc562fdd07a83bda192e?narHash=sha256-ULrZW4b8SKRvPpJPt8/jkqqc/blQiIWUriNWVXA33so%3D' (2025-10-23)
  → 'github:iofq/dart.nvim/8822aabbfef95eda2b22a8f7ee08912c762ef941?narHash=sha256-ADZ2b2Oz%2BMOSjdKKCcQX9KmlhtmvVlZFEJr0HigWsOY%3D' (2025-11-01)
• Updated input 'neovim-nightly-overlay':
    'github:nix-community/neovim-nightly-overlay/21595d9f79b5da0eef177dcfdd84ca981ac253a9?narHash=sha256-X4SNeOXdFkE7Gt%2BwaO5ck3TqfqWskqJHxt1WIu3nnUQ%3D' (2025-10-26)
  → 'github:nix-community/neovim-nightly-overlay/2c33f92a62588cd30dbba26fa39384e29229bc6f?narHash=sha256-h3c8Mcs4wI0U9JKzDyj1X%2BJUMc5KsfIXu2eyRE5ktAs%3D' (2025-11-09)
• Removed input 'neovim-nightly-overlay/flake-compat'
• Updated input 'neovim-nightly-overlay/flake-parts':
    'github:hercules-ci/flake-parts/864599284fc7c0ba6357ed89ed5e2cd5040f0c04?narHash=sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4%3D' (2025-10-20)
  → 'github:hercules-ci/flake-parts/26d05891e14c88eb4a5d5bee659c0db5afb609d8?narHash=sha256-xxdepIcb39UJ94%2BYydGP221rjnpkDZUlykKuF54PsqI%3D' (2025-11-06)
• Removed input 'neovim-nightly-overlay/git-hooks'
• Removed input 'neovim-nightly-overlay/git-hooks/flake-compat'
• Removed input 'neovim-nightly-overlay/git-hooks/gitignore'
• Removed input 'neovim-nightly-overlay/git-hooks/gitignore/nixpkgs'
• Removed input 'neovim-nightly-overlay/git-hooks/nixpkgs'
• Removed input 'neovim-nightly-overlay/hercules-ci-effects'
• Removed input 'neovim-nightly-overlay/hercules-ci-effects/flake-parts'
• Removed input 'neovim-nightly-overlay/hercules-ci-effects/nixpkgs'
• Updated input 'neovim-nightly-overlay/neovim-src':
    'github:neovim/neovim/a121ede1bfee2704c26159124f8f61f96c6aa136?narHash=sha256-S%2BYmbP/bPETjKk6B/tlh%2BjwIH7K7iPoXyHLLwTqVOhk%3D' (2025-10-25)
  → 'github:neovim/neovim/ded578625219d5056fdacdba4b04f0d5bf4fbe9d?narHash=sha256-npSk%2BFSPkiaGwKTluegZ3tXqDpe3EFiRMQJ2Cc6rq4Y%3D' (2025-11-08)
• Removed input 'neovim-nightly-overlay/treefmt-nix'
• Removed input 'neovim-nightly-overlay/treefmt-nix/nixpkgs'
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/887b4accbb94043a752c086c2aae6c6b365f7b3f?narHash=sha256-aK%2BBZgnXKktKD1DFAJoB%2B8KD9L8sf/dmiOa2bShlhlk%3D' (2025-10-26)
  → 'github:NixOS/nixpkgs/cdfa60cc7448c7943dd3feb0ab18e342d569c7a4?narHash=sha256-kGEigbGxzpXpyeU9BtILXsMwTls5XcLyXEwYVfNjO4g%3D' (2025-11-09)
• Updated input 'nvim-treesitter-main':
    'github:iofq/nvim-treesitter-main/834d66648bb7a96a2ad11d53a33f2d9b13766447?narHash=sha256-xTQUiJu0jJNSEHEv4La1HbaFokup0eWr67Kqf/wDENA%3D' (2025-10-26)
  → 'github:iofq/nvim-treesitter-main/69e9583fe72fa2dbffcb740563a9cc48396e3f75?narHash=sha256-hRGD%2BCE04Z1qAJAaiJs6o%2BblS0WUEqfVS/5cqA0NcDI%3D' (2025-11-09)
• Updated input 'nvim-treesitter-main/nixpkgs':
    'github:nixos/nixpkgs/01f116e4df6a15f4ccdffb1bcd41096869fb385c?narHash=sha256-f/QCJM/YhrV/lavyCVz8iU3rlZun6d%2BdAiC3H%2BCDle4%3D' (2025-10-22)
  → 'github:nixos/nixpkgs/ae814fd3904b621d8ab97418f1d0f2eb0d3716f4?narHash=sha256-YRqMDEtSMbitIMj%2BJLpheSz0pwEr0Rmy5mC7myl17xs%3D' (2025-11-05)
• Updated input 'nvim-treesitter-main/nvim-treesitter':
    'github:nvim-treesitter/nvim-treesitter/98fe644cb3b5ba390d1bc3f89299f93c70020803?narHash=sha256-/SGikTPEMxI7rcfGvuJlNZs73/wZiQx14QX9xlfsTv0%3D' (2025-10-25)
  → 'github:nvim-treesitter/nvim-treesitter/d97d226cfd4c00af000b3b8529261352677fc6a8?narHash=sha256-hXs9TdytYtBeXW6nx9QZiQcqsuj1uLuZMf8kclaScQ8%3D' (2025-11-08)
• Updated input 'nvim-treesitter-main/nvim-treesitter-textobjects':
    'github:nvim-treesitter/nvim-treesitter-textobjects/1b2d85d3de6114c4bcea89ffb2cd1ce9e3a19931?narHash=sha256-%2BKmOpRi4JAqm6UqYdtk80jwFrJhLCs0lZM/Liofq0R4%3D' (2025-08-28)
  → 'github:nvim-treesitter/nvim-treesitter-textobjects/7024f8687b060dd9a425bde1fa8621c896a38138?narHash=sha256-gzeT2gtmFaXhRSC13mijH6tlk/eWRZaUrGiEpKoAorA%3D' (2025-11-08)
2025-11-09 10:13:55 -06:00
c8d9279372 combine diffs 2025-11-09 10:13:05 -06:00
a004f24728 jj file hist 2025-10-23 03:10:31 -05:00
ce017fd37c fix os.execute return 2025-10-15 19:53:57 -05:00
35b0e05965 fix local flake path 2025-10-15 19:41:31 -05:00
49e373fe9a remove unused nix code
flake.lock: Update

Flake lock file updates:

• Updated input 'neovim-nightly-overlay':
    'github:nix-community/neovim-nightly-overlay/b7b3632fab34541543373254c265da03c1d0f240?narHash=sha256-SDLZMha2miaChOBGBkQJlTtk2kvcB7WIVVZ2l0/9byc%3D' (2025-10-01)
  → 'github:nix-community/neovim-nightly-overlay/7ff73a295b0065bde2f8b43b31558136ca77bd98?narHash=sha256-39JFRb006AOsIcOq%2B03H3y6YcGyaphk1CW5DRi14cOE%3D' (2025-10-13)
• Updated input 'neovim-nightly-overlay/flake-parts':
    'github:hercules-ci/flake-parts/4524271976b625a4a605beefd893f270620fd751?narHash=sha256-%2BuWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw%3D' (2025-09-01)
  → 'github:hercules-ci/flake-parts/758cf7296bee11f1706a574c77d072b8a7baa881?narHash=sha256-wfG0S7pltlYyZTM%2BqqlhJ7GMw2fTF4mLKCIVhLii/4M%3D' (2025-10-01)
• Updated input 'neovim-nightly-overlay/git-hooks':
    'github:cachix/git-hooks.nix/54df955a695a84cd47d4a43e08e1feaf90b1fd9b?narHash=sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo%3D' (2025-09-17)
  → 'github:cachix/git-hooks.nix/cfc9f7bb163ad8542029d303e599c0f7eee09835?narHash=sha256-PTod9NG%2Bi3XbbnBKMl/e5uHDBYpwIWivQ3gOWSEuIEM%3D' (2025-10-03)
• Updated input 'neovim-nightly-overlay/neovim-src':
    'github:neovim/neovim/198c9e9bca7549cf7110be8c6f1df1c38d4e747f?narHash=sha256-oc1pPeoe8458X0r/Wum8CucVcJLlIp4mg%2B1HiOSVRgA%3D' (2025-09-30)
  → 'github:neovim/neovim/72b0bfa1fb7e897e5126aabae718a5480f466b9e?narHash=sha256-RnB%2BoJcP37YT9pjr1osUQtJc%2B1qcVyaaeSbiSyXwm1Y%3D' (2025-10-12)
• Updated input 'neovim-nightly-overlay/nixpkgs':
    'github:NixOS/nixpkgs/647e5c14cbd5067f44ac86b74f014962df460840?narHash=sha256-JVZl8NaVRYb0%2B381nl7LvPE%2BA774/dRpif01FKLrYFQ%3D' (2025-09-28)
  → 'github:NixOS/nixpkgs/362791944032cb532aabbeed7887a441496d5e6e?narHash=sha256-gKl2Gtro/LNf8P%2B4L3S2RsZ0G390ccd5MyXYrTdMCFE%3D' (2025-10-11)
• Updated input 'neovim-nightly-overlay/treefmt-nix':
    'github:numtide/treefmt-nix/5eda4ee8121f97b218f7cc73f5172098d458f1d1?narHash=sha256-ySNJ008muQAds2JemiyrWYbwbG%2BV7S5wg3ZVKGHSFu8%3D' (2025-09-24)
  → 'github:numtide/treefmt-nix/761ae7aff00907b607125b2f57338b74177697ed?narHash=sha256-gq9rdocpmRZCwLS5vsHozwB6b5nrOBDNc2kkEaTXHfg%3D' (2025-10-10)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d48b56f4899ee1d5377291576284969c9e37acc2?narHash=sha256-7G5fSMPNVwWNlFpZLwvKB8PUOaqPzFQbrtZ7RAzg2nw%3D' (2025-10-01)
  → 'github:NixOS/nixpkgs/09c05674757a82f32b67f70f702e56c4901a3cdd?narHash=sha256-IzUhHp/jU06jBW6S%2Bd12AO3sgq5yehYVTCBH7J6re5c%3D' (2025-10-13)

flake.lock: Update

Flake lock file updates:

• Updated input 'neovim-nightly-overlay/nixpkgs':
    'github:NixOS/nixpkgs/362791944032cb532aabbeed7887a441496d5e6e?narHash=sha256-gKl2Gtro/LNf8P%2B4L3S2RsZ0G390ccd5MyXYrTdMCFE%3D' (2025-10-11)
  → follows 'nixpkgs'
2025-10-15 02:49:58 -05:00
8922491578 migrate from lazy in anticipation of vim.pack 2025-10-06 22:52:13 -05:00
31f7ee21e8 remove mini.sessions/jj 2025-10-05 14:01:20 -05:00
27ce531531 random cleanups 2025-10-05 13:08:16 -05:00
095e78128b nvim-ts-main 2025-10-04 17:05:13 -05:00
ac26b74e43 ensure plugins are exported in overlay 2025-08-19 23:01:58 -05:00
cjurgell
7165161856 fix ts 2025-08-14 00:54:10 -05:00
58c0637b78 use qflist for lsp 2025-08-13 01:12:34 -05:00
24b44e172f flake.lock: Update
Flake lock file updates:

• Updated input 'gen-luarc':
    'github:mrcjkb/nix-gen-luarc-json/b36b69c4ded9f31b079523bc452e23458734cf00' (2024-08-19)
  → 'github:mrcjkb/nix-gen-luarc-json/4b8d4da04808062e2b1ef0e7bcd0a03bcb93e043' (2025-08-07)
• Updated input 'neovim-nightly-overlay':
    'github:nix-community/neovim-nightly-overlay/e63079523e06e0b7d8d766d40573409d2c5ecc9d' (2025-07-21)
  → 'github:nix-community/neovim-nightly-overlay/83aaf3085f808dec9ea1b5d16b216875a8081b37' (2025-08-08)
• Updated input 'neovim-nightly-overlay/flake-parts':
    'github:hercules-ci/flake-parts/77826244401ea9de6e3bac47c2db46005e1f30b5?narHash=sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ%3D' (2025-07-01)
  → 'github:hercules-ci/flake-parts/af66ad14b28a127c5c0f3bbb298218fc63528a18?narHash=sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8%3D' (2025-08-06)
• Updated input 'neovim-nightly-overlay/git-hooks':
    'github:cachix/git-hooks.nix/16ec914f6fb6f599ce988427d9d94efddf25fe6d?narHash=sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg%3D' (2025-06-24)
  → 'github:cachix/git-hooks.nix/9c52372878df6911f9afc1e2a1391f55e4dfc864?narHash=sha256-c6yg0EQ9xVESx6HGDOCMcyRSjaTpNJP10ef%2B6fRcofA%3D' (2025-08-05)
• Updated input 'neovim-nightly-overlay/git-hooks/flake-compat':
    'github:edolstra/flake-compat/0f9255e01c2351cc7d116c072cb317785dd33b33?narHash=sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U%3D' (2023-10-04)
  → 'github:edolstra/flake-compat/9100a0f413b0c601e0533d1d94ffd501ce2e7885?narHash=sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX%2BfjA8Xf8PUmqCY%3D' (2025-05-12)
• Updated input 'neovim-nightly-overlay/neovim-src':
    'github:neovim/neovim/8ee82da3cfd228d50816aeb5f5db22175f5a4ede?narHash=sha256-VHCJ/E%2B3iI5pH20rW%2Baqq830erPrAzTfOT8Wndax2pI%3D' (2025-07-20)
  → 'github:neovim/neovim/038eb01b41b66379f75164507571497929f8847c?narHash=sha256-ORfF40X4BGiFxnLNQbdsQbUTW4TkUHfPqyZWHaYL5NE%3D' (2025-08-07)
• Updated input 'neovim-nightly-overlay/nixpkgs':
    'github:NixOS/nixpkgs/6b4955211758ba47fac850c040a27f23b9b4008f?narHash=sha256-dPALCtmik9Wr14MGqVXm%2BOQcv7vhPBXcWNIOThGnB/Q%3D' (2025-07-19)
  → 'github:NixOS/nixpkgs/a683adc19ff5228af548c6539dbc3440509bfed3?narHash=sha256-fbnmAwTQkuXHKBlcL5Nq1sMAzd3GFqCOQgEQw6Hy0Ak%3D' (2025-08-05)
• Updated input 'neovim-nightly-overlay/treefmt-nix':
    'github:numtide/treefmt-nix/421b56313c65a0815a52b424777f55acf0b56ddf?narHash=sha256-tzbhc4XttkyEhswByk5R38l%2BztN9UDbnj0cTcP6Hp9A%3D' (2025-07-20)
  → 'github:numtide/treefmt-nix/1298185c05a56bff66383a20be0b41a307f52228?narHash=sha256-B%2B3g9%2B76KlGe34Yk9za8AF3RL%2BlnbHXkLiVHLjYVOAc%3D' (2025-08-06)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/78fcdb5d8e08a2d449739aa4796417f2e6cf5724' (2025-07-22)
  → 'github:NixOS/nixpkgs/defc725219d1fb9b56662370e014012929e557af' (2025-08-11)
• Updated input 'nvim-treesitter':
    'github:nvim-treesitter/nvim-treesitter/4eb35c03443742a4c3b2db13d36da9cddb6268c3' (2025-08-06)
  → 'github:nvim-treesitter/nvim-treesitter/9866036ec3c5db40700a9178494e0cfdcfe6ecfd' (2025-08-08)
2025-08-11 01:34:47 -05:00
d01db43a23 autopairs + cleanup 2025-08-10 21:39:11 -05:00
4b7636090f dart persist + picker 2025-08-07 02:14:14 -05:00
9457c7436e custom dart tabline 2025-07-29 02:41:15 -05:00
d7ae87e671
nixfmt, callHierarchy 2025-07-23 02:30:26 -05:00
ec4206b55a
flake.lock: Update
Flake lock file updates:

• Updated input 'neovim-nightly-overlay':
    'github:nix-community/neovim-nightly-overlay/a4252dd30a64aef3fa59ad1f9ded862381df117a' (2025-07-06)
  → 'github:nix-community/neovim-nightly-overlay/e63079523e06e0b7d8d766d40573409d2c5ecc9d' (2025-07-21)
• Updated input 'neovim-nightly-overlay/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/231726642197817d20310b9d39dd4afb9e899489?narHash=sha256-EaAJhwfJGBncgIV/0NlJviid2DP93cTMc9h0q6P6xXk%3D' (2025-05-23)
  → 'github:hercules-ci/hercules-ci-effects/5f2e09654b2e70ba643e41609d9f9b6640f22113?narHash=sha256-CNBgr4OZSuklGtNOa9CnTNo9%2BXceqn/EDAC1Tc43fH8%3D' (2025-07-15)
• Updated input 'neovim-nightly-overlay/hercules-ci-effects/flake-parts':
    'github:hercules-ci/flake-parts/c621e8422220273271f52058f618c94e405bb0f5?narHash=sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY%3D' (2025-04-01)
  → 'github:hercules-ci/flake-parts/77826244401ea9de6e3bac47c2db46005e1f30b5?narHash=sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ%3D' (2025-07-01)
• Updated input 'neovim-nightly-overlay/neovim-src':
    'github:neovim/neovim/8fe4e120a2de558fddbb91ba5438d78f3dbd926a?narHash=sha256-z2PkkcUBuO5IWQrra034YBl8ioerkHXHai9GCeoaRuM%3D' (2025-07-05)
  → 'github:neovim/neovim/8ee82da3cfd228d50816aeb5f5db22175f5a4ede?narHash=sha256-VHCJ/E%2B3iI5pH20rW%2Baqq830erPrAzTfOT8Wndax2pI%3D' (2025-07-20)
• Updated input 'neovim-nightly-overlay/nixpkgs':
    'github:NixOS/nixpkgs/c860cf0b3a0829f0f6cf344ca8de83a2bbfab428?narHash=sha256-4E7wWftF1ExK5ZEDzj41%2B9mVgxtuRV3wWCId7QAYMAU%3D' (2025-07-04)
  → 'github:NixOS/nixpkgs/6b4955211758ba47fac850c040a27f23b9b4008f?narHash=sha256-dPALCtmik9Wr14MGqVXm%2BOQcv7vhPBXcWNIOThGnB/Q%3D' (2025-07-19)
• Updated input 'neovim-nightly-overlay/treefmt-nix':
    'github:numtide/treefmt-nix/ac8e6f32e11e9c7f153823abc3ab007f2a65d3e1?narHash=sha256-0IEdQB1nS%2BuViQw4k3VGUXntjkDp7aAlqcxdewb/hAc%3D' (2025-06-26)
  → 'github:numtide/treefmt-nix/421b56313c65a0815a52b424777f55acf0b56ddf?narHash=sha256-tzbhc4XttkyEhswByk5R38l%2BztN9UDbnj0cTcP6Hp9A%3D' (2025-07-20)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/27d6791b2e2a167105e8545fc92ee0edabe4a9e5' (2025-07-06)
  → 'github:NixOS/nixpkgs/78fcdb5d8e08a2d449739aa4796417f2e6cf5724' (2025-07-22)
2025-07-23 02:30:25 -05:00
ac39b0585d
snacks + tabline changes 2025-07-23 02:30:19 -05:00
cjurgell
97d6553252 mini.files open in buffer cwd 2025-07-17 16:21:22 -05:00
0c18f504e8
completion and snacks tweaks 2025-07-16 07:48:00 -05:00
d998429cb8
snacks rice + new colorscheme 2025-07-07 12:38:17 -05:00
66d50e274e
flake.lock: Update
Flake lock file updates:

• Updated input 'flake-utils':
    'github:numtide/flake-utils/11707dc2f618dd54ca8739b309ec4fc024de578b?narHash=sha256-l0KFg5HjrsfsO/JpG%2Br7fRrqm12kzFHyUHqHCVpMMbI%3D' (2024-11-13)
  → 'github:numtide/flake-utils/11707dc2f618dd54ca8739b309ec4fc024de578b' (2024-11-13)
• Updated input 'gen-luarc':
    'github:mrcjkb/nix-gen-luarc-json/b36b69c4ded9f31b079523bc452e23458734cf00?narHash=sha256-Q4tgm8ZHAQUdvsNft86MqIbHQAm7OF7RT/wwYWXqSdY%3D' (2024-08-19)
  → 'github:mrcjkb/nix-gen-luarc-json/b36b69c4ded9f31b079523bc452e23458734cf00' (2024-08-19)
• Updated input 'neovim-nightly-overlay':
    'github:nix-community/neovim-nightly-overlay/d9f4e3e5952e267e8399b15759bbec90019f4515?narHash=sha256-IxbIMd6Z2%2BFPb9QCo95lJ4qcqaAYitSxB5Z%2Bh3rM2Qo%3D' (2025-06-24)
  → 'github:nix-community/neovim-nightly-overlay/a4252dd30a64aef3fa59ad1f9ded862381df117a' (2025-07-06)
• Updated input 'neovim-nightly-overlay/flake-parts':
    'github:hercules-ci/flake-parts/9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569?narHash=sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98%3D' (2025-06-08)
  → 'github:hercules-ci/flake-parts/77826244401ea9de6e3bac47c2db46005e1f30b5?narHash=sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ%3D' (2025-07-01)
• Updated input 'neovim-nightly-overlay/git-hooks':
    'github:cachix/git-hooks.nix/fae816c55a75675f30d18c9cbdecc13b970d95d4?narHash=sha256-uLtw0iF9mQ94L831NOlQLPX9wm0qzd5yim3rcwACEoM%3D' (2025-06-23)
  → 'github:cachix/git-hooks.nix/16ec914f6fb6f599ce988427d9d94efddf25fe6d?narHash=sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg%3D' (2025-06-24)
• Updated input 'neovim-nightly-overlay/neovim-src':
    'github:neovim/neovim/7f3249fa0de06cdcf4be1ed5f260d83cd9021dee?narHash=sha256-li7cZUSJUhvjXC09GYS6u5PxBoVk2PGvqcdmINUGnhU%3D' (2025-06-23)
  → 'github:neovim/neovim/8fe4e120a2de558fddbb91ba5438d78f3dbd926a?narHash=sha256-z2PkkcUBuO5IWQrra034YBl8ioerkHXHai9GCeoaRuM%3D' (2025-07-05)
• Updated input 'neovim-nightly-overlay/nixpkgs':
    'github:NixOS/nixpkgs/3078b9a9e75f1790e6d6ef9955fdc6a2d1740cc6?narHash=sha256-xT8cPLTxlktxI9vSdoBlAVK7dXgd8IK59j7ZwzkkhnI%3D' (2025-06-22)
  → 'github:NixOS/nixpkgs/c860cf0b3a0829f0f6cf344ca8de83a2bbfab428?narHash=sha256-4E7wWftF1ExK5ZEDzj41%2B9mVgxtuRV3wWCId7QAYMAU%3D' (2025-07-04)
• Updated input 'neovim-nightly-overlay/treefmt-nix':
    'github:numtide/treefmt-nix/a05be418a1af1198ca0f63facb13c985db4cb3c5?narHash=sha256-eEy8cuS0mZ2j/r/FE0/LYBSBcIs/MKOIVakwHVuqTfk%3D' (2025-06-06)
  → 'github:numtide/treefmt-nix/ac8e6f32e11e9c7f153823abc3ab007f2a65d3e1?narHash=sha256-0IEdQB1nS%2BuViQw4k3VGUXntjkDp7aAlqcxdewb/hAc%3D' (2025-06-26)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/8ad467f6d5f3533c961e456a43948373f41a98da?narHash=sha256-b5ISt1FZCnYf%2BqhWFu3wc39zl0jlZNEXudzWHD0dsV0%3D' (2025-06-24)
  → 'github:NixOS/nixpkgs/27d6791b2e2a167105e8545fc92ee0edabe4a9e5' (2025-07-06)
2025-07-06 12:47:24 -05:00
5f5ac17935
no more copilot 2025-07-06 12:47:24 -05:00
d360f0e701
no more oil 2025-07-06 12:47:18 -05:00
cjurgell
285df2df53 fix snacks duplicate path bug 2025-06-30 13:20:51 -05:00
c46a229713
cleanup, mini rice 2025-06-29 23:40:36 -05:00
cjurgell
3231eec14e cleanup bundle size 2025-06-24 11:42:58 -05:00
cjurgell
1a0651a896 allow dd in qf 2025-06-24 10:53:17 -05:00
4dbe1e026e
flake.lock: Update
Flake lock file updates:

• Updated input 'mini-nvim':
    'github:echasnovski/mini.nvim/3f5d06a6f710966cb93baaadc4897eeb6d6210e5?narHash=sha256-vR8sOlGEST8SlknAtvfsP3j40rZaS5Jed8FwDdCBP94%3D' (2025-06-14)
  → 'github:echasnovski/mini.nvim/1b32a3f61f1f649cadc748bd4b7a32b4b4785d29?narHash=sha256-cfgANg0vRJg31x%2BBiSfYhwBSyQnYt/aRDx6%2BBaS0YYY%3D' (2025-06-22)
• Updated input 'neovim-nightly-overlay':
    'github:nix-community/neovim-nightly-overlay/5b231a9c0efd15547569bd753dbec420b90c8c98?narHash=sha256-wGa5HXzU9lK4Q7ODv8/n5oY/QbIl8R2wUyDxcLsV3B4%3D' (2025-06-17)
  → 'github:nix-community/neovim-nightly-overlay/d9f4e3e5952e267e8399b15759bbec90019f4515?narHash=sha256-IxbIMd6Z2%2BFPb9QCo95lJ4qcqaAYitSxB5Z%2Bh3rM2Qo%3D' (2025-06-24)
• Updated input 'neovim-nightly-overlay/git-hooks':
    'github:cachix/git-hooks.nix/623c56286de5a3193aa38891a6991b28f9bab056?narHash=sha256-WUaIlOlPLyPgz9be7fqWJA5iG6rHcGRtLERSCfUDne4%3D' (2025-06-11)
  → 'github:cachix/git-hooks.nix/fae816c55a75675f30d18c9cbdecc13b970d95d4?narHash=sha256-uLtw0iF9mQ94L831NOlQLPX9wm0qzd5yim3rcwACEoM%3D' (2025-06-23)
• Updated input 'neovim-nightly-overlay/neovim-src':
    'github:neovim/neovim/3e984cf02bdcebe2d4f31792505b6a3784fd1b1b?narHash=sha256-JTG1BFIIKmFfuT%2BsIhwrphAIjREgV4FfRcyuztr89P0%3D' (2025-06-16)
  → 'github:neovim/neovim/7f3249fa0de06cdcf4be1ed5f260d83cd9021dee?narHash=sha256-li7cZUSJUhvjXC09GYS6u5PxBoVk2PGvqcdmINUGnhU%3D' (2025-06-23)
• Updated input 'neovim-nightly-overlay/nixpkgs':
    'github:NixOS/nixpkgs/41da1e3ea8e23e094e5e3eeb1e6b830468a7399e?narHash=sha256-jp0D4vzBcRKwNZwfY4BcWHemLGUs4JrS3X9w5k/JYDA%3D' (2025-06-14)
  → 'github:NixOS/nixpkgs/3078b9a9e75f1790e6d6ef9955fdc6a2d1740cc6?narHash=sha256-xT8cPLTxlktxI9vSdoBlAVK7dXgd8IK59j7ZwzkkhnI%3D' (2025-06-22)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9e83b64f727c88a7711a2c463a7b16eedb69a84c?narHash=sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI%3D' (2025-06-17)
  → 'github:NixOS/nixpkgs/8ad467f6d5f3533c961e456a43948373f41a98da?narHash=sha256-b5ISt1FZCnYf%2BqhWFu3wc39zl0jlZNEXudzWHD0dsV0%3D' (2025-06-24)
• Updated input 'nixpkgs-uns':
    'github:NixOS/nixpkgs/ee930f9755f58096ac6e8ca94a1887e0534e2d81?narHash=sha256-Kh9K4taXbVuaLC0IL%2B9HcfvxsSUx8dPB5s5weJcc9pc%3D' (2025-06-13)
  → 'github:NixOS/nixpkgs/4206c4cb56751df534751b058295ea61357bbbaa?narHash=sha256-VLFNc4egNjovYVxDGyBYTrvVCgDYgENp5bVi9fPTDYc%3D' (2025-06-21)
2025-06-24 02:29:44 -05:00
75c09a73ff
even more jj mini/snacks rice 2025-06-24 02:29:38 -05:00
83f9f90f1f
jj mini/snacks rice 2025-06-21 04:01:45 -05:00
3132ae3d98
bqf 2025-06-19 04:12:55 -05:00
5a884a48c2
flake.lock: Update
Flake lock file updates:

• Updated input 'mini-nvim':
    'github:echasnovski/mini.nvim/35e1767f4cd7dde51256eabae7349a5283a43cba?narHash=sha256-U6QkqrvmxEERLgrc3roBxMuNc8Djuxk/wOuH/Hwmu1M%3D' (2025-06-07)
  → 'github:echasnovski/mini.nvim/3f5d06a6f710966cb93baaadc4897eeb6d6210e5?narHash=sha256-vR8sOlGEST8SlknAtvfsP3j40rZaS5Jed8FwDdCBP94%3D' (2025-06-14)
• Updated input 'neovim-nightly-overlay':
    'github:nix-community/neovim-nightly-overlay/34f4b17993e9ec8e8a5c8a1cec5847b4520b3d26?narHash=sha256-o65mGvIz4%2B5gqyFG0gLK6BqIVRGqxl0AiY6Xy5De%2BQk%3D' (2025-06-11)
  → 'github:nix-community/neovim-nightly-overlay/5b231a9c0efd15547569bd753dbec420b90c8c98?narHash=sha256-wGa5HXzU9lK4Q7ODv8/n5oY/QbIl8R2wUyDxcLsV3B4%3D' (2025-06-17)
• Updated input 'neovim-nightly-overlay/git-hooks':
    'github:cachix/git-hooks.nix/80479b6ec16fefd9c1db3ea13aeb038c60530f46?narHash=sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo%2BbnXU9D9k%3D' (2025-05-16)
  → 'github:cachix/git-hooks.nix/623c56286de5a3193aa38891a6991b28f9bab056?narHash=sha256-WUaIlOlPLyPgz9be7fqWJA5iG6rHcGRtLERSCfUDne4%3D' (2025-06-11)
• Updated input 'neovim-nightly-overlay/neovim-src':
    'github:neovim/neovim/79ce71430fe5480e37a150522e2c6c925f5d0e66?narHash=sha256-7A4cafY420gsxdCA0yZhlOMjBSLzu3156QFEeAmcwrk%3D' (2025-06-10)
  → 'github:neovim/neovim/3e984cf02bdcebe2d4f31792505b6a3784fd1b1b?narHash=sha256-JTG1BFIIKmFfuT%2BsIhwrphAIjREgV4FfRcyuztr89P0%3D' (2025-06-16)
• Updated input 'neovim-nightly-overlay/nixpkgs':
    'github:NixOS/nixpkgs/cdc68935eba9f86d155585fdf6f17af6824f38ac?narHash=sha256-How2kQw0psKmCdXgojc95Sf3K5maHB3qfINxTZFCAPM%3D' (2025-06-10)
  → 'github:NixOS/nixpkgs/41da1e3ea8e23e094e5e3eeb1e6b830468a7399e?narHash=sha256-jp0D4vzBcRKwNZwfY4BcWHemLGUs4JrS3X9w5k/JYDA%3D' (2025-06-14)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ab301cc663dc2db37c53933b33d1070cb72934ec?narHash=sha256-DjWYlOFrddI5t5w4mimZJo1RGp2qxhcvTYWSZjx9%2B3I%3D' (2025-06-11)
  → 'github:NixOS/nixpkgs/9e83b64f727c88a7711a2c463a7b16eedb69a84c?narHash=sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI%3D' (2025-06-17)
• Updated input 'nixpkgs-uns':
    'github:NixOS/nixpkgs/3e3afe5174c561dee0df6f2c2b2236990146329f?narHash=sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU%3D' (2025-06-07)
  → 'github:NixOS/nixpkgs/ee930f9755f58096ac6e8ca94a1887e0534e2d81?narHash=sha256-Kh9K4taXbVuaLC0IL%2B9HcfvxsSUx8dPB5s5weJcc9pc%3D' (2025-06-13)
2025-06-16 23:57:20 -05:00
aa1f5847d2
add alejandra formatter 2025-06-16 23:57:08 -05:00
3de4c4e289
mini jump rice 2025-06-12 03:02:57 -05:00
8da416de1c
cleanup codecompanion, neogit, bump inputs 2025-06-11 02:38:50 -05:00
ee647f4338 add image 2025-06-02 01:46:17 -05:00
47a2d487da random rice 2025-05-22 02:27:17 -05:00
f47fc0f76f org mode 2025-05-17 16:46:13 -05:00
2bab00d2e3 use vim.lsp.config API 2025-05-08 02:02:22 -05:00
8feb221d41 mini tweaks 2025-05-07 01:35:45 -05:00
fb7e0a930a completion tweaks 2025-05-03 20:50:53 -05:00
96a162e9e8 minidiff/git 2025-04-22 02:32:17 -05:00
cjurgell
38e0a620f3 fix conflicting grn mapping 2025-04-21 14:19:13 -05:00
9b0cab9709 oil.nvim 2025-04-20 23:14:50 -05:00
23bd257c9e lint everything 2025-04-06 03:05:10 -05:00
3dcc3a10e8 trouble + conform changes 2025-04-04 19:06:33 -05:00
1013b23483 refactoring-nvim 2025-04-01 03:58:05 -05:00
445762ee3a treewalker hydra 2025-04-01 03:58:05 -05:00
4dfe6c4c33 refactor(flake): tidy up inputs attrset 2025-03-31 03:08:22 -05:00
7e87ede672 build(flake): enable for all systems 2025-03-15 01:28:05 -05:00
9028ed4893 enable render-markdown 2025-03-14 19:14:00 -05:00
cd60d7959b more trouble.nvim tweaks 2025-03-14 18:38:47 -05:00
851e345bca use new default LSP mappings as inspiration 2025-03-14 18:09:01 -05:00
5043280c65 linters/formatters 2025-03-14 12:47:25 -05:00
dab37cf7a5 update deprecated cache action step 2025-03-13 03:24:27 -05:00
df59c1b380 use nightly neovim, plugin cleanup 2025-03-13 03:12:49 -05:00
91b6830d9e revert model override 2025-02-06 14:33:02 -06:00
b4404d2c1f feat: codecompanion.nvim 2025-02-06 02:49:02 -06:00
55bade6fb7 fix: copilot suggestions warning 2025-02-04 02:29:56 -06:00
e7eb63b09b snacks tweaks 2025-02-04 02:18:25 -06:00
bb2a34d620 fix bad debug file comment 2025-02-03 11:51:35 -06:00
78a7d107e5 rm debugger, add jj 2025-02-03 02:16:10 -06:00
01366c625a use trouble qf from snacks 2025-02-03 01:36:08 -06:00
012306d04f flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs-master':
    'github:NixOS/nixpkgs/7e26be4395f18f0aaaab3d704a55791f19764edd?narHash=sha256-lYo2OmtQ8Mz8BpmUQT93P8guOLnfGEwXbY55Eb55Thg%3D' (2025-02-02)
  → 'github:NixOS/nixpkgs/3d89be6655a3ca15643456199b491b524929f61c?narHash=sha256-KbuxOVz6SCBCkjJufqmdhItzhf8OCBKnRP%2BJWE9EFlo%3D' (2025-02-03)
2025-02-02 22:39:23 -06:00
d88c03f005 add copilot, snacks 2025-02-02 22:38:46 -06:00
0f709befab flake.lock: Update
Flake lock file updates:

• Updated input 'blink/nixpkgs':
    'github:nixos/nixpkgs/9189ac18287c599860e878e905da550aa6dec1cd?narHash=sha256-AYvaFBzt8dU0fcSK2jKD0Vg23K2eIRxfsVXIPCW9a0E%3D' (2025-01-31)
  → 'github:nixos/nixpkgs/b30f97d8c32d804d2d832ee837d0f1ca0695faa5?narHash=sha256-U47xeACNBpkSO6IcCm0XvahsVXpJXzjPIQG7TZlOToU%3D' (2025-01-06)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/dc460ec76cbff0e66e269457d7b728432263166c?narHash=sha256-PbABj4tnbWFMfBp6OcUK5iGy1QY%2B/Z96ZcLpooIbuEI%3D' (2024-11-11)
  → 'github:NixOS/nixpkgs/3a228057f5b619feb3186e986dbe76278d707b6e?narHash=sha256-xvTo0Aw0%2Bveek7hvEVLzErmJyQkEcRk6PSR4zsRQFEc%3D' (2025-02-01)
2025-02-02 02:10:50 -06:00
372c943270 fix bad plugin names 2024-12-20 14:25:22 -06:00
d82c5aa50a
Merge pull request #17 from iofq/update_flake_lock_action
chore: update flake.lock
2024-11-14 09:24:07 -06:00
github-actions[bot]
eafb86aa5d chore: update flake.lock
Flake lock file updates:

• Updated input 'flake-utils':
    'github:numtide/flake-utils/c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a?narHash=sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ%3D' (2024-09-17)
  → 'github:numtide/flake-utils/11707dc2f618dd54ca8739b309ec4fc024de578b?narHash=sha256-l0KFg5HjrsfsO/JpG%2Br7fRrqm12kzFHyUHqHCVpMMbI%3D' (2024-11-13)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/2768c7d042a37de65bb1b5b3268fc987e534c49d?narHash=sha256-AlcmCXJZPIlO5dmFzV3V2XF6x/OpNWUV8Y/FMPGd8Z4%3D' (2024-10-23)
  → 'github:NixOS/nixpkgs/dc460ec76cbff0e66e269457d7b728432263166c?narHash=sha256-PbABj4tnbWFMfBp6OcUK5iGy1QY%2B/Z96ZcLpooIbuEI%3D' (2024-11-11)
2024-11-14 10:17:08 +00:00
96e970b31d add phpactor lsp 2024-10-26 15:47:12 -05:00
85b85bec8a fix deprecated packpathDirs in upstream mkNeovimConfig 2024-10-26 15:47:12 -05:00
1caac6ea4b flake.lock: Update
Flake lock file updates:

• Updated input 'flake-utils':
    'github:numtide/flake-utils/b1d9ab70662946ef0850d488da1c9019f3a9752a?narHash=sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ%3D' (2024-03-11)
  → 'github:numtide/flake-utils/c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a?narHash=sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ%3D' (2024-09-17)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/8a3354191c0d7144db9756a74755672387b702ba?narHash=sha256-Grh5PF0%2BgootJfOJFenTTxDTYPidA3V28dqJ/WV7iis%3D' (2024-08-18)
  → 'github:NixOS/nixpkgs/2768c7d042a37de65bb1b5b3268fc987e534c49d?narHash=sha256-AlcmCXJZPIlO5dmFzV3V2XF6x/OpNWUV8Y/FMPGd8Z4%3D' (2024-10-23)
2024-10-26 15:47:10 -05:00
bd5ef0df29
Merge pull request #16 from iofq/update_flake_lock_action
chore: update flake.lock
2024-10-14 19:17:46 +00:00
github-actions[bot]
327092ab64 chore: update flake.lock
Flake lock file updates:

• Updated input 'flake-utils':
    'github:numtide/flake-utils/b1d9ab70662946ef0850d488da1c9019f3a9752a?narHash=sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ%3D' (2024-03-11)
  → 'github:numtide/flake-utils/c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a?narHash=sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ%3D' (2024-09-17)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/8a3354191c0d7144db9756a74755672387b702ba?narHash=sha256-Grh5PF0%2BgootJfOJFenTTxDTYPidA3V28dqJ/WV7iis%3D' (2024-08-18)
  → 'github:NixOS/nixpkgs/5633bcff0c6162b9e4b5f1264264611e950c8ec7?narHash=sha256-9UTxR8eukdg%2BXZeHgxW5hQA9fIKHsKCdOIUycTryeVw%3D' (2024-10-09)
2024-10-14 10:17:32 +00:00
cee522f27d oops broke toggleterm 2024-09-07 12:49:54 -05:00
6831ace589 tweaks including aerial, cd in mini.files 2024-09-06 02:53:00 -05:00
6d8480b8b5 tweaks and ftplugins 2024-08-22 03:30:25 -05:00
80efd65a10 fix min build 2024-08-21 02:37:08 -05:00
14fec02d63 few bugfixes, mini.files 2024-08-21 02:35:12 -05:00
4ceceff9bf bugfixes 2024-08-21 00:52:37 -05:00
b0cd1f6bb8 update inputs 2024-08-20 22:50:19 -05:00
f8e0e41d63 bugfixes 2024-08-19 17:23:20 -05:00
bdaed4fa4d race condition breaks statusline 2024-08-19 02:00:41 -05:00
b937ff2f1f don't lazy load mini to stop flickering on load 2024-08-19 01:43:29 -05:00
ece2c1c694 new lazy rice 2024-08-19 01:38:09 -05:00
1eb2b1bc3c fix workflow 2024-08-16 02:47:16 -05:00
85f2c16817 add nvim min 2024-08-16 02:39:48 -05:00
26575fa66e tonight's rice 2024-08-16 02:09:15 -05:00
bff0f4c78b flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/a58bc8ad779655e790115244571758e8de055e3d' (2024-08-11)
  → 'github:NixOS/nixpkgs/c3aa7b8938b17aebd2deecf7be0636000d62a2b9' (2024-08-14)
2024-08-15 22:40:41 -05:00
0f3ee6ed18 use leader^2 for buffers 2024-08-13 20:12:48 -05:00
305d17c608 rm old flake 2024-08-13 03:07:45 -05:00
ca7d7b657d flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5e0ca22929f3342b19569b21b2f3462f053e497b' (2024-08-09)
  → 'github:NixOS/nixpkgs/a58bc8ad779655e790115244571758e8de055e3d' (2024-08-11)
2024-08-13 02:57:29 -05:00
4e88567cac lint 2024-08-13 02:56:48 -05:00
bdaba979ac add a few plugins like neoclip, markvieww 2024-08-13 02:50:48 -05:00
3f57948360 add eyeliner, trouble 2024-08-10 14:27:25 -05:00
b25deb86c1 add vim alias 2024-08-10 02:14:53 -05:00
adef2193d6 fix gh workflow 2024-08-10 01:51:23 -05:00
9082d546f6 lint 2024-08-10 01:45:39 -05:00
b33413dd18 use kickstart-nix 2024-08-10 01:44:12 -05:00
53bfda8bcd flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/9014875e6f995a84dd72072e5ef73313e5665faa' (2024-07-26)
  → 'github:nixos/nixpkgs/f5129fb42b9c262318130a97b47516946da3e7d7' (2024-08-07)
2024-08-08 02:03:25 -05:00
8c0ff1e499 add aerial 2024-08-08 02:01:26 -05:00
2a6ff7e85a icmp and snip rice 2024-08-08 01:19:53 -05:00
62b7e838d9 fix neogit 2024-07-27 00:57:13 -05:00
062f6cd5a1 Shrink image size 2024-07-26 23:40:26 -05:00
f66e3dde6a Clean up rice 2024-07-26 23:11:06 -05:00
50ac04fdb9
Merge pull request #10 from iofq/update_flake_lock_action
chore: update flake.lock
2024-04-14 19:10:23 +00:00
github-actions[bot]
b5a0c79922 chore: update flake.lock
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/807c549feabce7eddbf259dbdcec9e0600a0660d?narHash=sha256-9slQ609YqT9bT/MNX9%2B5k5jltL9zgpn36DpFB7TkttM%3D' (2024-03-29)
  → 'github:nixos/nixpkgs/a0c9e3aee1000ac2bfb0e5b98c94c946a5d180a9?narHash=sha256-icE1IJE9fHcbDfJ0%2BqWoDdcBXUoZCcIJxME4lMHwvSM%3D' (2024-04-12)
2024-04-14 12:02:15 +00:00
c3854e2b93
Merge pull request #9 from iofq/update_flake_lock_action
chore: update flake.lock
2024-04-01 19:07:51 +00:00
github-actions[bot]
024daaa09a chore: update flake.lock
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/bd5ddf2c6bfafff031edf80221e1ee94e86ca10a?narHash=sha256-YpSGYZR96I8g5OK/Fdm0O4%2BmHLen6YPA1cPanqqNqT0%3D' (2024-03-14)
  → 'github:nixos/nixpkgs/807c549feabce7eddbf259dbdcec9e0600a0660d?narHash=sha256-9slQ609YqT9bT/MNX9%2B5k5jltL9zgpn36DpFB7TkttM%3D' (2024-03-29)
2024-04-01 10:14:12 +00:00
00f981d962
Merge pull request #8 from iofq/update_flake_lock_action
chore: update flake.lock
2024-03-15 03:08:02 +00:00
github-actions[bot]
78c53dc879 chore: update flake.lock
Flake lock file updates:

• Updated input 'flake-utils':
    'github:numtide/flake-utils/1ef2e671c3b0c19053962c07dbda38332dcebf26?narHash=sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA%3D' (2024-01-15)
  → 'github:numtide/flake-utils/b1d9ab70662946ef0850d488da1c9019f3a9752a?narHash=sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ%3D' (2024-03-11)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/2d627a2a704708673e56346fcb13d25344b8eaf3?narHash=sha256-AehgH64b28yKobC/DAWYZWkJBxL/vP83vkY%2Bag2Hhy4%3D' (2024-02-12)
  → 'github:nixos/nixpkgs/bd5ddf2c6bfafff031edf80221e1ee94e86ca10a?narHash=sha256-YpSGYZR96I8g5OK/Fdm0O4%2BmHLen6YPA1cPanqqNqT0%3D' (2024-03-14)
2024-03-15 03:06:37 +00:00
e6cde16c4a
Merge pull request #7 from iofq/update_flake_lock_action
chore: update flake.lock
2024-02-18 06:17:34 +00:00
Cal Jurgella
013643b21f rice from work 2024-02-16 19:08:46 -06:00
github-actions[bot]
27ffd7b0af chore: update flake.lock
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/5ad9903c16126a7d949101687af0aa589b1d7d3d' (2024-01-31)
  → 'github:nixos/nixpkgs/2d627a2a704708673e56346fcb13d25344b8eaf3' (2024-02-12)
2024-02-14 10:13:00 +00:00
b6d3c5a7e2
Update rose-pine options 2024-02-03 17:53:24 -06:00
3c9e1fb4db
Merge pull request #6 from iofq/update_flake_lock_action
chore: update flake.lock
2024-02-02 05:06:16 +00:00
github-actions[bot]
8ac02ba12e chore: update flake.lock
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/160b762eda6d139ac10ae081f8f78d640dd523eb' (2024-01-27)
  → 'github:nixos/nixpkgs/5ad9903c16126a7d949101687af0aa589b1d7d3d' (2024-01-31)
2024-02-01 10:13:49 +00:00
22c8209f11 fix rose-pine italics 2024-01-29 01:21:56 -06:00
1e01ba682e
Merge pull request #5 from iofq/revert-2-update_flake_lock_action
Revert "chore: update flake.lock"
2024-01-29 07:01:25 +00:00
140ffead01
Revert "chore: update flake.lock" 2024-01-29 07:01:14 +00:00
99bcdec396
Merge pull request #4 from iofq/update_flake_lock_action
Remove Dockerfile, add README
2024-01-29 02:50:21 +00:00
eccc73bdfa Remove Dockerfile, add README 2024-01-28 20:36:53 -06:00
1806a699c2
Merge pull request #2 from iofq/update_flake_lock_action
chore: update flake.lock
2024-01-29 02:25:03 +00:00
github-actions[bot]
a25de2a52f chore: update flake.lock
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/a455c5fb3ee513e2f443838a0e84d52b035adb67' (2024-01-19)
  → 'github:nixos/nixpkgs/160b762eda6d139ac10ae081f8f78d640dd523eb' (2024-01-27)
2024-01-29 02:14:40 +00:00
36af04e4ee test workflow 2024-01-28 20:01:43 -06:00
f81b86ba90 test workflow 2024-01-28 19:59:58 -06:00
f7d5480687 test workflow 2024-01-28 19:56:55 -06:00
b9c7dd0647 test workflow 2024-01-28 19:54:40 -06:00
d876f0871a test workflow 2024-01-28 19:51:54 -06:00
4aa9b5271f test workflow 2024-01-28 19:42:06 -06:00
82f941926b test workflow 2024-01-28 19:31:13 -06:00
72f3adeca1 test workflow 2024-01-28 19:26:59 -06:00
d28f5708de test workflow 2024-01-28 19:18:16 -06:00
7a85a7aff4 test workflow 2024-01-28 19:10:17 -06:00
f3c760e01f test new workflow 2024-01-28 19:04:00 -06:00
379ff5fd9a test new workflow 2024-01-28 18:51:44 -06:00
2ae53ff3bd test new workflow 2024-01-28 18:50:58 -06:00
f5731f1a52 test new workflow 2024-01-28 18:47:06 -06:00
fecb8220bd test new workflow 2024-01-28 18:45:55 -06:00
1d10de72aa add vim-nix 2024-01-27 15:40:50 -06:00
8bd50ae3b2 Fix paste delay 2024-01-27 13:56:44 -06:00
34c4d4d7eb fix append delay 2024-01-27 13:38:47 -06:00
a81697463d Jan 24 updates 2024-01-20 03:06:59 -06:00
a503ddc9c4 add py, nix lsps 2023-12-28 22:02:33 -06:00
0c397bd3c7 add py, nix lsps 2023-12-22 01:44:20 -06:00
b0024a47ee update to nvim 0.9.4 2023-12-21 22:27:20 -06:00
dc80e6953d fix gofmt 2023-09-20 21:07:28 -05:00
8b0a7ef1a6 lsp changes, mini.ai 2023-08-06 09:46:19 -05:00
e260bac77b update CI 2023-05-27 05:47:26 -05:00
387b1ef3be update CI 2023-05-27 05:39:30 -05:00
2388fb9bda update CI 2023-05-27 05:14:15 -05:00
f2eb47953b update CI 2023-05-27 04:12:23 -05:00
aad58f1d6b update CI 2023-05-27 03:59:31 -05:00
f9ae40f53c update CI 2023-05-27 03:34:05 -05:00
b65b7296e5 update CI for dual config 2023-05-26 15:06:21 -05:00
b2489ca8f0 idek 2023-05-26 06:05:44 -05:00
482ec8e00a update lsp keybinds 2023-05-26 04:06:55 -05:00
bfc22a1979 init lsp config 2023-05-26 03:52:58 -05:00
4b7dd9144c add nix config 2023-05-26 02:55:52 -05:00
c4ddbfc40c polish git, mini config 2023-05-25 05:23:10 -05:00
0c5b3d23ae fix full-deps 2023-05-24 15:10:06 -05:00
6e5ab46a79 add oil, colors 2023-05-24 05:54:25 -05:00
916bb1bf5d push today's rice 2023-05-17 06:36:50 -05:00
bfc15eb6cb add CI 2023-05-13 01:51:23 -05:00
4236656d56 add CI 2023-05-12 14:14:37 -05:00
6635c79b72 add CI 2023-05-12 14:05:24 -05:00
e1aae741b2 add CI 2023-05-12 05:00:02 -05:00
ff3475e656 add CI 2023-05-12 04:56:55 -05:00
05443c7bcf add CI 2023-05-12 04:54:16 -05:00
79a2dc6e14 add CI 2023-05-12 04:52:53 -05:00
f6a92831f4 reorg 2023-05-12 04:34:16 -05:00
4c341f6650 init 2023-05-11 04:35:50 -05:00
32 changed files with 1455 additions and 446 deletions

View file

@ -1,7 +0,0 @@
on: [push]
jobs:
check:
runs-on: nix-latest
steps:
- uses: actions/checkout@v4
- run: nix flake check

View file

@ -0,0 +1,33 @@
name: build
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
package_name: ["nvim"]
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@main
- name: check
run: nix flake check
- name: Run `nix bundle`
if: github.ref == 'refs/heads/master'
id: build
run: |
nix bundle \
-o ${{ matrix.package_name }}.AppImage \
--bundler github:ralismark/nix-appimage \
--extra-experimental-features nix-command \
--extra-experimental-features flakes .#${{ matrix.package_name }}
echo "Done building AppImage for ${{ matrix.package_name }}"
- name: Upload bundle to release
if: github.ref == 'refs/heads/master'
uses: https://data.forgejo.org/forgejo/upload-artifact@v4
with:
path: "${{ matrix.package_name }}.AppImage"
name: "${{ matrix.package_name }}-x86_64-linux.AppImage"

2
.gitignore vendored
View file

@ -1,3 +1,5 @@
result
.pre-commit-config.yaml
.direnv/
*.AppImage
.luarc.json

View file

@ -5,7 +5,7 @@ keys:
- &oracle1 age12tz2r7clep9e450qhr5a6ctnx29ywmu0llq8uk9kcwhpp82zsa0sk9la9h
- &zen age1nzlng9tw59rxnr86jw330s9z4x28hr394cl2qgktptf8swat23gqahgudw
creation_rules:
- path_regex: secrets/[^/]+\.yaml$
- path_regex: secrets/[^/]+\.*$
key_groups:
- age:
- *t14

368
flake.lock generated
View file

@ -6,7 +6,7 @@
"llm-agents",
"nixpkgs"
],
"systems": "systems_2"
"systems": "systems_3"
},
"locked": {
"lastModified": 1771437256,
@ -25,7 +25,7 @@
"dart": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs_5"
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1771048667,
@ -69,7 +69,7 @@
"determinate-nixd-aarch64-linux": "determinate-nixd-aarch64-linux",
"determinate-nixd-x86_64-linux": "determinate-nixd-x86_64-linux",
"nix": "nix",
"nixpkgs": "nixpkgs_2"
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1771014593,
@ -152,38 +152,6 @@
"type": "github"
}
},
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_4": {
"flake": false,
"locked": {
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "NixOS",
"repo": "flake-compat",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
@ -206,27 +174,8 @@
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1717285511,
"narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": [
"nvim",
"neovim-nightly-overlay",
"nixpkgs"
]
@ -247,7 +196,7 @@
},
"flake-utils": {
"inputs": {
"systems": "systems_3"
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
@ -262,73 +211,6 @@
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_4"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"gen-luarc": {
"inputs": {
"flake-parts": "flake-parts_2",
"git-hooks": "git-hooks",
"luvit-meta": "luvit-meta",
"nixpkgs": [
"nvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1755304025,
"narHash": "sha256-xVKfjFwc0zMbLMjLTiHz+0llggkjs93SmHkhaa9S3M4=",
"owner": "mrcjkb",
"repo": "nix-gen-luarc-json",
"rev": "1865b0ebb753ae5324d7381b1fa8c98c04ec7509",
"type": "github"
},
"original": {
"owner": "mrcjkb",
"repo": "nix-gen-luarc-json",
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": "flake-compat_3",
"gitignore": "gitignore",
"nixpkgs": [
"nvim",
"gen-luarc",
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable_2"
},
"locked": {
"lastModified": 1723803910,
"narHash": "sha256-yezvUuFiEnCFbGuwj/bQcqg7RykIEqudOy/RBrId0pc=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "bfef0ada09e2c8ac55bbcd0831bd0c9d42e651ba",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"git-hooks-nix": {
"inputs": {
"flake-compat": "flake-compat_2",
@ -355,50 +237,6 @@
"url": "https://flakehub.com/f/cachix/git-hooks.nix/0.1.941"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"nvim",
"gen-luarc",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gitignore_2": {
"inputs": {
"nixpkgs": [
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@ -423,11 +261,11 @@
"jj-nvim": {
"flake": false,
"locked": {
"lastModified": 1771004667,
"narHash": "sha256-G7ksxOJJmQeTbsdAYddSFWUs9kyW/nIL4mv0F3FiXAI=",
"lastModified": 1771953539,
"narHash": "sha256-nokftWcAmmHX6UcH6O79xkLwbUpq1W8N9lf1e+NyGqE=",
"owner": "NicolasGB",
"repo": "jj.nvim",
"rev": "3d78c28f7e26d5c87f53e66e05a1393e6ca9fec2",
"rev": "bbba4051c862473637e98277f284d12b050588ca",
"type": "github"
},
"original": {
@ -455,7 +293,7 @@
"llm-agents": {
"inputs": {
"blueprint": "blueprint",
"nixpkgs": "nixpkgs_3",
"nixpkgs": "nixpkgs_4",
"treefmt-nix": "treefmt-nix"
},
"locked": {
@ -472,22 +310,6 @@
"type": "github"
}
},
"luvit-meta": {
"flake": false,
"locked": {
"lastModified": 1705776742,
"narHash": "sha256-zAAptV/oLuLAAsa2zSB/6fxlElk4+jNZd/cPr9oxFig=",
"owner": "Bilal2453",
"repo": "luvit-meta",
"rev": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60",
"type": "github"
},
"original": {
"owner": "Bilal2453",
"repo": "luvit-meta",
"type": "github"
}
},
"microvm": {
"inputs": {
"nixpkgs": [
@ -511,19 +333,18 @@
},
"neovim-nightly-overlay": {
"inputs": {
"flake-parts": "flake-parts_3",
"flake-parts": "flake-parts_2",
"neovim-src": "neovim-src",
"nixpkgs": [
"nvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1771200309,
"narHash": "sha256-2UQHZ8BsRSwtzl2R1OqtYR80SQF+HG3kJdTxfiDZR9s=",
"lastModified": 1772150696,
"narHash": "sha256-0QNL7sbGgKipjr1uXr3KpaPgBWKZmM97l/T7zkWdVqI=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"rev": "c3e52f66f877cddce4167041546524abb76c0a70",
"rev": "de416cbd51404e64540ca4746393d1866b219bae",
"type": "github"
},
"original": {
@ -535,11 +356,11 @@
"neovim-src": {
"flake": false,
"locked": {
"lastModified": 1771195863,
"narHash": "sha256-WB0xr61z2nHB3/u42xYilqDCA/x3tvVZ21/bx2pNmgc=",
"lastModified": 1772148728,
"narHash": "sha256-ot+6q4IoboWMfD4xW26pE8zT3e5ocfZ8XD/FzKxeEUo=",
"owner": "neovim",
"repo": "neovim",
"rev": "7d8653575f2a1170f0c7651f271c45a15a185d5e",
"rev": "18c5f06c9f6068b9a26a1ed4ab0f66b91db85cd9",
"type": "github"
},
"original": {
@ -552,7 +373,7 @@
"inputs": {
"flake-parts": "flake-parts",
"git-hooks-nix": "git-hooks-nix",
"nixpkgs": "nixpkgs",
"nixpkgs": "nixpkgs_2",
"nixpkgs-23-11": "nixpkgs-23-11",
"nixpkgs-regression": "nixpkgs-regression"
},
@ -606,16 +427,17 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1761597516,
"narHash": "sha256-wxX7u6D2rpkJLWkZ2E932SIvDJW8+ON/0Yy8+a5vsDU=",
"rev": "daf6dc47aa4b44791372d6139ab7b25269184d55",
"revCount": 811874,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2505.811874%2Brev-daf6dc47aa4b44791372d6139ab7b25269184d55/019a3494-3498-707e-9086-1fb81badc7fe/source.tar.gz"
"lastModified": 1755660401,
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5788de501b965d7413f2beaac10aeeb56f9a19a8",
"type": "github"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/NixOS/nixpkgs/0.2505"
"owner": "NixOS",
"ref": "master",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-23-11": {
@ -634,18 +456,6 @@
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1717284937,
"narHash": "sha256-lIbdfCsf8LMFloheeE6N31+BMIeixqyQWbSr2vk79EQ=",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz"
}
},
"nixpkgs-regression": {
"locked": {
"lastModified": 1643052045,
@ -678,23 +488,21 @@
"type": "github"
}
},
"nixpkgs-stable_2": {
"nixpkgs_2": {
"locked": {
"lastModified": 1720386169,
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "194846768975b7ad2c4988bdb82572c00222c0d7",
"type": "github"
"lastModified": 1761597516,
"narHash": "sha256-wxX7u6D2rpkJLWkZ2E932SIvDJW8+ON/0Yy8+a5vsDU=",
"rev": "daf6dc47aa4b44791372d6139ab7b25269184d55",
"revCount": 811874,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2505.811874%2Brev-daf6dc47aa4b44791372d6139ab7b25269184d55/019a3494-3498-707e-9086-1fb81badc7fe/source.tar.gz"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.05",
"repo": "nixpkgs",
"type": "github"
"type": "tarball",
"url": "https://flakehub.com/f/NixOS/nixpkgs/0.2505"
}
},
"nixpkgs_2": {
"nixpkgs_3": {
"locked": {
"lastModified": 1770537093,
"narHash": "sha256-pF1quXG5wsgtyuPOHcLfYg/ft/QMr8NnX0i6tW2187s=",
@ -708,7 +516,7 @@
"url": "https://flakehub.com/f/DeterminateSystems/nixpkgs-weekly/0.1"
}
},
"nixpkgs_3": {
"nixpkgs_4": {
"locked": {
"lastModified": 1771423170,
"narHash": "sha256-K7Dg9TQ0mOcAtWTO/FX/FaprtWQ8BmEXTpLIaNRhEwU=",
@ -724,7 +532,7 @@
"type": "github"
}
},
"nixpkgs_4": {
"nixpkgs_5": {
"locked": {
"lastModified": 1771008912,
"narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=",
@ -740,84 +548,22 @@
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1755660401,
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5788de501b965d7413f2beaac10aeeb56f9a19a8",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "master",
"repo": "nixpkgs",
"type": "github"
}
},
"nvim": {
"inputs": {
"dart": "dart",
"flake-utils": "flake-utils_2",
"gen-luarc": "gen-luarc",
"jj-nvim": "jj-nvim",
"neovim-nightly-overlay": "neovim-nightly-overlay",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1771220173,
"narHash": "sha256-QWZPg+bTY7n0X21ehfx4gOEe8/RcjsWYPhKZOXzMpO8=",
"owner": "iofq",
"repo": "nvim.nix",
"rev": "e9d4373ddcce3f32ba1a36b9f566ab8dc4d2892c",
"type": "github"
},
"original": {
"owner": "iofq",
"repo": "nvim.nix",
"type": "github"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat_4",
"gitignore": "gitignore_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1770726378,
"narHash": "sha256-kck+vIbGOaM/dHea7aTBxdFYpeUl/jHOy5W3eyRvVx8=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "5eaaedde414f6eb1aea8b8525c466dc37bba95ae",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": {
"inputs": {
"dart": "dart",
"deploy-rs": "deploy-rs",
"determinate": "determinate",
"home-manager": "home-manager",
"jj-nvim": "jj-nvim",
"jj-vine": "jj-vine",
"llm-agents": "llm-agents",
"microvm": "microvm",
"neovim-nightly-overlay": "neovim-nightly-overlay",
"nix-index-database": "nix-index-database",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_4",
"nixpkgs": "nixpkgs_5",
"nixpkgs-stable": "nixpkgs-stable",
"nvim": "nvim",
"pre-commit-hooks": "pre-commit-hooks",
"sops-nix": "sops-nix",
"systems": "systems_5",
"treefmt-nix": "treefmt-nix_2"
}
},
@ -902,36 +648,6 @@
"type": "github"
}
},
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_5": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
@ -975,7 +691,7 @@
},
"utils": {
"inputs": {
"systems": "systems"
"systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,

113
flake.nix
View file

@ -4,10 +4,6 @@
nixos-hardware.url = "github:NixOS/nixos-hardware";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.11";
pre-commit-hooks = {
url = "github:cachix/pre-commit-hooks.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
@ -24,14 +20,6 @@
url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows = "nixpkgs";
};
# nvim = {
# url = "github:iofq/nvim.nix";
# url = "path:/home/e/dev/nvim.nix";
# };
nvim = {
url = "github:iofq/nvim.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
deploy-rs = {
url = "github:serokell/deploy-rs";
inputs.nixpkgs.follows = "nixpkgs";
@ -41,80 +29,69 @@
inputs.nixpkgs.follows = "nixpkgs";
};
determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/*";
systems.url = "github:nix-systems/default";
jj-vine = {
url = "github:abrenneke/jj-vine";
flake = false;
};
dart.url = "github:iofq/dart.nvim";
neovim-nightly-overlay = {
url = "github:nix-community/neovim-nightly-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
llm-agents.url = "github:numtide/llm-agents.nix";
jj-nvim = {
url = "github:NicolasGB/jj.nvim";
flake = false;
};
};
outputs =
{
self,
nixpkgs,
systems,
...
}@inputs:
let
attrs = {
username = "e";
};
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
overlays = [
inputs.nvim.overlays.default
inputs.llm-agents.overlays.default
inputs.self.overlays.stable-packages
];
};
eachSystem = f: nixpkgs.lib.genAttrs (import systems) (system: f nixpkgs.legacyPackages.${system});
treefmtEval = eachSystem (pkgs: inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix);
systems = [
"aarch64-linux"
"x86_64-linux"
"aarch64-darwin"
"x86_64-darwin"
];
mkPkgs =
system:
import nixpkgs {
inherit system;
config.allowUnfree = true;
overlays = [
inputs.neovim-nightly-overlay.overlays.default
inputs.llm-agents.overlays.default
inputs.self.overlays.stable-packages
(
final: prev:
import ./pkgs {
inherit inputs;
pkgs = prev;
}
)
];
};
eachSystem = f: nixpkgs.lib.genAttrs systems (system: f (mkPkgs system));
treefmtEval = eachSystem (
pkgs: (inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix).config.build.wrapper
);
in
{
packages = eachSystem (pkgs: import ./pkgs { inherit inputs pkgs; });
overlays = import ./overlays { inherit inputs; };
formatter = eachSystem (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper);
nixosConfigurations = import ./nixos {
inherit
inputs
pkgs
attrs
system
;
};
homeConfigurations = import ./home-manager { inherit inputs pkgs attrs; };
checks = {
pre-commit-check = inputs.pre-commit-hooks.lib.${system}.run {
src = inputs.self;
hooks = {
treefmt.enable = true;
treefmt.package = treefmtEval.${system}.config.build.wrapper;
};
};
};
deploy.nodes = import ./fleet.nix { inherit inputs self system; };
devShells.${system}.default = pkgs.mkShell {
inherit (self.checks.pre-commit-check) shellHook;
buildInputs = with pkgs; [
age
deploy-rs
git
home-manager
k9s
kubectl
kubeseal
sops
ssh-to-age
treefmtEval.${system}.config.build.wrapper
velero
(pkgs.writeShellScriptBin "deploy-k8s" ''
cd $(git rev-parse --show-toplevel)
kubectl config use-context lab
kubectl apply -k ./clusters/lab
'')
];
};
nixosConfigurations = import ./nixos { inherit inputs mkPkgs attrs; };
homeConfigurations = import ./home-manager { inherit inputs mkPkgs attrs; };
deploy.nodes = import ./fleet.nix { inherit inputs self; };
formatter = eachSystem (pkgs: treefmtEval.${pkgs.system});
packages = eachSystem (pkgs: import ./pkgs { inherit inputs pkgs; });
devShells = eachSystem (pkgs: {
default = import ./shell.nix { inherit pkgs; };
});
};
}

View file

@ -1,11 +1,12 @@
{inputs, system, self}: {
{ inputs, self }:
{
consensus = {
hostname = "consensus";
sshUser = "root";
remoteBuild = false;
profiles.system = {
user = "root";
path = inputs.deploy-rs.lib.${system}.activate.nixos self.nixosConfigurations.consensus;
path = inputs.deploy-rs.lib."x86_64-linux".activate.nixos self.nixosConfigurations.consensus;
};
};
zen = {
@ -14,7 +15,7 @@
remoteBuild = false;
profiles.system = {
user = "root";
path = inputs.deploy-rs.lib.${system}.activate.nixos self.nixosConfigurations.zen;
path = inputs.deploy-rs.lib."x86_64-linux".activate.nixos self.nixosConfigurations.zen;
};
};
oracle1 = {
@ -27,7 +28,7 @@
remoteBuild = false;
profiles.system = {
user = "root";
path = inputs.deploy-rs.lib.${system}.activate.nixos self.nixosConfigurations.oracle1;
path = inputs.deploy-rs.lib."x86_64-linux".activate.nixos self.nixosConfigurations.oracle1;
};
};
}

View file

@ -1,11 +1,12 @@
{
inputs,
pkgs,
mkPkgs,
attrs,
...
}: {
"e" = inputs.home-manager.lib.homeManagerConfiguration {
inherit pkgs;
}:
{
e = inputs.home-manager.lib.homeManagerConfiguration {
pkgs = mkPkgs "x86_64-linux";
extraSpecialArgs = {
inherit inputs attrs;
useGlobalPkgs = true;
@ -20,6 +21,7 @@
];
};
"minimal" = inputs.home-manager.lib.homeManagerConfiguration {
pkgs = mkPkgs "x86_64-linux";
extraSpecialArgs = {
inherit inputs attrs;
targets.genericLinux.enable = true;
@ -29,6 +31,6 @@
inherit (attrs) username;
};
};
modules = [./home.nix];
modules = [ ./home.nix ];
};
}

View file

@ -1,11 +0,0 @@
{ config, pkgs, ... }:
{
home.packages = with pkgs; [
pi
];
home.file."${config.xdg.configHome}/.pi" = {
source = ./config;
recursive = true;
};
}

View file

@ -4,6 +4,7 @@
./tmux.nix
./git.nix
./fish
./pi
];
home = {
packages = with pkgs; [
@ -12,7 +13,7 @@
ripgrep
fd
jq
nvim-pkg
nvim
];
};
programs.bash = {

View file

@ -0,0 +1,31 @@
{
inputs,
config,
pkgs,
...
}:
{
imports = [ inputs.sops-nix.homeManagerModules.sops ];
sops = {
age.keyFile = "/home/e/.config/sops/age/keys.txt";
secrets = {
"pi.json" = {
key = "";
format = "json";
sopsFile = ../../../../../secrets/pi.json;
path = "${config.home.homeDirectory}/.pi/agent/auth.json";
};
};
};
home.packages = with pkgs; [
llm-agents.pi
];
home.file.".pi" = {
source = ./config;
recursive = true;
};
}

View file

@ -40,6 +40,7 @@
mako.settings = {
default-timeout = 5;
};
udiskie.enable = true;
};
programs = {
wofi = {

View file

@ -4,7 +4,7 @@
enable = true;
systemd.enable = true;
extraConfig = ''
monitor=,preferred,auto,1
monitor=,preferred,auto-left,1
'';
settings = {
"$mod" = "SUPER";
@ -93,6 +93,9 @@
",XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +1%"
",XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -1%"
",XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle"
"$mod SHIFT, m, exec, hyprctl keyword general:layout master"
"$mod SHIFT, d, exec, hyprctl keyword general:layout dwindle"
"$mod SHIFT, s, exec, hyprctl keyword general:layout scrolling"
## Movement
"$mod, m, layoutmsg, swapwithmaster"
@ -135,21 +138,22 @@
) 10
)
);
windowrulev2 = [
"workspace 9, class:^(Discord|discord)$"
"workspace 9, class:^(Signal|signal)$"
"tile, class:^(Minecraft|minecraft)$"
"opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$"
"noanim,class:^(xwaylandvideobridge)$"
"noinitialfocus,class:^(xwaylandvideobridge)$"
"maxsize 1 1,class:^(xwaylandvideobridge)$"
"noblur,class:^(xwaylandvideobridge)$"
"bordersize 0, floating:0, onworkspace:w[t1]"
"rounding 0, floating:0, onworkspace:w[t1]"
"bordersize 0, floating:0, onworkspace:w[tg1]"
"rounding 0, floating:0, onworkspace:w[tg1]"
"bordersize 0, floating:0, onworkspace:f[1]"
"rounding 0, floating:0, onworkspace:f[1]"
windowrule = [
"workspace 9, match:class ^(Discord|discord)$"
"workspace 9, match:class ^(Signal|signal)$"
"tile on, match:class ^(Minecraft|minecraft)$"
"opacity 0.0 override 0.0 override, match:class ^(xwaylandvideobridge)$"
"no_initial_focus on , match:class ^(xwaylandvideobridge)$"
"no_focus on , match:class ^(xwaylandvideobridge)$"
"no_anim on , match:class ^(xwaylandvideobridge)$"
"max_size 1 1, match:class ^(xwaylandvideobridge)$"
"no_blur on, match:class ^(xwaylandvideobridge)$"
"border_size 0, match:float 0, match:workspace w[t1]"
"rounding 0, match:float 0, match:workspace w[t1]"
"border_size 0, match:float 0, match:workspace w[tg1]"
"rounding 0, match:float 0, match:workspace w[tg1]"
"border_size 0, match:float 0, match:workspace f[1]"
"rounding 0, match:float 0, match:workspace f[1]"
];
workspace = [
"w[t1], gapsout:0, gapsin:0"
@ -173,15 +177,15 @@
enable = true;
settings = {
general = {
before_sleep_cmd = "loginctl lock-session";
after_sleep_cmd = "hyprctl dispatch dpms on";
ignore_dbus_inhibit = false;
lock_cmd = "hyprlock";
lock_cmd = "pidof hyprlock || hyprlock";
};
listener = [
{
timeout = 1500;
on-timeout = "hyprlock; hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on";
timeout = 1800;
on-timeout = "systemctl suspend";
}
];
};

View file

@ -1,11 +1,12 @@
{
inputs,
pkgs,
mkPkgs,
attrs,
system,
...
}:
let
system = "x86_64-linux";
pkgs = mkPkgs system;
defaultModules = [
./configuration.nix
inputs.sops-nix.nixosModules.sops
@ -34,7 +35,7 @@ in
consensus = inputs.nixpkgs-stable.lib.nixosSystem {
pkgs = pkgs.stable;
specialArgs = {
pkgs-unstable = pkgs;
pkgs-unstable = mkPkgs system;
inherit inputs system attrs;
host = {
hostName = "consensus";

View file

@ -5,5 +5,7 @@
src = inputs.jj-vine;
cargoHash = "sha256-OU3WVLXGsMwpfzDM4sXa4KTGps63MTDvDAE/HREzPS8=";
nativeBuildInputs = [ pkgs.jujutsu ];
doCheck = false;
};
}
// import ./nvim { inherit inputs pkgs; }

6
pkgs/nvim/.stylua.toml Normal file
View file

@ -0,0 +1,6 @@
line_endings = "Unix"
indent_type = "Spaces"
indent_width = 2
quote_style = "AutoPreferSingle"
call_parentheses = "NoSingleTable"
# collapse_simple_statement = "Never"

85
pkgs/nvim/default.nix Normal file
View file

@ -0,0 +1,85 @@
{ inputs, pkgs }:
let
mkNeovim =
{
plugins ? [ ],
packages ? [ ],
}:
let
finalPlugins = plugins ++ [
(pkgs.vimUtils.buildVimPlugin {
pname = "iofq-nvim";
src = pkgs.lib.cleanSource ./nvim;
version = "0.1";
doCheck = false;
})
];
wrapperArgs = ''--prefix PATH : "${pkgs.lib.makeBinPath packages}"'';
in
pkgs.wrapNeovimUnstable pkgs.neovim-unwrapped {
inherit wrapperArgs;
plugins = finalPlugins;
withPython3 = false;
withRuby = false;
vimAlias = true;
};
mkPlugin =
src: pname:
pkgs.vimUtils.buildVimPlugin {
inherit pname src;
version = src.lastModifiedDate;
};
dart-nvim = inputs.dart.packages.x86_64-linux.default;
jj-nvim = mkPlugin inputs.jj-nvim "jj-nvim";
plugins = with pkgs.vimPlugins; [
blink-cmp
blink-ripgrep-nvim
conform-nvim
dart-nvim
jj-nvim
mini-nvim
nvim-autopairs
nvim-lint
nvim-lspconfig
nvim-treesitter.withAllGrammars
nvim-treesitter-textobjects
nvim-treesitter-context
quicker-nvim
render-markdown-nvim
snacks-nvim
];
basePackages = with pkgs; [
ripgrep
fd
];
# Extra packages that should be included on nixos but don't need to be bundled
extraPackages = with pkgs; [
# linters
yamllint
jq
hadolint
nixfmt
shellcheck
golangci-lint
# LSPs
gopls
lua-language-server
nixd
basedpyright
];
in
{
nvim = mkNeovim {
inherit plugins;
packages = basePackages ++ extraPackages;
};
nvim-min = mkNeovim {
inherit plugins;
packages = basePackages;
};
}

View file

@ -0,0 +1,453 @@
-- Made with 'mini.colors' module of https://github.com/echasnovski/mini.nvim
if vim.g.colors_name ~= nil then
vim.cmd('highlight clear')
end
vim.g.colors_name = 'iofq'
-- Highlight groups
local hi = vim.api.nvim_set_hl
hi(0, '@attribute', { link = 'Constant' })
hi(0, '@character.special', { link = 'SpecialChar' })
hi(0, '@comment.error', { bg = '#e85c51', fg = '#152528' })
hi(0, '@comment.note', { bg = '#5a93aa', fg = '#152528' })
hi(0, '@comment.todo', { bg = '#7aa4a1', fg = '#152528' })
hi(0, '@comment.warning', { bg = '#fda47f', fg = '#152528' })
hi(0, '@conditional', { link = 'Conditional' })
hi(0, '@constant.builtin', { fg = '#ff9664' })
hi(0, '@constant.macro', { link = 'Macro' })
hi(0, '@constructor', { fg = '#a1cdd8' })
hi(0, '@constructor.lua', { fg = '#cbd9d8' })
hi(0, '@exception', { link = 'Exception' })
hi(0, '@field', { fg = '#5a93aa' })
hi(0, '@field.rust', { fg = '#cbd9d8' })
hi(0, '@float', { link = 'Float' })
hi(0, '@function.builtin', { fg = '#e85c51' })
hi(0, '@function.macro', { fg = '#e85c51' })
hi(0, '@include', { link = 'Include' })
hi(0, '@keyword.conditional', { link = 'Conditional' })
hi(0, '@keyword.conditional.ternary', { link = 'Conditional' })
hi(0, '@keyword.exception', { link = 'Exception' })
hi(0, '@keyword.function', { fg = '#ad5c7c' })
hi(0, '@keyword.import', { link = 'Include' })
hi(0, '@keyword.operator', { fg = '#cbd9d8' })
hi(0, '@keyword.repeat', { link = 'Repeat' })
hi(0, '@keyword.return', { fg = '#e85c51' })
hi(0, '@keyword.storage', { link = 'StorageClass' })
hi(0, '@label.json', { fg = '#73a3b7' })
hi(0, '@lsp.type.boolean', { link = '@boolean' })
hi(0, '@lsp.type.builtinType', { link = '@type.builtin' })
hi(0, '@lsp.type.comment', { link = '@comment' })
hi(0, '@lsp.type.enum', { link = '@type' })
hi(0, '@lsp.type.enumMember', { link = '@constant' })
hi(0, '@lsp.type.escapeSequence', { link = '@string.escape' })
hi(0, '@lsp.type.formatSpecifier', { link = '@punctuation.special' })
hi(0, '@lsp.type.interface', { fg = '#eb746b' })
hi(0, '@lsp.type.keyword', { link = '@keyword' })
hi(0, '@lsp.type.namespace', { link = '@module' })
hi(0, '@lsp.type.number', { link = '@number' })
hi(0, '@lsp.type.operator', { link = '@operator' })
hi(0, '@lsp.type.parameter', { link = '@parameter' })
hi(0, '@lsp.type.property', { link = '@property' })
hi(0, '@lsp.type.selfKeyword', { link = '@variable.builtin' })
hi(0, '@lsp.type.typeAlias', { link = '@type.definition' })
hi(0, '@lsp.type.unresolvedReference', { link = '@error' })
hi(0, '@lsp.type.variable', {})
hi(0, '@lsp.typemod.class.defaultLibrary', { link = '@type.builtin' })
hi(0, '@lsp.typemod.enum.defaultLibrary', { link = '@type.builtin' })
hi(0, '@lsp.typemod.enumMember.defaultLibrary', { link = '@constant.builtin' })
hi(0, '@lsp.typemod.function.defaultLibrary', { link = '@function.builtin' })
hi(0, '@lsp.typemod.keyword.async', { link = '@keyword.coroutine' })
hi(0, '@lsp.typemod.macro.defaultLibrary', { link = '@function.builtin' })
hi(0, '@lsp.typemod.method.defaultLibrary', { link = '@function.builtin' })
hi(0, '@lsp.typemod.operator.injected', { link = '@operator' })
hi(0, '@lsp.typemod.string.injected', { link = '@string' })
hi(0, '@lsp.typemod.type.defaultLibrary', { link = '@type.builtin' })
hi(0, '@lsp.typemod.variable.defaultLibrary', { link = '@variable.builtin' })
hi(0, '@lsp.typemod.variable.injected', { link = '@variable' })
hi(0, '@markup', { fg = '#e6eaea' })
hi(0, '@markup.heading', { link = 'Title' })
hi(0, '@markup.heading.1.delimiter.vimdoc', { nocombine = true, sp = '#e6eaea', underdouble = true })
hi(0, '@markup.heading.2.delimiter.vimdoc', { nocombine = true, sp = '#e6eaea', underline = true })
hi(0, '@markup.italic', { link = 'Italic' })
hi(0, '@markup.link', { bold = true, fg = '#ad5c7c' })
hi(0, '@markup.link.label', { link = 'Special' })
hi(0, '@markup.link.url', { fg = '#ff9664', italic = true, underline = true })
hi(0, '@markup.list', { fg = '#afd4de' })
hi(0, '@markup.list.checked', { fg = '#7aa4a1' })
hi(0, '@markup.list.unchecked', { fg = '#fda47f' })
hi(0, '@markup.math', { fg = '#73a3b7' })
hi(0, '@markup.quote', { fg = '#cbd9d8' })
hi(0, '@markup.raw', { fg = '#a1cdd8', italic = true })
hi(0, '@markup.raw.block', { fg = '#cb7985' })
hi(0, '@markup.strikethrough', { fg = '#e6eaea', strikethrough = true })
hi(0, '@markup.strong', { bold = true, fg = '#c54e45' })
hi(0, '@markup.underline', { link = 'Underline' })
hi(0, '@module', { fg = '#afd4de' })
hi(0, '@namespace', { fg = '#afd4de' })
hi(0, '@number.float', { link = 'Float' })
hi(0, '@parameter', { fg = '#afd4de' })
hi(0, '@property', { fg = '#5a93aa' })
hi(0, '@punctuation.bracket', { fg = '#cbd9d8' })
hi(0, '@punctuation.delimiter', { fg = '#cbd9d8' })
hi(0, '@punctuation.special', { fg = '#afd4de' })
hi(0, '@repeat', { link = 'Repeat' })
hi(0, '@storageclass', { link = 'StorageClass' })
hi(0, '@string.escape', { bold = true, fg = '#fdb292' })
hi(0, '@string.regex', { fg = '#fdb292' })
hi(0, '@string.regexp', { fg = '#fdb292' })
hi(0, '@string.special', { link = 'Special' })
hi(0, '@string.special.url', { fg = '#ff9664', italic = true, underline = true })
hi(0, '@tag', { fg = '#ad5c7c' })
hi(0, '@tag.attribute', { fg = '#73a3b7', italic = true })
hi(0, '@tag.delimiter', { fg = '#afd4de' })
hi(0, '@type.builtin', { fg = '#afd4de' })
hi(0, '@variable', { fg = '#ebebeb' })
hi(0, '@variable.builtin', { fg = '#e85c51' })
hi(0, '@variable.member', { fg = '#5a93aa' })
hi(0, '@variable.parameter', { fg = '#afd4de' })
hi(0, 'BlinkCmpCursorLineDocumentationHack', { bg = '#254147' })
hi(0, 'BlinkCmpCursorLineMenuHack', { bg = '#425e5e' })
hi(0, 'BlinkCmpDoc', { bg = '#0f1c1e', fg = '#e6eaea' })
hi(0, 'BlinkCmpDocBorder', { bg = '#0f1c1e', fg = '#293e40' })
hi(0, 'BlinkCmpGhostText', { link = 'String' })
hi(0, 'BlinkCmpKindClass', { link = 'Type' })
hi(0, 'BlinkCmpKindConstant', { link = '@constant' })
hi(0, 'BlinkCmpKindConstructor', { link = 'Function' })
hi(0, 'BlinkCmpKindDefault', { fg = '#cbd9d8' })
hi(0, 'BlinkCmpKindEnum', { link = 'Constant' })
hi(0, 'BlinkCmpKindEnumMember', { link = '@field' })
hi(0, 'BlinkCmpKindEvent', { link = 'Constant' })
hi(0, 'BlinkCmpKindField', { link = '@field' })
hi(0, 'BlinkCmpKindFunction', { link = 'Function' })
hi(0, 'BlinkCmpKindInterface', { link = 'Constant' })
hi(0, 'BlinkCmpKindKeyword', { link = 'Identifier' })
hi(0, 'BlinkCmpKindMethod', { link = 'Function' })
hi(0, 'BlinkCmpKindModule', { link = '@namespace' })
hi(0, 'BlinkCmpKindOperator', { link = 'Operator' })
hi(0, 'BlinkCmpKindProperty', { link = '@property' })
hi(0, 'BlinkCmpKindReference', { link = 'Keyword' })
hi(0, 'BlinkCmpKindSnippet', { fg = '#cbd9d8' })
hi(0, 'BlinkCmpKindStruct', { link = 'Type' })
hi(0, 'BlinkCmpKindTypeParameter', { link = '@field' })
hi(0, 'BlinkCmpKindUnit', { link = 'Constant' })
hi(0, 'BlinkCmpKindValue', { link = 'Keyword' })
hi(0, 'BlinkCmpKindVariable', { link = '@variable' })
hi(0, 'BlinkCmpLabel', { fg = '#e6eaea' })
hi(0, 'BlinkCmpLabelDeprecated', { fg = '#587b7b', strikethrough = true })
hi(0, 'BlinkCmpLabelDetail', { link = 'Comment' })
hi(0, 'BlinkCmpLabelMatch', { fg = '#73a3b7' })
hi(0, 'Bold', { bold = true })
hi(0, 'Boolean', { link = 'Number' })
hi(0, 'BufferCurrent', { bg = '#587b7b', fg = '#e6eaea' })
hi(0, 'BufferCurrentIndex', { bg = '#587b7b', fg = '#5a93aa' })
hi(0, 'BufferCurrentMod', { bg = '#587b7b', fg = '#fda47f' })
hi(0, 'BufferCurrentSign', { bg = '#587b7b', fg = '#5a93aa' })
hi(0, 'BufferCurrentTarget', { bg = '#587b7b', fg = '#e85c51' })
hi(0, 'BufferInactive', { bg = '#0f1c1e', fg = '#6d7f8b' })
hi(0, 'BufferInactiveIndex', { bg = '#0f1c1e', fg = '#6d7f8b' })
hi(0, 'BufferInactiveMod', { bg = '#0f1c1e', fg = '#383835' })
hi(0, 'BufferInactiveSign', { bg = '#0f1c1e', fg = '#254147' })
hi(0, 'BufferInactiveTarget', { bg = '#0f1c1e', fg = '#e85c51' })
hi(0, 'BufferTabpage', { bg = '#0f1c1e', fg = '#254147' })
hi(0, 'BufferTabpages', { bg = '#0f1c1e' })
hi(0, 'BufferVisible', { bg = '#0f1c1e', fg = '#e6eaea' })
hi(0, 'BufferVisibleIndex', { bg = '#0f1c1e', fg = '#5a93aa' })
hi(0, 'BufferVisibleMod', { bg = '#0f1c1e', fg = '#fda47f' })
hi(0, 'BufferVisibleSign', { bg = '#0f1c1e', fg = '#5a93aa' })
hi(0, 'BufferVisibleTarget', { bg = '#0f1c1e', fg = '#e85c51' })
hi(0, 'Character', { link = 'String' })
hi(0, 'ColorColumn', { bg = '#1d3337' })
hi(0, 'Comment', { fg = '#6d7f8b' })
hi(0, 'Conceal', { fg = '#2d4f56' })
hi(0, 'Conditional', { fg = '#b97490' })
hi(0, 'Constant', { fg = '#ff9664' })
hi(0, 'CurSearch', { link = 'IncSearch' })
hi(0, 'Cursor', { bg = '#e6eaea', fg = '#152528' })
hi(0, 'CursorColumn', { link = 'CursorLine' })
hi(0, 'CursorLine', { bg = '#254147' })
hi(0, 'CursorLineNr', { bold = true, fg = '#fda47f' })
hi(0, 'DashboardCenter', { link = 'String' })
hi(0, 'DashboardFooter', { fg = '#ff9664', italic = true })
hi(0, 'DashboardHeader', { link = 'Title' })
hi(0, 'DashboardShortCut', { link = 'Identifier' })
hi(0, 'Delimiter', { link = 'Special' })
hi(0, 'DiagnosticError', { fg = '#e85c51' })
hi(0, 'DiagnosticHint', { fg = '#7aa4a1' })
hi(0, 'DiagnosticInfo', { fg = '#5a93aa' })
hi(0, 'DiagnosticOk', { fg = '#7aa4a1' })
hi(0, 'DiagnosticUnderlineError', { sp = '#e85c51', undercurl = true })
hi(0, 'DiagnosticUnderlineHint', { sp = '#7aa4a1', undercurl = true })
hi(0, 'DiagnosticUnderlineInfo', { sp = '#5a93aa', undercurl = true })
hi(0, 'DiagnosticUnderlineOk', { sp = '#7aa4a1', undercurl = true })
hi(0, 'DiagnosticUnderlineWarn', { sp = '#fda47f', undercurl = true })
hi(0, 'DiagnosticVirtualTextError', { bg = '#352d2e', fg = '#e85c51' })
hi(0, 'DiagnosticVirtualTextHint', { bg = '#24383a', fg = '#7aa4a1' })
hi(0, 'DiagnosticVirtualTextInfo', { bg = '#1f353c', fg = '#5a93aa' })
hi(0, 'DiagnosticVirtualTextOk', { bg = '#24383a', fg = '#7aa4a1' })
hi(0, 'DiagnosticVirtualTextWarn', { bg = '#383835', fg = '#fda47f' })
hi(0, 'DiagnosticWarn', { fg = '#fda47f' })
hi(0, 'DiffAdd', { bg = '#002800' })
hi(0, 'DiffChange', { bg = '#284b55' })
hi(0, 'DiffDelete', { bg = '#300000' })
hi(0, 'DiffText', { bg = '#366066' })
hi(0, 'Directory', { fg = '#73a3b7' })
hi(0, 'EndOfBuffer', { fg = '#152528' })
hi(0, 'Error', { fg = '#e85c51' })
hi(0, 'ErrorMsg', { fg = '#e85c51' })
hi(0, 'Exception', { link = 'Keyword' })
hi(0, 'FloatBorder', { fg = '#587b7b' })
hi(0, 'FocusedSymbol', { link = 'Search' })
hi(0, 'FoldColumn', { fg = '#587b7b' })
hi(0, 'Folded', { bg = '#1d3337', fg = '#587b7b' })
hi(0, 'Function', { fg = '#73a3b7' })
hi(0, 'GlyphPalette0', { fg = '#2f3239' })
hi(0, 'GlyphPalette1', { fg = '#e85c51' })
hi(0, 'GlyphPalette10', { fg = '#8eb2af' })
hi(0, 'GlyphPalette11', { fg = '#fdb292' })
hi(0, 'GlyphPalette12', { fg = '#73a3b7' })
hi(0, 'GlyphPalette13', { fg = '#b97490' })
hi(0, 'GlyphPalette14', { fg = '#afd4de' })
hi(0, 'GlyphPalette15', { fg = '#eeeeee' })
hi(0, 'GlyphPalette2', { fg = '#7aa4a1' })
hi(0, 'GlyphPalette3', { fg = '#fda47f' })
hi(0, 'GlyphPalette4', { fg = '#5a93aa' })
hi(0, 'GlyphPalette5', { fg = '#ad5c7c' })
hi(0, 'GlyphPalette6', { fg = '#a1cdd8' })
hi(0, 'GlyphPalette7', { fg = '#eeeeee' })
hi(0, 'GlyphPalette8', { fg = '#4e5157' })
hi(0, 'GlyphPalette9', { fg = '#eb746b' })
hi(0, 'HopUnmatched', { fg = '#6d7f8b' })
hi(0, 'Identifier', { fg = '#a1cdd8' })
hi(0, 'IncSearch', { bg = '#7aa4a1', fg = '#152528' })
hi(0, 'Italic', { italic = true })
hi(0, 'Keyword', { fg = '#ad5c7c' })
hi(0, 'Label', { link = 'Conditional' })
hi(0, 'LineNr', { fg = '#587b7b' })
hi(0, 'LspCodeLens', { fg = '#6d7f8b' })
hi(0, 'LspCodeLensSeparator', { fg = '#587b7b' })
hi(0, 'LspInlayHint', { bg = '#1d3337', fg = '#6d7f8b' })
hi(0, 'LspReferenceRead', { bg = '#293e40' })
hi(0, 'LspReferenceText', { bg = '#293e40' })
hi(0, 'LspReferenceWrite', { bg = '#293e40' })
hi(0, 'MatchParen', { bold = true, fg = '#fda47f' })
hi(0, 'MiniAnimateCursor', { nocombine = true, reverse = true })
hi(0, 'MiniAnimateNormalFloat', { link = 'NormalFloat' })
hi(0, 'MiniClueBorder', { link = 'FloatBorder' })
hi(0, 'MiniClueDescGroup', { link = 'DiagnosticFloatingWarn' })
hi(0, 'MiniClueDescSingle', { link = 'NormalFloat' })
hi(0, 'MiniClueNextKey', { link = 'DiagnosticFloatingHint' })
hi(0, 'MiniClueNextKeyWithPostkeys', { link = 'DiagnosticFloatingError' })
hi(0, 'MiniClueSeparator', { link = 'DiagnosticFloatingInfo' })
hi(0, 'MiniClueTitle', { link = 'FloatTitle' })
hi(0, 'MiniCompletionActiveParameter', { underline = true })
hi(0, 'MiniCursorword', { link = 'LspReferenceText' })
hi(0, 'MiniCursorwordCurrent', { link = 'LspReferenceText' })
hi(0, 'MiniDepsHint', { link = 'DiagnosticHint' })
hi(0, 'MiniDepsInfo', { link = 'DiagnosticInfo' })
hi(0, 'MiniDepsMsgBreaking', { link = 'DiagnosticWarn' })
hi(0, 'MiniDepsPlaceholder', { link = 'Comment' })
hi(0, 'MiniDepsTitle', { link = 'Title' })
hi(0, 'MiniDepsTitleError', { bg = '#e85c51', fg = '#0f1c1e' })
hi(0, 'MiniDepsTitleSame', { link = 'DiffText' })
hi(0, 'MiniDepsTitleUpdate', { bg = '#7aa4a1', fg = '#0f1c1e' })
hi(0, 'MiniDiffOverAdd', { link = 'DiffAdd' })
hi(0, 'MiniDiffOverChange', { link = 'DiffChange' })
hi(0, 'MiniDiffOverChangeBuf', { link = 'DiffChange' })
hi(0, 'MiniDiffOverContext', { link = 'DiffAdd' })
hi(0, 'MiniDiffOverDelete', { link = 'DiffDelete' })
hi(0, 'MiniDiffSignAdd', { fg = 'green', bold = true })
hi(0, 'MiniDiffSignChange', { fg = '#284b55', bold = true })
hi(0, 'MiniDiffSignDelete', { fg = 'red', bold = true })
hi(0, 'MiniFilesBorder', { link = 'FloatBorder' })
hi(0, 'MiniFilesBorderModified', { link = 'DiagnosticFloatingWarn' })
hi(0, 'MiniFilesCursorLine', { link = 'CursorLine' })
hi(0, 'MiniFilesDirectory', { link = 'Directory' })
hi(0, 'MiniFilesFile', { fg = '#e6eaea' })
hi(0, 'MiniFilesNormal', { link = 'NormalFloat' })
hi(0, 'MiniFilesTitle', { link = 'FloatTitle' })
hi(0, 'MiniFilesTitleFocused', { bold = true, fg = '#e6eaea' })
hi(0, 'MiniHipatternsFixme', { bg = '#e85c51', bold = true, fg = '#0f1c1e' })
hi(0, 'MiniHipatternsHack', { bg = '#fda47f', bold = true, fg = '#0f1c1e' })
hi(0, 'MiniHipatternsNote', { bg = '#5a93aa', bold = true, fg = '#0f1c1e' })
hi(0, 'MiniHipatternsTodo', { bg = '#7aa4a1', bold = true, fg = '#0f1c1e' })
hi(0, 'MiniIconsAzure', { fg = '#73a3b7' })
hi(0, 'MiniIconsBlue', { fg = '#5a93aa' })
hi(0, 'MiniIconsCyan', { fg = '#a1cdd8' })
hi(0, 'MiniIconsGreen', { fg = '#7aa4a1' })
hi(0, 'MiniIconsGrey', { fg = '#eaeeee' })
hi(0, 'MiniIconsOrange', { fg = '#ff8349' })
hi(0, 'MiniIconsPurple', { fg = '#ad5c7c' })
hi(0, 'MiniIconsRed', { fg = '#e85c51' })
hi(0, 'MiniIconsYellow', { fg = '#fda47f' })
hi(0, 'MiniIndentscopePrefix', { nocombine = true })
hi(0, 'MiniIndentscopeSymbol', { link = 'Delimiter' })
hi(0, 'MiniJump', { bg = '#ad5c7c', fg = '#0f1c1e' })
hi(0, 'MiniJump2dDim', { link = 'Comment' })
hi(0, 'MiniJump2dSpot', { bold = true, fg = '#a1cdd8' })
hi(0, 'MiniJump2dSpotAhead', { bold = true, fg = '#a1cdd8' })
hi(0, 'MiniJump2dSpotUnique', { bold = true, fg = '#fda47f' })
hi(0, 'MiniMapNormal', { link = 'NormalFloat' })
hi(0, 'MiniMapSymbolCount', { link = 'Special' })
hi(0, 'MiniMapSymbolLine', { link = 'Title' })
hi(0, 'MiniMapSymbolView', { link = 'Delimiter' })
hi(0, 'MiniNotifyBorder', { link = 'FloatBorder' })
hi(0, 'MiniNotifyNormal', { link = 'Normal' })
hi(0, 'MiniNotifyTitle', { link = 'Title' })
hi(0, 'MiniOperatorsExchangeFrom', { link = 'IncSearch' })
hi(0, 'MiniPickBorder', { link = 'FloatBorder' })
hi(0, 'MiniPickBorderBusy', { link = 'DiagnosticFloatingWarn' })
hi(0, 'MiniPickBorderText', { link = 'FloatTitle' })
hi(0, 'MiniPickHeader', { link = 'DiagnosticFloatingHint' })
hi(0, 'MiniPickIconDirectory', { link = 'Directory' })
hi(0, 'MiniPickIconFile', { link = 'MiniPickNormal' })
hi(0, 'MiniPickMatchCurrent', { link = 'CursorLine' })
hi(0, 'MiniPickMatchMarked', { link = 'Visual' })
hi(0, 'MiniPickMatchRanges', { link = 'DiagnosticFloatingHint' })
hi(0, 'MiniPickNormal', { link = 'NormalFloat' })
hi(0, 'MiniPickPreviewLine', { link = 'CursorLine' })
hi(0, 'MiniPickPreviewRegion', { link = 'IncSearch' })
hi(0, 'MiniPickPrompt', { link = 'DiagnosticFloatingInfo' })
hi(0, 'MiniStarterCurrent', { nocombine = true })
hi(0, 'MiniStarterFooter', { fg = '#ff9664', italic = true })
hi(0, 'MiniStarterHeader', { link = 'Title' })
hi(0, 'MiniStarterInactive', { link = 'Comment' })
hi(0, 'MiniStarterItem', { link = 'Normal' })
hi(0, 'MiniStarterItemBullet', { fg = '#587b7b' })
hi(0, 'MiniStarterItemPrefix', { fg = '#cb7985' })
hi(0, 'MiniStarterQuery', { fg = '#7aa4a1' })
hi(0, 'MiniStarterSection', { fg = '#e85c51' })
hi(0, 'MiniStatuslineDevinfo', { bg = '#1d3337', fg = '#cbd9d8' })
hi(0, 'MiniStatuslineFileinfo', { bg = '#1d3337', fg = '#cbd9d8' })
hi(0, 'MiniStatuslineFilename', { link = 'StatusLine' })
hi(0, 'MiniStatuslineInactive', { link = 'StatusLineNC' })
hi(0, 'MiniStatuslineModeCommand', { bg = '#fda47f', bold = true, fg = '#0f1c1e' })
hi(0, 'MiniStatuslineModeInsert', { bg = '#7aa4a1', bold = true, fg = '#0f1c1e' })
hi(0, 'MiniStatuslineModeNormal', { bg = '#a1cdd8', bold = true, fg = '#0f1c1e' })
hi(0, 'MiniStatuslineModeOther', { bg = '#5a93aa', bold = true, fg = '#0f1c1e' })
hi(0, 'MiniStatuslineModeReplace', { bg = '#e85c51', bold = true, fg = '#0f1c1e' })
hi(0, 'MiniStatuslineModeVisual', { bg = '#ad5c7c', bold = true, fg = '#0f1c1e' })
hi(0, 'MiniSurround', { link = 'IncSearch' })
hi(0, 'MiniTablineCurrent', { bg = '#2d4f56', bold = true, fg = '#cbd9d8' })
hi(0, 'MiniTablineModifiedCurrent', { bg = '#688888', bold = true, fg = '#1d3337' })
hi(0, 'MiniTablineVisible', { bg = '#1d3337', fg = '#cbd9d8' })
hi(0, 'MiniTablineModifiedVisible', { bg = '#587b7b', fg = '#1d3337' })
hi(0, 'MiniTablineTabpagesection', { bg = '#152528', bold = true, fg = '#e6eaea' })
hi(0, 'MiniTablineFill', { link = 'TabLineFill' })
hi(0, 'MiniTablineHidden', { bg = '#1d3337', fg = '#587b7b' })
hi(0, 'MiniTablineModifiedHidden', { bg = '#587b7b', fg = '#1d3337' })
hi(0, 'MiniTestEmphasis', { bold = true })
hi(0, 'MiniTestFail', { bold = true, fg = '#e85c51' })
hi(0, 'MiniTestPass', { bold = true, fg = '#7aa4a1' })
hi(0, 'MiniTrailspace', { bg = '#e85c51' })
hi(0, 'ModeMsg', { bold = true, fg = '#fda47f' })
hi(0, 'ModesCopy', { bg = '#fda47f' })
hi(0, 'ModesDelete', { bg = '#e85c51' })
hi(0, 'ModesInsert', { bg = '#a1cdd8' })
hi(0, 'ModesVisual', { bg = '#ad5c7c' })
hi(0, 'MoreMsg', { bold = true, fg = '#5a93aa' })
hi(0, 'NonText', { fg = '#2d4f56' })
hi(0, 'Normal', { fg = '#e6eaea' })
hi(0, 'NormalFloat', { bg = '#0f1c1e', fg = '#e6eaea' })
hi(0, 'NormalNC', { fg = '#e6eaea' })
hi(0, 'NotifyBackground', { link = 'NormalFloat' })
hi(0, 'NotifyDEBUGBorder', { fg = '#486565' })
hi(0, 'NotifyDEBUGIcon', { link = 'NotifyDEBUGTitle' })
hi(0, 'NotifyDEBUGTitle', { fg = '#7aa4a1' })
hi(0, 'NotifyERRORBorder', { fg = '#7e413d' })
hi(0, 'NotifyERRORIcon', { link = 'NotifyERRORTitle' })
hi(0, 'NotifyERRORTitle', { fg = '#e85c51' })
hi(0, 'NotifyINFOBorder', { fg = '#385c69' })
hi(0, 'NotifyINFOIcon', { link = 'NotifyINFOTitle' })
hi(0, 'NotifyINFOTitle', { fg = '#5a93aa' })
hi(0, 'NotifyTRACEBorder', { fg = '#2d4f56' })
hi(0, 'NotifyTRACEIcon', { link = 'NotifyTRACETitle' })
hi(0, 'NotifyTRACETitle', { fg = '#6d7f8b' })
hi(0, 'NotifyWARNBorder', { fg = '#896554' })
hi(0, 'NotifyWARNIcon', { link = 'NotifyWARNTitle' })
hi(0, 'NotifyWARNTitle', { fg = '#fda47f' })
hi(0, 'Number', { fg = '#ff8349' })
hi(0, 'Operator', { fg = '#cbd9d8' })
hi(0, 'Pmenu', { bg = '#293e40', fg = '#e6eaea' })
hi(0, 'PmenuSel', { bg = '#425e5e' })
hi(0, 'PmenuThumb', { bg = '#425e5e' })
hi(0, 'PreProc', { fg = '#d38d97' })
hi(0, 'Question', { link = 'MoreMsg' })
hi(0, 'QuickFixLine', { link = 'CursorLine' })
hi(0, 'RainbowDelimiterBlue', { fg = '#5a93aa' })
hi(0, 'RainbowDelimiterCyan', { fg = '#a1cdd8' })
hi(0, 'RainbowDelimiterGreen', { fg = '#7aa4a1' })
hi(0, 'RainbowDelimiterOrange', { fg = '#ff8349' })
hi(0, 'RainbowDelimiterPurple', { fg = '#ad5c7c' })
hi(0, 'RainbowDelimiterRed', { fg = '#e85c51' })
hi(0, 'RainbowDelimiterYellow', { fg = '#fda47f' })
hi(0, 'Repeat', { link = 'Conditional' })
hi(0, 'Search', { bg = '#425e5e', fg = '#e6eaea' })
hi(0, 'SignColumn', { fg = '#587b7b' })
hi(0, 'SignColumnSB', { link = 'SignColumn' })
hi(0, 'SnacksBackdrop', { bg = '#000000' })
hi(0, 'SnacksImageMath', { fg = '#73a3b7' })
hi(0, 'SnacksPickerDir', { fg = '#cccccc' })
hi(0, 'Sneak', { bg = '#ad5c7c', fg = '#0f1c1e' })
hi(0, 'SneakScope', { bg = '#293e40' })
hi(0, 'Special', { fg = '#73a3b7' })
hi(0, 'SpecialKey', { link = 'NonText' })
hi(0, 'SpellBad', { sp = '#e85c51', undercurl = true })
hi(0, 'SpellCap', { sp = '#fda47f', undercurl = true })
hi(0, 'SpellLocal', { sp = '#5a93aa', undercurl = true })
hi(0, 'SpellRare', { sp = '#5a93aa', undercurl = true })
hi(0, 'Statement', { fg = '#ad5c7c' })
hi(0, 'StatusLine', { bg = 'none' })
hi(0, 'StatusLineNC', { bg = 'none', fg = 'grey' })
hi(0, 'String', { fg = '#7aa4a1' })
hi(0, 'Substitute', { bg = '#e85c51', fg = '#152528' })
hi(0, 'SymbolOutlineConnector', { link = 'Conceal' })
hi(0, 'TabLine', { bg = '#1d3337', fg = '#cbd9d8' })
hi(0, 'TablineFill', { bg = 'none' })
hi(0, 'TabLineSel', { bg = '#587b7b', fg = '#152528' })
hi(0, 'Title', { bold = true, fg = '#73a3b7' })
hi(0, 'Todo', { bg = '#5a93aa', fg = '#152528' })
hi(0, 'Type', { fg = '#fda47f' })
hi(0, 'Visual', { bg = '#293e40' })
hi(0, 'WarningMsg', { fg = '#fda47f' })
hi(0, 'Whitespace', { fg = '#254147' })
hi(0, 'WildMenu', { link = 'Pmenu' })
hi(0, 'WinBar', { bold = true, fg = '#587b7b' })
hi(0, 'WinBarNC', { bold = true, fg = '#587b7b' })
hi(0, 'WinSeparator', { fg = '#0f1c1e' })
hi(0, 'diffAdded', { bg = '#24383a', fg = '#7aa4a1' })
hi(0, 'diffChanged', { bg = '#31474b', fg = '#73daca' })
hi(0, 'diffFile', { fg = '#5a93aa' })
hi(0, 'diffIndexLine', { fg = '#d38d97' })
hi(0, 'diffLine', { fg = '#ff9664' })
hi(0, 'diffNewFile', { fg = '#7aa4a1' })
hi(0, 'diffOldFile', { fg = '#fda47f' })
hi(0, 'diffRemoved', { bg = '#31474b', fg = '#e85c51' })
hi(0, 'diffText', { bg = '#466066' })
hi(0, 'illuminatedWordRead', { link = 'LspReferenceText' })
hi(0, 'illuminatedWordText', { link = 'LspReferenceText' })
hi(0, 'illuminatedWordWrite', { link = 'LspReferenceText' })
hi(0, 'lCursor', { link = 'Cursor' })
hi(0, 'qfFileName', { link = 'Directory' })
hi(0, 'qfLineNr', { link = 'LineNr' })
hi(0, 'typescriptParens', { fg = '#cbd9d8' })
-- Terminal colors
local g = vim.g
g.terminal_color_0 = '#2f3239'
g.terminal_color_1 = '#e85c51'
g.terminal_color_2 = '#7aa4a1'
g.terminal_color_3 = '#fda47f'
g.terminal_color_4 = '#5a93aa'
g.terminal_color_5 = '#ad5c7c'
g.terminal_color_6 = '#a1cdd8'
g.terminal_color_7 = '#ebebeb'
g.terminal_color_8 = '#4e5157'
g.terminal_color_9 = '#eb746b'
g.terminal_color_10 = '#8eb2af'
g.terminal_color_11 = '#fdb292'
g.terminal_color_12 = '#73a3b7'
g.terminal_color_13 = '#b97490'
g.terminal_color_14 = '#afd4de'
g.terminal_color_15 = '#eeeeee'

View file

@ -0,0 +1 @@
vim.opt_local.expandtab = false

View file

@ -0,0 +1 @@
vim.opt.tabstop = 4

View file

@ -0,0 +1,34 @@
---@type vim.lsp.Config
return {
settings = {
gopls = {
gofumpt = true,
codelenses = {
gc_details = true,
test = true,
},
analyses = {
unusedvariable = true,
unusedparams = true,
useany = true,
unusedwrite = true,
nilness = true,
shadow = true,
},
hints = {
assignVariableTypes = true,
compositeLiteralFields = true,
compositeLiteralTypes = true,
constantValues = true,
functionTypeParameters = true,
ignoredError = true,
rangeVariableTypes = true,
parameterNames = true,
},
usePlaceholders = true,
staticcheck = true,
completeUnimported = true,
semanticTokens = true,
},
},
}

View file

@ -0,0 +1,29 @@
return {
on_init = function(client)
local path = client.workspace_folders[1].name
if vim.loop.fs_stat(path .. '/.luarc.json') or vim.loop.fs_stat(path .. '/.luarc.jsonc') then
return
end
client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, {
runtime = {
version = 'LuaJIT',
},
workspace = {
checkThirdParty = false,
library = {
vim.env.VIMRUNTIME,
},
},
})
end,
settings = {
Lua = {
hint = {
enable = true,
arrayIndex = 'Enable',
setType = true,
},
},
},
}

View file

@ -0,0 +1,22 @@
local M = {}
M.is_jj_diffedit_open = function()
local entry = vim.fn.getqflist[1]
if not entry or not entry.user_data or not entry.user_data.diff then
for _, buf in ipairs(vim.api.nvim_list_bufs()) do -- close all /tmp buffers
if vim.fn.fnamemodify(vim.api.nvim_buf_get_name(buf), ':p'):match('/tmp/jj%-diff.*') then
vim.api.nvim_buf_delete(buf, { force = true })
end
end
return 0
else
return 1
end
end
M.diffedit = function(opts)
opts = opts or { args = '' }
vim.fn.jobstart('jj diffedit --tool difftool ' .. opts.args)
end
vim.api.nvim_create_user_command('Diffedit', M.diffedit, { nargs = '*' })
return M

View file

@ -0,0 +1,103 @@
local diff = require('mini.diff')
local M = {
cache = {},
}
M.get_buf_realpath = function(buf_id)
local path = vim.loop.fs_realpath(vim.api.nvim_buf_get_name(buf_id)) or ''
local cwd, basename = vim.fn.fnamemodify(path, ':h'), vim.fn.fnamemodify(path, ':t')
return path, cwd, basename
end
M.jj_start_watching_tree_state = function(buf_id, path)
local on_not_in_jj = vim.schedule_wrap(function()
if not vim.api.nvim_buf_is_valid(buf_id) then
M.cache[buf_id] = nil
return false
end
diff.fail_attach(buf_id)
M.cache[buf_id] = {}
end)
vim.system(
{ 'jj', 'workspace', 'root', '--ignore-working-copy' },
{cwd = vim.fn.fnamemodify(path, ':h')},
function(obj)
if obj.code ~= 0 then
return on_not_in_jj()
end
-- Set up index watching
local root = obj.stdout:gsub('\n+$', '') .. '/.jj/working_copy/tree_state'
local buf_fs_event = vim.loop.new_fs_event()
buf_fs_event:start(root, { stat = true }, function()
M.jj_set_ref_text(buf_id)
end)
M.cache[buf_id] = { fs_event = buf_fs_event }
-- Set reference text immediately
M.jj_set_ref_text(buf_id)
end
)
end
M.jj_set_ref_text = vim.schedule_wrap(function(buf_id)
if not vim.api.nvim_buf_is_valid(buf_id) then
return
end
local buf_set_ref_text = function(text)
pcall(diff.set_ref_text, buf_id, text)
end
-- react to possible rename
local path, cwd, basename = M.get_buf_realpath(buf_id)
if path == '' then
return buf_set_ref_text {}
end
vim.system(
{ 'jj', 'file', 'show', '--no-pager', '--ignore-working-copy', '-r', '@-', './' .. basename },
{ cwd = cwd },
vim.schedule_wrap(function(obj)
if obj.code ~= 0 then return buf_set_ref_text {} end
buf_set_ref_text(obj.stdout:gsub('\r\n', '\n'))
end)
)
end)
M.jj_invalidate_cache = function(buf_id)
pcall(vim.loop.fs_event_stop, M.cache[buf_id].fs_event)
M.cache[buf_id] = nil
end
M.gen_source = function()
local attach = function(buf_id)
-- Try attaching to a buffer only once
if M.cache[buf_id] ~= nil then
return false
end
-- - Possibly resolve symlinks to get data from the original repo
local path = M.get_buf_realpath(buf_id)
if path == '' then
return false
end
M.cache[buf_id] = {}
M.jj_start_watching_tree_state(buf_id, path)
end
local detach = function(buf_id)
M.jj_invalidate_cache(buf_id)
end
return {
name = 'jj',
attach = attach,
detach = detach,
apply_hunks = function(_, _) end -- staging does not apply for jj
}
end
return M

View file

@ -0,0 +1,158 @@
local cmd = vim.api.nvim_create_autocmd
-- open :h in buffers
cmd('FileType', {
group = vim.api.nvim_create_augroup('help', { clear = true }),
pattern = 'help',
callback = function(_)
vim.cmd.only()
vim.keymap.set('n', 'q', vim.cmd.bdelete, { noremap = true })
vim.bo.buflisted = false
end,
})
-- resize splits if window got resized
cmd({ 'VimResized' }, {
group = vim.api.nvim_create_augroup('resize_splits', { clear = true }),
callback = function()
vim.cmd('tabdo wincmd =')
vim.cmd('tabnext ' .. vim.fn.tabpagenr())
end,
})
-- Check if we need to reload the file when it changed
cmd({ 'FocusGained', 'TermClose', 'TermLeave' }, {
group = vim.api.nvim_create_augroup('check_reload', { clear = true }),
callback = function()
if vim.o.buftype ~= 'nofile' then
vim.cmd('checktime')
end
end,
})
-- Configure difftool buffers
cmd('FileType', {
pattern = 'qf',
group = vim.api.nvim_create_augroup('difftool', { clear = true }),
callback = function(event)
local function exec(fmt, str)
return os.execute(string.format(fmt, str))
end
local function refresh()
local qf = vim.fn.getqflist()
local entry = qf[1]
if not entry or not entry.user_data or not entry.user_data.diff then
return nil
end
local ns = vim.api.nvim_create_namespace('nvim.difftool.hl')
vim.api.nvim_buf_clear_namespace(event.buf, ns, 0, -1)
for i, item in ipairs(qf) do
local path = vim.fn.fnamemodify(item.user_data.right, ':t')
local hl = 'Added'
if
exec('git diff --quiet -- %s', path) ~= 0
or exec('git ls-files --error-unmatch -- %s > /dev/null 2>&1', path) ~= 0
then
hl = 'Removed'
end
vim.hl.range(event.buf, ns, hl, { i - 1, 0 }, { i - 1, -1 })
end
end
vim.keymap.set('n', 'gh', function()
local idx = vim.api.nvim_win_get_cursor(0)[1]
local qf = vim.fn.getqflist()
local filename = qf[idx].user_data.rel
if exec('git diff --quiet --cached -- %s', filename) ~= 0 then
exec('git restore --quiet --staged -- %s', filename)
else
exec('git add -- %s', filename)
end
refresh()
end)
vim.schedule(refresh)
end,
})
-- open conflicts in qflist
cmd('BufWinEnter', {
callback = function(event)
if not vim.wo.diff then
return
end
local items = {}
while true do
local found = vim.fn.search('^<<<<<<<', 'W')
if found == 0 then
break
end
local line = vim.api.nvim_buf_get_lines(event.buf, found - 1, found, false)[1]
table.insert(items, { bufnr = event.buf, lnum = found, text = line })
end
if #items > 1 then
vim.fn.setqflist(items, 'r')
vim.schedule(function()
vim.cmd(string.format('%dcopen', math.min(10, #items)))
end)
end
end,
})
-- Init treesitter
cmd('FileType', {
group = vim.api.nvim_create_augroup('treesitter', { clear = true }),
callback = function(event)
local bufnr = event.buf
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
pcall(vim.treesitter.start, bufnr)
vim.keymap.set({ 'v', 'n' }, ']]', function()
require('nvim-treesitter-textobjects.move').goto_next_start('@function.outer', 'textobjects')
end, { buffer = bufnr })
vim.keymap.set({ 'v', 'n' }, '[[', function()
require('nvim-treesitter-textobjects.move').goto_previous_start('@function.outer', 'textobjects')
end, { buffer = bufnr })
vim.keymap.set({ 'v', 'n' }, ']a', function()
require('nvim-treesitter-textobjects.move').goto_next_start('@parameter.inner', 'textobjects')
end, { buffer = bufnr })
vim.keymap.set({ 'v', 'n' }, '[a', function()
require('nvim-treesitter-textobjects.move').goto_previous_start('@parameter.inner', 'textobjects')
end, { buffer = bufnr })
vim.keymap.set({ 'v', 'n' }, ']A', function()
require('nvim-treesitter-textobjects.swap').swap_next('@parameter.inner')
end, { buffer = bufnr })
vim.keymap.set({ 'v', 'n' }, '[A', function()
require('nvim-treesitter-textobjects.swap').swap_previous('@parameter.inner')
end, { buffer = bufnr })
end,
})
-- Init LSP
cmd('LspAttach', {
group = vim.api.nvim_create_augroup('UserLspConfig', {}),
callback = function(ev)
local client = vim.lsp.get_client_by_id(ev.data.client_id)
if not client then
return
end
vim.keymap.set('n', 'gO', function()
Snacks.picker.lsp_symbols { focus = 'list' }
end, { buffer = ev.buf })
vim.keymap.set('n', 'grh', function()
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
end, { buffer = ev.buf })
vim.keymap.set('n', 'grl', vim.lsp.codelens.run, { buffer = ev.buf })
vim.keymap.set('n', 'gre', vim.diagnostic.setloclist, { buffer = ev.buf })
vim.keymap.set('n', 'grE', vim.diagnostic.setqflist, { buffer = ev.buf })
if client:supports_method('textDocument/codeLens') or client.server_capabilities.codeLensProvider then
vim.lsp.codelens.enable(true, { bufnr = ev.buf })
end
end,
})

View file

@ -0,0 +1,66 @@
vim.cmd('colorscheme iofq')
vim.g.mapleader = ' '
vim.opt.autowrite = true
vim.opt.backspace = 'indent,eol,start'
vim.opt.confirm = true
vim.opt.completeopt = 'menuone,popup,noselect,fuzzy'
vim.opt.diffopt = 'internal,filler,closeoff,inline:char'
vim.opt.expandtab = true -- insert tabs as spaces
vim.opt.inccommand = 'split' -- incremental live completion
vim.opt.laststatus = 1 -- statusline only if split
vim.opt.nrformats:append('alpha') -- let Ctrl-a do letters as well
vim.opt.path:append('**') -- enable fuzzy :find ing
vim.opt.relativenumber = true
vim.opt.shadafile = 'NONE' -- disable shada (unless session)
vim.opt.shiftwidth = 0 -- >> shifts by tabstop
vim.opt.showmatch = true -- highlight matching brackets
vim.opt.showmode = true
vim.opt.signcolumn = 'no'
vim.opt.softtabstop = -1 -- backspace removes tabstop
vim.opt.swapfile = false
vim.opt.tabstop = 2 -- 2 space tabs are based
vim.opt.updatetime = 250 -- decrease update time
vim.opt.virtualedit = 'onemore'
vim.opt.winborder = 'rounded'
-- Configure Neovim diagnostic messages
vim.diagnostic.config {
virtual_text = true,
underline = true,
severity_sort = true,
float = {
focusable = false,
style = 'minimal',
source = 'if_many',
},
}
vim.lsp.enable {
'nixd',
'phpactor',
'gopls',
'lua_ls',
'basedpyright',
'csharp_ls',
'ts_ls',
}
local map = vim.keymap.set
map('n', '\\t', function() -- Switch tab length on the fly
vim.o.tabstop = vim.o.tabstop == 8 and 2 or 2 * vim.o.tabstop
vim.notify('tabstop: ' .. vim.o.tabstop)
end)
map({ 'v', 'i' }, 'wq', '<esc>l')
map('v', '<', '<gv')
map('v', '>', '>gv')
map('n', 'n', 'nzz', { noremap = true })
map('n', 'N', 'Nzz', { noremap = true })
map('n', '<C-u>', '<C-u>zz', { noremap = true })
map('n', '<C-d>', '<C-d>zz', { noremap = true })
map('n', 'gq', vim.cmd.bdelete, { noremap = true })
map('n', 'gQ', function()
vim.cmd('bufdo bdelete')
end, { noremap = true })
vim.cmd.packadd('nvim.difftool')

View file

@ -0,0 +1,80 @@
local map = vim.keymap.set
vim.schedule(function()
require('mini.align').setup()
require('mini.surround').setup()
require('mini.splitjoin').setup { detect = { separator = '[,;\n]' } }
local ai = require('mini.ai')
ai.setup {
n_lines = 300,
custom_textobjects = {
i = require('mini.extra').gen_ai_spec.indent(),
a = ai.gen_spec.treesitter { a = '@parameter.outer', i = '@parameter.inner' },
f = ai.gen_spec.treesitter { a = '@function.outer', i = '@function.inner' },
},
}
require('mini.git').setup()
map('n', '<leader>gb', '<Cmd>Git blame -- %<CR>')
map('n', '<leader>go', function()
return MiniGit.show_at_cursor()
end)
local jump = require('mini.jump2d')
jump.setup {
mappings = {
start_jumping = '<leader>s',
},
view = { n_steps_ahead = 1, dim = true },
spotter = jump.gen_spotter.vimpattern(),
}
local diff = require('mini.diff')
diff.setup {
source = {
require('iofq.minidiff_jj').gen_source(),
diff.gen_source.git(),
},
}
map('n', '<leader>gp', MiniDiff.toggle_overlay)
require('mini.files').setup {
mappings = { go_in_plus = '<CR>' },
windows = {
preview = true,
width_preview = 50,
},
}
map('n', '<leader>nc', function()
MiniFiles.open(vim.api.nvim_buf_get_name(0), false) -- open current buffer's dir
end)
map('n', '<leader>nn', function()
MiniFiles.open(MiniFiles.get_latest_path())
end)
vim.api.nvim_create_autocmd('User', {
pattern = 'MiniFilesBufferCreate',
callback = function(args)
map('n', '<leader>nc', function()
MiniFiles.synchronize()
MiniFiles.close()
end, { buffer = args.data.buf_id })
map('n', '`', function()
local _, cur_entry_path = pcall(MiniFiles.get_fs_entry().path)
local cur_directory = vim.fs.dirname(cur_entry_path)
if cur_directory ~= '' then
vim.fn.chdir(cur_directory)
end
end, { buffer = args.data.buf_id })
end,
})
-- pass file rename events to LSP
vim.api.nvim_create_autocmd('User', {
group = vim.api.nvim_create_augroup('snacks_rename', { clear = true }),
pattern = 'MiniFilesActionRename',
callback = function(event)
Snacks.rename.on_rename_file(event.data.from, event.data.to)
end,
})
end)

View file

@ -0,0 +1,165 @@
local map = vim.keymap.set
require('mini.basics').setup { mappings = { windows = true } }
require('mini.icons').setup()
require('dart').setup {
tabline = {
icons = false,
label_marked_fg = 'cyan',
},
}
require('snacks').setup {
bigfile = { enabled = true },
terminal = { enabled = true },
indent = { enabled = true },
input = { enabled = true },
notifier = { enabled = true },
styles = { notification = { wo = { wrap = true } } },
picker = {
enabled = true,
matcher = {
frecency = true,
cwd_bonus = true,
},
layout = 'ivy_split',
sources = {
grep = { hidden = true },
lsp_symbols = {
filter = { default = true },
layout = {
preset = 'left',
layout = { width = 90, min_width = 90 },
},
},
smart = {
multi = {
'buffers',
{ source = 'files', hidden = true },
{ source = 'git_files', untracked = true },
},
},
},
},
}
map({ 'n', 't' }, '<C-\\>', Snacks.terminal.toggle)
map('n', '<leader>ff', Snacks.picker.smart)
map('n', '<leader><leader>', Snacks.picker.smart)
map('n', '<leader>fa', Snacks.picker.grep)
map('n', '<leader>f8', Snacks.picker.grep_word)
map('n', '<leader>f?', Snacks.picker.pickers)
map('n', '<leader>fu', Snacks.picker.undo)
map('n', '<leader>fj', Snacks.picker.jumps)
map('n', '<leader>f.', Snacks.picker.resume)
map('n', '<leader>fb', Snacks.picker.buffers)
map('n', '<leader>fq', Snacks.picker.qflist)
vim.schedule(function()
require('nvim-treesitter').setup()
require('nvim-treesitter-textobjects').setup()
require('treesitter-context').setup {
max_lines = 2,
}
vim.keymap.set('n', '[c', function()
require('treesitter-context').go_to_context(vim.v.count1)
end, { silent = true })
require('nvim-autopairs').setup()
require('jj').setup {}
map('n', '<leader>ja', require('jj.annotate').file)
map('n', '<leader>jf', require('jj.picker').status)
map('n', '<leader>jj', require('jj.cmd').log)
map('n', '<leader>jh', require('jj.picker').file_history)
map('n', '<leader>je', require('iofq.jj').diffedit)
map('n', '<leader>jd', function()
require('jj.diff').open_vdiff { rev = 'trunk()' }
end)
require('quicker').setup()
map('n', '<leader>qf', function()
require('quicker').toggle { max_height = 20 }
end)
require('conform').setup {
notify_no_formatters = false,
formatters_by_ft = {
json = { 'jq' },
lua = { 'stylua' },
python = { 'ruff' },
nix = { 'nixfmt' },
fish = { 'fish_indent' },
['*'] = { 'trim_whitespace' },
},
format_on_save = function(bufnr)
-- Disable with a global or buffer-local variable
if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
return
end
return { timeout_ms = 1500, lsp_format = 'fallback' }
end,
}
map('n', '\\f', function()
vim.b.disable_autoformat = not vim.b.disable_autoformat
vim.notify(string.format('Buffer formatting disabled: %s', vim.b.disable_autoformat))
end)
map('n', '\\F', function()
vim.g.disable_autoformat = not vim.g.disable_autoformat
vim.notify(string.format('Global formatting disabled: %s', vim.g.disable_autoformat))
end)
require('lint').linters_by_ft = {
docker = { 'hadolint' },
sh = { 'shellcheck' },
go = { 'golangcilint' },
fish = { 'fish' },
bash = { 'bash' },
nix = { 'nix' },
}
vim.api.nvim_create_autocmd({ 'BufWritePost' }, {
callback = function()
require('lint').try_lint(nil, { ignore_errors = true })
end,
})
vim.treesitter.language.register('markdown', 'blink-cmp-documentation')
require('blink.cmp').setup {
enabled = function()
return not vim.tbl_contains({ 'snacks_picker_input' }, vim.bo.filetype)
end,
sources = {
default = { 'lsp', 'path', 'snippets', 'ripgrep', 'buffer' },
providers = {
lsp = { fallbacks = {} }, -- include buffer even when LSP is active
path = { async = true, opts = { get_cwd = vim.fn.getcwd } }, -- use nvim pwd instead of current file pwd
ripgrep = {
enabled = false,
module = 'blink-ripgrep',
name = 'rg',
score_offset = -10,
async = true,
opts = {
project_root_marker = { '.git', '.jj' },
backend = {
use = 'gitgrep-or-ripgrep',
},
},
},
},
},
cmdline = { completion = { menu = { auto_show = true } } },
completion = {
documentation = { auto_show = true },
menu = {
draw = {
columns = {
{ 'label', 'label_description', gap = 1 },
{ 'source_name', 'kind', gap = 1 },
},
},
},
},
signature = { enabled = true, trigger = { show_on_insert = true } },
}
end)

30
secrets/pi.json Normal file
View file

@ -0,0 +1,30 @@
{
"openrouter": {
"type": "ENC[AES256_GCM,data:VTFUVkWSOw==,iv:fVOuJBjXHjugjVUYQgT0Gl94MFQFuDWzc0n4xdceSBI=,tag:JnzRl07SWaO0GnFVPDN7Hw==,type:str]",
"key": "ENC[AES256_GCM,data:eECB/1dKahAnZKUwpGiUbntjjtnXMaRGlcXei+ctk9TAzLKJk+zwXlpFDONMVB2I6csHYZPFxllYn68qDW/fMOE0RGoncKKU6A==,iv:mSHT+fzSUlD4RV6mwGsIJ6GT245z0H362kXrw+3z5tA=,tag:5lYhDWUOnbMkm5TPk/RT8w==,type:str]"
},
"sops": {
"age": [
{
"recipient": "age14e2d2y8e2avzfrsyxg9dudxd36svm24t7skw6e969n0c42znlp3shffdtg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSNFhWZTRlQUZ6YXVNZzNE\nRFVrTW1NU2d2SXZHZTJVd3ZSb2hKcDd3RmdZCmR4WG83emVYa1QxSlJSYnJTVnYw\nSXhjV2ZIQVlIbWs3bDZRaXlaeXpqK1EKLS0tIHR5NkFFenJqK1ZQa0RBMWNuQi94\neVFMaGlwdlRDa0ZHbTZxeWZLSHY1SkEKazWsoA+aF3g3ZelooeuqeQA53/N1eu71\nYWo7Zmzv7KbrRJXzNUEiByjMV2sDsHJyELO8CAKr7193cyY4UzTViQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age16pdhm238k63uye3rf4cwwe7ddyzds6xj9jv4wpsfggkghyarjqtsjzkxna",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUN2RWUzczbk5NYzc5bXI2\nQU5YcFlMWU1UV0NoTzhla3hIakd6ZUlmamlvCmZDWG91dHhWNVRpaUJPeFlqcVFO\nRVgreEhwajZMVE9nNTZpN2NtVjhkaU0KLS0tIElxZGtNR3lXbmxORTN0TTBBRGsx\ndllmOE94NHM3b1kyUVpueUlrM1JMTE0Ku4gXUodVqqxf/joVQqjA5RmYPWwNNCsC\niXNJZdUJLzh9xpaTTHLkEXFyxWmZ6gKCjoavLxLf03ReuJOJ5iBnFQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age12tz2r7clep9e450qhr5a6ctnx29ywmu0llq8uk9kcwhpp82zsa0sk9la9h",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4M1FPaEoreE1yckhzZVpS\nVjJSNnlTQS9TNUVEWXIwaVJEWXNPYXFpV1RBCkhURHZ3dENGSXA4SU9LU3g1Y2cx\nWnhRRnpDSTZsYTJkNkpvNUpFZ2FhYWMKLS0tIHJma1ZhdHc4Qlhkbzl2VHFvcDE3\nQnlucHlmYWFhQmF4Sm1RaTk0WU91VmMKMlATZR0OXeJpvbVYBEsnOjq6hzr63MeM\n/esyDm57ZJ7Eqcuev+VjXaWNZZEuW+PQW9Ybct6NtEC6jH36m9za5w==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1nzlng9tw59rxnr86jw330s9z4x28hr394cl2qgktptf8swat23gqahgudw",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlYXpxWmhqT3cySWx0ZDJv\nZUFkUzFmMjYwME9xb2UvMHBPNVZmZUVuc3hRCmFucldiMEJEelIvSVFZNmtERUVW\nOXBoK2VrcktzdytsTEZWTUkydXFkQzAKLS0tIFlQMmViSk1saUY3b3FScGRpYlFT\nTlg3Y2ovSTZMRkd6eXlTLzJYcmdMK2cKw6snshtmgbY3Inv4TCSYz28hwmG+W6qH\nPo6dl9h99tJRfG69VeOF+SMt/14N6I/fLqHn0e0mr3i34XV9EQx4DQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2026-02-27T07:28:25Z",
"mac": "ENC[AES256_GCM,data:QQpZUzMpnZFsNevQuEf+r4FXlCLFVAoXBfkxOYT8aOhWFLYVFm4W1wvkBnOn4UBtYa/mVadXkejzjfS2kLLt59nPx2gOjePGWCOuxzaSuipAZDP45bNsZpuMT8/KG+BOBjgSbhR6yyRAk6EFglJ5G5i15m3vag493kXxtYNs89A=,iv:m1SeK2OO6c33vJm6a7hGYRLTbszDqaY2CpLdXuHDqx0=,tag:ngNn/36Zzn2omb/091ZxBw==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.11.0"
}
}

23
shell.nix Normal file
View file

@ -0,0 +1,23 @@
{ pkgs, ... }:
pkgs.mkShell {
buildInputs = with pkgs; [
age
deploy-rs
git
home-manager
k9s
kubectl
kubeseal
lua-language-server
nixd
sops
ssh-to-age
stylua
velero
(pkgs.writeShellScriptBin "deploy-k8s" ''
cd $(git rev-parse --show-toplevel)
kubectl config use-context lab
kubectl apply -k ./clusters/lab
'')
];
}