more treats for chloe

This commit is contained in:
chloe caruso 2025-06-07 13:56:21 -07:00
parent d9967da704
commit ab7dc1a697
5 changed files with 62 additions and 23 deletions

View file

@ -4,9 +4,10 @@
overlays,
inputs,
}:
user: system:
configPath: system:
let
darwin = nixpkgs.lib.strings.hasSuffix "-darwin" system;
user = builtins.elemAt (builtins.split "/" configPath) 0;
host = {
inherit darwin;
@ -19,7 +20,7 @@ in
(inputs.nvf.lib.neovimConfiguration {
pkgs = nixpkgs.legacyPackages.${system};
modules = builtins.filter (f: f != null) [
(../users + ("/" + user + "/vim.nix"))
(../users + ("/" + configPath + "/vim.nix"))
../modules/neovim
];
extraSpecialArgs = {

View file

@ -1,9 +1,12 @@
{
config,
pkgs,
lib,
host,
...
}:
let
allowExe = config.shared.allowExe;
in
{
# based on default options from upstream:
# https://github.com/NotAShelf/nvf/blob/main/configuration.nix
@ -13,7 +16,7 @@
#
# override level 999 is used to not conflict with mkDefault as used by nvf.
# which allows user configurations to disable/override anything here.
vim = lib.mkOverride 999 {
config.vim = lib.mkOverride 999 {
theme = {
enable = true;
};
@ -34,7 +37,7 @@
};
lsp = {
# Must be enabled for language modules to hook into the LSP API.
enable = true;
enable = allowExe;
formatOnSave = true;
# show errors inline
# https://github.com/folke/trouble.nvim
@ -48,30 +51,43 @@
};
debugger = {
nvim-dap = {
enable = true;
enable = allowExe;
ui.enable = true;
};
};
languages = {
enableFormat = true;
enableTreesitter = true;
enableTreesitter = allowExe;
enableExtraDiagnostics = true;
# sort-lines: on
assembly.enable = true;
bash.enable = true;
clang.enable = true;
css.enable = true;
html.enable = true;
nix.enable = true;
rust.crates.enable = true;
rust.enable = true;
ts.enable = true;
zig.enable = true;
assembly.enable = allowExe;
bash.enable = allowExe;
clang.enable = allowExe;
css.enable = allowExe;
html.enable = allowExe;
nix.enable = allowExe;
rust.crates.enable = allowExe;
rust.enable = allowExe;
ts.enable = allowExe;
zig.enable = allowExe;
# sort-lines: off
ts.format.enable = false; # deno fmt is enabled elsewhere
nix.format.type = "nixfmt"; # looks so much nicer
};
formatter.conform-nvim = {
enable = true;
setupOpts.formatters_by_ft = {
typescript = [ "deno_fmt" ];
typescriptreact = [ "deno_fmt" ];
javascript = [ "deno_fmt" ];
javascriptreact = [ "deno_fmt" ];
};
setupOpts.formatters.deno_fmt = {
command = lib.meta.getExe pkgs.deno;
};
};
filetree = {
neo-tree = {
enable = true;
@ -81,7 +97,7 @@
nvimBufferline.enable = true;
};
autocomplete = {
blink-cmp.enable = true;
blink-cmp.enable = allowExe;
};
statusline = {
lualine = {
@ -132,8 +148,8 @@
todo-comments.enable = true;
};
git = {
enable = true;
gitsigns.enable = true;
enable = allowExe;
gitsigns.enable = allowExe;
gitsigns.codeActions.enable = false; # throws an annoying debug message
};
};

View file

@ -4,8 +4,6 @@
# packages for all machines
environment.systemPackages = with pkgs; [
];
# services for all machines
services.karabiner-elements.enable = true;
# configuration for shared modules.
# all custom options in 'shared' for clarity.

View file

@ -13,6 +13,7 @@ in
ffmpeg
ripgrep
uv
nh
];
# packages to install for desktop environments (non-server)
desktop = [
@ -36,9 +37,31 @@ in
btop.enable = true;
fd.enable = true;
hyfetch.enable = true;
zsh.enable = true;
# sort-lines:end
# zsh is the shell i use
zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
history.size = 10000;
shellAliases = {
switch = "nh darwin switch ~/config";
};
profileExtra = ''
function python() {
dirname=$(dirname $1 2>/dev/null)
if [ -z "$dirname" ]; then
dirname=$(pwd)
fi
uv run --project "$dirname" "$@"
}
'';
};
# use a git-specific email
git.userEmail = "git@paperclover.net";

View file

@ -1,5 +1,6 @@
{ ... }:
{
vim.languages.astro.enable = true;
vim.theme.extraConfig = ''
if vim.g.neovide then
vim.g.neovide_cursor_trail_size = 0.3