Student, programmer, designer, game developer, Linux and free (as in freedom) software enthusiast. I mostly makes apps, themes and extensions for KDE Plasma.
My Website: https://qewer.dev
Easy window layout management for KDE Plasma
License: GNU General Public License v3.0
Student, programmer, designer, game developer, Linux and free (as in freedom) software enthusiast. I mostly makes apps, themes and extensions for KDE Plasma.
My Website: https://qewer.dev
It would be awesome if we could customize layouts to have a shortcut option bound to a window position, so we can quickly arrange windows.
If it is possible to have this in the layout config files that seem optimal in my mind, as we could then have default or custom layouts be "shortcutable".
It would be great to have the option to configure gap size around windows, where 0 could be the default value
I use a super-ultrawide monitor and I have a 3 column layout that I use daily, which looks like:
25% of screen width | 50% of screen width | 25% of screen width
On a super ultrawide (5120x1440), the aspect ratio for each window looks like this:
8:9 | 16:9 | 8:9
I would love for this layout to be added, since it's the one I use the most, I'm fine with it being an optional toggle in the settings.
I'm willing to do some testing if necessary.
Thanks in advance!
EDIT: I am aware you can create custom layouts, but I feel that this one would be important enough to warrant being included by default.
The installation of /tmp/rgEEjq-exquisite.kwinscript failed because the downloaded package does not contain any useful metadata information, which means that it is not a valid "KPackage" object.
I like this widget Please add the ESC key after I activate the window, so that I can exit the window without clicking X to close, thank you
Hi, I've been using this on my devices for a while, and it's pretty cool. But on my older 768p laptop and secondary monitor, the titlebar takes so much space -- that's why I have hide titles kwin script installed and use global menu on top panel a la Unity.
It is possible to use Alt + F3 or a shortcut to manually enable the No Border option before using Exquisite to get the window to be tiled correctly without border, but it means that when you move it (say, with Meta + Left-Click shortcut) it will still have no border unlike hide titles which automatically restores the border when you exit maximized state or manually moved the window. And if you only enable No Border after tiling with Exquisite, the window get re-positioned incorrectly.
Is it possible to add a toggle that, when ticked, make sure that windows tiled with Exquisite will hide the window's titlebar? Maybe something based on the hide titles kwin script, since hide titles' behavior works very nice and seamlessly.
Thanks for your time regardless.
Edit: Something like:
Exquisite works great on a single monitorr but when I tried on 2 monitors it didn't work as expected (windows moved to the other monitor, also size and location were not reliable). Could you please check?
Hi,
It's working great with defaults but I can't seem to create a 2x3 grid layout. It renders it with gaps between windows and runs off screen (the preview accurately shows the result). Also, after editing my custom layout file, the Exquisite preview doesn't update to reflect the changes... that might be a separate issue.
Here's my attempted layout:
import QtQuick 2.6
Item {
property string name: "2 x 3"
property var windows: [
{
row: 0,
rowSpan: 4,
column: 0,
columnSpan: 6
},
{
row: 0,
rowSpan: 4,
column: 4,
columnSpan: 6
},
{
row: 0,
rowSpan: 4,
column: 8,
columnSpan: 6
},
{
row: 6,
rowSpan: 4,
column: 0,
columnSpan: 6
},
{
row: 6,
rowSpan: 4,
column: 4,
columnSpan: 6
},
{
row: 6,
rowSpan: 4,
column: 8,
columnSpan: 6
}
]
}
![strange](https://user-images.githubusercontent.com/2851379/179167173-1e42e772-dfe4-4707-8fb4-e1af21108991.png)
As someone who has never used Windows 11 (or 10, 8, 7 or Vista), this description is meaningless to me:
a KWin script that brings Windows 11 like window tiling to KDE Plasma
The rest of the readme talks about configuring the script, but not about what it can do for me. How would you market the "Windows 11 like" feature that Exquisite offers to someone like me?
btw - I also have not used a Mac. I've only used Linux since about 2008.
I don't know if it's possible with Kwin, but it seems to me that it could be useful to keep windows consistent when using Exquisite, which follows the pattern of opening as it used to or wherever
Thanks for doing this Exquisite script!
Hi! I remember a feature in old versions where you can click the background to automatically tile the windows, but now it was replaced by maximize when clicking the background. It was removed? I really liked that feature.
Auto tile available windows when the background button of a layout is clicked
I see a very weird issue, when I do that kwin switches from one activity to another
It took me a while to bend my head around the default naming and took a lot more time guessing and what I needed to do, until I read the note about these referring to width and height.
Linguistically, when I read "rowSpan" I think of the number of rows it will span, in other words, height. Similarly, "columnSpan" suggests width to me.
"Width" and "height" are very clear, and translate across languages much better too.
Exquisite seems to be a lot of mouse-oriented utility, so I think it should provide a simple way to launch it using only the mouse.
Maybe some sort of system tray applet would be enough, which will launch it using dbus.
If there already is such a way, README should mention it.
Thanks
I installed exquisite via the kde store, but I got no new shortcut configs and can not activate it with the default key mentioned in this repos README.
After a bit of searching I found how I could "debug" the issue and gathered these logs:
$ export QT_LOGGING_RULES='js=true; kwin_scripting=true'
$ kwin_x11 --replace &
[1] 173754
kwin_scripting: Component failed to load: (file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml:3:1: module "Qt.labs.folderlistmodel" version 2.15 is not installed
import Qt.labs.folderlistmodel 2.15
^)
I am on ubuntu (popos) 20.04 and I assume this is the relevant package?
Package: qml-module-qt-labs-folderlistmodel
Version: 5.12.8-0ubuntu1
It seems my package might not have a new enough version of this module for your kwin script:
sed -n '/exports/,/]/p' /usr/lib/x86_64-linux-gnu/qt5/qml/Qt/labs/folderlistmodel/plugins.qmltypes
exports: [
"Qt.labs.folderlistmodel/FolderListModel 1.0",
"Qt.labs.folderlistmodel/FolderListModel 2.0",
"Qt.labs.folderlistmodel/FolderListModel 2.1",
"Qt.labs.folderlistmodel/FolderListModel 2.11",
"Qt.labs.folderlistmodel/FolderListModel 2.12",
"Qt.labs.folderlistmodel/FolderListModel 2.2"
]
When I changed the line mentioned in the error above to use version 2.12 instead og 2.15 I got this error instead:
kwin_scripting: Component failed to load: (file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml:84:17: Type WindowLayout unavailable
WindowLayout {
^, file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/lib/WindowLayout.qml:4:1: module "Qt.labs.folderlistmodel" version 2.15 is not installed
import Qt.labs.folderlistmodel 2.15
^)
Then I changed the line referenced above to 2.12 as-well and got this:
Could not create scene graph context for backend 'opengl' - check that plugins are installed correctly in /usr/lib/x86_64-linux-gnu/qt5/plugins
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/lib/WindowLayout.qml:33: TypeError: Cannot read property 'length' of undefined
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml:92: TypeError: Cannot read property 'windows' of null
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml:89: ReferenceError: fileUrl is not defined
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/lib/WindowLayout.qml:33: TypeError: Cannot read property 'length' of undefined
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml:92: TypeError: Cannot read property 'windows' of null
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml:89: ReferenceError: fileUrl is not defined
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/lib/WindowLayout.qml:33: TypeError: Cannot read property 'length' of undefined
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml:92: TypeError: Cannot read property 'windows' of null
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml:89: ReferenceError: fileUrl is not defined
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/lib/WindowLayout.qml:33: TypeError: Type error
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml:92: TypeError: Type error
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml: ReferenceError: fileUrl is not defined
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/lib/WindowLayout.qml:33: TypeError: Type error
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml:92: TypeError: Type error
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml: ReferenceError: fileUrl is not defined
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/lib/WindowLayout.qml:33: TypeError: Type error
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml:92: TypeError: Type error
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml: ReferenceError: fileUrl is not defined
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/lib/WindowLayout.qml:33: TypeError: Type error
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml:92: TypeError: Type error
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml: ReferenceError: fileUrl is not defined
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/lib/WindowLayout.qml:33: TypeError: Type error
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml:92: TypeError: Type error
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml: ReferenceError: fileUrl is not defined
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/lib/WindowLayout.qml:33: TypeError: Type error
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml:92: TypeError: Type error
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml: ReferenceError: fileUrl is not defined
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/lib/WindowLayout.qml:33: TypeError: Type error
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml:92: TypeError: Type error
file:///home/thomas/.local/share/kwin/scripts/exquisite/contents/ui/main.qml: ReferenceError: fileUrl is not defined
Now I get a tiny little window when I use the default hotkey combo with the name Exquisite name on it, and I am not sure but I think there are some button there, but they are so tiny I don't know if I am hitting them, but seems one of them at least maximizes the window, but it is hard to say for sure.
Is there anything to be done about this, or am I simply out of luck with my older version of the qt package?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.