Resizing windows with keyboard shortcuts

I have seen some people resizing their windows very efficiently with shortcuts.. For example window is on full screen then you press some key and it becomes the left side of the screen then another window you press a button and it takes the right side of the screen.

I'm not sure if this is achieved with any application or it's built in, does anyone know how to achieve that?


In Ubuntu, some keyboard shortcuts are set up by default:

  • Maximize window: Super+Up
  • Restore window: Super+Down
  • Tile to left half of the screen: Super+Left
  • Tile to right half of the screen: Super+Right

In addition, keys are setup to move and resize using the keyboard:

  • Begin move: Alt+F7. After hitting this key, arrow keys will move the window, Shift+Arrow keys will quickly move the window toward the side of the screen or the edge of another window. Press Enter or another key when done
  • Begin resize: Alt+F8 will initiate a resize. arrow keys will resize the window, Shift+Arrow keys will resize towards the edge or another window.

Using hidden configuration settings, more custom shortcuts for window manipulation can be defined. Following configuration commands will set up shortcut keys for:

• centering a window or moving it quickly to the side of the screen

gsettings set org.gnome.desktop.wm.keybindings move-to-center "['<Control><Super>c']"
gsettings set org.gnome.desktop.wm.keybindings move-to-side-e "['<Control><Super>Right']"
gsettings set org.gnome.desktop.wm.keybindings move-to-side-n "['<Control><Super>Up']"
gsettings set org.gnome.desktop.wm.keybindings move-to-side-s "['<Control><Super>Down']"
gsettings set org.gnome.desktop.wm.keybindings move-to-side-w "['<Control><Super>Left']"

These are keybindings I defined. You can choose to use different keybindings by editing the commands first.

• positioning a window in one of the corners of the screen

gsettings set org.gnome.desktop.wm.keybindings move-to-corner-ne "['<Control><Super>2']"
gsettings set org.gnome.desktop.wm.keybindings move-to-corner-nw "['<Control><Super>1']"
gsettings set org.gnome.desktop.wm.keybindings move-to-corner-se "['<Control><Super>4']"
gsettings set org.gnome.desktop.wm.keybindings move-to-corner-sw ['<Control><Super>3']"

• maximizing horizontally and vertically

gsettings set org.gnome.desktop.wm.keybindings maximize-horizontally "['<Control><Super>equal']"
gsettings set org.gnome.desktop.wm.keybindings maximize-vertically "['<Control><Super>backslash']"

These settings can also be set using the utility dconf-editor.