Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Workspace Grid

A GNOME Shell extension that arranges workspaces in a two-dimensional grid instead of a single line, and lets you move around it with Ctrl+Alt+arrow keys in all four directions.

Workspaces stay dynamic. GNOME still creates one as you fill the last and still removes the ones you empty; they are simply wrapped into rows of a configurable width, so the grid grows and shrinks by rows as you use it. There is always exactly one spare row at the end, which is the two-dimensional version of GNOME's rule of keeping one spare workspace.

Everything is flat. There is no cube, no rotation and no perspective — a workspace switch pans the viewport across the grid, and the overview lays the workspaces out as a plane around the active one.

What it changes

  • Mutter's workspace layout is switched to a real 2D grid, which is what makes Ctrl+Alt+Up/Down navigate between rows. Mutter has supported this since its Metacity days; nothing in GNOME Shell ever turns it on.
  • Workspace provisioning is taken over so the grid stays a full rectangle. Rows are added and removed at the end of the list, so an occupied workspace never changes index and therefore never changes cell.
  • The overview pans across the grid in both axes, keeping the active workspace at its native size the way GNOME does.
  • The thumbnail strip is replaced by a map of the grid, since a linear strip cannot show a shape that is not linear. Clicking a cell activates it; dropping a window on one moves the window there.
  • The workspace switcher OSD is laid out as a grid for the same reason.
  • Pressure barriers on all four screen edges, so dragging a window to any edge moves it to the neighbouring cell.

Touchpad gestures are GNOME's own and remain one-dimensional, which means sideways only. Use Ctrl+Alt+Up/Down to change rows.

Installing

make install

Then restart the shell — Alt+F2, then r. A real restart is required rather than toggling the extension off and on: GJS caches ES modules, so a re-enable can still run the previous version of the code.

make check syntax-checks the sources and validates the settings schema.

Requirements

GNOME Shell 48. Tested on X11.

Credits

This project began as a fork of Desktop-Cube by Simon Schneegans, and parts of it are still derived from that work — the extension scaffolding, the preferences dialog, the pressure-barrier edge switching and the technique of hooking into WorkspacesView and WorkspaceAnimationController to place the actors by hand. The grid itself, the provisioning model, the minimap and the two-dimensional overview are new. Files carry SPDX headers naming whichever of us holds copyright in them.

Licence

GPL-3.0-or-later. See LICENSE.

About

A 2D grid for GNOME's activity overview

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages