Code Monkey home page Code Monkey logo

forge's Introduction

Forge

Forge is a GNOME Shell extension that provides tiling/window management.

Extensions

You can install from: https://extensions.gnome.org/extension/4481/forge/ or download the source and make install, restart gnome-shell after or make dev.

! Development is now towards GNOME-4x !

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

! Major Changes !

  • BREAKING styles: #63
    • New Tabbed Tiling implementation via St.Widgets.
    • New style declarations will reset the custom stylesheets for users when updating. Old styles will be backed up as $HOME/.config/forge/stylesheet/forge/stylesheet.css.bak. User has to re-apply colors for now via preferences.

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

Experimental Features

  • New Tabbed tiling implementation using St.Widget library - there is NO fallback to the old implementation.

image

Forge Keybinding Defaults

Action Shortcut
Open preferences <Super> + period
Toggle tiling mode <Super> + w
Toggle floating for active window <Super> + c
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 conflicts, the user has to manually configure those for now from the GNOME Control Center > Keyboard > Customize Shortcuts. forge-ext#37

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 dev for local development.
  • See existing issues or file a new ticket with title bug: short description if it doesn't exist.
  • See planned features/milestones or file a new feature request with title feat: short description if it doesn't exist.
  • Support GNOME 3.36+ to 40. New features/fixes to land on main branch which contains gnome-shell running Ubuntu LTS (3.36.x). gnome-40 will be patched/rebased from main unless gnome 40 specific.

Credits

Thank you to:

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.