From f7168c0b2935d5940ec5ebea30976d234367084d Mon Sep 17 00:00:00 2001 From: TheGeneralist <180094941+thegeneralist01@users.noreply.github.com> Date: Sun, 12 Oct 2025 16:44:42 +0200 Subject: [PATCH] small changes --- modules/common/ghostty.nix | 2 +- modules/common/rust.nix | 3 + modules/darwin/karabiner.nix | 110 ++-- modules/darwin/packages.nix | 2 +- .../nvim/lua/thegeneralist/lazy/blink.lua | 2 - .../nvim/lua/thegeneralist/lazy/lsp.lua | 542 +++++++++--------- 6 files changed, 351 insertions(+), 310 deletions(-) diff --git a/modules/common/ghostty.nix b/modules/common/ghostty.nix index 95fb7d8..dc2276d 100644 --- a/modules/common/ghostty.nix +++ b/modules/common/ghostty.nix @@ -11,7 +11,7 @@ clearDefaultKeybinds = false; settings = { # theme = "tokyonight"; - theme = "GruvboxDarkHard"; + theme = "Gruvbox Dark Hard"; font-family = "Berkeley Mono"; font-size = 16; diff --git a/modules/common/rust.nix b/modules/common/rust.nix index 134b8ae..354345b 100644 --- a/modules/common/rust.nix +++ b/modules/common/rust.nix @@ -26,6 +26,9 @@ nixfmt-rfc-style libiconv + + clang + clang-analyzer ]; }; } diff --git a/modules/darwin/karabiner.nix b/modules/darwin/karabiner.nix index c86c75c..5ae9ed1 100644 --- a/modules/darwin/karabiner.nix +++ b/modules/darwin/karabiner.nix @@ -1,18 +1,31 @@ let numbers = [ - "1" "2" "3" "4" "5" "6" "7" "8" "9" "0" + "1" + "2" + "3" + "4" + "5" + "6" + "7" + "8" + "9" + "0" ]; number_to_symbol = num: { type = "basic"; from = { key_code = num; - modifiers = { optional = [ "caps_lock" ]; }; + modifiers = { + optional = [ "caps_lock" ]; + }; }; - to = [{ - key_code = num; - modifiers = ["left_shift"]; - }]; + to = [ + { + key_code = num; + modifiers = [ "left_shift" ]; + } + ]; }; symbol_to_number = num: { @@ -24,55 +37,80 @@ let optional = [ "caps_lock" ]; }; }; - to = [{ - key_code = num; - }]; + to = [ + { + key_code = num; + } + ]; }; - manipulators = builtins.concatLists (map (n: [ - (number_to_symbol n) - (symbol_to_number n) - ]) numbers); + manipulators = builtins.concatLists ( + map (n: [ + (number_to_symbol n) + (symbol_to_number n) + ]) numbers + ); simple_modifications = [ { from.apple_vendor_top_case_key_code = "keyboard_fn"; - to = [{ key_code = "left_control"; }]; + to = [ { key_code = "left_control"; } ]; } { from.key_code = "left_control"; - to = [{ apple_vendor_top_case_key_code = "keyboard_fn"; }]; + to = [ { apple_vendor_top_case_key_code = "keyboard_fn"; } ]; } ]; complex_modifications = { name = "Complex Modifications"; - rules = [{ - description = "Change numbers to symbols and vice versa"; - manipulators = manipulators; - }]; + rules = [ + # { + # description = "Change numbers to symbols and vice versa"; + # manipulators = manipulators; + # } + { + description = "Toggle Focus Mode with F6"; + manipulators = [ + { + from = { + "key_code" = "f6"; + }; + to = [ { "shell_command" = "shortcuts run 'Reduced Interruptions'"; } ]; + type = "basic"; + } + ]; + } + ]; }; config = builtins.toJSON { global.show_in_menu_bar = false; - profiles = [{ - name = "default"; - selected = true; - virtual_hid_keyboard.keyboard_type_v2 = "ansi"; - inherit simple_modifications; - inherit complex_modifications; + profiles = [ + { + name = "default"; + selected = true; + virtual_hid_keyboard.keyboard_type_v2 = "ansi"; + inherit simple_modifications; + inherit complex_modifications; - devices = [{ - identifiers.is_keyboard = true; - }]; - }]; + devices = [ + { + identifiers.is_keyboard = true; + } + ]; + } + ]; }; -in { - home-manager.sharedModules = [{ - home.file.".config/karabiner/karabiner.json" = { - force = true; - text = config; - }; - }]; +in +{ + home-manager.sharedModules = [ + { + home.file.".config/karabiner/karabiner.json" = { + force = true; + text = config; + }; + } + ]; } diff --git a/modules/darwin/packages.nix b/modules/darwin/packages.nix index 72b4f87..5be9f24 100644 --- a/modules/darwin/packages.nix +++ b/modules/darwin/packages.nix @@ -1,5 +1,5 @@ { pkgs, ... }: { homebrew.enable = true; - homebrew.casks = [ "ungoogled-chromium" ]; + homebrew.casks = [ "google-chrome" ]; environment.systemPackages = [ pkgs.iina ]; } diff --git a/modules/dotfiles/nvim/lua/thegeneralist/lazy/blink.lua b/modules/dotfiles/nvim/lua/thegeneralist/lazy/blink.lua index dcdc4c3..e080021 100644 --- a/modules/dotfiles/nvim/lua/thegeneralist/lazy/blink.lua +++ b/modules/dotfiles/nvim/lua/thegeneralist/lazy/blink.lua @@ -18,8 +18,6 @@ return { -- See :h blink-cmp-config-keymap for defining your own keymap keymap = { preset = "default", - [""] = { "select_and_accept" }, - [""] = { "select_next", "fallback_to_mappings" }, }, appearance = { diff --git a/modules/dotfiles/nvim/lua/thegeneralist/lazy/lsp.lua b/modules/dotfiles/nvim/lua/thegeneralist/lazy/lsp.lua index 0f781d0..3c6d309 100644 --- a/modules/dotfiles/nvim/lua/thegeneralist/lazy/lsp.lua +++ b/modules/dotfiles/nvim/lua/thegeneralist/lazy/lsp.lua @@ -1,285 +1,287 @@ return { - { - "neovim/nvim-lspconfig", - dependencies = { - "saghen/blink.cmp", - -- "folke/neodev.nvim", - "williamboman/mason.nvim", - "mason-org/mason-registry", - "williamboman/mason-lspconfig.nvim", - "hrsh7th/cmp-nvim-lsp", - "hrsh7th/cmp-buffer", - "hrsh7th/cmp-path", - "hrsh7th/cmp-cmdline", - -- "hrsh7th/nvim-cmp", - "L3MON4D3/LuaSnip", - "saadparwaiz1/cmp_luasnip", - "j-hui/fidget.nvim", - }, - config = function() - local lspkind = require("lspkind") - -- local cmp = require("cmp") - -- local cmp_lsp = require("cmp_nvim_lsp") - -- local capabilities = vim.tbl_deep_extend( - -- "force", - -- {}, - -- vim.lsp.protocol.make_client_capabilities(), - -- cmp_lsp.default_capabilities() - -- ) + { + "neovim/nvim-lspconfig", + dependencies = { + "saghen/blink.cmp", + -- "folke/neodev.nvim", + "williamboman/mason.nvim", + "mason-org/mason-registry", + "williamboman/mason-lspconfig.nvim", + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-buffer", + "hrsh7th/cmp-path", + "hrsh7th/cmp-cmdline", + -- "hrsh7th/nvim-cmp", + "L3MON4D3/LuaSnip", + "saadparwaiz1/cmp_luasnip", + "j-hui/fidget.nvim", + }, + config = function() + local lspkind = require("lspkind") + -- local cmp = require("cmp") + -- local cmp_lsp = require("cmp_nvim_lsp") + -- local capabilities = vim.tbl_deep_extend( + -- "force", + -- {}, + -- vim.lsp.protocol.make_client_capabilities(), + -- cmp_lsp.default_capabilities() + -- ) - require("fidget").setup({}) - require("mason").setup() + require("fidget").setup({}) + require("mason").setup() - -- local vue_typescript_plugin = require("mason-registry") - -- .get_package("vue-language-server") - -- :get_install_path() .. "/node_modules/@vue/language-server" .. "/node_modules/@vue/typescript-plugin" + -- local vue_typescript_plugin = require("mason-registry") + -- .get_package("vue-language-server") + -- :get_install_path() .. "/node_modules/@vue/language-server" .. "/node_modules/@vue/typescript-plugin" - local capabilities = require("blink.cmp").get_lsp_capabilities() - vim.lsp.enable("nixd") - require("mason-lspconfig").setup({ - automatic_enable = true, - ensure_installed = { - "lua_ls", - "ts_ls", - "cssls", - "tailwindcss", - }, - handlers = { - function(server_name) -- default handler (optional) - -- if server_name == "rust_analyzer" then - -- return - -- end - require("lspconfig")[server_name].setup({ - capabilities = capabilities, - }) - end, + local capabilities = require("blink.cmp").get_lsp_capabilities() + vim.lsp.enable("nixd") + vim.lsp.enable("clangd") + vim.lsp.enable("basedpyright") + require("mason-lspconfig").setup({ + automatic_enable = true, + ensure_installed = { + "lua_ls", + "ts_ls", + "cssls", + "tailwindcss", + }, + handlers = { + function(server_name) -- default handler (optional) + -- if server_name == "rust_analyzer" then + -- return + -- end + require("lspconfig")[server_name].setup({ + capabilities = capabilities, + }) + end, - ["lua_ls"] = function() - local lspconfig = require("lspconfig") - lspconfig.lua_ls.setup({ - capabilities = capabilities, - settings = { - Lua = { - diagnostics = { - globals = { "vim", "it", "describe", "before_each", "after_each" }, - }, - }, - }, - }) - end, + ["lua_ls"] = function() + local lspconfig = require("lspconfig") + lspconfig.lua_ls.setup({ + capabilities = capabilities, + settings = { + Lua = { + diagnostics = { + globals = { "vim", "it", "describe", "before_each", "after_each" }, + }, + }, + }, + }) + end, - ["ts_ls"] = function() - local lspconfig = require("lspconfig") - lspconfig.ts_ls.setup({ - capabilities = capabilities, - -- settings = { - -- }, - -- init_options = { - -- plugins = { - -- { - -- name = "@vue/typescript-plugin", - -- location = vue_typescript_plugin, - -- languages = { "vue" }, - -- }, - -- }, - -- }, - filetypes = { - "javascript", - "javascriptreact", - "javascript.jsx", - "typescript", - "typescriptreact", - "typescript.tsx", - -- "vue", - }, - }) - end, - }, - }) + ["ts_ls"] = function() + local lspconfig = require("lspconfig") + lspconfig.ts_ls.setup({ + capabilities = capabilities, + -- settings = { + -- }, + -- init_options = { + -- plugins = { + -- { + -- name = "@vue/typescript-plugin", + -- location = vue_typescript_plugin, + -- languages = { "vue" }, + -- }, + -- }, + -- }, + filetypes = { + "javascript", + "javascriptreact", + "javascript.jsx", + "typescript", + "typescriptreact", + "typescript.tsx", + -- "vue", + }, + }) + end, + }, + }) - vim.api.nvim_create_autocmd("LspAttach", { - callback = function(args) - local c = vim.lsp.get_client_by_id(args.data.client_id) - if not c then - return - end + vim.api.nvim_create_autocmd("LspAttach", { + callback = function(args) + local c = vim.lsp.get_client_by_id(args.data.client_id) + if not c then + return + end - if vim.bo.filetype == "lua" then - -- Format the current buffer on save - vim.api.nvim_create_autocmd("BufWritePre", { - buffer = args.buf, - callback = function() - vim.lsp.buf.format({ bufnr = args.buf, id = c.id }) - end, - }) - end - end, - }) + if vim.bo.filetype == "lua" then + -- Format the current buffer on save + vim.api.nvim_create_autocmd("BufWritePre", { + buffer = args.buf, + callback = function() + vim.lsp.buf.format({ bufnr = args.buf, id = c.id }) + end, + }) + end + end, + }) - -- local cmp_select = { behavior = cmp.SelectBehavior.Select } + -- local cmp_select = { behavior = cmp.SelectBehavior.Select } - --- Select item next/prev, taking into account whether the cmp window is - --- top-down or bottoom-up so that the movement is always in the same direction. - -- local select_item_smart = function(dir, opts) - -- return function(fallback) - -- if cmp.visible() then - -- opts = opts or { behavior = cmp.SelectBehavior.Select } - -- if cmp.core.view.custom_entries_view:is_direction_top_down() then - -- ({ next = cmp.select_next_item, prev = cmp.select_prev_item })[dir](opts) - -- else - -- ({ prev = cmp.select_next_item, next = cmp.select_prev_item })[dir](opts) - -- end - -- else - -- fallback() - -- end - -- end - -- end + --- Select item next/prev, taking into account whether the cmp window is + --- top-down or bottoom-up so that the movement is always in the same direction. + -- local select_item_smart = function(dir, opts) + -- return function(fallback) + -- if cmp.visible() then + -- opts = opts or { behavior = cmp.SelectBehavior.Select } + -- if cmp.core.view.custom_entries_view:is_direction_top_down() then + -- ({ next = cmp.select_next_item, prev = cmp.select_prev_item })[dir](opts) + -- else + -- ({ prev = cmp.select_next_item, next = cmp.select_prev_item })[dir](opts) + -- end + -- else + -- fallback() + -- end + -- end + -- end - -- cmp.setup({ - -- snippet = { - -- expand = function(args) - -- require("luasnip").lsp_expand(args.body) -- For `luasnip` users. - -- end, - -- }, - -- completion = { - -- completeopt = "menu,menuone,noinsert", - -- }, - -- -- No idea what this is - -- matching = { - -- disallow_fuzzy_matching = false, - -- disallow_fullfuzzy_matching = false, - -- disallow_partial_fuzzy_matching = false, - -- }, - -- performance = { - -- -- debounce = 50, - -- debounce = 25, - -- -- max_view_entries = 20, - -- }, - -- That crazy window - -- window = { - -- completion = cmp.config.window.bordered({ - -- border = "single", - -- side_padding = 2, - -- col_offset = -3, - -- max_width = 80, - -- }), - -- documentation = cmp.config.window.bordered({ - -- max_width = 50, - -- }), - -- }, - -- mapping = cmp.mapping.preset.insert({ - -- [""] = select_item_smart("prev", cmp_select), - -- [""] = select_item_smart("next", cmp_select), - -- [""] = cmp.mapping.close(), - -- [""] = cmp.mapping.confirm({ select = true }), - -- [""] = cmp.mapping.confirm({ select = true }), - -- [""] = cmp.mapping.complete(), - -- [""] = cmp.mapping.scroll_docs(-3), - -- [""] = cmp.mapping.scroll_docs(3), - -- [""] = cmp.mapping.abort(), - -- }), - -- sorting = { - -- comparators = { - -- cmp.config.compare.locality, - -- cmp.config.compare.offset, - -- cmp.config.compare.recently_used, - -- cmp.config.compare.exact, - -- cmp.config.compare.order, - -- cmp.config.compare.length, - -- function(entry1, entry2) - -- local _, entry1_under = entry1.completion_item.label:find("^_+") - -- local _, entry2_under = entry2.completion_item.label:find("^_+") - -- entry1_under = entry1_under or 0 - -- entry2_under = entry2_under or 0 - -- if entry1_under > entry2_under then - -- return false - -- elseif entry1_under < entry2_under then - -- return true - -- end - -- end, - -- cmp.config.compare.kind, - -- cmp.config.compare.sort_text, - -- }, - -- }, - -- sources = cmp.config.sources({ - -- { name = "neopyter" }, - -- { name = "nvim_lsp" }, - -- { name = "codeium" }, - -- { name = "luasnip" }, -- For luasnip users. - -- }, { - -- { name = "buffer" }, - -- }), - -- formatting = { - -- fields = { - -- "abbr", - -- "kind", - -- "menu", - -- }, - -- expandable_indicator = true, - -- format = lspkind.cmp_format({ - -- mode = "symbol_text", - -- maxwidth = 50, - -- ellipsis_char = "...", - -- menu = { - -- neopyter = "[Neopyter]", - -- }, - -- symbol_map = { - -- -- specific complete item kind icon - -- ["Magic"] = "🪄", - -- ["Path"] = "📁", - -- ["Dict key"] = "🔑", - -- ["Instance"] = "󱃻", - -- ["Statement"] = "󱇯", - -- }, - -- }), - -- }, - -- }) + -- cmp.setup({ + -- snippet = { + -- expand = function(args) + -- require("luasnip").lsp_expand(args.body) -- For `luasnip` users. + -- end, + -- }, + -- completion = { + -- completeopt = "menu,menuone,noinsert", + -- }, + -- -- No idea what this is + -- matching = { + -- disallow_fuzzy_matching = false, + -- disallow_fullfuzzy_matching = false, + -- disallow_partial_fuzzy_matching = false, + -- }, + -- performance = { + -- -- debounce = 50, + -- debounce = 25, + -- -- max_view_entries = 20, + -- }, + -- That crazy window + -- window = { + -- completion = cmp.config.window.bordered({ + -- border = "single", + -- side_padding = 2, + -- col_offset = -3, + -- max_width = 80, + -- }), + -- documentation = cmp.config.window.bordered({ + -- max_width = 50, + -- }), + -- }, + -- mapping = cmp.mapping.preset.insert({ + -- [""] = select_item_smart("prev", cmp_select), + -- [""] = select_item_smart("next", cmp_select), + -- [""] = cmp.mapping.close(), + -- [""] = cmp.mapping.confirm({ select = true }), + -- [""] = cmp.mapping.confirm({ select = true }), + -- [""] = cmp.mapping.complete(), + -- [""] = cmp.mapping.scroll_docs(-3), + -- [""] = cmp.mapping.scroll_docs(3), + -- [""] = cmp.mapping.abort(), + -- }), + -- sorting = { + -- comparators = { + -- cmp.config.compare.locality, + -- cmp.config.compare.offset, + -- cmp.config.compare.recently_used, + -- cmp.config.compare.exact, + -- cmp.config.compare.order, + -- cmp.config.compare.length, + -- function(entry1, entry2) + -- local _, entry1_under = entry1.completion_item.label:find("^_+") + -- local _, entry2_under = entry2.completion_item.label:find("^_+") + -- entry1_under = entry1_under or 0 + -- entry2_under = entry2_under or 0 + -- if entry1_under > entry2_under then + -- return false + -- elseif entry1_under < entry2_under then + -- return true + -- end + -- end, + -- cmp.config.compare.kind, + -- cmp.config.compare.sort_text, + -- }, + -- }, + -- sources = cmp.config.sources({ + -- { name = "neopyter" }, + -- { name = "nvim_lsp" }, + -- { name = "codeium" }, + -- { name = "luasnip" }, -- For luasnip users. + -- }, { + -- { name = "buffer" }, + -- }), + -- formatting = { + -- fields = { + -- "abbr", + -- "kind", + -- "menu", + -- }, + -- expandable_indicator = true, + -- format = lspkind.cmp_format({ + -- mode = "symbol_text", + -- maxwidth = 50, + -- ellipsis_char = "...", + -- menu = { + -- neopyter = "[Neopyter]", + -- }, + -- symbol_map = { + -- -- specific complete item kind icon + -- ["Magic"] = "🪄", + -- ["Path"] = "📁", + -- ["Dict key"] = "🔑", + -- ["Instance"] = "󱃻", + -- ["Statement"] = "󱇯", + -- }, + -- }), + -- }, + -- }) - -- -- menu item highlight - -- vim.api.nvim_set_hl(0, "CmpItemKindMagic", { bg = "NONE", fg = "#D4D434" }) - -- vim.api.nvim_set_hl(0, "CmpItemKindPath", { link = "CmpItemKindFolder" }) - -- vim.api.nvim_set_hl(0, "CmpItemKindDictkey", { link = "CmpItemKindKeyword" }) - -- vim.api.nvim_set_hl(0, "CmpItemKindInstance", { link = "CmpItemKindVariable" }) - -- vim.api.nvim_set_hl(0, "CmpItemKindStatement", { link = "CmpItemKindVariable" }) + -- -- menu item highlight + -- vim.api.nvim_set_hl(0, "CmpItemKindMagic", { bg = "NONE", fg = "#D4D434" }) + -- vim.api.nvim_set_hl(0, "CmpItemKindPath", { link = "CmpItemKindFolder" }) + -- vim.api.nvim_set_hl(0, "CmpItemKindDictkey", { link = "CmpItemKindKeyword" }) + -- vim.api.nvim_set_hl(0, "CmpItemKindInstance", { link = "CmpItemKindVariable" }) + -- vim.api.nvim_set_hl(0, "CmpItemKindStatement", { link = "CmpItemKindVariable" }) - -- vim.diagnostic.config({ - -- -- update_in_insert = true, -- Update diagnostics in Insert mode - -- -- ^ (if false, diagnostics are updated on InsertLeave) - -- - -- underline = true, - -- - -- virtual_text = true, - -- - -- severity_sort = true, -- high -> low - -- - -- -- float = { - -- -- focusable = false, - -- -- style = "minimal", - -- -- border = "rounded", - -- -- source = true, - -- -- header = { "  Diagnostics", "String" }, - -- -- prefix = function(_, _, _) - -- -- return "  ", "String" - -- -- end, - -- -- }, - -- }) + -- vim.diagnostic.config({ + -- -- update_in_insert = true, -- Update diagnostics in Insert mode + -- -- ^ (if false, diagnostics are updated on InsertLeave) + -- + -- underline = true, + -- + -- virtual_text = true, + -- + -- severity_sort = true, -- high -> low + -- + -- -- float = { + -- -- focusable = false, + -- -- style = "minimal", + -- -- border = "rounded", + -- -- source = true, + -- -- header = { "  Diagnostics", "String" }, + -- -- prefix = function(_, _, _) + -- -- return "  ", "String" + -- -- end, + -- -- }, + -- }) - -- treesitter jupyter notebook stuff - -- require("nvim-treesitter.configs").setup({ - -- textobjects = { - -- move = { - -- enable = true, - -- goto_next_start = { - -- ["]j"] = "@cellseparator", - -- ["]c"] = "@cellcontent", - -- }, - -- goto_previous_start = { - -- ["[j"] = "@cellseparator", - -- ["[c"] = "@cellcontent", - -- }, - -- }, - -- }, - -- }) - end, - }, + -- treesitter jupyter notebook stuff + -- require("nvim-treesitter.configs").setup({ + -- textobjects = { + -- move = { + -- enable = true, + -- goto_next_start = { + -- ["]j"] = "@cellseparator", + -- ["]c"] = "@cellcontent", + -- }, + -- goto_previous_start = { + -- ["[j"] = "@cellseparator", + -- ["[c"] = "@cellcontent", + -- }, + -- }, + -- }, + -- }) + end, + }, }