diff options
| author | uint <72694427+uint23@users.noreply.github.com> | 2025-12-15 18:09:44 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-15 18:09:44 +0000 |
| commit | 7797bd2983f9eabe4c76752509fd058ed5853344 (patch) | |
| tree | 81478d4bfc9b152b4c259de85a6cb7eb8d83c38e | |
| parent | 3f455db8ad07ca1cba56ad02ebb5f17368d346cc (diff) | |
| parent | 9d5460c1c69ffd14350a1016d98a0b1c20e1dd7d (diff) | |
Merge pull request #2 from r1w1s1/fix-build-and-docs
Fix build flags handling and clarify documentation
| -rw-r--r-- | Makefile | 12 | ||||
| -rw-r--r-- | README.md | 55 | ||||
| -rw-r--r-- | xnap.1 | 12 |
3 files changed, 59 insertions, 20 deletions
@@ -8,12 +8,12 @@ MANPREFIX = ${PREFIX}/share/man # libs # remove the Xinerama parts if you don't want Xinerama support LIBS = -lX11 -lXinerama -CPPFLAGS = -DXINERAMA # flags -# CFLAGS = -std=c99 -Wall -Wextra -O0 -g ${CPPFLAGS} -fdiagnostics-color=always # debug -CFLAGS = -std=c99 -Wall -Wextra -Os ${CPPFLAGS} -fdiagnostics-color=always -I/usr/X11R6/include -LDFLAGS = ${LIBS} -L/usr/X11R6/lib +CPPFLAGS = -DXINERAMA +# CFLAGS = -std=c99 -Wall -Wextra -O0 -g -fdiagnostics-color=always # debug +CFLAGS = -std=c99 -Wall -Wextra -Os -fdiagnostics-color=always +LDFLAGS = ${LIBS} # files SRC = xnap.c @@ -22,7 +22,7 @@ all: xnap # rules xnap: - ${CC} ${SRC} -o xnap ${LDFLAGS} + ${CC} ${CPPFLAGS} ${CFLAGS} ${SRC} -o xnap ${LDFLAGS} clean: rm -rf xnap @@ -41,6 +41,6 @@ uninstall: clangd: rm -f compile_flags.txt - for f in ${CFLAGS}; do echo $$f >> compile_flags.txt; done + for f in ${CPPFLAGS} ${CFLAGS}; do echo $$f >> compile_flags.txt; done .PHONY: all clean install uninstall clangd @@ -1,13 +1,52 @@ # xnap -xnap is a minimalistic screenshot utility for X. -just `make install` +xnap is a minimal screenshot utility for X11. -you **need** `Xlib` and can use `Xinerama` optionally. -xnap is minimal and just outputs the image contents (PPM format) to the stdout. -please use a tool to collect that info and store / convert it to whatever you like. +It captures screen contents and writes a raw PPM (P6) image to standard +output. xnap does not save files by itself and does not perform image +conversion. -enjoy! +## Building and installing + +make +sudo make install + +## Dependencies + +- Xlib (required) +- Xinerama (optional, for multi-monitor support) + +## Usage + +xnap always writes image data to stdout. Redirect the output to a file or +pipe it to another program for conversion or storage. + +Examples: + +# Select a region and save as PPM +xnap > image.ppm + +# Capture the full screen +xnap -f > fullscreen.ppm + +# Capture screen 0 (Xinerama) +xnap -s 0 > screen0.ppm + +# Convert to PNG using ImageMagick +xnap | convert ppm:- image.png + +## Example key binding + +Using sxwm: + +bind : mod + shift + s : "bash -c 'xnap | pnmtopng | tee ~/Pictures/screenshots/$(date +%Y-%m-%d_%H-%M).png | xclip -selection clipboard -t image/png'" + +## Philosophy + +xnap follows the Unix philosophy: +- do one thing +- do it simply +- leave storage and conversion to other tools + +Enjoy! -> example usage -> sxwm: `bind : mod + shift + s : "bash -c 'xnap | pnmtopng | tee ~/Pictures/screenshots/$(date +%Y-%m-%d_%H-%M).png | xclip -selection clipboard -t image/png'"` @@ -9,7 +9,7 @@ xnap \- minimal X11 screenshot utility .IR n ] .SH DESCRIPTION .B xnap -captures screen contents from an X11 display and writes to a PPM6 image +captures screen contents from an X11 display and writes a PPM6 image to standard output. .PP By default, @@ -26,18 +26,18 @@ Capture the full root window; the whole screen. Capture the window currently under the pointer. .TP .BI \-s " N" -Capture screen N -.I n -as reported by the Xinerama extension. +Capture screen N as reported by the Xinerama extension. .SH OUTPUT .B xnap -writes a PPM (P6) image to stdout. +writes a binary PPM (P6) image to standard output (stdout). .SH USAGE Redirect output to a file or pipe it to another program: .PP .nf xnap > image.ppm -xnap \-f | converto... whatever.png +xnap -f > fullscreen.ppm +xnap -s 0 > screen0.ppm +xnap | convert ppm:- image.png .fi .SH ENVIRONMENT .TP |
