Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[0.5 Release] Requested and Indev Features #34

Closed
7 tasks done
qewer33 opened this issue Jan 23, 2024 · 61 comments
Closed
7 tasks done

[0.5 Release] Requested and Indev Features #34

qewer33 opened this issue Jan 23, 2024 · 61 comments

Comments

@qewer33
Copy link
Owner

qewer33 commented Jan 23, 2024

  • 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

@qewer33
Copy link
Owner Author

qewer33 commented Jan 23, 2024

@imthenachoman feel free to comment here!

@qewer33
Copy link
Owner Author

qewer33 commented Jan 23, 2024

Preview of entries 2 and 3:

vokoscreenNG-2024-01-23_17-48-46.webm

@qewer33 qewer33 pinned this issue Jan 23, 2024
@imthenachoman
Copy link

I freaking love this. Thank you!

@qewer33
Copy link
Owner Author

qewer33 commented Jan 25, 2024

Window tile shortcuts preview

vokoscreenNG-2024-01-25_16-22-42.webm

@imthenachoman
Copy link

imthenachoman commented Jan 25, 2024

This looks great!

Do the shortcuts only work when Exquisite is active? Meaning if the shortcuts are also used in other apps, it won't be an issue, right?

And can the shortcuts be anything like a letter, number, a combination?

@qewer33
Copy link
Owner Author

qewer33 commented Jan 25, 2024

The shortcuts only work when Exquisite is active, so you have to activate Exquisite first and then use the shortcuts. This is a limitation of KWin, the API doesn't allow for custom global shortcuts sadly. But it shouldn't be too big of an issue if you bind Exquisite to something easy to reach (say Shift+A), that way you can quickly toggle Exquisite, select windows, press a few tile shortcuts and ESC out. Certainly a bit more cumbersome than just pressing the shortcuts directly though, yeah.

Shortcuts (for now) can have one modifier (Ctrl, Shift, Alt, Meta) or none and can have one key (any keyboard key defined by Qt). I can implement modifier and key combinations if you want.

@imthenachoman
Copy link

The shortcuts only work when Exquisite is active

Awesome!

Shortcuts (for now) can have one modifier (Ctrl, Shift, Alt, Meta) or none and can have one key (any keyboard key defined by Qt). I can implement modifier and key combinations if you want.

Awesome. That works. I like the idea of a single letter so it's easy and fast. Open Exquisite, press a keyboard letter, and done.

@qewer33
Copy link
Owner Author

qewer33 commented Jan 27, 2024

@imthenachoman I will do a final release next week but if you want to test the requested features early you can install https://github.com/qewer33/Exquisite/raw/main/exquisite.kwinscript and run kpackagetool5 -u exquisite.kwinscript.

@zelch
Copy link

zelch commented Feb 2, 2024

@qewer33 I would be happy to do any testing you wanted on multi-monitor support.

Though, I do have to say, working on kwin scripts is rapidly convincing me to spin up a VM.

@Tellinq
Copy link

Tellinq commented Feb 7, 2024

I'm also willing to help test out multi monitor support if you ever need it!

@zelch
Copy link

zelch commented Feb 7, 2024

I may have a PR that addresses this in a few days.

It's mostly written, and it has been tested a bit, but it needs more testing and another look through while I commit the pieces, and I have a few distractions at the moment.

