| author | |
| committer | |
| log | af005a3fd7925b855dda0128e71b245ba844d2b8 |
| tree | e3f26c3de63869ca81cf4540dfcabefed7a1c04f |
| parent | 091bca5c8f57bbdb3031ef1d5d748ea9331d3677 |
| parent | 4e0a082cfa9ce13e6bfe45fa93565226667b82fa |
| signature | Commit is signed but in an unrecognized format. |
20 files changed, 737 insertions(+), 146 deletions(-)
.gitignore+2-1| ... | @@ -1,4 +1,5 @@ | ... | @@ -1,4 +1,5 @@ |
| 1 | flake.lock | ||
| 2 | .DS_STORE | 1 | .DS_STORE |
| 2 | .hostname | ||
| 3 | flake.lock | ||
| 3 | result | 4 | result |
| 4 | result-* | 5 | result-* |
flake.nix+6| ... | @@ -134,6 +134,12 @@ | ... | @@ -134,6 +134,12 @@ |
| 134 | host = "paperback"; | 134 | host = "paperback"; |
| 135 | system = "aarch64-darwin"; | 135 | system = "aarch64-darwin"; |
| 136 | }; | 136 | }; |
| 137 | # clover's work macbook pro | ||
| 138 | darwinConfigurations.clover-work-mac = mkSystem "clover-work-mac" { | ||
| 139 | user = "clover"; | ||
| 140 | host = "work"; | ||
| 141 | system = "aarch64-darwin"; | ||
| 142 | }; | ||
| 137 | 143 | ||
| 138 | # fish's cattop | 144 | # fish's cattop |
| 139 | nixosConfigurations.cattop = mkSystem "cattop" { | 145 | nixosConfigurations.cattop = mkSystem "cattop" { |
modules/home/default.nix+28| ... | @@ -77,6 +77,7 @@ in | ... | @@ -77,6 +77,7 @@ in |
| 77 | # ViM and Neovim | 77 | # ViM and Neovim |
| 78 | ".*.swp" | 78 | ".*.swp" |
| 79 | ".nvimlog" | 79 | ".nvimlog" |
| 80 | ".jj" | ||
| 80 | ]; | 81 | ]; |
| 81 | }; | 82 | }; |
| 82 | 83 | ||
| ... | @@ -134,6 +135,33 @@ in | ... | @@ -134,6 +135,33 @@ in |
| 134 | autocd = true; | 135 | autocd = true; |
| 135 | history.size = 10000; | 136 | history.size = 10000; |
| 136 | }; | 137 | }; |
| 138 | jujutsu = { | ||
| 139 | settings = { | ||
| 140 | user = { | ||
| 141 | email = config.programs.git.userEmail; | ||
| 142 | name = config.programs.git.userName; | ||
| 143 | }; | ||
| 144 | signing = { | ||
| 145 | behavior = "own"; | ||
| 146 | backend = "ssh"; | ||
| 147 | key = "~/.ssh/id_ed25519.pub"; | ||
| 148 | }; | ||
| 149 | git = { | ||
| 150 | sign-on-push = true; | ||
| 151 | push-new-bookmarks = true; | ||
| 152 | }; | ||
| 153 | ui = { | ||
| 154 | default-command = "log"; | ||
| 155 | diff-formatter = [ | ||
| 156 | "${pkgs.difftastic}/bin/difft" | ||
| 157 | "--color=always" | ||
| 158 | "$left" | ||
| 159 | "$right" | ||
| 160 | ]; | ||
| 161 | pager = "${pkgs.bat}/bin/bat --style=plain"; | ||
| 162 | }; | ||
| 163 | }; | ||
| 164 | }; | ||
| 137 | 165 | ||
| 138 | ghostty.settings.custom-shader = lib.mkIf ( | 166 | ghostty.settings.custom-shader = lib.mkIf ( |
| 139 | cfg.ghostty.shader != null | 167 | cfg.ghostty.shader != null |
modules/neovim/default.nix+1| ... | @@ -131,6 +131,7 @@ | ... | @@ -131,6 +131,7 @@ |
| 131 | hide_dotfiles = false; | 131 | hide_dotfiles = false; |
| 132 | never_show = [ | 132 | never_show = [ |
| 133 | ".git" | 133 | ".git" |
| 134 | ".jj" | ||
| 134 | ".DS_Store" # macOS | 135 | ".DS_Store" # macOS |
| 135 | "thumbs.db" # Windows | 136 | "thumbs.db" # Windows |
| 136 | ]; | 137 | ]; |
switch+16-5| ... | @@ -1,12 +1,23 @@ | ... | @@ -1,12 +1,23 @@ |
| 1 | #!/bin/sh | 1 | #!/bin/sh |
| 2 | nh_subcommand="os" | 2 | nh_subcommand="os" |
| 3 | fallback_command="nixos-rebuild" | 3 | fallback_command="nixos-rebuild" |
| 4 | if [ "$(uname -o)" = "darwin" ]; then | 4 | hostname_file="$(dirname "$0")/.hostname" |
| 5 | nh_subcommand="darwin" | 5 | if [ -n "$1" ]; then |
| 6 | fallback_command="nix run .#darwin-rebuild" | 6 | hostname="$1" |
| 7 | elif [ -f "$hostname_file" ]; then | ||
| 8 | hostname=$(cat "$hostname_file") | ||
| 9 | fi | ||
| 10 | if [ -z "$hostname" ]; then | ||
| 11 | hostname="$(hostname)" | ||
| 12 | fi | ||
| 13 | printf "%s" "$hostname" >"$hostname_file" | ||
| 14 | if [ "$(uname -o)" = "Darwin" ]; then | ||
| 15 | nh_subcommand="darwin" | ||
| 16 | fallback_command="nix run .#darwin-rebuild" | ||
| 17 | hostname="darwinConfigurations.$hostname" | ||
| 7 | fi | 18 | fi |
| 8 | if command -v nh >/dev/null; then | 19 | if command -v nh >/dev/null; then |
| 9 | nh $nh_subcommand switch . | 20 | nh $nh_subcommand switch '.#'"$hostname" |
| 10 | else | 21 | else |
| 11 | $fallback_command -- switch --flake . | 22 | $fallback_command -- switch --flake '.#'"$hostname" |
| 12 | fi | 23 | fi |
users/clover/configuration.nix+8| ... | @@ -17,6 +17,14 @@ | ... | @@ -17,6 +17,14 @@ |
| 17 | ]; | 17 | ]; |
| 18 | }; | 18 | }; |
| 19 | 19 | ||
| 20 | homebrew = { | ||
| 21 | enable = true; | ||
| 22 | casks = [ | ||
| 23 | "db-browser-for-sqlite" | ||
| 24 | "alt-tab" | ||
| 25 | ]; | ||
| 26 | }; | ||
| 27 | |||
| 20 | # system preferences | 28 | # system preferences |
| 21 | system.defaults = { | 29 | system.defaults = { |
| 22 | NSGlobalDomain = { | 30 | NSGlobalDomain = { |
users/clover/home.nix+197-15| ... | @@ -10,9 +10,7 @@ in | ... | @@ -10,9 +10,7 @@ in |
| 10 | let | 10 | let |
| 11 | # packages to always install | 11 | # packages to always install |
| 12 | all = [ | 12 | all = [ |
| 13 | (ffmpeg.override { | 13 | ffmpeg-full |
| 14 | withSvtav1 = true; | ||
| 15 | }) | ||
| 16 | ripgrep | 14 | ripgrep |
| 17 | uv | 15 | uv |
| 18 | nh | 16 | nh |
| ... | @@ -20,8 +18,8 @@ in | ... | @@ -20,8 +18,8 @@ in |
| 20 | ]; | 18 | ]; |
| 21 | # packages to install for desktop environments (non-server) | 19 | # packages to install for desktop environments (non-server) |
| 22 | desktop = [ | 20 | desktop = [ |
| 23 | git-town | ||
| 24 | lazygit | 21 | lazygit |
| 22 | jjui | ||
| 25 | ]; | 23 | ]; |
| 26 | # packages to install on all servers | 24 | # packages to install on all servers |
| 27 | server = [ ]; | 25 | server = [ ]; |
| ... | @@ -31,7 +29,6 @@ in | ... | @@ -31,7 +29,6 @@ in |
| 31 | ]; | 29 | ]; |
| 32 | # packages to install on linux desktops | 30 | # packages to install on linux desktops |
| 33 | linux = [ | 31 | linux = [ |
| 34 | reaper # TODO: why does this break on macOS | ||
| 35 | ]; | 32 | ]; |
| 36 | in | 33 | in |
| 37 | all ++ (if host.darwin then darwin else linux) ++ (if hostServer then server else desktop); | 34 | all ++ (if host.darwin then darwin else linux) ++ (if hostServer then server else desktop); |
| ... | @@ -49,7 +46,7 @@ in | ... | @@ -49,7 +46,7 @@ in |
| 49 | shader = "cursor-smear-black.glsl"; | 46 | shader = "cursor-smear-black.glsl"; |
| 50 | package = null; | 47 | package = null; |
| 51 | settings = { | 48 | settings = { |
| 52 | theme = "light:catppuccin-latte,dark:catppuccin-macchiato"; | 49 | theme = "light:Farmhouse Light,dark:Challenger Deep"; |
| 53 | font-family = "AT Name Mono"; | 50 | font-family = "AT Name Mono"; |
| 54 | adjust-cursor-thickness = 1; | 51 | adjust-cursor-thickness = 1; |
| 55 | background-opacity = 0.9; | 52 | background-opacity = 0.9; |
| ... | @@ -61,13 +58,15 @@ in | ... | @@ -61,13 +58,15 @@ in |
| 61 | zsh = { | 58 | zsh = { |
| 62 | enable = true; | 59 | enable = true; |
| 63 | shellAliases = { | 60 | shellAliases = { |
| 64 | switch = "nh darwin switch ~/config"; | 61 | switch = "~/config/switch"; |
| 65 | gg = "lazygit"; | 62 | gg = "lazygit"; |
| 66 | ga = "git add"; | 63 | ga = "git add"; |
| 67 | g = "git status"; | 64 | g = "git status"; |
| 68 | gp = "git pull --rebase && git push"; | 65 | gp = "git pull --rebase && git push"; |
| 69 | }; | 66 | }; |
| 70 | profileExtra = '' | 67 | initContent = '' |
| 68 | export PS1="%{$(tput setaf 207)%}%m%{$(tput setaf 15)%}:%{$(tput setaf 87)%}%~ %{$(tput sgr0)%}$ " | ||
| 69 | |||
| 71 | function python() { | 70 | function python() { |
| 72 | dirname=$(dirname $1 2>/dev/null) | 71 | dirname=$(dirname $1 2>/dev/null) |
| 73 | if [ -z "$dirname" ]; then | 72 | if [ -z "$dirname" ]; then |
| ... | @@ -81,8 +80,198 @@ in | ... | @@ -81,8 +80,198 @@ in |
| 81 | # use a git-specific email | 80 | # use a git-specific email |
| 82 | git.userEmail = "git@paperclover.net"; | 81 | git.userEmail = "git@paperclover.net"; |
| 83 | 82 | ||
| 83 | jujutsu = { | ||
| 84 | enable = true; | ||
| 85 | # my workflow is based on creating changes and editing them. while they | ||
| 86 | # are in progress the description starts with "WIP: " | ||
| 87 | settings = rec { | ||
| 88 | colors = { | ||
| 89 | bookmark = "green"; | ||
| 90 | bookmarks = colors.bookmark; | ||
| 91 | local_bookmarks = colors.bookmarks; | ||
| 92 | remote_bookmarks = colors.bookmark; | ||
| 93 | "working_copy bookmark" = "bright green"; | ||
| 94 | "working_copy bookmarks" = colors."working_copy bookmark"; | ||
| 95 | "working_copy local_bookmarks" = colors."working_copy bookmark"; | ||
| 96 | "working_copy remote_bookmarks" = colors."working_copy bookmark"; | ||
| 97 | |||
| 98 | "author" = { | ||
| 99 | fg = "white"; | ||
| 100 | bold = false; | ||
| 101 | italic = true; | ||
| 102 | }; | ||
| 103 | "working_copy author" = colors.author; | ||
| 104 | |||
| 105 | desc = { | ||
| 106 | bold = false; | ||
| 107 | fg = "bright white"; | ||
| 108 | }; | ||
| 109 | description = colors.desc; | ||
| 110 | cc_wip = { | ||
| 111 | fg = "bright yellow"; | ||
| 112 | bold = true; | ||
| 113 | reverse = true; | ||
| 114 | }; | ||
| 115 | cc_header = { | ||
| 116 | bold = true; | ||
| 117 | fg = "bright white"; | ||
| 118 | }; | ||
| 119 | cc_feat = "green"; | ||
| 120 | cc_fix = "red"; | ||
| 121 | cc_hotfix = "red"; | ||
| 122 | cc_chore = "yellow"; | ||
| 123 | cc_test = "blue"; | ||
| 124 | cc_other = "blue"; | ||
| 125 | cc_scope = { | ||
| 126 | fg = "cyan"; | ||
| 127 | bold = false; | ||
| 128 | italic = true; | ||
| 129 | }; | ||
| 130 | |||
| 131 | active_marker = { | ||
| 132 | fg = "bright magenta"; | ||
| 133 | bold = true; | ||
| 134 | reverse = true; | ||
| 135 | }; | ||
| 136 | conflict_marker = { | ||
| 137 | fg = "bright red"; | ||
| 138 | bold = true; | ||
| 139 | reverse = true; | ||
| 140 | }; | ||
| 141 | |||
| 142 | timestamp = "bright black"; | ||
| 143 | commit_id = { | ||
| 144 | fg = "bright black"; | ||
| 145 | bold = false; | ||
| 146 | }; | ||
| 147 | muted = "bright black"; | ||
| 148 | }; | ||
| 149 | # ui.graph.style = "square"; | ||
| 150 | revsets = { | ||
| 151 | log = "ancestors(description(regex:\"^(WIP:|\\\\s+$)\"):: | working_copies() | bookmarks(\"master\")::remote_bookmarks(\"master\") | bookmarks(glob:\"clo/*\")::, 5)"; | ||
| 152 | short-prefixes = "(trunk()..@)::"; | ||
| 153 | }; | ||
| 154 | # templates.log = "hl_wip(self)"; | ||
| 155 | |||
| 156 | template-aliases = { | ||
| 157 | # log template, highlighting the WIP commits by making everything else faded out | ||
| 158 | "hl_wip(commit)" = '' | ||
| 159 | if(commit.root(), format_root_commit(commit), | ||
| 160 | label("__commit__", | ||
| 161 | format_short_commit_header(commit) ++ "\n" ++ | ||
| 162 | format_commit_description(commit) | ||
| 163 | ) | ||
| 164 | ) | ||
| 165 | ''; | ||
| 166 | |||
| 167 | "format_commit_description(commit)" = '' | ||
| 168 | label("desc", format_commit_firstline(commit.description().first_line())) ++ | ||
| 169 | "\n" ++ if( | ||
| 170 | commit.description().starts_with("WIP:") || commit.current_working_copy(), | ||
| 171 | commit.description().remove_prefix(commit.description().first_line()).remove_prefix("\n").trim_end() ++ "\n ", | ||
| 172 | if(commit.description().remove_prefix(commit.description().first_line()).trim().len() > 0, | ||
| 173 | label("muted", lines_collapsed(commit.description().lines().filter(|x| x.trim().len() > 0).len() - 1)), | ||
| 174 | " " | ||
| 175 | ) | ||
| 176 | ) | ||
| 177 | ''; | ||
| 178 | "lines_collapsed(count)" = | ||
| 179 | ''("[" ++ stringify(count ++ " line" ++ if(count == 1, "", "s")) ++ " collapsed]\n")''; | ||
| 180 | "format_commit_firstline(line)" = '' | ||
| 181 | if(line.starts_with("WIP:"), | ||
| 182 | label("cc_wip", " WIP ") ++ " " ++ format_commit_firstline_a_wip(line.remove_prefix("WIP:").trim()), | ||
| 183 | format_commit_firstline_a_wip(line) | ||
| 184 | ) | ||
| 185 | ''; | ||
| 186 | "format_commit_firstline_a_wip(line)" = '' | ||
| 187 | if(line.starts_with("feat:") || line.starts_with("feat("), | ||
| 188 | label("cc_feat", "feat") ++ format_commit_firstline_a_cc_type(line.remove_prefix("feat")), | ||
| 189 | if(line.starts_with("fix:") || line.starts_with("fix("), | ||
| 190 | label("cc_fix", "fix") ++ format_commit_firstline_a_cc_type(line.remove_prefix("fix")), | ||
| 191 | if(line.starts_with("hotfix:") || line.starts_with("hotfix("), | ||
| 192 | label("cc_hotfix", "hotfix") ++ format_commit_firstline_a_cc_type(line.remove_prefix("hotfix")), | ||
| 193 | if(line.starts_with("chore:") || line.starts_with("chore("), | ||
| 194 | label("cc_chore", "chore") ++ format_commit_firstline_a_cc_type(line.remove_prefix("chore")), | ||
| 195 | if(line.starts_with("test:") || line.starts_with("test("), | ||
| 196 | label("cc_other", "test") ++ format_commit_firstline_a_cc_type(line.remove_prefix("test")), | ||
| 197 | if(line.starts_with("refactor:") || line.starts_with("refactor("), | ||
| 198 | label("cc_other", "refactor") ++ format_commit_firstline_a_cc_type(line.remove_prefix("refactor")), | ||
| 199 | if(line.starts_with("perf:") || line.starts_with("perf("), | ||
| 200 | label("cc_other", "perf") ++ format_commit_firstline_a_cc_type(line.remove_prefix("perf")), | ||
| 201 | if(line.starts_with("lib:") || line.starts_with("lib("), | ||
| 202 | label("cc_other", "lib") ++ format_commit_firstline_a_cc_type(line.remove_prefix("lib")), | ||
| 203 | label("cc_header", line) | ||
| 204 | )))))))) | ||
| 205 | ''; | ||
| 206 | "format_commit_firstline_a_cc_type(rest)" = '' | ||
| 207 | if(rest.starts_with("(") && rest.contains(")"), | ||
| 208 | format_firstline_cc_scope(rest, index_of_close_paren(rest)), | ||
| 209 | format_firstline_a_cc(rest)) | ||
| 210 | ''; | ||
| 211 | "format_firstline_cc_scope(rest, index)" = '' | ||
| 212 | label("cc_scope", rest.substr(0, index)) ++ format_firstline_a_cc(rest.substr(index, rest.len())) | ||
| 213 | ''; | ||
| 214 | "format_firstline_a_cc(rest)" = '' | ||
| 215 | if(rest.starts_with(":"), | ||
| 216 | label("muted", ":") ++ label("cc_header", rest.remove_prefix(":")), | ||
| 217 | label("cc_header", rest) | ||
| 218 | ) | ||
| 219 | ''; | ||
| 220 | # sorry! | ||
| 221 | "index_of_close_paren(line)" = '' | ||
| 222 | stringify(if(line.substr(1, 2) == ")", "A", | ||
| 223 | if(line.substr(2, 3) == ")", "AA", | ||
| 224 | if(line.substr(3, 4) == ")", "AAA", | ||
| 225 | if(line.substr(4, 5) == ")", "AAAA", | ||
| 226 | if(line.substr(5, 6) == ")", "AAAAA", | ||
| 227 | if(line.substr(6, 7) == ")", "AAAAAA", | ||
| 228 | if(line.substr(7, 8) == ")", "AAAAAAA", | ||
| 229 | if(line.substr(8, 9) == ")", "AAAAAAAA", | ||
| 230 | if(line.substr(9, 10) == ")","AAAAAAAAA", | ||
| 231 | if(line.substr(10, 11) == ")", "AAAAAAAAAA", | ||
| 232 | if(line.substr(11, 12) == ")", "AAAAAAAAAAA", | ||
| 233 | if(line.substr(12, 13) == ")", "AAAAAAAAAAAA", | ||
| 234 | if(line.substr(13, 14) == ")", "AAAAAAAAAAAAA", | ||
| 235 | if(line.substr(14, 15) == ")", "AAAAAAAAAAAAAA", | ||
| 236 | if(line.substr(15, 16) == ")", "AAAAAAAAAAAAAAA", | ||
| 237 | if(line.substr(16, 17) == ")", "AAAAAAAAAAAAAAAA", | ||
| 238 | if(line.substr(17, 18) == ")", "AAAAAAAAAAAAAAAAA", | ||
| 239 | if(line.substr(18, 19) == ")", "AAAAAAAAAAAAAAAAAA", | ||
| 240 | if(line.substr(19, 20) == ")", "AAAAAAAAAAAAAAAAAAA", | ||
| 241 | if(line.substr(20, 21) == ")", "AAAAAAAAAAAAAAAAAAAA", | ||
| 242 | "AAAAAAAAAAAAAAAAAAAAA" | ||
| 243 | ))))))))))))))))))))).len() + 1 | ||
| 244 | ''; | ||
| 245 | |||
| 246 | "format_short_signature(signature)" = "signature.name()"; | ||
| 247 | "format_timestamp(timestamp)" = "timestamp.ago()"; | ||
| 248 | "format_short_commit_header(commit)" = '' | ||
| 249 | separate(" ", | ||
| 250 | if(commit.current_working_copy(), label("active_marker", " ACTIVE ")), | ||
| 251 | if(commit.conflict(), label("conflict_marker", " CONFLICT ")), | ||
| 252 | format_short_change_id_with_hidden_and_divergent_info(commit), | ||
| 253 | format_short_signature(commit.author()), | ||
| 254 | label("muted", "|"), | ||
| 255 | if(commit.description().trim().len() > 0, label("muted", format_timestamp(commit_timestamp(commit)))), | ||
| 256 | commit.bookmarks(), | ||
| 257 | commit.tags(), | ||
| 258 | commit.working_copies(), | ||
| 259 | label("muted", "(") ++ | ||
| 260 | format_short_commit_id(commit.commit_id()) ++ | ||
| 261 | label("muted", ")"), | ||
| 262 | if(config("ui.show-cryptographic-signatures").as_boolean(), | ||
| 263 | format_short_cryptographic_signature(commit.signature())), | ||
| 264 | ) | ||
| 265 | ''; | ||
| 266 | }; | ||
| 267 | }; | ||
| 268 | }; | ||
| 269 | |||
| 84 | ssh = { | 270 | ssh = { |
| 85 | enable = true; | 271 | enable = true; |
| 272 | extraConfig = '' | ||
| 273 | SetEnv TERM=xterm-color | ||
| 274 | ''; | ||
| 86 | matchBlocks = rec { | 275 | matchBlocks = rec { |
| 87 | zenith = { | 276 | zenith = { |
| 88 | user = "clo"; | 277 | user = "clo"; |
| ... | @@ -91,12 +280,5 @@ in | ... | @@ -91,12 +280,5 @@ in |
| 91 | "nas.paperclover.net" = zenith; | 280 | "nas.paperclover.net" = zenith; |
| 92 | }; | 281 | }; |
| 93 | }; | 282 | }; |
| 94 | neovide = { | ||
| 95 | enable = !hostServer; | ||
| 96 | settings = { | ||
| 97 | font.normal = "AT Name Mono"; | ||
| 98 | font.size = 13; | ||
| 99 | }; | ||
| 100 | }; | ||
| 101 | }; | 283 | }; |
| 102 | } | 284 | } |
users/clover/paperback/configuration.nix-7| ... | @@ -1,9 +1,2 @@ | ... | @@ -1,9 +1,2 @@ |
| 1 | _: { | 1 | _: { |
| 2 | homebrew = { | ||
| 3 | enable = true; | ||
| 4 | casks = [ | ||
| 5 | "eloston-chromium" | ||
| 6 | "db-browser-for-sqlite" | ||
| 7 | ]; | ||
| 8 | }; | ||
| 9 | } | 2 | } |
users/clover/paperback/home.nix-4| ... | @@ -3,7 +3,6 @@ | ... | @@ -3,7 +3,6 @@ |
| 3 | # these programs are not globally installed to reduce distractions. | 3 | # these programs are not globally installed to reduce distractions. |
| 4 | # most of these are needed for my work environment. | 4 | # most of these are needed for my work environment. |
| 5 | programs = { | 5 | programs = { |
| 6 | bun.enable = true; | ||
| 7 | zsh.profileExtra = '' | 6 | zsh.profileExtra = '' |
| 8 | _bun() { | 7 | _bun() { |
| 9 | local context state line | 8 | local context state line |
| ... | @@ -12,7 +11,6 @@ | ... | @@ -12,7 +11,6 @@ |
| 12 | ''; | 11 | ''; |
| 13 | }; | 12 | }; |
| 14 | home.packages = with pkgs; [ | 13 | home.packages = with pkgs; [ |
| 15 | doppler | ||
| 16 | deno | 14 | deno |
| 17 | nodejs_22 | 15 | nodejs_22 |
| 18 | rustup | 16 | rustup |
| ... | @@ -22,7 +20,5 @@ | ... | @@ -22,7 +20,5 @@ |
| 22 | yt-dlp | 20 | yt-dlp |
| 23 | spotdl | 21 | spotdl |
| 24 | zig | 22 | zig |
| 25 | ssm-session-manager-plugin | ||
| 26 | awscli | ||
| 27 | ]; | 23 | ]; |
| 28 | } | 24 | } |
users/clover/work/home.nix created+27| ... | @@ -0,0 +1,27 @@ | ||
| 1 | { pkgs, ... }: | ||
| 2 | { | ||
| 3 | programs = { | ||
| 4 | zsh.profileExtra = '' | ||
| 5 | _bun() { | ||
| 6 | local context state line | ||
| 7 | _arguments -C '*:file:_files' | ||
| 8 | } | ||
| 9 | ''; | ||
| 10 | }; | ||
| 11 | home.packages = with pkgs; [ | ||
| 12 | (bun.overrideAttrs (_: rec { | ||
| 13 | version = "1.1.17"; | ||
| 14 | src = fetchurl { | ||
| 15 | url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-aarch64.zip"; | ||
| 16 | hash = "sha256-aULgRZ9evcGUhKJ6slLJOg3IEzUeNfIkJF8RDP3YUlo="; | ||
| 17 | }; | ||
| 18 | })) | ||
| 19 | doppler | ||
| 20 | deno | ||
| 21 | nodejs_24 | ||
| 22 | rustup | ||
| 23 | typescript | ||
| 24 | ssm-session-manager-plugin | ||
| 25 | awscli | ||
| 26 | ]; | ||
| 27 | } | ||
users/fish/cattop/configuration.nix+56-57| ... | @@ -7,105 +7,110 @@ | ... | @@ -7,105 +7,110 @@ |
| 7 | }: | 7 | }: |
| 8 | { | 8 | { |
| 9 | imports = [ | 9 | imports = [ |
| 10 | # Include the results of the hardware scan. | ||
| 11 | ./hardware-configuration.nix | 10 | ./hardware-configuration.nix |
| 12 | ]; | 11 | ]; |
| 13 | 12 | ||
| 14 | # Use the systemd-boot EFI boot loader. | ||
| 15 | boot.loader.efi.canTouchEfiVariables = true; | 13 | boot.loader.efi.canTouchEfiVariables = true; |
| 16 | 14 | ||
| 17 | # networking.hostName = "nixos"; # Define your hostname. | 15 | networking.hostName = "cattop"; |
| 18 | # Pick only one of the below networking options. | ||
| 19 | # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. | ||
| 20 | # networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. | 16 | # networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. |
| 21 | 17 | ||
| 22 | # Set your time zone. | ||
| 23 | # time.timeZone = "Europe/Amsterdam"; | ||
| 24 | |||
| 25 | # Configure network proxy if necessary | ||
| 26 | # networking.proxy.default = "http://user:password@proxy:port/"; | ||
| 27 | # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; | ||
| 28 | |||
| 29 | # Select internationalisation properties. | ||
| 30 | # i18n.defaultLocale = "en_US.UTF-8"; | ||
| 31 | # console = { | ||
| 32 | # font = "Lat2-Terminus16"; | ||
| 33 | # keyMap = "us"; | ||
| 34 | # useXkbConfig = true; # use xkb.options in tty. | ||
| 35 | # }; | ||
| 36 | |||
| 37 | # Enable the X11 windowing system. | ||
| 38 | services.xserver.enable = true; | 18 | services.xserver.enable = true; |
| 39 | 19 | ||
| 40 | # Enable the GNOME Desktop Environment. | ||
| 41 | services.displayManager.gdm.enable = true; | 20 | services.displayManager.gdm.enable = true; |
| 42 | services.desktopManager.gnome.enable = true; | 21 | services.desktopManager.gnome.enable = true; |
| 43 | environment.gnome.excludePackages = ( | 22 | environment.gnome.excludePackages = ( |
| 44 | with pkgs; | 23 | with pkgs; |
| 45 | [ | 24 | [ |
| 46 | atomix | 25 | adwaita-fonts |
| 47 | cheese | 26 | adwaita-icon-theme |
| 27 | baobab | ||
| 28 | decibels | ||
| 48 | epiphany | 29 | epiphany |
| 30 | evince | ||
| 31 | file-roller | ||
| 49 | geary | 32 | geary |
| 50 | gedit | 33 | gnome-backgrounds |
| 34 | gnome-calculator | ||
| 35 | gnome-calendar | ||
| 51 | gnome-characters | 36 | gnome-characters |
| 37 | gnome-clocks | ||
| 38 | gnome-connections | ||
| 39 | gnome-console | ||
| 40 | gnome-contacts | ||
| 41 | gnome-disk-utility | ||
| 42 | gnome-font-viewer | ||
| 43 | gnome-logs | ||
| 44 | gnome-maps | ||
| 52 | gnome-music | 45 | gnome-music |
| 53 | gnome-photos | 46 | gnome-shell-extensions |
| 54 | gnome-terminal | 47 | gnome-system-monitor |
| 48 | gnome-screenshot | ||
| 49 | gnome-text-editor | ||
| 50 | gnome-themes-extra | ||
| 55 | gnome-tour | 51 | gnome-tour |
| 56 | hitori | 52 | gnome-user-docs |
| 57 | iagno | 53 | gnome-weather |
| 54 | loupe | ||
| 55 | nautilus | ||
| 56 | orca | ||
| 57 | seahorse | ||
| 58 | simple-scan | ||
| 59 | snapshot | ||
| 60 | sushi | ||
| 58 | totem | 61 | totem |
| 59 | 62 | yelp | |
| 60 | ] | 63 | ] |
| 61 | ); | 64 | ); |
| 62 | 65 | ||
| 63 | # Configure keymap in X11 | 66 | services.printing.enable = true; |
| 64 | # services.xserver.xkb.layout = "us"; | ||
| 65 | # services.xserver.xkb.options = "eurosign:e,caps:escape"; | ||
| 66 | |||
| 67 | # Enable CUPS to print documents. | ||
| 68 | # services.printing.enable = true; | ||
| 69 | 67 | ||
| 70 | # Enable sound. | 68 | # Enable sound. |
| 71 | # services.pulseaudio.enable = true; | 69 | services.pulseaudio.enable = false; |
| 72 | # OR | 70 | security.rtkit.enable = true; |
| 73 | # services.pipewire = { | 71 | services.pipewire = { |
| 74 | # enable = true; | 72 | enable = true; |
| 75 | # pulse.enable = true; | 73 | alsa.enable = true; |
| 76 | # }; | 74 | alsa.support32Bit = true; |
| 75 | pulse.enable = true; | ||
| 76 | }; | ||
| 77 | 77 | ||
| 78 | # Enable touchpad support (enabled default in most desktopManager). | 78 | # Enable touchpad support (enabled default in most desktopManager). |
| 79 | # services.libinput.enable = true; | 79 | # services.libinput.enable = true; |
| 80 | 80 | ||
| 81 | # Define a user account. Don't forget to set a password with ‘passwd’. | ||
| 82 | users.users.fish = { | 81 | users.users.fish = { |
| 83 | isNormalUser = true; | 82 | isNormalUser = true; |
| 84 | extraGroups = [ | 83 | extraGroups = [ |
| 85 | "wheel" # Enable ‘sudo’ for the user. | 84 | "wheel" |
| 86 | "dialout" # Enable serial access for the user. | 85 | "dialout" |
| 86 | "audio" | ||
| 87 | ]; | 87 | ]; |
| 88 | packages = with pkgs; [ | 88 | packages = with pkgs; [ |
| 89 | tree | 89 | tree |
| 90 | git | 90 | git |
| 91 | nh | 91 | nh |
| 92 | vim | 92 | vim |
| 93 | fish | ||
| 94 | ]; | 93 | ]; |
| 95 | }; | 94 | }; |
| 95 | programs.git = { | ||
| 96 | enable = true; | ||
| 97 | # extraConfig = { | ||
| 98 | # push = { | ||
| 99 | # autoSetupRemote = true; | ||
| 100 | # }; | ||
| 101 | # }; | ||
| 102 | }; | ||
| 96 | 103 | ||
| 97 | programs.firefox.enable = true; | 104 | programs.firefox.enable = true; |
| 98 | programs.neovim.defaultEditor.enable = true; | 105 | programs.neovim.enable = true; |
| 106 | #programs.neovim.defaultEditor.enable = true; | ||
| 99 | 107 | ||
| 100 | # List packages installed in system profile. | 108 | # List packages installed in system profile. |
| 101 | # You can use https://search.nixos.org/ to find more packages (and options). | ||
| 102 | environment.systemPackages = with pkgs; [ | 109 | environment.systemPackages = with pkgs; [ |
| 103 | vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. | 110 | vim |
| 104 | wget | 111 | wget |
| 105 | ]; | 112 | ]; |
| 106 | 113 | ||
| 107 | # Some programs need SUID wrappers, can be configured further or are | ||
| 108 | # started in user sessions. | ||
| 109 | programs.mtr.enable = true; | 114 | programs.mtr.enable = true; |
| 110 | programs.gnupg.agent = { | 115 | programs.gnupg.agent = { |
| 111 | enable = true; | 116 | enable = true; |
| ... | @@ -117,12 +122,6 @@ | ... | @@ -117,12 +122,6 @@ |
| 117 | # Enable the OpenSSH daemon. | 122 | # Enable the OpenSSH daemon. |
| 118 | # services.openssh.enable = true; | 123 | # services.openssh.enable = true; |
| 119 | 124 | ||
| 120 | # Open ports in the firewall. | ||
| 121 | # networking.firewall.allowedTCPPorts = [ ... ]; | ||
| 122 | # networking.firewall.allowedUDPPorts = [ ... ]; | ||
| 123 | # Or disable the firewall altogether. | ||
| 124 | # networking.firewall.enable = false; | ||
| 125 | |||
| 126 | # Copy the NixOS configuration file and link it from the resulting system | 125 | # Copy the NixOS configuration file and link it from the resulting system |
| 127 | # (/run/current-system/configuration.nix). This is useful in case you | 126 | # (/run/current-system/configuration.nix). This is useful in case you |
| 128 | # accidentally delete configuration.nix. | 127 | # accidentally delete configuration.nix. |
users/fish/cattop/hardware-configuration.nix+17-31| ... | @@ -1,46 +1,32 @@ | ... | @@ -1,46 +1,32 @@ |
| 1 | # Do not modify this file! It was generated by ‘nixos-generate-config’ | 1 | # Do not modify this file! It was generated by ‘nixos-generate-config’ |
| 2 | # and may be overwritten by future invocations. Please make changes | 2 | # and may be overwritten by future invocations. Please make changes |
| 3 | # to /etc/nixos/configuration.nix instead. | 3 | # to /etc/nixos/configuration.nix instead. |
| 4 | { | 4 | { config, lib, pkgs, modulesPath, ... }: |
| 5 | config, | ||
| 6 | lib, | ||
| 7 | pkgs, | ||
| 8 | modulesPath, | ||
| 9 | ... | ||
| 10 | }: | ||
| 11 | 5 | ||
| 12 | { | 6 | { |
| 13 | imports = [ | 7 | imports = |
| 14 | (modulesPath + "/installer/scan/not-detected.nix") | 8 | [ (modulesPath + "/installer/scan/not-detected.nix") |
| 15 | ]; | 9 | ]; |
| 16 | 10 | ||
| 17 | boot.initrd.availableKernelModules = [ | 11 | boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "vmd" "nvme" ]; |
| 18 | "xhci_pci" | ||
| 19 | "thunderbolt" | ||
| 20 | "vmd" | ||
| 21 | "nvme" | ||
| 22 | ]; | ||
| 23 | boot.initrd.kernelModules = [ ]; | 12 | boot.initrd.kernelModules = [ ]; |
| 24 | boot.kernelModules = [ "kvm-intel" ]; | 13 | boot.kernelModules = [ "kvm-intel" ]; |
| 25 | boot.extraModulePackages = [ ]; | 14 | boot.extraModulePackages = [ ]; |
| 26 | 15 | ||
| 27 | fileSystems."/" = { | 16 | fileSystems."/" = |
| 28 | device = "/dev/disk/by-uuid/8eb0d6a2-b8cf-4ef2-ba2a-e25a5555b0bc"; | 17 | { device = "/dev/disk/by-uuid/d434c90f-e135-426e-b237-ead2f44e37c6"; |
| 29 | fsType = "ext4"; | 18 | fsType = "ext4"; |
| 30 | }; | 19 | }; |
| 31 | 20 | ||
| 32 | fileSystems."/boot/efi" = { | 21 | fileSystems."/boot/EFI" = |
| 33 | device = "/dev/disk/by-uuid/3B51-4A1C"; | 22 | { device = "/dev/disk/by-uuid/473A-B8FD"; |
| 34 | fsType = "vfat"; | 23 | fsType = "vfat"; |
| 35 | options = [ | 24 | options = [ "fmask=0077" "dmask=0077" ]; |
| 36 | "fmask=0077" | 25 | }; |
| 37 | "dmask=0077" | ||
| 38 | ]; | ||
| 39 | }; | ||
| 40 | 26 | ||
| 41 | swapDevices = [ | 27 | swapDevices = |
| 42 | { device = "/dev/disk/by-uuid/58ee9d19-292f-49b5-9979-341b42e8e09d"; } | 28 | [ { device = "/dev/disk/by-uuid/e0cac471-0e32-4d5a-bf85-e8f93b304356"; } |
| 43 | ]; | 29 | ]; |
| 44 | 30 | ||
| 45 | # Enables DHCP on each ethernet and wireless interface. In case of scripted networking | 31 | # Enables DHCP on each ethernet and wireless interface. In case of scripted networking |
| 46 | # (the default) this is the recommended approach. When using systemd-networkd it's | 32 | # (the default) this is the recommended approach. When using systemd-networkd it's |
users/fish/cattop/home.nix+21-24| ... | @@ -1,13 +1,4 @@ | ... | @@ -1,13 +1,4 @@ |
| 1 | { | 1 | { pkgs, ... }: |
| 2 | inputs, | ||
| 3 | config, | ||
| 4 | pkgs, | ||
| 5 | lib, | ||
| 6 | userSettings, | ||
| 7 | systemSettings, | ||
| 8 | ... | ||
| 9 | }: | ||
| 10 | |||
| 11 | { | 2 | { |
| 12 | home = { | 3 | home = { |
| 13 | stateVersion = "23.05"; # Don't change this unless upgrading Home Manager versions | 4 | stateVersion = "23.05"; # Don't change this unless upgrading Home Manager versions |
| ... | @@ -15,17 +6,14 @@ | ... | @@ -15,17 +6,14 @@ |
| 15 | packages = with pkgs; [ | 6 | packages = with pkgs; [ |
| 16 | # General applications | 7 | # General applications |
| 17 | ghostty | 8 | ghostty |
| 18 | stremio | ||
| 19 | julia | ||
| 20 | calibre | ||
| 21 | mpv | ||
| 22 | signal-desktop | 9 | signal-desktop |
| 23 | python3 | ||
| 24 | gh | ||
| 25 | spotify | 10 | spotify |
| 11 | equibop | ||
| 26 | 12 | ||
| 27 | # Gaming | 13 | # Gaming |
| 28 | (prismlauncher.override { gamemodeSupport = true; }) | 14 | (prismlauncher.override { gamemodeSupport = true; }) |
| 15 | #bsdgames | ||
| 16 | space-cadet-pinball | ||
| 29 | 17 | ||
| 30 | # System & desktop tools | 18 | # System & desktop tools |
| 31 | wofi | 19 | wofi |
| ... | @@ -37,18 +25,19 @@ | ... | @@ -37,18 +25,19 @@ |
| 37 | ethtool | 25 | ethtool |
| 38 | grub2 | 26 | grub2 |
| 39 | efibootmgr | 27 | efibootmgr |
| 40 | distrobox | ||
| 41 | pqiv | 28 | pqiv |
| 29 | imagemagick | ||
| 30 | toybox | ||
| 42 | 31 | ||
| 43 | # Dev tools | 32 | # Dev tools |
| 44 | legcord | ||
| 45 | hyfetch | 33 | hyfetch |
| 46 | kicad | 34 | python3 |
| 35 | gh | ||
| 36 | cmake | ||
| 37 | ripgrep | ||
| 47 | 38 | ||
| 48 | # Unsorted | 39 | # Unsorted |
| 49 | ripgrep | 40 | kicad |
| 50 | busybox | ||
| 51 | imagemagick | ||
| 52 | ]; | 41 | ]; |
| 53 | }; | 42 | }; |
| 54 | 43 | ||
| ... | @@ -61,7 +50,15 @@ | ... | @@ -61,7 +50,15 @@ |
| 61 | gitCredentialHelper.enable = true; | 50 | gitCredentialHelper.enable = true; |
| 62 | }; | 51 | }; |
| 63 | 52 | ||
| 64 | # Uncomment if you want to use MangoHud system-wide | 53 | ghostty = { |
| 65 | # mangohud.enable = true; | 54 | enable = true; |
| 55 | shader = "cursor-smear-black.glsl"; | ||
| 56 | settings = { | ||
| 57 | theme = "citruszest"; | ||
| 58 | adjust-cursor-thickness = 1; | ||
| 59 | background-opacity = 0.95; | ||
| 60 | background-blur = true; | ||
| 61 | }; | ||
| 62 | }; | ||
| 66 | }; | 63 | }; |
| 67 | } | 64 | } |
users/fish/user.nix+1-1| ... | @@ -4,7 +4,7 @@ rec { | ... | @@ -4,7 +4,7 @@ rec { |
| 4 | email = "77413091+JulianBarbera@users.noreply.github.com"; # email (used for certain configurations) | 4 | email = "77413091+JulianBarbera@users.noreply.github.com"; # email (used for certain configurations) |
| 5 | dotfilesDir = "~/config"; # absolute path of the local repo | 5 | dotfilesDir = "~/config"; # absolute path of the local repo |
| 6 | theme = "catppuccin-mocha"; # name of theme that stylix will use | 6 | theme = "catppuccin-mocha"; # name of theme that stylix will use |
| 7 | browser = "firefox"; # Default browser; must select one from ./user/app/browser/ | 7 | browser = "zen-browser"; # Default browser; must select one from ./user/app/browser/ |
| 8 | term = "ghostty"; # Default terminal command; | 8 | term = "ghostty"; # Default terminal command; |
| 9 | font = "iosevka"; # Selected font | 9 | font = "iosevka"; # Selected font |
| 10 | editor = "neovim"; # Default editor; | 10 | editor = "neovim"; # Default editor; |
users/fish/vim.nix+38-1| ... | @@ -1,3 +1,40 @@ | ... | @@ -1,3 +1,40 @@ |
| 1 | { ... }: | 1 | { pkgs, ... }: |
| 2 | { | 2 | { |
| 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 | }; | ||
| 3 | } | 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 | } | ||