Window snapping in action
by clem 21

I’ve been doing a lot of talking to sell my idea to the team and to you here at Segfault. It matured a lot since the beginning and mtwebster started the implementation so we could tinker with it and experiment with using it rather than talking about abstract concepts.

So, for the very first time, I was able to snap windows in Cinnamon… and I can tell you already, I LOVE IT! I hate the way it works (because it’s only half-done mostly) but I already use it a lot.

As I said to the team, by the time Cinnamon 2.0 is out, I want everybody’s grandma to tile and snap windows like there’s no tomorrow. It will rock and it will be trivial to use. Right now though, it’s still pretty much ALPHA. We’re still defining what we want it to do and how we want to interact with it and the current implementation is extremely rough around the “edges” :)

Here’s a preview of it in action. In all the screenshots below, Totem is “snapped” and the Terminal is “maximized”. As you can see, one key advantage of snapping a window, is that maximized windows do not cover it.

1

Playing videos on the side (totem snapped at 1/4-right)

2

You can snap at the bottom too… 1/4 bottom here

3

… or at the top

4

Watching a race (totem snapped at 1/2-left)

Please don’t mind the bugs (lack of borders etc..), it’s not yet supposed to be stable.

21 thoughts on “Window snapping in action

  1. Reply VolMi Jun 18, 2013 13:49

    Sometimes, it just needs a gracious dictator to bring things forward…

  2. Reply mahen Jun 18, 2013 13:57

    Cool ! Do you think there could be a way to snap several windows ? For instance, a “fixed” column would contain 2 snapped windows (a video + a playlist for instance).

    I never used tiling-window managers but definitely seems one of their features that come to my mind : the possibility to have windows not overlap and automatically rearrange themselves in that purpose.

    • Reply clem Jun 18, 2013 14:01

      Yes, it’s something we talked about within the team. I’m cautious not to go too far with this though. Tiling managers are great at this kind of things but they also come with a learning curve. In Cinnamon you’ll be able to snap multiple windows but they’ll cover each others. We decided that was acceptable for now anyway, while we focused on solving the main use cases, and then we could always consider doing more at a later stage.

  3. Reply hdra Jun 18, 2013 15:08

    I actually wish removing the borders can be added as an option.

    and one more thing? will there any plan to add another method to switch the focused window other than alt-tab? maybe something like modifier+arrow keys like the one in i3wm?

    • Reply Mani Jun 18, 2013 15:20

      This functionality is already given:

      Go to settings -> Keyboard -> shortcuts
      (not absolutely shure about the english names)

      In the “Cinnamon” category there is the entry:
      Cycle through open windows

      There you can add your shortcut.
      I hope this helps you

  4. Reply Emmanuel Jun 18, 2013 16:46

    Nice work Clem !

    If we could delete the large area of black near the video to put, say… gedit or nemo, that would be a perfect desktop.

    I am impressed. You are working in the right direction…

    • Reply clem Jun 18, 2013 19:00

      No, that won’t be possible with what we’re doing. For that you’d need a full-fledged tiling-centric WM. With that said, totem has a zoom feature… it’s not great for movies or sports, but it’s ideal for music videos. It makes your video take the whole entire allocated space.. you don’t see it all anymore, but for music videos it doesn’t matter all that much.

      • Reply Mani Jun 18, 2013 19:54

        How about a switchable “tiled-mode” in which that would be possible (something like a shortcut to turn tiled-mode on/off)
        Although i don’t know how much work that would be (sry if the efford would be ridiculous high)

  5. Reply Dam Jun 18, 2013 23:18

    Hi Clem,

    It is a very interesting idea and first shot at it.

    I personally have to work on translation.
    It would be nice to be able to snap the online dictionary just next the maximized window of the text.

    Cheers,
    Dam

  6. Reply Austin Jun 19, 2013 02:32

    What about snapping windows into the corners too, so that you could have four windows each in 1/4th of the screen, 2 1/4th’s and a half, whatever you wanted. Or is that already planned? Maybe even make the border between two snapped windows (horizontal or vertical) movable? Make the other borders fixed, and don’t let the window be moved on accident, but allow resizing to fit the content, to allow that video to take up only the space necessary? Quick Mock-up

    • Reply easy82 Jun 20, 2013 17:15

      I’d also like to have something similar! I’d like to be able to use the corners to make a window 1/4 of the screen, the vertical edges to make it 1/2 of the screen, or upper edge to make it maximized. I think it’s very intuitive.

      About the borders: for me it’d be enough if they would just snap to each other if they are close enough.

      This way the window movement and resizing would not be that restrictive. Also, most of this functionality is already present.

  7. Reply samriggs Jun 20, 2013 22:34

    Nice can’t wait to use this for eclipse and glimp together, should save a lot of clicking for me.

  8. Reply Andy Jun 21, 2013 11:32

    This is a great start, but when I look at that I see all that wasted space in the video player window I feel like always on top is a better solution for small video windows, although it is a little more effort to arrange the windows as desired. However, I guess you could add another window below the video window, such as a chat app with a friend list or something.

    Have you had a look at Blender’s UI by the way? it allows users to split any panel into two and change the panel content and save layouts. Whilst I’m not in love with their implementation, it is quite a flexible system, though it’s a bit confusing at first until you learn how to collapse panels too. Is that kind of thing too much of a departure from what you are trying to do?

    Also, do I need to switch to Cinnamon for these kinds of cool new features or will you port them to Mate if they are successful in Cinnamon?

    Edit by Clem: I talked about it to some of the KDE devs already and I’ll talk to the rest of the MATE team about it too.

  9. Reply me Jun 21, 2013 11:47

    This is great, but please consider providing an “Off switch” for the entire feature in settings.

  10. Reply happycamper Jun 22, 2013 19:29

    Speaking of off switches, it would be nice to have a built-in, key-assignable shortcut to toggle this feature on and off. Built-in, because it is hard for ordinary users to discover the commands to use to define system-related shortcuts.

    With that thought, built-in, assignable shortcuts for shut down, suspend, restart cinnamon, enable/disable networking and wireless (etc.) would be nice. I’m guessing (?) they wouldn’t be hard for the devs to include. If they are left unassigned at installation, they shouldn’t get in the way of users who are not interested in them.

  11. Reply JosephM Jun 23, 2013 22:42

    This is looking pretty good so far. Just hope it is kept fairly simple and straightforward to use. I personally would be happy with the way things work currently if I had the ability to resize windows that are snapped.

    One thing I would really like to see is the ability to save and re-use layouts. I commonly use a setup where I have a browser or pdf viewer snapped to one half of the screen with the other half split in two vertically. I then open gedit in the top and a terminal in the bottom. I would love to be able to save this as a named layout and then recall it and have the apps all opened, placed, and sized appropriately. It would be nice to be able to even set a layout to used at startup.

  12. Reply R. Mitchell Aug 8, 2013 18:23

    I use snapping windows all the time and is one reason why I switched back to Windows 7 from LM Mate, other options like Linux Mint KDE were to resource heavy for my low power laptop. I just switched back to Linux Mint 15 XFCE specifically because it has native snapping windows and a slab menu as before. Two features I LOVE!!!

    Thanks for all the great work!!!

  13. Reply Marco Meijer Aug 15, 2013 22:26

    Alright! If there’s anything I’ve ever really wanted in my DE, it’s this!

  14. Reply TS Sep 6, 2013 21:18

    -PLEASE ALLOW USERS TO SEAMLESSLY ADJUST THE WINDOW-SIZE PROPORTIONS BY AS MUCH AS THEY WANT, AND NOT JUST 1/4!!!

    -…ALSO, ALLOW USERS TO DIVIDE THE SCREEN IN 4 PARTS, BY SNAPPING 4 WINDOWS IN 4 CORNERS (SNAP-TO-CORNERS)!!!

    • Reply clem Sep 6, 2013 23:45

      No need to shout :)

      Both requests are already implemented for Cinnamon 2.0. You can tile/snap to corners and you can freely resize tiled/snapped windows.

Leave a Reply