about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAaahh Ahh <woohoomoo2u@gmail.com>2017-11-28 11:45:01 -0500
committerUjjwal Verma <ujjwalverma1111@gmail.com>2017-11-28 22:15:01 +0530
commitec32e9b72539de7e1553a4f70345166107b431f7 (patch)
tree1db47c1bb09c70854fb094bb40d45e21c38da8ae
parentFixes #1 (diff)
downloadxwinwrap-ec32e9b72539de7e1553a4f70345166107b431f7.tar.gz
xwinwrap-ec32e9b72539de7e1553a4f70345166107b431f7.tar.bz2
xwinwrap-ec32e9b72539de7e1553a4f70345166107b431f7.zip
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
-rw-r--r--README.md4
-rw-r--r--xwinwrap.c15
2 files changed, 16 insertions, 3 deletions
diff --git a/README.md b/README.md
index f120a12..33eba7c 100644
--- a/README.md
+++ b/README.md
@@ -20,11 +20,12 @@ make clean
 ### 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:
              -g      - Specify Geometry (w=width, h=height, x=x-coord, y=y-coord. ex: -g 640x480+100+100)
              -ni     - Ignore Input
              -argb   - RGB
+             -fdt    - force WID window a desktop type window
              -fs     - Full Screen
              -un     - Undecorated
              -s      - Sticky
@@ -36,6 +37,7 @@ Options:
              -o      - Opacity value between 0 to 1 (ex: -o 0.20)
              -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)
+             -d      - Daemonize
              -debug  - Enable debug messages
 ```
 Example
diff --git a/xwinwrap.c b/xwinwrap.c
index 3a44c5e..2cfb8aa 100644
--- a/xwinwrap.c
+++ b/xwinwrap.c
@@ -133,12 +133,13 @@ static void sigHandler (int sig)
 static void usage (void)
 {
     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);
     fprintf (stderr, "Options:\n \
             -g      - Specify Geometry (w=width, h=height, x=x-coord, y=y-coord. ex: -g 640x480+100+100)\n \
             -ni     - Ignore Input\n \
             -argb   - RGB\n \
+            -fdt    - force WID window a desktop type window\n \
             -fs     - Full Screen\n \
             -un     - Undecorated\n \
             -s      - Sticky\n \
@@ -275,6 +276,7 @@ int main(int argc, char **argv)
     bool have_argb_visual = false;
     bool noInput = false;
     bool argb = false;
+    bool set_desktop_type = false;
     bool fullscreen = false;
     bool noFocus = false;
     bool override = false;
@@ -309,6 +311,10 @@ int main(int argc, char **argv)
         {
             argb = true;
         }
+        else if (strcmp (argv[i], "-fdt") == 0)
+        {
+            set_desktop_type = true;
+        }
         else if (strcmp (argv[i], "-fs") == 0)
         {
             fullscreen = 1;
@@ -526,7 +532,12 @@ int main(int argc, char **argv)
         xa = ATOM(_NET_WM_WINDOW_TYPE);
 
         Atom prop;
-        prop = ATOM(_NET_WM_WINDOW_TYPE_NORMAL);
+        if (set_desktop_type)
+        {
+            prop = ATOM(_NET_WM_WINDOW_TYPE_DESKTOP);
+        } else {
+            prop = ATOM(_NET_WM_WINDOW_TYPE_NORMAL);
+        }
 
         XChangeProperty(display, window.window, xa, XA_ATOM, 32,
                         PropModeReplace, (unsigned char *) &prop, 1);