emasab / shelltile Goto Github PK
View Code? Open in Web Editor NEWA tiling window extension for GNOME Shell
Home Page: https://extensions.gnome.org/extension/657/shelltile/
License: GNU General Public License v2.0
A tiling window extension for GNOME Shell
Home Page: https://extensions.gnome.org/extension/657/shelltile/
License: GNU General Public License v2.0
Currently extension allows to have groups either maximized or not. It would be nice to have both groups at once.
I'm not sure how I'd like this to work, because right now maximising a window ungroups it. Perhaps it could be changed to Ctrl key (so you group, and ungroup window using the same key), and then maximizing and unmiximising window, would maximise or unmaximise group
I currently have a laptop with a 1080p display, which I use while on the go, but when I'm at work I connect my laptop to a 4K display. I only use one display at a time.
When I switch between displays, the tiling I have set up does not adapt to the new screen size.
For example, if I create a tiling on the 1080p display and connect the 4K display, the windows now only take up the top left quarter of the display. I can still change the ratios between the windows, but I need to break the tiling and recreate it, to take advantage of the full display space.
Going the opposite way is worse (setting up a tiling on the 4K display and disconnecting it), the windows actually stay within the visible area of the screen, but the outermost windows, still stretch all the way our to where the display edge was before, meaning that most of the window content is off screen.
Hi, I love tiling and I have a simple idea which may work out of the box to get rid of the title-bars everywhere in tiling mode (always a great feature):
the extension Maximums2 https://github.com/wilfm/GnomeExtensionMaximusTwo can on my gnome indeed not only vanish the title bar of fully maximized windows, but also of windows which are maximized by Super + Left or Super + Right to half of the screen.
Chances are that the same works for tiling
Maximus2 uses the _GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED
feature to handle this, i.e. it seems that the windows only need the flag const MAXIMIZED = Meta.MaximizeFlags.BOTH;
(or maybe vertical maximization is enough). Something along these lines
The respective code in Maximus2 can be found here https://github.com/wilfm/GnomeExtensionMaximusTwo/blob/master/maximus-two%40wilfinitlike.gmail.com/decoration.js#L137
Is something like this possible to implement?
(I myself unfortunately haven't worked at all with this api/javascript and would be glad if I can motivate someone else with more knowhow by pointing out the possibility =)
Hey,
I'm having an issue with a 3 screen setup (1 primary, 2 secondary screens).
ShellTile seems to confuse 2 of the 3 screens.
When dragging a window into the corner of the primary screen it gets placed into the corner on a secondary screen and vice versa.
Attached are 2 screenshots which show the issue.
The big screen is the primary screen.
Apart from that: Thanks a lot for that plugin! :)
Trying to place the Firefox- window into upper-left corner of big screen:
Trying to place the Terminal-window into left half of small screen:
@emasab
First of all, this is a really nice GNOME Shell extension. Well done!
What do you think about a feature that allows the user to change the background color of the grid.
Currently, the color is set in the stylesheet.css file. I know I can adapt this file to my prefered color, but what about my mom? She doesn't know CSS 😄.
My proposal is as follows. The prefs.js could be adjusted so that a user can pick the background color and the border color of the grid using a Gtk color chooser widget with some kind of icon paint button.
Here is a mockup for this feature:
As instructed in the readme, I press CTRL (or super if I set it) and then move a window around, getting an orange area indicator (like the ones we get from the normal hot corner resizing, but inside the window)
My problem is that when I press ctrl and then start moving the window, I get a quick glimpse of where it would be placed before the orange indicator vanishes completely, requiring me to either try doing it without certainty (it works even if I don't see where it's going to be placed) or do it again and hope that it's already in a favorable position.
Also, dragging first and only then pressing ctrl works too, but I don't even get any orange area indicator
The title says it all: when the Workspaces to Dock extension is enabled, the windows only occupy the left two-thirds of the screen rather than the entire screen, and they also behave in a bizzare way (disappearing suddenly, etc...) Disabling the abovementioned extension solves the problem.
This is, by the way, the extension I have been wishing for the most in Gnome Shell, thank you very much!
I have a desktop split into 2 windows, 50/50. When I accidentally click the top bar of a window, it immediately resizes. I think it might be nice if there is a certain pixel drag threshold here so only intended moving triggers resizing.
If I ctrl+drag a window to the bottom of an empty screen, a highlight appears that covers the lower 50% of that screen, and the window snaps to that area. If I ctrl+drag it to the top, the highlight only covers the whole screen, and the window can only be maximised. There seems to be no way to snap to the top half of an empty screen.
Gnome shell: 3.18.5 under Ubuntu 16.04
After the last upgrade, when I click a maximized window's titlebar, the window unmaximizes. This is very annoying since that si the way I normally switch windows with my mouse so every time I switch to a window that si maximized I have to go ahead re-maximize it again.
How to solve? for the moment just disabling the extension.
Any config file or so? Btw love it so far. Thanks
It would be great if we could also define a "gap" for the outside of the windows.
So basically gaps outer
as per i3.
I encounter it a lot that I have firefox tiled, but then open some embedded video fullscreen in it, and when I come back, the tiling is messed up. Seems to be caused by Gnome 3 hiding the top bar in fullscreen -> tiling group gets resized to fit now bigger screen -> exiting fullscreen shows top bar again -> tiling group does not get sized back down properly. VLC for example does it too, so it's not firefox-specific.
The title says it all.
Screencast: https://www.dropbox.com/s/9k27yr6kydoa465/Shelltile-tile-preview.mp4?dl=0
I need the ability to always have the window maximize when I drag up, there is a setting in Cinnamon from Linux Mint to achieve this that doesn't exist in shelltile.
i don't know whether this is possible technically, but it would be nice to be able to get the original size and position of a window before it was grouped, after ungrouping it
would it be possible to force the window size instead of adhering to the snap requests from applications like gnome-terminal?
asfaiu these requests are just hints to the window manager, and they can be ignored.
Hey, I can't figure out how to use this.
I have keyboard commands set for tiling using Settings>Keyboard>Keyboard Shortcuts
. Shelltile both (A) deletes these settings and (B) prevents user from setting them again (no matter what is done, it resets to the default).
Tiling ignores topbar.
Gnome 3.22
To be clear, it ignores size.
Hi,
When activating shell-tile extension, my custom keybindings for Super+ArrowKey are changed without asking.
There are no configuration options (not even in dconf) to change the keybindings shelltile uses.
While shell-tile is active, keybindings for "maximize window" and "restore window" can't be changed so I can't manually restore my keybindings AND use shell-tile. (maximize/restore window keybindings are not needed anyway, since Super+Return already switches between these two states)
Even worse, when I disable shell-tile in frustration, my keybindings are NOT restored.
That is really bad behaviour and sours the experience of what would otherwise be a very helpful tool.
Since the last release, Super+L (which I mapped to lock the screen) is overridden by ShellTile. With the extension enabled, Super+L causes the active window to be tiled to the right of the screen.
When window is groupped, snapped to corner, snapped to edge, when ungrouped/unsnapped, the size stays the same as in group/snapped one.
When maximizing by snapping to top edge, windows dragged away from it, resizes to its previous size.
If I use win+left, win+right, window remembers its previous size, but I presume that's because it's using standard gnome snapping for it.
Installed from gnome extensions. Does it have up-to-date version?
Hi,
If I have terminal open, I cannot see prompt because the bottom of the tiles are behind bottom task bar.
Thanks for fixing this.
The default gnome shell has this window-snapping thing bound to these keys. I'd prefer them to behave in the same way as super-dragging a window to either side works with shelltile; ie. still be resizable.
I am using Ubuntu 16.04 with GNOME, shelltile and two screens (differenct sizes).
If I place two windows side by side, it worked and looks nice. But if I set my computer into power safing mode and wake it up again, the "side by side windows" are a little bit higher than my screen. You can see this bug in this screenshot (compare it with the next, correct screenshot):
If I change the size manually (for example only the width), the window height jumps back into the correct height and everything is displayed correctly. This is the workaround I am using every time the pc comes back from power safing mode:
It'd be brilliant if any tiled window groups could behave as one "application" (one window group <==> one application) in gnome shell's alt-tab list and consequently be able to switch between windows in a window group using alt-grave. Not sure if it's possible to override the "application" of an existing window (and reset it when it is removed from the group), that would probably be the easiest implementation.
I often find that when I go to drag a window somewhere, Shelltile wants to group it with pretty much anything I move it over. I'm not holding down Ctrl, or any other shortcut key, yet it insists that I group it with another window. Often, this devolves into me having a bunch of windows that are way too narrow (height-wise or width-wise), and I get frustrated and turn Shelltile off. Sometimes I go in and disable grouping by following your steps to modify tiling.js, but that goes away with any updates.
I should mention that this isn't a constant/consistent problem, but it is frequent throughout the day.
I assume I'm having this problem because I'm running on Wayland, but I thought I'd let you know.
As the title says, I am only encountering this issue with Emacs, and it is the application that I use the most, so it gets a bit frustrating after a while.
Whenever I drag emacs to the sides (both right and left), it is supposed to maximize to cover such half of the screen. However, with Emacs it leaves a small
space at the bottom. And it does not let me resize it. Also whenever I drag the window to the corners like top right or bottom right, for instance, it leaves a space at the bottom and at the right.
It would be awesome if it would be possible to activate a Tiling mode, to get a bit of default tiling.
E.g. open first application tile to fullscreen, add a second one tile first to the left and second one to the right, add a third one tile second to upper right and third to lower right.
I know shellshape does this, but it always crashes for me and it would be awesome to have it with your tiling implementation.
Thanks :)
With very hight horizontal resolution monitors (>2880) it is common to have three columns of layout. It would be great if the extension supported this.
while it's possible to set the default orangish color of the tiling overlay within the included css-file, i'd like to be able to do this within the settings dialog (by using a hex-value maybe), so my customizing won't disapperar after an update to the extension was applied
When I move a window with the 'Super' key pressed, the extension's behaviour is the same as if I kept the 'Control' pressed - tiling is enabled. It's a problem for me, since I use 'Super'+LeftMouseButton to move windows. I use Gnome 3.22.2. I think one should be able to choose which key they want to use.
I'm not sure if you're aware but your extension rebinds my super + (i, j, k, l) and is seriously frustrating. Super + L is default for lock screen btw, please check before you hard-code keybindings, or just don't.
I saw from your commits that you have fixed this but, unfortunately this is not reflecting even after re-installing. I like your extension but I really hate that you can just rebind things without warning -__-
I'd dig around to see the proper API for adding keybindings into the gnome settings menu.
Pls don't do it again.
Would be cool if a window, when dragged or resized near to an edge could be snapped to the edge, so that one doesn't have to fiddle arount for really maximizing a window to the absolute border (because there are always some pixels left).
Wow, just tried this extension, it's quite nice. If it's of interest I'd like to make a request, it would be even more cool if I could put both windows in a kind of fullscreen state side-by-side, I mean, without the gnome top menu nor the window borders.
Hi,
When Shelltile is enabled, gnome-shell process uses a 100% of one CPU core during actions, and, what's more important, significantly more than w/o Shelltile, after action.
Screencast (9MB):
https://www.dropbox.com/s/7vyoii0kb934v53/Shelltile.mp4?dl=0
Systems specs.:
i5 2500
HD 3000 tested /w xf86-video-dirver and Xorg modestetting driver
Arch Linux
kernel 4.7
GNOME 3.20
I'm sure that more adjustable gaps would be appreciated by the i3-gaps crowd, myself included.
Is it possible to assign keys to specific actions like moving windows to right or left?
Better yet, a way that the extensions handles windows automatically in the desktop, with the bindkeys to move windows, like i3wm
Maybe it should be possible to customize the snap region highlight color as, for example, in my gnome theme (Adwaita-dark) highlights are blue.
But, awesome extension. Thanks.
I'm running gnome-shell 3.22 on Fedora 25 with the updates-testing repository enabled and am having some really strange bugs when using shelltile
If I group applications together they seem to not maintain proper spacing, not remain within the boundaries of the screen, and not resize accurately afterwards. Here is a gallery of numerous attempts to tile windows together:
https://imgur.com/gallery/FJcHA
Every one of those images was taken after using CTRL to hover one window over another which should have tiled them correctly. Instead it doesn't really work at all.
Fortunately, single window snapping to sides/corners still functions perfectly fine so I am still using it for that. As you can tell, I'm also using the dash-to-panel extension but I can't think of how or why that might be causing any issues.
To reproduce:
Set up Gnome with more than one workspace.
Set up two windows in a tiling group (with ctrl-drag, whatever)
Alt tab such that one of those windows is focused.
Hit Ctrl-Shift-Alt-Arrow to move that window to the other workspace
Notice that both windows came to the new workspace
Hit Ctrl-Alt-Arrow to go back to the first workspace
Notice that neither window is on the first workspace anymore.
I like the feature, but I want it to disable it, mainly because I drag the windows a lot using alt+click+drag
(in my case super+click+drag
) and it breaks my workflow...
Thanks for a great extension.
I am having some issues with this extension when my laptop is connected to an external monitor. It seems that the screen edge triggers one the second monitor result in the window jumping back to the primary. The shaded window that shows position are drawn on the primary.
I do want to remark that I am running Gnome on Fedora 25 with Wayland and will test with X11 when I get a chance.
Thanks again
Dragging a window to the top starts tiling before the mouse touches the top edge. This doesn't really matter when you have panel on top, but if you have panel at bottom by using an extension like "Dash to Panel", then it becomes impossible to drag a window to the top (by using only mouse and not the window action key) without tiling it. I don't know if you have done this behaviour intentionally (for easier tiling) but it would be nice if tiling was happening only on the screen edge or add an option at preferences for users who want it that way. Maybe some milliseconds delay before tiling is activated would also be helpful.
Can't lock screen using SUPER+L after enabling ShellTile. SUPER+L now tiles windows like i3 commands, which may be fine for some users, but I need to be able to lock my screen. I've tried other keyboard shortcuts to lock the screen and for some reason they don't work with ShellTile enabled.
Would it be possible to add an option to disable those shortcuts so I can tile just by using the mouse?
Tiles are placed regardless of DTD but this „missing“ space should be considered.
I'm used to only using keyboard commands to tile like Super-Left then Super-Down to move into the lower left quadrant (how Windows 10 does it). I try to avoid using the mouse if possible as it greatly slows me down.
First off. Amazing extension. Desktop experience on 21:9 monitors is fantastic with this enabled. So, thank you.
I upgraded to 3.26.1 today and noticed the hotkey tiling no longer functions. I can't see any errors in the journal.
Edge snapping still works, including corner and top-half.
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.