Big Screen

Kwin Scripts

Source i (link to git-repo or to original if based on someone elses unmodified work):

Add the source-code for this project on opencode.net

1
Become a Fan
6.1

Description:
Feeling insufficient?
If you install this, your Pen... errrr... Screen will become very large.


It sort of implements the NETWM Large Desktop concept as exists in eg. fvwm.

The active screen edges trigger a shift of "normal" windows, similar to "xrandr --panning", but the desktop etc. stay in place (and the "size" is not limited by the GPU when compositing)

The shift is by default 50% of the smallest screen width/height, ie. eg. the upper half becomes the lower half and the lower half drops out of the screen. This can easily be changed in the script source.

It's also different from the stacked virtual desktops as implemented in KWin in that you can make windows randomly large and shift the viewport (windows lap over to the next "notvirtualdesktop")

--- TODO:
- handle activities
- make a config GUI?

--- Comments:
"I installed this and my P... Screen grew HUUGE and now I can please all the gir... windows and no longer feel insufficient!"
-- Anonymous User

--- Disclaimer:
Any other growth is not guaranteed.
Other things might actually shrink - and I deny responsibility for such!
=)
Last changelog:

1.3
-----
* added option to align to the panning grid (affects window activation)

1.2
----
* only move currentTab (ie. a tabgroup once instead of n times)

1.1
------------
* added shortcuts
* added config GUI (script needs to be reloaded to update config!)
* allow to only use vertical or horizontal edges or neither


Ratings & Comments

27 Comments

mgarzelli

Hi, I downloaded it and I enabled it, but I have no clue how to make it work, is there something else I have to do? thanks

mgarzelli

let me reiterate, I have found the shortcut keys, but they do not work when I use them, nothing happens. I have updated to the LATEST of kde Operating System: Ubuntu 21.10 KDE Plasma Version: 5.24.1 KDE Frameworks Version: 5.91.0 Qt Version: 5.15.2 Kernel Version: 5.13.0-28-generic (64-bit) Graphics Platform: X11 Any help would be appreciated thanks

Warmuser

It works perfectly on the latest KDE neon version, so I would like to ask you If you are interested to update these script with some enhancements like the possibility to move the desktop by dragging a window next the monitor borders and also to fix the KDE menu popups that start to floating when I move around the desktop. I think you could renew these script and make it really really great. This is one of the things that I was needing on Windows (there is nothing like these script for it) and make me loving much more GNU/Linux.

Warmuser

Now on Fedora 28 I encountered some problems, Kwin crashes almost constantly. Can you fix it? Please, keep alive these project!

thomas12777

Sorry, I stopped using KDE about three years ago :-(

herrbatka

hi, does this work with plasma 5?

thomas12777

Supposingly. The script API didn't change, but I didn't actually test the script.

herrbatka

Yes it works fine (besides config UI). BTW, this works: var isOnCurrentActivity = function(client) { for (var i = 0; i < client.activities.length; ++i) { if (client.activities[i] === workspace.currentActivity) { return true; } } return false; }

herrbatka

Hi, I was getting annoyed by the center on screen and how it was messing my layout so I improved it a bit: var centerActive = function(client) { if (!client || client.desktopWindow || client.dock) return; if (client.x + client.width < 1 || client.x > workspace.displayWidth || client.y + client.height < 1 || client.y > workspace.displayHeight) { var area = workspace.clientArea(KWin.ScreenArea, workspace.activeScreen, 0); var dx = area.x + (area.width - client.width)/2 - client.x; var dy = area.y + (area.height - client.height)/2 - client.y; var tx = Math.round(dx / shiftX()); var ty = Math.round(dy / shiftY()); translateClients(tx*shiftX(), ty*shiftY()); } }

thomas12777

Thanks for sharing the idea. If you look at the code, I altered it a bit, as it's legit to re-use vars and otoh shiftX/Y() should be cached (though it's not a hot path ;-)

herrbatka

thanks, i don't know java script.

herrbatka

I found one small problem related to the script: it treats window groups like a individual windows, so for instance group of two windows is moved twice by the 50% (100% total) instead of being moved only once by the 50%.

thomas12777

Thanks for the notice - should be fixed with latest update.

herrbatka

wow, that was fast! I didn't expect you to fix it just for me :D Thanks. Tabbing feature introduces extra cases almost everywhere but I really like it.

herrbatka

I'm wonder if it would be possible to add option to have keybind for scrolling desktop. For instance meta. Screen would be scrolled only if you are holding meta pressed.

thomas12777

No. It would be possible to add global shortcuts (so that you scroll without the mouse but by pressing a shortcut), but invocation of a modifier would require changes to the KWin core (what's probably not in the cards for KDE SC4)

herrbatka

I think that I would prefer global shortcuts over current behavior. A lot of mouse travel and accidental edge hits are not very helpfull at all.

herrbatka

Thanks. It seems that configuration button is missing, but shortcuts works well and I disabled electric border in the code. Now I'm happy. :)

thomas12777

How did you install the effect? If installed with plasmapkg, scripts require a "-t kwinscript") to resolve this correctly. No idea whether i miss some metainfo or plasmapkg simply always requires this. No idea about GHNS plasmapkg -t kwinscript -u bigScreen.kwinscript

herrbatka

I used GHNS. And there is no button, as I said.

thomas12777

Ahhh, that's stupid. Plasma/GHNS will install the script into the "wrong" location (it's detected, but config stuff won't work) unless the metadata say it's "kwinscript", but if they do, kwin won't load the script (expects "javascript") -> kwin bug, it seems (should look for kwinscript, not javascritp) For proper installation, uninstall the script, download the file and install it as plasmapkg -u bigScreen.kwinscript -t kwinscript

herrbatka

yup, you are right. BTW: This script is extreamly useful. I used to like this behavior long time ago, during fvwm days. It's nice to see this in KDE with the help of just few lines of code :-)

herrbatka

One more thing: how this works? I used to think it basicly moves windows, but this appears to be more complex thing.

thomas12777

No, it actually just moves windows around. There's some multiscreen handling code and exclusion of windows on other virtual desktops (and yakuake), but that's more or less it. And it of course centers a window out of sight on activation (by moving all windows accordingly)

herrbatka

Ok, congrats. This is impressive hack :D But I find it actually usefull, good job.

Pling
0 Affiliates
Details
license
version 1.3
updated
added
downloads 24h 0
mediaviews 24h 0
pageviews 24h 2

More Kwin Scripts from thomas12777:

GameMode
thomas12777
last update date: 10 years ago

Score 6.1

Spam Transients
thomas12777
last update date: 10 years ago

Score 5.0

Screen Snapping
thomas12777
last update date: 11 years ago

Score 5.7

Steady Screen
thomas12777
last update date: 11 years ago

Score 6.0

Debug Clients
thomas12777
last update date: 11 years ago

Score 5.0

Unminimize windows w/o taskbar entry
thomas12777
last update date: 11 years ago

Score 5.0

Other Kwin Scripts:

MiniStack
faho
last update date: 11 years ago

Score 5.0

TIL3R
causa-prima
last update date: 11 years ago

Score 5.7

True Video Wall
zezinho
last update date: 10 years ago

Score 5.0

eQui-binds
enno
last update date: 9 years ago

Score 5.0

Demands Attention Only on Current Deskto
mgraesslin
last update date: 12 years ago

Score 5.8

Opacity Menu
mgraesslin
last update date: 12 years ago

Score 6.1



System Tags