changed imports to mkModules

This commit is contained in:
Bryan Ramos 2024-11-07 15:41:50 -05:00
parent 649d9e83b6
commit 5c3d410aa0
Signed by: bryan
GPG key ID: 6ABDCD144D6643C8
34 changed files with 67 additions and 448 deletions

View file

@ -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;
}

View file

@ -1,10 +0,0 @@
{
imports = [
./bash
./git
./gui
./security
./tmux
./utils
];
}

View file

@ -1,6 +0,0 @@
{
imports = [
./wm
./modules
];
}

View file

@ -1,7 +0,0 @@
{
imports = [
./chromium
./firefox
#./tor
];
}

View file

@ -1,10 +0,0 @@
{
imports = [
./alacritty
./browsers
./corn
./fun
./utils
./writing
];
}

View file

@ -1,6 +0,0 @@
{
imports = [
./sway
./hyprland
];
}

View file

@ -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

View file

@ -1,5 +0,0 @@
{
imports = [
./gpg
];
}

View file

@ -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

View file

@ -1,9 +0,0 @@
{
imports = [
./dev
./email
./irc
./neovim
./vim
];
}

View file

@ -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

View file

@ -1,5 +0,0 @@
{
imports = [
./pcb
];
}

View file

@ -1,2 +0,0 @@
-- bootstrap lazy.nvim, LazyVim and your plugins
require("config.lazy")

View file

@ -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",
-- },
--}

View file

@ -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 })

View file

@ -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",
},
},
},
})

View file

@ -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]])

View file

@ -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 },
}

View file

@ -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'

View file

@ -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;
};
};
}