GithubHelp home page GithubHelp logo

exquisite's Introduction

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

ko-fi

exquisite's People

Contributors

emvaized avatar nclarius avatar qewer33 avatar zetaphor 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  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

exquisite's Issues

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

Gaps

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

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

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.

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

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?

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

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.

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.

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.

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.

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

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?

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.