Initial Commit
This commit is contained in:
		
						commit
						ac09e065e2
					
				
							
								
								
									
										15
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | ||||
| CFLAGS=-g -Wall | ||||
| INCS=-I/usr/X11R6/include | ||||
| LIBS=-L/usr/X11R6/lib -lX11 | ||||
| 
 | ||||
| xpick: | ||||
| 	$(CC) $(CFLAGS) $(INCS) $(LIBS) -o ${@}  xpick.c | ||||
| 
 | ||||
| all: xpick | ||||
| 
 | ||||
| clean: | ||||
| 	rm -f xpick | ||||
| 
 | ||||
| install: xpick | ||||
| 	install -m755 xpick /usr/local/bin/xpick | ||||
| 
 | ||||
							
								
								
									
										19
									
								
								README
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								README
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,19 @@ | ||||
| # xpick | ||||
| 
 | ||||
| pick a color and show it in hex. | ||||
| 
 | ||||
| ## Installation | ||||
| 
 | ||||
|     $ make | ||||
|     $ sudo make install | ||||
| 
 | ||||
| ## Usage | ||||
| 
 | ||||
|     $ xpick (then click somewhere) | ||||
|     #001800 | ||||
| 
 | ||||
| Use xclip to push the value into the clipboard instead of showing it on | ||||
| the terminal | ||||
| 
 | ||||
|     $ xpick | xclip | ||||
| 
 | ||||
							
								
								
									
										35
									
								
								xpick.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								xpick.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,35 @@ | ||||
| #include <X11/Xlib.h>  | ||||
| #include <X11/Xutil.h> | ||||
| #include <X11/cursorfont.h> | ||||
| #include <stdio.h> | ||||
| 
 | ||||
| 
 | ||||
| int main() { | ||||
| 
 | ||||
|     Display *dpy = XOpenDisplay(NULL); | ||||
|     Window root = RootWindow(dpy, DefaultScreen(dpy)); | ||||
| 
 | ||||
|     Cursor cursor = XCreateFontCursor(dpy, XC_tcross); | ||||
|     XColor fgc, bgc; | ||||
|     fgc.red = -1; fgc.green = 0; fgc.blue = 0; | ||||
|     bgc.red = -1; bgc.green = -1; bgc.blue = -1; | ||||
| 
 | ||||
|     XRecolorCursor(dpy, cursor, &fgc, &bgc); | ||||
|     XGrabPointer(dpy, root, 0, ButtonReleaseMask, GrabModeAsync, GrabModeAsync,  | ||||
|             None, cursor, CurrentTime); | ||||
| 
 | ||||
|     XEvent event; | ||||
|     XNextEvent(dpy, &event); | ||||
|     XUngrabPointer(dpy, CurrentTime); | ||||
|     XImage *ximage = XGetImage(dpy, root, event.xbutton.x_root,  | ||||
|             event.xbutton.y_root, 1, 1, -1, ZPixmap); | ||||
| 
 | ||||
|     unsigned long p = XGetPixel(ximage, 0, 0); | ||||
|     XDestroyImage(ximage); | ||||
| 
 | ||||
|     XColor result; result.pixel = p; | ||||
|     XQueryColor(dpy, DefaultColormap(dpy, DefaultScreen(dpy)), &result); | ||||
|     printf("#%02.2x%02.2x%02.2x\n", | ||||
|             result.red/256, result.green/256, result.blue/256); | ||||
|     return 0; | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 sh+github@codevoid.de
						sh+github@codevoid.de