Add force desktop window type flag (#4)
* Add force desktop window type flag This flag places xwinwrap behind desktop icons on ubuntu * Update README.md
This commit is contained in:
		@@ -20,11 +20,12 @@ make clean
 | 
				
			|||||||
### Usage
 | 
					### Usage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
Usage: xwinwrap [-g {w}x{h}+{x}+{y}] [-ni] [-argb] [-fs] [-s] [-st] [-sp] [-a] [-b] [-nf] [-o OPACITY] [-sh SHAPE] [-ov]-- COMMAND ARG1...
 | 
					Usage: xwinwrap [-g {w}x{h}+{x}+{y}] [-ni] [-argb] [-fdt] [-fs] [-s] [-st] [-sp] [-a] [-d] [-b] [-nf] [-o OPACITY] [-sh SHAPE] [-ov]-- COMMAND ARG1...
 | 
				
			||||||
Options:
 | 
					Options:
 | 
				
			||||||
             -g      - Specify Geometry (w=width, h=height, x=x-coord, y=y-coord. ex: -g 640x480+100+100)
 | 
					             -g      - Specify Geometry (w=width, h=height, x=x-coord, y=y-coord. ex: -g 640x480+100+100)
 | 
				
			||||||
             -ni     - Ignore Input
 | 
					             -ni     - Ignore Input
 | 
				
			||||||
             -argb   - RGB
 | 
					             -argb   - RGB
 | 
				
			||||||
 | 
					             -fdt    - force WID window a desktop type window
 | 
				
			||||||
             -fs     - Full Screen
 | 
					             -fs     - Full Screen
 | 
				
			||||||
             -un     - Undecorated
 | 
					             -un     - Undecorated
 | 
				
			||||||
             -s      - Sticky
 | 
					             -s      - Sticky
 | 
				
			||||||
@@ -36,6 +37,7 @@ Options:
 | 
				
			|||||||
             -o      - Opacity value between 0 to 1 (ex: -o 0.20)
 | 
					             -o      - Opacity value between 0 to 1 (ex: -o 0.20)
 | 
				
			||||||
             -sh     - Shape of window (choose between rectangle, circle or triangle. Default is rectangle)
 | 
					             -sh     - Shape of window (choose between rectangle, circle or triangle. Default is rectangle)
 | 
				
			||||||
             -ov     - Set override_redirect flag (For seamless desktop background integration in non-fullscreenmode)
 | 
					             -ov     - Set override_redirect flag (For seamless desktop background integration in non-fullscreenmode)
 | 
				
			||||||
 | 
					             -d      - Daemonize
 | 
				
			||||||
             -debug  - Enable debug messages
 | 
					             -debug  - Enable debug messages
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
Example
 | 
					Example
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										13
									
								
								xwinwrap.c
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								xwinwrap.c
									
									
									
									
									
								
							@@ -133,12 +133,13 @@ static void sigHandler (int sig)
 | 
				
			|||||||
static void usage (void)
 | 
					static void usage (void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    fprintf(stderr, "%s \n", NAME);
 | 
					    fprintf(stderr, "%s \n", NAME);
 | 
				
			||||||
    fprintf (stderr, "\nUsage: %s [-g {w}x{h}+{x}+{y}] [-ni] [-argb] [-fs] [-s] [-st] [-sp] [-a] "
 | 
					    fprintf (stderr, "\nUsage: %s [-g {w}x{h}+{x}+{y}] [-ni] [-argb] [-fdt] [-fs] [-s] [-st] [-sp] [-a] [-d] "
 | 
				
			||||||
             "[-b] [-nf] [-o OPACITY] [-sh SHAPE] [-ov]-- COMMAND ARG1...\n", NAME);
 | 
					             "[-b] [-nf] [-o OPACITY] [-sh SHAPE] [-ov]-- COMMAND ARG1...\n", NAME);
 | 
				
			||||||
    fprintf (stderr, "Options:\n \
 | 
					    fprintf (stderr, "Options:\n \
 | 
				
			||||||
            -g      - Specify Geometry (w=width, h=height, x=x-coord, y=y-coord. ex: -g 640x480+100+100)\n \
 | 
					            -g      - Specify Geometry (w=width, h=height, x=x-coord, y=y-coord. ex: -g 640x480+100+100)\n \
 | 
				
			||||||
            -ni     - Ignore Input\n \
 | 
					            -ni     - Ignore Input\n \
 | 
				
			||||||
            -argb   - RGB\n \
 | 
					            -argb   - RGB\n \
 | 
				
			||||||
 | 
					            -fdt    - force WID window a desktop type window\n \
 | 
				
			||||||
            -fs     - Full Screen\n \
 | 
					            -fs     - Full Screen\n \
 | 
				
			||||||
            -un     - Undecorated\n \
 | 
					            -un     - Undecorated\n \
 | 
				
			||||||
            -s      - Sticky\n \
 | 
					            -s      - Sticky\n \
 | 
				
			||||||
@@ -275,6 +276,7 @@ int main(int argc, char **argv)
 | 
				
			|||||||
    bool have_argb_visual = false;
 | 
					    bool have_argb_visual = false;
 | 
				
			||||||
    bool noInput = false;
 | 
					    bool noInput = false;
 | 
				
			||||||
    bool argb = false;
 | 
					    bool argb = false;
 | 
				
			||||||
 | 
					    bool set_desktop_type = false;
 | 
				
			||||||
    bool fullscreen = false;
 | 
					    bool fullscreen = false;
 | 
				
			||||||
    bool noFocus = false;
 | 
					    bool noFocus = false;
 | 
				
			||||||
    bool override = false;
 | 
					    bool override = false;
 | 
				
			||||||
@@ -309,6 +311,10 @@ int main(int argc, char **argv)
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
            argb = true;
 | 
					            argb = true;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        else if (strcmp (argv[i], "-fdt") == 0)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            set_desktop_type = true;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        else if (strcmp (argv[i], "-fs") == 0)
 | 
					        else if (strcmp (argv[i], "-fs") == 0)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            fullscreen = 1;
 | 
					            fullscreen = 1;
 | 
				
			||||||
@@ -526,7 +532,12 @@ int main(int argc, char **argv)
 | 
				
			|||||||
        xa = ATOM(_NET_WM_WINDOW_TYPE);
 | 
					        xa = ATOM(_NET_WM_WINDOW_TYPE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Atom prop;
 | 
					        Atom prop;
 | 
				
			||||||
 | 
					        if (set_desktop_type)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            prop = ATOM(_NET_WM_WINDOW_TYPE_DESKTOP);
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
            prop = ATOM(_NET_WM_WINDOW_TYPE_NORMAL);
 | 
					            prop = ATOM(_NET_WM_WINDOW_TYPE_NORMAL);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        XChangeProperty(display, window.window, xa, XA_ATOM, 32,
 | 
					        XChangeProperty(display, window.window, xa, XA_ATOM, 32,
 | 
				
			||||||
                        PropModeReplace, (unsigned char *) &prop, 1);
 | 
					                        PropModeReplace, (unsigned char *) &prop, 1);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user