jtsiomb / xlivebg Goto Github PK
View Code? Open in Web Editor NEWLive wallpapers for the X window system
Home Page: http://nuclear.mutantstargoat.com/sw/xlivebg
License: GNU General Public License v3.0
Live wallpapers for the X window system
Home Page: http://nuclear.mutantstargoat.com/sw/xlivebg
License: GNU General Public License v3.0
I am building on OpenBSD and I've run into a few issues, firstly many #ifndef
operations needed to be changed to include OpenBSD, that's fine and everything seems to almost compile now, but then I get to the included libraries libimago
and treestore
.
In libimago/src/file_lbm.c
there seems to be some very strange declarations that neither gcc or clang seem to recognise as valid, around line 115 the following is defined:
static uint16_t swap16(uint16_t x);
static uint32_t swap32(uint32_t x);
gcc says that it's expecting declaration specifiers, and clang just seems to complain about missing brackets. Is there any simple fix for this?
Enjoyed your Fosdem talk. Thanks.
I'm having trouble compiling this on OpenSuse Leap 15.2.
I have avcodec.h installed in
/usr/include/ffmpeg/libavcodec/avcodec.h
./configure doesn't complain.
But make does:
make[2]: Entering directory '/richi/ToDo/xlivebg/plugins/video'
cc -pedantic -Wall -g -O3 -ffast-math -fPIC -I../../include -Wno-deprecated-declarations -pthread -c -o vid.o vid.c
vid.c:22:10: fatal error: libavcodec/avcodec.h: No such file or directory
#include <libavcodec/avcodec.h>
^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
How to fix?
vid.c: In function ‘vid_open’:
vid.c:47:17: warning: implicit declaration of function ‘av_register_all’ [-Wimplicit-function-declaration]
47 | av_register_all();
| ^~~~~~~~~~~~~~~
vid.c:72:41: error: ‘AVStream’ has no member named ‘codec’
72 | if(vf->avctx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
| ^~
vid.c:82:51: error: ‘AVStream’ has no member named ‘codec’
82 | vf->cctx = vf->avctx->streams[vf->vstream]->codec;
| ^~
vid.c:84:24: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
84 | if(!(vf->codec = avcodec_find_decoder(vf->cctx->codec_id))) {
| ^
vid.c: In function ‘vid_get_frame’:
vid.c:170:25: warning: implicit declaration of function ‘avcodec_decode_video2’; did you mean ‘avcodec_decode_subtitle2’? [-Wimplicit-function-declaration]
170 | avcodec_decode_video2(vf->cctx, vf->frm, &frame_done, &packet);
| ^~~~~~~~~~~~~~~~~~~~~
| avcodec_decode_subtitle2
Any help?
So I tried out xlivebg with the colcycle plugin and it worked as expected out of the box.
As I'm using a compositor, I used the -n option, but the CPU draw (in picom, a compton fork) was multiplied by 4.
With the -w option, I was able to use xwinwrap to use xlivebg with a compositor without the -n option, and it divided by 2 the CPU draw with picom.
I also tried with xcompmgr which is mentionned in the readme, but I have horrible tearing everywhere (CPU draw is fine though).
Right now I think the only way I can use it is without a compositor (CPU is something like 8% distributed on 8 cores), or if I find a way to fix the tearing with xcompmgr (which would be ideal)
I guess the real issues are actually in picom for the CPU issue and intel's driver for the tearing.
Anyway I just wanted to update you to say that I tried your program and it works really well, so I'll close the issue since it doesn't come from xlivebg.
Hello,
Πρώτα από όλα είμαι Έλληνας :P , ωραίος και πολύ ωραίο project! :D
Having said and for this message to be readable from other people browsing github, I am trying to port my GLX3 shader based standalone renderer to create a xlivebg "plug-in" for shaders :)
I think this can be a great addition to this tool that will make this application compatible with a ton of great work @ https://www.shadertoy.com/ . It will also be possible to have a single plug-in that can load from a multitude of different shader "text" files which will make extending xlivebg much easier for newcomers.
I have forked your repo (
https://github.com/AmmarkoV/xlivebg/tree/master/plugins/shadertoy ) and added my source that renders this example https://www.shadertoy.com/view/Ms2SD1 using pure C / GLX3 / glew code.. I don't know if you want to pull it, currently I have changed nothing on your code, my code is also GPL3 so it is compatible with yours.
However upon trying to add your plugin system I think that there may need to be some changes in xlivebg for my use-case ..
You can compile my sample to check it out ..
However I think that maybe my glx3.c/glx3.h has to be merged inside your code base in order to be able to have OpenGL3+ shader support..
Looking forward to your feedback or comments, and once again great job!
The program known as GLava is an OpenGL audio visualizer that works through monitoring ALSA and Pulse Audio for audio data, and creates a live background window onto the desktop.
GLava is seemingly incompatible with xlivebg and can not create effects on the same window as xlivebg, leading to some flexibility problems when configuring live backgrounds to include an embedded audio visualizer. Is it possible to integrate GLava into the configuration files and/or interfaces available for xlivebg, and/or allow them to render onto the same X window?
Thanks for creating this.
When I run xlivebg with conky running conky is not shown.
If I run compton (picom) then xlivebg display disappear altogether.
I get this error trying to install with yay
on Arch:
vid.c:72:41: error: ‘AVStream’ has no member named ‘codec’
72 | if(vf->avctx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
| ^~
vid.c:82:51: error: ‘AVStream’ has no member named ‘codec’
82 | vf->cctx = vf->avctx->streams[vf->vstream]->codec;
This seems to be an issue with the video
subpackage. What should I do about this?
Also, for context, everything else seems to work (I can run xlivebg
and xlivebg-gui
, though the latter will complain about the lack of plugins).
Originally reported via email. The program crashes upon execution when the AMD proprietary drivers are installed in the latest stable version of debian (Codename: Bullseye). The system is responsive but rendered virtually unusuable until the process is stopped via a ctrl + c command or killed using its' pid.
A short image showcasing this behaviour is provided, as well as effects post-crash.
Relevant hardwatre information:
``
`~$hwinfo --short
cpu:
Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz
keyboard:
/dev/input/event3 China Resource Semico USB Keyboard
mouse:
/dev/input/mice Logitech Marble Mouse (4-button)
/dev/input/event7 China Resource Semico USB Keyboard
monitor:
SAMSUNG S22F350
graphics card:
ATI Ellesmere [Radeon RX 470]
sound:
Creative SB1570 SB Audigy Fx
storage:
Intel 200 Series PCH SATA controller [AHCI mode]`
` ~$ glxinfo
GLX version: 1.4
Vendor: AMD (0x1002)
Device: Radeon RX 470 Series (POLARIS10, DRM 3.40.0, 5.10.0-13-amd64, LLVM 11.0.1) (0x67df)
Version: 20.3.5
Max core profile version: 4.6
Max compat profile version: 4.6
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.2`
syslog didn't record any anomalities on the time period where the program was executed and the program seems to resolve successfully as shown on the information contained within the terminal post-crash in the image provided
This bug appears exclussive to AMD radeon drivers for dedicated graphics cards, it could not be replicatedn and it was proven to be working fine, using an nvidia graphics card, intel hd graphics and amd integrated graphics. The program has not been yet tested on external graphics cards provided by intel, aditionally it's unclear whether this is an issue affecting several radeon models or if it's exclusive to the rx 470, it's known the program cannot work on AMD's GPUOpen drivers as they do not support open gl programs.
This was reported by mail a few days ago.
While applying a wallpaper on a dual monitor setup the wallpaper from screen 1 is duplicated in screen 2 even if the wallpaper used is using a resolution meant to be used for two monitors (e.g. 3840 x 1020), everything works as normal except for having the same image in the background.
I am running OpenBSD with dwm and a compositor picom, and xlivebg is unable to change the background image, only working with -n
or with the compositor turned off.
Is there any way of getting this to work with an external compositor? The -n
flag does not actually set it as a background but just as a window that I cannot move or resize.
OS: Arch Linux
Desktop: GNOME 3.38.3
Installed from: AUR
Version: xlivebg 1.0-1
GLX Info:
> glxinfo -B
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Intel Open Source Technology Center (0x8086)
Device: Mesa DRI Intel(R) HD Graphics
Version: 20.3.3
Accelerated: yes
Video memory: 1536MB
Unified memory: yes
Preferred profile: core (0x1)
Max core profile version: 4.5
Max compat profile version: 3.0
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.1
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics
OpenGL core profile version string: 4.5 (Core Profile) Mesa 20.3.3
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 3.0 Mesa 20.3.3
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 20.3.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
Config:
> cat ~/.config/xlivebg.conf
#...
xlivebg {
image = ".wallpaper/0.png"
ripple {
raindrops = 10
#...
xlivebg -p
output:
> xlivebg -p
Using config file: /home/user/.config/xlivebg.conf
output: 800x600
xlivebg: searching for plugins in /usr/lib/xlivebg
xlivebg: registered plugin: video
xlivebg: registered plugin: stars
xlivebg: registered plugin: distort
xlivebg: registered plugin: ripple
xlivebg: registered plugin: colcycle
xlivebg: activating plugin: video
window size: 800x600
window visual: e5
double-buffered RGBA 888, 24 bits zbuffer
The preview window is all black, cpu usage 100% and ping failed
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.