GithubHelp home page GithubHelp logo

vibou.gtile's Introduction

vibou.gTile

Gnome-shell extension that tiles windows as you like.

This extension is developed at GitHub If you are reading this documentation anywhere else, it might be out of date.

Manual Installation

Gnome extensions must be in the Gnome extentions directory with a subdirectory name which matches the uuid field of metadata.json.

See https://wiki.gnome.org/Projects/GnomeShell/Extensions for details.

  1. Clone the repository to the Gnome extensions folder.

    git clone https://github.com/vibou/vibou.gTile.git ~/.local/share/gnome-shell/extensions/gTile@vibou
    
  2. Restart Gnome

    Alt-F2
    Enter a Command: r
    

Configuration

To configure gTile use preferences dialog

Author

This extension has been developed by vibou with the help of the gnome-shell community. See network for details.

CHANGE LOG

V25

  • Add full keyboard control, window position presets, full settings control through preferences dialog. Fixed couple bugs here and there.

V21

  • Fix an issue on tracking focused window

V20

  • Add compatibility with Gnome-Shell 10

V17

  • Fix some UI Issues

V16

  • UI changes

V15

  • Compatibility Gnome Shell 3.6.1

V14

  • Compatibility Gnome Shell 3.4.1 + small bug correction

V13

  • Add Key binding settings + Compatibility 3.4.1

V12

  • Correct small bug on auto tile where monitor height was considered without gnome-panel on primaryMonitor

V11

  • AutoTile function : 2 new auto tile features + Replace Animation and auto close text by icons

V10

  • Now gTile follows your focus window !! Thanks to Claus Beerta he implements it in a branch.
  • I change the implementation so that it works with multi-screen and I also added animations.

V9

  • Not validated

  • However he added the keybinding in settings (into the file extension.js) but it s still buggy I think

  • So I let it for those who wants to try it.

V8

  • Correct bug where Desktop can be tile
  • 3x2 button added by default

V7

  • Add Auto-close once resize
  • Add Smooth animation when toggle extension
  • New icon
    (/!\ auto-close may cause some bugs so let me know if you had any thanks).

vibou.gtile's People

Contributors

aaronjamesyoung avatar amankhoza avatar barak avatar bengt avatar caseyching avatar electricprism avatar engelfrost avatar ezh avatar jamesdbrock avatar kvis-dev avatar lundal avatar magejohn avatar mofef avatar raf64flo avatar sasa7812 avatar scherepanov avatar slowriot avatar tanjoodo avatar vibou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vibou.gtile's Issues

click and drag

Right now I have to click once, then move the mouse and click again to choose the size. It would be really nice if I could click and drag instead.

Portrait monitor is considered landscape

As you can see in the gTile screenshot

  • the gTile UI spawns to the right of my secondary monitor which is portrait
  • the topmost left cell isn't at the corner of my screen

Since I can't reach the bottom of the screen either but windows stretch to the right outside of the visible area it feels like gTile detects the screen as portrait.

Fyi: My primary monitor is the same size, but landscape.
I'm using the nvidia tool to set my screen layout, because that's scriptable and I'm able to overlay/cover monitors.
Gnome screenlayout (wrong)
Nvidia screenlayout (correct)
randr screenlayout (correct)

If you need any further information please let me know. I'd appreciate it if someone could point me to the point in code where I might be able to try a fix myself.

Keyboard shortcuts

It would be very nice if keyboard shortcuts could be implemented. CTRL + ALT + NP[number] like the Grid plugin for Compiz would be awesome, but something as simple as bringing up the tile menu for the active window would already help a lot.

Please update for 3.8

I don't know if this requires any changes, but it is not listed as compatible with 3.8 on extensions.gnome.org

2 suggestions

Thanks for gTile. I have a 2 suggestions :
1- Keyboard only way to send a window to a specific tile. (for example I want to divide screen into 4 tiles, each can have a number and a shortcut. Or alternatively super-space then choose the tile with arrow keys). Arranging windows without mouse is one of the main goal of tiling wm's.

