Cinnamon: Drag window to different workspace

Created on 13 Feb 2013  路  12Comments  路  Source: linuxmint/cinnamon

Hello,

Is it possible to drag a window to a different workspace?

I don't seem to be able to do this... when I drag a window to the left or right it tries to go into half-screen full screen mode (or however that's called).

This would be a nice feature request.

Thanks.

Most helpful comment

@LunaticoCR Is it really necessary to drag a window? The default of Shift+Ctrl+Alt+(Left/Right) whilst the window is active should move it to the previous or next workspace if I remember correctly.

All 12 comments

@LunaticoCR Is it really necessary to drag a window? The default of Shift+Ctrl+Alt+(Left/Right) whilst the window is active should move it to the previous or next workspace if I remember correctly.

Turn on edge-flip in cinnamon settings (windows tab maybe?)

@mtwebster edge-flip, that was it! Thanks.

I just upgraded from Linux Mint 14 to 16 (Cinnamon 2.0.14), and I'm no longer able to drag windows from one workspace to another. I have edge flipping enabled and I've tried disabling window tiling, but still no luck. This is driving me nuts. Any ideas?

(I've been dragging windows between workspaces for ~20 years, ctrl+alt+shift+arrow just doesn't cut it.)

This ability was removed in Cinnamon 2.0 as it was poorly implemented at the time, and conflicted considerably with the other window management features we were introducing.

There are plans to re-implement it eventually, hopefully in some way to make it a little more difficult to accidentally trigger, which was the biggest complaint.

In the meantime, we did add the ability to switch workspaces while dragging a window, using the arrow keys - I'm not sure if this helps in your case but it's all I can offer currently.

Sadly this is important enough for me that I am probably gonna have to switch off Cinnamon after trying it for a couple of days :(

Can your issue not be resolved by using the arrow keys (either in combination with dragging the window, or via the Shift-Ctrl-Alt method)?

I'm sure it can but that's not how I prefer to do things. I've been using Linux as my desktop OS since 1999. I just got this new fangled laptop with a HiDPI display and touchpad and some modern features that work better with a DM like Cinnamon.

Nothing personal. I think Cinnamon is pretty cool otherwise, I was finally getting really comfortable when I discovered that weird hot spot thing was "Window Tiling" and that I could turn it off.

On a side note, and this doesn't specifically apply to Cinnamon but something worth thinking about, I'm disappointed that for a laptop with 2560x1440 display that my information density is essentially lower with how most things scale the fonts and widget sizes for HiDPI. With Xfce4 I could easily fit four tiled terminals on Workspace 1 with lots of room to spare -- even a gkrellm on the side.

Well, with all that said, I just tried the remaining options and none of them work very well with HiDPI and I see even GNOME has gone the same way re: edge snapping windows to next workspace.

Cinnamon definitely looks like the best choice by far for this laptop, the arrow key switching is actually not bad and as I'm figuring out how to customize things more to my liking it's growing on me.

And, I must note, that since I'm running Debian, I am still on 2.2. Looking forward to giving 2.4 a try. Keep up the good work, I didn't mean to give you guys any grief!

any news here?

+1 for being able to drag windows to workspaces

I've found a way to overcome missing of Shift-Ctrl-Alt-right/left methods.
You can make window been showing on all workspaces then move to the desired workspace and then make window been showing only on the current workspace.

To simplify it:

  1. In System/Keyboard/Shortcuts/Windows add keyboard binding for "Toggle showing windows on all workspaces" (Shft+Ctrl+ShiftR for example)
  2. Install pip install pynput
  3. Create in ~/.scrips/moving.py
import time
from pynput.keyboard import Key, Controller

keyboard = Controller()

def gen_combination_handler(func):
    def handler(*keys):
        for key in keys:
            func(key)
    return handler

press_combination = gen_combination_handler(keyboard.press)
release_combination = gen_combination_handler(keyboard.release)

def push_combination(*keys):
    press_combination(*keys)
    release_combination(*keys)

def push_toggle_showing_an_all_workspaces():
    push_combination(Key.shift, Key.ctrl_l, Key.shift_r)

def move(is_right):
    direction_key = is_right and Key.right or Key.left
    # In order to properly make the first combination
    # you need to release currently pressed special buttons
    # So the next keys depend on the corresponding
    # System/Keyboard/Shortcuts/Custom Shortcuts keyboard bindings (see step 4.)
    release_combination(Key.alt, Key.ctrl)
    push_toggle_showing_an_all_workspaces()
    push_combination(Key.ctrl, Key.alt, direction_key)
    push_toggle_showing_an_all_workspaces()

  1. Create and make it exacutable two sripts ~/.scripts/move_right.py and move_left.py
#!/usr/bin/python
from moving import move
move(is_right=True)  # False for move_left.py
  1. In System/Keyboard/Shortcuts/Custom Shortcuts add two shorcuts for both sript and add keyboard bindings to them (Ctrl+Alt+; and Ctrl+Alt+' for example)
Was this page helpful?
0 / 5 - 0 ratings