Giter VIP home page Giter VIP logo

oguri's Introduction

oguri

A very nice animated wallpaper daemon for Wayland compositors

>> oguri -h
Usage: oguri [-c <config-path>]

  -c  Path to the configuration file to use.
	  (default: $XDG_CONFIG_HOME/oguri/config)
  -h  Show this text.

Notice: unmaintained!

You may have noticed that oguri hasn't gotten much attention for a while. It was never really intended to be a thing people actually used, I wrote it originally to learn the Wayland protocol. Lately I haven't had much time for personal projects at all, and so it has languished. There are a couple alternatives I'm aware of, please check them out:

  • swww, a direct replacement
  • mpvpaper if you want real video

Feel free to fork if you like this codebase for some reason, but as of now I can't imagine getting back to working on it. If you've used it in the past, thanks! I didn't think this would actually be useful to anyone, so it's cool that it was.

The rest of the README remains below:

Features

  • Animates gifs on your desktop
  • That's all
  • (ok, it can actually display static images too)

Configuration

The configuration file is ini-style. Here's an example:

[output LVDS-1]
image=$XDG_CONFIG_HOME/wallpaper
filter=nearest
scaling-mode=fill
anchor=center

Outputs displaying the same image share the animation timer, and are therefore always in sync.

The output name * will match any output not specified elsewhere in the file. To find your output names, consult your compositor's manual.

Output options

  • image: Path to the image on disk, environment variables and ~ are expanded.
  • scaling-mode: How to scale the image to fit on the output:
    • fill (default)
    • tile
    • stretch
  • anchor: Some combination of top, bottom, left, right, and center. Can be combined with dashes, such as center-left.
  • filter: Scaling filter to use. Supported values:
    • fast: Quickest
    • good: Balance of speed and quality
    • best: Looks really good
    • nearest: Nearest neighbor, good for pixel art
    • bilinear: Linear interpolation

These are provided by cairo.

Integrations

For sway users, the included oguri-swaybg wrapper can be used as swaybg_command if you would prefer to continue managing your wallpaper from the sway config file. This will automatically reload oguri any time sway's config is reloaded, but at the cost of killing it (and therefore flickering) to do so.

Build + run

meson build
ninja -C build
build/oguri

For an up-to-date dependency list, check out meson.build.

The host compositor must support the following protocols:

  • wlr-layer-shell-unstable-v1
  • xdg-output-unstable-v1

Available from the following packagers:

Resource usage

CPU consumption will vary depending on the framerate of the chosen image, as oguri must wake up for every frame. However, with a reasonable (but still visually interesting) image, I have seen it idling as low as 0.3%. It will be noticably higher immediately after startup (or after reconfiguration), until it can cache all of the scaled frames per output.

Memory consumption is a factor of the number of frames in each configured image, the number of outputs displaying each image, and the resolution of each display. It will remain constant once frames are cached.

Other projects I like

Part of this complete breakfast environment!

Oguri Cap

oguri's People

Contributors

emersion avatar vilhalmer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

oguri's Issues

Memory usage

Thanks for the application! Great work, however I've been experiencing huge memory usage while using it.

I set the background to a 300KB large gif, but oguri uses more than 3GB of memory. I understand that you cache the frames, but I believe this is a bit too much. I'm using arch linux, on wayfire.

../oguri.c:142:3: error: ignoring return value of 'write', declared with attribute warn_unused_result

$ nix-build -A nixosUnstable.oguri build.nix

these derivations will be built:
  /nix/store/k88ns4vwhmdsd9i8ldvgmz64dnza6gcq-oguri-88746bf6395b275ff70983de71d0ae2702856a5e.drv