2- Allow irregular tiles.

Thanks for this nice extension and keep up the good work.
ilker.

Remember the tiling size

Remember the tiling size (2x2; 3x2; 4x4; 6x6).

I (almost) always use 6x6, it is kinda disturbing to change it every time.

hotkeys for specific tile position

how can I set hotkey's to accomplish the following:

super+alt+right: tiling active window to the right 2/3 of the screen
super+alt+left : tiling active window to the left 2/3 of the screen

super+ctlr+right: tiling active window to the right 1/3 of the screen
super+ctlr+left: tiling active window to the left 1/3 of the screen

which would be dope ;)

Bottom panel height ignored

When bottom panel is visible (often showing the notification and tabs showing all the windows open) the height of the bottom panel is never considered.
In some cases (firefox, terminal emulator) it sticks underneath the bottom panel having to manually adjust.
I would suggest that there should be an option for user to adjust or automatically take that into consideration.

Ignore Titlebar Height

Great extension! I've been using for a few hours now and I couldn't be happier.

One problem I've faced though is I'm using gTile with the Hide top bar extension and was hoping there would be a way to tell gTile to ignore the top bar height. Right now when I tile something not maximized, gTile accounts for the top bar being there and my desktop shows through.

Other than that great work! I'm so happy it's working on 3.18.

gnome-terminal has gap when tiling

When using gTile to position a gnome-terminal there is a gap between the edges of the tile and the edge of the window. This does not happen when tiling other programs.
example
running gnome 3.18 on gentoo

Please make gTile compatible with recent GnomeShell 3.6.2 on Ubuntu 12.10.

Currently, gTile does not run on the GnomeShell version 3.6.2.
The gTile extension is great and very helpful for any serious GnomeShell user. Unfortunately, on extensions.gnome.org, the gTile extension is greyed out for the recent GnomeShell versions and also manual installation does not work.

Please update the version to run also on GnomeShell versions higher than 3.6.1 (this seems to be the highest number in the sources). Thank you very much in advance

My system: Gnome Shell 3.6.2-0ubuntu0.2, Ubuntu 12.10.

Some other user reports on not successful installations here: https://extensions.gnome.org/extension/28/gtile/

Thanks!

Resizing after snap to edge with mouse

hi,

