forge-ext / forge Goto Github PK
View Code? Open in Web Editor NEWForge - Tiling and Window Manager for Gnome-Shell
License: GNU General Public License v3.0
Forge - Tiling and Window Manager for Gnome-Shell
License: GNU General Public License v3.0
The empty split bin needs to be cleared when the last window child gets minimized or consider the parent St.Bin
to be minimized along with the window to retain the position in the tree?
Made you look here. And it starts with <Super> + :
:)
When pressing <Super> + z
, select the parent con of the focused window. The con is a St.Bin, can implement active hint and hiding the border on the focused window.
With this, open up to be able to move/update this Con and its children using drag/drop or keyboard shortcuts
When a tiled window is maximized, for example, Gnome Terminal, right-clicking to get to preferences unmaximizes the window.
To reproduce, open any window that has a confirmation dialog when exiting. I see this on GNOME Terminal with tmux and then exiting while tmux is still running, then it will ask to confirm the exit. After confirming exit and terminal is the last window in Forge, it crashes and restarts gnome-shell
Add capability to exempt some windows from being tracked for layout (tiling, tabbed or stacked) by Forge:
<Super> + e
) or its entire wm_class (<Super><Shift> + e
).<Super><Shift> + z
.Create wiki documentation or static website somewhere
When pressing <Super><Shift> + s
, toggle the focus window's parent con to Stacked layout
Capability to see the panel icon for the following:
Whan I do this a lot of strange stuff happens and the shell get restarted sort. After a few times I'm forced to restart the gnome session.
Control where new window would appear, horizontally or vertically against a focused window. This is inspired by i3-wm:
<Super> + z
to ready create a horizontal split.<Super> + v
to ready create a vertical split.Document any conflicting keybindings on the gnome.wm or desktop.wm dconf
percentages > 0.0
between the window that was resized and the sibling.Swap
modifier is pressed, swap the active window with the target.Alt, Super, Ctrl,
or DisabledUse <Super>
+ vim or directional keys to navigate windows:
h / left arrow
keys - move focus to left of currently focused windowj / down arrow
keys - move focus to bottom of currently focused windowk / up arrow
keys - focus window to top of currently focused windowl / right arrow
keys - focus window to right of currently focused windowOn Zorin16 presets got a floating top bar, when im try to activate this extensions it ignores the topbar of gnome and hide the titlebar of the windows under it. If i activate the gap i can manage to mitigate this problem but doesn't solve it. The way that i can see this thing solved is (and i suggest):
1: have an gap exclusive to the top on the extension settings
2: manage to recognize the modified top bar of Zorin16
Especially on the second sugestion its only an way to say it, i dont know nothing about how to do it or even if its possible. I could share any other info needed for resolve this problem. I really apreciatte the effort on this extension.
Some additional info:
Gnome version: 3.38 on Wayland
Add the following configurable settings in prefs.js, with the ability to:
<Super> + .
The idea is to self-contain the UI for the options - so it can be available for users in any distro that is using Gnome-Shell.
Focus
command and same orientation as the direction, and the next monitor contains 1 or more windows, focus on the node window that's closest to the previous monitor. (The last index of the child of next con can be used if coming from direction == RIGHT, else first index)When a window in the tree is minimized, skip to the next available sibling relative to the direction. Else, the window focus gets stuck and cannot get past the minimized window in the tree.
Migrate prefs.js to GTK 4.x
https://docs.gtk.org/gtk4/migrating-3to4.html
When the gnome preferences window focus mode == 'mouse'
, disregard the option forge.focus-follow-mouse
and still move the mouse pointer.
Open 2 windows, halt-tile vertically 1 window and toggle the layout. Resize the con and see it break. Resize by dragging one of the children opposite the split direction - since vertical, drag horizontally or vice versa.
When overview is opened, and mouse is moved to another window than previous, the previous and currently highlighted window gets swapped when closing the overview.
Will add reproduce steps here
Distinguish smart-gapped and zero-gapped windows and adjust focus hint accordingly
When pressing <Super><Shift> + t
, toggle the current focus window's parent con to Tabbed layout.
Two options for tabs:
Due to the change in 84fde5c for detecting if window is in the same monitor workspace node, the attachNode is being overriden incorrectly when the window swaps in between displays.
It behaves as if the window was just dragged into the monitor even if Split Vertical or Split Horizontal is done by the user.
<Super>+x
.When moving windows with keybindings, and the window being moved is within another sub-con, and the sub-con is the first or last child of a container, still move the window as the first or last child, detaching from that sub-con.
One use case is when inserting a window into a split and would like to go back to the same position as it was before.
The grab_accelerator API was different in gnome-shell 3.36 than when Forge started at gnome 3.38
When moving to an empty workspace and have done tiling on a different workspace, the window does not attach to the empty workspace-monitor node properly. It tiles on the previous workspace's attachNode.
Update the shortcut var back as an Array(String) strv
When the dynamic workspaces is turned on in GNOME Tweaks or gsettings, and moving windows in and out of workspaces sometimes produces display glitches after introducing the container splits:
Forge Preferences > Keyboard > {Windows|Container|Other} Shortcuts > Conflicts With
column.When there are 3 windows tiled and the middle (number 2) is minimized, the keyboard focus cannot jump from number 3 to number 1 window or vice versa. It gets stuck on the hidden window number 2.
Allow users to update keybindings in prefs.js without using Gnome Control Center
When floats (because Forge still tracks it - just a different mode) like prefs.js are opened, the siblings percentages are being reset. It should only reset when that window gets tiled with its siblings.
While working on #22 - found out that when minimizing deeply nested windows, the tree.next is not able to determine the next available window for the remaining tiled children shown on the screen.
Bugs as part of this ticket:
When a window is floated via <Super> + c
, noticed that the floating window can swap places with the window underneath. This should not happen.
<Super> + c
and add wm_class
and wm_title
to floating overrides config file.wm_class
via <Super> + <Shift> + c
and add wm_class
to floating overrides config file.see #15
Ability to drag the edges of a window and resize the containers using a mouse or keyboard.
For keyboard resize, use vim (hjkl
) or arrow directional keys.
Today, grabbing mouse and keyboard shortcuts swaps the windows.
<Super> + <Shift> + hjkl
to move-insert windows.<Super> + <Ctrl> + hjkl
to swap windows.When pressing <Super> + g
, toggle the split layout to horizontal or vertical
When PaperWM layout is enabled, do that same thing!
First of all...great work!
Would be great if you could bound Forge functionality to one of more workspaces, leaving other workspaces function normally. The use case is I have coding workscapes and design workspaces. The design workspaces need a more mouse-driven and flexible workflow.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.