dev things
Authored by
mfwolffe <wolffemf@dukes.jmu.edu>
- SHA
6cf0f1ea27f579602e889f135aa1d56c1e58f24a- Parents
-
a024670 - Tree
2aaf5e6
6cf0f1e
6cf0f1ea27f579602e889f135aa1d56c1e58f24aa024670
2aaf5e6| Status | File | + | - |
|---|---|---|---|
| A |
flake.nix
|
65 | 0 |
| A |
shell.nix
|
28 | 0 |
flake.nixadded@@ -0,0 +1,65 @@ | ||
| 1 | +{ | |
| 2 | + description = "gar - Tiling window manager with smart splits"; | |
| 3 | + | |
| 4 | + inputs = { | |
| 5 | + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; | |
| 6 | + flake-utils.url = "github:numtide/flake-utils"; | |
| 7 | + rust-overlay = { | |
| 8 | + url = "github:oxalica/rust-overlay"; | |
| 9 | + inputs.nixpkgs.follows = "nixpkgs"; | |
| 10 | + }; | |
| 11 | + }; | |
| 12 | + | |
| 13 | + outputs = { self, nixpkgs, flake-utils, rust-overlay }: | |
| 14 | + flake-utils.lib.eachDefaultSystem (system: | |
| 15 | + let | |
| 16 | + overlays = [ (import rust-overlay) ]; | |
| 17 | + pkgs = import nixpkgs { | |
| 18 | + inherit system overlays; | |
| 19 | + }; | |
| 20 | + | |
| 21 | + rustToolchain = pkgs.rust-bin.stable.latest.default.override { | |
| 22 | + extensions = [ "rust-src" "rust-analyzer" ]; | |
| 23 | + }; | |
| 24 | + in | |
| 25 | + { | |
| 26 | + devShells.default = pkgs.mkShell { | |
| 27 | + buildInputs = with pkgs; [ | |
| 28 | + rustToolchain | |
| 29 | + pkg-config | |
| 30 | + | |
| 31 | + # X11 dependencies | |
| 32 | + xorg.libX11 | |
| 33 | + xorg.libXcursor | |
| 34 | + xorg.libXrandr | |
| 35 | + xorg.libXi | |
| 36 | + xorg.libxcb | |
| 37 | + | |
| 38 | + # For testing | |
| 39 | + xorg.xorgserver # Xephyr | |
| 40 | + ]; | |
| 41 | + | |
| 42 | + shellHook = '' | |
| 43 | + echo "gar development shell" | |
| 44 | + echo "Run 'cargo build' to build" | |
| 45 | + echo "Run 'cargo run' to start (requires X server)" | |
| 46 | + ''; | |
| 47 | + | |
| 48 | + RUST_BACKTRACE = 1; | |
| 49 | + }; | |
| 50 | + | |
| 51 | + packages.default = pkgs.rustPlatform.buildRustPackage { | |
| 52 | + pname = "gar"; | |
| 53 | + version = "0.1.0"; | |
| 54 | + src = ./.; | |
| 55 | + cargoLock.lockFile = ./Cargo.lock; | |
| 56 | + | |
| 57 | + nativeBuildInputs = with pkgs; [ pkg-config ]; | |
| 58 | + buildInputs = with pkgs; [ | |
| 59 | + xorg.libX11 | |
| 60 | + xorg.libxcb | |
| 61 | + ]; | |
| 62 | + }; | |
| 63 | + } | |
| 64 | + ); | |
| 65 | +} | |
shell.nixadded@@ -0,0 +1,28 @@ | ||
| 1 | +{ pkgs ? import <nixpkgs> {} }: | |
| 2 | + | |
| 3 | +pkgs.mkShell { | |
| 4 | + buildInputs = with pkgs; [ | |
| 5 | + rustc | |
| 6 | + cargo | |
| 7 | + pkg-config | |
| 8 | + | |
| 9 | + # X11 dependencies | |
| 10 | + xorg.libX11 | |
| 11 | + xorg.libXcursor | |
| 12 | + xorg.libXrandr | |
| 13 | + xorg.libXi | |
| 14 | + xorg.libxcb | |
| 15 | + | |
| 16 | + # For testing in nested X | |
| 17 | + xorg.xorgserver | |
| 18 | + ]; | |
| 19 | + | |
| 20 | + shellHook = '' | |
| 21 | + echo "gar development shell" | |
| 22 | + echo "Run 'cargo build' to build" | |
| 23 | + echo "Test with: Xephyr -br -ac -noreset -screen 1280x720 :1 &" | |
| 24 | + echo "Then: DISPLAY=:1 cargo run" | |
| 25 | + ''; | |
| 26 | + | |
| 27 | + RUST_BACKTRACE = "1"; | |
| 28 | +} | |