building '/nix/store/k88ns4vwhmdsd9i8ldvgmz64dnza6gcq-oguri-88746bf6395b275ff70983de71d0ae2702856a5e.drv'...
unpacking sources
unpacking source archive /nix/store/6kdps3gwchgmylwrb65vp82nph9wqb4q-source
source root is source
patching sources
configuring
meson flags: --buildtype=plain         --libdir=/nix/store/596src5kl9xabxbkdpyhvf4ccnfmab3k-oguri-88746bf6395b275ff70983de71d0ae2702856a5e/lib --libexecdir=/nix/store/596src5kl9xabxbkdpyhvf4ccnfmab3k-oguri-88746bf6395b275ff70983de71d0ae2702856a5e/libexec         --bindir=/nix/store/596src5kl9xabxbkdpyhvf4ccnfmab3k-oguri-88746bf6395b275ff70983de71d0ae2702856a5e/bin --sbindir=/nix/store/596src5kl9xabxbkdpyhvf4ccnfmab3k-oguri-88746bf6395b275ff70983de71d0ae2702856a5e/sbin         --includedir=/nix/store/596src5kl9xabxbkdpyhvf4ccnfmab3k-oguri-88746bf6395b275ff70983de71d0ae2702856a5e/include         --mandir=/nix/store/596src5kl9xabxbkdpyhvf4ccnfmab3k-oguri-88746bf6395b275ff70983de71d0ae2702856a5e/share/man --infodir=/nix/store/596src5kl9xabxbkdpyhvf4ccnfmab3k-oguri-88746bf6395b275ff70983de71d0ae2702856a5e/share/info         --localedir=/nix/store/596src5kl9xabxbkdpyhvf4ccnfmab3k-oguri-88746bf6395b275ff70983de71d0ae2702856a5e/share/locale         -Dauto_features=enabled         -Dwrap_mode=nodownload         --prefix=/nix/store/596src5kl9xabxbkdpyhvf4ccnfmab3k-oguri-88746bf6395b275ff70983de71d0ae2702856a5e -Dauto_features=enabled
The Meson build system
Version: 0.51.2
Source dir: /build/source
Build dir: /build/source/build
Build type: native build
DEPRECATION: Duplicated values in array option is deprecated. This will become a hard error in the future.
DEPRECATION: Duplicated values in array option is deprecated. This will become a hard error in the future.
DEPRECATION: Duplicated values in array option is deprecated. This will become a hard error in the future.
Project name: oguri
Project version: 1.0.0
C compiler for the host machine: /nix/store/l2sqva7kzr8y68lji2aajk2s8017jyq4-gcc-wrapper-8.3.0/bin/cc (gcc 8.3.0 "gcc (GCC) 8.3.0")
DEPRECATION: Duplicated values in array option is deprecated. This will become a hard error in the future.
Build machine cpu family: x86_64
Build machine cpu: x86_64
Found pkg-config: /nix/store/dnxp63231krq8l87kyhkbwic3w9s1pd9-pkg-config-0.29.2/bin/pkg-config (0.29.2)
Run-time dependency cairo found: YES 1.16.0
Run-time dependency gdk-pixbuf-2.0 found: YES 2.40.0
Run-time dependency wayland-client found: YES 1.17.0
Run-time dependency wayland-protocols found: YES 1.18
Program wayland-scanner found: YES (/nix/store/h0b47l5z1fqxcgxnh87j4dj72l71zn8h-wayland-1.17.0/bin/wayland-scanner)
Library rt found: YES
Build targets in project: 3
Found ninja-1.9.0 at /nix/store/sdh59gf21q30k2pyjmhq85gnajsiji5d-ninja-1.9.0/bin/ninja
building
build flags: -j8 -l8
[21/22] Compiling C object 'oguri@exe/oguri.c.o'.Kta/meson-generated_xdg-shell-protocol.c.o'.ocol.c.o'.'.
FAILED: oguri@exe/oguri.c.o
/nix/store/l2sqva7kzr8y68lji2aajk2s8017jyq4-gcc-wrapper-8.3.0/bin/cc -Ioguri@exe -I. -I.. -I/nix/store/9805m6y28b85h6x9hrwv5q44v6zdzi8i-cairo-1.16.0-dev/include/cairo -I/nix/store/6gh48alr973cgb5n23yi3jmbczjjxkyd-freetype-2.10.1-dev/include/freetype2 -I/nix/store/6gh48alr973cgb5n23yi3jmbczjjxkyd-freetype-2.10.1-dev/include -I/nix/store/h6axmv3mqxbcyglbvssyyxs7ygarac3s-glib-2.62.2-dev/include -I/nix/store/h6axmv3mqxbcyglbvssyyxs7ygarac3s-glib-2.62.2-dev/include/glib-2.0 -I/nix/store/g36db50al32sniblic51qsn7fjd1h92s-glib-2.62.2/lib/glib-2.0/include -I/nix/store/baksyvm2snncb5bn9wl7x6x7q78ykbk7-gdk-pixbuf-2.40.0-dev/include/gdk-pixbuf-2.0 -I/nix/store/h0b47l5z1fqxcgxnh87j4dj72l71zn8h-wayland-1.17.0/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Werror -std=c11 -MD -MQ 'oguri@exe/oguri.c.o' -MF 'oguri@exe/oguri.c.o.d' -o 'oguri@exe/oguri.c.o' -c ../oguri.c
../oguri.c: In function 'oguri_ipc_handle_command':
../oguri.c:142:3: error: ignoring return value of 'write', declared with attribute warn_unused_result [-Werror=unused-result]
   write(client, "Unable to read config from IPC\n", 33);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
