Code Monkey home page Code Monkey logo

gnome-shell-extension-tilingnome's Introduction

gnome-shell-extension-tilingnome

Tiling window manager

Features

  • Horizontal, vertical, spiral layouts
  • Gaps
  • (Experimental) Multi-monitor

Installation

  1. Clone the project to the gnome-shell extension directory:
git clone --depth=1 https://github.com/rliang/gnome-shell-extension-tilingnome ~/.local/share/gnome-shell/extensions/[email protected]
  1. Reload GNOME Shell: Alt+F2 then r or log out and in;

  2. Enable the extension:

gnome-shell-extension-tool -e [email protected]

Usage

Most of your interactions with Tilingnome will be through the use of keyboard shortcuts. The available ones are listed below.

Tiles

Default keybinding Function Description
Super+x Toggle tile Toggle whether to tile the currently-focused window
Super+return Focus first tile Focus the first tile in the tile list
Super+j Focus next tile Focus the next tile in the tile list
Super+k Focus previous tile Focus the previous tile in the tile list
Shift+Super+return Swap first tile Swap currently-focused tile with the first tile
Shift+Super+j Swap next tile Swap currently-focused tile with the next tile
Shift+Super+k Swap prev tile Swap currently-focused tile with the previous tile

Layouts

Default keybinding Function Description
Super+z Switch next layout Switch to the next available layout
Shift+Super+z Switch previous layout Switch to the previous available layout

Settings

Default keybinding Function Description
Super+u Decrease split Decrease the split ratio by the split ratio step
Super+i* Increase split Increase the split ratio by the split ratio step
Shift+Super+u Decrease master count Decreate the master count by one
Shift+Super+i Increase master count Increase the master count by one

Recommended ~/.config/gtk-3.0/gtk.css

:not(tooltip) decoration, headerbar { border-radius: 0; box-shadow: none; }

Contributing

Pull requests welcome for features and fixes!

License

GPL2

gnome-shell-extension-tilingnome's People

Contributors

aral avatar jeffwindsor avatar rliang 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

Watchers

 avatar  avatar  avatar  avatar  avatar

gnome-shell-extension-tilingnome's Issues

not working on Gnome 3.20.4

cloning to the extensions folder in gnome, i get the extension
but i see no change in the animations, nor the tiling

Toggling Tiles Issue

I'm not sure if it's intended, but it's been a bit annoying switching between tiles and regular windowed modes if I have to individually toggle each window. It would be great if there was a universal 'toggle all' mode.

Great work so far, it's the best tiling manager I've used on Gnome yet. :)

Increase split vertically when in vertical layout

Is there a way to increase split vertically when there is a 1 | 2 split for the 2 windows? (Similar to using Super+l or Super+h but vertically)
I know you can do it when you change the layout type, but the vertical layout works for me better
Great extension btw! ๐Ÿ‘

Consider adding code

Hello! I found your extension and really like it. I modified your extension, fixed a minor issue with the layout and changed the way the layouts behave.

Tilingnome_custom

Would you consider adding this new behaviors to the currents layouts.

Cheers!
Luis Enrique.

Don't tile popup windows

This is a feature request.

Expected behavior

When a program opens a popup window for e.g. its options, the window should not be tiled.

Actual behavior

Every windows, no matter how small or what type, gets tiled.

Steps to reproduce the behavior

