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

Above fullscreen #65

Closed
RaitaroH opened this issue Oct 3, 2018 · 16 comments
Closed

Above fullscreen #65

RaitaroH opened this issue Oct 3, 2018 · 16 comments

Comments

@RaitaroH
Copy link

RaitaroH commented Oct 3, 2018

Watching video,
But glava will stay below...
It should be above.

@RaitaroH
Copy link
Author

RaitaroH commented Oct 3, 2018

Just to be clear: if I watch a video in fullscreen in browser or media player, it would be nice if glava wold be able to stay above those as well.

@jarcode-foss
Copy link
Owner

#request addxwinstate "above" will accomplish this, but it means it will be above all windows, not just when a window is fullscreen. You should still be able to click through it if it's a desktop window, otherwise make sure #request setclickthrough true is set.

@RaitaroH
Copy link
Author

RaitaroH commented Oct 4, 2018

#request addxwinstate "above" will accomplish this, but it means it will be above all windows, not just when a window is fullscreen. You should still be able to click through it if it's a desktop window, otherwise make sure #request setclickthrough true is set.

I did that before opening the issue, both in rc and kwin files. "below" is quoted too. Glava just doens't stay above fullscreens, nor does anything else that is "above". I just thought "above" was for above windows that are not fullscreen or something like that. Even if I set the above with kwin, wmctrl or in this case the config file. This is how it is in KDE Neon 5.13.5 (ubuntu 18.04).

EDIT: I can post my configs if that helps.

@jarcode-foss
Copy link
Owner

jarcode-foss commented Oct 4, 2018

@RaitaroH I'll spin up my KDE container later today and try to find something that works. It is really frustrating that the WM routinely misbehaves with EWMH hints and window types, perhaps a collection of these problems I have had with GLava should make their way into a KWin issue.

@jarcode-foss
Copy link
Owner

jarcode-foss commented Oct 5, 2018

Closing due to technical reasons making this impossible to implement elegantly, see my related comment in another issue.

@jarcode-foss
Copy link
Owner

It was occurred to me that override_redirect may allow me to map GLava's window without the window manager even knowing, so there's still a chance that I could get this issue fixed.

@jarcode-foss
Copy link
Owner

jarcode-foss commented Oct 5, 2018

Alright, there's a special "unmanaged" window type that has been added in the above commit that may be able to get what you want, see the added comments in rc.glsl:

/*
   ...
   
   Alternatively, you can set this value to "!", which will cause
   the window to be unmanaged. If this is set, then `addxwinstate`
   will do nothing, but you can use "!+" and "!-" to stack on top
   or below other windows.
*/

So #request setxwintype "!+" will cause GLava to be ignored by the WM and will be above all other windows when created -- whether it stays there depends on the WM. If it's not staying, then #request setforceraised true will work (albeit with intervals) here without screwing with window focus.

"!+" windows also appear to display above fullscreen windows*, although some applications that also use override_redirect for fullscreen may have strange interactions.

Another thing worth noting is that this could allow GLava to work on the desktop with i3 (and i3-gaps) using "!-", see #6.

* not tested on KDE

@RaitaroH
Copy link
Author

RaitaroH commented Oct 5, 2018

@wacossusca34 The windows stays above fullscreen... but it freezes. So is basically an unfocused overlay now instead of actually visualizing anything. I tried ! !+ !- with force raised and not, both in kwin and rc files and I couldn't get this to work. I am on nviida prop drivers, perhaps that could have something to do with it.

@jarcode-foss
Copy link
Owner

@RaitaroH oh, I forgot to mention that you will also need to set #request setfullscreencheck false. This is supposed to prevent GLava from eating resources that fullscreen applications would normally use by halting the rendering, but in your case you will want it disabled.

@RaitaroH
Copy link
Author

RaitaroH commented Oct 5, 2018

@wacossusca34 I added that too... still freezes.

Also, I do remember glava working without options... but now I get a crash.

▶ glava
Using backend: 'glx'
[1]    9574 segmentation fault  glava
▶ glava -d                    
Using backend: 'glx'
Loading module: 'bars'
found GLSL stage: '1.frag'
compiling: '1.frag'
Using default PulseAudio sink: compressor-stereo.monitor

@jarcode-foss
Copy link
Owner

@RaitaroH crashes need to be debugged with make BUILD=debug and gdb glava. Posting your rc.glsl (and any other changed files) will help.

@RaitaroH
Copy link
Author

RaitaroH commented Oct 5, 2018

Ok so...

▶ glava --verbose
Using backend: 'glx'
Assigning debug callback
[1]    16688 segmentation fault  glava --verbose

 SEGV(-11)

Works with -d

▶ glava -d -v              
Using backend: 'glx'
Assigning debug callback
Loading module: 'bars'
found GLSL stage: '1.frag'
compiling: '1.frag'
Using default PulseAudio sink: compressor-stereo.monitor

I did also build with debug but, glava crashes on start:

▶ gdb glava
GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from glava...done.
(gdb) run glava
Starting program: /usr/bin/glava glava
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Using backend: 'glx'
Assigning debug callback

Program received signal SIGSEGV, Segmentation fault.
0x000055555556258e in create_and_bind (name=0x5555557c4ab0 "GLava", class=0x55555559a529 "GLava", type=0x0, states=0x5555557c3940, states_sz=0, d=1920, 
    h=1080, x=0, y=0, version_major=3, version_minor=3, clickthrough=true) at glx_wcb.c:346
346         if (type[0] == '!') {
(gdb)

Here is my configs right now:
bars.txt
env_KWin.txt
rc.txt

@RaitaroH
Copy link
Author

RaitaroH commented Oct 5, 2018

GLava (glava) v1.5.1-11-g353c3bd (stable, unix/fhs)
I am extremely sure I tried setforcedraised and setfullscreencheck to true before... Not sure what changed since #65 (comment)

Now I have in my kwin file looks like this. Thank you by the way.
EDIT: no minimize funny business either. So KDE stacking issues are gone for me.

#request setdecorated false
// #request setxwintype "normal"
#request setxwintype "!"
#request addxwinstate "undecorated"
#request addxwinstate "above"
// #request addxwinstate "below"
#request addxwinstate "skip_taskbar"
#request addxwinstate "skip_pager"
#request addxwinstate "pinned"
#request addxwinstate "sticky"
#request setclickthrough true
#request setforceraised true
#request setfullscreencheck false
#request setforceraised true

@RaitaroH RaitaroH closed this as completed Oct 5, 2018
@coderobe
Copy link
Collaborator

coderobe commented Oct 5, 2018

Your GDB output is the default gdb startup banner, you have not yet started the program inside the debugger

@RaitaroH
Copy link
Author

RaitaroH commented Oct 5, 2018

@coderobe ups. I fixed it.

@kirolos-mater
Copy link

Watching video,
But glava will stay below...
It should be above.

Don't use "glava --desktop" command, only "glava" & #request setxwintype "dock"

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

No branches or pull requests

4 participants