kwin-scripts / kwin-tiling

Tiling script for kwin
GNU General Public License v2.0
1.1k stars 68 forks source link

Plasma 5 support #30

Closed willprice closed 7 years ago

willprice commented 10 years ago

Hi,

I've tried installing the script under the new Plasma 5 desktop but can't seem to get it working. I appreciate this isn't a very helpful bug report as it contains no information whatsoever, but I'm not sure what is relevant. I'd be happy to help with alpha/beta testing on plasma 5.

faho commented 10 years ago

Hi,

I also tried Plasma 5 and also didn't get it to work, but I can't quite recall what the issue was.

There are three ways to install the script:

I'm not sure why plasmapkg didn't work, can you try?

willprice commented 10 years ago

Hi,

Here's what I get packaging from master:

✔ will@x230:~/src/kwin-tiling [master?] plasmapkg2 -t kwinscript -i .
pluginname:  "kwin-script-tiling"
-- Copying  "/home/will/.local/share/kwin/scripts/kwin-script-tiling/metadata.desktop" "/home/will/.local/share/kservices5/kwin-script-kwin-script-tiling.desktop"
Could not register package as service (this is not necessarily fatal): "kwin-script-kwin-script-tiling.desktop"
Successfully installed /home/will/src/kwin-tiling
faho commented 10 years ago

That looks like it might work, if you can get kwin to enable it.

Try adding

kwin-script-tilingEnabled=true

to the [Plugins] section in kwinrc (which might be in .config)

I'll try building Plasma5 again.

willprice commented 10 years ago

I get an error message at startup: "The shared library was not found.", I'm guessing this depends on some KDE4 libraries then. Any idea how to get richer debug info?

The extension has at least appeared in the KWin scripts settings window now :)

faho commented 10 years ago

Sorry, it seems like kwin 5 just isn't ready yet.

I got it to load the script by upping the QtQuick version (in contents/ui/main.qml) to 2.3 and removing the qtextracomponents import, but then it:

So unless I'm missing some new supercool include (and a way to have the script compatible to both QtQuick 1.1 and 2.3), we need to wait until either the missing stuff in kwin is implemented again or the new API documented.

faho commented 10 years ago

I tried some more, readConfig() is now KWin.readConfig(). Also registerShortcut() moved somewhere else (there's a symbol by that name in KWin, but it doesn't appear to be a function).

I'll keep an eye on this, but unless I can make it work on kwin 5 and 4 with the same codebase, I won't switch it over until kwin 5 is the recommended version.

willprice commented 10 years ago

Hi faho,

Thanks for your work looking into this, I really appreciate it.

faho commented 10 years ago

Now that Plasma 5.1 has been released (and is in the arch repos), I've had another look:

faho commented 10 years ago

Soo.... look at the plasma5 branch (20b008d5d7a45a4455a9d20674161a4f511ee21b should be the first commit that runs under KWin 5).

Edit: Current limitations:

willprice commented 10 years ago

Cool, thanks for the update faho. I just tried installing plasma-next on my laptop, unfortunately I'm not sure I can help test this as it crashes constantly, nor can it handle multiple monitors (that crashes it too). I'll check regularly, and when they release something that is vaguely usable I'll have a go testing your branch.

jck commented 10 years ago

Regarding shortcuts, I think you need to use KGlobalAccel

faho commented 10 years ago

I'm not quite sure how that applies to this kind of script, care to elaborate?

jck commented 10 years ago

My bad, I guess it is only used for setting global shortcuts.

steverweber commented 9 years ago

+1 I miss tiling, so I have to revert back to 4.

faho commented 9 years ago

Just to keep everyone in the loop, I've opened

https://bugs.kde.org/show_bug.cgi?id=340225 (the shortcuts thing) and https://bugs.kde.org/show_bug.cgi?id=340125 (the clientlist thing)

upstream.

After that, the last real thing missing is the config menu.

faho commented 9 years ago

I've found the cause for the configuration menu issues, it's now https://bugs.kde.org/show_bug.cgi?id=347176.

faho commented 9 years ago

The config thing has been fixed by fcc931cccf25cb2d9bef6c182a3a6dc503db4940, the shortcuts and clientlist thing remain, though the latter is pretty well worked around.

faho commented 9 years ago

I just moved the plasma5 branch to master and the old master to plasma1.

tidux commented 9 years ago

The extension is broken on Fedora 22 with Plasma 5.3.2. The error is "Plugin does not provide configuration file in expected location". It shows as enabled in both the GUI and kwinrc, but does nothing.

