this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

ft: big update for a lot of stuff

+852 -1201
+1 -1
Makefile
··· 1 - TARGETS ?= vim wm misc 1 + TARGETS ?= vim 2 2 3 3 all: nix $(TARGETS) 4 4
-6
certs/.gitignore
··· 1 - *.key 2 - *.csr 3 - *.crt 4 - *.pem 5 - *.srl 6 - *.conf
-62
certs/Makefile
··· 1 - DOMAIN ?= localhost 2 - NAME ?= ${DOMAIN} 3 - 4 - CAKEY ?= CAkey.key 5 - CACERT ?= CAcert.pem 6 - 7 - SIGN_REQ ?= ${NAME}.csr 8 - CERT ?= ${NAME}.crt 9 - PEM ?= ${NAME}.pem 10 - KEY ?= ${NAME}.key 11 - 12 - CA = "/C=PL/ST=Wlkp/O=/localityName=Poznan/CN=Hauleth/emailAddress=lukasz@niemier.pl" 13 - 14 - SUBJECT = "/CN=*.${DOMAIN}" 15 - 16 - VERIFY_OPTS = -purpose sslserver -CAfile ${CACERT} 17 - 18 - verify: ${PEM} ${CACERT} 19 - openssl version 20 - openssl x509 -noout -text -in "$<" 21 - openssl verify ${VERIFY_OPTS} -verify_hostname ${DOMAIN} $< 22 - openssl verify ${VERIFY_OPTS} -verify_hostname test.${DOMAIN} $< 23 - 24 - clean: 25 - $(RM) -f "${CERT}" "${SIGN_REQ}" "${PEM}" "${KEY}" 26 - 27 - ${CAKEY}: 28 - openssl genrsa -out "$@" 2048 29 - 30 - ${CACERT}: ${CAKEY} 31 - openssl req -new -key "$<" -out "$@" \ 32 - -subj ${CA} -x509 -nodes -sha256 -days 1825 33 - 34 - installCA: ${CACERT} 35 - security import "$<" 36 - security add-trusted-cert "$<" 37 - 38 - cleanCA: 39 - security remove-trusted-cert "${CACERT}" 40 - $(RM) -f "${CACERT}" "${CAKEY}" 41 - 42 - config.conf: 43 - echo 'subjectAltName=$${ENV::SAN}' > "$@" 44 - 45 - ${KEY}: 46 - openssl genrsa -out "$@" 2048 47 - 48 - ${SIGN_REQ}: ${KEY} 49 - openssl req -new -sha256 -subj $(SUBJECT) -key "$<" -out "$@" \ 50 - -addext "subjectAltName=DNS:${DOMAIN},DNS:*.${DOMAIN}" 51 - 52 - ${CERT}: ${SIGN_REQ} ${CACERT} ${CAKEY} config.conf 53 - SAN="DNS:${DOMAIN},DNS:*.${DOMAIN}" \ 54 - openssl x509 -req -out "$@" -in ${SIGN_REQ} \ 55 - -CA ${CACERT} -CAkey ${CAKEY} -CAcreateserial \ 56 - -days 365 -sha256 \ 57 - -extfile config.conf 58 - 59 - ${PEM}: ${CERT} ${KEY} 60 - cat ${CERT} ${KEY} > "$@" 61 - 62 - .PHONY: clean verify install installCA cleanCA
+4 -2
dev_shells.nix
··· 5 5 lib, 6 6 stdenv, 7 7 darwin, 8 + lexical, 9 + livebook, 8 10 }: { 9 11 livebook = pkgs.mkShell { 10 - packages = with beam.packages.erlang; [ 12 + packages = [ 11 13 livebook 12 14 ]; 13 15 ··· 28 30 packages = 29 31 [ 30 32 elixir 31 - elixir-ls 33 + lexical 32 34 ] 33 35 ++ lib.optionals stdenv.isDarwin [ 34 36 darwin.apple_sdk.frameworks.CoreFoundation
+392 -32
flake.lock
··· 2 2 "nodes": { 3 3 "agnoster": { 4 4 "inputs": { 5 - "flake-utils": [ 6 - "flake-utils" 7 - ], 5 + "flake-utils": "flake-utils", 8 6 "nixpkgs": [ 9 7 "nixpkgs" 10 8 ] 11 9 }, 12 10 "locked": { 13 - "lastModified": 1625824140, 14 - "narHash": "sha256-0/FgJlQULIXKhQIt3z3ugAGubgMlwFZa/cjGjiq7BcA=", 11 + "lastModified": 1703255311, 12 + "narHash": "sha256-M3qjuDNwApF/YgHOIoOm2tE7XMnfwYXqGXfYRBVGvEA=", 15 13 "owner": "hauleth", 16 14 "repo": "agnoster", 17 - "rev": "7312ebb59769d5ff503fd06b174103f0f7ba368a", 15 + "rev": "11e25b851f3087b8e64285e07cc6498cb2d6b6ff", 18 16 "type": "github" 19 17 }, 20 18 "original": { ··· 23 21 "type": "github" 24 22 } 25 23 }, 24 + "beam": { 25 + "inputs": { 26 + "flake-parts": "flake-parts", 27 + "nixpkgs": "nixpkgs" 28 + }, 29 + "locked": { 30 + "lastModified": 1705850239, 31 + "narHash": "sha256-Mvnu0c+Hoahju/hI/2EdhrZCdU3r7Yhnp/wyEiVZFcU=", 32 + "owner": "shanesveller", 33 + "repo": "nix-beam-flakes", 34 + "rev": "842337993cb8f7c52c723b3d4cb0bfa1b71a4299", 35 + "type": "github" 36 + }, 37 + "original": { 38 + "owner": "shanesveller", 39 + "repo": "nix-beam-flakes", 40 + "type": "github" 41 + } 42 + }, 26 43 "darwin": { 27 44 "inputs": { 28 45 "nixpkgs": [ ··· 30 47 ] 31 48 }, 32 49 "locked": { 33 - "lastModified": 1684148371, 34 - "narHash": "sha256-CEVaArsziqantqU418XXruNDjPZN/HC3x1rqr2D4g+o=", 50 + "lastModified": 1705915768, 51 + "narHash": "sha256-+Jlz8OAqkOwJlioac9wtpsCnjgGYUhvLpgJR/5tP9po=", 35 52 "owner": "lnl7", 36 53 "repo": "nix-darwin", 37 - "rev": "0dbf1c2fb1a5a0372a324eff1ba44f9da66febd2", 54 + "rev": "1e706ef323de76236eb183d7784f3bd57255ec0b", 38 55 "type": "github" 39 56 }, 40 57 "original": { ··· 43 60 "type": "github" 44 61 } 45 62 }, 46 - "flake-utils": { 63 + "flake-compat": { 64 + "flake": false, 65 + "locked": { 66 + "lastModified": 1696426674, 67 + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", 68 + "owner": "edolstra", 69 + "repo": "flake-compat", 70 + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", 71 + "type": "github" 72 + }, 73 + "original": { 74 + "owner": "edolstra", 75 + "repo": "flake-compat", 76 + "type": "github" 77 + } 78 + }, 79 + "flake-parts": { 47 80 "inputs": { 48 - "systems": "systems" 81 + "nixpkgs-lib": "nixpkgs-lib" 82 + }, 83 + "locked": { 84 + "lastModified": 1704982712, 85 + "narHash": "sha256-2Ptt+9h8dczgle2Oo6z5ni5rt/uLMG47UFTR1ry/wgg=", 86 + "owner": "hercules-ci", 87 + "repo": "flake-parts", 88 + "rev": "07f6395285469419cf9d078f59b5b49993198c00", 89 + "type": "github" 90 + }, 91 + "original": { 92 + "owner": "hercules-ci", 93 + "repo": "flake-parts", 94 + "type": "github" 95 + } 96 + }, 97 + "flake-parts_2": { 98 + "inputs": { 99 + "nixpkgs-lib": "nixpkgs-lib_2" 100 + }, 101 + "locked": { 102 + "lastModified": 1704982712, 103 + "narHash": "sha256-2Ptt+9h8dczgle2Oo6z5ni5rt/uLMG47UFTR1ry/wgg=", 104 + "owner": "hercules-ci", 105 + "repo": "flake-parts", 106 + "rev": "07f6395285469419cf9d078f59b5b49993198c00", 107 + "type": "github" 108 + }, 109 + "original": { 110 + "id": "flake-parts", 111 + "type": "indirect" 112 + } 113 + }, 114 + "flake-parts_3": { 115 + "inputs": { 116 + "nixpkgs-lib": "nixpkgs-lib_3" 49 117 }, 50 118 "locked": { 51 - "lastModified": 1681202837, 52 - "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", 119 + "lastModified": 1701473968, 120 + "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=", 121 + "owner": "hercules-ci", 122 + "repo": "flake-parts", 123 + "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5", 124 + "type": "github" 125 + }, 126 + "original": { 127 + "owner": "hercules-ci", 128 + "repo": "flake-parts", 129 + "type": "github" 130 + } 131 + }, 132 + "flake-parts_4": { 133 + "inputs": { 134 + "nixpkgs-lib": [ 135 + "nixvim", 136 + "nixpkgs" 137 + ] 138 + }, 139 + "locked": { 140 + "lastModified": 1704982712, 141 + "narHash": "sha256-2Ptt+9h8dczgle2Oo6z5ni5rt/uLMG47UFTR1ry/wgg=", 142 + "owner": "hercules-ci", 143 + "repo": "flake-parts", 144 + "rev": "07f6395285469419cf9d078f59b5b49993198c00", 145 + "type": "github" 146 + }, 147 + "original": { 148 + "owner": "hercules-ci", 149 + "repo": "flake-parts", 150 + "type": "github" 151 + } 152 + }, 153 + "flake-utils": { 154 + "locked": { 155 + "lastModified": 1634851050, 156 + "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", 53 157 "owner": "numtide", 54 158 "repo": "flake-utils", 55 - "rev": "cfacdce06f30d2b68473a46042957675eebb3401", 159 + "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", 56 160 "type": "github" 57 161 }, 58 162 "original": { 59 - "id": "flake-utils", 60 - "type": "indirect" 163 + "owner": "numtide", 164 + "repo": "flake-utils", 165 + "type": "github" 61 166 } 62 167 }, 63 168 "flake-utils_2": { ··· 75 180 "type": "github" 76 181 } 77 182 }, 183 + "flake-utils_3": { 184 + "inputs": { 185 + "systems": "systems_2" 186 + }, 187 + "locked": { 188 + "lastModified": 1701680307, 189 + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", 190 + "owner": "numtide", 191 + "repo": "flake-utils", 192 + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", 193 + "type": "github" 194 + }, 195 + "original": { 196 + "owner": "numtide", 197 + "repo": "flake-utils", 198 + "type": "github" 199 + } 200 + }, 201 + "gitignore": { 202 + "inputs": { 203 + "nixpkgs": [ 204 + "nixvim", 205 + "pre-commit-hooks", 206 + "nixpkgs" 207 + ] 208 + }, 209 + "locked": { 210 + "lastModified": 1703887061, 211 + "narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=", 212 + "owner": "hercules-ci", 213 + "repo": "gitignore.nix", 214 + "rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5", 215 + "type": "github" 216 + }, 217 + "original": { 218 + "owner": "hercules-ci", 219 + "repo": "gitignore.nix", 220 + "type": "github" 221 + } 222 + }, 78 223 "home-manager": { 79 224 "inputs": { 80 225 "nixpkgs": [ ··· 82 227 ] 83 228 }, 84 229 "locked": { 85 - "lastModified": 1684061181, 86 - "narHash": "sha256-EJpZ+Drpt3aHpowddpsQFBWsqLSJHyP6dnremTVMdWw=", 230 + "lastModified": 1706221476, 231 + "narHash": "sha256-T4b8YafVjHXvtDY8ARec1WrXO8uyyNZOpNgv9yoQy2M=", 87 232 "owner": "nix-community", 88 233 "repo": "home-manager", 89 - "rev": "e4272987f785a8848205263abb4911b922c21e1b", 234 + "rev": "c7ce343d9bf1a329056a4dd5b32ea8cc43b55e15", 90 235 "type": "github" 91 236 }, 92 237 "original": { ··· 94 239 "type": "indirect" 95 240 } 96 241 }, 242 + "home-manager_2": { 243 + "inputs": { 244 + "nixpkgs": [ 245 + "nixvim", 246 + "nixpkgs" 247 + ] 248 + }, 249 + "locked": { 250 + "lastModified": 1705879479, 251 + "narHash": "sha256-ZIohbyly1KOe+8I3gdyNKgVN/oifKdmeI0DzMfytbtg=", 252 + "owner": "nix-community", 253 + "repo": "home-manager", 254 + "rev": "2d47379ad591bcb14ca95a90b6964b8305f6c913", 255 + "type": "github" 256 + }, 257 + "original": { 258 + "owner": "nix-community", 259 + "repo": "home-manager", 260 + "type": "github" 261 + } 262 + }, 263 + "lexical": { 264 + "inputs": { 265 + "flake-parts": "flake-parts_3", 266 + "nixpkgs": "nixpkgs_2", 267 + "systems": "systems" 268 + }, 269 + "locked": { 270 + "lastModified": 1705938621, 271 + "narHash": "sha256-GV9nJu+D2OacTSubXrGyTU8m2XDyMC13wKLd9i7DQcw=", 272 + "owner": "lexical-lsp", 273 + "repo": "lexical", 274 + "rev": "556958bc67ed8417425a0fb3cde9ea5d5bb49877", 275 + "type": "github" 276 + }, 277 + "original": { 278 + "owner": "lexical-lsp", 279 + "repo": "lexical", 280 + "type": "github" 281 + } 282 + }, 283 + "nix-darwin": { 284 + "inputs": { 285 + "nixpkgs": [ 286 + "nixvim", 287 + "nixpkgs" 288 + ] 289 + }, 290 + "locked": { 291 + "lastModified": 1705915768, 292 + "narHash": "sha256-+Jlz8OAqkOwJlioac9wtpsCnjgGYUhvLpgJR/5tP9po=", 293 + "owner": "lnl7", 294 + "repo": "nix-darwin", 295 + "rev": "1e706ef323de76236eb183d7784f3bd57255ec0b", 296 + "type": "github" 297 + }, 298 + "original": { 299 + "owner": "lnl7", 300 + "repo": "nix-darwin", 301 + "type": "github" 302 + } 303 + }, 97 304 "nix-elixir": { 98 305 "inputs": { 99 306 "flake-utils": "flake-utils_2", 100 - "nixpkgs": "nixpkgs" 307 + "nixpkgs": "nixpkgs_3" 101 308 }, 102 309 "locked": { 103 - "lastModified": 1672929845, 104 - "narHash": "sha256-wLd7006LmsVZJcok8QMzeHjFFS7bOivsKP52QNeR5UU=", 310 + "lastModified": 1704300128, 311 + "narHash": "sha256-G5qMIxeoKvcXjsBOP32E9UCh0Atjvc/mcatG8MH8QZ4=", 105 312 "owner": "hauleth", 106 313 "repo": "nix-elixir", 107 - "rev": "b461d4d95a8797efc96c375bc82e88d849efabe6", 314 + "rev": "fcdeded8314bed0ef21b7d9b25a17b2d290f2bc3", 108 315 "type": "github" 109 316 }, 110 317 "original": { ··· 115 322 }, 116 323 "nixpkgs": { 117 324 "locked": { 118 - "lastModified": 1669867399, 119 - "narHash": "sha256-Z8RXSFYOsIsTG96ROKtV0eZ8Q7u4irFWm6ELqfw7mT8=", 325 + "lastModified": 1705677747, 326 + "narHash": "sha256-eyM3okYtMgYDgmYukoUzrmuoY4xl4FUujnsv/P6I/zI=", 327 + "owner": "nixos", 328 + "repo": "nixpkgs", 329 + "rev": "bbe7d8f876fbbe7c959c90ba2ae2852220573261", 330 + "type": "github" 331 + }, 332 + "original": { 120 333 "owner": "NixOS", 334 + "ref": "nixpkgs-unstable", 121 335 "repo": "nixpkgs", 122 - "rev": "38e591dd05ffc8bdf79dc752ba78b05e370416fa", 336 + "type": "github" 337 + } 338 + }, 339 + "nixpkgs-lib": { 340 + "locked": { 341 + "dir": "lib", 342 + "lastModified": 1703961334, 343 + "narHash": "sha256-M1mV/Cq+pgjk0rt6VxoyyD+O8cOUiai8t9Q6Yyq4noY=", 344 + "owner": "NixOS", 345 + "repo": "nixpkgs", 346 + "rev": "b0d36bd0a420ecee3bc916c91886caca87c894e9", 123 347 "type": "github" 124 348 }, 125 349 "original": { 350 + "dir": "lib", 351 + "owner": "NixOS", 352 + "ref": "nixos-unstable", 353 + "repo": "nixpkgs", 354 + "type": "github" 355 + } 356 + }, 357 + "nixpkgs-lib_2": { 358 + "locked": { 359 + "dir": "lib", 360 + "lastModified": 1703961334, 361 + "narHash": "sha256-M1mV/Cq+pgjk0rt6VxoyyD+O8cOUiai8t9Q6Yyq4noY=", 362 + "owner": "NixOS", 363 + "repo": "nixpkgs", 364 + "rev": "b0d36bd0a420ecee3bc916c91886caca87c894e9", 365 + "type": "github" 366 + }, 367 + "original": { 368 + "dir": "lib", 369 + "owner": "NixOS", 370 + "ref": "nixos-unstable", 371 + "repo": "nixpkgs", 372 + "type": "github" 373 + } 374 + }, 375 + "nixpkgs-lib_3": { 376 + "locked": { 377 + "dir": "lib", 378 + "lastModified": 1701253981, 379 + "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=", 380 + "owner": "NixOS", 381 + "repo": "nixpkgs", 382 + "rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58", 383 + "type": "github" 384 + }, 385 + "original": { 386 + "dir": "lib", 387 + "owner": "NixOS", 388 + "ref": "nixos-unstable", 389 + "repo": "nixpkgs", 390 + "type": "github" 391 + } 392 + }, 393 + "nixpkgs_2": { 394 + "locked": { 395 + "lastModified": 1699725108, 396 + "narHash": "sha256-NTiPW4jRC+9puakU4Vi8WpFEirhp92kTOSThuZke+FA=", 397 + "path": "/nix/store/1ryprai4bllkrna60cmcygxc4qyn79s1-source", 398 + "rev": "911ad1e67f458b6bcf0278fa85e33bb9924fed7e", 399 + "type": "path" 400 + }, 401 + "original": { 126 402 "id": "nixpkgs", 127 403 "type": "indirect" 128 404 } 129 405 }, 130 - "nixpkgs_2": { 406 + "nixpkgs_3": { 407 + "locked": { 408 + "lastModified": 1704008649, 409 + "narHash": "sha256-rGPSWjXTXTurQN9beuHdyJhB8O761w1Zc5BqSSmHvoM=", 410 + "owner": "NixOS", 411 + "repo": "nixpkgs", 412 + "rev": "d44d59d2b5bd694cd9d996fd8c51d03e3e9ba7f7", 413 + "type": "github" 414 + }, 415 + "original": { 416 + "id": "nixpkgs", 417 + "type": "indirect" 418 + } 419 + }, 420 + "nixpkgs_4": { 131 421 "locked": { 132 - "lastModified": 1684120848, 133 - "narHash": "sha256-gIwJ5ac1FwZEkCRwjY+gLwgD4G1Bw3Xtr2jr2XihMPo=", 422 + "lastModified": 1706173671, 423 + "narHash": "sha256-lciR7kQUK2FCAYuszyd7zyRRmTaXVeoZsCyK6QFpGdk=", 134 424 "owner": "NixOS", 135 425 "repo": "nixpkgs", 136 - "rev": "0cb867999eec4085e1c9ca61c09b72261fa63bb4", 426 + "rev": "4fddc9be4eaf195d631333908f2a454b03628ee5", 137 427 "type": "github" 138 428 }, 139 429 "original": { ··· 142 432 "type": "indirect" 143 433 } 144 434 }, 435 + "nixvim": { 436 + "inputs": { 437 + "flake-parts": "flake-parts_4", 438 + "home-manager": "home-manager_2", 439 + "nix-darwin": "nix-darwin", 440 + "nixpkgs": [ 441 + "nixpkgs" 442 + ], 443 + "pre-commit-hooks": "pre-commit-hooks" 444 + }, 445 + "locked": { 446 + "lastModified": 1706281253, 447 + "narHash": "sha256-MH9HOZCjeCGP5ZPiqYlO3X/HO+qLC/TqlL6+lPxJiV4=", 448 + "owner": "nix-community", 449 + "repo": "nixvim", 450 + "rev": "d13755597173dacd2023f48ac7724498402f2521", 451 + "type": "github" 452 + }, 453 + "original": { 454 + "owner": "nix-community", 455 + "repo": "nixvim", 456 + "type": "github" 457 + } 458 + }, 459 + "pre-commit-hooks": { 460 + "inputs": { 461 + "flake-compat": "flake-compat", 462 + "flake-utils": "flake-utils_3", 463 + "gitignore": "gitignore", 464 + "nixpkgs": [ 465 + "nixvim", 466 + "nixpkgs" 467 + ], 468 + "nixpkgs-stable": [ 469 + "nixvim", 470 + "nixpkgs" 471 + ] 472 + }, 473 + "locked": { 474 + "lastModified": 1705757126, 475 + "narHash": "sha256-Eksr+n4Q8EYZKAN0Scef5JK4H6FcHc+TKNHb95CWm+c=", 476 + "owner": "cachix", 477 + "repo": "pre-commit-hooks.nix", 478 + "rev": "f56597d53fd174f796b5a7d3ee0b494f9e2285cc", 479 + "type": "github" 480 + }, 481 + "original": { 482 + "owner": "cachix", 483 + "repo": "pre-commit-hooks.nix", 484 + "type": "github" 485 + } 486 + }, 145 487 "root": { 146 488 "inputs": { 147 489 "agnoster": "agnoster", 490 + "beam": "beam", 148 491 "darwin": "darwin", 149 - "flake-utils": "flake-utils", 492 + "flake-parts": "flake-parts_2", 150 493 "home-manager": "home-manager", 494 + "lexical": "lexical", 151 495 "nix-elixir": "nix-elixir", 152 - "nixpkgs": "nixpkgs_2" 496 + "nixpkgs": "nixpkgs_4", 497 + "nixvim": "nixvim" 153 498 } 154 499 }, 155 500 "systems": { 501 + "locked": { 502 + "lastModified": 1681028828, 503 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 504 + "owner": "nix-systems", 505 + "repo": "default", 506 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 507 + "type": "github" 508 + }, 509 + "original": { 510 + "owner": "nix-systems", 511 + "repo": "default", 512 + "type": "github" 513 + } 514 + }, 515 + "systems_2": { 156 516 "locked": { 157 517 "lastModified": 1681028828, 158 518 "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+79 -87
flake.nix
··· 3 3 4 4 inputs = { 5 5 nixpkgs.url = "nixpkgs/nixpkgs-unstable"; 6 - flake-utils.url = "flake:flake-utils"; 6 + flake-parts.url = "flake:flake-parts"; 7 + 7 8 home-manager = { 8 9 url = "flake:home-manager"; 9 10 inputs.nixpkgs.follows = "nixpkgs"; ··· 11 12 agnoster = { 12 13 url = "github:hauleth/agnoster"; 13 14 inputs.nixpkgs.follows = "nixpkgs"; 14 - inputs.flake-utils.follows = "flake-utils"; 15 15 }; 16 16 nix-elixir.url = "github:hauleth/nix-elixir"; 17 17 # nix-elixir.url = "flake:nix-elixir"; ··· 19 19 url = "github:lnl7/nix-darwin"; 20 20 inputs.nixpkgs.follows = "nixpkgs"; 21 21 }; 22 + 23 + lexical.url = "github:lexical-lsp/lexical"; 24 + 25 + beam.url = "github:shanesveller/nix-beam-flakes"; 26 + 27 + nixvim = { 28 + url = "github:nix-community/nixvim"; 29 + inputs.nixpkgs.follows = "nixpkgs"; 30 + }; 22 31 }; 23 32 24 33 outputs = { 25 34 self, 26 - darwin, 27 - nixpkgs, 28 - home-manager, 29 - agnoster, 30 - flake-utils, 31 - nix-elixir, 35 + flake-parts, 32 36 ... 33 - } @ inputs: let 34 - overlays = [ 35 - agnoster.overlay 36 - nix-elixir.overlay 37 - (import ./pkgs) 38 - ]; 39 - in 40 - flake-utils.lib.eachDefaultSystem 41 - (system: let 42 - pkgs = import nixpkgs {inherit system overlays;}; 43 - in { 44 - formatter = pkgs.alejandra; 37 + } @ inputs: 38 + flake-parts.lib.mkFlake {inherit inputs;} { 39 + flake = { 40 + lib = { 41 + readFileWithComments = path: let 42 + lib = inputs.nixpkgs.lib; 43 + content = lib.strings.fileContents path; 44 + notComment = line: !lib.strings.hasPrefix "#" line; 45 + in 46 + builtins.filter notComment (lib.strings.splitString "\n" content); 47 + }; 45 48 46 - packages = { 47 - home = pkgs.writeScriptBin "activate-home" '' 48 - ${home-manager.packages.${system}.default}/bin/home-manager --flake "${self}" "$@" 49 - ''; 49 + # TODO: Automatically discover and build that 50 + darwinConfigurations."NiunioBook" = 51 + (import ./hosts/niuniobook.nix {inherit inputs;}) 52 + .system; 53 + darwinConfigurations."MacBook-Pro" = 54 + (import ./hosts/niuniobook.nix {inherit inputs;}) 55 + .system; 50 56 51 - system = let 52 - emptyConfiguration = darwin.lib.darwinSystem { 53 - inherit system; 57 + homeConfigurations."hauleth" = 58 + (import ./users/hauleth.nix {inherit inputs;}) 59 + .home; 54 60 55 - modules = []; 61 + templates = { 62 + elixir = { 63 + path = ./templates/elixir; 64 + description = "Basic requirements for Elixir applications"; 56 65 }; 57 - builder = 58 - if pkgs.stdenv.isDarwin 59 - then "${emptyConfiguration.system}/sw/bin/darwin-rebuild" 60 - else pkgs.lib.getExe pkgs.nixos-rebuid; 61 - in pkgs.writeScriptBin "activate-system" '' 62 - ${builder} --flake "${self}#''$(hostname -s)" "$@" 63 - ''; 66 + }; 64 67 }; 65 68 66 - devShells = 67 - (pkgs.callPackage ./dev_shells.nix {}) 68 - // { 69 + systems = ["x86_64-darwin" "aarch64-darwin"]; 70 + 71 + perSystem = { 72 + self', 73 + pkgs, 74 + system, 75 + inputs', 76 + ... 77 + }: { 78 + formatter = pkgs.alejandra; 79 + 80 + packages = (pkgs.callPackage ./pkgs {}) // { 81 + default = pkgs.writeScriptBin "activate" '' 82 + echo ========= System ========= 83 + ${pkgs.lib.getExe self'.packages.system} switch 84 + echo 85 + echo ========= Home ========= 86 + ${pkgs.lib.getExe self'.packages.home} switch 87 + ''; 88 + 89 + home = pkgs.writeScriptBin "activate-home" '' 90 + ${pkgs.lib.getExe inputs'.home-manager.packages.default} --flake "${self}" "$@" 91 + ''; 92 + 93 + system = let 94 + builder = 95 + if pkgs.stdenv.isDarwin 96 + then pkgs.lib.getExe' inputs'.darwin.packages.darwin-rebuild "darwin-rebuild" 97 + else pkgs.lib.getExe pkgs.nixos-rebuid; 98 + in 99 + pkgs.writeScriptBin "activate-system" '' 100 + ${builder} --flake "${self}" "$@" 101 + ''; 102 + }; 103 + 104 + devShells = let 105 + globalShells = pkgs.callPackage ./dev_shells.nix { 106 + inherit (inputs'.lexical.packages) lexical; 107 + inherit (inputs'.beam.packages) livebook; 108 + }; 69 109 default = pkgs.mkShell { 70 110 packages = [ 71 111 pkgs.fnlfmt ··· 73 113 pkgs.stow 74 114 ]; 75 115 }; 76 - }; 77 - }) 78 - // { 79 - lib = { 80 - readFileWithComments = path: let 81 - lib = nixpkgs.lib; 82 - content = lib.strings.fileContents path; 83 - notComment = line: !lib.strings.hasPrefix "#" line; 84 116 in 85 - builtins.filter notComment (lib.strings.splitString "\n" content); 86 - }; 87 - 88 - # TODO: Automatically discover and build that 89 - darwinConfigurations."NiunioBook" = 90 - (import ./hosts/niuniobook.nix { 91 - inherit inputs overlays; 92 - }) 93 - .system; 94 - 95 - homeConfigurations."hauleth" = home-manager.lib.homeManagerConfiguration { 96 - pkgs = import nixpkgs { 97 - system = "x86_64-darwin"; 98 - inherit overlays; 99 - }; 100 - 101 - extraSpecialArgs = { 102 - inherit inputs; 103 - }; 104 - 105 - modules = [ 106 - { 107 - home.username = "hauleth"; 108 - home.homeDirectory = "/Users/hauleth/"; 109 - } 110 - ./modules/fish.nix 111 - ./modules/direnv.nix 112 - ./modules/git.nix 113 - ./modules/plan.nix 114 - ./modules/ctags.nix 115 - ./modules/curl.nix 116 - { home.stateVersion = "22.11"; } 117 - ]; 118 - }; 119 - 120 - 121 - templates = { 122 - elixir = { 123 - path = ./templates/elixir; 124 - description = "Basic requirements for Elixir applications"; 125 - }; 117 + globalShells // {inherit default;}; 126 118 }; 127 119 }; 128 120 }
-30
git/.config/git/attributes
··· 1 - # Elixir 2 - *.ex diff=elixir 3 - *.exs diff=elixir 4 - mix.lock merge=binary 5 - 6 - # Erlang 7 - *.erl diff=erlang 8 - *.hrl diff=erlang 9 - rebar.lock merge=binary 10 - 11 - # TeX 12 - *.tex diff=tex 13 - 14 - # Rust 15 - *.rs diff=rust 16 - Cargo.lock merge=binary 17 - 18 - # CSS 19 - *.css diff=css 20 - 21 - # Ruby 22 - *.rb diff=ruby 23 - 24 - # Python 25 - *.py diff=python 26 - 27 - # Markdown 28 - *.md diff=markdown 29 - *.mdown diff=markdown 30 - *.markdown diff=markdown
-132
git/.config/git/config
··· 1 - [core] 2 - commitGraph = true 3 - 4 - [pager] 5 - difftool = true 6 - diff = "diff-so-fancy | less --tabs=4 -RFX" 7 - 8 - [init] 9 - defaultBranch = master 10 - 11 - [user] 12 - useConfigOnly = true 13 - 14 - [feature] 15 - experimental = true 16 - manyFiles = true 17 - 18 - [alias] 19 - ai = add -i 20 - b = branch 21 - ca = commit --amend 22 - ci = commit 23 - co = checkout 24 - cob = checkout -b 25 - lg = log --color --graph --abbrev-commit --pretty=simple-oneline 26 - rci = commit --amend --reuse-message HEAD 27 - squash = rebase --interactive --autosquash @{upstream} 28 - rbase = "!git rebase --interactive --autosquash $(git merge-base $(git default-branch))" 29 - st = status -sb 30 - todo = grep -Ee '\\bTODO:?\\b' 31 - fixme = grep -Ee '\\bFIX(ME)?:?\\b' 32 - com = "!git checkout $(git default-branch)" 33 - skip = update-index --skip-worktree 34 - unskip = update-index --no-skip-worktree 35 - default-branch = "!git symbolic-ref --short refs/remotes/origin/HEAD | sed 's|^origin/||'" 36 - update = "!git rebase -i \"$(git merge-base HEAD \"$(git default-branch)\")\"" 37 - cleanup = "!git branch --format=\"%(if:notequals=*)%(HEAD)%(then)%(if:notequals=${1:-$(git default-branch)})%(refname:lstrip=2)%(then)%(refname:lstrip=2)%(end)%(end)\" --merged "$(git default-branch)" | xargs -rpxL1 git branch -d" 38 - 39 - [pretty] 40 - simple-oneline = "%C(yellow)%h%C(auto)%d %s [%C(green)%aN <%aE>%C(reset)] (%C(blue)%ar%C(reset))" 41 - simple-oneline-sign = "%C(yellow)%h%C(auto)%d %s [%C(green)%aN <%aE>%C(reset)] (%C(blue)%ar%C(reset)) %G?" 42 - 43 - [merge] 44 - conflictstyle = diff3 45 - 46 - [branch] 47 - autoSetupRebase = always 48 - [push] 49 - default = simple 50 - autoSetupRemote = true 51 - followTags = true 52 - gpgSign = if-asked 53 - [pull] 54 - rebase = true 55 - twohead = ort 56 - [merge] 57 - ff = false 58 - [rebase] 59 - autostash = true 60 - autosquash = true 61 - updateRefs = true 62 - [fetch] 63 - prune = true 64 - [help] 65 - autocorrect = 5 66 - 67 - # Automatically sign all tags and commits 68 - [tag] 69 - forceSignAnnotated = true 70 - sort = version:refname 71 - [versionsort] 72 - suffix = "" 73 - suffix = "-rc" 74 - suffix = "-pre" 75 - [commit] 76 - gpgSign = true 77 - verbose = true 78 - cleanup = scissors 79 - 80 - [filter "lfs"] 81 - clean = git-lfs clean -- %f 82 - smudge = git-lfs smudge -- %f 83 - process = git-lfs filter-process 84 - required = true 85 - 86 - [rerere] 87 - enabled = false 88 - 89 - [diff] 90 - indentHeuristic = true 91 - algorithm = histogram 92 - mnemonicPrefix = true 93 - tool = difftastic 94 - 95 - [diff "markdown"] 96 - xfuncname = "^(#+\\s+.*)$" 97 - 98 - [difftool] 99 - prompt = false 100 - 101 - [difftool "difftastic"] 102 - cmd = difft "$LOCAL" "$REMOTE" 103 - 104 - [color] 105 - ui = true 106 - 107 - [color.diff] 108 - old = magenta 109 - new = blue 110 - 111 - [color.diff-highlight] 112 - oldNormal = "blue" 113 - oldHighlight = "blue reverse" 114 - newNormal = "yellow" 115 - newHighlight = "yellow reverse" 116 - 117 - [pack] 118 - useSparse = true 119 - 120 - [sendemail] 121 - annotate = true 122 - confirm = always 123 - thread = true 124 - supersscc = self 125 - 126 - [gpg] 127 - ; format = ssh 128 - 129 - [gpg.ssh] 130 - defaultKeyCommand = "ssh-add -L" 131 - 132 - # vim: ft=gitconfig noexpandtab sw=8
-12
git/.config/git/hooks.d/email/pre-commit
··· 1 - #!/bin/bash 2 - 3 - if ! git config --get user.email >/dev/null 4 - then 5 - printf "No identity set, set one using 'git identity <name>'" \ 6 - | cowsay -f dragon-and-cow -W 60 7 - echo "" 8 - 9 - git identity --list 10 - 11 - exit 1 12 - fi
-3
git/.config/git/hooks.d/lfs/post-checkout
··· 1 - #!/bin/sh 2 - command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting .git/hooks/post-merge.\n"; exit 2; } 3 - git lfs post-checkout "$@"
-3
git/.config/git/hooks.d/lfs/post-commit
··· 1 - #!/bin/sh 2 - command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting .git/hooks/post-merge.\n"; exit 2; } 3 - git lfs post-commit "$@"
-3
git/.config/git/hooks.d/lfs/post-merge
··· 1 - #!/bin/sh 2 - command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting .git/hooks/post-merge.\n"; exit 2; } 3 - git lfs post-merge "$@"
-3
git/.config/git/hooks.d/lfs/pre-push
··· 1 - #!/bin/sh 2 - command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting .git/hooks/post-merge.\n"; exit 2; } 3 - git lfs pre-push "$@"
-5
git/.config/git/hooks.d/swears/pre-commit
··· 1 - #!/bin/bash 2 - 3 - SWEAR_DIR="$(dirname "${BASH_SOURCE[0]}")/swears" 4 - 5 - ! find "${SWEAR_DIR}" -type f -print0 2> /dev/null | xargs -0 -n1 sh -c 'git diff --diff-filter=AR --cached | grep -wFf "$1"' --
-377
git/.config/git/hooks.d/swears/swears/en
··· 1 - 2g1c 2 - 2 girls 1 cup 3 - acrotomophilia 4 - alabama hot pocket 5 - alaskan pipeline 6 - anal 7 - anilingus 8 - anus 9 - apeshit 10 - arsehole 11 - ass 12 - asshole 13 - assmunch 14 - auto erotic 15 - autoerotic 16 - babeland 17 - baby batter 18 - baby juice 19 - ball gag 20 - ball gravy 21 - ball kicking 22 - ball licking 23 - ball sack 24 - ball sucking 25 - bangbros 26 - bareback 27 - barely legal 28 - barenaked 29 - bastard 30 - bastardo 31 - bastinado 32 - bbw 33 - bdsm 34 - beaner 35 - beaners 36 - beaver cleaver 37 - beaver lips 38 - bestiality 39 - big black 40 - big breasts 41 - big knockers 42 - big tits 43 - bimbos 44 - birdlock 45 - bitch 46 - bitches 47 - black cock 48 - blonde action 49 - blonde on blonde action 50 - blowjob 51 - blow job 52 - blow your load 53 - blue waffle 54 - blumpkin 55 - bollocks 56 - bondage 57 - boner 58 - boob 59 - boobs 60 - booty call 61 - brown showers 62 - brunette action 63 - bukkake 64 - bulldyke 65 - bullet vibe 66 - bullshit 67 - bung hole 68 - bunghole 69 - busty 70 - butt 71 - buttcheeks 72 - butthole 73 - camel toe 74 - camgirl 75 - camslut 76 - camwhore 77 - carpet muncher 78 - carpetmuncher 79 - chocolate rosebuds 80 - circlejerk 81 - cleveland steamer 82 - clit 83 - clitoris 84 - clover clamps 85 - clusterfuck 86 - cock 87 - cocks 88 - coprolagnia 89 - coprophilia 90 - cornhole 91 - coon 92 - coons 93 - creampie 94 - cum 95 - cumming 96 - cunnilingus 97 - cunt 98 - darkie 99 - date rape 100 - daterape 101 - deep throat 102 - deepthroat 103 - dendrophilia 104 - dick 105 - dildo 106 - dingleberry 107 - dingleberries 108 - dirty pillows 109 - dirty sanchez 110 - doggie style 111 - doggiestyle 112 - doggy style 113 - doggystyle 114 - dog style 115 - dolcett 116 - domination 117 - dominatrix 118 - dommes 119 - donkey punch 120 - double dong 121 - double penetration 122 - dp action 123 - dry hump 124 - dvda 125 - eat my ass 126 - ecchi 127 - ejaculation 128 - erotic 129 - erotism 130 - escort 131 - eunuch 132 - faggot 133 - fecal 134 - felch 135 - fellatio 136 - feltch 137 - female squirting 138 - femdom 139 - figging 140 - fingerbang 141 - fingering 142 - fisting 143 - foot fetish 144 - footjob 145 - frotting 146 - fuck 147 - fuck buttons 148 - fuckin 149 - fucking 150 - fucktards 151 - fudge packer 152 - fudgepacker 153 - futanari 154 - gang bang 155 - gay sex 156 - genitals 157 - giant cock 158 - girl on 159 - girl on top 160 - girls gone wild 161 - goatcx 162 - goatse 163 - god damn 164 - gokkun 165 - golden shower 166 - goodpoop 167 - goo girl 168 - goregasm 169 - grope 170 - group sex 171 - g-spot 172 - guro 173 - hand job 174 - handjob 175 - hard core 176 - hardcore 177 - hentai 178 - homoerotic 179 - honkey 180 - hooker 181 - hot carl 182 - hot chick 183 - how to kill 184 - how to murder 185 - huge fat 186 - humping 187 - incest 188 - intercourse 189 - jack off 190 - jail bait 191 - jailbait 192 - jelly donut 193 - jerk off 194 - jigaboo 195 - jiggaboo 196 - jiggerboo 197 - jizz 198 - juggs 199 - kike 200 - kinbaku 201 - kinkster 202 - kinky 203 - knobbing 204 - leather restraint 205 - leather straight jacket 206 - lemon party 207 - lolita 208 - lovemaking 209 - make me come 210 - male squirting 211 - masturbate 212 - menage a trois 213 - milf 214 - missionary position 215 - motherfucker 216 - mound of venus 217 - mr hands 218 - muff diver 219 - muffdiving 220 - nambla 221 - nawashi 222 - negro 223 - neonazi 224 - nigga 225 - nigger 226 - nig nog 227 - nimphomania 228 - nipple 229 - nipples 230 - nsfw images 231 - nude 232 - nudity 233 - nympho 234 - nymphomania 235 - octopussy 236 - omorashi 237 - one cup two girls 238 - one guy one jar 239 - orgasm 240 - orgy 241 - paedophile 242 - paki 243 - panties 244 - panty 245 - pedobear 246 - pedophile 247 - pegging 248 - penis 249 - phone sex 250 - piece of shit 251 - pissing 252 - piss pig 253 - pisspig 254 - playboy 255 - pleasure chest 256 - pole smoker 257 - ponyplay 258 - poof 259 - poon 260 - poontang 261 - punany 262 - poop chute 263 - poopchute 264 - porn 265 - porno 266 - pornography 267 - prince albert piercing 268 - pthc 269 - pubes 270 - pussy 271 - queaf 272 - queef 273 - quim 274 - raghead 275 - raging boner 276 - rape 277 - raping 278 - rapist 279 - rectum 280 - reverse cowgirl 281 - rimjob 282 - rimming 283 - rosy palm 284 - rosy palm and her 5 sisters 285 - rusty trombone 286 - sadism 287 - santorum 288 - scat 289 - schlong 290 - scissoring 291 - semen 292 - sex 293 - sexo 294 - sexy 295 - shaved beaver 296 - shaved pussy 297 - shemale 298 - shibari 299 - shit 300 - shitblimp 301 - shitty 302 - shota 303 - shrimping 304 - skeet 305 - slanteye 306 - slut 307 - s&m 308 - smut 309 - snatch 310 - snowballing 311 - sodomize 312 - sodomy 313 - spic 314 - splooge 315 - splooge moose 316 - spooge 317 - spread legs 318 - spunk 319 - strap on 320 - strapon 321 - strappado 322 - strip club 323 - style doggy 324 - suck 325 - sucks 326 - suicide girls 327 - sultry women 328 - swastika 329 - swinger 330 - tainted love 331 - taste my 332 - tea bagging 333 - threesome 334 - throating 335 - tied up 336 - tight white 337 - tit 338 - tits 339 - titties 340 - titty 341 - tongue in a 342 - topless 343 - tosser 344 - towelhead 345 - tranny 346 - tribadism 347 - tub girl 348 - tubgirl 349 - tushy 350 - twat 351 - twink 352 - twinkie 353 - two girls one cup 354 - undressing 355 - upskirt 356 - urethra play 357 - urophilia 358 - vagina 359 - venus mound 360 - vibrator 361 - violet wand 362 - vorarephilia 363 - voyeur 364 - vulva 365 - wank 366 - wetback 367 - wet dream 368 - white power 369 - wrapping men 370 - wrinkled starfish 371 - xx 372 - xxx 373 - yaoi 374 - yellow showers 375 - yiffy 376 - zoophilia 377 - 🖕
-53
git/.config/git/hooks.d/swears/swears/pl
··· 1 - burdel 2 - burdelmama 3 - chuj 4 - chujnia 5 - ciota 6 - cipa 7 - cyc 8 - debil 9 - dmuchać 10 - do kurwy nędzy 11 - dupa 12 - dupek 13 - duperele 14 - dziwka 15 - fiut 16 - gówno 17 - gówno prawda 18 - huj 19 - jajco 20 - jajeczko 21 - jajko 22 - jajo 23 - ja pierdolę 24 - jebać 25 - jebany 26 - kurwa 27 - kurwy 28 - kutafon 29 - kutas 30 - lizać pałę 31 - obciągać chuja 32 - obciągać fiuta 33 - obciągać loda 34 - pieprzyć 35 - pierdolec 36 - pierdolić 37 - pierdolnięty 38 - pierdoła 39 - pierdzieć 40 - pizda 41 - pojeb 42 - popierdolony 43 - robic loda 44 - robić loda 45 - ruchać 46 - rzygać 47 - skurwysyn 48 - sraczka 49 - srać 50 - suka 51 - syf 52 - wkurwiać 53 - zajebisty
-25
git/.config/git/hooks.d/trailing-whitespaces/pre-commit
··· 1 - #!/bin/sh 2 - # 3 - # A git hook script to find and fix trailing whitespace 4 - # in your commits. Bypass it with the --no-verify option 5 - # to git-commit 6 - # Ref - http://is.gd/PerowD 7 - # 8 - 9 - if git rev-parse --verify HEAD >/dev/null 2>&1 10 - then 11 - against=HEAD 12 - else 13 - # Initial commit: diff against an empty tree object 14 - against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 15 - fi 16 - 17 - # Find files with trailing whitespace 18 - for FILE in $(exec git diff-index --check $against -- | sed '/^[+-]/d' | (sed -r 's/:[0-9]+:.*//' > /dev/null 2>&1 || sed -E 's/:[0-9]+:.*//') | uniq) ; do 19 - # Fix them! 20 - (sed -i 's/[[:space:]]*$//' "$FILE" > /dev/null 2>&1 || sed -i '' -E 's/[[:space:]]*$//' "$FILE") 21 - git add "$FILE" 22 - echo "NOTE: removed trailing whitespace from $FILE" 23 - done 24 - 25 - exit
-10
git/.config/git/hooks.d/unresolved-merge/pre-commit
··· 1 - #!/bin/sh 2 - 3 - conflicts="$(git diff --cached --name-only -S'<<<<<<')" 4 - 5 - if [ -n "$conflicts" ] 6 - then 7 - echo "Unresolved merge conflicts in this commit:" 8 - echo "$conflicts" 9 - exit 1 10 - fi
-58
git/.config/git/hooks.d/wip-check/pre-push
··· 1 - #!/bin/sh 2 - 3 - # An example hook script to verify what is about to be pushed. Called by "git 4 - # push" after it has checked the remote status, but before anything has been 5 - # pushed. If this script exits with a non-zero status nothing will be pushed. 6 - # 7 - # This hook is called with the following parameters: 8 - # 9 - # $1 -- Name of the remote to which the push is being done 10 - # $2 -- URL to which the push is being done 11 - # 12 - # If pushing without using a named remote those arguments will be equal. 13 - # 14 - # Information about the commits which are being pushed is supplied as lines to 15 - # the standard input in the form: 16 - # 17 - # <local ref> <local sha1> <remote ref> <remote sha1> 18 - # 19 - # This sample shows how to prevent push of commits where the log message starts 20 - # with "WIP" (work in progress). 21 - 22 - 23 - z40=0000000000000000000000000000000000000000 24 - 25 - IFS=' ' 26 - while read local_ref local_sha remote_ref remote_sha 27 - do 28 - if [ "$local_sha" = "$z40" ] 29 - then 30 - # Handle delete 31 - : 32 - else 33 - if [ "$remote_sha" = "$z40" ] 34 - then 35 - master_branch="$(git config --get riff.wip.master)" 36 - # New branch, examine all commits 37 - if [ -z "$master_branch" ] 38 - then 39 - range="$local_sha" 40 - else 41 - range="$local_sha...$master_branch" 42 - fi 43 - else 44 - # Update to existing branch, examine new commits 45 - range="$remote_sha..$local_sha" 46 - fi 47 - 48 - # Check for WIP commit 49 - commit="$(git rev-list --count -i --grep '^WIP' "$range")" 50 - if [ "$commit" -ne "0" ] 51 - then 52 - echo "Found WIP $commit commit(s) in $local_ref, not pushing" 53 - exit 1 54 - fi 55 - fi 56 - done 57 - 58 - exit 0
-88
git/.config/git/hooks/hook.sh
··· 1 - #!/bin/bash 2 - 3 - hooks=(post-checkout post-commit post-merge pre-commit pre-push prepare-commit-msg) 4 - 5 - usage() { 6 - echo "$0 [install|help]" 7 - echo 'Version 0.1.0' 8 - echo 'Copyright (c) Łukasz Niemier <opensource@niemier.pl>' 9 - echo 10 - echo 'Simple git hooks management system' 11 - echo 12 - echo 'install [hook_dir]' 13 - echo ' Installs hooks for given repo.' 14 - echo 15 - echo ' [hook_dir] - directory where install hooks, defaults to .git/hooks' 16 - echo ' in current Git working directory' 17 - echo 'help' 18 - echo ' display this message' 19 - echo 20 - echo 'To use this as default set of hooks when creating new repo then:' 21 - echo 22 - echo " 1. Run '$0 ~/.githooks'" 23 - echo ' 2. Run 'git config --global core.hooksPath ~/.githooks'' 24 - echo 25 - } 26 - 27 - install() { 28 - source="${BASH_SOURCE[0]}" 29 - HOOK_DIR="${1:-"$(git rev-parse --show-toplevel)/.git/hooks"}" 30 - 31 - echo "Install handler" 32 - echo 33 - 34 - mkdir -p "$HOOK_DIR" 35 - cp -i "$source" "$HOOK_DIR/hook.sh" 36 - 37 - echo "Installing hooks" 38 - echo 39 - 40 - for hook in "${hooks[@]}" 41 - do 42 - echo "Installing $hook" 43 - ln -si "hook.sh" "$HOOK_DIR/$hook" 44 - done 45 - } 46 - 47 - hook() { 48 - git_dir=$(git rev-parse --git-dir) 49 - script="$(basename "$0")" 50 - PLUG_DIRS=("$(command git config --global --get hooks.path)" "$git_dir/hooks/hooks.d" "$(command git config --worktree --get hooks.path)") 51 - 52 - test -d "$git_dir"/rebase-merge -o -d "$git_dir"/rebase-apply && exit 0 53 - 54 - input="$(mktemp)" 55 - touch "$input" 56 - trap '{ rm -f "$input"; }' EXIT 57 - cat - > "$input" 58 - 59 - for dir in "${PLUG_DIRS[@]}" 60 - do 61 - if [ -d "$dir" ] 62 - then 63 - find "$dir" -maxdepth 2 -and -name "$script" -print0 2>/dev/null \ 64 - | xargs -0 -n1 -I% sh -c 'input="$1"; shift; if [ -x "$1" ]; then printf "\n## $(basename "$(dirname "$1")")\n" && "$@" < "$input" && echo ok; fi' -- "$input" % "$@" 65 - retval="$?" 66 - 67 - if [ ! "$retval" -eq 0 ] 68 - then 69 - return "$retval" 70 - fi 71 - fi 72 - done 73 - } 74 - 75 - case "$1" in 76 - install) 77 - shift 78 - install "$@" 79 - exit 80 - ;; 81 - help|-h|--help|version|-v|-V|--version) 82 - shift 83 - usage 84 - exit 85 - ;; 86 - *) 87 - hook "$@" 88 - esac
-1
git/.config/git/hooks/post-checkout
··· 1 - hook.sh
-1
git/.config/git/hooks/post-commit
··· 1 - hook.sh
-1
git/.config/git/hooks/post-merge
··· 1 - hook.sh
-1
git/.config/git/hooks/pre-commit
··· 1 - hook.sh
-1
git/.config/git/hooks/pre-push
··· 1 - hook.sh
-1
git/.config/git/hooks/prepare-commit-msg
··· 1 - hook.sh
-82
git/.config/git/ignore
··· 1 - # Compiled sources {{{ 2 - *.com 3 - *.class 4 - *.dll 5 - *.exe 6 - *.o 7 - *.so 8 - # }}} 9 - # Packages {{{ 10 - *.7z 11 - *.dmg 12 - *.gz 13 - *.iso 14 - *.jar 15 - *.rar 16 - *.tar 17 - *.xz 18 - *.zip 19 - # }}} 20 - # Logs and databases {{{ 21 - *.log 22 - *.sqlite 23 - # }}} 24 - # OS generated files {{{ 25 - .DS_Store 26 - .DS_Store? 27 - ._* 28 - .Trashes 29 - ehthumbs.db 30 - Thumbs.db 31 - # }}} 32 - # Codekits {{{ 33 - .sass-cache/ 34 - .codekit-config.json 35 - config.codekit 36 - # }}} 37 - # Configs {{{ 38 - .envrc 39 - .direnv 40 - .devenv 41 - # }}} 42 - # Editors {{{ 43 - # VIM 44 - Session.vim 45 - .*.swo 46 - .*.swp 47 - *~ 48 - 49 - # Idea 50 - .idea/ 51 - 52 - # Sublime 53 - *.sublime-project 54 - 55 - # Atom 56 - .tern-project 57 - # }}} 58 - # Temporary files {{{ 59 - tmp/ 60 - *.tmp 61 - # }}} 62 - # Other {{{ 63 - .rake_tasks 64 - .meteor/ 65 - tags 66 - tags.* 67 - .gdb_history 68 - perf.data* 69 - oprofile_data 70 - .tool-versions-e 71 - # }}} 72 - 73 - # Tooling {{{ 74 - .elixir_ls 75 - .vagrant/ 76 - # }}} 77 - 78 - # Stack {{{ 79 - .stack-work 80 - # }}} 81 - 82 - erl_crash.dump
+6 -9
hosts/niuniobook.nix
··· 1 - { inputs 2 - , overlays 3 - , ... 1 + { 2 + inputs, 3 + ... 4 4 }: { 5 5 type = "darwin"; 6 6 7 7 hostname = "NiunioBook"; 8 8 9 9 system = inputs.darwin.lib.darwinSystem { 10 - system = "x86_64-darwin"; 10 + system = "aarch64-darwin"; 11 11 modules = [ 12 - { nixpkgs = { inherit overlays; }; } 13 12 { 14 13 # You should generally set this to the total number of logical cores in your system. 15 14 # $ sysctl -n hw.ncpu ··· 19 18 ../modules/common.nix 20 19 ../modules/darwin.nix 21 20 ../modules/iosevka.nix 22 - ../nix/environment.nix 21 + ./modules/environment.nix 23 22 ../modules/nvim.nix 24 23 { 25 24 system.stateVersion = 4; ··· 27 26 } 28 27 ]; 29 28 30 - inputs = { 31 - dotfiles = inputs.self; 32 - }; 29 + inherit inputs; 33 30 }; 34 31 }
misc/.dir_colors users/modules/dircolors
+14 -7
modules/common.nix
··· 1 - { pkgs, inputs, ... }: 2 1 { 2 + pkgs, 3 + inputs, 4 + ... 5 + }: { 3 6 nixpkgs.config.allowUnfree = true; 4 7 5 8 nix.useDaemon = true; ··· 9 12 pkgs.cachix 10 13 ]; 11 14 12 - nix.registry = { 13 - nixpkgs.flake = inputs.nixpkgs; 14 - dotfiles.flake = inputs.dotfiles; 15 - } // pkgs.lib.optionals pkgs.stdenv.isDarwin { 16 - darwin.flake = inputs.darwin; 17 - }; 15 + nix.registry = 16 + { 17 + nixpkgs.flake = inputs.nixpkgs; 18 + dotfiles.flake = inputs.self; 19 + } 20 + // pkgs.lib.optionals pkgs.stdenv.isDarwin { 21 + darwin.flake = inputs.darwin; 22 + }; 18 23 19 24 nix.package = pkgs.nixFlakes; 20 25 nix.extraOptions = '' ··· 22 27 keep-derivations = true 23 28 24 29 experimental-features = nix-command flakes 30 + 31 + extra-trusted-users = hauleth 25 32 ''; 26 33 }
+9 -6
modules/ctags.nix
··· 1 - { config, lib, pkgs, ... }: 2 - let 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: let 3 7 toArg = k: v: "--${k}=${v}"; 4 8 listToArgs = k: vs: map (toArg k) vs; 5 9 attrsetToArgs = attr: lib.strings.concatStringsSep "\n" (lib.lists.flatten (lib.attrsets.mapAttrsToList listToArgs attr)); 6 - in 7 - { 10 + in { 8 11 options.programs.ctags = { 9 12 enable = lib.mkEnableOption "ctags"; 10 13 ··· 17 20 18 21 flags = lib.mkOption { 19 22 type = lib.types.attrsOf lib.types.anything; 20 - default = { }; 23 + default = {}; 21 24 }; 22 25 }; 23 26 ··· 60 63 }; 61 64 }; 62 65 63 - home.packages = [ config.programs.ctags.package ]; 66 + home.packages = [config.programs.ctags.package]; 64 67 65 68 xdg.configFile.ctags = { 66 69 target = "ctags/config.ctags";
+1 -1
modules/curl.nix
··· 1 - { pkgs, ... }: { 1 + {pkgs, ...}: { 2 2 home.packages = [ 3 3 pkgs.curl 4 4 pkgs.curlie
+1 -2
modules/darwin.nix
··· 1 - { pkgs, ... }: 2 - { 1 + {pkgs, ...}: { 3 2 nix.settings.extra-sandbox-paths = [ 4 3 "/System/Library/Frameworks" 5 4 "/System/Library/PrivateFrameworks"
+1 -1
modules/direnv.nix
··· 1 - { ... }: { 1 + {...}: { 2 2 programs.direnv = { 3 3 enable = true; 4 4
+33
modules/email.nix
··· 1 + {pkgs, ...}: { 2 + # programs.himalaya.enable = true; 3 + programs.mbsync.enable = true; 4 + programs.notmuch.enable = true; 5 + programs.aerc.enable = true; 6 + programs.aerc.extraConfig.general.unsafe-accounts-conf = true; 7 + 8 + accounts.email.accounts."hauleth" = { 9 + realName = "Łukasz Niemier"; 10 + userName = "hauleth"; 11 + address = "~@hauleth.dev"; 12 + primary = true; 13 + 14 + passwordCommand = "op item get i6gyiq3aro4lp2ys5xygfb7uwu --field password"; 15 + 16 + mbsync.enable = true; 17 + notmuch.enable = true; 18 + aerc.enable = true; 19 + # himalaya.enable = true; 20 + 21 + imap = { 22 + host = "mail.hauleth.dev"; 23 + port = 993; 24 + # tls = true; 25 + }; 26 + 27 + smtp = { 28 + host = "mail.hauleth.dev"; 29 + port = 465; 30 + # tls = true; 31 + }; 32 + }; 33 + }
+33 -10
modules/fish.nix
··· 1 - { config, pkgs, ... }: { 1 + { 2 + config, 3 + pkgs, 4 + inputs, 5 + ... 6 + }: { 7 + home.packages = [ 8 + pkgs.eza 9 + ]; 10 + 11 + programs.atuin = { 12 + enable = true; 13 + flags = ["--disable-up-arrow"]; 14 + settings = { 15 + style = "compact"; 16 + inline_height = 15; 17 + }; 18 + }; 19 + 20 + # Disable home-manager provided man binary as it breaks on macOS 21 + programs.man.enable = false; 22 + 23 + home.sessionVariables = { 24 + PAGER = "${pkgs.less}/bin/less"; 25 + LESS = "-SRFXi"; 26 + ERL_FLAGS = "-kernel shell_history enabled"; 27 + }; 28 + 2 29 programs.fish = { 3 30 enable = true; 4 31 5 32 plugins = [ 6 33 { 7 34 name = "agnoster"; 8 - src = pkgs.fetchFromGitHub { 9 - owner = "hauleth"; 10 - repo = "agnoster"; 11 - rev = "master"; 12 - sha256 = "0/FgJlQULIXKhQIt3z3ugAGubgMlwFZa/cjGjiq7BcA="; 13 - }; 35 + src = inputs.agnoster; 14 36 } 15 37 ]; 16 38 17 39 shellAliases = { 18 40 git = "LC_CTYPE=UTF-8 LANG=C command git"; 19 41 g = "git"; 42 + ls = "eza"; 20 43 }; 21 44 22 45 functions = { ··· 24 47 if test (count $argv) -gt 0 && test -f $argv[1] || not isatty 25 48 bat $argv 26 49 else 27 - ls -Alh $argv 50 + eza -Alh --git $argv 28 51 end 29 52 ''; 30 - ix = "curl --netrc-optional -F 'f:1=@-' ix.io | pbcopy"; 31 53 }; 32 54 33 55 loginShellInit = '' ··· 41 63 set -g fish_greeting 42 64 43 65 function e --wraps nvim --description 'Run $EDITOR' 44 - $EDITOR $argv 66 + set -l cmd (string split ' ' $EDITOR) 67 + eval $cmd[1] $cmd[2..] $argv 45 68 end 46 69 47 70 ulimit -n 10480
+62 -18
modules/git.nix
··· 1 - { pkgs, inputs, ... }: { 1 + { 2 + pkgs, 3 + lib, 4 + inputs, 5 + ... 6 + }: { 2 7 programs.gh = { 3 8 enable = true; 4 9 ··· 9 14 ]; 10 15 11 16 settings.aliases.co = "pr checkout"; 17 + settings.version = "1"; 12 18 }; 13 19 14 - home.packages = 15 - let 16 - git-branchless-man = pkgs.runCommand "git-branchless-man" { } '' 17 - mkdir -p $out/share/man 18 - ${pkgs.git-branchless}/bin/git-branchless install-man-pages $out/share/man 19 - ''; 20 - in 21 - [ 22 - pkgs.git-absorb 23 - pkgs.git-branchless 24 - git-branchless-man 25 - pkgs.git-gone 26 - pkgs.git-revise 27 - pkgs.gitAndTools.git-imerge 28 - pkgs.gitAndTools.tig 29 - ]; 20 + # manual.manpages.enable = true; 21 + 22 + home.packages = let 23 + git-branchless-man = pkgs.runCommand "git-branchless-man" {} '' 24 + mkdir -p $out/share/man 25 + ${pkgs.git-branchless}/bin/git-branchless install-man-pages $out/share/man 26 + ''; 27 + git-cliff = pkgs.rustPlatform.buildRustPackage { 28 + pname = "git-cliff"; 29 + version = "2.0.0-pre"; 30 + 31 + src = pkgs.fetchFromGitHub { 32 + owner = "orhun"; 33 + repo = "git-cliff"; 34 + rev = "d408e6377a5157f6d285b2733e6640d36316cfd4"; 35 + hash = "sha256-DqfcSSG/XmeFHckP9Mmv560WA9VJjhDhpYSkYT9YW9I="; 36 + }; 37 + 38 + cargoHash = "sha256-Qw7ZHLWPgIKqCmjhHwJ4QEz/WQMxrR8eG3tAgAKN7v0="; 39 + 40 + buildNoDefaultFeatures = true; 41 + buildFeatures = [ "github" ]; 42 + 43 + # attempts to run the program on .git in src which is not deterministic 44 + doCheck = false; 45 + 46 + buildInputs = lib.optionals pkgs.stdenv.isDarwin [ 47 + pkgs.darwin.apple_sdk.frameworks.CoreFoundation 48 + pkgs.darwin.apple_sdk.frameworks.Security 49 + pkgs.darwin.apple_sdk.frameworks.SystemConfiguration 50 + ]; 51 + }; 52 + in [ 53 + pkgs.git-absorb 54 + pkgs.git-branchless 55 + git-branchless-man 56 + pkgs.git-gone 57 + pkgs.git-chglog 58 + git-cliff 59 + pkgs.git-revise 60 + pkgs.gitAndTools.git-imerge 61 + pkgs.prr 62 + pkgs.hut 63 + inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.imbox 64 + ]; 30 65 31 66 programs.git = { 32 67 enable = true; ··· 53 88 "*.md diff=markdown" 54 89 55 90 "flake.lock merge=binary" 91 + 92 + "yarn.lock merge=binary" 93 + 94 + "*.lockb diff=lockb" 56 95 ]; 57 96 58 97 ignores = inputs.self.lib.readFileWithComments ./git/ignore; ··· 105 144 tool = "difftastic"; 106 145 107 146 markdown.xfuncname = "^(#+\\s+.*)$"; 147 + 148 + lockb = { 149 + textconv = "${pkgs.bun}/bin/bun"; 150 + binary = true; 151 + }; 108 152 }; 109 153 110 154 difftool = { ··· 122 166 sort = "version:refname"; 123 167 }; 124 168 125 - versionsort.suffix = [ "" "-rc" "-pre" ]; 169 + versionsort.suffix = ["" "-rc" "-pre"]; 126 170 127 171 push = { 128 172 default = "simple";
+1
modules/git/ignore
··· 72 72 73 73 # Tooling {{{ 74 74 .elixir_ls 75 + .lexical 75 76 .vagrant/ 76 77 # }}} 77 78
+20 -21
modules/iosevka.nix
··· 1 - { pkgs, ... }: 2 - let 1 + {pkgs, ...}: let 3 2 variants = { 4 3 design = { 5 4 i = "hooky"; 6 5 l = "zshaped"; 7 6 g = "single-storey-serifless"; 8 - y = "straight"; 7 + # y = "straight"; 9 8 zero = "slashed"; 10 9 dollar = "open"; 11 10 percent = "dots"; ··· 46 45 }; 47 46 }; 48 47 buildIosevka = pkgs.iosevka.override; 49 - iosevka-ss09 = buildIosevka { 48 + hosevka-ss09 = buildIosevka { 50 49 set = "ss09"; 51 50 privateBuildPlan = { 52 - family = "Iosevka"; 51 + family = "Hosevka"; 53 52 54 53 inherit variants weights slopes; 55 54 }; 56 55 }; 57 - iosevka-ss09-term = buildIosevka { 56 + hosevka-ss09-term = buildIosevka { 58 57 set = "ss09-term"; 59 58 privateBuildPlan = { 60 - family = "Iosevka Term"; 59 + family = "Hosevka Term"; 61 60 spacing = "term"; 62 61 63 62 inherit variants weights slopes; 64 63 }; 65 64 }; 66 - nf-patch = font: pkgs.stdenvNoCC.mkDerivation { 67 - pname = "${font.pname}-nerd-font-patched"; 68 - version = font.version; 65 + nf-patch = font: 66 + pkgs.stdenvNoCC.mkDerivation { 67 + pname = "${font.pname}-nerd-font-patched"; 68 + version = font.version; 69 69 70 - src = font; 70 + src = font; 71 71 72 - nativeBuildInputs = [ pkgs.nerd-font-patcher ]; 72 + nativeBuildInputs = [pkgs.nerd-font-patcher]; 73 73 74 - buildPhase = '' 75 - mkdir -p $out 76 - find -name \*.ttf -exec nerd-font-patcher -o $out/share/fonts/truetype/ -c {} \; 77 - ''; 78 - installPhase = ""; 79 - }; 80 - in 81 - { 74 + buildPhase = '' 75 + mkdir -p $out 76 + find -name \*.ttf -exec nerd-font-patcher -o $out/share/fonts/truetype/ -c {} \; 77 + ''; 78 + installPhase = ""; 79 + }; 80 + in { 82 81 fonts = { 83 82 fontDir.enable = true; 84 83 fonts = [ 85 84 pkgs.lato 86 - (nf-patch iosevka-ss09-term) 85 + (nf-patch hosevka-ss09-term) 87 86 ]; 88 87 }; 89 88 }
+5
modules/nixd.nix
··· 1 + {pkgs, ...}: { 2 + home.packages = [ 3 + pkgs.nixd 4 + ]; 5 + }
+1
modules/nvim.nix
··· 1 1 { 2 2 config, 3 3 pkgs, 4 + inputs, 4 5 ... 5 6 }: let 6 7 nvim = pkgs.neovim.override {
+1 -1
modules/plan.nix
··· 1 - { pkgs, ... }: { 1 + {pkgs, ...}: { 2 2 launchd.agents.plan-sync = { 3 3 enable = pkgs.stdenv.isDarwin; 4 4 config = {
+11
modules/swiftbar.nix
··· 1 + {pkgs, ...}: { 2 + home.packages = with pkgs; [ 3 + swiftbar 4 + ]; 5 + 6 + targets.darwin.defaults = { 7 + "com.ameba.SwiftBar" = { 8 + PluginDirectory = "/Users/hauleth/.config/swift-bar/plugins/"; 9 + }; 10 + }; 11 + }
+10
modules/tools.nix
··· 1 + {pkgs, inputs, config, ...}: { 2 + home.packages = with pkgs; [ 3 + # bfs 4 + comby 5 + senpai 6 + jaq 7 + jo 8 + inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.ubin-client 9 + ]; 10 + }
-9
nix/environment.nix hosts/modules/environment.nix
··· 9 9 # _1password 10 10 asciinema 11 11 bat 12 - comby 13 12 coreutils 14 13 entr 15 14 findutils 16 15 fswatch 17 16 fzy 18 17 gnupg 19 - jq 20 18 lima 21 19 lnav 22 20 neovim-remote ··· 25 23 # qmk 26 24 rage 27 25 ripgrep 28 - rnix-lsp 29 - senpai 30 26 ]; 31 27 32 28 environment.shells = [pkgs.fish pkgs.zsh]; 33 - 34 - environment.variables = { 35 - LESS = "-SRFXi"; 36 - ERL_FLAGS = "-kernel shell_history enabled"; 37 - }; 38 29 39 30 programs.nix-index.enable = true; 40 31 programs.fish.enable = true;
+6 -24
pkgs/default.nix
··· 1 - final: prev: { 2 - beam = 3 - prev.beam 4 - // { 5 - defaultVersion = "erlangR25"; 6 - 7 - packages = 8 - prev.beam.packages 9 - // { 10 - erlangR25 = prev.beam.packages.erlangR25.extend (efinal: eprev: { 11 - elixir = eprev.elixir_1_14; 12 - rebar3 = eprev.rebar3.overrideAttrs (_: { doCheck = false; }); 13 - }); 14 - }; 15 - 16 - packagesWith = erlang: 17 - (prev.beam.packagesWith erlang).extend (efinal: eprev: { 18 - livebook = eprev.livebook.override { elixir = efinal.elixir_1_14; }; 19 - }); 20 - }; 1 + {callPackage, entr, ripgrep, writeShellApplication}: { 2 + prr = callPackage ./prr.nix {}; 3 + imbox = callPackage ./imbox.nix {}; 4 + ubin-client = callPackage ./ubin-client.nix {}; 21 5 22 - livebook = final.beam.packages.livebook; 23 - 24 - fswatch = prev.writeShellApplication { 6 + fswatch = writeShellApplication { 25 7 name = "fswatch"; 26 8 27 - runtimeInputs = [ final.entr final.ripgrep ]; 9 + runtimeInputs = [entr ripgrep]; 28 10 29 11 text = '' 30 12 rg -l -t "$1" "" | entr -p echo /_
+14
pkgs/imbox.nix
··· 1 + { libressl, stdenv, fetchgit, lib, pkg-config }: stdenv.mkDerivation (self: { 2 + pname = "imbox"; 3 + version = "1.4"; 4 + 5 + src = fetchgit { 6 + url = "https://git.causal.agency/imbox"; 7 + rev = self.version; 8 + hash = "sha256-y5GCH3miimOWSCvS+Kh/nOpNrIEpcoc9p8jlQqYuh7Q="; 9 + }; 10 + 11 + nativeBuildInputs = [ pkg-config ]; 12 + 13 + buildInputs = [ libressl ]; 14 + })
+35
pkgs/prr.nix
··· 1 + { stdenv, rustPlatform, openssl, darwin, fetchFromGitHub, lib, pkg-config }: 2 + 3 + rustPlatform.buildRustPackage rec { 4 + pname = "prr"; 5 + version = "0.16.0"; 6 + 7 + nativeBuildInputs = [ 8 + pkg-config 9 + ]; 10 + 11 + buildInputs = 12 + [ 13 + openssl 14 + ] 15 + ++ lib.optional stdenv.isDarwin (with darwin.apple_sdk; [ 16 + frameworks.Security 17 + frameworks.SystemConfiguration 18 + ]); 19 + 20 + src = fetchFromGitHub { 21 + owner = "danobi"; 22 + repo = pname; 23 + rev = "v${version}"; 24 + hash = lib.fakeHash; 25 + }; 26 + 27 + cargoHash = lib.fakeHash; 28 + 29 + meta = with lib; { 30 + description = "Mailing list style code reviews for GitHub"; 31 + homepage = "https://github.com/danobi/prr"; 32 + license = licenses.gpl2; 33 + maintainers = []; 34 + }; 35 + }
+17
pkgs/ubin-client.nix
··· 1 + {writeShellApplication, curl}: writeShellApplication { 2 + name = "ubin"; 3 + 4 + runtimeInputs = [curl]; 5 + 6 + text = '' 7 + URL="https://bin.hauleth.dev/" 8 + 9 + if [[ $# -eq 1 ]]; then 10 + FILEPATH="$1" 11 + fi 12 + 13 + PASTELINK=$(curl --netrc-optional --data-binary "@''${FILEPATH:-/dev/stdin}" --url "$URL") 14 + 15 + echo "$PASTELINK" 16 + ''; 17 + }
+35
users/hauleth.nix
··· 1 + { 2 + inputs, 3 + ... 4 + }: { 5 + username = "hauleth"; 6 + 7 + home = inputs.home-manager.lib.homeManagerConfiguration { 8 + pkgs = import inputs.nixpkgs { 9 + system = "aarch64-darwin"; 10 + }; 11 + 12 + extraSpecialArgs = { 13 + inherit inputs; 14 + }; 15 + 16 + modules = [ 17 + { 18 + home.username = "hauleth"; 19 + home.homeDirectory = "/Users/hauleth/"; 20 + } 21 + ../modules/fish.nix 22 + ../modules/direnv.nix 23 + ../modules/git.nix 24 + ../modules/plan.nix 25 + ../modules/ctags.nix 26 + ../modules/curl.nix 27 + ../modules/tools.nix 28 + ../modules/nixd.nix 29 + ../modules/swiftbar.nix 30 + ../modules/email.nix 31 + ./modules/dircolors.nix 32 + {home.stateVersion = "23.05";} 33 + ]; 34 + }; 35 + }
+7
users/modules/dircolors.nix
··· 1 + {...}: { 2 + programs.dircolors = { 3 + enable = true; 4 + 5 + extraConfig = builtins.readFile ./dircolors; 6 + }; 7 + }
+3
vim/.config/nvim/after/ftplugin/prr.vim
··· 1 + setlocal foldmethod=syntax 2 + 3 + let b:undo_ftplugin = 'setl fdm&'
+3 -6
vim/.config/nvim/fnl/langclient.fnl
··· 25 25 (on LspAttach "*" 26 26 (let [bufnr args.buf 27 27 client (vim.lsp.get_client_by_id args.data.client_id)] 28 - (cmd.packadd! :fidget.nvim) 29 28 ((. (require :fidget) :setup) {}) 30 29 (logger.inspect client) 31 30 (local capable? ··· 69 68 (setup :rust_analyzer 70 69 {:settings {:rust-analyzer {:files {:excludeDirs [".direnv"]}}}}) 71 70 72 - ; (setup :elixirls 73 - ; {:cmd [:elixir-ls] 74 - ; :settings {:elixirLS {:dialyzerEnabled false}}}) 75 71 (setup :lexical 76 72 {:cmd [:lexical :start]}) 77 73 78 74 (setup :erlangls 79 75 {:cmd [:erlang_ls]}) 80 76 81 - ; (setup :rnix 82 - ; {:autostart true}) 77 + (setup :zls {}) 78 + 79 + (setup :nixd {:autostart true}) 83 80 84 81 (augroup lsp-direnv (on User :DirenvLoaded (cmd.LspStart)))
+1 -2
vim/.config/nvim/fnl/plugins.fnl
··· 46 46 (pkg :nvim-treesitter/playground 47 47 {:cmd [:TSPlaygroundToggle 48 48 :TSHighlightCaputresUnderCursor]}) 49 - (pkg :j-hui/fidget.nvim {:opt true}) 49 + (pkg :j-hui/fidget.nvim {:tag :legacy}) 50 50 51 51 ; Code manipulation 52 52 (pkg :AndrewRadev/splitjoin.vim ··· 77 77 (pkg :hauleth/vim-backscratch {:cmd [:Scratch]}) 78 78 (pkg "https://gitlab.com/hauleth/qfx.vim.git") 79 79 (pkg "https://gitlab.com/hauleth/smart.vim.git") 80 - (pkg :sgur/vim-editorconfig) 81 80 (pkg :mbbill/undotree 82 81 {:cmd [:UndotreeShow :UndotreeToggle]}) 83 82 (pkg :tpope/vim-characterize {:keys [:ga]})
+1
vim/.config/nvim/ftdetect/custom.vim
··· 3 3 au BufRead,BufNewFile *.dhall setf dhall 4 4 au BufRead,BufNewFile PULLREQ_EDITMSG setf gitcommit 5 5 au BufRead,BufNewFile *.livemd setf markdown 6 + au BufRead,BufNewFile *.prr setf prr
+2 -2
vim/.config/nvim/init.fnl
··· 13 13 (set vim.g.loaded_matchit true) 14 14 (set vim.g.matchup_surround_enabled true)) 15 15 16 - (set vim.g.choosewin_label :QWERTYUIOP) 16 + (set vim.g.choosewin_label :QWERTASDF) 17 17 18 18 (do ; Colors 19 19 (cmd.colorscheme :blame) ··· 263 263 (setup :nvim-treesitter.configs 264 264 {:highlight {:enable true 265 265 ; Currently disable as it do not work as expected 266 - :disable [:erlang :make]} 266 + :disable [:erlang :make :diff]} 267 267 :matchup {:enable true} 268 268 :indent {:enable true} 269 269 :incremental_selection {:enable true}})))
+2 -2
vim/.config/nvim/plugin/pastebin.vim
··· 6 6 function s:pastebin(line1, line2) abort 7 7 let l:filename = expand("%:p:t") 8 8 let l:lines = getline(a:line1, a:line2) 9 - let l:url = trim(system("curl --netrc-optional -F 'f:1=@-;filename=\"".l:filename."\"' ix.io", l:lines)) 9 + let l:url = trim(system("ubin", l:lines)) 10 10 11 11 let @+ = l:url 12 12 13 13 echom "URL: ".l:url 14 14 endfunction 15 15 16 - command! -range=% IX call <SID>pastebin(<line1>, <line2>) 16 + command! -range=% Ubin call <SID>pastebin(<line1>, <line2>)
+41
vim/.config/nvim/syntax/prr.vim
··· 1 + " Vim syntax file 2 + " Language: prr 3 + " Maintainer: Daniel Xu <dxu@dxuuu.xyz> 4 + " Last Change: 2022 Mar 25 5 + " Credits: Bram Moolenaar <Bram@vim.org> 6 + " 7 + " This version is copied and edited from diff.vim 8 + 9 + " Check whether an earlier file has defined a syntax already 10 + if exists("b:current_syntax") 11 + finish 12 + endif 13 + 14 + syn region prrFile start=/^> diff/ end=/^> diff/ms=s-1,me=s-1 transparent fold keepend contains=prrHeader,prrIndex,prrChunk 15 + 16 + syn region prrChunk start=/^> @@/ start=/^\n> /rs=e-2 end=/^> @@/ms=s-1,me=s-1 end=/^> diff/ms=s-1,me=s-1 end=/^$/ transparent fold keepend contains=CONTAINED,prrTag 17 + 18 + syn match prrAdded contained "^> +.*" 19 + syn match prrRemoved contained "^> -.*" 20 + 21 + syn match prrHeader contained "^> diff.*" 22 + syn match prrIndex contained "^> index.*" 23 + syn match prrChunkH contained "^> @@.*" 24 + 25 + syn match prrTag "^@.*" contains=prrTagName,prrResult transparent 26 + 27 + syn match prrTagName contained "@prr" nextgroup=prrResult 28 + syn keyword prrResult contained approve reject comment 29 + 30 + " Define the default highlighting. 31 + " Only used when an item doesn't have highlighting yet 32 + hi def link prrAdded Identifier 33 + hi def link prrRemoved Special 34 + 35 + hi def link prrTagName Keyword 36 + hi def link prrResult String 37 + hi def link prrHeader Include 38 + hi def link prrIndex Comment 39 + hi def link prrChunkH Function 40 + 41 + let b:current_syntax = "prr"