Comments (16)
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.
from glava.
#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.
from glava.
#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.
from glava.
@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.
from glava.
Closing due to technical reasons making this impossible to implement elegantly, see my related comment in another issue.
from glava.
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.
from glava.
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
from glava.
@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.
from glava.
@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.
from glava.
@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
from glava.
@RaitaroH crashes need to be debugged with make BUILD=debug
and gdb glava
. Posting your rc.glsl
(and any other changed files) will help.
from glava.
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
from glava.
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
from glava.
Your GDB output is the default gdb startup banner, you have not yet started the program inside the debugger
from glava.
@coderobe ups. I fixed it.
from glava.
Watching video,
But glava will stay below...
It should be above.
Don't use "glava --desktop" command, only "glava" & #request setxwintype "dock"
from glava.
Related Issues (20)
- Manjaro KDE setup no longer works after unplugging and replugging the monitors
- Glava stops running after some time
- Idea: add ALT-F4 ignore flag or config option
- cant figure out how to change the color of glava or resize glava when it is embedded to my desktop
- Transparency not working in Arch Linux with KDE Plasma (KWin) HOT 1
- How to uninstall Glava from Ubuntu HOT 1
- ninjac -C build throwing error while installing. HOT 1
- [Request] desktop mode support for qtile.
- Glava starts on wrong screen
- Would you please clarify in the readme if this works on xwayland, i.e., on Ubuntu 22+ HOT 1
- Problems with audio input
- Is this project dead? HOT 6
- AUR package fails to install with yay on artix HOT 1
- Wayland support. HOT 14
- error when executed "ninja -C build" command as given in readme.md, what is it, how to resolve? HOT 3
- can't build glava on Freebsd due to missing dependency error HOT 1
- Glava is showing on top of all windows
- --define similarly to --request
- Failing to build libglava.so: libglava.so.p/glava_glsl_ext.c.o:(.bss+0x0): first defined here
- Clickthrough with Wayland (Plasma 6)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from glava.