faho commented 9 years ago

What does KWin print when run in a terminal (kwin_x11 --replace)?

Is this after fcc931cccf25cb2d9bef6c182a3a6dc503db4940?

tidux commented 9 years ago

This was git master about half an hour before I filed the issue.

$ kwin_x11 --replace
kwin_core: Extensions: shape: 0x "11"  composite: 0x "4"  render: 0x "b"  fixes: 0x "50"  randr: 0x "14"  sync: 0x "31"  damage: 0x  "11" 

Constructing a KPluginInfo object from old style JSON. Please use kcoreaddons_desktop_to_json() for "/usr/lib64/qt5/plugins/org.kde.kdecoration2/breezedecoration.so" instead of kservice_desktop_to_json() in your CMake code.
    Constructing a KPluginInfo object from old style JSON. Please use kcoreaddons_desktop_to_json() for "/usr/lib64/qt5/plugins/org.kde.kdecoration2/kwin5_aurorae.so" instead of kservice_desktop_to_json() in your CMake code.
kwin_core: screens:  1 desktops:  4
kwin_core: Done.
kwin_core: User timestamp, ASN: 38743949
kwin_core: User timestamp, final: 'ID: 44040207 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' : 38743949
kwin_core: Activation: No client active, allowing
kwin_core: screens:  1 desktops:  4
kwin_core: Done.
kwin_core: User timestamp, ASN: 41678101
kwin_core: User timestamp, final: 'ID: 81788949 ;WMCLASS: "okular" : "okular" ;Caption: "Eclipse Phase Quick-Start Rules – Okular" ' : 41678101
kwin_core: screens:  1 desktops:  4
kwin_core: Done.
kwin_core: User timestamp, ASN: 4294967295
kwin_core: User timestamp, final: 'ID: 18874378 ;WMCLASS: "urxvt" : "urxvt256c-ml" ;Caption: "urxvt256c-ml" ' : 4294967295
kwin_core: Activation: No client active, allowing
kwin_core: screens:  1 desktops:  4
kwin_core: Done.
kwin_core: User timestamp, ASN: 52142044
kwin_core: User timestamp, final: 'ID: 92274763 ;WMCLASS: "libreoffice-calc" : "libreoffice" ;Caption: "_Character_Builder_0.3.2.1.xlsx - LibreOffice Calc" ' : 52142044
kwin_core: Activation: No client active, allowing
kwin_core: screens:  1 desktops:  4
kwin_core: Done.
kwin_core: User timestamp, ASN: 4294967295
kwin_core: User timestamp, final: 'ID: 4194314 ;WMCLASS: "urxvt" : "urxvt256c-ml" ;Caption: "HACKING THE GIBSON on daemonhost" ' : 4294967295
kwin_core: Activation: No client active, allowing
kwin_core: screens:  1 desktops:  4
kwin_core: Done.
kwin_core: User timestamp, ASN: 53269449
kwin_core: User timestamp, final: 'ID: 75497498 ;WMCLASS: "firefox" : "navigator" ;Caption: "Plasma 5 support · Issue #30 · faho/kwin-tiling - Vimperator" ' : 53269449
kwin_core: screens:  1 desktops:  4
kwin_core: Done.
kwin_core: User timestamp, ASN: 4294967295
kwin_core: User timestamp, final: 'ID: 67108874 ;WMCLASS: "urxvt" : "urxvt256c-ml" ;Caption: "urxvt256c-ml <2>‎" ' : 4294967295
kwin_core: Activation: No client active, allowing
kwin_core: screens:  1 desktops:  4
kwin_core: Done.
kwin_core: User timestamp, ASN: 52087351
kwin_core: User timestamp, final: 'ID: 44040214 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' : 52087351
kwin_core: Activation: No client active, allowing
kwin_core: screens:  1 desktops:  4
kwin_core: Done.
kwin_core: screens:  1 desktops:  4
kwin_core: Done.
QXcbConnection: XCB error: 8 (BadMatch), sequence: 1707, resource id: 67108874, major code: 42 (SetInputFocus), minor code: 0
kwin_core: Initializing OpenGL compositing
kwin_core: Choosing GLXFBConfig 0x77 X visual 0xb0 depth 24 RGBA 8:8:8:0 ZS 0:0
OpenGL vendor string:                   Intel Open Source Technology Center
OpenGL renderer string:                 Mesa DRI Intel(R) Ivybridge Mobile 
OpenGL version string:                  3.3 (Core Profile) Mesa 10.6.3 (git-ccef890)
OpenGL shading language version string: 3.30
Driver:                                 Intel
GPU class:                              IvyBridge
OpenGL version:                         3.3
GLSL version:                           3.30
Mesa version:                           10.6.3
Linux kernel version:                   4.1.6
Requires strict binding:                yes
GLSL shaders:                           yes
Texture NPOT support:                   yes
Virtual Machine:                        no
kwin_core: Color correction: false
kwin_core: OpenGL 2 compositing successfully initialized
kwin_core: Vertical Refresh rate  60 Hz ( "primary screen" )
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1949, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1959, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1960, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1961, resource id: 0, major code: 14 (GetGeometry), minor code: 0
kwin_core: screens:  1 desktops:  4
kwin_core: Done.
kwin_core: Successfully loaded built-in effect:  "blur"
kwin_core: Successfully loaded built-in effect:  "contrast"
kwin_core: Successfully loaded built-in effect:  "dashboard"
kwin_core: Successfully loaded scripted effect:  "kwin4_effect_windowaperture"
kwin_core: Session path: "/org/freedesktop/login1/session/_35"
kwin_core: Successfully loaded built-in effect:  "desktopgrid"
kwin_core: Successfully loaded scripted effect:  "kwin4_effect_fade"
kwin_core: Successfully loaded built-in effect:  "highlightwindow"
kwin_core: Successfully loaded scripted effect:  "kwin4_effect_maximize"
kwin_core: Successfully loaded built-in effect:  "kscreen"
kwin_core: Successfully loaded scripted effect:  "kwin4_effect_dialogparent"
kwin_core: Successfully loaded built-in effect:  "logout"
kwineffects: Incorrect Property state, immediate stop:  7471104
kwin_core: Successfully loaded scripted effect:  "kwin4_effect_login"
kwin_core: Successfully loaded built-in effect:  "minimizeanimation"
kwin_core: Successfully loaded scripted effect:  "kwin4_effect_translucency"
kwin_core: Successfully loaded built-in effect:  "presentwindows"
kwin_core: Successfully loaded built-in effect:  "screenedge"
kwin_core: Successfully loaded built-in effect:  "screenshot"
kwin_core: Successfully loaded built-in effect:  "slide"
kwin_core: Successfully loaded built-in effect:  "slidingpopups"
kwin_core: Successfully loaded built-in effect:  "startupfeedback"
kwin_core: Successfully loaded built-in effect:  "zoom"
faho commented 9 years ago