(It's actually about an entirely unrelated feature, but one that really breaks with multiple monitors. I think I ended up fixing a few different things once I got a VM setup for at least the single monitor use cases.)

@zelch
Copy link

zelch commented Feb 11, 2024

#35 addresses the multiple monitors case, along with several other items which I needed to make my setup more 'me' friendly.

Right now, my biggest remaining gripe is that under Wayland, we are spamming the logs quite badly with 'This plugin does not support raise()', because that gets printed every single time we call raise.

I would happily make a wrapper function that only called raise if we were in a X11 session... Except I can't find a way to detect Wayland vs X11 in a kwin script.

@qewer33
Copy link
Owner Author

qewer33 commented Feb 11, 2024

Woah, @zelch thanks a lot for the PR! I'll try to review it in my spare time

@qewer33
Copy link
Owner Author

qewer33 commented Feb 11, 2024

I would happily make a wrapper function that only called raise if we were in a X11 session... Except I can't find a way to detect Wayland vs X11 in a kwin script.

This can probably be implemented with a data source and a shell script. Take a look how the "Restart KWin" button is implemented.

@imthenachoman
Copy link

@qewer33 Curious when you plan on doing final release for this to prod?

@qewer33
Copy link
Owner Author

qewer33 commented Apr 23, 2024

@imthenachoman currently trying to port Exquisite to Plasma 6, it's proving to be somewhat difficult. But thank you for the reminder I'll update the Plasma 5 package in the store

@imthenachoman
Copy link

Any luck on pushing the new version to the store?

@qewer33
Copy link
Owner Author

qewer33 commented May 14, 2024

Any luck on pushing the new version to the store?

Pushed!

@imthenachoman
Copy link

I am getting flickering when I activate it. Any idea what might be causing it?

@qewer33
Copy link
Owner Author

qewer33 commented May 15, 2024

I am getting flickering when I activate it. Any idea what might be causing it?

Flickering? Does it not open? Or is it a visual glitch? A video and/or kwin log (when run via terminal with kwin_x11 --replace) would be very helpful.

@zelch
Copy link

zelch commented May 15, 2024

And is the flickering on Wayland or X11?

@imthenachoman
Copy link

I'm on Wayland. When I open Exquisite, the entire screen flickers. Let me see if I can get a video.

@imthenachoman
Copy link

Couldn't get screen recorder working. Took a video from phone.

https://drive.google.com/file/d/1p-HryWsZHshvPJzu9TQ40iQ3NFC7en1b/view?usp=sharing

@qewer33
Copy link
Owner Author

qewer33 commented May 15, 2024

Super weird. I can't seem to reproduce it on Fedora 38 Wayland. @zelch can you also try?

@imthenachoman
Copy link

It could be something up with my computer. I will do some more research/debugging.

@zelch
Copy link

zelch commented May 16, 2024

Alright...

What video card are you using, and what driver version?

I'm going to take a wild guess that you're on an nVidia card, and that the driver version is going to be significant.

@imthenachoman
Copy link

I am running an Intel Core i5-8500 with an integrated Intel UHD Graphics 630.

Don't spend too much time on debugging this. I bet it's something specific to my computer .I've been looking for an excuse to upgrade my PC. I want a new gaming PC. :)

image

@imthenachoman
Copy link

So the flickering doesn't happen in X11 and all the Debian experts are telling me I should stick with X11 for Debian stable with KDE. So I suppose I will do that.

@qewer33
Copy link
Owner Author

qewer33 commented May 18, 2024

Also @zelch have you tried anything or had any luck regarding a Plasma 6 port? I was getting really weird and nonsensical errors the last time I tried. Kinda busy rn so I'll probably take a detailed next month but in the meantime if you want, you can do some tinkering!

@qewer33
Copy link
Owner Author

qewer33 commented May 18, 2024

Great work with this. Very happy!

Thanks and I'm really glad you're enjoying it @imthenachoman ! And sorry for the late release. I thought you were already using the unreleased package and my intention was to release the Plasma 5 version together with a Plasma 6 port but that's going to take a bit longer anyway 😅

@imthenachoman
Copy link

@qewer33 No issues at all. This is my main production daily driver so I try to only run things the official/right way. I don't have time to muck with things breaking.

@zelch
Copy link

zelch commented May 18, 2024

@qewer33 The change to the text of kcfg_nameAbove in 645af73 needs to be reverted.

Yeah I noticed that after pushing the release. I'll look at your PR tomorrow but do we really need a configuration option for showing the labels in the top/bottom? IMHO just having them be on the bottom (or top, doesn't really matter but bottom looks cleaner imo) and having an option for hiding them makes way more sense.

