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}