There's nothing in there related to the script, even though we print quite a few debug lines.

How did you install it? Note that the README was broken for a while - it needs to be via plasmapkg2 --type kwinscript -i /path/to/script (yes, gnu-style long-option with a double-dash). Or maybe Fedora is doing something weird in its packaging.

tidux commented 9 years ago

I did install with that plasmapkg2 syntax. It's quite possible Fedora is doing something weird, or something changed in Plasma or kwin recently.

faho commented 9 years ago

Seems I need to get a Fedora VM again. Anything special you have to do to get Plasma 5?

I doubt it's Plasma/KWin since I'm running 5.4 (and had run 5.3.2 when that was current).

tidux commented 9 years ago

Just install the KDE spin and sudo dnf update.

On September 1, 2015 6:59:38 PM CDT, Fabian Homborg notifications@github.com wrote:

Seems I need to get a Fedora VM again. Anything special you have to do to get Plasma 5?

I doubt it's Plasma/KWin since I'm running 5.4 (and had run 5.3.2 when that was current).


Reply to this email directly or view it on GitHub: https://github.com/faho/kwin-tiling/issues/30#issuecomment-136896150

Sent from my Android device with K-9 Mail. Please excuse my brevity.

faho commented 9 years ago

Sorry it's taking so long, I'm having trouble getting Fedora to work properly (even before installing the script).

v3ss0n commented 9 years ago

Tested on Sabayon Linux , Plasma 5.4 and its working good! thank you so much ! Keep up the goodjob!

v3ss0n commented 9 years ago

Shortcut seems (meta + f11 + shift) to do nothing, no shortcut support yet?

faho commented 9 years ago

Nope. It's currently impossible once you use qml, and if we didn't use qml we wouldn't have Qt.include - i.e. all code would have to be in one file. One 3000 line file.

I've reported it upstream a while ago, but they've got other things on their plate right now.

v3ss0n commented 9 years ago

may be we can use node + requirejs and generate them , without qml? my 2 cents.

faho commented 9 years ago