ninja: build stopped: subcommand failed.
builder for '/nix/store/k88ns4vwhmdsd9i8ldvgmz64dnza6gcq-oguri-88746bf6395b275ff70983de71d0ae2702856a5e.drv' failed with exit code 1
error: build of '/nix/store/k88ns4vwhmdsd9i8ldvgmz64dnza6gcq-oguri-88746bf6395b275ff70983de71d0ae2702856a5e.drv' failed

Segfault in oguri_next_buffer

There appears to be a code path somewhere that doesn't initialize the wl_list of buffers on an output:

Core was generated by `/home/vil/Code/oguri/build/oguri -s 0 /home/vil/.config/wallpaper fill'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007fc5b7be88e0 in wl_list_insert () from /usr/lib/libwayland-client.so.0
(gdb) back
#0  0x00007fc5b7be88e0 in wl_list_insert () at /usr/lib/libwayland-client.so.0
#1  0x000055ac33a2b1f7 in oguri_next_buffer (output=0x55ac33bd0080) at ../buffers.c:99
#2  0x000055ac33a2a9c5 in oguri_render_frame (anim=0x55ac33bc4b90) at ../animation.c:103
#3  0x000055ac33a2bc58 in main (argc=5, argv=0x7ffe2f72bbf8) at ../oguri.c:250
(gdb) frame 2
#2  0x000055ac33a2a9c5 in oguri_render_frame (anim=0x55ac33bc4b90) at ../animation.c:103
warning: Source file is more recent than executable.
103			struct oguri_buffer * buffer = oguri_next_buffer(output);
(gdb) info locals
buffer = 0x0
image = 0x55ac33be1640
first_cycle = true
output = 0x55ac33bd0080
(gdb) print *output
$2 = {oguri = 0x7ffe2f72ba90, link = {prev = 0x55ac33bc4bd8, next = 0x55ac33bc4bd8}, 
  name = 0x55ac33bcff70 "DP-3", output = 0x55ac33bd0030, surface = 0x55ac33bd00e0, 
  layer_surface = 0x55ac33bd0900, width = 2560, height = 1440, scale = 1, 
  cached_frames = 0, buffer_ring = {prev = 0x0, next = 0x0}}

I don't know exactly when this occurred (just noticed it in coredumpctl), but I believe it was immediately after oguri was started by sway (as swaybg_command) when I connected the output.

Not sure how this is happening, as list initialization is the very first thing that oguri_output_create does.

Running a second instance of oguri replaces existing IPC socket

This is a pretty uncommon thing to do, but it can happen for instance when testing a nested compositor. It could also happen by accident. Two options:

  • When creating the socket, attempt to connect to it first to determine if an oguri already lives there. If so, disable the new instance's IPC. (Can't just check the file exists, could get stuck.)
  • Add the pid to the filename, at the cost of the path no longer being predictable.

The second option could be improved by a configurable path.

Question: is ogurictl output * supported?

Issue 31 mentions a case where ogurictl output * --image whatever.png doesn't override the config file value if it is set.

But I have config output value set as

[output *]

and I'm not able to change images with ogurictl output * --image whatever.png

My images change as expected with a specific output ogurictl output eDP-1 --image whatever.png


I'm using oguri in a small dynamic wallpaper script so it would be nice to be able to set wallpapers with * instead of trying to figure out what displays are available.

Thanks for your help.

Static images aren't redrawn after output scale change

Currently animations rely on there being a next frame to change scale. We need to schedule a redraw of the current frame unconditionally after output scale changes, since we don't know when or if the next frame will occur.

swaybg mode doesn't take changes in display order into account

This can result in multiple oguris running on the same display when new ones are connected, leaving the new one out in the cold. This isn't worth fixing before #3, at which point this mode can be moved to the ipc client and we can have just a single oguri running.

IPC config should override specific outputs in config file

Currently if you change config like ogurictl output * --image whatever.png but you have a non-wildcard output section in the config file, the change will not affect that output. This is technically correct, but not what any user would expect.

Additional formats?

Is there any possibility of supporting formats like

  • APNG
  • WebP
  • FLIF

or even a video format like mp4?

I ask because I have a detailed animation that I would like as a wallpaper that gif's 256 color limit absolutely destroys. If there is another way I can get a full color range with oguri as it is, that would also work. Thanks for your hard work and awesome project!

Investigate gdk-pixbuf replacements

This isn't urgent, but a library that would give us more control of the animation would be preferrable. Right now we're relying on a pretty awful hack to be able to determine the number of frames present in a gif.

Support multiple outputs

If you're using the same image on all displays, it would be nice to have just one process hogging CPU time instead of n.

Support drawing edge gradients over image

It would be nice to use the fact that we have all of cairo already available to draw shadows/gradients along the screen edges to help readability of transparent bars.

So much cpu usage

Swappshot Tue Nov 10 16:33:07 2020

Idk how can I decrase cpu usage. I got ryzen7 3700u cpu. Its always usa that much cpu. These are my config file

Drawing Multiple Images

Hello! First of all thank you for this I really enjoy it. However one issue I have found is when using ogurictl after looking at the code from what I understand instead of drawing the new image then getting rid of the last one it seems you just keep drawing the new image over the new one. This wouldn't be an issue but if you switch wallpapers a lot(like a wallpaper switcher or something). It leads to very high memory usage.

wallpaper gif resources

Thanks for making oguri, This looks nice!

Do you have suggestions regarding good resources to pick gif wallpapers from?
I usually find mine on http://wallheaven.cc/ , but they don't seem to share gifs there. And https://giphy.com/ doesn't seem to offer the possibility to search by resolution.

ogurictl seems to be missing

Hello, very promising project indeed. I have a problem with one thing though.

$ oguri -h
Usage: oguri [-c <config-path>]

  -c  Path to the configuration file to use.
      (default: $XDG_CONFIG_HOME/oguri/config)
  -h  Show this text.

To control oguri while it is running, use `ogurictl`.

To control oguri while it is running, use ogurictl.

The promised utility is nowhere to be seen ๐Ÿ˜ฑ

oguri-swaybg not working

Hi, I have added swaybg_command oguri-swaybg to my sway config but all i get is a grey backround.

There are no errors in the log so I don't know what the problem is

Not filling the whole display with the animation

Is there a way to leave the animation in the original resolution ie. smaller than the resolution of the output?

I would just like to make a small animated "amblem" in the center of the display with the surrounding background fixed black color.

Fails to build with warnings as errors - ignoring return value of 'write'

[18/19] Compiling C object 'oguri@exe/oguri.c.o'.
FAILED: oguri@exe/oguri.c.o
/nix/store/ds1prvgw3i3ic8c7axyrw4lwm3d0gqab-gcc-wrapper-7.4.0/bin/cc -Ioguri@exe -I. -I.. -I/nix/store/4p0ygg1j1qd8ib734sfziw5r18w07gmv-cairo-1.16.0-dev/include/cairo -I/nix/store/c8nphb8azaxx998m41jhigl4ijb1c3sk-freetype-2.10.0-dev/include/freetype2 -I/nix/store/c8nphb8azaxx998m41jhigl4ijb1c3sk-freetype-2.10.0-dev/include -I/nix/store/mkbq9i2m8qva6s8wnw1c9yjg4zsb86p5-glib-2.60.1-dev/include -I/nix/store/mkbq9i2m8qva6s8wnw1c9yjg4zsb86p5-glib-2.60.1-dev/include/glib-2.0 -I/nix/store/yrmrvha03pvdyi9ww2bi6xjpk5930sf8-glib-2.60.1/lib/glib-2.0/include -I/nix/store/6pz21jzyq30c44rw0w2z3nw80sjhcw4i-gtk+3-3.24.8-dev/include/gtk-3.0 -I/nix/store/02cq6d4nv6c39kcn2pjy5av8agc7hl30-pango-1.43.0-dev/include/pango-1.0 -I/nix/store/wkn688d6pkns13wlbva2m64v97ybfqjx-gdk-pixbuf-2.38.1-dev/include/gdk-pixbuf-2.0 -I/nix/store/8z6xdhf6z2lb1y6h7380p3q8x2ya38d2-wayland-1.17.0/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c11 -O3  -MD -MQ 'oguri@exe/oguri.c.o' -MF 'oguri@exe/oguri.c.o.d' -o 'oguri@exe/oguri.c.o' -c ../oguri.c
../oguri.c: In function 'signal_handler':
../oguri.c:37:2: error: ignoring return value of 'write', declared with attribute warn_unused_result [-Werror=unused-result]
  write(signal_pipe[1], &number, sizeof(number));
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../oguri.c: In function 'main':
../oguri.c:303:5: error: ignoring return value of 'write', declared with attribute warn_unused_result [-Werror=unused-result]
     write(client, &"okey dokey\n", 11);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
ninja: build stopped: subcommand failed.

env vars cannot be expanded with 6937fee anymore

Hey,

to use the same wallpaper in multiple tools I set it as an environment variable called WALLPAPER. Prior to 6937fee it was possible to simply set image=$WALLPAPER inside the config file, but as a regression this is not possible anymore.
Possible workarounds might be to symlink the current wallpaper or to rewrite the config file on change if the fix is not trivial, but I really liked to simply expand my variable. :)

By the way: I am packaging oguri for openSUSE: https://build.opensuse.org/package/show/home:jlkDE/oguri

Feature request - ogurictl reload

Hi there, thanks so much for oguri, it's a great tool!

I'm opening this issue to express interest in a way to have oguri re-read its config file and seamlessly apply any changes. My use case is that I want to have my wallpaper change depending on the time of day. I have a system that re-writes configs for color schemes and other theme elements depending on the time of day, and I'd like to have it re-write my oguri config and then reload oguri to show a new wallpaper.

I could use ogurictl now to directly load a path to a new background image, but that would require running a different ogurictl command depending on the time of day which doesn't quite work for me.

Thanks for your consideration!

Add IPC socket

This could be useful for a few things, off the top of my head:

  • Changing the image on the fly
  • Pausing/resuming animation (for example, while the desktop is mostly covered)
  • Ok, maybe just two things

Segfault when disconnecting output

Jun 23 21:25:34 sayaka systemd-coredump[7883]: Process 603 (oguri) of user 1000 dumped core.
                                               
                                               Stack trace of thread 603:
                                               #0  0x00007fad2d03de14 wl_proxy_marshal (libwayland-client.so.0)
                                               #1  0x00005575ac1c577c n/a (/home/vil/Code/oguri/build/oguri)
                                               #2  0x00005575ac1c5d73 n/a (/home/vil/Code/oguri/build/oguri)
                                               #3  0x00005575ac1c6bf4 n/a (/home/vil/Code/oguri/build/oguri)
                                               #4  0x00007fad2cc9f06b __libc_start_main (libc.so.6)
                                               #5  0x00005575ac1c546a n/a (/home/vil/Code/oguri/build/oguri)

Crashes on launch

โžœ oguri git:(master) โœ— build/oguri
oguri: ../oguri.c:308: main: Assertion `oguri.display' failed.
[1] 165840 IOT instruction (core dumped) builda/oguri

