GithubHelp home page GithubHelp logo

exquisite's Issues

[0.5 Release] Requested and Indev Features

  • Wayland compatibility for all features
  • Open Exquisite under mouse cursor
    • Only works with Plasma version above 5.27.5 since the necessary API didn't exist in older versions
  • Show active window icon and title in Exquisite header
  • Close Exquisite with ESC
  • Assign keys to layout windows
  • Built-in window padding/gaps preference
  • Multi Monitor support
    • I can implement this but I don't have multiple monitors so it'll be difficult to test

Related issues:
#11
#17
#29
#33

shortcut key

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

[Feature Request] Option to hide titlebar when tiled

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:

image

Buttons are not pixel-perfect

The buttons shown are a little fuzzy. I haven't looked at the code, but I usually encounter this problem when I'm not rounding the sizes of elements.

You can see that the bottom button is blurry at the top and bottom:
image
The theme in use is Desert-Plasma by l4k1.

Auto tile bug

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

feature request: rename rowspan and columnspan to width and height

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.

Need a better general description for non-Windows people

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.

A few feature requests/ideas: show pop up under mouse.

I just moved to Debian + KDE Plasma as my daily driver -- from Windows 10.

I came across Exquisite and I love it. It is exquisite.

I had a feature idea I wanted to share.

I think it would be swell if pop up window show under/near the mouse. This would help with super ultrawide monitors.

bug: enabling the Exquisite plugin makes the system "hang" for 30+ seconds during shutdown

I was noticing my system would take 30+ seconds to reboot. It would get stuck on one part but I couldn't figure out where.

So I did a fresh/clean new install of Debian Bookworm testing (RC3) with KDE Plasma. The reboots were fast/normal, as expected.

The first and only thing I did was install Exquisite from system settings Get New Scripts.

If the script is enabled, the system gets "hung" for 30+ seconds during reboot before it finally reboots. I can't tell what it is hung/stuck on.

If I disable Exquisite, then the reboot time is normal/fast.

I tested other KWin scripts, and none of them have an issue. So it must be something to do with Exquisite but I can't figure out what.

I'm happy to help debug if it'll help.

Integration of built-in tiling in plasma 5.27

I love the handling of tiling so "manual" compared to many of the scripts available for kWin (to me Polonium for example often goes awry using a 16:10 notebook with a 21:9 external screen), and the tiling functionality present since the 5.27 release of plasma is fantastic... and Exquisite seems born to integrate with it: one could keep a basic layout and then modify it on the fly with the tiling of plasma 5.27, perhaps saving with Exquisite a layout obtained

keyboard activator for zone when Exquisite is active

As mentioned in #30, I created a Windows clone of Exquisite.

One feature I added in the Windows version is that when the GUI is active, you can quickly select a zone with a keyboard key press.

I think it would be wicked to add this to Exquisite.

Option to open Exquisite using only the mouse

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

help creating a custom grid

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)

Here's what that creates:
strange

[Suggestion/Feat Request] Drag and drop

Hello, thanks for your project, I appreciate it a lot. I was wondering if we could have a drag-and-drop feature, like drag a window inside a tile and have it moved to that position. It would make it a lot easier to use the program :)

Plasma 6 Support

Does this work on Plasma 6? Should I hold off on updating Plasma?

Gaps

It would be great to have the option to configure gap size around windows, where 0 could be the default value

Was the autotile feature removed?

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.

feature idea: being able to select multiple windows to resize a window to cover all the selected windows

When you open Exquisite, it shows you all the layouts and windows in each layout.

It would be cool if you could select multiple windows in a layout to resize a window to cover all the selected windows.

Using my layouts as an example:

image

The 4th one is a 4x4 grid. If I could select the windows starting from 2x2 to 3x3, then Exquisite would resize the window accordingly.

Or, the 2nd one is a 1:2:1 layout. If I could select the 2nd and 3rd column, the window would size to cover both of those.

This could be done by either SHIFT clicking or click + dragging the mouse.

The beauty of this is, we could create a few grid layouts like 4x4, 6x4, 8x4, etc... and then use this feature to dynamically size windows as you need when you need.

Issue loading script on ubuntu 20.04

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?

i couldn't download it

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.

weird behavior on 2+ monitors

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?

[Feature request] Shortcuts bound to "window positions"

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".

[Suggestion] Add 1:2:1 layout for Ultrawide monitors

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.

[Suggestion/Feat Request] Select different them

I want to select the opposite theme of my current them

i.e. I want light theme for exquisite window while working with dark theme and I cannot see the windows tiling shown in exquisite.

Current Problem :
Screenshot_20231018_171253
Just some modification in the config can do this but I don't know how to change it.
Please suggest how I should make it.

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.