I prefer names on top, you prefer names on bottom, and the code for the configuration option already exists. :)

That said, I do think that an option to hide them entirely would make sense, and in that case, what we want is an option to select top/bottom/none, I can take a look at implementing that sometime here if you're interested.

Also @zelch have you tried anything or had any luck regarding a Plasma 6 port? I was getting really weird and nonsensical errors the last time I tried. Kinda busy rn so I'll probably take a detailed next month but in the meantime if you want, you can do some tinkering!

I have not, I'm on Debian unstable, and Plasma 6 likely won't get packaged until the 6.1 release, or at least the beta for it.

The beta release is scheduled for the 23rd of this month, and the 6.1.0 release is scheduled for 2024-06-18, so exactly a month from now.

I expect that I'll be porting everything that I'm currently using over as soon as that happens. :)

@zelch
Copy link

zelch commented May 18, 2024

@qewer33 Alright, I've done a quick implementation of making it a drop down, but I wonder if you have any preferences on the appearance in the configuration menu.

image

@qewer33
Copy link
Owner Author

qewer33 commented May 19, 2024

@qewer33 Alright, I've done a quick implementation of making it a drop down, but I wonder if you have any preferences on the appearance in the configuration menu.

I have a better idea, I'll implement it.

Edit: Implemented

image

@zelch
Copy link

zelch commented May 19, 2024

As an aside, I think we can now check off multi-monitor support, as the screen property of a layout now specifies which display to use. :)

@imthenachoman
Copy link

I have a second Debian box now. I use it for testing stuff. I'm happy to user/pressure test your commits if you can tell me how to install them.

@imthenachoman
Copy link

I know y'all are working on bug fixes but anyway you could tell me what lines to fix to make it auto hide after using a keyboard shortcut?

@zelch
Copy link

zelch commented Jun 3, 2024

@imthenachoman In the settings screen, select the Behavior tab, and check 'Hide after tiling a window'.

@imthenachoman
Copy link

@zelch I have that enabled. The bug is that when you tile a window using the keyboard shortcut, it does not hide. It only hides when you click. I was hoping for a quick fix for that? Something I could just update in the code in my installation?

@zelch
Copy link

zelch commented Jun 3, 2024

@imthenachoman ... I already fixed that bug, and the fix is in the most recent release.

Can you test again with the current version and confirm that it's still not working?

If so, please enable the debug logging option under behavior, apply, then bring up the tile dialog, tile a window with the shortcut, manually close said dialog, and attach the resulting kwin logs.

@imthenachoman
Copy link

In release 0.5? Where? How do I update or get it?

And I don't see debug logging option anywhere.

image

@zelch
Copy link

zelch commented Jun 3, 2024

Alright, you're definitely not running the current version.

If you start up Discover, then under Update (bottom left of the window) you should have the option to update kwin extensions, including Exquisite.

@imthenachoman
Copy link

Nope. Nothing for Exquisite. When did you update it?

I updated to 0.5 on May 17. Then I saw your comments about fixing that bug. But I didn't see anything about an update? The store still has 0.5.

image

@zelch
Copy link

zelch commented Jun 3, 2024

Ah, hrm.

@qewer33 Could we get a 0.6 release with the current git head? :)

I've got some minor changes I still need to write commit messages for, but nothing even remotely critical.

