forge
forge copied to clipboard
Forge - Tiling and Window Manager for Gnome-Shell
Forge
Forge is a GNOME Shell extension that provides tiling/window management.
Installation
- Extensions GNOME site: https://extensions.gnome.org/extension/4481/forge/
- Download/clone the source and
make install, restart gnome-shell after ormake dev. - AUR Package: https://aur.archlinux.org/packages/gnome-shell-extension-forge - thanks to @Radeox
! Major Changes !
- Floating windows were rewritten and persists between sessions.
- Toggle floating by window title and entire window class using keyboard shortcuts.
- Window Snapping 2/3, 1/3 or center.
Development
- The
mainbranch contains gnome-4x code. - The
legacyandgnome-3-36are the same and is now the source for gnome-3x.
Features
- Tree-based tiling with vertical and horizontal split containers similar to i3-wm
- Vim-like keybindings for navigation/swapping windows/moving windows in the containers
- Drag and drop tiling
- Support for floating windows, smart gaps and focus hint
- Customizable shortcuts in extension preferences
- Some support for multi-display
- Tiling support per workspace
- Update hint color scheme from Preferences
- Stacked tiling layout
- Works on GNOME 3.36+ (feature-freeze) and 40. X11 and Wayland
- Swap current window with the last active window

Forge Keybinding Defaults
New
| Action | Shortcut |
|---|---|
| Snap active window left two thirds | <Ctrl> + <Alt> + e |
| Snap active window right two thirds | <Ctrl> + <Alt> + t |
| Snap active window left third | <Ctrl> + <Alt> + d |
| Snap active window right third | <Ctrl> + <Alt> + g |
| Persist toggle floating for active window | <Super> + c |
| Persist toggle floating for active window and its window class | <Super><Shift> + c |
Current
| Action | Shortcut |
|---|---|
| Open preferences | <Super> + period |
| Toggle tiling mode | <Super> + w |
| Focus left | <Super> + h |
| Focus right | <Super> + l |
| Focus up | <Super> + k |
| Focus down | <Super> + j |
| Swap current window with last active | <Super> + Return |
| Swap active window left | <Ctrl> + <Super> + h |
| Swap active window right | <Ctrl> + <Super> + l |
| Swap active window up | <Ctrl> + <Super> + k |
| Swap active window down | <Ctrl> + <Super> + j |
| Move active window left | <Shift> + <Super> + h |
| Move active window right | <Shift> + <Super> + l |
| Move active window up | <Shift> + <Super> + k |
| Move active window down | <Shift> + <Super> + j |
| Split container horizontally | <Super> + z |
| Split container vertically | <Super> + v |
| Toggle split container | <Super> + g |
| Gap increase | <Ctrl> + <Super> + Plus |
| Gap decrease | <Ctrl> + <Super> + Minus |
| Toggle focus hint | <Super> + x |
| Toggle active workspace tiling | <Shift> + <Super> + w |
| Toggle stacked layout | <Shift> + <Super> + s |
| Toggle tabbed layout | <Shift> + <Super> + t |
| Activate tile drag-drop | Start dragging - Mod key configuration in prefs |
For any shortcut conflicts, the user has to manually configure those for now from the
GNOME Control Center > Keyboard > Customize Shortcuts. https://github.com/jmmaranan/forge/issues/37
Forge Override Paths
- Window Overrides:
$HOME/.config/forge/config/windows.json - Stylesheet Overrides:
$HOME/.config/forge/stylesheet/forge/stylesheet.css
GNOME Defaults
GNOME Shell has built in support for workspace management and seems to work well - so Forge will not touch those.
User is encouraged to bind the following:
- Switching/moving windows to different workspaces
- Switching to numbered, previous or next workspace
Contributing
- Please be nice, friendly and welcoming on discussions/tickets.
- Run
make devfor local development. - See existing issues or file a new ticket with title
bug: short descriptionif it doesn't exist.
Credits
Thank you to:
- Michael Stapelberg/contributors for i3.
- System76/contributors for pop-shell.
- ReworkCSS/contributors for css-parse/css-stringify.