Nah - if I really wanted to get rid of qml, I'd use a buildscript that mainly invoked cat. But I've always had plans to use qml for more (like a popup to show which layout is being loaded), not less, and P5 is still not quite "finished" (which is also why I haven't made a P5-only release and uploaded it to kde-look.org) and shortcuts aren't critical, so... let's just wait until upstream fixes it.

v3ss0n commented 9 years ago

yes that make sense :D lets wait for it. For now if i want to switch default layout can i do at settings?

faho commented 9 years ago

For now if i want to switch default layout can i do at settings?

Should be possible, yeah (though the interface isn't great because I can't figure out how to make one that's flexible enough). That last textfield in the "Common Options" tab takes text in the form "desktop:layout", with multiple of those separated with a ",". A negative desktop number disables tiling by default on that desktop, and a desktop of "0" indicates that this is the default for all desktops that aren't mentioned otherwise.

v3ss0n commented 9 years ago

so same as syntax in the last screenshot? I gonna try it! thanks.

rafasc commented 8 years ago

still no fix to keyboard shortcuts?

faho commented 8 years ago

Unfortunately not, and I don't think it's going to be in KWin 5.5 either.

v3ss0n commented 8 years ago

that gonna be long long long wait.

On Sat, Nov 28, 2015 at 7:09 PM, Fabian Homborg notifications@github.com wrote:

Unfortunately not, and I don't think it's going to be in KWin 5.5 either.

— Reply to this email directly or view it on GitHub https://github.com/faho/kwin-tiling/issues/30#issuecomment-160290738.

marccollin commented 8 years ago

i use plasma 5.4.3, i see the scrit p in the kwin script.

i try to enable it but get this message "The shared library was not found."

faho commented 8 years ago

i try to enable it but get this message "The shared library was not found."

@marccollin: That's been known to show up when you click the config menu, but the script should be active regardless (once you restart kwin). As for the config menu - that should be solved by fcc931cccf25cb2d9bef6c182a3a6dc503db4940, so you should try that. If it's not, can you tell me where "kcm_kwin4_genericscripted.so" is? It should be included in your kwin package.

marccollin commented 8 years ago

locate tiling /home/collinm/.local/share/kservices5/kwin-script-kwin-script-tiling.desktop /home/collinm/.local/share/kwin/scripts/kwin-script-tiling/metadata.desktop

i modified

/home/collinm/.local/share/kservices5/kwin-script-kwin-script-tiling.desktop /home/collinm/.local/share/kwin/scripts/kwin-script-tiling/metadata.desktop

to put this value X-KDE-Library=/usr/lib64/qt5/plugins/kwin/effects/configs/kcm_kwin4_genericscripted

i get same result

marccollin commented 8 years ago

seem like don't use the path i specified

Hi-Angel commented 8 years ago

You said that shortcuts are not that critical — does that mean I can configure, e.g., the changing tiling layout shortcut somehow else?

faho commented 8 years ago

the changing tiling layout shortcut somehow else?

No. You can change the layout in the configuration (or hardcode it in the actual code), but shortcuts currently (AFAIK still) just do not work. Any change in layout requires a KWin restart.

They're not critical in that the script is basically usable without them. It's secondary functionality.

Hi-Angel commented 8 years ago

If anybody want to vote for, I reported a feature request to make tiling upstream.

steverweber commented 8 years ago

Thanks @Hi-Angel

v3ss0n commented 8 years ago

yes lets vot for this , lets get this plugin mainstream!

v3ss0n commented 8 years ago

voted @Hi-Angel

faho commented 8 years ago

While I appreciate your enthusiasm, I don't think that's gonna happen.

KWin actually used to have tiling. It was written for GSoC and quite minimalistic and generally bad. It was removed because none of the kwin devs used it or cared for it. They recommended that someone write a script instead, and that's how this thing started.

Now, if KWin would incorporate this script, they'd still need to fix the API issues - which they obviously haven't gotten to. If they added it to the core code instead, they'd have to write quite a bunch of code. Either way, there's no real advantage for the kwin devs.

v3ss0n commented 8 years ago

your version of tiling is much better and stable. I had use that official before. So , let us try , may be a lot of votes can change something.

Hi-Angel commented 8 years ago

Honestly, I rather want to stir them up. They would think for a moment "What do we need for this to work?", and then they would remember the ancient hotkeys bug, since 2014. Then they can't ask "why not to keep it separate of upstream", because the answer is obviously "The API is broken". It's not cool to have bugs appearing, depending on an old one, thus the hotkeys bug more likely to get fixed, than without the report.