Feature request - Ability to force display of an image even if it doesn't seem to be a GIF

My use-case for this would be that I'm currently trying to "force" GLava to work on Wayland. What I plan to do is to trick OBS into recording into a FIFO and make oguri play back the fifo. Unfortunately, oguri doesn't recognize the FIFO as a valid GIF file:

File does not appear to be a GIF file
Could not open image '/home/user/glava-fifos/test.gif': File does not appear to be a GIF file

I've tried looking for the error in the code, and I don't see it. If I knew where to find it, I'd definitely make a PR instead of making a feature request.

edit1: This is actually very probably an A/B problem, but GLava probably won't ever be on wayland, best I could hope for is probably GIF output to a FIFO which is.. still this feature request.

Support other Formats

Hi,

I just tried oguri and its awesome. Its totally worth the 18GB Ram it would use to load my 388MB Gif which I converted from an Webm, but sadly my Kernel thinks differently. Can you add support to other Video formats like webm?

[Segmentation fault] How use it?

Hi,
I haven't installed sway yet. How can I use oguri (some tutorial for beginner)? My command in terminal (I'm in ../oguri/build/) ./oguri -c /home/user/Wallpaper/config give me back:
Segmentation fault
My config is:

[output LVDS-1]
image=/home/zic/Wallpaper/background.jpg
filter=nearest
scaling-mode=fill
anchor=center

