-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathshell.nix
More file actions
75 lines (65 loc) · 2.05 KB
/
shell.nix
File metadata and controls
75 lines (65 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
let pkgs = import <nixpkgs> { };
in pkgs.mkShell {
nativeBuildInputs = with pkgs; [
pkg-config
gobject-introspection
cargo
cargo-tauri # Optional, Only needed if Tauri doesn't work through the traditional way.
# nodejs # Optional, this is for if you have a js frontend
bun
rustc
# Required for whisper-rs bindgen
clang
llvmPackages.libclang
cmake
# For typing text (Wayland/X11)
wtype # Wayland (requires compositor support)
ydotool # Works on both via uinput
nodejs-slim
];
buildInputs = with pkgs; [
at-spi2-atk
atkmm
cairo
gdk-pixbuf
glib
gtk3
harfbuzz
librsvg
libsoup_3
pango
webkitgtk_4_1
openssl
# Audio libraries for cpal (works with PipeWire via ALSA emulation)
alsa-lib
pipewire
libxkbcommon
# Vulkan SDK for whisper.cpp/ggml (optional GPU acceleration)
vulkan-headers
vulkan-loader
vulkan-tools
vulkan-validation-layers
shaderc # provides glslc for shader compilation
# Video/Audio data composition framework tools like "gst-inspect", "gst-launch" ...
gst_all_1.gstreamer
# Common plugins like "filesrc" to combine within e.g. gst-launch
gst_all_1.gst-plugins-base
# Specialized plugins separated by quality
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-ugly
# Plugins to reuse ffmpeg to play almost every video format
gst_all_1.gst-libav
# Support the Video Audio (Hardware) Acceleration API
gst_all_1.gst-vaapi
];
# Set ALSA library path for cpal
LD_LIBRARY_PATH = "${pkgs.lib.makeLibraryPath [pkgs.alsa-lib pkgs.pipewire]}";
# Point ALSA to PipeWire's PCM plugin so audio works on PipeWire systems
ALSA_PLUGIN_DIR = "${pkgs.pipewire}/lib/alsa-lib";
# Set LIBCLANG_PATH for whisper-rs bindgen
LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib";
# Set Vulkan SDK path for whisper.cpp/ggml build
VULKAN_SDK = "${pkgs.vulkan-headers}";
VK_LAYER_PATH = "${pkgs.vulkan-validation-layers}/share/vulkan/explicit_layer.d";
}