Open any application which has menu options in a separate window (e.g. Gnome tweaks -> Extensions' options)

(Recommended) GNOME version

3.32 (Fedora Silverblue 30)

Not compatible with gnome 40

Expected behavior

Working extension

Actual behavior

Does not work, even with version check disabled settings crash

Steps to reproduce the behavior

Just enable the extension

(Recommended) GNOME version

40

(Recommended) Relevant info in journalctl /usr/bin/gnome-shell

Deprecated - gnome-shell-extension-tool

When I try to install following github instruction I get the message:

gnome-shell-extension-tool is deprecated, use gnome-extensions instead

I think you need to change your instructions a little.

Thanks.

Path for Tweener changed

Expected behavior

Extension starts up.

Actual behavior

Extension throws an error "No JS module 'Tweener' found in search path".

Steps to reproduce the behavior

This came with a pretty big update for Manjaro and Gnome, but I didn't track down the package that broke it.

(Recommended) GNOME version

3.38.1-1

The issue seems to be because of the path change for Tweener. It is no longer 'imports.ui.tweener' but rather 'imports.tweener.tweener'. Tried changing that import line on my system and the extension works as expected.

Tile settings lost after locking and unlocking screen

Expected behavior

Window tiled state is remembered between the screen being locked and unlocked

Actual behavior

All windows become untiled (I have to manually trigger "Toggle Tile" on all my tiled windows after unlocking the screen)

Steps to reproduce the behavior

  1. Set "Auto Tile Window Types" to []
  2. Open 3 windows
  3. Tile them all using Super+X on all of them.
  4. Lock the screen
  5. Unlock the screen
  6. Try using any of the tiling window shortcuts (Super+Shift+Return for instance) -- none of them work because windows are no longer considered "tiled"
  7. Repeat step 3 to restore their tiled state

I suspect the issue is that gnome-shell unloads all extensions when the screen is locked, and loads them again after the screen is unlocked. Some method of storing the window tiled state in the running gnome-shell process between reloads is necessary.

(Recommended) GNOME version

3.34.1

General inquiry

I'm just confused a bit....what exactly is the Master Count?

And one more question. How do I change the vertical split of two windows in a horisontal layout?
...or the horisontal split in a vertical layout
Screenshot from 2019-05-31 09-40-08

So to reference the screenshot from above, how do I make the browser window taller?

Re-add support for Gnome 3.28

Hey, I see you've dropped support for Gnome versions before 3.30; I get you don't want to support too many versions, but could you consider adding support back for Gnome 3.28? I use this extension on systems that have Ubuntu 18.04 LTS, and 3.28 is the only version of Gnome available. Ubuntu 18.04 (with the default Gnome desktop) is going to be around a while, it would be a pity if none of them could use up to date versions of this extension!

As a note to anyone still stuck on 3.28, the last working commit, as far as I can tell, is d767cfe

Restore original position and size of windows when untiling

Expected behavior

When untiling a window, it returns to its original position and size prior to tiling it.

Actual behavior

No visible change happens in the window being untiled.

Steps to reproduce the behavior

  1. Create a new window
  2. Tile it, and observe it fitting into the tiled layout
  3. Untile it
  4. Observe that the window doesn't return to the position and size it was before step 2.

(Recommended) GNOME version

3.30.2

TypeError: global.screen is undefined.

Expected behavior

Installation doesn't cause an error.

Actual behavior

Installation has an error. No Extension functionality is present.

Steps to reproduce the behavior

Install the extension on Fedora 30

(Recommended) GNOME version

3.32.2

Release 2.fc30.

(Recommended) Relevant info in journalctl /usr/bin/gnome-shell

journalctl /usr/bin/gnome-shell -f -o cat >

Archive:  /tmp/BGNU4Z.shell-extension.zip
  inflating: /home/gmcquillan/.local/share/gnome-shell/extensions/[email protected]/prefs.js
  inflating: /home/gmcquillan/.local/share/gnome-shell/extensions/[email protected]/extension.js
  inflating: /home/gmcquillan/.local/share/gnome-shell/extensions/[email protected]/gschemas.compiled
  inflating: /home/gmcquillan/.local/share/gnome-shell/extensions/[email protected]/layouts.js
  inflating: /home/gmcquillan/.local/share/gnome-shell/extensions/[email protected]/schema.gschema.xml
 extracting: /home/gmcquillan/.local/share/gnome-shell/extensions/[email protected]/metadata.json
Extension "[email protected]" had error: TypeError: global.screen is undefined

Internal error: Too much recursion causing window splitting issues

Expected behavior

  • Extension activates without any errors.
  • Windows split automatically when new windows are added to a layout

Actual behavior

  • Error warning in gnome tweaks and looking glass (Internal error: Too much recursion)

  • When spawning a new window, pre-existing windows will split normally but the newly added window will occupy a space smaller than its natural split (about a quarter), leaving empty room

  • After resizing the split, the new window snaps into place and acts naturally

  • Sometimes new windows are spawned without any issues, no apparent pattern

  • The error persists even after disabling all other extensions

  • Uninstalling and reinstalling solved the issue but it occurs again seemingly at random a few days later

GNOME version

3.34.2

(Recommended) Relevant info in journalctl /usr/bin/gnome-shell

Surface Pro 4 with patched kernel

sudo journalctl /usr/bin/gnome-shell > tilingnome-error.txt:

tilingnome-error.txt

Stopped working on Gnome 3.30

First of all thanks for this extension!

But sadly once the update went through to Gnome 3.30 the extension installs and then just has an "undefined" error message next to it, not working at all.

GNOME version: 3.30

Handle a layout per workspace.

Expected behavior

It would be nice to have a specific layout (different) per workspace.

Actual behavior

All workspaces share the same layout. If you change the layout on one workspace, all other workspaces also change their layout.

How to unistall/remove ?

Expected behavior

Be able to tile the windows as per choice

Actual behavior

System crash and windows start to flicker with no control at all

Steps to reproduce the behavior

Can't specify, it started just after entering the activation line

(Recommended) GNOME version

Cannot even open terminal

(Recommended) Relevant info in journalctl /usr/bin/gnome-shell

independent monitor behavior

Expected behavior

Switching layouts and swapping windows affects only the monitor with the currently selected window. The window layout and positions of other monitors remain unchanged.

Actual behavior

Switching layouts and swapping windows acts as a global action, affecting every monitor.

Steps to reproduce the behavior

Put some windows on two monitors. Press super+z to change layout or super+return to switch current window with master window.

(Recommended) GNOME version

Gnome 3.28, x11, arch linux, x86-64

(Recommended) Relevant info in journalctl /usr/bin/gnome-shell

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.