| author | |
| committer | |
| log | 94fcf2aaa0ea020ce7c3b9b0589b5eb39a738f62 |
| tree | 0260ff6f689f0e3b0f67a74d96d84f4760de467c |
| parent | c72bf0900cd12e72ca09bbf569dc02fff85d6f02 |
8 files changed, 370 insertions(+), 9 deletions(-)
users/fish/cattop/configuration.nix+9-6| ... | @@ -66,12 +66,14 @@ | ... | @@ -66,12 +66,14 @@ |
| 66 | services.printing.enable = true; | 66 | services.printing.enable = true; |
| 67 | 67 | ||
| 68 | # Enable sound. | 68 | # Enable sound. |
| 69 | # services.pulseaudio.enable = true; | 69 | services.pulseaudio.enable = false; |
| 70 | # OR | 70 | security.rtkit.enable = true; |
| 71 | # services.pipewire = { | 71 | services.pipewire = { |
| 72 | # enable = true; | 72 | enable = true; |
| 73 | # pulse.enable = true; | 73 | alsa.enable = true; |
| 74 | # }; | 74 | alsa.support32Bit = true; |
| 75 | pulse.enable = true; | ||
| 76 | }; | ||
| 75 | 77 | ||
| 76 | # Enable touchpad support (enabled default in most desktopManager). | 78 | # Enable touchpad support (enabled default in most desktopManager). |
| 77 | # services.libinput.enable = true; | 79 | # services.libinput.enable = true; |
| ... | @@ -81,6 +83,7 @@ | ... | @@ -81,6 +83,7 @@ |
| 81 | extraGroups = [ | 83 | extraGroups = [ |
| 82 | "wheel" | 84 | "wheel" |
| 83 | "dialout" | 85 | "dialout" |
| 86 | "audio" | ||
| 84 | ]; | 87 | ]; |
| 85 | packages = with pkgs; [ | 88 | packages = with pkgs; [ |
| 86 | tree | 89 | tree |
users/fish/cattop/home.nix+4-1| ... | @@ -8,7 +8,7 @@ | ... | @@ -8,7 +8,7 @@ |
| 8 | ghostty | 8 | ghostty |
| 9 | signal-desktop | 9 | signal-desktop |
| 10 | spotify | 10 | spotify |
| 11 | legcord | 11 | equibop |
| 12 | 12 | ||
| 13 | # Gaming | 13 | # Gaming |
| 14 | (prismlauncher.override { gamemodeSupport = true; }) | 14 | (prismlauncher.override { gamemodeSupport = true; }) |
| ... | @@ -27,14 +27,17 @@ | ... | @@ -27,14 +27,17 @@ |
| 27 | efibootmgr | 27 | efibootmgr |
| 28 | pqiv | 28 | pqiv |
| 29 | imagemagick | 29 | imagemagick |
| 30 | toybox | ||
| 30 | 31 | ||
| 31 | # Dev tools | 32 | # Dev tools |
| 32 | hyfetch | 33 | hyfetch |
| 33 | python3 | 34 | python3 |
| 34 | gh | 35 | gh |
| 35 | cmake | 36 | cmake |
| 37 | ripgrep | ||
| 36 | 38 | ||
| 37 | # Unsorted | 39 | # Unsorted |
| 40 | kicad | ||
| 38 | ]; | 41 | ]; |
| 39 | }; | 42 | }; |
| 40 | 43 |
users/fish/vim.nix+38-2| ... | @@ -1,4 +1,40 @@ | ... | @@ -1,4 +1,40 @@ |
| 1 | { ... }: | 1 | { pkgs, ... }: |
| 2 | { | 2 | { |
| 3 | vim.languages.svelte.enable = true; | 3 | imports = [ |
| 4 | ./vim/default.nix | ||
| 5 | ]; | ||
| 6 | |||
| 7 | vim = { | ||
| 8 | #enable python provider | ||
| 9 | withPython3 = true; | ||
| 10 | python3Packages = [ "pynvim" ]; | ||
| 11 | |||
| 12 | autocmds = [ | ||
| 13 | #Autocommand to fall back to treesitter folding if LSP doesnt support it | ||
| 14 | { | ||
| 15 | event = [ "LspAttach" ]; | ||
| 16 | callback = pkgs.lib.generators.mkLuaInline '' | ||
| 17 | function(args) | ||
| 18 | local client = vim.lsp.get_client_by_id(args.data.client_id) | ||
| 19 | if client:supports_method('textDocument/foldingRange') then | ||
| 20 | local win = vim.api.nvim_get_current_win() | ||
| 21 | vim.wo[win][0].foldexpr = 'v:lua.vim.lsp.foldexpr()' | ||
| 22 | end | ||
| 23 | end | ||
| 24 | ''; | ||
| 25 | } | ||
| 26 | ]; | ||
| 27 | |||
| 28 | tabline = { | ||
| 29 | nvimBufferline.enable = true; | ||
| 30 | }; | ||
| 31 | startPlugins = [ | ||
| 32 | "nui-nvim" | ||
| 33 | ]; | ||
| 34 | theme = { | ||
| 35 | name = "catppuccin"; | ||
| 36 | style = "mocha"; | ||
| 37 | }; | ||
| 38 | hideSearchHighlight = true; | ||
| 39 | }; | ||
| 4 | } | 40 | } |
users/fish/vim/default.nix created+9| ... | @@ -0,0 +1,9 @@ | ||
| 1 | { ... }: | ||
| 2 | { | ||
| 3 | imports = [ | ||
| 4 | ./languages.nix | ||
| 5 | ./latex.nix | ||
| 6 | ./visuals.nix | ||
| 7 | ./mini.nix | ||
| 8 | ]; | ||
| 9 | } | ||
users/fish/vim/languages.nix created+155| ... | @@ -0,0 +1,155 @@ | ||
| 1 | { | ||
| 2 | flake, | ||
| 3 | user, | ||
| 4 | host, | ||
| 5 | pkgs, | ||
| 6 | ... | ||
| 7 | }: | ||
| 8 | { | ||
| 9 | vim = { | ||
| 10 | extraPackages = with pkgs; [ | ||
| 11 | python312Packages.pylatexenc | ||
| 12 | ]; | ||
| 13 | languages = { | ||
| 14 | lua.lsp.enable = true; | ||
| 15 | lua.lsp.lazydev.enable = true; | ||
| 16 | python = { | ||
| 17 | format.type = "ruff"; | ||
| 18 | }; | ||
| 19 | markdown = { | ||
| 20 | enable = true; | ||
| 21 | extensions.render-markdown-nvim = { | ||
| 22 | enable = true; | ||
| 23 | }; | ||
| 24 | }; | ||
| 25 | nix = { | ||
| 26 | lsp.servers = [ | ||
| 27 | "nil" | ||
| 28 | "nixd" | ||
| 29 | ]; | ||
| 30 | }; | ||
| 31 | }; | ||
| 32 | |||
| 33 | formatter.conform-nvim = { | ||
| 34 | enable = true; | ||
| 35 | setupOpts = { | ||
| 36 | formatters_by_ft = { | ||
| 37 | fish = [ "fish_indent" ]; | ||
| 38 | tex = [ "latexindent" ]; | ||
| 39 | }; | ||
| 40 | }; | ||
| 41 | }; | ||
| 42 | diagnostics = { | ||
| 43 | enable = true; | ||
| 44 | config = { | ||
| 45 | virtual_text = { | ||
| 46 | format = pkgs.lib.generators.mkLuaInline '' | ||
| 47 | function(diagnostic) | ||
| 48 | return string.format("%s (%s)", diagnostic.message, diagnostic.source) | ||
| 49 | end | ||
| 50 | ''; | ||
| 51 | }; | ||
| 52 | }; | ||
| 53 | nvim-lint = { | ||
| 54 | enable = true; | ||
| 55 | linters_by_ft = { | ||
| 56 | nix = [ "statix" ]; | ||
| 57 | tex = [ "chktex" ]; | ||
| 58 | haskell = [ "hlint" ]; | ||
| 59 | }; | ||
| 60 | |||
| 61 | linters = { | ||
| 62 | chktex = { | ||
| 63 | ignore_exitcode = true; | ||
| 64 | }; | ||
| 65 | }; | ||
| 66 | }; | ||
| 67 | }; | ||
| 68 | treesitter = { | ||
| 69 | enable = true; | ||
| 70 | fold = true; | ||
| 71 | addDefaultGrammars = true; | ||
| 72 | highlight = { | ||
| 73 | additionalVimRegexHighlighting = true; | ||
| 74 | }; | ||
| 75 | |||
| 76 | grammars = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [ | ||
| 77 | markdown_inline | ||
| 78 | markdown | ||
| 79 | ]; | ||
| 80 | |||
| 81 | highlight.enable = true; | ||
| 82 | indent.enable = false; | ||
| 83 | }; | ||
| 84 | |||
| 85 | visuals = { | ||
| 86 | fidget-nvim = { | ||
| 87 | setupOpts = { | ||
| 88 | logger.level = "trace"; | ||
| 89 | }; | ||
| 90 | }; | ||
| 91 | }; | ||
| 92 | |||
| 93 | ui = { | ||
| 94 | nvim-ufo = { | ||
| 95 | enable = true; | ||
| 96 | }; | ||
| 97 | }; | ||
| 98 | autocomplete.blink-cmp = { | ||
| 99 | enable = true; | ||
| 100 | mappings = { | ||
| 101 | close = null; | ||
| 102 | complete = null; | ||
| 103 | confirm = null; | ||
| 104 | next = null; | ||
| 105 | previous = null; | ||
| 106 | scrollDocsDown = null; | ||
| 107 | scrollDocsUp = null; | ||
| 108 | }; | ||
| 109 | |||
| 110 | setupOpts = { | ||
| 111 | keymap = { | ||
| 112 | preset = "super-tab"; | ||
| 113 | }; | ||
| 114 | completion = { | ||
| 115 | ghost_text.enabled = false; | ||
| 116 | list.selection.preselect = true; | ||
| 117 | trigger = { | ||
| 118 | show_in_snippet = true; | ||
| 119 | }; | ||
| 120 | accept.auto_brackets.enabled = true; | ||
| 121 | }; | ||
| 122 | signature = { | ||
| 123 | enabled = true; | ||
| 124 | }; | ||
| 125 | }; | ||
| 126 | }; | ||
| 127 | |||
| 128 | lazy.plugins."blink.pairs" = { | ||
| 129 | enabled = true; | ||
| 130 | package = pkgs.vimPlugins.blink-pairs; | ||
| 131 | setupModule = "blink.pairs"; | ||
| 132 | setupOpts = { | ||
| 133 | mappings = { | ||
| 134 | # -- you can call require("blink.pairs.mappings").enable() and require("blink.pairs.mappings").disable() to enable/disable mappings at runtime | ||
| 135 | enabled = true; | ||
| 136 | # -- see the defaults: https://github.com/Saghen/blink.pairs/blob/main/lua/blink/pairs/config/mappings.lua#L10 | ||
| 137 | pairs = [ ]; | ||
| 138 | }; | ||
| 139 | highlights = { | ||
| 140 | enabled = true; | ||
| 141 | groups = [ | ||
| 142 | "BlinkPairsOrange" | ||
| 143 | "BlinkPairsPurple" | ||
| 144 | "BlinkPairsBlue" | ||
| 145 | ]; | ||
| 146 | matchparen = { | ||
| 147 | enabled = true; | ||
| 148 | group = "MatchParen"; | ||
| 149 | }; | ||
| 150 | }; | ||
| 151 | debug = false; | ||
| 152 | }; | ||
| 153 | }; | ||
| 154 | }; | ||
| 155 | } | ||
users/fish/vim/latex.nix created+118| ... | @@ -0,0 +1,118 @@ | ||
| 1 | { pkgs, host, ... }: | ||
| 2 | { | ||
| 3 | vim = { | ||
| 4 | extraPackages = with pkgs; [ | ||
| 5 | texliveFull | ||
| 6 | ]; | ||
| 7 | lazy.plugins.cmp-vimtex = { | ||
| 8 | enabled = true; | ||
| 9 | package = pkgs.vimPlugins.cmp-vimtex; | ||
| 10 | lazy = false; | ||
| 11 | |||
| 12 | }; | ||
| 13 | lazy.plugins.vimtex = { | ||
| 14 | enabled = true; | ||
| 15 | package = pkgs.vimPlugins.vimtex; | ||
| 16 | lazy = false; | ||
| 17 | }; | ||
| 18 | |||
| 19 | globals = { | ||
| 20 | tex_flavor = "latex"; | ||
| 21 | maplocalleader = "\\"; | ||
| 22 | vimtex_compiler_method = "latexmk"; | ||
| 23 | vimtex_view_method = if host.darwin then "skim" else "zathura"; | ||
| 24 | vimtex_view_automatic = 1; | ||
| 25 | vimtex_compiler_latexmk = { | ||
| 26 | callback = 1; | ||
| 27 | continuous = 1; | ||
| 28 | executable = "latexmk"; | ||
| 29 | hooks = [ ]; | ||
| 30 | options = [ | ||
| 31 | "-verbose" | ||
| 32 | "-file-line-error" | ||
| 33 | "-synctex=1" | ||
| 34 | "-interaction=nonstopmode" | ||
| 35 | "-shell-escape" | ||
| 36 | ]; | ||
| 37 | }; | ||
| 38 | vimtex_log_ignore = [ | ||
| 39 | "Underfull" | ||
| 40 | "Overfull" | ||
| 41 | "specifier changed to" | ||
| 42 | "Token not allowed in a PDF string" | ||
| 43 | ]; | ||
| 44 | vimtex_quickfix_ignore_filters = [ | ||
| 45 | "Underfull" | ||
| 46 | "Overfull" | ||
| 47 | ]; | ||
| 48 | }; | ||
| 49 | |||
| 50 | autocomplete.blink-cmp = { | ||
| 51 | sourcePlugins = { | ||
| 52 | "blink.compat" = { | ||
| 53 | enable = true; | ||
| 54 | package = "blink-compat"; | ||
| 55 | module = "blink.compat.source"; | ||
| 56 | }; | ||
| 57 | }; | ||
| 58 | setupOpts = { | ||
| 59 | sources = { | ||
| 60 | default = [ "vimtex" ]; | ||
| 61 | providers = { | ||
| 62 | vimtex = { | ||
| 63 | name = "vimtex"; | ||
| 64 | module = "blink.compat.source"; | ||
| 65 | score_offset = 100; | ||
| 66 | }; | ||
| 67 | }; | ||
| 68 | }; | ||
| 69 | }; | ||
| 70 | }; | ||
| 71 | |||
| 72 | augroups = [ | ||
| 73 | { | ||
| 74 | name = "VimTeX Events"; | ||
| 75 | } | ||
| 76 | ]; | ||
| 77 | autocmds = [ | ||
| 78 | { | ||
| 79 | pattern = [ "VimtexEventViewReverse" ]; | ||
| 80 | event = [ "User" ]; | ||
| 81 | desc = "Return to nvim after reverse search"; | ||
| 82 | command = "call b:vimtex.viewer.xdo_focus_vim()"; | ||
| 83 | group = "VimTeX Events"; | ||
| 84 | } | ||
| 85 | { | ||
| 86 | pattern = [ "VimtexEventQuit" ]; | ||
| 87 | event = [ "User" ]; | ||
| 88 | desc = "Close pdf after exiting nvim"; | ||
| 89 | command = "VimtexClean"; | ||
| 90 | group = "VimTeX Events"; | ||
| 91 | } | ||
| 92 | |||
| 93 | { | ||
| 94 | pattern = [ "VimtexEventInitPost" ]; | ||
| 95 | event = [ "User" ]; | ||
| 96 | desc = "Start compiling when opening nvim to a tex file"; | ||
| 97 | command = "VimtexCompile"; | ||
| 98 | group = "VimTeX Events"; | ||
| 99 | } | ||
| 100 | |||
| 101 | ]; | ||
| 102 | |||
| 103 | lsp = { | ||
| 104 | servers = { | ||
| 105 | texlab = { | ||
| 106 | enable = true; | ||
| 107 | cmd = [ "${pkgs.texlab}/bin/texlab" ]; | ||
| 108 | filetypes = [ "tex" ]; | ||
| 109 | }; | ||
| 110 | }; | ||
| 111 | }; | ||
| 112 | treesitter = { | ||
| 113 | grammars = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [ | ||
| 114 | latex | ||
| 115 | ]; | ||
| 116 | }; | ||
| 117 | }; | ||
| 118 | } | ||
users/fish/vim/mini.nix created+10| ... | @@ -0,0 +1,10 @@ | ||
| 1 | { pkgs, ... }: | ||
| 2 | { | ||
| 3 | vim = { | ||
| 4 | mini = { | ||
| 5 | icons.enable = true; | ||
| 6 | ai.enable = true; | ||
| 7 | surround.enable = true; | ||
| 8 | }; | ||
| 9 | }; | ||
| 10 | } | ||
users/fish/vim/visuals.nix created+27| ... | @@ -0,0 +1,27 @@ | ||
| 1 | { pkgs, ... }: | ||
| 2 | { | ||
| 3 | vim = { | ||
| 4 | ui = { | ||
| 5 | noice = { | ||
| 6 | enable = true; | ||
| 7 | setupOpts = { | ||
| 8 | lsp = { | ||
| 9 | progress.enabled = false; | ||
| 10 | signature.enabled = true; | ||
| 11 | }; | ||
| 12 | presets = { | ||
| 13 | lsp_doc_border = true; | ||
| 14 | long_message_to_split = true; | ||
| 15 | inc_rename = false; | ||
| 16 | command_palette = false; | ||
| 17 | bottom_search = true; | ||
| 18 | }; | ||
| 19 | }; | ||
| 20 | }; | ||
| 21 | borders = { | ||
| 22 | enable = true; | ||
| 23 | }; | ||
| 24 | }; | ||
| 25 | |||
| 26 | }; | ||
| 27 | } | ||