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
- Build it yourself via
make installormake dev. - Download from GNOME extensions website.
- AUR Package - thanks to @Radeox
- Fedora Package - thanks to @carlwgeorge
Forge Keybinding Defaults
See the acceptable key combinations on the wiki
| Action | Shortcut |
| --- | --- |
| Increase active window size left | |
| Decrease active window size left | |
| Increase active window size bottom | |
| Decrease active window size bottom | |
| Increase active window size top | |
| Decrease active window size top | |
| Increase active window size right | |
| Decrease active window size right | |
| Open preferences | |
| Toggle tiling mode | |
| Focus left | |
| Focus right | |
| Focus up | |
| Focus down | |
| Swap current window with last active | |
| Swap active window left | |
| Swap active window right | |
| Swap active window up | |
| Swap active window down | |
| Move active window left | |
| Move active window right | |
| Move active window up | |
| Move active window down | |
| Split container horizontally | |
| Split container vertically | |
| Toggle split container | |
| Gap increase | |
| Gap decrease | |
| Toggle focus hint | |
| Toggle active workspace tiling | |
| Toggle stacked layout | |
| Toggle tabbed layout | |
| Show/hide tab decoration | |
| Activate tile drag-drop | Start dragging - Mod key configuration in prefs |
| Snap active window left two thirds | |
| Snap active window right two thirds | |
| Snap active window left third | |
| Snap active window right third | |
| Persist toggle floating for active window | |
| Persist toggle floating for active window and its window class | |
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
mainbranch contains gnome-4x code. - The
legacyandgnome-3-36are 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