mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2026-02-17 05:52:43 +00:00
refactor: restructure
This commit is contained in:
13
flake.nix
13
flake.nix
@@ -86,20 +86,25 @@
|
|||||||
if config.hardware.nvidia.prime.offload.enable then GPUOffloadApp pkg desktopName else pkg;
|
if config.hardware.nvidia.prime.offload.enable then GPUOffloadApp pkg desktopName else pkg;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
inherit username gpu-offload;
|
inherit username hostname gpu-offload;
|
||||||
};
|
};
|
||||||
|
nix.nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
|
||||||
networking.hostName = hostname;
|
networking.hostName = hostname;
|
||||||
services.flatpak.enable = true;
|
services.flatpak.enable = true;
|
||||||
home-manager = {
|
home-manager = {
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit username inputs;
|
inherit username hostname inputs;
|
||||||
};
|
};
|
||||||
|
sharedModules = [
|
||||||
|
matugen.homeManagerModules.default
|
||||||
|
nix-flatpak.homeManagerModules.nix-flatpak
|
||||||
|
inputs.nixvim.homeManagerModules.nixvim
|
||||||
|
./modules/home-manager/modules/nixvim
|
||||||
|
];
|
||||||
users.${username} = {
|
users.${username} = {
|
||||||
imports = [
|
imports = [
|
||||||
matugen.homeManagerModules.default
|
|
||||||
nix-flatpak.homeManagerModules.nix-flatpak
|
|
||||||
./modules/home-manager
|
./modules/home-manager
|
||||||
./hosts/${hostname}/home.nix
|
./hosts/${hostname}/home.nix
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
username,
|
username,
|
||||||
osConfig,
|
osConfig,
|
||||||
inputs,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
@@ -11,9 +10,9 @@
|
|||||||
homeDirectory = "/home/${username}";
|
homeDirectory = "/home/${username}";
|
||||||
};
|
};
|
||||||
imports = [
|
imports = [
|
||||||
inputs.nixvim.homeManagerModules.nixvim
|
|
||||||
./programs/nixvim/presets
|
|
||||||
./programs/neovide.nix
|
./programs/neovide.nix
|
||||||
|
./programs/nixvim.nix
|
||||||
|
./programs/git.nix
|
||||||
./packages
|
./packages
|
||||||
./programs
|
./programs
|
||||||
./services
|
./services
|
||||||
|
|||||||
@@ -40,6 +40,13 @@ in
|
|||||||
action.__raw = # lua
|
action.__raw = # lua
|
||||||
"function() vim.diagnostic.open_float(nil) end";
|
"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";
|
key = "<leader>sx";
|
||||||
mode = "n";
|
mode = "n";
|
||||||
@@ -67,6 +74,7 @@ in
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
plugins = {
|
plugins = {
|
||||||
|
actions-preview.enable = true;
|
||||||
lsp = {
|
lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
inlayHints = false;
|
inlayHints = false;
|
||||||
@@ -79,7 +87,6 @@ in
|
|||||||
"<leader>si" = "lsp_implementations";
|
"<leader>si" = "lsp_implementations";
|
||||||
"<leader>sw" = "lsp_workspace_symbols";
|
"<leader>sw" = "lsp_workspace_symbols";
|
||||||
"<leader>st" = "lsp_type_definitions";
|
"<leader>st" = "lsp_type_definitions";
|
||||||
"<leader>sa" = "quickfix";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
inc-rename.enable = true;
|
inc-rename.enable = true;
|
||||||
@@ -1,9 +1,15 @@
|
|||||||
{ lib, pkgs, ... }:
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
hostname,
|
||||||
|
username,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
options.programs.nixvim = lib.mkOption {
|
options.programs.nixvim = lib.mkOption {
|
||||||
type = pkgs.lib.types.submoduleWith {
|
type = pkgs.lib.types.submoduleWith {
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit pkgs;
|
inherit pkgs hostname username;
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
./aerial.nix
|
./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;
|
pinentry = pkgs.pinentry-gnome3;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
git = import ./git.nix;
|
|
||||||
nixvim = import ./nixvim { inherit pkgs; };
|
|
||||||
gpg.enable = true;
|
gpg.enable = true;
|
||||||
btop = {
|
btop = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -1,23 +1,26 @@
|
|||||||
|
{ ... }:
|
||||||
{
|
{
|
||||||
enable = true;
|
programs.git = {
|
||||||
userName = "Thea Schöbl";
|
enable = true;
|
||||||
userEmail = "dev@theaninova.de";
|
userName = "Thea Schöbl";
|
||||||
signing = {
|
userEmail = "dev@theaninova.de";
|
||||||
key = "6C9E EFC5 1AE0 0131 78DE B9C8 68FF FB1E C187 88CA";
|
signing = {
|
||||||
signByDefault = true;
|
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";
|
|
||||||
};
|
};
|
||||||
mergetool.nvim-mergetool = {
|
extraConfig = {
|
||||||
cmd = # sh
|
pull.rebase = true;
|
||||||
''nvim -f -c "MergetoolStart" "$MERGED" "$BASE" "$LOCAL" "$REMOTE"'';
|
init.defaultBranch = "main";
|
||||||
trustExitCode = true;
|
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