mirror of
https://github.com/itme-brain/nixos.git
synced 2026-03-23 16:29:42 -04:00
changed imports to mkModules
This commit is contained in:
parent
649d9e83b6
commit
5c3d410aa0
34 changed files with 67 additions and 448 deletions
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
{
|
||||
imports = [
|
||||
../../../user/configs
|
||||
../../../user/config
|
||||
./hardware.nix
|
||||
./system.nix
|
||||
];
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
{
|
||||
imports = [
|
||||
../../../user/configs
|
||||
../../../user/config
|
||||
./hardware.nix
|
||||
./system.nix
|
||||
];
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
{
|
||||
imports = [
|
||||
../../../user/configs
|
||||
../../../user/config
|
||||
./hardware.nix
|
||||
./system.nix
|
||||
];
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
{
|
||||
imports = [
|
||||
../../../user/configs
|
||||
../../../user/config
|
||||
./system.nix
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ let
|
|||
|
||||
in
|
||||
{ options.modules.system.bitcoin = { enable = mkEnableOption "Bitcoin Server"; };
|
||||
imports = [ ./modules ];
|
||||
config = mkIf cfg.enable {
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
|
|
|
|||
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
./electrum
|
||||
];
|
||||
}
|
||||
|
|
@ -1,5 +1,32 @@
|
|||
let
|
||||
mkModules = dir: isRoot:
|
||||
let
|
||||
entries = builtins.readDir dir;
|
||||
names = builtins.attrNames entries;
|
||||
|
||||
isModuleDir = path:
|
||||
builtins.pathExists path &&
|
||||
builtins.readFileType path == "directory" &&
|
||||
builtins.baseNameOf path != "config";
|
||||
isModule = file: file == "default.nix";
|
||||
isNix = file: builtins.match ".*\\.nix" file != null && file != "default.nix";
|
||||
|
||||
in
|
||||
builtins.concatMap (name:
|
||||
let
|
||||
path = "${dir}/${name}";
|
||||
in
|
||||
if isModuleDir path then
|
||||
mkModules path false
|
||||
else if isModule name && !isRoot then
|
||||
[dir]
|
||||
else if isNix name then
|
||||
[path]
|
||||
else
|
||||
[]
|
||||
) names;
|
||||
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./bitcoin
|
||||
];
|
||||
imports = mkModules ./. true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,35 @@
|
|||
let
|
||||
mkModules = dir: isRoot:
|
||||
let
|
||||
entries = builtins.readDir dir;
|
||||
names = builtins.attrNames entries;
|
||||
|
||||
isModuleDir = path:
|
||||
builtins.pathExists path &&
|
||||
builtins.readFileType path == "directory" &&
|
||||
builtins.baseNameOf path != "config";
|
||||
|
||||
isModule = file: file == "default.nix";
|
||||
isNix = file: builtins.match ".*\\.nix" file != null && file != "default.nix";
|
||||
|
||||
in
|
||||
builtins.concatMap (name:
|
||||
let
|
||||
path = "${dir}/${name}";
|
||||
in
|
||||
if isModuleDir path then
|
||||
mkModules path false
|
||||
else if isModule name && !isRoot then
|
||||
[ dir ]
|
||||
else if isNix name then
|
||||
[ path ]
|
||||
else
|
||||
[]
|
||||
) names;
|
||||
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./configs
|
||||
./modules
|
||||
];
|
||||
./config
|
||||
] ++ mkModules ./. true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
./bash
|
||||
./git
|
||||
./gui
|
||||
./security
|
||||
./tmux
|
||||
./utils
|
||||
];
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
./wm
|
||||
./modules
|
||||
];
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
./chromium
|
||||
./firefox
|
||||
#./tor
|
||||
];
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
./alacritty
|
||||
./browsers
|
||||
./corn
|
||||
./fun
|
||||
./utils
|
||||
./writing
|
||||
];
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
./sway
|
||||
./hyprland
|
||||
];
|
||||
}
|
||||
|
|
@ -12,7 +12,6 @@ let
|
|||
|
||||
in
|
||||
{ options.modules.user.security = { enable = mkEnableOption "Enable security module"; };
|
||||
imports = [ ./modules ];
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
pass
|
||||
|
|
|
|||
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
./gpg
|
||||
];
|
||||
}
|
||||
|
|
@ -6,7 +6,6 @@ let
|
|||
|
||||
in
|
||||
{ options.modules.user.utils = { enable = mkEnableOption "user.utils"; };
|
||||
imports = [ ./modules ];
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
wget curl fastfetch
|
||||
|
|
|
|||
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
./dev
|
||||
./email
|
||||
./irc
|
||||
./neovim
|
||||
./vim
|
||||
];
|
||||
}
|
||||
|
|
@ -6,7 +6,6 @@ let
|
|||
|
||||
in
|
||||
{ options.modules.user.utils.dev = { enable = mkEnableOption "user.utils.dev"; };
|
||||
imports = [ ./modules ];
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
nix-init
|
||||
|
|
|
|||
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
./pcb
|
||||
];
|
||||
}
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
-- bootstrap lazy.nvim, LazyVim and your plugins
|
||||
require("config.lazy")
|
||||
|
|
@ -1,130 +0,0 @@
|
|||
-- Autocmds are automatically loaded on the VeryLazy event
|
||||
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
|
||||
-- Add any additional autocmds here
|
||||
|
||||
require("which-key").add({
|
||||
{ "<leader>wd", "<cmd>bd<CR> | close<CR>", mode = "n", desc = "Delete window & buffer" },
|
||||
{ "<leader>wD", "<cmd>close<CR>", mode = "n", desc = "Delete window" },
|
||||
{ "<leader>t", "<cmd>:new | setlocal nonumber norelativenumber | resize 10 | terminal<CR>", mode = "n", desc = "Open Terminal" }
|
||||
})
|
||||
|
||||
require("lualine").setup({
|
||||
options = {
|
||||
theme = 'iceberg_dark'
|
||||
}
|
||||
})
|
||||
|
||||
local lsp = require("lsp-zero").preset({})
|
||||
local cmp_nvim_lsp = require "cmp_nvim_lsp"
|
||||
local cmp = require("cmp")
|
||||
|
||||
-- https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
|
||||
lsp.setup_servers({
|
||||
"tsserver",
|
||||
"pyright",
|
||||
"nil_ls",
|
||||
"cssls",
|
||||
"html",
|
||||
"lua_ls",
|
||||
"marksman",
|
||||
"tailwindcss",
|
||||
"bashls",
|
||||
"clangd",
|
||||
"jsonls",
|
||||
"vuels"
|
||||
--"arduino-language-server"
|
||||
})
|
||||
lsp.setup()
|
||||
|
||||
require("lspconfig").lua_ls.setup(lsp.nvim_lua_ls())
|
||||
require("lspconfig").clangd.setup {
|
||||
capabilities = cmp_nvim_lsp.default_capabilities(),
|
||||
cmd = {
|
||||
"clangd",
|
||||
"--offset-encoding=utf-16",
|
||||
},
|
||||
}
|
||||
require("lspconfig").nil_ls.setup {
|
||||
settings = {
|
||||
["nil"] = {
|
||||
nix = {
|
||||
flake = {
|
||||
autoArchive = true,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cmp.setup({
|
||||
enabled = function()
|
||||
-- disable completion in comments
|
||||
local context = require("cmp.config.context")
|
||||
-- keep command mode completion enabled when cursor is in a comment
|
||||
if vim.api.nvim_get_mode().mode == "c" then
|
||||
return true
|
||||
else
|
||||
return not context.in_treesitter_capture("comment") and not context.in_syntax_group("comment")
|
||||
end
|
||||
end,
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require("luasnip").lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
sources = {
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "luasnip" },
|
||||
-- other sources...
|
||||
},
|
||||
formatting = {
|
||||
format = function(entry, vim_item)
|
||||
vim_item.menu = ""
|
||||
return vim_item
|
||||
end,
|
||||
},
|
||||
mapping = {
|
||||
-- https://github.com/hrsh7th/nvim-cmp/wiki/Example-mappings
|
||||
["<C-p>"] = cmp.mapping.select_next_item(),
|
||||
["<C-n>"] = cmp.mapping.select_prev_item(),
|
||||
["<C-d>"] = cmp.mapping.scroll_docs(-4),
|
||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||
["<C-e>"] = cmp.mapping.abort(),
|
||||
["<C-y>"] = cmp.mapping.confirm(),
|
||||
["<CR>"] = cmp.mapping(function(fallback)
|
||||
fallback()
|
||||
end, { "i", "s" }),
|
||||
},
|
||||
})
|
||||
|
||||
require('lualine').setup {
|
||||
options = {
|
||||
theme = 'iceberg_dark',
|
||||
component_separators = { left = '>', right = '|' },
|
||||
section_separators = ''
|
||||
}
|
||||
}
|
||||
|
||||
--local dap = require("dap")
|
||||
--dap.adapters.haskell = {
|
||||
-- type = "executable",
|
||||
-- command = "haskell-debug-adapter",
|
||||
-- args = { "--hackage-version=0.0.33.0" },
|
||||
--}
|
||||
--dap.configurations.haskell = {
|
||||
-- {
|
||||
-- type = "haskell",
|
||||
-- request = "launch",
|
||||
-- name = "Debug",
|
||||
-- workspace = "${workspaceFolder}",
|
||||
-- startup = "${file}",
|
||||
-- stopOnEntry = true,
|
||||
-- logFile = vim.fn.stdpath("data") .. "/haskell-dap.log",
|
||||
-- logLevel = "WARNING",
|
||||
-- ghciEnv = vim.empty_dict(),
|
||||
-- ghciPrompt = "λ: ",
|
||||
-- -- Adjust the prompt to the prompt you see when you invoke the ghci command below
|
||||
-- ghciInitialPrompt = "λ: ",
|
||||
-- ghciCmd = "stack ghci --test --no-load --no-build --main-is TARGET --ghci-options -fprint-evld-with-show",
|
||||
-- },
|
||||
--}
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
-- Keymaps are automatically loaded on the VeryLazy event
|
||||
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||
-- Add any additional keymaps here
|
||||
|
||||
vim.keymap.set("n", "<C-U>", "<C-U>zz", { silent = true })
|
||||
vim.keymap.set("n", "<C-D>", "<C-D>zz", { silent = true })
|
||||
vim.keymap.set("n", "H", ":bprev<CR>", { silent = true })
|
||||
vim.keymap.set("n", "L", ":bnext<CR>", { silent = true })
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not vim.loop.fs_stat(lazypath) then
|
||||
-- bootstrap lazy.nvim
|
||||
-- stylua: ignore
|
||||
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
|
||||
end
|
||||
vim.opt.rtp:prepend(vim.env.LAZY or lazypath)
|
||||
|
||||
require("lazy").setup({
|
||||
--config = function ()
|
||||
-- vim.cmd([[
|
||||
-- hi LazyNormal guibg=#060810 ctermbg=#060810
|
||||
-- hi LazyProp guibg=NONE ctermbg=NONE
|
||||
-- ]])
|
||||
--end,
|
||||
spec = {
|
||||
-- add LazyVim and import its plugins
|
||||
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||
-- import any extras modules here
|
||||
{ import = "lazyvim.plugins.extras.dap.core" },
|
||||
-- import/override with your plugins
|
||||
{ import = "plugins" },
|
||||
},
|
||||
defaults = {
|
||||
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
||||
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
|
||||
lazy = false,
|
||||
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
|
||||
-- have outdated releases, which may break your Neovim install.
|
||||
version = false, -- always use the latest git commit
|
||||
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
||||
},
|
||||
install = { colorscheme = { "github-theme" } },
|
||||
checker = { enabled = false }, -- automatically check for plugin updates
|
||||
performance = {
|
||||
rtp = {
|
||||
-- disable some rtp plugins
|
||||
disabled_plugins = {
|
||||
"gzip",
|
||||
-- "matchit",
|
||||
-- "matchparen",
|
||||
-- "netrwPlugin",
|
||||
"tarPlugin",
|
||||
"tohtml",
|
||||
"tutor",
|
||||
"zipPlugin",
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
-- Options are automatically loaded before lazy.nvim startup
|
||||
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||
-- Add any additional options here
|
||||
|
||||
vim.opt.tabstop = 2
|
||||
vim.opt.shiftwidth = 2
|
||||
vim.opt.softtabstop = 2
|
||||
vim.opt.expandtab = true
|
||||
vim.opt.smartindent = true
|
||||
|
||||
vim.cmd([[
|
||||
autocmd FileType c,cpp,haskell,python setlocal tabstop=4 shiftwidth=4 softtabstop=4
|
||||
]])
|
||||
|
||||
vim.cmd([[
|
||||
au BufRead,BufNewFile *.purs set filetype=purescript
|
||||
]])
|
||||
|
||||
vim.opt.ignorecase = true
|
||||
vim.opt.smartcase = true
|
||||
|
||||
vim.opt.swapfile = false
|
||||
vim.opt.backup = false
|
||||
vim.opt.undofile = true
|
||||
|
||||
vim.o.termguicolors = true
|
||||
vim.opt.guicursor = "n-v-c:block,i:block,r:block"
|
||||
vim.g.autoformat = false
|
||||
|
||||
vim.cmd([[highlight PmenuSel guifg=#53565d guibg=#f0c981]])
|
||||
|
|
@ -1,100 +0,0 @@
|
|||
return {
|
||||
{
|
||||
"chriskempson/base16-vim",
|
||||
config = function()
|
||||
vim.cmd("colorscheme base16-onedark")
|
||||
vim.cmd([[
|
||||
hi Normal guibg=NONE ctermbg=NONE
|
||||
hi NonText guibg=NONE ctermbg=NONE
|
||||
hi LineNr guibg=NONE ctermbg=NONE
|
||||
hi CursorLine guibg=NONE ctermbg=NONE
|
||||
hi CursorLineNr guibg=NONE ctermbg=NONE guifg=#E5C07B ctermfg=Yellow cterm=bold
|
||||
hi GitGutterChange guibg=NONE ctermbg=NONE
|
||||
hi GitGutterAdd guibg=NONE ctermbg=NONE
|
||||
hi GitGutterDelete guibg=NONE ctermbg=NONE
|
||||
hi WinSeparator guibg=NONE ctermbg=NONE
|
||||
"hi LazyNormal guibg=#060810 ctermbg=#060810
|
||||
"hi LazyProp guibg=NONE ctermbg=NONE
|
||||
"hi WhichKeyNormal guibg=#060810 ctermbg=#060810
|
||||
]])
|
||||
end,
|
||||
},
|
||||
|
||||
{
|
||||
"VonHeikemen/lsp-zero.nvim",
|
||||
branch = "v2.x",
|
||||
dependencies = {
|
||||
{ "neovim/nvim-lspconfig" },
|
||||
|
||||
{ "hrsh7th/nvim-cmp" },
|
||||
{ "hrsh7th/cmp-buffer" },
|
||||
{ "hrsh7th/cmp-path" },
|
||||
{ "hrsh7th/cmp-nvim-lsp" },
|
||||
|
||||
{ "L3MON4D3/LuaSnip" },
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter-context",
|
||||
config = function()
|
||||
require("treesitter-context").setup({
|
||||
enable = true, -- Enable this plugin (Can be enabled/disabled later via commands)
|
||||
max_lines = 0, -- How many lines the window should span. Values <= 0 mean no limit.
|
||||
min_window_height = 0, -- Minimum editor window height to enable context. Values <= 0 mean no limit.
|
||||
line_numbers = false,
|
||||
multiline_threshold = 20, -- Maximum number of lines to collapse for a single context line
|
||||
trim_scope = "outer", -- Which context lines to discard if `max_lines` is exceeded. Choices: 'inner', 'outer'
|
||||
mode = "cursor", -- Line used to calculate context. Choices: 'cursor', 'topline'
|
||||
-- Separator between context and content. Should be a single character string, like '-'.
|
||||
-- When separator is set, the context will only show up when there are at least 2 lines above cursorline.
|
||||
separator = "-",
|
||||
zindex = 20, -- The Z-index of the context window
|
||||
on_attach = nil, -- (fun(buf: integer): boolean) return false to disable attaching
|
||||
})
|
||||
end,
|
||||
},
|
||||
|
||||
{
|
||||
"nvim-neo-tree/neo-tree.nvim",
|
||||
config = function()
|
||||
require("neo-tree").setup({
|
||||
window = {
|
||||
position = "left",
|
||||
width = 20,
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
|
||||
{ "NoahTheDuke/vim-just", ft = { "just" } },
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
version = "v2.*",
|
||||
build = "make install_jsregexp",
|
||||
--dependencies = { "rafamadriz/friendly-snippets" },
|
||||
},
|
||||
|
||||
--[[
|
||||
{
|
||||
"jackMort/ChatGPT.nvim",
|
||||
event = "VeryLazy",
|
||||
config = function()
|
||||
require("chatgpt").setup({
|
||||
api_key_cmd = "pass show api/chatgpt-apikey",
|
||||
})
|
||||
end,
|
||||
dependencies = {
|
||||
"MunifTanjim/nui.nvim",
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-telescope/telescope.nvim",
|
||||
},
|
||||
},
|
||||
--]]
|
||||
|
||||
{ "williamboman/mason.nvim", enabled = false },
|
||||
{ "williamboman/mason-lspconfig.nvim", enabled = false },
|
||||
{ "jay-babu/mason-nvim-dap.nvim", enabled = false },
|
||||
{ "catppuccin/nvim", enabled = false },
|
||||
{ "folke/flash.nvim", enabled = false },
|
||||
}
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
lsp = with pkgs; [
|
||||
nil
|
||||
marksman
|
||||
sumneko-lua-language-server stylua
|
||||
nodePackages."@tailwindcss/language-server"
|
||||
clang-tools
|
||||
#arduino-language-server
|
||||
];
|
||||
|
||||
lsp' = with pkgs.nodePackages; [
|
||||
typescript-language-server
|
||||
vscode-langservers-extracted
|
||||
bash-language-server
|
||||
pyright
|
||||
vls
|
||||
];
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
lazygit
|
||||
gcc
|
||||
];
|
||||
|
||||
in
|
||||
extraPackages ++ lsp ++ lsp'
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.user.utils.neovim;
|
||||
|
||||
in
|
||||
{ options.modules.user.utils.neovim = { enable = mkEnableOption "user.utils.neovim"; };
|
||||
config = mkIf cfg.enable {
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
vimAlias = true;
|
||||
vimdiffAlias = true;
|
||||
extraPackages = import ./config/pkgs.nix { inherit pkgs; };
|
||||
};
|
||||
|
||||
home.file.".config/nvim" = {
|
||||
source = ./config/lazyvim;
|
||||
recursive = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1 +1 @@
|
|||
src/user/configs/
|
||||
src/user/config/
|
||||
Loading…
Add table
Add a link
Reference in a new issue