(It's a matter of documentation, and of attempting (and largely failing for Reasons™) to format the case where multiple modifiers are used for a tile shortcut.)

@imthenachoman
Copy link

No need to push a new release on my account. I was just hoping to see the lines changed to fix that bug so I could make them on my end.

@qewer33
Copy link
Owner Author

qewer33 commented Jun 11, 2024

Sorry for the inactivity, finally free from my university exam and got time to work on Exquisite again 😅

@zelch do you have anything commit/PR? If not I'll upload a new release

@imthenachoman
Copy link

Is there anything I can do to get the auto close after keyboard shortcut tiling to work? Right now it will tile when I select the keyboard shortcut, but the Exquisite window stays open.

@zelch
Copy link

zelch commented Jul 10, 2024

@qewer33 I do, but I'm still trying to figure out a UI problem.

The easy part is the documentation:
Just replacing:

  • shortcutModifier: Optional parameter that defines the modifier that needs to be pressed in order for shortcutKey to work. Can be one of the following: Qt.ControlModifier, Qt.ShiftModifier, Qt.AltModifier, Qt.MetaModifier. If you want to assign a single key without a modifier as a shortcut to a window, leave this parameter empty.

With:

  • shortcutModifier: Optional parameter that defines the modifier or modifiers that needs to be pressed in order for shortcutKey to work. Can be one or more of the following: Qt.ControlModifier, Qt.ShiftModifier, Qt.AltModifier, Qt.MetaModifier. If you want to require multiple modifiers, separate them with |, like: qt.ControlModifier | Qt.ShiftModifier. If you want to assign a single key with
    out a modifier as a shortcut to a window, leave this parameter empty.

And that actually works today.

But what doesn't work is the rendering of the shortcut in the window layout.

My first try at fixing that works fine... Except that printing Ctrl+Alt+F1 really doesn't fit in the available space.

Rendering that as C+A+F1 would fit better, but would be more ambiguous, and would change the simpler case of things like Alt+F1.

Any thoughts?

@qewer33
Copy link
Owner Author

qewer33 commented Jul 19, 2024

@zelch does breaking the text into multiple lines not work? Or maybe we can make it trancunate with ellipsis and show full shortcut text in a tooltip when it's hovered

I've picked up trying to port Exquisite to Plasma 6 again but it's proving to be really difficult with the almost non-existent KWin API documentation changelog...

@zelch
Copy link

zelch commented Jul 21, 2024

@qewer33 There's no good way that I can find to break it into multiple lines.

The tooltip on hovered sounds like a good plan though.

Where are you on the port to Plasma 6? Debian Experimental finally got Plasma 6, so I'm working my way through the widgets and extensions that I'm used to, and Exquisite is next on my list. :)

@A-Byte-Sized
Copy link

It's been a bit since the last update here; how is the Plasma 6 port going? I might take a look into it as I miss Exquisite.

@qewer33
Copy link
Owner Author

qewer33 commented Sep 9, 2024

It's been a bit since the last update here; how is the Plasma 6 port going? I might take a look into it as I miss Exquisite.

Yeah uhh I have kinda been stuck... I got it to run without any errors on Plasma 6 but I couldn't get the Exquisite dialog to show no matter what I tried. I will push my changes to a new branch soon. Would appreciate any help!

@A-Byte-Sized
Copy link

Sounds good, let me know whenever you've pushed a branch and I'll take a whack at it!

@zelch
Copy link

zelch commented Sep 10, 2024

I would also love to take a crack at the problem, since it sounds like you're in a decent place progress wise! :)

@qewer33
Copy link
Owner Author

qewer33 commented Sep 11, 2024

@A-Byte-Sized and @zelch I have pushed my changes to the plasma6 branch. We can use the Plasma 6 issue as a tracker, you can comment about your findings there (also please comment if you get any unexpected errors on the current commit). Thank you guys for your interest!

https://github.com/qewer33/Exquisite/tree/plasma6

@qewer33
Copy link
Owner Author

qewer33 commented Sep 11, 2024

Also seems like this issue can be closed.

@qewer33 qewer33 closed this as completed Sep 11, 2024
@imthenachoman
Copy link

I was wondering if there was an update pushed? I'm still having that issue where it does not auto close when using keyboard shortcut.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants