[SOLVED]penbox Virtual Desktop Switch - Horiz Vert

How can I change the pop up that comes up when you switch virtual desktops in openbox to a vertical orientation instead of the default horizontal one?
Last edited by johan1391 (2011-07-24 23:39:38)

Have a look at obsetlayout.
http://aur.archlinux.org/packages.php?ID=34376
After you install the program just run obsetlayout it pretty self explanatory.

Similar Messages

  • [SOLVED] OpenBox - Transparency and Virtual Desktop Switcher

    Hi All
    I've just recently, in the last 2 days, switched from Gnome 3.2 to Openbox. I've never really used it before except for a short period on #! as I recall. I've a couple of problems I don't seem to be able to find any answers to and hopefully someone on here already knows how:
    1) I'm using Guake dropdown terminal - I don't mind switching to any other terminal if necessary. I can't get transparency to work correctly with it though. I've installed the following to try to resolve the issue:
    Cairo Composite Manager
    transset-df
    If I issue the command:
    transset-df -n 'Guake!' &
    the Guake terminal sets to transparent which is great. However, as soon as the window retracts and I call it back again the transparency has switched off.
    2) I've installed tint2 and it's pretty good. Problem is I can't find a way to get a virtual desktop switcher. Again, this choice isn't cast in stone, I'm quite happy to change to any other application, or set of applications, to achieve the following:
    Virtual Desktop Switcher - i like the way pypanel does this actually. I'm happy enough with the mouse wheel switching desktops but I'd like some indication of which desktop I'm on.
    Date and Time with a calendar - I've got Orca working quite well on a click on the clock for the calendar.
    I would have thought this was pretty simple to resolve really, it's just that i don't know Openbox that well yet and I could use some advice on the best way to resolve the issues.
    Thanks in advance
    Rich
    Last edited by RichAustin (2011-10-23 09:20:13)

    I've actually managed to resolve the transparency issue as well.
    sudo pacman -S devilspie xcompmgr transset-df
    Then in .config/openbox/autostart:
    # Start Composite Manager
    xcompmgr &
    # Start Devilspie to alter windows
    devilspie -a &
    # Start Main Panel
    tint2 &
    Finally, create a file in .devilspie called guake.ds with the following content:
    (if
    (is (window_name) "guake.py" )
    (begin
    (spawn_sync (str "transset-df -i " (window_xid) " 0.5") )

  • Virtual Desktop switching in Mavericks

    With Mavericks, each display has its own set of virtual desktops whereas before, a virtual desktop "spanned" displays.
    I used to have 4 virtual desktops.  After the upgrade, these virtual desktops were mapped to my primary monitor, and the secondary had one virtual desktop.  That part was ok as I use the secondary monitor only to run a Terminal that I would use across all my virtual desktops.  But the inconvenience now is switching virtual desktops!  If I'm typing something in the terminal on the secondary monitor and want to quickly go to another virtual desktop, I now first have to bring the mouse over to the primary monitor and THEN switch desktops.  Very annoying.
    Does someone know of a setting or utility that can map the "virtual desktop switching" keyboard combination to a fixed display?
    Apple, are you listening?  Why is Mavericks not smart enough to realize that when a user hits the keyboard combination for switching virtual desktops on a display with only ONE virtual desktop that this probably means they meant to switch virtual desktops on the other display (especially when there's only one display with multiple virtual desktops!)?

    tjwolf wrote:
    Apple, are you listening?
    It is highly unlikely anybody working for Apple who can do anything about this is reading these forums. You might want to consider submitting the form at http://www.apple.com/feedback/macosx.html for things like this.
    Be sure to indicate in the 'feedback type' popup the most appropriate choice for your submission. That is the best way to get it seen by the right people.

  • [Solved] jwm and desktop switching by Ctrl+Alt+N

    How to make jwm to switch desktops by pressing Ctrl+Alt+N where N is desktop number (1,2..6) ?
    Documentation says that should be used "desktop#" : "Key to switch to a specific desktop. To use this, # must be specified in the key section. Then numbers from 1 to the number of desktops configured are substituted for #." but there is no an example of key section with #.
    Can anyone give complete example of using Ctrl+Alt+N ?
    Last edited by warm (2015-03-24 03:27:52)

    nullified wrote:
    I think you would just replace "key" with "#" like so:
    <Key mask="mask" key="#">action</Key>
    Have you tried this?
    Ohh ... thanks :-)
    <Key mask="CA" key="#">desktop#</Key>
    this does exactly what I want.

  • No virtual desktops in Win10 (please fix)?: Dangerous game promoting app switching on different displays as virtual desktops

    Seems virtual desktops are overpromoted - and in fact not about virtual desktops (changing content on the desktops). The socalled virtual desktops are right now
    no more than app switching on different displays.
    Dangerous game again from Microsoft promoting things as something they are not.
    Virtual desktops are already a well-defined concept - and people will expect the desktop to be able to change content (be dynamic) ... the data and launching programs for documents, different backgrounds.
    ... but as others may already have stated in other threads: (Right now) Windows 10 does not contain virtual desktops/displays/screens. Not at all.
    A skeptical hypothesis - hopefully it is not so, and we will be able to work with data in a valuable way. The data is on the desktop anyway today - so why not make it real virtual desktops? I simply do not understand the decision.
    So here comes the skeptical hypothesis - it's not a Steve thing. It's Microsoft still looking for that next revamped business model to finance their future.
    So the freak kind of virtual desktops (virtual desktops in Win10 a lie?) will disappoint - have already begun to do so - and seems Microsoft is just taken up with inserting an additional intermediary step towards relaunching the appstore and hiding
    all the user data in cloud again. Really, hiding the difference between data availability - not making the cloud something MORE but making the local system something LESS. The NEXT BIG thing? So we're going to loose file system, folders and the general ability
    to form concepts of our own - and get a freak system? The NEXT BIG thing - data integration? Because data was hidden away now. Also in local systems. Artificially creating new problems - rather than solving new interesting ones?
    We need to able to pin the data onto the display whether desktop, start screen, what ever. It's also on the feature requests. Desktops/Start Screen/Original displays for workflows/whatever actual starting points on login ... needs to have
    more links than application from appstores and application containers linked to them.
    If any more app (read: not cloud, data) but appstore, appstore, appstore
    application containers hiding the data away comes into the UI I am going with Linux. I am that close ...

    A better name would be Virtual Display Layouts ... Virtual Screens ... Virtual Start Screens (please let us be able to pin files/folders to the Start Screen, a requested voted for feature for Windows 10).
    You see, go back and read the topics for Windows 8 ... you will learn the Start Screen is/was the new desktop - and should have been made virtual.
    So please get your act together and stop confusing everything ... and make on coherent system. Drop the Start Screen - and go with the virtual desktop
    (put the Start Screen technology into the virtual desktop - and let users pin folders and files there as requested ... both local and in the cloud)

  • Mountain Lion bug:  Switching between virtual desktops not possible when using external screen only.

    I think I have found a bug.  I upgraded to Mountain Lion last week, 2 days after ML became available.  My laptop is a Macbook Pro from November 2011.  I ran Lion before and I did an upgrade on my laptop (not reinstall, but upgrade).
    I have an external HP screen (24 inch) connected using DVI (standard connection). I also have an external Apple keyboard (bluetooth) and the external trackpad (bluetooth). I concider myself as a power user with long experience.  I started using multiple desktops in Snow Leopard, and really liked the "4 finger swipe up" that came in Lion.  By swiping 4 fingers up on the trackpad, I can see all "virtual desktops" on the top of the screen and select or more applications to the different screens.
    This function does still work, but when I put the Macbook pro in "clamshell mode" (meaning the lid is locked and I am ONLY using the external screen), then this does not work.  When I do the gesture (4 finger swipe up), the virtual desktops on top of the screen are not shown. 
    But if I open the Mac and then having 2 active screens, both the internal LCD on the Macbook Pro and the external HP screen, it works again.  It does not matter which screen the "Finder many" is active on.
    Picture below show how it is supposed to work.  And it still works if no external screen is connected or if the external screen connected but the lid on the Mac is still open (not clamshell mode).
    This is how it looks on the external screen when I do the "4 finger swipe up" and the Macbook Pro is in clamshell mode (lid down).  Please also note how the background image is not minimized in the same way as before.
    Have any other experienced the same problem ?  Where do I report this to Apple ?  Any e-mail or WEB pages where I can report bugs ?

    As an update, I tried switching the main display to the MBP. Nothing changed.
    However, I changed the rotation to 90 degrees and everything is back to Normal! Aside from the fact that I'm looking a 24" screen in the vertical position.

  • (Solved) Issue with 2012 & 2012 r2...Creating New Virtual Desktop Collections Fails

    Hi all, thought I would share a fix I found out after hours of pulling my hair out.
    If you get the following error when creating a new RD Collect: "The virtual desktop must be in a stopped state: Could not identify the state of the virtual desktop. Ensure that the RD virtualization host server is available on the network and
    the virtual desktop is shut down"
    ENSURE your RD Connection Broker and RD Virtualization Host are both either 2012 or 2012 r2.  I was unable to create new VD Collections until I moved my Connection Broker from a 2012 box, to a 2012 r2 box. (My RD Virt Host is 2012 r2.) Once I did that,
    everything worked fine.

    Hi,
    Thanks for your good sharing.
    I think it will help the people who have the same issue.
    Have a nice day.
    Regards.
    Vivian Wang

  • [solved] SSH X11 forwarding on separate virtual desktop

    I have an HTPC running arch/openbox/xbmc and I've set up SSH tunneling at various times.  What I'd really like to do is be able to forward a single virtual desktop so that someone could be watching a movie on TTY1 for example while I'm forwarding ktorrent on TTY2. 
    Is that a possibility?
    Last edited by ctarwater (2011-05-19 20:35:18)

    https://wiki.archlinux.org/index.php/Tightvnc

  • Hacking conky's own_window_type desktop to run on one virtual desktop

    Since I have no dual screen setup (just a laptop) I'd like to use my virtual desktops to run different conky instances on (almost) every virtual desktop. I tried to accomplish this by using own_window_type normal in conky, and that works - until I call the desktop, then it just minimises like a regular app. That's not what I want.
    People in #conky suggested I use the if_match functionality in conky, so I can keep using the own_window_type desktop setting, but that does not solve my issue since you cannot define different conky window sizes in one configuration file. I checked in with #openbox and they told me essentially Conky should not display on every virtual desktop (and frankly they have a point, since you can tell e.g. Openbox to sticky an app on every virtual desktop). However, one would need to hack the code for that (specifically the stuff that takes care of putting the desktop window type on every virtual desktop). That's where you guys come in, since my C knowledge is close to non-existent .
    I was told to look at x11.c and specifically the init_window() function but I'm at loss where to start...
    /* -*- mode: c; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*-
    * vim: ts=4 sw=4 noet ai cindent syntax=c
    * Conky, a system monitor, based on torsmo
    * Any original torsmo code is licensed under the BSD license
    * All code written since the fork of torsmo is licensed under the GPL
    * Please see COPYING for details
    * Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen
    * Copyright (c) 2005-2010 Brenden Matthews, Philip Kovacs, et. al.
    * (see AUTHORS)
    * All rights reserved.
    * This program is free software: you can redistribute it and/or modify
    * it under the terms of the GNU General Public License as published by
    * the Free Software Foundation, either version 3 of the License, or
    * (at your option) any later version.
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    * GNU General Public License for more details.
    * You should have received a copy of the GNU General Public License
    * along with this program. If not, see <http://www.gnu.org/licenses/>.
    #include "config.h"
    #include "conky.h"
    #include "logging.h"
    #include "common.h"
    #include "x11.h"
    #include <X11/Xlib.h>
    #include <X11/Xatom.h>
    #include <X11/Xmd.h>
    #include <X11/Xutil.h>
    #ifdef IMLIB2
    #include "imlib2.h"
    #endif /* IMLIB2 */
    #ifdef XFT
    #include <X11/Xft/Xft.h>
    int use_xft = 0;
    #endif
    #ifdef HAVE_XDBE
    int use_xdbe;
    #endif
    #ifdef USE_ARGB
    int use_argb_visual;
    int have_argb_visual;
    #endif /* USE_ARGB */
    int own_window_argb_value;
    /* some basic X11 stuff */
    Display *display = NULL;
    int display_width;
    int display_height;
    int screen;
    static int set_transparent;
    static int background_colour;
    /* workarea from _NET_WORKAREA, this is where window / text is aligned */
    int workarea[4];
    /* Window stuff */
    struct conky_window window;
    char window_created = 0;
    /* local prototypes */
    static void update_workarea(void);
    static Window find_desktop_window(Window *p_root, Window *p_desktop);
    static Window find_subwindow(Window win, int w, int h);
    /* X11 initializer */
    void init_X11(const char *disp)
    if (!display) {
    if ((display = XOpenDisplay(disp)) == NULL) {
    CRIT_ERR(NULL, NULL, "can't open display: %s", XDisplayName(disp));
    screen = DefaultScreen(display);
    display_width = DisplayWidth(display, screen);
    display_height = DisplayHeight(display, screen);
    get_x11_desktop_info(display, 0);
    update_workarea();
    static void update_workarea(void)
    /* default work area is display */
    workarea[0] = 0;
    workarea[1] = 0;
    workarea[2] = display_width;
    workarea[3] = display_height;
    /* Find root window and desktop window.
    * Return desktop window on success,
    * and set root and desktop byref return values.
    * Return 0 on failure. */
    static Window find_desktop_window(Window *p_root, Window *p_desktop)
    Atom type;
    int format, i;
    unsigned long nitems, bytes;
    unsigned int n;
    Window root = RootWindow(display, screen);
    Window win = root;
    Window troot, parent, *children;
    unsigned char *buf = NULL;
    if (!p_root || !p_desktop) {
    return 0;
    /* some window managers set __SWM_VROOT to some child of root window */
    XQueryTree(display, root, &troot, &parent, &children, &n);
    for (i = 0; i < (int) n; i++) {
    if (XGetWindowProperty(display, children[i], ATOM(__SWM_VROOT), 0, 1,
    False, XA_WINDOW, &type, &format, &nitems, &bytes, &buf)
    == Success && type == XA_WINDOW) {
    win = *(Window *) buf;
    XFree(buf);
    XFree(children);
    fprintf(stderr,
    PACKAGE_NAME": desktop window (%lx) found from __SWM_VROOT property\n",
    win);
    fflush(stderr);
    *p_root = win;
    *p_desktop = win;
    return win;
    if (buf) {
    XFree(buf);
    buf = 0;
    XFree(children);
    /* get subwindows from root */
    win = find_subwindow(root, -1, -1);
    update_workarea();
    win = find_subwindow(win, workarea[2], workarea[3]);
    if (buf) {
    XFree(buf);
    buf = 0;
    if (win != root) {
    fprintf(stderr,
    PACKAGE_NAME": desktop window (%lx) is subwindow of root window (%lx)\n",
    win, root);
    } else {
    fprintf(stderr, PACKAGE_NAME": desktop window (%lx) is root window\n", win);
    fflush(stderr);
    *p_root = root;
    *p_desktop = win;
    return win;
    static int colour_set = -1;
    /* if no argb visual is configured sets background to ParentRelative for the Window and all parents,
    else real transparency is used */
    void set_transparent_background(Window win, int alpha)
    (void)alpha; /* disable warnings when unused */
    #ifdef USE_ARGB
    if (have_argb_visual) {
    // real transparency
    if (set_transparent) {
    XSetWindowBackground(display, win, 0x00);
    } else if (colour_set != background_colour) {
    XSetWindowBackground(display, win,
    background_colour | (alpha << 24));
    colour_set = background_colour;
    } else {
    #endif /* USE_ARGB */
    // pseudo transparency
    if (set_transparent) {
    Window parent = win;
    unsigned int i;
    for (i = 0; i < 50 && parent != RootWindow(display, screen); i++) {
    Window r, *children;
    unsigned int n;
    XSetWindowBackgroundPixmap(display, parent, ParentRelative);
    XQueryTree(display, parent, &r, &parent, &children, &n);
    XFree(children);
    } else if (colour_set != background_colour) {
    XSetWindowBackground(display, win, background_colour);
    colour_set = background_colour;
    #ifdef USE_ARGB
    #endif /* USE_ARGB */
    #ifdef USE_ARGB
    static int get_argb_visual(Visual** visual, int *depth) {
    /* code from gtk project, gdk_screen_get_rgba_visual */
    XVisualInfo visual_template;
    XVisualInfo *visual_list;
    int nxvisuals = 0, i;
    visual_template.screen = screen;
    visual_list = XGetVisualInfo (display, VisualScreenMask,
    &visual_template, &nxvisuals);
    for (i = 0; i < nxvisuals; i++) {
    if (visual_list[i].depth == 32 &&
    (visual_list[i].red_mask == 0xff0000 &&
    visual_list[i].green_mask == 0x00ff00 &&
    visual_list[i].blue_mask == 0x0000ff)) {
    *visual = visual_list[i].visual;
    *depth = visual_list[i].depth;
    DBGP("Found ARGB Visual");
    XFree(visual_list);
    return 1;
    // no argb visual available
    DBGP("No ARGB Visual found");
    XFree(visual_list);
    return 0;
    #endif /* USE_ARGB */
    void destroy_window(void)
    #ifdef XFT
    if(window.xftdraw) {
    XftDrawDestroy(window.xftdraw);
    #endif
    if(window.gc) {
    XFreeGC(display, window.gc);
    memset(&window, 0, sizeof(struct conky_window));
    colour_set = -1;
    void init_window(int own_window, int w, int h, int set_trans, int back_colour,
    char **argv, int argc)
    /* There seems to be some problems with setting transparent background
    * (on fluxbox this time). It doesn't happen always and I don't know why it
    * happens but I bet the bug is somewhere here. */
    set_transparent = set_trans;
    background_colour = back_colour;
    window_created = 1;
    #ifdef OWN_WINDOW
    if (own_window) {
    int depth = 0, flags;
    Visual *visual = NULL;
    if (!find_desktop_window(&window.root, &window.desktop)) {
    return;
    #ifdef USE_ARGB
    if (use_argb_visual && get_argb_visual(&visual, &depth)) {
    have_argb_visual = 1;
    window.visual = visual;
    window.colourmap = XCreateColormap(display,
    DefaultRootWindow(display), window.visual, AllocNone);
    } else {
    #endif /* USE_ARGB */
    window.visual = DefaultVisual(display, screen);
    window.colourmap = DefaultColormap(display, screen);
    depth = CopyFromParent;
    visual = CopyFromParent;
    #ifdef USE_ARGB
    #endif /* USE_ARGB */
    if (window.type == TYPE_OVERRIDE) {
    /* An override_redirect True window.
    * No WM hints or button processing needed. */
    XSetWindowAttributes attrs = { ParentRelative, 0L, 0, 0L, 0, 0,
    Always, 0L, 0L, False, StructureNotifyMask | ExposureMask, 0L,
    True, 0, 0 };
    #ifdef USE_ARGB
    if (have_argb_visual) {
    attrs.colormap = window.colourmap;
    flags = CWBorderPixel | CWColormap | CWOverrideRedirect;
    } else {
    #endif /* USE_ARGB */
    flags = CWBackPixel | CWOverrideRedirect;
    #ifdef USE_ARGB
    #endif /* USE_ARGB */
    /* Parent is desktop window (which might be a child of root) */
    window.window = XCreateWindow(display, window.desktop, window.x,
    window.y, w, h, 0, depth, InputOutput, visual,
    flags, &attrs);
    XLowerWindow(display, window.window);
    fprintf(stderr, PACKAGE_NAME": window type - override\n");
    fflush(stderr);
    } else { /* window.type != TYPE_OVERRIDE */
    /* A window managed by the window manager.
    * Process hints and buttons. */
    XSetWindowAttributes attrs = { ParentRelative, 0L, 0, 0L, 0, 0,
    Always, 0L, 0L, False, StructureNotifyMask | ExposureMask |
    ButtonPressMask | ButtonReleaseMask, 0L, False, 0, 0 };
    XClassHint classHint;
    XWMHints wmHint;
    Atom xa;
    #ifdef USE_ARGB
    if (have_argb_visual) {
    attrs.colormap = window.colourmap;
    flags = CWBorderPixel | CWColormap | CWOverrideRedirect;
    } else {
    #endif /* USE_ARGB */
    flags = CWBackPixel | CWOverrideRedirect;
    #ifdef USE_ARGB
    #endif /* USE_ARGB */
    if (window.type == TYPE_DOCK) {
    window.x = window.y = 0;
    /* Parent is root window so WM can take control */
    window.window = XCreateWindow(display, window.root, window.x,
    window.y, w, h, 0, depth, InputOutput, visual,
    flags, &attrs);
    classHint.res_name = window.class_name;
    classHint.res_class = classHint.res_name;
    wmHint.flags = InputHint | StateHint;
    /* allow decorated windows to be given input focus by WM */
    wmHint.input =
    TEST_HINT(window.hints, HINT_UNDECORATED) ? False : True;
    if (window.type == TYPE_DOCK || window.type == TYPE_PANEL) {
    wmHint.initial_state = WithdrawnState;
    } else {
    wmHint.initial_state = NormalState;
    XmbSetWMProperties(display, window.window, NULL, NULL, argv,
    argc, NULL, &wmHint, &classHint);
    XStoreName(display, window.window, window.title);
    /* Sets an empty WM_PROTOCOLS property */
    XSetWMProtocols(display, window.window, NULL, 0);
    /* Set window type */
    if ((xa = ATOM(_NET_WM_WINDOW_TYPE)) != None) {
    Atom prop;
    switch (window.type) {
    case TYPE_DESKTOP:
    prop = ATOM(_NET_WM_WINDOW_TYPE_DESKTOP);
    fprintf(stderr, PACKAGE_NAME": window type - desktop\n");
    fflush(stderr);
    break;
    case TYPE_DOCK:
    prop = ATOM(_NET_WM_WINDOW_TYPE_DOCK);
    fprintf(stderr, PACKAGE_NAME": window type - dock\n");
    fflush(stderr);
    break;
    case TYPE_PANEL:
    prop = ATOM(_NET_WM_WINDOW_TYPE_DOCK);
    fprintf(stderr, PACKAGE_NAME": window type - panel\n");
    fflush(stderr);
    break;
    case TYPE_NORMAL:
    default:
    prop = ATOM(_NET_WM_WINDOW_TYPE_NORMAL);
    fprintf(stderr, PACKAGE_NAME": window type - normal\n");
    fflush(stderr);
    break;
    XChangeProperty(display, window.window, xa, XA_ATOM, 32,
    PropModeReplace, (unsigned char *) &prop, 1);
    /* Set desired hints */
    /* Window decorations */
    if (TEST_HINT(window.hints, HINT_UNDECORATED)) {
    /* fprintf(stderr, PACKAGE_NAME": hint - undecorated\n");
    fflush(stderr); */
    xa = ATOM(_MOTIF_WM_HINTS);
    if (xa != None) {
    long prop[5] = { 2, 0, 0, 0, 0 };
    XChangeProperty(display, window.window, xa, xa, 32,
    PropModeReplace, (unsigned char *) prop, 5);
    /* Below other windows */
    if (TEST_HINT(window.hints, HINT_BELOW)) {
    /* fprintf(stderr, PACKAGE_NAME": hint - below\n");
    fflush(stderr); */
    xa = ATOM(_WIN_LAYER);
    if (xa != None) {
    long prop = 0;
    XChangeProperty(display, window.window, xa, XA_CARDINAL, 32,
    PropModeAppend, (unsigned char *) &prop, 1);
    xa = ATOM(_NET_WM_STATE);
    if (xa != None) {
    Atom xa_prop = ATOM(_NET_WM_STATE_BELOW);
    XChangeProperty(display, window.window, xa, XA_ATOM, 32,
    PropModeAppend, (unsigned char *) &xa_prop, 1);
    /* Above other windows */
    if (TEST_HINT(window.hints, HINT_ABOVE)) {
    /* fprintf(stderr, PACKAGE_NAME": hint - above\n");
    fflush(stderr); */
    xa = ATOM(_WIN_LAYER);
    if (xa != None) {
    long prop = 6;
    XChangeProperty(display, window.window, xa, XA_CARDINAL, 32,
    PropModeAppend, (unsigned char *) &prop, 1);
    xa = ATOM(_NET_WM_STATE);
    if (xa != None) {
    Atom xa_prop = ATOM(_NET_WM_STATE_ABOVE);
    XChangeProperty(display, window.window, xa, XA_ATOM, 32,
    PropModeAppend, (unsigned char *) &xa_prop, 1);
    /* Sticky */
    if (TEST_HINT(window.hints, HINT_STICKY)) {
    /* fprintf(stderr, PACKAGE_NAME": hint - sticky\n");
    fflush(stderr); */
    xa = ATOM(_NET_WM_DESKTOP);
    if (xa != None) {
    CARD32 xa_prop = 0xFFFFFFFF;
    XChangeProperty(display, window.window, xa, XA_CARDINAL, 32,
    PropModeAppend, (unsigned char *) &xa_prop, 1);
    xa = ATOM(_NET_WM_STATE);
    if (xa != None) {
    Atom xa_prop = ATOM(_NET_WM_STATE_STICKY);
    XChangeProperty(display, window.window, xa, XA_ATOM, 32,
    PropModeAppend, (unsigned char *) &xa_prop, 1);
    /* Skip taskbar */
    if (TEST_HINT(window.hints, HINT_SKIP_TASKBAR)) {
    /* fprintf(stderr, PACKAGE_NAME": hint - skip_taskbar\n");
    fflush(stderr); */
    xa = ATOM(_NET_WM_STATE);
    if (xa != None) {
    Atom xa_prop = ATOM(_NET_WM_STATE_SKIP_TASKBAR);
    XChangeProperty(display, window.window, xa, XA_ATOM, 32,
    PropModeAppend, (unsigned char *) &xa_prop, 1);
    /* Skip pager */
    if (TEST_HINT(window.hints, HINT_SKIP_PAGER)) {
    /* fprintf(stderr, PACKAGE_NAME": hint - skip_pager\n");
    fflush(stderr); */
    xa = ATOM(_NET_WM_STATE);
    if (xa != None) {
    Atom xa_prop = ATOM(_NET_WM_STATE_SKIP_PAGER);
    XChangeProperty(display, window.window, xa, XA_ATOM, 32,
    PropModeAppend, (unsigned char *) &xa_prop, 1);
    fprintf(stderr, PACKAGE_NAME": drawing to created window (0x%lx)\n",
    window.window);
    fflush(stderr);
    XMapWindow(display, window.window);
    } else
    #endif /* OWN_WINDOW */
    XWindowAttributes attrs;
    if (!window.window) {
    window.window = find_desktop_window(&window.root, &window.desktop);
    window.visual = DefaultVisual(display, screen);
    window.colourmap = DefaultColormap(display, screen);
    if (XGetWindowAttributes(display, window.window, &attrs)) {
    window.width = attrs.width;
    window.height = attrs.height;
    fprintf(stderr, PACKAGE_NAME": drawing to desktop window\n");
    /* Drawable is same as window. This may be changed by double buffering. */
    window.drawable = window.window;
    #ifdef HAVE_XDBE
    if (use_xdbe) {
    int major, minor;
    if (!XdbeQueryExtension(display, &major, &minor)) {
    use_xdbe = 0;
    } else {
    window.back_buffer = XdbeAllocateBackBufferName(display,
    window.window, XdbeBackground);
    if (window.back_buffer != None) {
    window.drawable = window.back_buffer;
    fprintf(stderr, PACKAGE_NAME": drawing to double buffer\n");
    } else {
    use_xdbe = 0;
    if (!use_xdbe) {
    NORM_ERR("failed to set up double buffer");
    if (!use_xdbe) {
    fprintf(stderr, PACKAGE_NAME": drawing to single buffer\n");
    #endif
    #ifdef IMLIB2
    cimlib_init(display, window.drawable, window.visual, window.colourmap);
    #endif /* IMLIB2 */
    XFlush(display);
    XSelectInput(display, window.window, ExposureMask | PropertyChangeMask
    #ifdef OWN_WINDOW
    | (own_window ? (StructureNotifyMask |
    ButtonPressMask | ButtonReleaseMask) : 0)
    #endif
    static Window find_subwindow(Window win, int w, int h)
    unsigned int i, j;
    Window troot, parent, *children;
    unsigned int n;
    /* search subwindows with same size as display or work area */
    for (i = 0; i < 10; i++) {
    XQueryTree(display, win, &troot, &parent, &children, &n);
    for (j = 0; j < n; j++) {
    XWindowAttributes attrs;
    if (XGetWindowAttributes(display, children[j], &attrs)) {
    /* Window must be mapped and same size as display or
    * work space */
    if (attrs.map_state != 0 && ((attrs.width == display_width
    && attrs.height == display_height)
    || (attrs.width == w && attrs.height == h))) {
    win = children[j];
    break;
    XFree(children);
    if (j == n) {
    break;
    return win;
    void create_gc(void)
    XGCValues values;
    values.graphics_exposures = 0;
    values.function = GXcopy;
    window.gc = XCreateGC(display, window.drawable,
    GCFunction | GCGraphicsExposures, &values);
    //Get current desktop number
    static inline void get_x11_desktop_current(Display *current_display, Window root, Atom atom)
    Atom actual_type;
    int actual_format;
    unsigned long nitems;
    unsigned long bytes_after;
    unsigned char *prop = NULL;
    struct information *current_info = &info;
    if (atom == None) return;
    if ( (XGetWindowProperty( current_display, root, atom,
    0, 1L, False, XA_CARDINAL,
    &actual_type, &actual_format, &nitems,
    &bytes_after, &prop ) == Success ) &&
    (actual_type == XA_CARDINAL) &&
    (nitems == 1L) && (actual_format == 32) ) {
    current_info->x11.desktop.current = prop[0]+1;
    if(prop) {
    XFree(prop);
    //Get total number of available desktops
    static inline void get_x11_desktop_number(Display *current_display, Window root, Atom atom)
    Atom actual_type;
    int actual_format;
    unsigned long nitems;
    unsigned long bytes_after;
    unsigned char *prop = NULL;
    struct information *current_info = &info;
    if (atom == None) return;
    if ( (XGetWindowProperty( current_display, root, atom,
    0, 1L, False, XA_CARDINAL,
    &actual_type, &actual_format, &nitems,
    &bytes_after, &prop ) == Success ) &&
    (actual_type == XA_CARDINAL) &&
    (nitems == 1L) && (actual_format == 32) ) {
    current_info->x11.desktop.number = prop[0];
    if(prop) {
    XFree(prop);
    //Get all desktop names
    static inline void get_x11_desktop_names(Display *current_display, Window root, Atom atom)
    Atom actual_type;
    int actual_format;
    unsigned long nitems;
    unsigned long bytes_after;
    unsigned char *prop = NULL;
    struct information *current_info = &info;
    if (atom == None) return;
    if ( (XGetWindowProperty( current_display, root, atom,
    0, (~0L), False, ATOM(UTF8_STRING),
    &actual_type, &actual_format, &nitems,
    &bytes_after, &prop ) == Success ) &&
    (actual_type == ATOM(UTF8_STRING)) &&
    (nitems > 0L) && (actual_format == 8) ) {
    if(current_info->x11.desktop.all_names) {
    free(current_info->x11.desktop.all_names);
    current_info->x11.desktop.all_names = NULL;
    current_info->x11.desktop.all_names = malloc(nitems*sizeof(char));
    memcpy(current_info->x11.desktop.all_names, prop, nitems);
    current_info->x11.desktop.nitems = nitems;
    if(prop) {
    XFree(prop);
    //Get current desktop name
    static inline void get_x11_desktop_current_name(char *names)
    struct information *current_info = &info;
    unsigned int i = 0, j = 0;
    int k = 0;
    while ( i < current_info->x11.desktop.nitems ) {
    if ( names[i++] == '\0' ) {
    if ( ++k == current_info->x11.desktop.current ) {
    if (current_info->x11.desktop.name) {
    free(current_info->x11.desktop.name);
    current_info->x11.desktop.name = NULL;
    current_info->x11.desktop.name = malloc((i-j)*sizeof(char));
    //desktop names can be empty but should always be not null
    strcpy( current_info->x11.desktop.name, (char *)&names[j] );
    break;
    j = i;
    void get_x11_desktop_info(Display *current_display, Atom atom)
    Window root;
    static Atom atom_current, atom_number, atom_names;
    struct information *current_info = &info;
    XWindowAttributes window_attributes;
    root = RootWindow(current_display, current_info->x11.monitor.current);
    /* Check if we initialise else retrieve changed property */
    if (atom == 0) {
    atom_current = XInternAtom(current_display, "_NET_CURRENT_DESKTOP", True);
    atom_number = XInternAtom(current_display, "_NET_NUMBER_OF_DESKTOPS", True);
    atom_names = XInternAtom(current_display, "_NET_DESKTOP_NAMES", True);
    get_x11_desktop_current(current_display, root, atom_current);
    get_x11_desktop_number(current_display, root, atom_number);
    get_x11_desktop_names(current_display, root, atom_names);
    get_x11_desktop_current_name(current_info->x11.desktop.all_names);
    /* Set the PropertyChangeMask on the root window, if not set */
    XGetWindowAttributes(display, root, &window_attributes);
    if (!(window_attributes.your_event_mask & PropertyChangeMask)) {
    XSetWindowAttributes attributes;
    attributes.event_mask = window_attributes.your_event_mask | PropertyChangeMask;
    XChangeWindowAttributes(display, root, CWEventMask, &attributes);
    XGetWindowAttributes(display, root, &window_attributes);
    } else {
    if (atom == atom_current) {
    get_x11_desktop_current(current_display, root, atom_current);
    get_x11_desktop_current_name(current_info->x11.desktop.all_names);
    } else if (atom == atom_number) {
    get_x11_desktop_number(current_display, root, atom_number);
    } else if (atom == atom_names) {
    get_x11_desktop_names(current_display, root, atom_names);
    get_x11_desktop_current_name(current_info->x11.desktop.all_names);
    void update_x11info(void)
    struct information *current_info = &info;
    if (x_initialised != YES)
    return;
    current_info->x11.monitor.number = XScreenCount(display);
    current_info->x11.monitor.current = XDefaultScreen(display);
    #ifdef OWN_WINDOW
    /* reserve window manager space */
    void set_struts(int sidenum)
    Atom strut;
    if ((strut = ATOM(_NET_WM_STRUT)) != None) {
    /* reserve space at left, right, top, bottom */
    signed long sizes[12] = {0};
    int i;
    /* define strut depth */
    switch (sidenum) {
    case 0:
    /* left side */
    sizes[0] = window.x + window.width;
    break;
    case 1:
    /* right side */
    sizes[1] = display_width - window.x;
    break;
    case 2:
    /* top side */
    sizes[2] = window.y + window.height;
    break;
    case 3:
    /* bottom side */
    sizes[3] = display_height - window.y;
    break;
    /* define partial strut length */
    if (sidenum <= 1) {
    sizes[4 + (sidenum*2)] = window.y;
    sizes[5 + (sidenum*2)] = window.y + window.height;
    } else if (sidenum <= 3) {
    sizes[4 + (sidenum*2)] = window.x;
    sizes[5 + (sidenum*2)] = window.x + window.width;
    /* check constraints */
    for (i = 0; i < 12; i++) {
    if (sizes[i] < 0) {
    sizes[i] = 0;
    } else {
    if (i <= 1 || i >= 8) {
    if (sizes[i] > display_width) {
    sizes[i] = display_width;
    } else {
    if (sizes[i] > display_height) {
    sizes[i] = display_height;
    XChangeProperty(display, window.window, strut, XA_CARDINAL, 32,
    PropModeReplace, (unsigned char *) &sizes, 4);
    if ((strut = ATOM(_NET_WM_STRUT_PARTIAL)) != None) {
    XChangeProperty(display, window.window, strut, XA_CARDINAL, 32,
    PropModeReplace, (unsigned char *) &sizes, 12);
    #endif /* OWN_WINDOW */
    #ifdef HAVE_XDBE
    void xdbe_swap_buffers(void)
    if (use_xdbe) {
    XdbeSwapInfo swap;
    swap.swap_window = window.window;
    swap.swap_action = XdbeBackground;
    XdbeSwapBuffers(display, &swap, 1);
    #endif /* HAVE_XDBE */
    I guess this is one of the important bits:
    switch (window.type) {
    case TYPE_DESKTOP:
    prop = ATOM(_NET_WM_WINDOW_TYPE_DESKTOP);
    fprintf(stderr, PACKAGE_NAME": window type - desktop\n");
    fflush(stderr);
    break;
    Reading the NET_WM spec (which all major WMs use as the standard more or less) does not tell me anything meaningful (at least not for me ):
    _NET_WM_WINDOW_TYPE_DESKTOP indicates a desktop feature. This can include a single window containing desktop icons with the same dimensions as the screen, allowing the desktop environment to have full control of the desktop, without the need for proxying root window clicks.
    If anyone could tell me what to replace, that would be great .

    Hi lewisspindlove,
    Thanks for your input,
    it doesn't happen when i have my desktop in a "single picture" mode, and,
    it doesn't happen on other accounts, because besides mine(Admin), there is only
    the Guest account and this does not occur on that account.
    I tried your method of removing the wallpapers folder from Libary, then I
    noticed that the computer will select ANY image which I last used when in
    "single picture" mode, not "Change picture every 5mins" mode.
    For example, let's say I have a picture which I saved in the Documents folder,
    and I use that in "single picture" mode; after which I revert back to the folder which contains the pictures I want for "Change picture every 5mins" mode (which is stored somewhere else).
    If i go to the Login window & log back in again, the computer selects the picture
    I last used (the one in the Documents folder) as my background, BUT, after 5mins the picture changes to the ones I'm using for "Change picture every 5mins".
    I hope I'm not confusing everyone!
    This is a complicated & weird but ANNOYING problem!
    Any ideas if an Archive & Install would help? Does that erase all of my stored data on my HDD?

  • Bugs: Virtual Desktops in an alpha test non-usable kind of state where it can hardly be tested (where the heck am I, ALT+TAB, and so on)

    Thus: This feature cannot be considered valid before it is actually being widely used and tested by people (testers).
    It's really hard to test virtual desktops right now. Probably because its too incomplete to be tested. Too much alpha kind of state.
    Triggering a shortcut in Internet favorites does not open a new instance of IE on the same virtual desktop - but on another different desktop.
    ALT+TAB slides virtual desktops - but sometimes it does app switching ... both ... so when does it work one way ... and then another.
    Going to a virtual desktop I see all the open on the taskbar for another context (i.e. another virtual desktop). Click the icon of that application I am on virtual desktop 1 ... clicking an instance ... I go to another virtual desktop where that app lives.
    It feels like a really weird universe ... where you go to strange behaving meta-context where sometimes up is down and down is up --- and then down is down and up is up ... and then you enter the door of cockpit of spaceship 1 and comes out in the cockpit
    of spaceship 2 ....................... then controls are even more weird. You do not know which space ship you are controlling for sure (up is up and down is up .... 1+2=-11) (i.e. non-intuitive)

    kaeandcolesmon,
    If you open the recovery drive (partition) it should only have a single folder (Recovery).
    To make sure that your not saving restore points to that drive.
    See:
    Start, Control Panel, System, System Protection tab. Make sure the D drive partition is set to OFF so that it does not save there.
    I am a volunteer. I am not an HP employee.
    To say THANK YOU, press the "thumbs up symbol" to render a KUDO. Please click Accept as Solution, if your problem is solved. You can render both Solution and KUDO.
    The Law of Effect states that positive reinforcement increases the probability of a behavior being repeated. (B.F.Skinner). You toss me KUDO and/or Solution, and I perform better.
    (2) HP DV7t i7 3160QM 2.3Ghz 8GB
    HP m9200t E8400,Win7 Pro 32 bit. 4GB RAM, ASUS 550Ti 2GB, Rosewill 630W. 1T HD SATA 3Gb/s
    Custom Asus P8P67, I7-2600k, 16GB RAM, WIN7 Pro 64bit, EVGA GTX660 2GB, 750W OCZ, 1T HD SATA 6Gb/s
    Custom Asus P8Z77, I7-3770k, 16GB RAM, WIN7 Pro 64bit, EVGA GTX670 2GB, 750W OCZ, 1T HD SATA 6Gb/s
    Both Customs use Rosewill Blackhawk case.
    Printer -- HP OfficeJet Pro 8600 Plus

  • How to set printer margins if using a lot of printers in virtual desktops which are deleted each time users logs off

    Hello,
    i am using Firefox version 31. I have a problem with page setup margins. I need to use left
    30mm; right 10mm; top 20mm; bottom 20mm. I am using VMware floating assignemnt linked clones
    virtual desktops. After users log off - machines are deleted and users next time logs on get's brand
    new VDI's. Users gets printers to VDI using login script from Active Directory.
    Option Explicit
    Dim strPrinterUNC, objNetwork
    strPrinterUNC = "\\some_server\printer_number_1"
    Set objNetwork = CreateObject("WScript.Network")
    objNetwork.AddWindowsPrinterConnection strPrinterUNC
    WScript.Sleep (20000)
    objNetwork.SetDefaultPrinter strPrinterUNC
    Set objNetwork = Nothing
    Each user have different logon script, because they use different printers (different printer names e.g. \\some_server\printer_number_2 ; \\some_server\printer_number_3 and etc. Page setup margins in Internet Explorer are ok. But how to make Firefox page setup margins as i need? For other options i have
    used CCK2 Wizard 2.0.4 tool. It worked fine. Maybe i can put some information in C:\Program
    Files\Mozilla Firefox\defaults\pref\autoconfig.js I have some usefull data in it allready. I
    have found info that: "Setting print margins is done in the printer settings". I have a lot of
    printers, so i can not set printer margins individualy for each of them. Now mozilla shows top,
    bottom, right, left each 12.7 mm. What should i do if i have a lot of printers in enterprise
    environment?

    Firefox has a profile folder that has preferences to save this. But the config that would need to be changed is:
    print. save_print_settings = True - (default): Save the print settings after each print job
    Locking that preference: [http://kb.mozillazine.org/Locking_preferences]
    Or done manually:
    #In order to check the margins, we need to go to ''File'' > ''Page Setup''.
    #Once this is done, switch to the ''Margins & Header/Footer'' tab.
    #Check what's set there under ''Margins''.
    The following are the default values for ''Margins'':
    Check these values accordingly and change them if necessary.

  • Window manager that can scale individual window or virtual desktop?

    Xfig doesn't work well on high DPI screens, especially for users whose vision is not that great. The problem is that there is no configuration option to scale elements such as lines.
    I see two ways to solve the problem:
    Scale the Xfig window.
    Scale the virtual desktop on which Xfig is running. Other applications would be running on virtual desktops that are not scaled.
    Following a suggestion in the awesome mailing list, I looked into Wayland plus a compositing window manager. However, XWayland, the X compatibility layer, has issues with Xfig. So I guess that for now I’m stuck with X.org, and a window manager compatible with the X composite extension.

    Possible solutions:
    Pervert: Set up a virtual machine just for Xfig, then use xrandr to scale the desktop inside of the virtual machine.
    Saner: Run Xfig in a VNC server (or NX), then connect with a client that supports scaling, e.g. gtk-vnc.
    Could be nice: Run Xfig within Xephyr, an X server that runs in a window within X. However, scaling with xrandr doesn't work.
    Untested: Use the Compiz Ezoom plugin to scale part of the screen. One would somehow need to prevent windows from being positioned outside of the zoomed area, and also restrict mouse movement.
    Last edited by feklee (2015-04-06 11:27:07)

  • Virtual desktop template creation with UR1 - two issues

    There are two new issues affecting Virtual Desktop template creation with WMS 2012 with UR1.
    Issue #1: Some systems fail to create a new or customized virtual desktop template with UR1 applied. UR1 includes an updated MultiPoint Connector which is compatible with a UR1 host. The Connector gets included in the Virtual Desktop template
    so that the virtual desktops can be managed by MultiPoint Dashboard. On some systems installation of the UR1 Connector will require a reboot that takes too long to complete and template creation will timeout.
    If you try to create a template without doing the following update to the unattend-t.xml file, and if the Connector reboot takes too long, the template creation process will never complete, appearing stuck at 80% until the timeout. If you check the running
    Virtual Machine Connection, you will see an error message that Windows could not complete the installation.
    To correct this:
    From MultiPoint Manager or Hyper-V Manager, shutdown the running template VM.
    Delete the template .vhd stored in Public Documents\Hyper-V\Virtual hard disks
     3. a) Make a backup copy of
    C:\Program Files\Windows MultiPoint Server\Unattend-t.xml
               e.g. rename it .bak
    b) open
    C:\Program Files\Windows MultiPoint Server\Unattend-t.xml in your favorite text editor.
    b) find “connector” in the file
    c) replace this string (starts with <Path> and ends with </Path>)
    <Path>powershell -Command &quot;try { $process = Start-Process -FilePath &apos;%Windir%\Temp\Connector\WmsConnector.Exe&apos; -ArgumentList &apos;/Quiet&apos; -PassThru -Wait; } catch { throw &apos;WmsConnector
    Install Failed&apos;}; exit $process.ExitCode&quot;</Path>
    with this string
    <Path>powershell -Command &quot;try {
    $p = Start-Process -FilePath &apos;%Windir%\Temp\Connector\WmsConnector.Exe&apos; -ArgumentList &apos;/Quiet
    /NoRestart&apos; -PassThru -Wait; } catch { throw &apos;WmsConnector Install Failed&apos;}; exit $p.ExitCode&quot;</Path>
    then save the file again as Unattend-t.xml  
    d) Proceed with Create and Customize virtual desktop template, and Create virtual desktop station as described on our blog at
    Virtual Desktop Templates – Part
    1 & Part 2
    We continue to investigate why this issue occurs on some machines and not others
    Issue #2: UR1 was intended to fix an issue creating virtual desktop templates on true UEFI systems, i.e. systems that don’t fall back to legacy support for earlier BIOS services. UR1 did not solve the issue. For now we are recommending
    doing template creation on systems that do fall back to legacy BIOS services. To check: from Device Manager under Disk Drives select your system hard drive. Double click and go to the Volumes tab and click Populate. The Partition Style entry should
    be Master Boot Record (MBR).  If it is GPT you have a UEFI system.
    We continue to investigate fixing this for UEFI systems.

    Any word on a UEFI fix?  My instructions on the other thread seem to work for me.
    Also, I imagine this won't be an issue on the next version of MultiPoint Server since the next Hyper-V in Server 2012 R2 now has those native UEFI VM's.  Have you guys played around with that yet?  Also, FWIW, I'm not sure why the pre-release docs
    mention that UEFI is only supported on Windows 8 VM's.  Why not x64 Windows 7 and Vista SP1 VM's?  I thought those already support full UEFI boot.  Is it because Hyper-V has mandatory restrictions to have Secure Boot turned on for UEFI VM's?

  • Yosemite reverts to a certain virtual desktop on startup.

    I'm working on one of the 2008 iMacs and I recently upgraded to Yosemite after skipping Mavericks.
    What I immediately noticed when I had changed to a desired wallpaper, initially, is that on starting up, restarting, or logging back in the wallpaper would switch back to the grey solid wallpaper.
    I deleted that.
    It would then revert to the next solid coloured wallpaper (blue).
    What I did after this was create a new folder and put my own desktop wallpapers in it, and used that.
    When I started up again the next time, it reverted to one of the default yosemite picture wallpapers in 'pictures'. I had a look at the setup for the desktop setups. There were 32. I deleted all but 2 of the virtual desktops, and changed the desktop wallpaper to be identical on both.
    I restarted and, again, got the picture of the yellowy-purple yosemite.
    I inspected the virtual desktops. Only 'desktop 1' had changed.
    I changed the order, so now that Desktop 1 became Desktop 2  (and vice versa).
    I restarted.
    Again I was greeted by the yellowy-purple yosemite. Once again I inspected the virtual desktops. I found that OS X had started up on Desktop 2 (which used to be desktop 1) even though I had restarted on Desktop 1.
    I'm out of ideas...anyone else having this problem?

    1. If you log in automatically, a bug in some versions of OS X will cause the desktop picture to revert to the default image at every startup. The only known workaround is to disable automatic login in the Users & Groups preference pane.
    2. If the selected Desktop picture is stored in an iPhoto library on an external drive, export it from iPhoto and move it to a folder on the startup volume. (Credit for this solution to ASC member janay.)
    3. If the desktop picture always reverts to a plain blue background, one of your login items may be causing the problem. The "TeamViewer" application can have this effect; see this thread. If it's not that in your case, rule out all other third-party login items as possible causes.
    4. If you have a MacBook Pro with automatic graphics switching, disable it temporarily in the Energy Saver preference pane, set the Desktop picture, then restart the computer and re-enable graphics switching.
    5. If none of the above applies to you, proceed as follows.

  • Applescript to set a wallpaper on all virtual desktops/spaces

    Hello everybody,
    i just want to share something i came up with after trying many things to set a wallpaper to every of my virtual desktops/spaces... feel free to use and improve it!
    This applescript is based on a few solutions i found on the internet...
    It's really silly, but all the other things doesn't work for me.
    FIRST make sure that AppleScript Editor.app is checked in
    System Preferences --> Security & Privacy --> Privacy --> Accessibility
    Then start AppleScript Editor and paste the following:
    ----- snip -----
    set myWallpaper to "/path/to/image.jpg"
    set myNumberOfSpaces to 5
    -- switch to first space
    tell application "System Events" to key code 18 using control down
    delay 1
    tell application "System Events" to set picture of current desktop to myWallpaper
    delay 0.5
    repeat with theIncrementValue from 2 to myNumberOfSpaces
      -- switch to next space
              tell application "System Events" to key code 124 using control down
      delay 1
              tell application "System Events" to set picture of current desktop to myWallpaper
              delay 0.5
    end repeat
    ----- snip -----
    Adjust the two variables to your needs...
    e.g. i have 5 virtual desktops/spaces
    Then click the Run button and watch it working :-)
    Hopefully this will help someone.
    I think you can easylie make an osascript or o droplet out of this...
    Till now i found no other working shiny easy solution of setting one picture to all my desktops in mavericks.
    Improvements are welcome!
    woodst0ck

    There’s been a couple threads about this, the solution seems to be to install a compositor like xcompmgr or maybe compton (I’m using compton and not seeing the issue).

Maybe you are looking for