Initial commit: two-pane text redaction GUI

Rust/egui app with Nord theme and embedded Brass Mono font.
Left pane for editable source text, right pane shows redacted preview.
Select text and Ctrl+R to toggle redaction (whitespace preserved).
Ctrl+Q to quit, copy-redacted button for clipboard export.
Includes Nix flake devshell and direnv integration.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-31 14:20:11 -07:00
commit 1ad67aea20
8 changed files with 4953 additions and 0 deletions

57
flake.nix Normal file
View File

@@ -0,0 +1,57 @@
{
description = "A simple text redaction GUI tool";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, flake-utils, rust-overlay }:
flake-utils.lib.eachDefaultSystem (system:
let
overlays = [ (import rust-overlay) ];
pkgs = import nixpkgs { inherit system overlays; };
rust = pkgs.rust-bin.stable.latest.default;
nativeBuildInputs = with pkgs; [
rust
pkg-config
];
buildInputs = with pkgs; [
# egui/eframe dependencies
libxkbcommon
libGL
wayland
libx11
libxcursor
libxrandr
libxi
vulkan-loader
];
in
{
devShells.default = pkgs.mkShell {
inherit nativeBuildInputs buildInputs;
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath buildInputs;
};
packages.default = pkgs.rustPlatform.buildRustPackage {
pname = "redactor";
version = "0.1.0";
src = ./.;
cargoLock.lockFile = ./Cargo.lock;
inherit nativeBuildInputs buildInputs;
postFixup = ''
patchelf --set-rpath "${pkgs.lib.makeLibraryPath buildInputs}" $out/bin/redactor
'';
};
}
);
}