nearly at parity with lua-based config
This commit is contained in:
parent
10453abfb1
commit
6fea0a1f4e
10 changed files with 132 additions and 79 deletions
|
@ -49,7 +49,6 @@
|
||||||
}@inputs:
|
}@inputs:
|
||||||
let
|
let
|
||||||
lib = nixpkgs.lib;
|
lib = nixpkgs.lib;
|
||||||
|
|
||||||
# TODO: apply these overlays sooner and remove uses of legacyPackages elsewhere.
|
# TODO: apply these overlays sooner and remove uses of legacyPackages elsewhere.
|
||||||
overlays = [
|
overlays = [
|
||||||
inputs.zig.overlays.default
|
inputs.zig.overlays.default
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
mkNeovim,
|
mkNeovim,
|
||||||
}: name: {
|
}: name: {
|
||||||
user, # ./users/{name}
|
user, # ./users/{name}
|
||||||
host, # ./users/{name}/{host} (optional)
|
host, # ./users/{name}/{host}
|
||||||
system, # arch-os
|
system, # arch-os
|
||||||
extraModules ? [],
|
extraModules ? [],
|
||||||
}: let
|
}: let
|
||||||
|
|
|
@ -4,27 +4,15 @@ _: {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
onActivation = {
|
onActivation = {
|
||||||
autoUpdate = true;
|
autoUpdate = false;
|
||||||
cleanup = "none";
|
cleanup = "none";
|
||||||
upgrade = true;
|
upgrade = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
brews = [
|
brews = [
|
||||||
"imagemagick"
|
|
||||||
"opam"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
casks = [
|
casks = [
|
||||||
"battle-net"
|
|
||||||
"stremio"
|
|
||||||
"alt-tab"
|
|
||||||
"legcord"
|
|
||||||
"zulip"
|
|
||||||
"zen-browser"
|
|
||||||
"supertuxkart"
|
|
||||||
"sf-symbols"
|
|
||||||
|
|
||||||
"mediosz/tap/swipeaerospace"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
masApps = {
|
masApps = {
|
||||||
|
|
|
@ -87,9 +87,6 @@
|
||||||
ripgrep.enable = true;
|
ripgrep.enable = true;
|
||||||
};
|
};
|
||||||
friendly-snippets.enable = true;
|
friendly-snippets.enable = true;
|
||||||
setupOpts = {
|
|
||||||
keymap.preset = "super-tab";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
statusline = {
|
statusline = {
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
# Include the results of the hardware scan.
|
# Include the results of the hardware scan.
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
];
|
];
|
||||||
|
documentation.man.generateCaches = false;
|
||||||
programs = {
|
programs = {
|
||||||
gamemode.enable = true;
|
gamemode.enable = true;
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}@args:
|
} @ args: {
|
||||||
{
|
|
||||||
programs = {
|
programs = {
|
||||||
# sort-lines:start
|
# sort-lines:start
|
||||||
atuin.enable = true;
|
atuin.enable = true;
|
||||||
|
@ -11,6 +10,7 @@
|
||||||
hyfetch.enable = true;
|
hyfetch.enable = true;
|
||||||
direnv.enable = true;
|
direnv.enable = true;
|
||||||
fish.enable = true;
|
fish.enable = true;
|
||||||
|
man.generateCaches = false;
|
||||||
# sort-lines:end
|
# sort-lines:end
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
pinentry_mac
|
pinentry_mac
|
||||||
signal-desktop-bin
|
signal-desktop-bin
|
||||||
|
@ -8,7 +7,7 @@
|
||||||
# Custom configuration modules in "modules" are shared between users,
|
# Custom configuration modules in "modules" are shared between users,
|
||||||
# and can be configured in this "shared" namespace
|
# and can be configured in this "shared" namespace
|
||||||
shared.darwin = {
|
shared.darwin = {
|
||||||
macAppStoreApps = [ "wireguard" ];
|
macAppStoreApps = ["wireguard"];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Create /etc/zshrc that loads the nix-darwin environment.
|
# Create /etc/zshrc that loads the nix-darwin environment.
|
||||||
|
@ -30,14 +29,6 @@
|
||||||
|
|
||||||
# Use homebrew to install casks
|
# Use homebrew to install casks
|
||||||
homebrew = {
|
homebrew = {
|
||||||
enable = true;
|
|
||||||
|
|
||||||
onActivation = {
|
|
||||||
autoUpdate = true;
|
|
||||||
cleanup = "none";
|
|
||||||
upgrade = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
brews = [
|
brews = [
|
||||||
"imagemagick"
|
"imagemagick"
|
||||||
"opam"
|
"opam"
|
||||||
|
@ -49,8 +40,11 @@
|
||||||
"alt-tab"
|
"alt-tab"
|
||||||
"legcord"
|
"legcord"
|
||||||
"zulip"
|
"zulip"
|
||||||
"zen-browser"
|
"zen"
|
||||||
"supertuxkart"
|
"supertuxkart"
|
||||||
|
"sf-symbols"
|
||||||
|
|
||||||
|
"mediosz/tap/swipeaerospace"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,27 @@
|
||||||
{...}: {
|
{pkgs, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
./vim/default.nix
|
./vim/default.nix
|
||||||
];
|
];
|
||||||
vim = {
|
vim = {
|
||||||
|
options = {
|
||||||
|
tabstop = 2;
|
||||||
|
softtabstop = 2;
|
||||||
|
shiftwidth = 2;
|
||||||
|
undofile = true;
|
||||||
|
swapfile = false;
|
||||||
|
showmode = false;
|
||||||
|
foldmethod = "expr";
|
||||||
|
foldexpr = "v:lua.vim.treesitter.foldexpr()";
|
||||||
|
};
|
||||||
|
|
||||||
|
autocmds = [
|
||||||
|
{
|
||||||
|
event = ["LspAttach"];
|
||||||
|
pattern = ["*"];
|
||||||
|
desc = "User: Set LSP folding if client supports it";
|
||||||
|
callback = pkgs.lib.generators.mkLuaInline ''function(ctx) local client = assert(vim.lsp.get_client_by_id(ctx.data.client_id)) if client:supports_method("textDocument/foldingRange") then local win = vim.api.nvim_get_current_win() vim.wo[win][0].foldexpr = "v:lua.vim.lsp.foldexpr()" end end'';
|
||||||
|
}
|
||||||
|
];
|
||||||
theme = {
|
theme = {
|
||||||
name = "catppuccin";
|
name = "catppuccin";
|
||||||
style = "mocha";
|
style = "mocha";
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{...}: let
|
{ ... }:
|
||||||
|
let
|
||||||
mkKeymap = mode: key: action: desc: {
|
mkKeymap = mode: key: action: desc: {
|
||||||
inherit
|
inherit
|
||||||
mode
|
mode
|
||||||
|
@ -7,7 +8,8 @@
|
||||||
desc
|
desc
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
vim = {
|
vim = {
|
||||||
keymaps = [
|
keymaps = [
|
||||||
(mkKeymap "n" "<leader>e" ":lua require('snacks').explorer()<CR>" "File Explorer")
|
(mkKeymap "n" "<leader>e" ":lua require('snacks').explorer()<CR>" "File Explorer")
|
||||||
|
@ -17,7 +19,7 @@ in {
|
||||||
(mkKeymap "n" "<leader>ff" ":lua require('snacks').picker.files()<CR>" "Find File")
|
(mkKeymap "n" "<leader>ff" ":lua require('snacks').picker.files()<CR>" "Find File")
|
||||||
(mkKeymap "n" "<leader>fg" ":lua require('snacks').picker.grep()<CR>" "Grep Files")
|
(mkKeymap "n" "<leader>fg" ":lua require('snacks').picker.grep()<CR>" "Grep Files")
|
||||||
# Lsp
|
# Lsp
|
||||||
(mkKeymap "n" "K" ":lua vim.lsp.buf.hover()<CR>" "Hover docs")
|
(mkKeymap "n" "K" ":Lspsaga hover_doc<CR>" "Hover docs")
|
||||||
(mkKeymap "n" "lr" ":lua vim.lsp.buf.rename()<CR>" "Rename")
|
(mkKeymap "n" "lr" ":lua vim.lsp.buf.rename()<CR>" "Rename")
|
||||||
# (mkKeymap "n" "<leader>th" ":lua function() vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled()) end<CR>" "Toggle Inlay Hints")
|
# (mkKeymap "n" "<leader>th" ":lua function() vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled()) end<CR>" "Toggle Inlay Hints")
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,30 +1,60 @@
|
||||||
{
|
{
|
||||||
flake,
|
flake,
|
||||||
userConfig,
|
user,
|
||||||
|
host,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: let
|
||||||
|
darwin =
|
||||||
|
if host.darwin
|
||||||
|
then "darwin"
|
||||||
|
else "nixos";
|
||||||
|
flakePath = "/${
|
||||||
|
if host.darwin
|
||||||
|
then "Users"
|
||||||
|
else "home"
|
||||||
|
}/${user.username}/.dotfiles";
|
||||||
|
|
||||||
|
# BIG HACK DO NOT DO PLS
|
||||||
|
|
||||||
|
hostname =
|
||||||
|
if host.darwin
|
||||||
|
then "Natalies-MacBook-Air"
|
||||||
|
else "nixos";
|
||||||
|
in {
|
||||||
vim = {
|
vim = {
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
python312Packages.pylatexenc
|
python312Packages.pylatexenc
|
||||||
];
|
];
|
||||||
lsp = {
|
lsp = {
|
||||||
|
lightbulb.enable = false;
|
||||||
|
lspsaga = {
|
||||||
|
enable = true;
|
||||||
|
setupOpts = {
|
||||||
|
lightbulb = {
|
||||||
|
virtual_text = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
nvim-docs-view.enable = true;
|
nvim-docs-view.enable = true;
|
||||||
inlayHints.enable = true;
|
inlayHints.enable = true;
|
||||||
servers.nixd.settings = {
|
servers.nixd.settings.nixd = {
|
||||||
nixd.nixpkgs.expr = ''import "${flake.inputs.nixpkgs}" { }'';
|
nixpkgs.expr = ''import "<nixpkgs>" { }'';
|
||||||
options = {
|
options =
|
||||||
|
{
|
||||||
|
home-manager = {
|
||||||
|
expr = ''(builtins.getFlake "${flakePath}").${darwin}Configurations.${hostname}.options.home-manager.users.type.getSubOptions [ ]'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// pkgs.lib.optionalAttrs host.darwin {
|
||||||
|
nix-darwin = {
|
||||||
|
expr = ''(builtins.getFlake "${flakePath}").darwinConfigurations.${hostname}.options'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// pkgs.lib.optionalAttrs host.linux {
|
||||||
nixos = {
|
nixos = {
|
||||||
expr = ''
|
expr = ''(builtins.getFlake "${flakePath}").nixosConfigurations.${hostname}.options'';
|
||||||
(let pkgs = import "${flake.inputs.nixpkgs}" {}; inherit (pkgs) lib; in (lib.evalModules { modules = (import "${flake.inputs.nixpkgs}/nixos/modules/module-list.nix"); check = false;})).options'';
|
|
||||||
};
|
};
|
||||||
nix_darwin = {
|
|
||||||
expr = ''
|
|
||||||
(let pkgs = import "${flake.inputs.nixpkgs}" {}; inherit (pkgs) lib; in (lib.evalModules { modules = import ("${flake.inputs.darwin}/modules/module-list.nix"); check = false;})).options'';
|
|
||||||
};
|
|
||||||
home_manager = {
|
|
||||||
expr = ''
|
|
||||||
(let pkgs = import "${flake.inputs.nixpkgs}" {}; lib = import "${flake.inputs.home-manager}/modules/lib/stdlib-extended.nix" pkgs.lib; in (lib.evalModules { modules = (import "${flake.inputs.home-manager}/modules/modules.nix") { inherit lib pkgs; check = false; };})).options'';
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
mappings = {
|
mappings = {
|
||||||
|
@ -33,7 +63,7 @@
|
||||||
goToDefinition = "gd";
|
goToDefinition = "gd";
|
||||||
listReferences = "gr";
|
listReferences = "gr";
|
||||||
goToType = "gy";
|
goToType = "gy";
|
||||||
hover = "K";
|
hover = null;
|
||||||
nextDiagnostic = "<leader>d";
|
nextDiagnostic = "<leader>d";
|
||||||
openDiagnosticFloat = "<leader>df";
|
openDiagnosticFloat = "<leader>df";
|
||||||
renameSymbol = "rn";
|
renameSymbol = "rn";
|
||||||
|
@ -47,17 +77,19 @@
|
||||||
toggleFormatOnSave = null;
|
toggleFormatOnSave = null;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
languages = {
|
languages = {
|
||||||
enableDAP = true;
|
enableDAP = true;
|
||||||
# haskell.enable = true;
|
|
||||||
lua.enable = true;
|
lua.enable = true;
|
||||||
python.enable = true;
|
python.enable = true;
|
||||||
python.format.type = "ruff";
|
python.format.type = "ruff";
|
||||||
markdown.extensions.render-markdown-nvim = {
|
markdown = {
|
||||||
|
enable = true;
|
||||||
|
extensions.render-markdown-nvim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
formatter.conform-nvim = {
|
formatter.conform-nvim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
setupOpts = {
|
setupOpts = {
|
||||||
|
@ -84,9 +116,13 @@
|
||||||
additionalVimRegexHighlighting = true;
|
additionalVimRegexHighlighting = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
context.enable = true;
|
grammars = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
|
||||||
|
markdown_inline
|
||||||
|
markdown
|
||||||
|
];
|
||||||
|
|
||||||
highlight.enable = true;
|
highlight.enable = true;
|
||||||
indent.enable = true;
|
indent.enable = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
visuals = {
|
visuals = {
|
||||||
|
@ -98,13 +134,30 @@
|
||||||
};
|
};
|
||||||
autocomplete.blink-cmp = {
|
autocomplete.blink-cmp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# mappings = {
|
mappings = {
|
||||||
# };
|
close = null;
|
||||||
|
complete = null;
|
||||||
|
confirm = null;
|
||||||
|
next = null;
|
||||||
|
previous = null;
|
||||||
|
scrollDocsDown = null;
|
||||||
|
scrollDocsUp = null;
|
||||||
|
};
|
||||||
|
|
||||||
setupOpts = {
|
setupOpts = {
|
||||||
|
keymap = {
|
||||||
|
preset = "super-tab";
|
||||||
|
};
|
||||||
completion = {
|
completion = {
|
||||||
ghost_text.enabled = false;
|
ghost_text.enabled = false;
|
||||||
list.selection.preselect = true;
|
list.selection.preselect = true;
|
||||||
|
trigger = {
|
||||||
|
show_in_snippet = true;
|
||||||
|
};
|
||||||
|
accept.auto_brackets.enabled = true;
|
||||||
|
};
|
||||||
|
signature = {
|
||||||
|
enabled = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue