windows-troll 0.1.0

Modular Windows prank library
docs.rs failed to build windows-troll-0.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

windows-troll

A modular Rust library (and CLI) of harmless Windows "troll" pranks. Each prank is a self-contained module behind its own Cargo feature flag, so you can build exactly the ones you want.

Windows only.

Modules

Feature Module What it does
window-hider modules::window_hider Minimize (hide) and restore windows
mouse-teleporter modules::mouse_teleporter Move the mouse to chosen or random positions
window-wobbler modules::window_wobbler Smoothly sway a window in place (direction + amplitude)
window-party modules::window_party Scramble your screen into an animated grid party

Building

# everything (all default features)
cargo build --release

# just one module
cargo build --no-default-features --features window-hider

CLI usage

# Root help
cargo run -- --help

# Window hider
cargo run -- window-hider list
cargo run -- window-hider hide                     # minimize a random window
cargo run -- window-hider hide --title "Untitled"
cargo run -- window-hider restore <HWND>
cargo run -- window-hider loop --min 10 --max 60   # daemon

# Mouse teleporter
cargo run -- mouse-teleporter resolution
cargo run -- mouse-teleporter teleport <X> <Y>
cargo run -- mouse-teleporter random
cargo run -- mouse-teleporter loop

# Window wobbler
cargo run -- window-wobbler foreground --direction both --min 2 --max 10
cargo run -- window-wobbler random --duration 3 --min 4 --max 12
cargo run -- window-wobbler title "Notepad"

# Window party (screen scramble)
cargo run -- window-party --grid 20 --duration 120
cargo run -- window-party --animation galaxy --cycle 15 --seed 42

Run any subcommand with --help for its full options. window-party supports LEFT/RIGHT to switch animations, Space to pause, and Esc to end early (disable with --no-interactive).

Using as a library

use windows_troll::modules::window_wobbler::{wobble_foreground_window, WobbleSettings};

wobble_foreground_window(WobbleSettings::default());

Architecture

src/
├── lib.rs            # crate root; exports `desktop` and `modules`
├── desktop.rs        # shared window enumeration (WindowInfo, list_windows)
├── main.rs           # CLI entry: builds the root Command from the registry
├── cli/
│   ├── mod.rs        # CliModule trait + all() registry
│   └── modules/      # per-module CLI implementations (one per module)
└── modules/          # the library modules themselves (clap-free)
    └── window_hider/
        ├── mod.rs
        ├── mouse_teleporter/...
        ├── window_wobbler/...
        └── window_party/
            ├── mod.rs
            ├── capture.rs     # screen capture (BitBlt)
            ├── grid.rs        # grid tile easing
            └── animations.rs  # 18 animation styles