Review of "WinTile" version 1

Details Page Preview

WinTile is a hotkey driven window tiling system for GNOME that imitates the standard Win-Arrow keys of Windows 10, allowing you to maximize, maximize to sides, or 1/4 sized to corner across a single or multiple monitors using just Super+Arrow. As of v14, WinTile also supports: - 2-5 columns and 1-4 rows for standard or ultrawide monitors - Top/bottom half support - Mouse preview and snapping for placing windows - 'Maximize' mode, which adds/removes GNOME animations - 'Ultrawide-only' mode, to allow standard screens to have different cols/row than ultrawides - Portrait screens will automatically swap columns and rows - Add gaps around tiles to avoid the 'crowded elevator' feeling' - Ctrl+Super+Arrow to grow a tile in that direction if space is available - Ctrl+drag to drop a tile in a specific spot - Ctrl+Super+drag to draw a grid for the new tile

Extension Homepage
https://github.com/fmstrat/wintile

No comments.

FAQ

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

All Versions

Version Status
15 Active
14 Active
13 Active
12 Active
11 Rejected
10 Rejected
9 Rejected
8 Rejected
7 Active
6 Active
5 Active
4 Active
3 Inactive
2 Active
1 Rejected

Previous Reviews on this Version

andyholmes rejected
The general idea here looks okay, however you are not disconnecting any signals in the `disable()` hook that are connected in `enable()`. Unfortunately this is grounds for rejection; extensions must clean up after themselves in `disable()`. Additionally, it would be preferable to use GSettings directly, rather than shipping the external shell script `setHotkeys.sh`.
Fmstrat posted a review
Ahh, I used ShellTile as a basis, and there were no disconnects on the hotkeys for disable there either (I thought hotkey bindings we're disabled by default). I will have to find an example of that (None of the other extensions I look at seem to have an unbind) but I'm sure I'll find one. As for Gsettings, I didn't realize that was possible, so I will investigate that, too.
andyholmes posted a review
This is what I use in one of my extensions: https://github.com/andyholmes/gnome-shell-extension-gsconnect/blob/master/src/shell/keybindings.js You can copy/paste that file if you like. For GSettings you'd want to create a Gio.Settings object for each schema and use it something like so: let settings = new Gio.Settings({ schema_id: 'org.gnome.desktop.wm.keybindings' }); settings.set_strv('unmaximize', ['<Super>Down', '<Alt>F5']);
Fmstrat posted a review
Oh perfect, thanks for the help! I'll see if I can get this updated today.
Fmstrat posted a review
Ok, I've updated and you can see changes here: https://github.com/Fmstrat/wintile/commit/4488d9e97a6b761851f80928ab885f992121c2e0 However, I don't see a way to upload a new ZIP here?
andyholmes posted a review
Your revision looks good, with one exception. You should call `keybindingManager.destroy()` since that method also disconnects from `global.display`. So I'd do something like: let keyManager = null; function enable () { if (!keyManager) { keyManager = new Keybinding.Manager(); // setup stuff } } function disable () { if (keyManager) { keyManager.destroy(); keyManager = null; } } To push an updated extension, just increment "version" in metadata.json, then upload it like the first time using the "Add yours" link above ^
Fmstrat posted a review
Alright, v2 is up. Thanks!