I am the developer of "put window" extension (https://github.com/negesti/gnome-shell-extensions-negesti).
Because of my bug http://tinyurl.com/bu7pyv7 i tried your extension to see how you have fixed this problem.

If you use gnome-shell feature to "tile" windows with the mouse e.g. move it to an edge metawindow.resize will not work and the window does not change:

focusMetaWindow.resize(true,areaWidth-vBorderX,areaHeight-vBorderY);

For a details description of the behaviour check my issue (the link to gnome-shell-list)

regards

add usage hint

would be nice to have some hint about how to use it in the readme/description. I eventually figured this out but I wouldn't have if I hadn't failed to get started with other extensions doing the same.

St.Table is depreciated

I tired to get this to run on Gnome 3.18.1 by updating the metadata and quickly ran into bugs getting this to launch. From lg:

St.Table is not a constructor

Looks like maybe the layout used is depreciated?

projecthamster/hamster-shell-extension#96

This thread seems to have some more details, but still, fixing it looks like it might require porting to a new layout API.

Loading on startup results in a javascript error

I get this in syslog on startup:

JS ERROR: TypeError: launcher is null
hideTiling@/home/susurrus/.local/share/gnome-shell/extensions/gTile@vibou/extension.js:529
_onFocus@/home/susurrus/.local/share/gnome-shell/extensions/gTile@vibou/extension.js:469

The extension (actually all of my extensions) then fail to load. I'm running GNOME 3.22.3 on Fedora 25.

Gnome 3.8.1 compatibility

Hello Vibou, thank you for your great extension.

I just upgraded to Shell 3.8.1 and your extension does not work.
Here is the crashlog:

    JS ERROR: !!!   WARNING: 'assignment to undeclared variable monitorIdx'
    JS ERROR: !!!   WARNING: file '/home/alby/.local/share/gnome-shell/extensions/gTile@vibou/extension.js' line 215 exception 0 number 156

(gnome-shell:5560): Clutter-WARNING **: Attempting to add actor of type 'StBoxLayout' to a container of type 'StButton', but the actor has already a parent of type 'StButton'.

(gnome-shell:5560): Clutter-WARNING **: Attempting to add actor of type 'StBoxLayout' to a container of type 'StButton', but the actor has already a parent of type 'StButton'.

(gnome-shell:5560): Clutter-WARNING **: Attempting to add actor of type 'StBoxLayout' to a container of type 'StButton', but the actor has already a parent of type 'StButton'.

(gnome-shell:5560): Clutter-WARNING **: Attempting to add actor of type 'StBoxLayout' to a container of type 'StButton', but the actor has already a parent of type 'StButton'.
      JS LOG: Extension "gTile@vibou" had error: Error: second argument to Lang.bind() must be a function, not undefined

Thank you!

Randomly Doesn't Work

I encounter a issue daily on Arch + Gnome 3.20 + gTile where the hotkey I set Super + G will not yield the dialog to tile the window.

Opening Gnome Tweak and turning off gTile and on gTile solves the problem.

Is anyone else having this problem? Is there a way I can collect debug data to help locate the problem?

tiled window out of screen in gnome 3.4

I'm not sure about solution, so I post it as issue.

Original padding is broken

x = x - borderX;
y = y - borderY;

width = width - vBorderX;
height = height - vBorderY ;

So, I tried different variants and replaced it with

function move_resize_window(metaWindow,x,y,width,height)
{
    let borderX,borderY,vBorderX,vBorderY;
    [borderX,borderY] = this._getInvisibleBorderPadding(metaWindow);
    [vBorderX,vBorderY] = this._getVisibleBorderPadding(metaWindow);

    width = width - vBorderX;
    height = height - vBorderY;

Maybe we need an option for user in preference dialog, so user may switch between different padding methods.

Please make compatible with GNOME Shell 3.24

GNOME Shell 3.23.90 on Ubuntu GNOME 17.04 Beta

GNOME Shell 3.24 now uses mozjs38 (SpiderMonkey 38) which has stricter syntax rules.

Test Case

Run gnome-shell-extension-prefs
Click the gear button next to gTile.

The output is

TypeError: redeclaration of formal parameter iter

Stack trace:
  Application<._getExtensionPrefsModule@resource:///org/gnome/shell/extensionPrefs/main.js:74:13
  wrapper@resource:///org/gnome/gjs/modules/lang.js:178:22
  Application<._selectExtension@resource:///org/gnome/shell/extensionPrefs/main.js:89:31
  wrapper@resource:///org/gnome/gjs/modules/lang.js:178:22
  Application<._extensionFound/<@resource:///org/gnome/shell/extensionPrefs/main.js:206:17
  main@resource:///org/gnome/shell/extensionPrefs/main.js:399:5
  @<main>:1:49

Temporary lock up when moving/resizing window

I experience a temporary lock up quite often with a few windows on Fedora 24. Recently I have seen this with Firefox and ScudCloud. The lock up can last anywhere from a few seconds to 20 seconds. The mouse is still usable, but I am unable to interact with gnome or any windows (keyboard or otherwise). The gTile screen is showing during this time with the desired tiles selected.

I do have a multi-monitor setup so this may be related to #47. Also, this may be related to #20 but I am not getting a crash.

Feature Request: Window Margins

I love this extension. It really improves my life.

What would be really cool is to have an option for window margins. When I was on the Mac using Divvy I could set a 10px margin around the windows so they were not so close to each other and the screen sides. I enjoyed the look since I have four large screens. It's also nice to actually see my background wallpaper. ;-)

Autotiling

The two Autotiling modes are half / half now.

I find 2/3 1/3 a more natural division. (On the width, not necessarily on height). One possibility (but maybe not the most intuïtive) would be to "choose" the division size on the selected tiling size.

2x2 would divide half/half in height and width
3x2 would divide 2/3;1/3 in width, and half/half in height
4x4 would do half/half again (or maybe half / half in width, 1/4 in height -- depending on how many windows should be tiled)
6x6 would divide 2/3;1/3 in width

Problem is that I don't see a general way to 'calculate' this on arbitrary (new) tiling sizes...

A bug (or an inconvenience)

Hi there,
In Gnome when workspace thumbnails is set to always visible gTile doesn't consider that.
When it is set to always visible the width of the workable are shrinks from right hand side.

I will try to edit the code for my own use but perhaps an easy solution could be to allow use to set an offset (from the right or left) in settings so user can set the workable area.
best,
ilker.

GNOME 3.24 Configuration dialog error

Setup is GNOME 3.24 Ubuntu 17.04.

When clicking on Configuration in GNOME Tweak Tool:

TypeError: redeclaration of formal parameter iter

Stack trace:
  Application<._getExtensionPrefsModule@resource:///org/gnome/shell/extensionPrefs/main.js:74:13
  wrapper@resource:///org/gnome/gjs/modules/lang.js:178:22
  Application<._selectExtension@resource:///org/gnome/shell/extensionPrefs/main.js:89:31
  wrapper@resource:///org/gnome/gjs/modules/lang.js:178:22
  Application<._onCommandLine@resource:///org/gnome/shell/extensionPrefs/main.js:243:17
  wrapper@resource:///org/gnome/gjs/modules/lang.js:178:22
  main@resource:///org/gnome/shell/extensionPrefs/main.js:399:5
  @<main>:1:49
  

Multiple panel icons

When I enable and disable app his icon remain on panel.
Each time app is enabled and disable a new icon remain on panel (sea image)

Beside this, short-cut does not work.
Uploading gtile-multi-icond.jpg . . .

Tiling below bottom panel

When using the Mint Bottom Panel Extension (from the webupd8team ppa), gTile will tile windows all the way to the base of the screen, ignoring the fact that the bottom panel is there. This means that parts of windows are covered up. Maximised windows do not go under/over the panel, so I assume the problem is using a wrong value to measure where the tiles should be, rather than the bottom panel not changing the apparent desktop size.

Resolution Change

gTile sets the resolution size according to the resoltion when it's enabled.

Eg: If I enable gTile while I'm at 1080p and then switch to 2160p to do work it will think of the desktop area as only 1080 and tile in the top left corner

As seen in this Screenshot my grid is set to 2x2

http://imgur.com/gallery/3TSF0Ld

No Tooltips on blue icons

I've been experimenting to figure out what the bottom 4 blue buttons mean and do.

So far I deduce that
1 - Autoclose after resize
2 - ?
3 - Set this window as the main left window
4 - Tile All Windows 3 rows 2 columns

It seems like these buttons are sort of unnecessary it would be nice to have on/off boolean and tooltips on hover if possible.

Doesn't work for all applications?

I am actually on Cinnamon. But I noticed gTile doesn't work on all applications? I tried on afew applications and found:

  • Working on Chromium (except popup windows), VLC, Nautilus
  • NOT Working on Xournal, LibreOffice

Sometimes slow on multi monitor setup

First off, I really like this gnome addon, it's the best tiling thing out there. But unfortunately, I see some issues using it on my multi monitor setup. I got a 19201080 Laptop internal display, a 25601440 DP and another 1920*1080 (vertically) as my third display. Sometimes, when I use gtile and move a window from desktop 3 to 1, my whole Gnome Desktop freezes for 2-30 seconds until the resize is done. I had no time yet to look into the code but just wanted to report that. Anyone else having similar issues? I am on Fedora 24 btw with Gnome 3.20.2 on an Intel® HD Graphics 5500 (Broadwell GT2) video card.

Lock screen

When locking and unlocking the screen, the gTile icon appears repeated, a new instance of gTile is open. On logout it happens too.

License

could you confirm if this is or is not a GPL extension so someone else can fork it? Thank you :)

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.