{"id":13438209,"url":"https://github.com/forge-ext/forge","last_synced_at":"2025-03-19T18:32:24.663Z","repository":{"id":37358210,"uuid":"380613030","full_name":"forge-ext/forge","owner":"forge-ext","description":"Forge - Tiling and Window Manager for Gnome-Shell","archived":false,"fork":false,"pushed_at":"2024-09-29T21:42:01.000Z","size":880,"stargazers_count":921,"open_issues_count":119,"forks_count":49,"subscribers_count":13,"default_branch":"main","last_synced_at":"2024-10-27T23:25:07.163Z","etag":null,"topics":["gnome","gnome-extension","gnome-shell","gnome-shell-extension","linux","tiling","window-management","window-manager"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/forge-ext.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-26T23:19:08.000Z","updated_at":"2024-10-26T23:32:32.000Z","dependencies_parsed_at":"2023-12-02T02:22:12.006Z","dependency_job_id":"c37161aa-3d61-49bf-8adc-c72a1c038c69","html_url":"https://github.com/forge-ext/forge","commit_stats":null,"previous_names":[],"tags_count":62,"template":false,"template_full_name":"jmmaranan/gnome-shell-ext-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forge-ext%2Fforge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forge-ext%2Fforge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forge-ext%2Fforge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forge-ext%2Fforge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/forge-ext","download_url":"https://codeload.github.com/forge-ext/forge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244483567,"owners_count":20460139,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gnome","gnome-extension","gnome-shell","gnome-shell-extension","linux","tiling","window-management","window-manager"],"created_at":"2024-07-31T03:01:03.691Z","updated_at":"2025-03-19T18:32:24.657Z","avatar_url":"https://github.com/forge-ext.png","language":"JavaScript","readme":"# Forge is not maintained anymore\n\nForge is a GNOME Shell extension that provides tiling/window management **_AND_** is looking for a new owner or maintainer:\n- https://github.com/orgs/forge-ext/discussions/276\n- https://github.com/forge-ext/forge/issues/336\n\n## Features\n\n- Tree-based tiling with vertical and horizontal split containers similar to i3-wm\n- Vim-like keybindings for navigation/swapping windows/moving windows in the containers\n- Drag and drop tiling\n- Support for floating windows, smart gaps and focus hint\n- Customizable shortcuts in extension preferences\n- Some support for multi-display\n- Tiling support per workspace\n- Update hint color scheme from Preferences\n- Stacked tiling layout\n- Works on GNOME 3.36+ (feature-freeze) and 40. X11 and Wayland\n- Swap current window with the last active window\n- Auto Split or Quarter Tiling\n- Show/hide tab decoration via keybinding https://github.com/forge-ext/forge/issues/180\n- Window resize using keyboard shortcuts\n\n## Known Issues / Limitations\n\n- Does not support dynamic workspaces\n- Does not support vertical monitor setup\n\n## Installation\n\n- Build it yourself via `make install` or `make dev`.\n- Download from [GNOME extensions website](https://extensions.gnome.org/extension/4481/forge/).\n- [AUR Package](https://aur.archlinux.org/packages/gnome-shell-extension-forge) - thanks to [@Radeox](https://github.com/Radeox)\n- [Fedora Package](https://packages.fedoraproject.org/pkgs/gnome-shell-extension-forge/gnome-shell-extension-forge/) - thanks to [@carlwgeorge](https://github.com/carlwgeorge)\n\n![image](https://user-images.githubusercontent.com/348125/146386593-8f53ea8b-2cf3-4d44-a613-bbcaf89f9d4a.png)\n\n## Forge Keybinding Defaults\n\nSee the acceptable key combinations on the [wiki](https://github.com/forge-ext/forge/wiki/Keyboard-Shortcuts)\n\n| Action | Shortcut |\n| --- | --- |\n| Increase active window size left | `\u003cCtrl\u003e + \u003cSuper\u003e + y` |\n| Decrease active window size left | `\u003cCtrl\u003e + \u003cShift\u003e + \u003cSuper\u003e + o` |\n| Increase active window size bottom | `\u003cCtrl\u003e + \u003cSuper\u003e + u` |\n| Decrease active window size bottom | `\u003cCtrl\u003e + \u003cShift\u003e + \u003cSuper\u003e + i` |\n| Increase active window size top | `\u003cCtrl\u003e + \u003cSuper\u003e + i` |\n| Decrease active window size top | `\u003cCtrl\u003e + \u003cShift\u003e + \u003cSuper\u003e + u` |\n| Increase active window size right | `\u003cCtrl\u003e + \u003cSuper\u003e + o` |\n| Decrease active window size right | `\u003cCtrl\u003e + \u003cShift\u003e + \u003cSuper\u003e + y` |\n| Open preferences | `\u003cSuper\u003e + period` |\n| Toggle tiling mode |`\u003cSuper\u003e + w` |\n| Focus left | `\u003cSuper\u003e + h` |\n| Focus right | `\u003cSuper\u003e + l` |\n| Focus up | `\u003cSuper\u003e + k` |\n| Focus down | `\u003cSuper\u003e + j` |\n| Swap current window with last active | `\u003cSuper\u003e + Return` |\n| Swap active window left | `\u003cCtrl\u003e + \u003cSuper\u003e + h` |\n| Swap active window right | `\u003cCtrl\u003e + \u003cSuper\u003e + l` |\n| Swap active window up | `\u003cCtrl\u003e + \u003cSuper\u003e + k` |\n| Swap active window down | `\u003cCtrl\u003e + \u003cSuper\u003e + j` |\n| Move active window left | `\u003cShift\u003e + \u003cSuper\u003e + h` |\n| Move active window right | `\u003cShift\u003e + \u003cSuper\u003e + l` |\n| Move active window up | `\u003cShift\u003e + \u003cSuper\u003e + k` |\n| Move active window down | `\u003cShift\u003e + \u003cSuper\u003e + j` |\n| Split container horizontally | `\u003cSuper\u003e + z` |\n| Split container vertically | `\u003cSuper\u003e + v` |\n| Toggle split container | `\u003cSuper\u003e + g` |\n| Gap increase | `\u003cCtrl\u003e + \u003cSuper\u003e + Plus` |\n| Gap decrease | `\u003cCtrl\u003e + \u003cSuper\u003e + Minus` |\n| Toggle focus hint | `\u003cSuper\u003e + x` |\n| Toggle active workspace tiling | `\u003cShift\u003e + \u003cSuper\u003e + w` |\n| Toggle stacked layout | `\u003cShift\u003e + \u003cSuper\u003e + s` |\n| Toggle tabbed layout | `\u003cShift\u003e + \u003cSuper\u003e + t` |\n| Show/hide tab decoration | `\u003cCtrl\u003e + \u003cAlt\u003e + y` |\n| Activate tile drag-drop | `Start dragging - Mod key configuration in prefs` |\n| Snap active window left two thirds | `\u003cCtrl\u003e + \u003cAlt\u003e + e` |\n| Snap active window right two thirds | `\u003cCtrl\u003e + \u003cAlt\u003e + t` |\n| Snap active window left third | `\u003cCtrl\u003e + \u003cAlt\u003e + d` |\n| Snap active window right third | `\u003cCtrl\u003e + \u003cAlt\u003e + g` |\n| Persist toggle floating for active window | `\u003cSuper\u003e + c` |\n| Persist toggle floating for active window and its window class | `\u003cSuper\u003e\u003cShift\u003e + c` |\n\nFor any shortcut conflicts, the user has to manually configure those for now from the\n`GNOME Control Center \u003e Keyboard \u003e Customize Shortcuts`. https://github.com/forge-ext/forge/issues/37\n\n## Forge Override Paths\n\n- Window Overrides: `$HOME/.config/forge/config/windows.json`\n- Stylesheet Overrides: `$HOME/.config/forge/stylesheet/forge/stylesheet.css`\n\n## GNOME Defaults\n\nGNOME Shell has built in support for workspace management and seems to work well - so Forge will not touch those.\n\nUser is encouraged to bind the following:\n- Switching/moving windows to different workspaces\n- Switching to numbered, previous or next workspace\n\n## Development\n\n- The `main` branch contains gnome-4x code.\n- The `legacy` and `gnome-3-36` are the same and is now the source for gnome-3x.\n\n## Local Development Setup\n\n- Install NodeJS 16+\n- Install `gettext`\n- Run `npm install`\n- Commands:\n\n```bash\n# Compile and override the gnome-shell update repo\nmake dev\n\n# Or run below, and restart the shell manually\nmake build \u0026\u0026 make debug \u0026\u0026 make install\n\n# X11 - build from source and restarts gnome-shell\nmake test-x\n\n# Wayland - build from source and starts a wayland instance (no restart)\nmake test-wayland\n\n# Formatting, when you do npm install, \n# husky gets installed should force prettier formatting during commit\n\nnpm run format\n```\n\n## Contributing\n\n- Please be nice, friendly and welcoming on discussions/tickets.\n- See existing [issues](https://github.com/forge-ext/forge/issues) or file a new ticket with title `bug: short description` if it doesn't exist.\n\n## Credits\n\nThank you to: \n- Forge extension contributors\n- Michael Stapelberg/contributors for i3\n- System76/contributors for pop-shell\n- ReworkCSS/contributors for css-parse/css-stringify\n","funding_links":[],"categories":["HarmonyOS","JavaScript"],"sub_categories":["Windows Manager"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fforge-ext%2Fforge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fforge-ext%2Fforge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fforge-ext%2Fforge/lists"}