FB-BW(1)
π FB-BW(1) β the BRL-CAD one, bestie
okay so picture this: you've got a framebuffer fulla pretty pixels and you want a black-and-white bw file out of it. that's literally it. that's the whole vibe. welcome to fb-bw, my beloved π
β¨ NAME β¨
fb-bw β save a framebuffer image into a black and white bw file. no cap, that's the job π€π€
πΈ SYNOPSIS πΈ
fb-bw [-h] [-i] [-F framebuffer] [-X scr_xoff] [-Y scr_yoff] [-s squaresize] [-w width] [-n height] [file.bw]
like, copy that, paste that, go off bestie π«
π¦ DESCRIPTION π¦
fb-bw grabs a region of a framebuffer display and saves it as a black and white bw(5) format file. that's the whole arc. main character behaviour tbh π
so how does it turn colour into bw? it computes an equal blending of the red, green, and blue channels β three channels walk into a bar and split everything evenly, iconic. and if you need something fancier than that? the manpage itself says use fb-pix(1) and pix-bw(1) for more complex conversions. iykyk π₯
by default it's a first quadrant coordinate system (origin down in the lower left of the screen, cute little corner gremlin that it is), and the saved area starts from that origin. periodt. π
π OPTIONS π
-Fframebuffer β explicitly name the framebuffer device. if you don't set it, the environment variableFB_FILEpicks the display device instead (peepbrlcad(1)for the lore). and ifFB_FILEis also not set? you get the default device for the system. it's giving "we'll figure it out" π-ssquaresize β sets both the output file width and height to squaresize. square. symmetrical. balanced. we love a consistent queen β¨ the default size is512x512pixels.-wwidth β sets just the output file width. width only, no notes π-nheight β sets just the output file height. yes it's-n, not-h, don't @ me,-his busy π«Ά-Xscr_xoff β sets the starting X coordinate (offset) on the screen. where the grab begins, horizontally.-Yscr_yoff β sets the starting Y coordinate (offset) on the screen. same energy, vertical axis π¦-iβ switches to a fourth quadrant coordinate system (origin up at the upper left corner of the screen) instead of the default first quadrant (origin at the lower left). this changes both the origin offset coordinates and the storage order. it's a whole different origin story, lowkey π-h/-?β prints a help message and exits. the "help me help you" option π
π EXAMPLES π
Example 1. Grab the current framebuffer and threshold it into a silhouette
fb-bw -F /dev/X -s 1024 | bwmod -m 4 -c | bw-fb -s 1024
what's happening here: it reads the entire 1024x1024 framebuffer, converts it to a single grayscale channel, then bwmod(1) brightens and clamps it to produce a high-contrast silhouette, and finally it displays the result right back on the framebuffer with bw-fb(1). a full round trip. a glow-up. we love a pipeline that eats π₯
Example 2. Save a specific region of the framebuffer to a file
fb-bw -X 256 -Y 256 -w 512 -n 512 region.bw
this bad boy captures a 512x512 region starting at screen offset (256, 256) from the default framebuffer and writes the grayscale result to region.bw. cropping but make it fashion βοΈπ
β SEE ALSO β
brlcad(1), bw-fb(1), fb-pix(1), pix-bw(1), bw(5)
go read them. they're the supporting cast and honestly they ate π
π§ AUTHOR π§
BRL-CAD Team β legends, honestly π«Ά
π· COPYRIGHT π·
This software is Copyright (c) 1989-2026 by the United States Government as represented by U.S. Army Research Laboratory. yes that's a real range, bestie, 1989 all the way to 2026 ππ
π₯ BUG REPORTS π₯
Reports of bugs or problems should be submitted via electronic mail to devs@brlcad.org. found a gremlin? snitch. politely. via email π§π
ngl if something's weird, it's a bug not a feature β say it with your chest to devs@brlcad.org π
that's the whole page bestie!! this lovely lil thing comes to you from the BRL-CAD crew, FB-BW(1) and friends ππ
sending you off with a kiss and a 512x512 default β mwah π
π¦ where this page comes from
- nixpkgs unstable: brlcad 7.44.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms