Profile
Back to NewsBack
GitHub Trending 4 min
Reader Mode
forge-ext/forge: Forge - Tiling and Window Manager for Gnome-Shell

forge-ext/forge: Forge - Tiling and Window Manager for Gnome-Shell

3 hours ago

Forge needs a NEW MAINTAINER

Forge is a GNOME Shell extension that provides tiling/window management _AND_ is looking for a new owner or maintainer:

  • https://github.com/orgs/forge-ext/discussions/276
  • https://github.com/forge-ext/forge/issues/336
  • Forge By Claude and @jcrussell - please check it out! https://github.com/jcrussell/forge

Features

  • Works on GNOME 45 through 51. X11 and Wayland
  • Tree-based tiling with vertical and horizontal split containers similar to i3-wm and sway-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
  • Swap current window with the last active window
  • Auto Split or Quarter Tiling
  • Show/hide tab decoration via keybinding https://github.com/forge-ext/forge/issues/180
  • Window resize using keyboard shortcuts

Known Issues / Limitations

  • Does not support dynamic workspaces
  • Does not support vertical monitor setup

Installation

!image

Forge Keybinding Defaults

See the acceptable key combinations on the wiki

| Action | Shortcut | | --- | --- | | Increase active window size left | + + y | | Decrease active window size left | + + + o | | Increase active window size bottom | + + u | | Decrease active window size bottom | + + + i | | Increase active window size top | + + i | | Decrease active window size top | + + + u | | Increase active window size right | + + o | | Decrease active window size right | + + + y | | Open preferences | + period | | Toggle tiling mode | + w | | Focus left | + h | | Focus right | + l | | Focus up | + k | | Focus down | + j | | Swap current window with last active | + Return | | Swap active window left | + + h | | Swap active window right | + + l | | Swap active window up | + + k | | Swap active window down | + + j | | Move active window left | + + h | | Move active window right | + + l | | Move active window up | + + k | | Move active window down | + + j | | Split container horizontally | + z | | Split container vertically | + v | | Toggle split container | + g | | Gap increase | + + Plus | | Gap decrease | + + Minus | | Toggle focus hint | + x | | Toggle active workspace tiling | + + w | | Toggle stacked layout | + + s | | Toggle tabbed layout | + + t | | Show/hide tab decoration | + + y | | Activate tile drag-drop | Start dragging - Mod key configuration in prefs | | Snap active window left two thirds | + + e | | Snap active window right two thirds | + + t | | Snap active window left third | + + d | | Snap active window right third | + + g | | Persist toggle floating for active window | + c | | Persist toggle floating for active window and its window class | + c |

For any shortcut conflicts, the user has to manually configure those for now from the GNOME Control Center > Keyboard > Customize Shortcuts. https://github.com/forge-ext/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

Development

  • The main branch contains gnome-4x code.
  • The legacy and gnome-3-36 are the same and is now the source for gnome-3x.

Local Development Setup

  • Install NodeJS 16+
  • Install gettext
  • Run npm install
  • Commands:
# Compile and override the gnome-shell update repo
make dev

Or run below, and restart the shell manually

make build && make debug && make install

X11 - build from source and restarts gnome-shell

make test-x

Wayland - build from source and starts a wayland instance (no restart)

make test-wayland

Formatting, when you do npm install,

husky gets installed should force prettier formatting during commit

npm run format

Contributing

  • Please be nice, friendly and welcoming on discussions/tickets.
  • See existing Issues, or create a new Issue with the "Bug report" format if it doesn't exist.

Credits

Thank you to:

  • Forge extension contributors
  • Michael Stapelberg/contributors for i3
  • System76/contributors for pop-shell
  • ReworkCSS/contributors for css-parse/css-stringify

Chat with me