From 0fb52455255f868eb86c327c133d412fc1cd7420 Mon Sep 17 00:00:00 2001 From: Doloro1978 Date: Sun, 14 Jun 2026 13:05:57 +0100 Subject: [PATCH] changes --- config/hosts/aspects/doloro-desktop/home.nix | 131 +-- config/modules/ai/ai.nix | 18 +- config/modules/ai/omp.nix | 5 +- config/modules/dunst.nix | 4 +- config/modules/nixvim/default.nix | 875 ++++++++++--------- config/modules/tmux.nix | 44 +- flake.lock | 136 +-- 7 files changed, 651 insertions(+), 562 deletions(-) diff --git a/config/hosts/aspects/doloro-desktop/home.nix b/config/hosts/aspects/doloro-desktop/home.nix index 89ec4a3..c382f45 100644 --- a/config/hosts/aspects/doloro-desktop/home.nix +++ b/config/hosts/aspects/doloro-desktop/home.nix @@ -4,7 +4,8 @@ modules, inputs, ... -}: { +}: +{ den.aspects.doloro-desktop = { includes = [ @@ -35,70 +36,78 @@ # modules.easyeffects modules.lavd modules.ai - modules.omp + # modules.omp modules.podman ]; - nixos = { - config, - pkgs, - ... - }: { - users.users.doloro = { - shell = pkgs.fish; - hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path; - extraGroups = ["libvirtd"]; - }; - virtualisation.libvirtd.enable = true; - programs.virt-manager.enable = true; - }; - homeManager = { - home, - pkgs, - ... - }: { - wayland.windowManager.hyprland.settings = { - monitor = [ - "HDMI-A-1, 1920x1080@60, 0x0, 1" - "DP-2, 1920x1080@120, 1920x0, 1" - ]; - exec-once = [ - "hyprctl dispatch workspace 2" # shit solution to get quickshell on the right monitor - ]; - workspace = [ - "name:2, monitor:DP-3" - ]; - input = { - kb_layout = "gb"; - follow_mouse = 2; - sensitivity = -0.5; + nixos = + { + config, + pkgs, + ... + }: + { + users.users.doloro = { + shell = pkgs.fish; + hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path; + extraGroups = [ "libvirtd" ]; }; + virtualisation.libvirtd.enable = true; + # virtualisation.waydroid.enable = true; + # # Newer kernel versions may need + # virtualisation.waydroid.package = pkgs.waydroid-nftables; + programs.virt-manager.enable = true; + }; + homeManager = + { + home, + pkgs, + ... + }: + { + wayland.windowManager.hyprland.settings = { + monitor = [ + "HDMI-A-1, 1920x1080@60, 0x0, 1" + "DP-2, 1920x1080@120, 1920x0, 1" + ]; + exec-once = [ + "hyprctl dispatch workspace 2" # shit solution to get quickshell on the right monitor + ]; + workspace = [ + "name:2, monitor:DP-3" + ]; + input = { + kb_layout = "gb"; + follow_mouse = 2; + sensitivity = -0.5; + }; + }; + home.packages = with pkgs; [ + equibop + telegram-desktop + obsidian + # pear-desktop + prismlauncher + # deadlock-mod-manager + inputs.nik-pkgs.packages.x86_64-linux.grimorie + gamescope + android-studio + blender + bottles + pi-coding-agent + ]; + programs.lutris.enable = true; + nixpkgs.overlays = [ + # Skipping tests while upstream sorts it out, revert once + # Hydra consistently builds openldap green. + (final: prev: { + openldap = prev.openldap.overrideAttrs (_: { + doCheck = false; + }); + }) + ]; + nixpkgs.config.allowUnfree = true; + programs.home-manager.enable = true; }; - home.packages = with pkgs; [ - equibop - telegram-desktop - obsidian - # pear-desktop - prismlauncher - # deadlock-mod-manager - inputs.nik-pkgs.packages.x86_64-linux.grimorie - gamescope - android-studio - blender - bottles - ]; - programs.lutris.enable = true; - nixpkgs.overlays = [ - # Skipping tests while upstream sorts it out, revert once - # Hydra consistently builds openldap green. - (final: prev: { - openldap = prev.openldap.overrideAttrs (_: { - doCheck = false; - }); - }) - ]; - nixpkgs.config.allowUnfree = true; - programs.home-manager.enable = true; - }; }; } diff --git a/config/modules/ai/ai.nix b/config/modules/ai/ai.nix index f11b848..e4e2139 100644 --- a/config/modules/ai/ai.nix +++ b/config/modules/ai/ai.nix @@ -14,9 +14,25 @@ { pkgs, ... }: { home.packages = [ - pkgs.opencode pkgs.claude-code ]; + programs.opencode = { + enable = true; + extraPackages = with pkgs; [ + rust-analyzer + typescript-language-server + ]; + context = '' + Instructions: + + - Do NOT preemptively load all references - use lazy loading based on actual need + - When loaded, treat content as mandatory instructions that override defaults + - Follow references recursively when needed + ''; + settings = { + "lsp" = true; + }; + }; }; }; } diff --git a/config/modules/ai/omp.nix b/config/modules/ai/omp.nix index ea99a73..da3c0fd 100644 --- a/config/modules/ai/omp.nix +++ b/config/modules/ai/omp.nix @@ -3,12 +3,15 @@ den, inputs, ... -}: { +}: +{ flake-file.inputs = { omp-nix.url = "git+https://git.molez.org/mandlm/omp-nix?ref=main"; }; modules.omp = { homeManager = { + imports = [ inputs.omp-nix.homeManagerModules.omp ]; + oh-my-pi.enable = true; }; }; } diff --git a/config/modules/dunst.nix b/config/modules/dunst.nix index ec76ee5..404b98b 100644 --- a/config/modules/dunst.nix +++ b/config/modules/dunst.nix @@ -1,4 +1,5 @@ -{modules, ...}: { +{ modules, ... }: +{ modules.dunst = { homeManager = { services.dunst = { @@ -6,6 +7,7 @@ settings = { global = { font = "Noto Nerd Font 8"; + monitor = "DP-2"; }; }; }; diff --git a/config/modules/nixvim/default.nix b/config/modules/nixvim/default.nix index fc6011a..3321dcf 100644 --- a/config/modules/nixvim/default.nix +++ b/config/modules/nixvim/default.nix @@ -4,7 +4,8 @@ lib, inputs, ... -}: { +}: +{ # Its in its own folder for future modulizaion efforts flake-file.inputs = { nixvim = { @@ -14,445 +15,499 @@ }; modules = { nixvim = { - nixos = {home-manager, ...}: { - }; - homeManager = {pkgs, ...}: let - tiny-code-action = pkgs.vimUtils.buildVimPlugin { - name = "tiny-code-action.nvim"; - src = pkgs.fetchFromGitHub { - owner = "rachartier"; - repo = "tiny-code-action.nvim"; - rev = "main"; - hash = "sha256-UF9zeO5Uujdt2MEwy2d2Lhk6JRnEN4vrEvYslv0/zaA"; - }; - nvimSkipModules = ["tiny-code-action.previewers.snacks"]; + nixos = + { home-manager, ... }: + { }; - in { - imports = [ - inputs.nixvim.homeModules.nixvim - ]; - programs.nixvim = { - enable = true; - defaultEditor = true; - nixpkgs = { - config = { - allowUnfree = true; + homeManager = + { pkgs, ... }: + let + tiny-code-action = pkgs.vimUtils.buildVimPlugin { + name = "tiny-code-action.nvim"; + src = pkgs.fetchFromGitHub { + owner = "rachartier"; + repo = "tiny-code-action.nvim"; + rev = "main"; + hash = "sha256-UF9zeO5Uujdt2MEwy2d2Lhk6JRnEN4vrEvYslv0/zaA"; }; + nvimSkipModules = [ "tiny-code-action.previewers.snacks" ]; }; - colorschemes.gruvbox-material.enable = true; - extraPackages = with pkgs; [ - # formatters - nixfmt-rs - rustfmt - # misc - ripgrep - nixd - tree-sitter - rust-analyzer + in + { + imports = [ + inputs.nixvim.homeModules.nixvim ]; - performance.byteCompileLua = { + programs.nixvim = { enable = true; - plugins = true; - nvimRuntime = true; - luaLib = true; - configs = true; - }; - plugins = { - todo-comments.enable = true; - lsp-status.enable = true; - transparent.enable = true; - which-key.enable = true; - snacks.enable = true; - conform-nvim = { - enable = true; - settings = { - formatters_by_ft = { - nix = ["nixfmt"]; - rust = ["rustfmt"]; - "_" = [ - "squeeze_blanks" - "trim_whitespace" - "trim_newlines" - ]; - }; - format_on_save = { - timeout_ms = 500; - lsp_format = "fallback"; - }; + defaultEditor = true; + nixpkgs = { + config = { + allowUnfree = true; }; }; - # efmls-configs = { + colorschemes.gruvbox-material.enable = true; + # colorschemes.melange = { # enable = true; - # languages = { - # scss = { - # formatter = "prettier"; - # linter = "stylelint"; - # }; - # }; + # autoLoad = false; # }; - lsp = { + extraPackages = with pkgs; [ + # formatters + nixfmt-rs + rustfmt + # misc + ripgrep + nixd + tree-sitter + rust-analyzer + rustc + cargo + ]; + performance.byteCompileLua = { enable = true; - servers = { - qmlls = { - enable = true; - config = { - cmd = "-E"; + plugins = true; + nvimRuntime = true; + luaLib = true; + configs = true; + }; + plugins = { + luasnip.enable = true; + cmp_luasnip.enable = true; + fidget.enable = true; + mini-comment.enable = true; + cord.enable = true; + todo-comments.enable = true; + transparent.enable = true; + which-key.enable = true; + snacks.enable = true; + conform-nvim = { + enable = true; + settings = { + formatters_by_ft = { + nix = [ "nixfmt" ]; + rust = [ "rustfmt" ]; + "_" = [ + "squeeze_blanks" + "trim_whitespace" + "trim_newlines" + ]; + }; + format_on_save = { + timeout_ms = 500; + lsp_format = "fallback"; }; }; - rust_analyzer = { - enable = true; - installCargo = false; - installRustc = false; - }; - nixd = { - enable = true; - settings = { - nixd = { - nixpkgs.expr = "import (builtins.getFlake \"${toString /home/doloro/dotfiles}\").inputs.nixpkgs { }"; - options = { - nixos.expr = "(builtins.getFlake \"${toString /home/doloro/dotfiles}\").nixosConfigurations.desktop.options"; - home_manager.expr = "(builtins.getFlake \"${toString /home/doloro/dotfiles}\").homeConfigurations.doloro-desktop.options"; + }; + # efmls-configs = { + # enable = true; + # languages = { + # scss = { + # formatter = "prettier"; + # linter = "stylelint"; + # }; + # }; + # }; + lsp = { + enable = true; + servers = { + qmlls = { + enable = true; + config = { + cmd = "-E"; + }; + }; + rust_analyzer = { + enable = true; + installCargo = false; + installRustc = false; + }; + nixd = { + enable = true; + settings = { + nixd = { + nixpkgs.expr = "import (builtins.getFlake \"${toString /home/doloro/dotfiles}\").inputs.nixpkgs { }"; + options = { + nixos.expr = "(builtins.getFlake \"${toString /home/doloro/dotfiles}\").nixosConfigurations.desktop.options"; + home_manager.expr = "(builtins.getFlake \"${toString /home/doloro/dotfiles}\").homeConfigurations.doloro-desktop.options"; + }; }; }; }; - }; - astro = { - enable = true; - }; - ts_ls = { - enable = true; - }; - cssls.enable = true; - svelte.enable = true; - }; - }; - lsp-format = { - enable = true; - # lspServersToEnable = [ "qmlls" ]; - }; - notify = { - enable = true; - settings = { - background_color = "#00000000"; - }; - }; - mini-cursorword.enable = true; - # mini-statusline.enable = true; - lualine = { - enable = true; - settings = { - sections = { - lualine_a = ["mode"]; - lualine_b = [ - "branch" - "diff" - "diagnostics" - ]; - lualine_c = ["filename"]; - lualine_x = [ - "encoding" - "fileformat" - "filetype" - ]; - lualine_y = ["progress"]; - lualine_z = ["location"]; - }; - inactive_sections = { - lualine_a = []; - lualine_b = []; - lualine_c = ["filename"]; - lualine_x = ["location"]; - lualine_y = []; - lualine_z = []; - }; - }; - }; - web-devicons.enable = true; - vim-dadbod-completion.enable = true; - telescope.enable = true; - lazygit.enable = true; - mini-indentscope = { - enable = true; - settings = { - draw = { - delay = 10; - }; - }; - }; - mini-files = { - enable = true; - settings = { - windows = { - preview = true; - }; - }; - }; - lsp-lines.enable = true; - diaglist = { - enable = true; - settings = { - debug = false; - }; - }; - cmp = { - enable = true; - autoEnableSources = true; - settings = { - sources = [ - { - name = "nvim_lsp"; - priority = 100; - } - { - name = "buffer"; - priority = 50; - } - { - name = "path"; - priority = 40; - } - ]; - mapping = { - "" = "cmp.mapping.complete()"; - "" = "cmp.mapping.scroll_docs(-4)"; - "" = "cmp.mapping.close()"; - "" = "cmp.mapping.scroll_docs(4)"; - "" = "cmp.mapping.confirm({ select = true })"; - "" = "cmp.mapping(function(fallback) if cmp.visible() then cmp.select_prev_item() else fallback() end end, {'i', 's'})"; - "" = "cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item() else fallback() end end, {'i', 's'})"; - }; - window = { - completion = { - border = "rounded"; - winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,CursorLine:PmenuSel,Search:None"; + astro = { + enable = true; }; - documentation = { - border = "rounded"; - winhighlight = "Normal:Pmenu,FloatBorder:Pmenu"; + ts_ls = { + enable = true; }; + cssls.enable = true; + svelte.enable = true; }; }; - }; - lspkind.enable = true; - tiny-inline-diagnostic.enable = true; - # tiny-code-action.enable = true; - # persisted.enable = true; - auto-session = { - enable = false; - settings = { - enabled = true; - auto_save = true; - auto_restore = true; + lsp-format = { + enable = true; + # lspServersToEnable = [ "qmlls" ]; }; - }; - wakatime.enable = true; - treesitter = { - enable = true; - grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [ - bash - css - html - javascript - json - lua - make - markdown - rust - nix - regex - toml - tsx - typescript - vim - vimdoc - xml - yaml - svelte - ]; - settings = { - highlight.enable = true; - indent.enable = false; - }; - }; - }; - extraPlugins = with pkgs; [ - # vimPlugins.mini-completion - vimPlugins.mini-comment - vimPlugins.melange-nvim - vimPlugins.telescope-file-browser-nvim - vimPlugins.lsp-progress-nvim - vimPlugins.cmp-cmdline - vimPlugins.cmp-nvim-lsp-signature-help - vimPlugins.cord-nvim - tiny-code-action - ]; - opts = { - number = true; - bg = "dark"; - tabstop = 2; - shiftwidth = 2; - termguicolors = true; - }; - globals = { - mapleader = " "; - }; - extraConfigLua = '' - -- tree-sitter-nix uses (#is-not? local) which the new nvim-treesitter main branch no longer registers - vim.treesitter.query.add_predicate("is-not?", function() return true end, { force = true }) - - local cmp = require('cmp') - cmp.setup.cmdline(':', { - mapping = cmp.mapping.preset.cmdline(), - sources = cmp.config.sources( - { { name = 'path' } }, - { { name = 'cmdline' } } - ), - window = { - completion = { - border = 'rounded', - }, - }, - }) - cmp.setup.cmdline('/', { - mapping = cmp.mapping.preset.cmdline(), - sources = { - { name = 'buffer' } - }, - window = { - completion = { - border = 'rounded', - }, - }, - }) - - require('tiny-code-action').setup({ - backend = 'vim', - picker = 'snacks', - resolve_timeout = 100, notify = { - enabled = true, - on_empty = true, - }, - }) - ''; - keymaps = [ - { - action = "Telescope persisted"; - key = "fs"; - options = { - silent = true; + enable = true; + settings = { + background_color = "#00000000"; + }; }; - } - { - action = "Telescope find_files"; - key = "ff"; - options = { - silent = true; + mini-cursorword.enable = true; + # mini-statusline.enable = true; + lualine = { + enable = true; + settings = { + sections = { + lualine_a = [ "mode" ]; + lualine_b = [ + "branch" + "diff" + "diagnostics" + ]; + lualine_c = [ "filename" ]; + lualine_x = [ + "encoding" + "fileformat" + "filetype" + ]; + lualine_y = [ "progress" ]; + lualine_z = [ "location" ]; + }; + inactive_sections = { + lualine_a = [ ]; + lualine_b = [ ]; + lualine_c = [ "filename" ]; + lualine_x = [ "location" ]; + lualine_y = [ ]; + lualine_z = [ ]; + }; + }; }; - } - { - action = ":lua MiniFiles.open()"; - key = "fv"; - options = { - silent = true; + web-devicons.enable = true; + vim-dadbod-completion.enable = true; + telescope = { + enable = true; + extensions.file-browser.enable = true; }; - } - { - action = "LazyGit"; - key = "lg"; - options = { - silent = true; + lazygit.enable = true; + mini-indentscope = { + enable = true; + settings = { + draw = { + delay = 10; + }; + }; }; - } - { - action = "Telescope buffers"; - key = "fb"; - options = { - silent = true; + mini-files = { + enable = true; + settings = { + windows = { + preview = true; + }; + }; }; - } - { - action = "Telescope live_grep"; - key = "fg"; - options = { - silent = true; + lsp-lines.enable = true; + trouble = { + enable = true; + settings = { + auto_close = true; + use_diagnostic_signs = true; + }; }; - } - { - action = "DiaglistToggle"; - key = "fd"; - options = { - silent = true; + cmp = { + enable = true; + autoEnableSources = true; + cmdline = { + ":" = { + mapping.__raw = "cmp.mapping.preset.cmdline()"; + sources = [ + { name = "path"; } + { name = "cmdline"; } + ]; + }; + "/" = { + mapping.__raw = "cmp.mapping.preset.cmdline()"; + sources = [ + { name = "buffer"; } + ]; + }; + }; + settings = { + snippet.expand.__raw = "function(args) require('luasnip').lsp_expand(args.body) end"; + sources = [ + { + name = "nvim_lsp"; + priority = 100; + } + { + name = "nvim_lsp_signature_help"; + priority = 90; + } + { + name = "luasnip"; + priority = 75; + } + { + name = "buffer"; + priority = 50; + } + { + name = "path"; + priority = 40; + } + ]; + mapping = { + "" = "cmp.mapping.complete()"; + "" = "cmp.mapping.scroll_docs(-4)"; + "" = "cmp.mapping.close()"; + "" = "cmp.mapping.scroll_docs(4)"; + "" = "cmp.mapping.confirm({ select = true })"; + "" = + "cmp.mapping(function(fallback) if cmp.visible() then cmp.select_prev_item() elseif require('luasnip').jumpable(-1) then require('luasnip').jump(-1) else fallback() end end, {'i', 's'})"; + "" = + "cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item() elseif require('luasnip').expand_or_jumpable() then require('luasnip').expand_or_jump() else fallback() end end, {'i', 's'})"; + }; + window = { + completion = { + border = "rounded"; + winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,CursorLine:PmenuSel,Search:None"; + }; + documentation = { + border = "rounded"; + winhighlight = "Normal:Pmenu,FloatBorder:Pmenu"; + }; + }; + }; }; - } - { - action = "lua require('tiny-code-action').code_action()"; - key = "ca"; - mode = ["n" "x"]; - options = { - silent = true; + lspkind.enable = true; + tiny-inline-diagnostic.enable = true; + # tiny-code-action.enable = true; + # persisted.enable = true; + auto-session = { + enable = false; + settings = { + enabled = true; + auto_save = true; + auto_restore = true; + }; }; - } - # LSP - { - action = "lua vim.lsp.buf.definition()"; - key = "gd"; - options = { silent = true; desc = "Go to definition"; }; - } - { - action = "lua vim.lsp.buf.declaration()"; - key = "gD"; - options = { silent = true; desc = "Go to declaration"; }; - } - { - action = "lua vim.lsp.buf.implementation()"; - key = "gi"; - options = { silent = true; desc = "Go to implementation"; }; - } - { - action = "lua vim.lsp.buf.type_definition()"; - key = "D"; - options = { silent = true; desc = "Go to type definition"; }; - } - { - action = "Telescope lsp_references"; - key = "gr"; - options = { silent = true; desc = "LSP references"; }; - } - { - action = "lua vim.lsp.buf.hover()"; - key = "K"; - options = { silent = true; desc = "Hover docs"; }; - } - { - action = "lua vim.lsp.buf.signature_help()"; - key = ""; - mode = ["n" "i"]; - options = { silent = true; desc = "Signature help"; }; - } - { - action = "lua vim.lsp.buf.rename()"; - key = "rn"; - options = { silent = true; desc = "Rename symbol"; }; - } - { - action = "lua vim.diagnostic.goto_prev()"; - key = "[d"; - options = { silent = true; desc = "Previous diagnostic"; }; - } - { - action = "lua vim.diagnostic.goto_next()"; - key = "]d"; - options = { silent = true; desc = "Next diagnostic"; }; - } - { - action = "lua vim.diagnostic.open_float()"; - key = "e"; - options = { silent = true; desc = "Show diagnostic float"; }; - } - ]; + wakatime.enable = true; + treesitter = { + enable = true; + grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [ + bash + css + html + javascript + json + lua + make + markdown + rust + nix + regex + toml + tsx + typescript + vim + vimdoc + xml + yaml + svelte + ]; + settings = { + highlight.enable = true; + indent.enable = false; + }; + }; + }; + extraPlugins = with pkgs; [ + vimPlugins.cmp-nvim-lsp-signature-help + tiny-code-action + ]; + opts = { + number = true; + bg = "dark"; + tabstop = 2; + shiftwidth = 2; + termguicolors = true; + completeopt = "menu,menuone,noselect"; + }; + globals = { + mapleader = " "; + }; + extraConfigLua = '' + -- tree-sitter-nix uses (#is-not? local) which the new nvim-treesitter main branch no longer registers + vim.treesitter.query.add_predicate("is-not?", function() return true end, { force = true }) + + require('tiny-code-action').setup({ + backend = 'vim', + picker = 'snacks', + resolve_timeout = 100, + notify = { + enabled = true, + on_empty = true, + }, + }) + ''; + keymaps = [ + { + action = "Telescope persisted"; + key = "fs"; + options = { + silent = true; + }; + } + { + action = "Telescope find_files"; + key = "ff"; + options = { + silent = true; + }; + } + { + action = ":lua MiniFiles.open()"; + key = "fv"; + options = { + silent = true; + }; + } + { + action = "LazyGit"; + key = "lg"; + options = { + silent = true; + }; + } + { + action = "Telescope buffers"; + key = "fb"; + options = { + silent = true; + }; + } + { + action = "Telescope live_grep"; + key = "fg"; + options = { + silent = true; + }; + } + { + action = "Trouble diagnostics toggle"; + key = "fd"; + options = { + silent = true; + desc = "Toggle diagnostics (Trouble)"; + }; + } + { + action = "lua require('tiny-code-action').code_action()"; + key = "ca"; + mode = [ + "n" + "x" + ]; + options = { + silent = true; + }; + } + # LSP + { + action = "lua vim.lsp.buf.definition()"; + key = "gd"; + options = { + silent = true; + desc = "Go to definition"; + }; + } + { + action = "lua vim.lsp.buf.declaration()"; + key = "gD"; + options = { + silent = true; + desc = "Go to declaration"; + }; + } + { + action = "lua vim.lsp.buf.implementation()"; + key = "gi"; + options = { + silent = true; + desc = "Go to implementation"; + }; + } + { + action = "lua vim.lsp.buf.type_definition()"; + key = "D"; + options = { + silent = true; + desc = "Go to type definition"; + }; + } + { + action = "Telescope lsp_references"; + key = "gr"; + options = { + silent = true; + desc = "LSP references"; + }; + } + { + action = "lua vim.lsp.buf.hover()"; + key = "K"; + options = { + silent = true; + desc = "Hover docs"; + }; + } + { + action = "lua vim.lsp.buf.signature_help()"; + key = ""; + mode = [ + "n" + "i" + ]; + options = { + silent = true; + desc = "Signature help"; + }; + } + { + action = "lua vim.lsp.buf.rename()"; + key = "rn"; + options = { + silent = true; + desc = "Rename symbol"; + }; + } + { + action = "lua vim.diagnostic.goto_prev()"; + key = "[d"; + options = { + silent = true; + desc = "Previous diagnostic"; + }; + } + { + action = "lua vim.diagnostic.goto_next()"; + key = "]d"; + options = { + silent = true; + desc = "Next diagnostic"; + }; + } + { + action = "lua vim.diagnostic.open_float()"; + key = "e"; + options = { + silent = true; + desc = "Show diagnostic float"; + }; + } + ]; + }; }; - }; }; }; } diff --git a/config/modules/tmux.nix b/config/modules/tmux.nix index eedb6c5..2fd30fc 100644 --- a/config/modules/tmux.nix +++ b/config/modules/tmux.nix @@ -1,24 +1,28 @@ -{modules, ...}: { +{ modules, ... }: +{ modules.tmux = { - homeManager = { - home, - pkgs, - ... - }: { - programs.tmux = { - enable = true; - plugins = with pkgs.tmuxPlugins; [ - sensible - minimal-tmux-status - ]; - extraConfig = '' - set-option -g default-terminal "tmux-256color" - set -as terminal-features ",xterm-256color:RGB" - set -g status-bg black - set -g status-fg white - set -g mouse on - ''; + homeManager = + { + home, + pkgs, + ... + }: + { + programs.tmux = { + enable = true; + plugins = with pkgs.tmuxPlugins; [ + sensible + minimal-tmux-status + ]; + extraConfig = '' + set-option -g default-terminal "tmux-256color" + set -as terminal-features ",xterm-256color:RGB" + set -g status-bg black + set -g status-fg white + set -g mouse on + set -g extended-keys on + ''; + }; }; - }; }; } diff --git a/flake.lock b/flake.lock index 98e8089..90e2d32 100644 --- a/flake.lock +++ b/flake.lock @@ -120,11 +120,11 @@ "cachyos-kernel": { "flake": false, "locked": { - "lastModified": 1780413908, - "narHash": "sha256-T15bnskj20rdc4vJ55bFF2lVCVR8edilWn0hiYR7vVs=", + "lastModified": 1781018471, + "narHash": "sha256-jQHNMqg2+Iey/WnF+RNvEs+HG3HFVdCX5W/7wne3UIM=", "owner": "CachyOS", "repo": "linux-cachyos", - "rev": "a61f943f5e94b75c5600a2968cb699d0e37945b3", + "rev": "39d9d125940996ed2eb32425ffec7f2de6ac7fba", "type": "github" }, "original": { @@ -136,11 +136,11 @@ "cachyos-kernel-patches": { "flake": false, "locked": { - "lastModified": 1780462466, - "narHash": "sha256-t6c7FTqMB0skEz+4tei5v8GEyL4fRDgx24oW3LrnYiE=", + "lastModified": 1781257359, + "narHash": "sha256-J2/PBS+5u6osnWZUB7UTjLaD+S8diM+6hlOWDoX/+bw=", "owner": "CachyOS", "repo": "kernel-patches", - "rev": "bb41330bd4372672f552beda66712fb70b17f0fa", + "rev": "46b45d26b536195f3ee8bc510b96b7fa47567163", "type": "github" }, "original": { @@ -172,11 +172,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1780557299, - "narHash": "sha256-FF1zYCdsh9q1QS8kFMYYGiaDUzxdBBfdtQT+x/15CpA=", + "lastModified": 1781161664, + "narHash": "sha256-pALZH5SItoXJChOILlncSDlevnrxwaQrCmNVGrcn8ME=", "owner": "Mic92", "repo": "direnv-instant", - "rev": "0df681e3c0d544d7dc723cc9750a50cfc37b0095", + "rev": "57f5385e4c3df324201079553a98dd8e36c83858", "type": "github" }, "original": { @@ -190,11 +190,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1780894562, - "narHash": "sha256-c3430xwxwhHipl3jigUGMMBfpaMylDqytW/kdmB3ZGs=", + "lastModified": 1781152676, + "narHash": "sha256-RxWs5ND31KzTG7wvMM+PMfUjyNpmIEr999lqNARaM5o=", "owner": "nix-community", "repo": "disko", - "rev": "24fed06cac83bcc44ac8efbb57cab1a82fa0bedc", + "rev": "ff8702b4de27f72b4c78573dfb89ec74e36abdf1", "type": "github" }, "original": { @@ -284,11 +284,11 @@ }, "flake-file": { "locked": { - "lastModified": 1779051720, - "narHash": "sha256-+jbXnODsR19pFKB0x/6kHhFgW6yV6N+CGClFr45eDU8=", + "lastModified": 1781217157, + "narHash": "sha256-N3q/SP2Ropk336e9KSgLh7kpROY6P70dprYdbPIfd5c=", "owner": "vic", "repo": "flake-file", - "rev": "c58eb27d9434e5be0c8693f1eb18d47035bc21ba", + "rev": "ce63eaf7ebfe04a176653f66385a7f0a36380cee", "type": "github" }, "original": { @@ -497,11 +497,11 @@ "utils": "utils" }, "locked": { - "lastModified": 1780855759, - "narHash": "sha256-1x5KfTHXzsxyeixg0q7+WhBX6uKPHDHLdBDEUV4dR4I=", + "lastModified": 1781324208, + "narHash": "sha256-bygOOsF1MFbhpl420ja6Md5bGIyRIJ2/UDS2nqEX1eA=", "owner": "vikingnope", "repo": "helium-browser-nix-flake", - "rev": "59981da497f383c61e1d2d20b86743a6663355bf", + "rev": "87c5dbbabd13547db8e14937c77bd3abce315d56", "type": "github" }, "original": { @@ -517,11 +517,11 @@ ] }, "locked": { - "lastModified": 1781009359, - "narHash": "sha256-w/mZkRscTatf8NWyUstli8ROzM/eopxZzi0WRjoeYkU=", + "lastModified": 1781365335, + "narHash": "sha256-zqDBhXMzfbdlO7F2bGHe7MOtB3xngd/+4ieMHDC+ZXo=", "owner": "nix-community", "repo": "home-manager", - "rev": "c58ead12efcac436afffa93a22099a5595eb4157", + "rev": "5b6f5733726a1b2ccafb5dec6ac4ca7299fad66c", "type": "github" }, "original": { @@ -605,11 +605,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1781028094, - "narHash": "sha256-SIhZzLadXftCPHaSC56brK85oPFN7DPlG/a8Qq7EhRM=", + "lastModified": 1781437668, + "narHash": "sha256-UjNWFgYMIzUyvYwFEZPERVx8MnKexbO5Jpzi08i1LLo=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "b6633c4120a3f9607d6af719ceb6b0cbaa4605f9", + "rev": "c123867ebed53a3a429cadc8af79639d5af9304a", "type": "github" }, "original": { @@ -929,11 +929,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1781038035, - "narHash": "sha256-X+uFuOQVWiouzl7eSV5JUgg4CAbv779QgEqOxIo6Gls=", + "lastModified": 1781234038, + "narHash": "sha256-jo4a47qDgsx1F1i0MtHZl12FfzqKJOES25vbm0ZUxeI=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "27982962e1dee4994b05d2b0b4a29f8de2529a55", + "rev": "eb5789cba8d37802d330df5a13c691622c83121f", "type": "github" }, "original": { @@ -984,11 +984,11 @@ "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1780771919, - "narHash": "sha256-cbace1ZTWYFG0luPL7OFlUxDh/t9lmPj+Isvg9hLN0k=", + "lastModified": 1781292859, + "narHash": "sha256-etlzg6/H1NuHGTnrxxhvdmhDYQls/AMHk1IrBbNc0WM=", "owner": "xddxdd", "repo": "nix-cachyos-kernel", - "rev": "3d940a534da0ba6bce60e345ff2c9c7b062087fb", + "rev": "c57a7ab46f5e9b4eb32ed74ba6e7cd5bcd3a6e64", "type": "github" }, "original": { @@ -1003,11 +1003,11 @@ "nixpkgs": "nixpkgs_7" }, "locked": { - "lastModified": 1781020964, - "narHash": "sha256-fS7xTi2j2iso5Hj7RNZLv/acDlCT+fgMVkVk40A7Uco=", + "lastModified": 1781168557, + "narHash": "sha256-LOnLQ2tpYF9gqIDDr3+j3DbpJJr/QCH6zPRT2GzEUOE=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "32c2cd9e46286c4eced3dc6b613c659126bf3cca", + "rev": "6358ff76821101c178e3ab4919a62799bfe3652e", "type": "github" }, "original": { @@ -1071,11 +1071,11 @@ "nixpkgs": "nixpkgs_9" }, "locked": { - "lastModified": 1780765279, - "narHash": "sha256-md6QHmlIx40bQkun43M2eT8aav5GURGkXEMFwof6uZs=", + "lastModified": 1781182279, + "narHash": "sha256-V5EQQbDnmdiXGQXrEF1PEL7QYsFqfH8N1E89Z5ONwFk=", "owner": "nix-community", "repo": "NixOS-WSL", - "rev": "3e6d8af994e2a2d31af7a91863d7c0d6e278d951", + "rev": "5675822ba756e6e56f8f6a5a76e90e0da2ece94d", "type": "github" }, "original": { @@ -1086,11 +1086,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1780243769, - "narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=", + "lastModified": 1780749050, + "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "331800de5053fcebacf6813adb5db9c9dca22a0c", + "rev": "a799d3e3886da994fa307f817a6bc705ae538eeb", "type": "github" }, "original": { @@ -1133,11 +1133,11 @@ }, "nixpkgs_10": { "locked": { - "lastModified": 1780749050, - "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=", + "lastModified": 1781074563, + "narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a799d3e3886da994fa307f817a6bc705ae538eeb", + "rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca", "type": "github" }, "original": { @@ -1197,11 +1197,11 @@ }, "nixpkgs_14": { "locked": { - "lastModified": 1779560665, - "narHash": "sha256-NpH8iEQ5JHv/BtUuzTEXUMDxPLetCDzIv4OxL8H7Kps=", - "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "lastModified": 1781074563, + "narHash": "sha256-d34lhgOet4IqYMnCxbIvwFBMOyTV6PT4TyNEOP0/ZhU=", + "rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca", "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre1004030.64c08a7ca051/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1014179.9ae611a455b9/nixexprs.tar.xz" }, "original": { "type": "tarball", @@ -1210,11 +1210,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1780747962, - "narHash": "sha256-IX7G1dlKrOqPOImfbo7ADDfV5yU1+j+MRChI3TL4tAA=", + "lastModified": 1780930886, + "narHash": "sha256-rppURzHviaQN131F+nLiLdGfcb0uCd9gGP0E5+iw9MI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cbb5cf358f50aa6acc9efd6113b7bcfbc352cd73", + "rev": "8c3cede7ddc26bd659d2d383b5610efbd2c7a16e", "type": "github" }, "original": { @@ -1271,11 +1271,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1780751787, - "narHash": "sha256-nWR7F46SyrLvN8Ot39XJDpVCswekGakXlOD4KsTYKW0=", + "lastModified": 1781246015, + "narHash": "sha256-C3D5TBgght7LBaqm5oGNRf6CynGl5lGED4jcDw2ZOOk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "00fa9a692bafc08a86061886f888b843bf7fbdb0", + "rev": "7bd229cbe77d7746d64a1e8c1a6f6cc08f606fc4", "type": "github" }, "original": { @@ -1337,11 +1337,11 @@ "systems": "systems_4" }, "locked": { - "lastModified": 1781034432, - "narHash": "sha256-+UuS36un3lXLtKsGCYQnOn51hDhB+dZ1SHoHXClnV/0=", + "lastModified": 1781388258, + "narHash": "sha256-Kx1zxra9sZ215H3OiWUfkulu8N2v3iu19wqlzpD/Ac0=", "owner": "nix-community", "repo": "nixvim", - "rev": "e9fbbd56eab78751ba4c166c31a1667042528ced", + "rev": "e3c908fdf6dff268b04ffb6758bcfc7c018489b9", "type": "github" }, "original": { @@ -1380,11 +1380,11 @@ "nixpkgs": "nixpkgs_12" }, "locked": { - "lastModified": 1780981246, - "narHash": "sha256-3q8dZYqYwRkslQZvhqvs/xZfz32L8EayTVIS6zKwUqU=", + "lastModified": 1781370169, + "narHash": "sha256-8YdyF3+nfzquZdChx555IFW+X34QYxNShJbK2NPruFw=", "ref": "main", - "rev": "611f0b280b81c0187eb8612f2d335dbab90e5071", - "revCount": 115, + "rev": "261e7137ce1b84bad5eb51a8302050b0710f2af2", + "revCount": 166, "type": "git", "url": "https://git.molez.org/mandlm/omp-nix" }, @@ -1582,11 +1582,11 @@ "systems": "systems_5" }, "locked": { - "lastModified": 1780857688, - "narHash": "sha256-e4E6M6erJIus5Cm/A4faaaTuUfof1uvcviAPSh7tmLU=", + "lastModified": 1781425310, + "narHash": "sha256-GTBka4Df/ZOacmisI/DI2LICyNChEqn/giah83LucdM=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "aad629e8261f219b0a5b3a2189b09d65216a0983", + "rev": "aeaf7c81a45d3761da61cb05bfc370ac6d1b0441", "type": "github" }, "original": { @@ -1898,11 +1898,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1779745227, - "narHash": "sha256-yqY7RtEJGJiENzR0GwL6q69tSAy6xAAmAcLuIhLjPf8=", + "lastModified": 1781226823, + "narHash": "sha256-28696iIw8uE0ZUyFTtzhEM8xMh85clCYypMxkvUi+sc=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "5d1efbc9dc3ab1c10160b656e0247f3325daf0f2", + "rev": "8575d0ef55d70f9b4c46b6bffb3accf912217e1e", "type": "github" }, "original": { @@ -1918,11 +1918,11 @@ ] }, "locked": { - "lastModified": 1780637620, - "narHash": "sha256-ngPdHinPyF0AMxRr32qt+TZCv0sagmooBW14u6DfjSU=", + "lastModified": 1781415399, + "narHash": "sha256-t7l/1scSsVAlw1r/vjEIX+SquZa/z6ibcOLBuXdJH7E=", "owner": "youwen5", "repo": "zen-browser-flake", - "rev": "8c62bc6a72ac5a5b8d1b41b2b88dfed9d9932c48", + "rev": "83ab3c3da2ba1a76a20882dbd253711d2cb8dcba", "type": "github" }, "original": {