aboutsummaryrefslogtreecommitdiff
path: root/modules/users/editors
diff options
context:
space:
mode:
authorschererleander <leander@schererleander.de>2026-01-09 16:57:15 +0100
committerschererleander <leander@schererleander.de>2026-01-09 23:13:49 +0100
commit3b5a73c436eb22e0cda59469263490705e149cb9 (patch)
treeae3f20ca6008b11f71247dfc6e2df8218de9b95c /modules/users/editors
parentec45aae780da92e12cf82c5a32e336b14b7540ba (diff)
refactor: use flake-parts, change modules structure
Diffstat (limited to 'modules/users/editors')
-rw-r--r--modules/users/editors/default.nix8
-rw-r--r--modules/users/editors/neovim/default.nix109
-rw-r--r--modules/users/editors/neovim/init.lua225
-rw-r--r--modules/users/editors/vscode/default.nix142
-rw-r--r--modules/users/editors/zed/default.nix94
5 files changed, 0 insertions, 578 deletions
diff --git a/modules/users/editors/default.nix b/modules/users/editors/default.nix
deleted file mode 100644
index 76f3b96..0000000
--- a/modules/users/editors/default.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ ... }:
-{
- imports = [
- ./neovim
- ./vscode
- ./zed
- ];
-}
diff --git a/modules/users/editors/neovim/default.nix b/modules/users/editors/neovim/default.nix
deleted file mode 100644
index d6c8218..0000000
--- a/modules/users/editors/neovim/default.nix
+++ /dev/null
@@ -1,109 +0,0 @@
-{
- config,
- username,
- lib,
- pkgs,
- ...
-}:
-
-let
- inherit (lib)
- mkOption
- types
- mkIf
- optionals
- ;
- cfg = config.nx.editors.neovim;
-in
-{
- options.nx.editors.neovim = {
- enable = mkOption {
- description = "Neovim editor";
- type = types.bool;
- default = true;
- };
-
- langs = {
- python = mkOption {
- description = "enable the python integration";
- type = types.bool;
- default = false;
- };
- go = mkOption {
- description = "enable go integration";
- type = types.bool;
- default = false;
- };
- ts = mkOption {
- description = "enable the js/ts integration";
- type = types.bool;
- default = false;
- };
- nix = mkOption {
- description = "enable the nix integration";
- type = types.bool;
- default = true;
- };
- lua = mkOption {
- description = "enable the lua integration";
- type = types.bool;
- default = true;
- };
- latex = mkOption {
- description = "enable latex integration";
- type = types.bool;
- default = false;
- };
- };
- };
-
- config = mkIf cfg.enable {
- programs.neovim = {
- defaultEditor = true;
- enable = true;
- package = pkgs.neovim-unwrapped;
- extraPackages =
- with pkgs;
- [
- tree-sitter
- git
- ripgrep
- fd
- gcc
- ]
- ++ (optionals cfg.langs.ts [ pkgs.nodePackages.typescript-language-server ])
- ++ (optionals cfg.langs.python [ ])
- ++ (optionals cfg.langs.go [ pkgs.gopls ])
- ++ (optionals cfg.langs.nix [
- pkgs.nil
- pkgs.nixfmt
- ])
- ++ (optionals cfg.langs.lua [ pkgs.lua-language-server ])
- ++ (optionals cfg.langs.latex [ pkgs.texlab ]);
-
- plugins = with pkgs.vimPlugins; [
- gruvbox-nvim
- mini-starter
- gitsigns-nvim
- nvim-autopairs
- telescope-nvim
- fidget-nvim
- plenary-nvim
- nvim-treesitter.withAllGrammars
- nvim-lspconfig
- nvim-cmp
- cmp-nvim-lsp
- cmp-buffer
- cmp-path
- cmp-cmdline
- luasnip
- cmp_luasnip
- lspkind-nvim
- ];
-
- extraConfig = ''
- luafile ${./init.lua}
- '';
- };
- };
-}
diff --git a/modules/users/editors/neovim/init.lua b/modules/users/editors/neovim/init.lua
deleted file mode 100644
index efd021f..0000000
--- a/modules/users/editors/neovim/init.lua
+++ /dev/null
@@ -1,225 +0,0 @@
--- General settings
-vim.g.mapleader = " "
-vim.o.number = true
-vim.o.relativenumber = true
-vim.o.signcolumn = "yes"
-vim.o.termguicolors = true
-vim.o.wrap = false
-vim.o.tabstop = 2
-vim.o.shiftwidth = 2
-vim.o.updatetime = 250
-vim.o.timeoutlen = 300
-vim.o.swapfile = false
-vim.o.ignorecase = true
-vim.o.smartcase = true
-vim.o.winborder = "rounded"
-vim.o.clipboard = "unnamedplus"
-
-local map = vim.keymap.set
-map('n', '<leader>o', '<CMD>update<BAR>source %<CR>', { desc = 'Save & reload init.lua' })
-map('n', '<leader>w', '<CMD>write<CR>')
-map('n', '<leader>q', '<CMD>quit<CR>')
-
-
-require("mini.starter").setup({
- header = table.concat({
- " /l、 ",
- "(゚、 。 7 ",
- " l ~ ヽ ",
- " じしf_,)ノ ",
- }, "\n"),
- footer = "",
- content_hooks = {
- require("mini.starter").gen_hook.adding_bullet("» "),
- require("mini.starter").gen_hook.aligning("center", "center"),
- },
-})
-
-require("gitsigns").setup()
-require("nvim-autopairs").setup()
-require("fidget").setup()
-
-vim.cmd("colorscheme gruvbox")
-
-local hl = vim.api.nvim_set_hl
-hl(0, 'Normal', { bg = 'none' })
-hl(0, 'NormalFloat', { bg = 'none' })
-hl(0, 'NormalNC', { bg = 'none' })
-hl(0, 'StatusLine', { bg = 'none' })
-hl(0, 'SignColumn', { bg = 'none' })
-hl(0, "DiagnosticError", { bg = "none" })
-hl(0, "DiagnosticSignError", { bg = "none" })
-hl(0, "DiagnosticSignHint", { bg = "none" })
-hl(0, "DiagnosticSignInfo", { bg = "none" })
-hl(0, "DiagnosticSignWarn", { bg = "none" })
-
-hl(0, "Pmenu", { bg = "none" })
-hl(0, "PmenuSel", { bg = "none" })
-hl(0, "FloatBorder", { bg = "none" })
-
-local status_ok, configs = pcall(require, "nvim-treesitter.configs")
-if status_ok then
- configs.setup({
- highlight = { enable = true },
- indent = { enable = true },
- })
-end
-
-local builtin = require('telescope.builtin')
-local map = vim.keymap.set
-map('n', '<leader>ff', builtin.find_files, { desc = 'Telescope find files' })
-map('n', '<leader>fg', builtin.live_grep, { desc = 'Telescope live grep' })
-map('n', '<leader>fb', builtin.buffers, { desc = 'Telescope buffers' })
-map('n', '<leader>fh', builtin.help_tags, { desc = 'Telescope help tags' })
-
-
-local cmp = require("cmp")
-cmp.setup({
- snippet = {
- expand = function(args)
- require('luasnip').lsp_expand(args.body)
- end,
- },
- mapping = cmp.mapping.preset.insert({
- ['<C-b>'] = cmp.mapping.scroll_docs(-4),
- ['<C-f>'] = cmp.mapping.scroll_docs(4),
- ['<C-Space>'] = cmp.mapping.complete(),
- ['<C-e>'] = cmp.mapping.abort(),
- ['<CR>'] = cmp.mapping.confirm({ select = true }),
- ['<Tab>'] = cmp.mapping(function(fallback)
- if cmp.visible() then
- cmp.select_next_item()
- else
- fallback()
- end
- end, { 'i', 's' }),
- ['<S-Tab>'] = cmp.mapping(function(fallback)
- if cmp.visible() then
- cmp.select_prev_item()
- else
- fallback()
- end
- end, { 'i', 's' }),
- }),
- sources = cmp.config.sources({
- { name = 'nvim_lsp' },
- { name = 'luasnip' },
- }, {
- { name = 'buffer' },
- })
-})
-
--- Add parentheses after selecting function or method
-local cmp_autopairs = require('nvim-autopairs.completion.cmp')
-cmp.event:on(
- 'confirm_done',
- cmp_autopairs.on_confirm_done()
-)
-
-local capabilities = require('cmp_nvim_lsp').default_capabilities()
-
-vim.api.nvim_create_autocmd('LspAttach', {
- group = vim.api.nvim_create_augroup('UserLspConfig', {}),
- callback = function(ev)
- local opts = { buffer = ev.buf, noremap = true, silent = true }
- vim.keymap.set('n', '<leader>lf', function() vim.lsp.buf.format { async = true } end, opts)
- end,
-})
-
--- Native LSP setup (Neovim v0.11+)
-vim.lsp.config('nixd', {
- cmd = { 'nixd' },
- capabilities = capabilities,
- settings = {
- nixd = {
- formatting = {
- command = { "nixfmt" },
- },
- },
- },
-})
-
-vim.lsp.config('nil_ls', {
- cmd = { 'nil' },
- capabilities = capabilities,
- settings = {
- ['nil'] = {
- nix = {
- flake = {
- autoArchive = true,
- },
- },
- },
- },
-})
-
-vim.lsp.config('lua_ls', {
- cmd = { 'lua-language-server' },
- capabilities = capabilities,
- settings = {
- Lua = {
- runtime = {
- version = 'LuaJIT',
- },
- diagnostics = {
- globals = { 'vim', 'require' },
- },
- workspace = {
- library = vim.api.nvim_get_runtime_file("", true),
- },
- telemetry = {
- enable = false,
- },
- },
- },
-})
-
-vim.lsp.config('pyright', {
- cmd = { 'pyright-langserver', '--stdio' },
- capabilities = capabilities,
-})
-
-vim.lsp.config('tailwindcss', {
- cmd = { 'tailwindcss-language-server', '--stdio' },
- capabilities = capabilities,
-})
-
-vim.lsp.config('gopls', {
- cmd = { 'gopls' },
- capabilities = capabilities,
- settings = {
- gopls = {
- analyses = {
- unusedparams = true,
- unusedwrite = true,
- },
- staticcheck = true,
- },
- },
-})
-
-vim.lsp.config('rust_analyzer', {
- cmd = { 'rust-analyzer' },
- capabilities = capabilities,
-})
-
-vim.lsp.config('ts_ls', {
- cmd = { 'typescript-language-server', '--stdio' },
- capabilities = capabilities,
-})
-
--- Enable all configured servers
-vim.lsp.enable('nixd')
-vim.lsp.enable('nil_ls')
-vim.lsp.enable('lua_ls')
-vim.lsp.enable('pyright')
-vim.lsp.enable('tailwindcss')
-vim.lsp.enable('gopls')
-vim.lsp.enable('rust_analyzer')
-vim.lsp.enable('ts_ls')
-
-vim.diagnostic.config({
- virtual_text = { source = "if_many" },
- underline = true,
- severity_sort = true,
-})
diff --git a/modules/users/editors/vscode/default.nix b/modules/users/editors/vscode/default.nix
deleted file mode 100644
index fe2c444..0000000
--- a/modules/users/editors/vscode/default.nix
+++ /dev/null
@@ -1,142 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-let
- inherit (lib)
- mkOption
- types
- mkIf
- optionals
- ;
- cfg = config.nx.editors.vscode;
-in
-{
- options.nx.editors.vscode = {
- enable = mkOption {
- description = "vscode editor";
- type = types.bool;
- default = false;
- };
-
- useVSCodium = mkOption {
- description = "Use vscodium instead of vscode";
- type = types.bool;
- default = false;
- };
-
- theme = mkOption {
- description = "Theme to use for vscode";
- type = types.enum [
- "minimal"
- "dark"
- "light"
- ];
- default = "minimal";
- };
-
- langs = {
- cmake = mkOption {
- description = "enable cmake integration";
- type = types.bool;
- default = false;
- };
- docker = mkOption {
- description = "enable docker integration";
- type = types.bool;
- default = false;
- };
- python = mkOption {
- description = "enable python integration";
- type = types.bool;
- default = false;
- };
- go = mkOption {
- description = "enable go integration";
- type = types.bool;
- default = false;
- };
- rust = mkOption {
- description = "enable rust integration";
- type = types.bool;
- default = false;
- };
- java = mkOption {
- description = "enable java integration";
- type = types.bool;
- default = false;
- };
- lua = mkOption {
- description = "enable lua integration";
- type = types.bool;
- default = false;
- };
- tailwindcss = mkOption {
- description = "enable tailwindcss integration";
- type = types.bool;
- default = false;
- };
- };
- };
-
- config = mkIf cfg.enable {
- programs.vscode = {
- enable = true;
- package = if cfg.useVSCodium then pkgs.vscodium else pkgs.vscode;
- mutableExtensionsDir = false;
- profiles.default = {
- enableUpdateCheck = true;
- enableExtensionUpdateCheck = true;
-
- userSettings = {
- "update.mode" = "none";
- "workbench.colorTheme" =
- if cfg.theme == "minimal" then
- "Minimal"
- else if cfg.theme == "dark" then
- "Default Dark Modern"
- else
- "Default Light Modern";
- "editor.fontFamily" = "monospace";
- "editor.tabSize" = 2;
- "editor.minimap.enabled" = false;
- "terminal.integrated.cursorStyle" = "underline";
- "terminal.integrated.cursorStyleInactive" = "underline";
- "terminal.integrated.fontFamily" = "monospace";
- "terminal.integrated.fontSize" = 13;
- "git.autofetch" = true;
- "window.controlsStyle" = "custom";
- };
-
- extensions =
- with pkgs.vscode-extensions;
- [
- github.copilot
- adpyke.codesnap
- esbenp.prettier-vscode
- ]
- ++ (optionals cfg.langs.cmake [ ms-vscode.cmake-tools ])
- ++ (optionals cfg.langs.docker [ ms-azuretools.vscode-docker ])
- ++ (optionals cfg.langs.python [ ms-python.python ])
- ++ (optionals cfg.langs.go [ golang.go ])
- ++ (optionals cfg.langs.rust [ rust-lang.rust-analyzer ])
- ++ (optionals cfg.langs.java [ vscjava.vscode-maven ])
- ++ (optionals cfg.langs.lua [ sumneko.lua ])
- ++ (optionals cfg.langs.tailwindcss [ bradlc.vscode-tailwindcss ])
- ++ (optionals (cfg.theme == "minimal") (
- pkgs.vscode-utils.extensionsFromVscodeMarketplace [
- {
- name = "minimalist-dark";
- publisher = "nichabosh";
- version = "1.0.0";
- sha256 = "sha256-lw+Scfada6DycLdRT2Cz+Fd12JucglIrw3uRd2ZhabQ=";
- }
- ]
- ));
- };
- };
- };
-}
diff --git a/modules/users/editors/zed/default.nix b/modules/users/editors/zed/default.nix
deleted file mode 100644
index 5ff0714..0000000
--- a/modules/users/editors/zed/default.nix
+++ /dev/null
@@ -1,94 +0,0 @@
-{
- config,
- lib,
- ...
-}:
-
-let
- inherit (lib)
- mkOption
- types
- mkIf
- optionals
- ;
- cfg = config.nx.editors.zed-editor;
-in
-{
- options.nx.editors.zed-editor = {
- enable = mkOption {
- description = "Enable and setup zed editor";
- type = types.bool;
- default = false;
- };
-
- langs = {
- nix = mkOption {
- description = "enable nix integration";
- type = types.bool;
- default = true;
- };
- python = mkOption {
- description = "enable python integration";
- type = types.bool;
- default = false;
- };
- rust = mkOption {
- description = "enable rust integration";
- type = types.bool;
- default = false;
- };
- go = mkOption {
- description = "enable go integration";
- type = types.bool;
- default = false;
- };
- lua = mkOption {
- description = "enable lua integration";
- type = types.bool;
- default = false;
- };
- docker = mkOption {
- description = "enable docker integration";
- type = types.bool;
- default = false;
- };
- java = mkOption {
- description = "enable java integration";
- type = types.bool;
- default = false;
- };
- cmake = mkOption {
- description = "enable cmake integration";
- type = types.bool;
- default = false;
- };
- toml = mkOption {
- description = "enable toml integration";
- type = types.bool;
- default = false;
- };
- };
- };
-
- config = mkIf cfg.enable {
- programs.zed-editor = {
- enable = true;
- extensions =
- [ ]
- ++ (optionals cfg.langs.nix [ "nix" ])
- ++ (optionals cfg.langs.python [ "python" ])
- ++ (optionals cfg.langs.rust [ "rust" ])
- ++ (optionals cfg.langs.go [ "go" ])
- ++ (optionals cfg.langs.lua [ "lua" ])
- ++ (optionals cfg.langs.docker [ "dockerfile" ])
- ++ (optionals cfg.langs.java [ "java" ])
- ++ (optionals cfg.langs.cmake [ "cmake" ])
- ++ (optionals cfg.langs.toml [ "toml" ]);
- userSettings = {
- telemetry = {
- metrics = false;
- };
- };
- };
- };
-}