Grid-Tiling

Kwin Scripts

Source (required if based on other people's work): https://github.com/lingtjien/Grid-Tiling-Kwin

3
Score 57%
Description:

See GitHub for info

## Functionality
- automatically tile clients, up to any grid size of clients per (internal) virtual desktop, new clients are first attempted to be added to your current desktop, to the column with the least number of clients.
- the size of the grid (row & column) is supplied in the UI per screen and separated by a command (first element in row & column are for your first screen and so forth...)
- you can supply different grid sizes per screen if you have multiple screens
- if you do not supply a grid size for your additional screen(s) then it will default to the grid size of the first screen
- restriction of minimum space a client can occupy on a virtual desktop, as in the amount of clients this client can share a virtual desktop with
- the minimum is defined by an **integral number** larger or equal to `1`
- defaults to the maximum which is the number of rows multiplied by columns
- a size of `1` is the largest which means that it can only ever exist alone on a virtual desktop, size of `2` means that it can exist with one other client together on a virtual desktop and so forth...
- set margins as defined by `topMargin` `bottomMargin` `leftMargin` `rightMargin`
- set the gap size as defined by `gap`
- set the opacity as defined by `opacity`
- set default opacity toggle `noOpacity`
- set default borders toggle `noBorders`
- toggle between bordered clients (global shortcut: `Grid-Tiling: Toggle Borders`)
- toggle between opaque clients (global shortcut: `Grid-Tiling: Toggle Opacity`)
- switch clients within a virtual desktop both by dragging them outside the `moveThreshold` by mouse and global shortcuts
- move clients between virtual desktops (global shortcut: `Grid-Tiling: Move *Left/Up/Down/Right* Desktop`)
- close all clients on the current virtual desktop (global shortcut: `Grid-Tiling: Close Desktop`)
- dynamically resize clients both by dragging them by mouse and global shortcuts up to a minimum as defined by `dividerBounds`
- maximize client (with gaps) by global shortcut
- add clients to ignored lists (clients, captions) defined by `ignoredClients` and `ignoredCaptions`
- also works for applications which enforce their own geometry on startup (most of the time)

*Note: ignored clients does not have to be an exact match, whereas ignored captions do.*

*Note: internal virtual desktops are defined inside the script and are not the same as the actual virtual desktop. If you fill all your virtual desktops and create a new client than a new layer will be made, which contains a virtual desktop which is different from the one in the layer underneath it.*

DanitiKain

2 months ago

Umm what happened to this script? It is no longer available for download.

Report

C

lingtjien

2 months ago

You could download it here? As far as I know, I only put some basic info here and a link to my GitHub where you'll find the installation instructions

Report

DanitiKain

2 months ago

Yes it used to be available to download here as far as I remember. Maybe I am incorrect int that.

Report

DanitiKain

3 months ago

wine, overwatch, kcalc, flameshot, yakuake, systemsettings5, screenkey, vokoscreen, albert, kazam, krunner, ksmserver, lattedock, pinentry, Plasma, plasma, plasma-desktop, plasmashell, plugin-container, simplescreenrecorder

This is a good list of ignored clients. It also make sure that things like adding applets to panels still works.

Report

C

lingtjien

3 months ago

I wanted to keep the default list as small as possible, not everyone will have yakuake installed for example, the current default list with clients that are always ignored are "ksmserver, krunner, lattedock, Plasma, plasma, plasma-desktop, plasmashell, plugin-container". The UI allows you to add more applications to be ignored if the user has more installed than the bare minimum that comes with a plasma installation.

Report

DanitiKain

3 months ago

I got these from another kwin script and they really seemed to help make the adding applets that pops out from the left work correctly. That is a good question since I basically copied this from another script how do I really tell the name of what I want to ignore. So in this case it would be when I right click on the panel, then panel options and click add widget. The window that pops out on the left side of the screen for all the widgets how would I even tell what the name of that app is so I can intelligently ignore it rather than just copy a bunch of stuff that may not be needed.

Report

C

lingtjien

3 months ago

I wrote a small KWin script to check client names of applications but I'm sure there is a more user-friendly way to find out the client name of an application, sadly I don't know of any but I'm sure someone on the KDE forums or Reddit can help you with that. (You'll also notice that some applications have very inconsistent client names, for example the client name of gimp is gimp2.10 for example and thus has the version name in it, while normally most applications only have the actual name of the application.)

Report

DanitiKain

3 months ago

My only thought is maybe like quarter tiling you need an option to send to another desktop with shortcut key in the application.

Report

C

lingtjien

3 months ago

this is the global shortcut that you're looking for: Grid-Tiling: Move *Left/Up/Down/Right* Desktop

Desktop numbers are currently not supported yet, only directional

Report

DanitiKain

3 months ago

Yeah I found kwin rules and needed the border toggle option to learn that only problem I am having now is that windows shift back to a desktop for some reason. I will share a video of what is happening https://streamable.com/ah1ur

Report

C

lingtjien

3 months ago

That is because at the moment moving clients from one virtual desktop to the other is only supported through the 'Grid-Tiling' global shortcuts. In other words, the default KWin buttons to move clients from one virtual desktop to another are not supported. In the future I plan to let the script support the default KWin shortcuts to move clients between virtual dekstops but currently I'm a bit busy. This ticket describes what you observe https://github.com/lingtjien/Grid-Tiling-Kwin/issues/10

Report

C

lingtjien

3 months ago

Glad you found the shortcut :) I don't understand what you mean by "when this is off the windows don't stack" and regarding your devilspie comment, I've never used i3wm or devilspie but from a quick google I believe KWin rules are what you're after if you want the KDE equivalent of devilspie but I may be wrong.

Report

DanitiKain

3 months ago

Nevermind on the border piece I just found the option in Global Shortcuts. Forgive me I am just getting use to kde and all the different places to configure things.

Report

DanitiKain

3 months ago

Also is there a way to force borders on temporarily. This is only needed for when I need to configure the application to do a certain action via kwin window rules. Its easier to already have the application running to configure it rather than figuring everything out from scratch. I see there is a no border option in the config which works. However when this is off the windows don't stack as they are configure to this option has to be on for some reason for everything to work right.

Report

DanitiKain

3 months ago

Can you add the ability to open certain programs in certain windows like devilspie. This i3wm allows this functionality as well.

Report

doctorx32

4 months ago

+

Report

L0sted

4 months ago

+

Report

product-maker doctorx32 Jul 09 2018

+

product-maker L0sted Jun 29 2018

+
Pling
Details
license
version
updated Nov 28 2017
added Nov 10 2017
downloads today
0
page views today 10
System Tags linux unix