BT  ·  2026-08-11

devenv.nix

  1{ pkgs, lib, config, inputs, ... }:
  2
  3{
  4  # https://devenv.sh/basics/
  5  env.ENV = "development";
  6
  7  # https://devenv.sh/packages/
  8  packages = [
  9    pkgs.jujutsu
 10    pkgs.yarn
 11    pkgs.templ
 12    pkgs.entr
 13    pkgs.gnumake
 14    pkgs.bash
 15    pkgs.fish
 16    pkgs.bash-completion
 17    pkgs.bashInteractive
 18    pkgs.brotli
 19    pkgs.golangci-lint
 20    pkgs.tailwindcss_4
 21    pkgs.literate
 22    pkgs.esbuild
 23    pkgs.imagemagick
 24
 25    # graphhopper
 26    pkgs.jdk21_headless
 27    pkgs.graphhopper
 28    pkgs.osmium-tool
 29
 30    # geocoder
 31    pkgs.duckdb
 32
 33    # tiles
 34    pkgs.pmtiles
 35
 36    # custom tools
 37    inputs.concurrently.packages.${pkgs.system}.default
 38    inputs.bug.packages.${pkgs.system}.bug
 39    inputs.vibe.packages.${pkgs.system}.jail
 40    inputs.vibe.packages.${pkgs.system}.vibe
 41    inputs.selfci.packages.${pkgs.system}.selfci
 42    inputs.herdr.packages.${pkgs.system}.default
 43
 44    #atproto
 45    pkgs.atproto-goat
 46  ];
 47
 48  # https://devenv.sh/languages/
 49  languages.go.enable = true;
 50  languages.javascript = {
 51     enable = true;
 52     pnpm.enable = true;
 53     corepack.enable = true;
 54     directory = "./client";
 55  };
 56
 57  # https://devenv.sh/processes/
 58  # processes.dev.exec = "${lib.getExe pkgs.gnumake} dev";
 59
 60  # https://devenv.sh/services/
 61  # services.postgres.enable = true;
 62
 63  # https://devenv.sh/scripts/
 64
 65  # https://devenv.sh/basics/
 66  enterShell = ''
 67    # Configure bash with fish-like features
 68    bind 'set completion-ignore-case on'  # Case-insensitive completion
 69    bind 'set show-all-if-ambiguous on'   # Show all completions on first tab
 70    bind 'set menu-complete-display-prefix on'
 71    bind 'TAB:menu-complete'              # Tab cycles through completions like fish
 72    bind '\e[A:history-search-backward'   # Up arrow searches history
 73    bind '\e[B:history-search-forward'    # Down arrow searches history
 74    bind 'set colored-completion-prefix on'  # Color the completion prefix
 75    bind 'set colored-stats on'           # Color file types in completions
 76
 77    # Enable bash-completion if available
 78    if [ -f ${pkgs.bash-completion}/etc/profile.d/bash_completion.sh ]; then
 79      source ${pkgs.bash-completion}/etc/profile.d/bash_completion.sh
 80    fi
 81
 82    # Better directory navigation
 83    shopt -s autocd 2>/dev/null          # Type directory name to cd
 84    shopt -s dirspell 2>/dev/null        # Correct spelling in cd
 85    shopt -s cdspell 2>/dev/null         # Correct spelling in cd arguments
 86
 87    # Enable ** globbing for recursive directory matching
 88    shopt -s globstar 2>/dev/null
 89  '';
 90
 91  # https://devenv.sh/tasks/
 92  tasks = {};
 93
 94  # https://devenv.sh/tests/
 95  enterTest = ''
 96  '';
 97
 98  # https://devenv.sh/git-hooks/
 99  # git-hooks.hooks.shellcheck.enable = true;
100
101  # See full reference at https://devenv.sh/reference/options/
102}