so I look at log:
sudo tail -f /var/log/syslog

Sep  9 23:47:58 Debian-zic kernel: [20781.071150] oguri[14287]: segfault at 0 ip 00007fe704d54274 sp 00007ffc918334a0 error 4 in libwayland-client.so.0.3.0[7fe704d53000+6000]
Sep  9 23:47:58 Debian-zic kernel: [20781.071156] Code: 29 ac 24 50 01 00 00 0f 29 b4 24 60 01 00 00 0f 29 bc 24 70 01 00 00 64 48 8b 04 25 28 00 00 00 48 89 84 24 c8 00 00 00 31 c0 <48> 8b 13 4c 8d 6c 24 20 48 8d 4c 24 08 48 8d 84 24 b0 01 00 00 c7

but I don't understand what it means..

files in : /home/user/Wallpaper/ : ls -lah

drwxr-xr-x 2 zic zic 4,0K wrz 10 00:16 .
drwxr-xr-x 7 zic zic 4,0K wrz 9 23:23 ..
-rwxr-xr-x 1 zic zic 189K wrz 9 02:01 background.jpg
-rw-r--r-- 1 zic zic 93 wrz 10 00:15 config
-rw-r--r-- 1 zic zic 24M wrz 9 03:42 matrix.mp4

OS: Debian 10 (Wayland)

