authorgravatar for git@paperclover.netclover caruso <git@paperclover.net> 2025-06-07 13:56:21-07:00
committergravatar for git@paperclover.netclover caruso <git@paperclover.net> 2025-06-07 13:56:21-07:00
logab7dc1a69776f3bde087126d89f6e6eac17d56e0
tree22e3227b1efa1097fa70a943b6ac3b49240987da
parentd9967da704f341260d3b3c8853e59ab2b7358a01

more treats for chloe


5 files changed, 62 insertions(+), 23 deletions(-)

lib/mkNeovim.nix+3-2
......@@ -4,9 +4,10 @@
44 overlays,
55 inputs,
66}:
7user: system:
7configPath: system:
88let
99 darwin = nixpkgs.lib.strings.hasSuffix "-darwin" system;
10 user = builtins.elemAt (builtins.split "/" configPath) 0;
1011
1112 host = {
1213 inherit darwin;
......@@ -19,7 +20,7 @@ in
1920(inputs.nvf.lib.neovimConfiguration {
2021 pkgs = nixpkgs.legacyPackages.${system};
2122 modules = builtins.filter (f: f != null) [
22 (../users + ("/" + user + "/vim.nix"))
23 (../users + ("/" + configPath + "/vim.nix"))
2324 ../modules/neovim
2425 ];
2526 extraSpecialArgs = {
modules/neovim/default.nix+34-18
......@@ -1,9 +1,12 @@
11{
22 config,
3 pkgs,
34 lib,
4 host,
55 ...
66}:
7let
8 allowExe = config.shared.allowExe;
9in
710{
811 # based on default options from upstream:
912 # https://github.com/NotAShelf/nvf/blob/main/configuration.nix
......@@ -13,7 +16,7 @@
1316 #
1417 # override level 999 is used to not conflict with mkDefault as used by nvf.
1518 # which allows user configurations to disable/override anything here.
16 vim = lib.mkOverride 999 {
19 config.vim = lib.mkOverride 999 {
1720 theme = {
1821 enable = true;
1922 };
......@@ -34,7 +37,7 @@
3437 };
3538 lsp = {
3639 # Must be enabled for language modules to hook into the LSP API.
37 enable = true;
40 enable = allowExe;
3841 formatOnSave = true;
3942 # show errors inline
4043 # https://github.com/folke/trouble.nvim
......@@ -48,30 +51,43 @@
4851 };
4952 debugger = {
5053 nvim-dap = {
51 enable = true;
54 enable = allowExe;
5255 ui.enable = true;
5356 };
5457 };
5558 languages = {
5659 enableFormat = true;
57 enableTreesitter = true;
60 enableTreesitter = allowExe;
5861 enableExtraDiagnostics = true;
5962
6063 # sort-lines: on
61 assembly.enable = true;
62 bash.enable = true;
63 clang.enable = true;
64 css.enable = true;
65 html.enable = true;
66 nix.enable = true;
67 rust.crates.enable = true;
68 rust.enable = true;
69 ts.enable = true;
70 zig.enable = true;
64 assembly.enable = allowExe;
65 bash.enable = allowExe;
66 clang.enable = allowExe;
67 css.enable = allowExe;
68 html.enable = allowExe;
69 nix.enable = allowExe;
70 rust.crates.enable = allowExe;
71 rust.enable = allowExe;
72 ts.enable = allowExe;
73 zig.enable = allowExe;
7174 # sort-lines: off
7275
76 ts.format.enable = false; # deno fmt is enabled elsewhere
7377 nix.format.type = "nixfmt"; # looks so much nicer
7478 };
79 formatter.conform-nvim = {
80 enable = true;
81 setupOpts.formatters_by_ft = {
82 typescript = [ "deno_fmt" ];
83 typescriptreact = [ "deno_fmt" ];
84 javascript = [ "deno_fmt" ];
85 javascriptreact = [ "deno_fmt" ];
86 };
87 setupOpts.formatters.deno_fmt = {
88 command = lib.meta.getExe pkgs.deno;
89 };
90 };
7591 filetree = {
7692 neo-tree = {
7793 enable = true;
......@@ -81,7 +97,7 @@
8197 nvimBufferline.enable = true;
8298 };
8399 autocomplete = {
84 blink-cmp.enable = true;
100 blink-cmp.enable = allowExe;
85101 };
86102 statusline = {
87103 lualine = {
......@@ -132,8 +148,8 @@
132148 todo-comments.enable = true;
133149 };
134150 git = {
135 enable = true;
136 gitsigns.enable = true;
151 enable = allowExe;
152 gitsigns.enable = allowExe;
137153 gitsigns.codeActions.enable = false; # throws an annoying debug message
138154 };
139155 };
users/chloe/configuration.nix-2
......@@ -4,8 +4,6 @@
44 # packages for all machines
55 environment.systemPackages = with pkgs; [
66 ];
7 # services for all machines
8 services.karabiner-elements.enable = true;
97
108 # configuration for shared modules.
119 # all custom options in 'shared' for clarity.
users/chloe/home.nix+24-1
......@@ -13,6 +13,7 @@ in
1313 ffmpeg
1414 ripgrep
1515 uv
16 nh
1617 ];
1718 # packages to install for desktop environments (non-server)
1819 desktop = [
......@@ -36,9 +37,31 @@ in
3637 btop.enable = true;
3738 fd.enable = true;
3839 hyfetch.enable = true;
39 zsh.enable = true;
4040 # sort-lines:end
4141
42 # zsh is the shell i use
43 zsh = {
44 enable = true;
45 enableCompletion = true;
46 autosuggestion.enable = true;
47 syntaxHighlighting.enable = true;
48
49 history.size = 10000;
50
51 shellAliases = {
52 switch = "nh darwin switch ~/config";
53 };
54 profileExtra = ''
55 function python() {
56 dirname=$(dirname $1 2>/dev/null)
57 if [ -z "$dirname" ]; then
58 dirname=$(pwd)
59 fi
60 uv run --project "$dirname" "$@"
61 }
62 '';
63 };
64
4265 # use a git-specific email
4366 git.userEmail = "git@paperclover.net";
4467
users/chloe/vim.nix+1
......@@ -1,5 +1,6 @@
11{ ... }:
22{
3 vim.languages.astro.enable = true;
34 vim.theme.extraConfig = ''
45 if vim.g.neovide then
56 vim.g.neovide_cursor_trail_size = 0.3