diff --git a/nixos/system/packages/nvf.nix b/nixos/system/packages/nvf.nix deleted file mode 100644 index 9795194..0000000 --- a/nixos/system/packages/nvf.nix +++ /dev/null @@ -1,31 +0,0 @@ -{...}: { - vim = { - viAlias = true; - vimAlias = true; - - theme = { - enable = true; - name = "catppuccin"; # catppuccin, tokyo-night, one-dark - style = "mocha"; - }; - - languages = { - enableLSP = true; - enableTreesitter = true; - - nix.enable = true; - rust.enable = true; - python.enable = true; - lua.enable = true; - csharp.enable = true; - go.enable = true; - markdown.enable = true; - clang.enable = true; - html.enable = true; - }; - - statusline.lualine.enable = true; - telescope.enable = true; - autocomplete.nvim-cmp.enable = true; - }; -} diff --git a/nixos/system/packages/sops/secrets/secrets.yaml b/nixos/system/packages/sops/secrets/secrets.yaml index 52555f1..a1e592e 100644 --- a/nixos/system/packages/sops/secrets/secrets.yaml +++ b/nixos/system/packages/sops/secrets/secrets.yaml @@ -3,7 +3,7 @@ kogami: syncthing: ENC[AES256_GCM,data:ero9yQ==,iv:lPpT2WMB9BVb1o8VL0X9hDtzCZv76fLIZh7+5Tkv+Ik=,tag:SVLwrE9MK+nSpJVvEEaByw==,type:str] ginoza: password-hash: ENC[AES256_GCM,data:xqE0y3Z7+kasYFQLn4Wuo+/c9L8BEakf2HKgN5BsttC2iDuzYSvXrP8K6pe5Skdi5Aq0MVz9LixJFM3PBgLORL1C6k0iDSardw==,iv:bKL40h0rGNmnnkA7EieKAD5KyENXOiTNsTVH1V0B7HU=,tag:c1MsRuiOK/j2b0iKOyO8FQ==,type:str] -yubikey_id: ENC[AES256_GCM,data:ZyamX5gxoW4=,iv:4tW7muk6AaJf9VmXmFd6Ut63U27fFD8QgYSBx3RgOfw=,tag:IFlSiOffMyc33Rw1gxwCPA==,type:int] +yubikey_id: ENC[AES256_GCM,data:4bZm4XBjACU=,iv:4XtQhcy5nbk/uYXyYus5dnnOR/QhXwpIkiFN/520cMI=,tag:SqGhII62N+VOI5nbsPw+IQ==,type:int] ssh_keys: masaoka_private: ENC[AES256_GCM,data:3xiESl2Lc9EEsTCnr9K+CUMPgpQgnH0LC/wTInuLDrsRXuBXTHUzIZT1P8DwZ520M5NeGO0qDkiF4gH9rwm2Jzp3KKR7S1aruS51mouQUnr3e965RI9jeCdogQYkXMbpGVDk0eWApUx/iQz/hKWvaCRMBWOnnsTKRgDRRBNry8MJAFlypBbpr5aGnkJYzVCRH+c8b1tY8HYuZJtQpbeI5PK3YMhyD9AiUcl3j4LduY/GGcsX1so6EeNeYwzEWG7Qh9dEO2iFGwYhqtlPs3HgY9UrKUrFht6aDP+g6uzuK2Sg5iuKgygPviN0pbFcyKUWzqpecoOaMMFuf9GpDsqtDaE+I1c8XP4Fa4Nmql5P/0LVu2ozZwvUt179oo+8GboQunr0XdLSErUZwFMZ2uAaG5ej/5xaCLmaoM9Ukj804+6LWZ6ty595LmJhYREn1C8Dvka2IBEQk7pWfC3Y0eOFfUPqcsRG6VX1Aw0a7PSPaTCK7ZBLOqaNRihn1/AZd/4yGWmh+8eHoxh+/5mMXcv3nUS/nzxUDt6AxBhJP3LXbY+XDpWU+qdlF3sibcpfwzFcffO4g6ehQ6Jsbd7kbt5CefCp2uUamHvNHXSV41s1DCPtcKzKZ+RItPLa+6GM7KvqB0GN3G56MaiTbKtXzwUPzSzZHnKK2gN3GWd9VDTWQrMlh1Zre0PhdmYtjrvBGXDcmhfftowkzZZCT3Ml76356gjszs331ddXJ9v3gRh/TX2Q,iv:8Ls+tDol+PeNCJP+sy4qwTIDFMZJA9dF4x31pygUIXk=,tag:rGqgoyYu+Nd4d3KQ8XnlfA==,type:str] masaoka_public: ENC[AES256_GCM,data:g6L2wZth2SaKDrD8hKlVkVWJa6WFi0XE2ra+9HF2uhTH1llCYmLab5CEhDsjTHyh65U4IAfsrYrMwlJH2iQXn/L6SLQmR00pn6qYfQ6sURCwZvSxKoJuHTuTNv7AH8J5Nxq/u6SMjYGVKhw/6ewHEOygVs0/a+rDFcn4x2WXPgRGKLa1CEyncfvslyYL,iv:dNDGDU0ZUuRDzcUTWh4SGnbfzuRUoDL4i1j/mLwQ1Gc=,tag:E8yzoyBee3uAgit9aoOeLA==,type:str] @@ -22,8 +22,8 @@ sops: T0cxV21SN0hJaFg3R3hpTjIxa3lJNVEKdIrR5XDHxpCojk2A1pxc4dYtSJRrObbY JS/nDgu74LugEchiOhuIJ7nh3MS5XBOmmt2GTHrqxZEZFoIykjIGug== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-01-07T17:58:06Z" - mac: ENC[AES256_GCM,data:SnuO2BSpo3Zs0FatGLC3pT9X92/CUB/D7UE0X7FkK/CLXFMZFT1FRS7Ru+FgHXzCnQIUDtVNdJDOkatt0CdgjMKPxNXSOZRSv4A1NCGhzVDGX9/BjLYmdTWlJ2KEbirvPTi8SffIJt2YkaAqhBvRo9EByAZV/AnokA/Oi9xdO0I=,iv:qEXAbN6388LWUnEx/L6Rgzrnxis3KT2gB0AI9raGWJA=,tag:9oLpm5TgGIxPev12PTTb+g==,type:str] + lastmodified: "2025-01-12T07:42:17Z" + mac: ENC[AES256_GCM,data:BMYmvuVmVJVtNm3vIJmAT8dJUZ0goj3ZH9BzxwnzwDpbcxWLjpLneaZoK48gIFZVGH1AbQ5wy+2ACfDwnNwNoluz3cNUWhdXD7Fo822MGPPK6j5NVyL1Umj1LVEccfTUgUcO33ZApspR+nrjxvCiFrPkaWkIuqrz7evYUO39wVM=,iv:g/x48p63og/X74X9Qu+LtUxDfxqhZKgYeAqm+g8OA+U=,tag:sNSLZz0yO+Uci4tQcELwwA==,type:str] pgp: [] unencrypted_suffix: _unencrypted version: 3.9.2 diff --git a/nvf/flake.nix b/nvf/flake.nix new file mode 100644 index 0000000..39a9602 --- /dev/null +++ b/nvf/flake.nix @@ -0,0 +1,18 @@ +{ + description = "My neovim nvf configuration"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; + }; + + outputs = {nixpkgs, ...} @ inputs: { + packages."x86_64-linux".nvf = + (inputs.nvf.lib.neovimConfiguration { + pkgs = nixpkgs.legacyPackages."x86_64-linux"; + modules = [ + ./nvf.nix + ]; + }) + .neovim; + }; +} diff --git a/nvf/nvf.nix b/nvf/nvf.nix new file mode 100644 index 0000000..b1f1eb1 --- /dev/null +++ b/nvf/nvf.nix @@ -0,0 +1,214 @@ +{...}: { + config.vim = { + viAlias = true; + vimAlias = true; + + spellcheck = { + enable = true; + }; + + lsp = { + formatOnSave = true; + lspkind.enable = false; + lightbulb.enable = true; + lspsaga.enable = false; + trouble.enable = true; + lspSignature.enable = true; + #otter-nvim.enable = isMaximal; + #lsplines.enable = isMaximal; + #nvim-docs-view.enable = isMaximal; + }; + + debugger = { + nvim-dap = { + enable = true; + ui.enable = true; + }; + }; + + # This section does not include a comprehensive list of available language modules. + # To list all available language module options, please visit the nvf manual. + languages = { + enableLSP = true; + enableFormat = true; + enableTreesitter = true; + enableExtraDiagnostics = true; + + # Languages that will be supported in default and maximal configurations. + nix.enable = true; + markdown.enable = true; + + # Languages that are enabled in the maximal configuration. + bash.enable = true; + clang.enable = true; + css.enable = true; + html.enable = true; + go.enable = true; + lua.enable = true; + python.enable = true; + rust = { + enable = true; + crates.enable = true; + }; + + # Language modules that are not as common. + assembly.enable = true; + csharp.enable = false; + }; + + visuals = { + nvim-scrollbar.enable = false; + nvim-web-devicons.enable = true; + nvim-cursorline.enable = true; + cinnamon-nvim.enable = true; + fidget-nvim.enable = true; + + highlight-undo.enable = true; + indent-blankline.enable = true; + + # Fun + cellular-automaton.enable = false; + }; + + statusline = { + lualine = { + enable = true; + theme = "catppuccin"; + }; + }; + + theme = { + enable = true; + name = "catppuccin"; + style = "mocha"; + transparent = false; + }; + + autopairs.nvim-autopairs.enable = true; + + autocomplete.nvim-cmp.enable = true; + snippets.luasnip.enable = true; + + filetree = { + neo-tree = { + enable = true; + }; + }; + + tabline = { + nvimBufferline.enable = true; + }; + + treesitter.context.enable = true; + + binds = { + whichKey.enable = true; + cheatsheet.enable = true; + }; + + telescope.enable = true; + + git = { + enable = true; + gitsigns.enable = true; + gitsigns.codeActions.enable = false; # throws an annoying debug message + }; + + minimap = { + minimap-vim.enable = false; + codewindow.enable = true; # lighter, faster, and uses lua for configuration + }; + + dashboard = { + dashboard-nvim.enable = false; + alpha.enable = true; + }; + + notify = { + nvim-notify.enable = true; + }; + + projects = { + project-nvim.enable = true; + }; + + utility = { + ccc.enable = false; + vim-wakatime.enable = false; + icon-picker.enable = true; + surround.enable = true; + diffview-nvim.enable = true; + motion = { + hop.enable = true; + leap.enable = true; + precognition.enable = true; + }; + + images = { + image-nvim.enable = false; + }; + }; + + notes = { + obsidian.enable = false; # FIXME: neovim fails to build if obsidian is enabled + neorg.enable = false; + orgmode.enable = false; + mind-nvim.enable = true; + todo-comments.enable = true; + }; + + terminal = { + toggleterm = { + enable = true; + lazygit.enable = true; + }; + }; + + ui = { + borders.enable = true; + noice.enable = true; + colorizer.enable = true; + modes-nvim.enable = false; # the theme looks terrible with catppuccin + illuminate.enable = true; + breadcrumbs = { + enable = true; + navbuddy.enable = true; + }; + smartcolumn = { + enable = true; + setupOpts.custom_colorcolumn = { + # this is a freeform module, it's `buftype = int;` for configuring column position + nix = "110"; + ruby = "120"; + java = "130"; + go = ["90" "130"]; + }; + }; + fastaction.enable = true; + }; + + assistant = { + chatgpt.enable = false; + copilot = { + enable = false; + cmp.enable = true; + }; + }; + + session = { + nvim-session-manager.enable = false; + }; + + gestures = { + gesture-nvim.enable = false; + }; + + comments = { + comment-nvim.enable = true; + }; + + presence = { + neocord.enable = false; + }; + }; +}