[Feature request] IPC reload current wallpaper

Reload image from disc, if ogurictl output * --image path/to/wallpaper.png issued with --image argument pointing to current image.

Use case: I have single wallpaper file and timer, that periodicaly replaces that file with new one. After image is replaced, I have option to issue ogurictl command, but currently nothin changes. I assume this is optimization to reduce load.

Another solution would be something like ougrictl reload to ask reload image from disk.

running from a crontab

It seems that running oguri from a crontab results in a socket not found error

Unable to connect to oguri socket: No such file or directory

I am not sure what this means.

Image filenames with spaces cause errors

When using ogurictl with an image that has a space in the filename it outputs Invalid configuration, and oguri outputs [ipc:2] Failed to parse property 'image'.

There is a workaround to this which is to add escaped quotes to the filename, such as ogurictl output --image \"/tmp/with\ space.jpg\" '*' instead of ogurictl output --image /tmp/with\ space.jpg '*'.

Build issue on Fedora 34

Hello, today i found this great repository and tried to use and therefore build it, but during the building process i encountered a strange issue, despite cairo (cairo-1.17.4-3.fc34.x86_64) being already installed i received this:
`Build type: native build
Project name: oguri
Project version: 1.0.0
C compiler for the host machine: cc (gcc 11.1.1 "cc (GCC) 11.1.1 20210428 (Red Hat 11.1.1-1)")
C linker for the host machine: cc ld.bfd 2.35.1-41
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (1.7.3)
Did not find CMake 'cmake'
Found CMake: NO
Run-time dependency cairo found: NO (tried pkgconfig)

meson.build:14:0: ERROR: Dependency "cairo" not found, tried pkgconfig`

Flickering between image change when used as swaybg

Hi, sorry to create two issues in one day. Now that the previous one was fixed I have found this one.

Basically, when integrated with sway the background seems to flicker in between image changes. The reason I had switched to oguri was because I was led to believe (while reading about this exact same problem with swaybg) that oguri would not flicker.

Is this something that can easily fixed?

Crash - cannot splice

Oguri crashes after playing through the gif once with the following in its log:

request could not be marshaled: can't send file descriptor
Error sending request: Broken pipe
Failed to read Wayland events: Broken pipe

I'm on a very minimal debian install, so I may be missing some obvious dependency. Also, the file I'm playing is quite large (originally a 1:15 1080p video before conversion to a gif)

Varlink API

Varlink is a simple IPC API. This could be used for directly controlling oguri from other applications, without having to invoke ogurictl.
https://varlink.org/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.