[Running Ubuntu 14.04, Unity]

So, I have workspaces enabled and all that jazz. I know one can set some option so that Ubuntu defaults to more than four workspaces—but that's not what I want.

Currently, I'd like a fifth workspace, but only temporarily (that is, I don't want it to be the default that five open. I just want it for today, and possibly w/e other day I need it).

Is there a way to do this?

  • 1
    I imagine you are using Unity (default Ubuntu flavor); better you specify this in your question, because this question is desktop-environment dependent. Using Ubuntu Gnome, for example, workspaces are dynamic --- created or destroyed on the fly. I hated it at first, now I really like it... – Rmano Aug 21 '14 at 16:45
  • Do you have any particular way you would like to activate / deactivate the extra workspace? – Jacob Vlijm Nov 6 '14 at 7:37
  • @JacobVlijm Ideally, I'd like to press a hotkey, but it doesn't matter that much to me. – AmagicalFishy Nov 6 '14 at 14:00
  • Good to see the question is still "alive". I posted my answer. – Jacob Vlijm Nov 6 '14 at 15:43
  • I ran into this answer / question from a while ago. Could you tell me how it ended? Did any of the answers work? – Jacob Vlijm Feb 19 '15 at 16:46

The script below allows you to keep two different sets of worspaces. If you place the script under a shortcurt key, you can toggle between the two sets:

normal workspaces -

enter image description here

extended workspaces -

enter image description here

How to use

  1. Copy the script below into an empty file. In the head section, define the "normal" situation in rows / columns:

    normal = (2, 2)

    and the "extended" situation you'd like to see in rows / columns:

    extended = (2, 4)
  2. Save the script as manage_workspaces.py. Test if it does want you want it to do by running the command:

    python3 /path/to/manage_workspaces.py

    When you run the command, the workspace setup should toggle between the two sets, and a message should appear in the notification area (see the pictures above)

  3. If all works well, add the command to run the script to a shortcut key of your choice: Choose: System Settings > "Keyboard" > "Shortcuts" > "Custom Shortcuts"
    Click the "+" and add the command:

    python3 /path/to/manage_workspaces.py

    The script:

    #!/usr/bin/env python3
    import subprocess
    # default situation rows / columns
    normal = (2, 2)
    # extended set of workspaces
    extended = (2, 4)
    # commands to read the current state
    key = "/org/compiz/profiles/unity/plugins/core/"
    read_hor = "dconf read "+key+"hsize"; read_vert = "dconf read "+key+"vsize"
    hor = int(subprocess.check_output(["/bin/bash", "-c", read_hor]).decode("utf-8").strip())
    vert = int(subprocess.check_output(["/bin/bash", "-c", read_vert]).decode("utf-8").strip())
    # take action, depending on current state
    if (hor,vert) == normal:        
        set_h = "dconf write "+key+"hsize "+str(extended[1])
        set_v = "dconf write "+key+"vsize "+str(extended[0])
        message = "notify-send 'set to extended workspaces: "+str(extended[0])+" x "+str(extended[1])+"'"
        set_h = "dconf write "+key+"hsize "+str(normal[1])
        set_v = "dconf write "+key+"hsize "+str(normal[0])
        message = "notify-send 'set to normal workspaces: "+str(normal[0])+" x "+str(normal[1])+"'"
    for item in (set_h, set_v, message):
        subprocess.call(["/bin/bash", "-c", item])

I have a outdated PPA that might work but the workspace is not temporarily available. So to disable/enable you must go to the application.

PPA: deb http://ppa.launchpad.net/tualatrix/ppa/ubuntu jaunty main

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.