mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2025-12-12 11:36:20 +00:00
refactor: restructure
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
{
|
||||
username,
|
||||
osConfig,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
@@ -11,9 +10,9 @@
|
||||
homeDirectory = "/home/${username}";
|
||||
};
|
||||
imports = [
|
||||
inputs.nixvim.homeManagerModules.nixvim
|
||||
./programs/nixvim/presets
|
||||
./programs/neovide.nix
|
||||
./programs/nixvim.nix
|
||||
./programs/git.nix
|
||||
./packages
|
||||
./programs
|
||||
./services
|
||||
|
||||
@@ -40,6 +40,13 @@ in
|
||||
action.__raw = # lua
|
||||
"function() vim.diagnostic.open_float(nil) end";
|
||||
}
|
||||
{
|
||||
key = "<leader>sa";
|
||||
mode = "n";
|
||||
options.silent = true;
|
||||
action.__raw = # lua
|
||||
"require('actions-preview').code_actions";
|
||||
}
|
||||
{
|
||||
key = "<leader>sx";
|
||||
mode = "n";
|
||||
@@ -67,6 +74,7 @@ in
|
||||
}
|
||||
];
|
||||
plugins = {
|
||||
actions-preview.enable = true;
|
||||
lsp = {
|
||||
enable = true;
|
||||
inlayHints = false;
|
||||
@@ -79,7 +87,6 @@ in
|
||||
"<leader>si" = "lsp_implementations";
|
||||
"<leader>sw" = "lsp_workspace_symbols";
|
||||
"<leader>st" = "lsp_type_definitions";
|
||||
"<leader>sa" = "quickfix";
|
||||
};
|
||||
};
|
||||
inc-rename.enable = true;
|
||||
@@ -1,9 +1,15 @@
|
||||
{ lib, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
hostname,
|
||||
username,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.programs.nixvim = lib.mkOption {
|
||||
type = pkgs.lib.types.submoduleWith {
|
||||
specialArgs = {
|
||||
inherit pkgs;
|
||||
inherit pkgs hostname username;
|
||||
};
|
||||
modules = [
|
||||
./aerial.nix
|
||||
48
modules/home-manager/modules/nixvim/languages/nix.nix
Normal file
48
modules/home-manager/modules/nixvim/languages/nix.nix
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
hostname,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.presets.languages.nix;
|
||||
in
|
||||
{
|
||||
options.presets.languages.nix = {
|
||||
enable = lib.mkEnableOption "Nix";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
plugins = {
|
||||
conform-nvim.settings.formatters_by_ft.nix = [ "nixfmt" ];
|
||||
lsp.servers = {
|
||||
nixd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
nixpkgs.expr = # nix
|
||||
"import (builtins.getFlake (builtins.toString ./.)).inputs.nixpkgs { }";
|
||||
formatting.command = [ "nixfmt" ];
|
||||
options = {
|
||||
nixos.expr = # nix
|
||||
"(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${hostname}.options";
|
||||
home-manager.expr = # nix
|
||||
"(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${hostname}.options.home-manager.users.type.getSubOptions []";
|
||||
};
|
||||
};
|
||||
};
|
||||
nil_ls = {
|
||||
enable = false;
|
||||
settings = {
|
||||
formatting.command = [ "nixfmt" ];
|
||||
nix = {
|
||||
maxMemoryMB = 8192;
|
||||
flake.autoEvalInputs = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
extraPackages = [ pkgs.nixfmt-rfc-style ];
|
||||
};
|
||||
}
|
||||
@@ -14,8 +14,6 @@
|
||||
pinentry = pkgs.pinentry-gnome3;
|
||||
};
|
||||
};
|
||||
git = import ./git.nix;
|
||||
nixvim = import ./nixvim { inherit pkgs; };
|
||||
gpg.enable = true;
|
||||
btop = {
|
||||
enable = true;
|
||||
|
||||
@@ -1,23 +1,26 @@
|
||||
{ ... }:
|
||||
{
|
||||
enable = true;
|
||||
userName = "Thea Schöbl";
|
||||
userEmail = "dev@theaninova.de";
|
||||
signing = {
|
||||
key = "6C9E EFC5 1AE0 0131 78DE B9C8 68FF FB1E C187 88CA";
|
||||
signByDefault = true;
|
||||
};
|
||||
extraConfig = {
|
||||
pull.rebase = true;
|
||||
init.defaultBranch = "main";
|
||||
merge = {
|
||||
tool = "nvim-mergetool";
|
||||
conflictstyle = "diff3";
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "Thea Schöbl";
|
||||
userEmail = "dev@theaninova.de";
|
||||
signing = {
|
||||
key = "6C9E EFC5 1AE0 0131 78DE B9C8 68FF FB1E C187 88CA";
|
||||
signByDefault = true;
|
||||
};
|
||||
mergetool.nvim-mergetool = {
|
||||
cmd = # sh
|
||||
''nvim -f -c "MergetoolStart" "$MERGED" "$BASE" "$LOCAL" "$REMOTE"'';
|
||||
trustExitCode = true;
|
||||
extraConfig = {
|
||||
pull.rebase = true;
|
||||
init.defaultBranch = "main";
|
||||
merge = {
|
||||
tool = "nvim-mergetool";
|
||||
conflictstyle = "diff3";
|
||||
};
|
||||
mergetool.nvim-mergetool = {
|
||||
cmd = # sh
|
||||
''nvim -f -c "MergetoolStart" "$MERGED" "$BASE" "$LOCAL" "$REMOTE"'';
|
||||
trustExitCode = true;
|
||||
};
|
||||
mergetool.prompt = false;
|
||||
};
|
||||
mergetool.prompt = false;
|
||||
};
|
||||
}
|
||||
|
||||
116
modules/home-manager/programs/nixvim.nix
Normal file
116
modules/home-manager/programs/nixvim.nix
Normal file
@@ -0,0 +1,116 @@
|
||||
{ ... }:
|
||||
{
|
||||
programs.nixvim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
vimAlias = true;
|
||||
|
||||
opts = {
|
||||
number = true;
|
||||
relativenumber = true;
|
||||
|
||||
tabstop = 2;
|
||||
softtabstop = 2;
|
||||
shiftwidth = 2;
|
||||
expandtab = true;
|
||||
smartindent = true;
|
||||
signcolumn = "yes";
|
||||
|
||||
scrolloff = 12;
|
||||
|
||||
hlsearch = false;
|
||||
incsearch = true;
|
||||
|
||||
updatetime = 50;
|
||||
|
||||
fillchars.eob = " ";
|
||||
};
|
||||
clipboard = {
|
||||
register = "unnamedplus";
|
||||
providers.wl-copy.enable = true;
|
||||
};
|
||||
globals.mapleader = ";";
|
||||
|
||||
presets = {
|
||||
auto-save.enable = true;
|
||||
auto-format.enable = true;
|
||||
harpoon.enable = false;
|
||||
lazygit.enable = true;
|
||||
mergetool.enable = true;
|
||||
trouble.enable = false;
|
||||
undotree.enable = true;
|
||||
aerial.enable = true;
|
||||
base = {
|
||||
completion = {
|
||||
enable = true;
|
||||
copilot = true;
|
||||
};
|
||||
diagnostics.enable = true;
|
||||
coverage.enable = true;
|
||||
find.enable = true;
|
||||
formatting = {
|
||||
enable = true;
|
||||
prettier = true;
|
||||
};
|
||||
spellcheck.enable = true;
|
||||
status-line.enable = true;
|
||||
syntax.enable = true;
|
||||
tree.enable = true;
|
||||
};
|
||||
languages = {
|
||||
angular.enable = true;
|
||||
c = {
|
||||
enable = true;
|
||||
};
|
||||
css = {
|
||||
enable = true;
|
||||
stylelint = true;
|
||||
};
|
||||
dart.enable = true;
|
||||
js = {
|
||||
enable = true;
|
||||
eslint = true;
|
||||
npm = true;
|
||||
};
|
||||
lua.enable = true;
|
||||
nix.enable = true;
|
||||
python.enable = true;
|
||||
rust.enable = true;
|
||||
shell.enable = true;
|
||||
svelte.enable = true;
|
||||
};
|
||||
remaps = {
|
||||
half-page-scroll.enable = true;
|
||||
no-accidental-macro.enable = true;
|
||||
paste-keep-buffer.enable = true;
|
||||
wrapped-line-nav.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
plugins = {
|
||||
vim-surround.enable = true;
|
||||
which-key.enable = true;
|
||||
schemastore.enable = true;
|
||||
comment.enable = true;
|
||||
debugprint.enable = true;
|
||||
todo-comments.enable = true;
|
||||
treesitter-context = {
|
||||
enable = false; # TODO: looks weird with Neovide
|
||||
settings = {
|
||||
line_numbers = false;
|
||||
};
|
||||
};
|
||||
|
||||
lsp.servers = {
|
||||
html.enable = true;
|
||||
svelte.enable = true;
|
||||
|
||||
dockerls.enable = true;
|
||||
|
||||
yamlls.enable = true;
|
||||
jsonls.enable = true;
|
||||
taplo.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,115 +0,0 @@
|
||||
{ pkgs }:
|
||||
{
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
vimAlias = true;
|
||||
|
||||
opts = {
|
||||
number = true;
|
||||
relativenumber = true;
|
||||
|
||||
tabstop = 2;
|
||||
softtabstop = 2;
|
||||
shiftwidth = 2;
|
||||
expandtab = true;
|
||||
smartindent = true;
|
||||
signcolumn = "yes";
|
||||
|
||||
scrolloff = 12;
|
||||
|
||||
hlsearch = false;
|
||||
incsearch = true;
|
||||
|
||||
updatetime = 50;
|
||||
|
||||
fillchars.eob = " ";
|
||||
};
|
||||
clipboard = {
|
||||
register = "unnamedplus";
|
||||
providers.wl-copy.enable = true;
|
||||
};
|
||||
globals.mapleader = ";";
|
||||
|
||||
presets = {
|
||||
auto-save.enable = true;
|
||||
auto-format.enable = true;
|
||||
# harpoon.enable = true;
|
||||
lazygit.enable = true;
|
||||
mergetool.enable = true;
|
||||
trouble.enable = true;
|
||||
undotree.enable = true;
|
||||
aerial.enable = true;
|
||||
base = {
|
||||
completion = {
|
||||
enable = true;
|
||||
copilot = true;
|
||||
};
|
||||
diagnostics.enable = true;
|
||||
coverage.enable = true;
|
||||
find.enable = true;
|
||||
formatting = {
|
||||
enable = true;
|
||||
prettier = true;
|
||||
};
|
||||
spellcheck.enable = false;
|
||||
status-line.enable = true;
|
||||
syntax.enable = true;
|
||||
tree.enable = true;
|
||||
};
|
||||
languages = {
|
||||
angular.enable = true;
|
||||
c = {
|
||||
enable = true;
|
||||
# cppcheck = true;
|
||||
};
|
||||
css = {
|
||||
enable = true;
|
||||
stylelint = true;
|
||||
};
|
||||
dart.enable = true;
|
||||
js = {
|
||||
enable = true;
|
||||
eslint = true;
|
||||
npm = true;
|
||||
};
|
||||
lua.enable = true;
|
||||
nix.enable = true;
|
||||
python.enable = true;
|
||||
rust.enable = true;
|
||||
shell.enable = true;
|
||||
svelte.enable = true;
|
||||
};
|
||||
remaps = {
|
||||
half-page-scroll.enable = true;
|
||||
no-accidental-macro.enable = true;
|
||||
paste-keep-buffer.enable = true;
|
||||
wrapped-line-nav.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
plugins = {
|
||||
vim-surround.enable = true;
|
||||
which-key.enable = true;
|
||||
schemastore.enable = true;
|
||||
comment.enable = true;
|
||||
debugprint.enable = true;
|
||||
todo-comments.enable = true;
|
||||
treesitter-context = {
|
||||
enable = false; # TODO: looks weird with Neovide
|
||||
settings = {
|
||||
line_numbers = false;
|
||||
};
|
||||
};
|
||||
|
||||
lsp.servers = {
|
||||
html.enable = true;
|
||||
svelte.enable = true;
|
||||
|
||||
dockerls.enable = true;
|
||||
|
||||
yamlls.enable = true;
|
||||
jsonls.enable = true;
|
||||
taplo.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.presets.languages.nix;
|
||||
in
|
||||
{
|
||||
options.presets.languages.nix = {
|
||||
enable = lib.mkEnableOption "Nix";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
plugins = {
|
||||
conform-nvim.settings.formatters_by_ft.nix = [ "nixfmt" ];
|
||||
none-ls = {
|
||||
enable = true;
|
||||
sources.diagnostics.statix.enable = true;
|
||||
};
|
||||
lsp.servers.nil_ls.enable = true;
|
||||
nix.enable = true;
|
||||
};
|
||||
extraPackages = [ pkgs.nixfmt-rfc-style ];
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user