Giter VIP home page Giter VIP logo

firedecor's People

Contributors

ahoyiski avatar fuzzyquils avatar marcusbritanicus avatar probonopd avatar ssfdust 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

Watchers

 avatar  avatar  avatar

firedecor's Issues

Fatal error when building

Hi, I tried compiling and installing but it seems to not build. I don't know if I'm doing anything wrong so sorry if I'm missing something, lol

Here is the output when I run meson compile -C build

FAILED: src/libfiredecor.so.p/firedecor-subsurface.cpp.o
c++ -Isrc/libfiredecor.so.p -Isrc -I../src -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/include/libdrm -I/usr/include/pixman-1 -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -O0 -g -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -fPIC -pthread -MD -MQ src/libfiredecor.so.p/firedecor-subsurface.cpp.o -MF src/libfiredecor.so.p/firedecor-subsurface.cpp.o.d -o src/libfiredecor.so.p/firedecor-subsurface.cpp.o -c ../src/firedecor-subsurface.cpp
../src/firedecor-subsurface.cpp:17:10: fatal error: cairo-simpler.hpp: No such file or directory
   17 | #include "cairo-simpler.hpp"
      |          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[5/6] Compiling C++ object src/libfiredecor.so.p/firedecor-theme.cpp.o
In file included from ../src/firedecor-theme.cpp:13:
/usr/include/librsvg-2.0/librsvg/rsvg.h:125:66: warning: "/*" within comment [-Wcomment]
  125 |  * included through XML entities) if those files are in `/foo/bar/*` or in `/foo/bar/*\/.../*`.
      |
/usr/include/librsvg-2.0/librsvg/rsvg.h:125:85: warning: "/*" within comment [-Wcomment]
/usr/include/librsvg-2.0/librsvg/rsvg.h:125:92: warning: "/*" within comment [-Wcomment]
ninja: build stopped: subcommand failed.```

custom button not displayed

Thanks for this great plugin.

So, following the instruction on github page; i created a folder ~/.config/firedecor/button-styles/guy. In it I placed 9 png files named:
close-hover.png
minimize-hover.png
toggle-maximize-hover.png
close.png
minimize.png
toggle-maximize.png
close-pressed.png
minimize-pressed.png
toggle-maximize-pressed.png

I replaced "simple" with "guy" in button-style within wayfire,ini. Then restarted wayfire but the windows still use the default style.

Please, is there anything am doing wrong. I installed the package from AUR using yay as helper.

Thanks

Build failed with the latest wayfire core

Directory already configured.

Just run your build command (e.g. ninja) and Meson will regenerate as necessary.
If ninja fails, run "ninja reconfigure" or "meson setup --reconfigure"
to force Meson to regenerate.

If build failures persist, run "meson setup --wipe" to rebuild from scratch
using the same options as passed when configuring the build.
To change option values, run "meson configure" instead.
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja -C /home/ssfdust/.cache/updatepkgs/wayfire-firedecor-git/src/wayfire-firedecor/build
ninja: Entering directory `/home/ssfdust/.cache/updatepkgs/wayfire-firedecor-git/src/wayfire-firedecor/build'
[1/2] Compiling C++ object src/libfiredecor.so.p/firedecor-theme.cpp.o
FAILED: src/libfiredecor.so.p/firedecor-theme.cpp.o 
c++ -Isrc/libfiredecor.so.p -Isrc -I../src -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/include/libdrm -I/usr/include/pixman-1 -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++20 -O0 -g -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -fPIC -pthread -MD -MQ src/libfiredecor.so.p/firedecor-theme.cpp.o -MF src/libfiredecor.so.p/firedecor-theme.cpp.o.d -o src/libfiredecor.so.p/firedecor-theme.cpp.o -c ../src/firedecor-theme.cpp
../src/firedecor-theme.cpp: In member function ‘cairo_surface_t* wf::firedecor::decoration_theme_t::form_button(wf::firedecor::button_type_t, double, bool, bool) const’:
../src/firedecor-theme.cpp:399:24: error: jump to case label
  399 |                   case BUTTON_MINIMIZE:
      |                        ^~~~~~~~~~~~~~~
../src/firedecor-theme.cpp:375:56: note:   crosses initialization of ‘wf::pointf_t south_west_arrow_pos’
  375 |                     wf::pointf_t north_east_arrow_pos, south_west_arrow_pos;
      |                                                        ^~~~~~~~~~~~~~~~~~~~
../src/firedecor-theme.cpp:375:34: note:   crosses initialization of ‘wf::pointf_t north_east_arrow_pos’
  375 |                     wf::pointf_t north_east_arrow_pos, south_west_arrow_pos;
      |                                  ^~~~~~~~~~~~~~~~~~~~
../src/firedecor-theme.cpp:356:20: warning: enumeration value ‘BUTTON_MINIMIZE’ not handled in switch [-Wswitch]
  356 |             switch (button) {
      |                    ^
ninja: build stopped: subcommand failed.

Unable to run on wayfire 0.8.0

Hi again,
Sorry if I'm doing something wrong again. After the last issue I managed to get it to compile but for the past few days I haven't been able to run it. Whenever I add firedecor to the wayfire ini, I get the following error whenever I run wayfire:

  what():  No such option: firedecor/ignore_views
EE 03-05-22 16:42:57.000 - [src/main.cpp:132] Fatal error: Fatal error(SIGABRT)
EE 03-05-22 16:42:57.020 - #1  wf::print_trace(bool) ??:?
EE 03-05-22 16:42:57.036 - #2  __restore_rt libc_sigaction.c:?
EE 03-05-22 16:42:57.056 - #3  __pthread_kill_implementation pthread_kill.c:?
EE 03-05-22 16:42:57.076 - #4  __GI_raise :?
EE 03-05-22 16:42:57.096 - #5  __GI_abort :?
EE 03-05-22 16:42:57.133 - #6  __gnu_cxx::__verbose_terminate_handler() /usr/src/debug/gcc/libstdc++-v3/libsupc++/vterminate.cc:75
EE 03-05-22 16:42:57.162 - #7  __cxxabiv1::__terminate(void (*)()) /usr/src/debug/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:48
EE 03-05-22 16:42:57.200 - #8  std::terminate() ??:?
EE 03-05-22 16:42:57.252 - #9  __cxa_throw ??:?
EE 03-05-22 16:42:57.274 - #10 ?? ??:0
EE 03-05-22 16:42:57.293 - #11 wf::view_matcher_t::view_matcher_t(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ??:?
EE 03-05-22 16:42:57.470 - #12 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_data() const /usr/include/c++/11.2.0/bits/basic_string.h:195
EE 03-05-22 16:42:57.504 - #13 plugin_manager::reload_dynamic_plugins() ??:?
EE 03-05-22 16:42:57.533 - #14 plugin_manager::plugin_manager(wf::output_t*) ??:?
EE 03-05-22 16:42:57.558 - #15 wf::output_impl_t::start_plugins() ??:?
EE 03-05-22 16:42:57.587 - #16 wf::transfer_views(wf::output_t*, wf::output_t*) ??:?
EE 03-05-22 16:42:57.611 - #17 wf::output_layout_t::~output_layout_t() ??:?
EE 03-05-22 16:42:57.638 - #18 wf::transfer_views(wf::output_t*, wf::output_t*) ??:?
EE 03-05-22 16:42:57.665 - #19 wf::transfer_views(wf::output_t*, wf::output_t*) ??:?
EE 03-05-22 16:42:57.692 - #20 _start ??:?
EE 03-05-22 16:42:57.711 - #21 wlr_signal_emit_safe ??:?
EE 03-05-22 16:42:57.733 - #22 wlr_signal_emit_safe ??:?
EE 03-05-22 16:42:57.744 - #23 wlr_wl_output_create ??:?
EE 03-05-22 16:42:57.763 - #24 wlr_wl_output_create ??:?
EE 03-05-22 16:42:57.786 - #25 wlr_wl_output_create ??:?
EE 03-05-22 16:42:57.808 - #26 main ??:?
EE 03-05-22 16:42:57.822 - #27 __libc_start_call_main libc-start.c:?
EE 03-05-22 16:42:57.837 - #28 __libc_start_main_alias_2 :?
EE 03-05-22 16:42:57.865 - #29 _start ??:?

I don't know what I'm doing wrong but I've installed firedecor and wayfire using the aur (wayfire-firedecor-git and wayfire-git). Thanks

Random coloring on rounded corners

First of all thanks for the awesome plugin, but I'm having a very strange issue. I'm on arch linux running wayfire compiled from source on the most recent master branch, using system wlroots. Likewise with firedecor, compiled from source on the most recent master branch. The problem is that there are strange gaps in the border near the top and bottom of the window, and when I add a corner radius these gaps become bright red instead. Also, you seem to be able to see the border color behind the outlines, in the corner.

Here is an image album of the problem in question.
https://postimg.cc/gallery/TXsFQ3L

BUG: Rounded corners are only applied to top titlebars

Hello, I guess there's another issue, the rounded corners are only applied to the titlebars, not on the bottom of the window. I don't know if that's the natural behaviour, but if it is, can you pleaseee include an option to enable bottom rounded corners too? Since I use server side decors instead of client side for a uniform look.

build failed because wayfire dependency not found...

im literally running these commands via konsole on wayfire and its not finding wayfire 💀

Main binary: /usr/bin/python3
Build Options: 
Python system: Linux
The Meson build system
Version: 1.2.0
Source dir: /home/lolzsicka/Firedecor
Build dir: /home/lolzsicka/Firedecor/build
Build type: native build
Project name: firedecor
Project version: 0.1
-----------
Detecting compiler via: `cc --version` -> 0
stdout:
cc (GCC) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-----------
Running command: cc -E -dM -
-----
-----------
Detecting linker via: `cc -Wl,--version` -> 0
stdout:
GNU ld (GNU Binutils) 2.39
Copyright (C) 2022 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
-----------
stderr:
collect2 version 12.2.0
/usr/bin/ld -plugin /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/liblto_plugin.so -plugin-opt=/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/lto-wrapper -plugin-opt=-fresolution=/tmp/cc45vjWF.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/Scrt1.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/crti.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/crtbeginS.o -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0 -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../.. --version -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/crtendS.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/crtn.o
-----------
Sanity testing C compiler: cc
Is cross compiler: False.
Sanity check compiler command line: cc sanitycheckc.c -o sanitycheckc.exe -D_FILE_OFFSET_BITS=64
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command:  /home/lolzsicka/Firedecor/build/meson-private/sanitycheckc.exe
C compiler for the host machine: cc (gcc 12.2.0 "cc (GCC) 12.2.0")
C linker for the host machine: cc ld.bfd 2.39
-----------
Detecting linker via: `gcc-ar --version` -> 0
stdout:
GNU ar (GNU Binutils) 2.39
Copyright (C) 2022 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
-----------
-----------
Detecting compiler via: `c++ --version` -> 0
stdout:
c++ (GCC) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-----------
Running command: c++ -E -dM -
-----
-----------
Detecting linker via: `c++ -Wl,--version` -> 0
stdout:
GNU ld (GNU Binutils) 2.39
Copyright (C) 2022 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
-----------
stderr:
collect2 version 12.2.0
/usr/bin/ld -plugin /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/liblto_plugin.so -plugin-opt=/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccQ11JaE.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/Scrt1.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/crti.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/crtbeginS.o -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0 -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../.. --version -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/crtendS.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/crtn.o
-----------
Sanity testing C++ compiler: c++
Is cross compiler: False.
Sanity check compiler command line: c++ sanitycheckcpp.cc -o sanitycheckcpp.exe -D_FILE_OFFSET_BITS=64
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command:  /home/lolzsicka/Firedecor/build/meson-private/sanitycheckcpp.exe
C++ compiler for the host machine: c++ (gcc 12.2.0 "c++ (GCC) 12.2.0")
C++ linker for the host machine: c++ ld.bfd 2.39
-----------
Detecting compiler via: `cc --version` -> 0
stdout:
cc (GCC) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-----------
Running command: cc -E -dM -
-----
-----------
Detecting linker via: `cc -Wl,--version` -> 0
stdout:
GNU ld (GNU Binutils) 2.39
Copyright (C) 2022 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
-----------
stderr:
collect2 version 12.2.0
/usr/bin/ld -plugin /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/liblto_plugin.so -plugin-opt=/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccYCjFBx.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/Scrt1.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/crti.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/crtbeginS.o -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0 -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../.. --version -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/crtendS.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/crtn.o
-----------
Sanity testing C compiler: cc
Is cross compiler: False.
Sanity check compiler command line: cc sanitycheckc.c -o sanitycheckc.exe -D_FILE_OFFSET_BITS=64
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command:  /home/lolzsicka/Firedecor/build/meson-private/sanitycheckc.exe
C compiler for the build machine: cc (gcc 12.2.0 "cc (GCC) 12.2.0")
C linker for the build machine: cc ld.bfd 2.39
-----------
Detecting linker via: `gcc-ar --version` -> 0
stdout:
GNU ar (GNU Binutils) 2.39
Copyright (C) 2022 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
-----------
-----------
Detecting compiler via: `c++ --version` -> 0
stdout:
c++ (GCC) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-----------
Running command: c++ -E -dM -
-----
-----------
Detecting linker via: `c++ -Wl,--version` -> 0
stdout:
GNU ld (GNU Binutils) 2.39
Copyright (C) 2022 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
-----------
stderr:
collect2 version 12.2.0
/usr/bin/ld -plugin /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/liblto_plugin.so -plugin-opt=/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccKYYwjb.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/Scrt1.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/crti.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/crtbeginS.o -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0 -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../.. --version -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/crtendS.o /usr/lib64/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib64/crtn.o
-----------
Sanity testing C++ compiler: c++
Is cross compiler: False.
Sanity check compiler command line: c++ sanitycheckcpp.cc -o sanitycheckcpp.exe -D_FILE_OFFSET_BITS=64
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command:  /home/lolzsicka/Firedecor/build/meson-private/sanitycheckcpp.exe
C++ compiler for the build machine: c++ (gcc 12.2.0 "c++ (GCC) 12.2.0")
C++ linker for the build machine: c++ ld.bfd 2.39
Build machine cpu family: x86_64
Build machine cpu: x86_64
Host machine cpu family: x86_64
Host machine cpu: x86_64
Target machine cpu family: x86_64
Target machine cpu: x86_64
Pkg-config binary for 1 is not cached.
Pkg-config binary missing from cross or native file, or env var undefined.
Trying a default Pkg-config fallback at pkg-config
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Determining dependency 'wayfire' with pkg-config executable '/usr/bin/pkg-config'
env[PKG_CONFIG_PATH]: 
-----------
Called: `/usr/bin/pkg-config --modversion wayfire` -> 1
stderr:
Package wayfire was not found in the pkg-config search path.
Perhaps you should add the directory containing `wayfire.pc'
to the PKG_CONFIG_PATH environment variable
No package 'wayfire' found
-----------
CMake binary for 1 is not cached
CMake binary missing from cross or native file, or env var undefined.
Trying a default CMake fallback at cmake
Found CMake: /usr/bin/cmake (3.27.6)
Extracting basic cmake information
CMake Toolchain: Calling CMake once to generate the compiler state
Calling CMake (['/usr/bin/cmake']) in /home/lolzsicka/Firedecor/build/meson-private/__CMake_compiler_info__ with:
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-G"
  - "Ninja"
  - "-DCMAKE_TOOLCHAIN_FILE=/home/lolzsicka/Firedecor/build/meson-private/__CMake_compiler_info__/CMakeMesonTempToolchainFile.cmake"
  - "."
Try CMake generator: auto
Calling CMake (['/usr/bin/cmake']) in /home/lolzsicka/Firedecor/build/meson-private/cmake_wayfire with:
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-DCMAKE_TOOLCHAIN_FILE=/home/lolzsicka/Firedecor/build/meson-private/cmake_wayfire/CMakeMesonToolchainFile.cmake"
  - "."
  -- Module search paths:    ['/', '/usr', '/usr/local']
  -- CMake root:             /usr/share/cmake-3.27
  -- CMake architectures:    []
  -- CMake lib search paths: ['lib', 'lib32', 'lib64', 'libx32', 'share']
Preliminary CMake check failed. Aborting.
Run-time dependency wayfire found: NO (tried pkgconfig and cmake)

meson.build:16:13: ERROR: Dependency "wayfire" not found, tried pkgconfig and cmake

Not all windows affected by decorations

With the default config from the readme I'll get most windows to show up with the expected decorations (ppsspp pictured) but neither of the terminal emulators I have installed (alacritty and kitty) do.
20220618_05h36m12s_grim

20220618_05h35m43s_grim

Doesnt work

Hi @AhoyISki great plugin, I have installed it but i dont see any change in the decorations

d

it just looks like the default window decor in wayfire ;(

Gradient Support? [Enhancement}

Thanks for this wonderful software. I was an ardent user of sawfish window manager but switched over to wayfire since it became so buggy and troublesome. So far, everything is working fine save for some window eye candy which your plugin has addressed.

I am wondering if you have plans of adding gradient support. That would be a very nice addition in improving the appearance of wayfire windows.

#Am yet to wrap my head around the accent portion of firedecor.

Build failed when installing on arch using `yay`

When installing Firedecor using the following command on arch yay -S wayfire-firedecor-git I get the following build errors.

The Meson build system
Version: 0.63.3
Source dir: /home/peyton/.cache/yay/wayfire-firedecor-git/src/wayfire-firedecor
Build dir: /home/peyton/.cache/yay/wayfire-firedecor-git/src/wayfire-firedecor/build
Build type: native build
Project name: firedecor
Project version: 0.1
C compiler for the host machine: cc (gcc 12.2.0 "cc (GCC) 12.2.0")
C linker for the host machine: cc ld.bfd 2.39.0
C++ compiler for the host machine: c++ (gcc 12.2.0 "c++ (GCC) 12.2.0")
C++ linker for the host machine: c++ ld.bfd 2.39.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (1.8.0)
Run-time dependency wayfire found: YES 0.8.0
Run-time dependency wf-config found: YES 0.8.0
Run-time dependency wlroots found: YES 0.15.1
Run-time dependency librsvg-2.0 found: YES 2.55.1
Run-time dependency pixman-1 found: YES 0.42.2
Run-time dependency cairo found: YES 1.17.6
Run-time dependency pango found: YES 1.50.11
Run-time dependency pangocairo found: YES 1.50.11
Run-time dependency glib-2.0 found: YES 2.74.1
Run-time dependency gdk-pixbuf-2.0 found: YES 2.42.10
Run-time dependency Boost found: YES 1.80.0 (/usr)
Message:
----------------
firedecor 0.1
----------------

Build targets in project: 1

Found ninja-1.11.1 at /usr/bin/ninja
ninja: Entering directory `/home/peyton/.cache/yay/wayfire-firedecor-git/src/wayfire-firedecor/build'
[1/6] Compiling C++ object src/libfiredecor.so.p/firedecor-buttons.cpp.o
FAILED: src/libfiredecor.so.p/firedecor-buttons.cpp.o
c++ -Isrc/libfiredecor.so.p -Isrc -I../src -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/include/libdrm -I/usr/include/pixman-1 -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++20 -O0 -g -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -fPIC -pthread -MD -MQ src/libfiredecor.so.p/firedecor-buttons.cpp.o -MF src/libfiredecor.so.p/firedecor-buttons.cpp.o.d -o src/libfiredecor.so.p/firedecor-buttons.cpp.o -c ../src/firedecor-buttons.cpp
../src/firedecor-buttons.cpp: In member function ‘void wf::firedecor::button_t::render(const wf::framebuffer_t&, wf::geometry_t, wf::geometry_t)’:
../src/firedecor-buttons.cpp:75:8: error: ‘const struct wf::framebuffer_t’ has no member named ‘logic_scissor’
   75 |     fb.logic_scissor(scissor);
      |        ^~~~~~~~~~~~~
../src/firedecor-buttons.cpp:76:48: error: invalid initialization of reference of type  const wf::render_target_t&’ from expression of type ‘const wf::framebuffer_t’
   76 |     OpenGL::render_texture(button_texture.tex, fb, geometry, {1, 1, 1, 1},
      |                                                ^~
In file included from ../src/firedecor-buttons.cpp:1:
/usr/include/wayfire/opengl.hpp:255:32: note: in passing argument 2 of ‘void OpenGL::render_texture(wf::texture_t, const wf::render_target_t&, const wf::geometry_t&, glm::vec4, uint32_t)’
  255 |     const wf::render_target_t& framebuffer,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
../src/firedecor-buttons.cpp: In lambda function:
../src/firedecor-buttons.cpp:94:32: warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated]
   94 |     this->idle_damage.run_once([=] () {
      |                                ^
../src/firedecor-buttons.cpp:94:32: note: add explicit ‘this’ or ‘*this’ capture
[2/6] Compiling C++ object src/libfiredecor.so.p/firedecor-subsurface.cpp.o
FAILED: src/libfiredecor.so.p/firedecor-subsurface.cpp.o
c++ -Isrc/libfiredecor.so.p -Isrc -I../src -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/include/libdrm -I/usr/include/pixman-1 -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++20 -O0 -g -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -fPIC -pthread -MD -MQ src/libfiredecor.so.p/firedecor-subsurface.cpp.o -MF src/libfiredecor.so.p/firedecor-subsurface.cpp.o.d -o src/libfiredecor.so.p/firedecor-subsurface.cpp.o -c ../src/firedecor-subsurface.cpp
../src/firedecor-subsurface.cpp:708:18: error: ‘virtual void wf::firedecor::simple_decoration_surface::simple_render(const wf::framebuffer_t&, int, int, const wf::region_t&)’ marked ‘override’, but does not override
  708 |     virtual void simple_render(const framebuffer_t& fb, int x, int y,
      |                  ^~~~~~~~~~~~~
../src/firedecor-subsurface.cpp: In member function ‘void wf::firedecor::simple_decoration_surface::render_title(const wf::framebuffer_t&, wf::geometry_t, wf::geometry_t, wf::firedecor::edge_t, wf::geometry_t)’:
../src/firedecor-subsurface.cpp:253:29: error: ‘const struct wf::framebuffer_t’ has no member named ‘scale’
  253 |             update_title(fb.scale);
      |                             ^~~~~
../src/firedecor-subsurface.cpp:268:12: error: ‘const struct wf::framebuffer_t’ has no member named ‘logic_scissor’
  268 |         fb.logic_scissor(scissor);
      |            ^~~~~~~~~~~~~
../src/firedecor-subsurface.cpp:269:46: error: invalid initialization of reference of type ‘const wf::render_target_t&’ from expression of type ‘const wf::framebuffer_t’
  269 |         OpenGL::render_texture(texture->tex, fb, geometry, glm::vec4(1.0f), bits);
      |                                              ^~
In file included from /usr/include/wayfire/scene.hpp:3,
                 from /usr/include/wayfire/surface.hpp:13,
                 from /usr/include/wayfire/compositor-surface.hpp:4,
                 from ../src/firedecor-subsurface.cpp:6:
/usr/include/wayfire/opengl.hpp:255:32: note: in passing argument 2 of ‘void OpenGL::render_texture(wf::texture_t, const wf::render_target_t&, const wf::geometry_t&, glm::vec4, uint32_t)’
  255 |     const wf::render_target_t& framebuffer,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
../src/firedecor-subsurface.cpp:273:55: error: invalid initialization of reference of type ‘const wf::render_target_t&’ from expression of type ‘const wf::framebuffer_t’
  273 |             OpenGL::render_texture(dots_texture->tex, fb, dots_geometry,
      |                                                       ^~
/usr/include/wayfire/opengl.hpp:255:32: note: in passing argument 2 of ‘void OpenGL::render_texture(wf::texture_t, const wf::render_target_t&, const wf::geometry_t&, glm::vec4, uint32_t)’
  255 |     const wf::render_target_t& framebuffer,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
../src/firedecor-subsurface.cpp: In member function ‘void wf::firedecor::simple_decoration_surface::render_icon(const wf::framebuffer_t&, wf::geometry_t, const wf::geometry_t&, int32_t)’:
../src/firedecor-subsurface.cpp:283:20: error: ‘const struct wf::framebuffer_t’ has no member named ‘logic_scissor’
  283 |                 fb.logic_scissor(scissor);
      |                    ^~~~~~~~~~~~~
../src/firedecor-subsurface.cpp:284:58: error: invalid initialization of reference of type ‘const wf::render_target_t&’ from expression of type ‘const wf::framebuffer_t’
  284 |                 OpenGL::render_texture(icon.texture.tex, fb, g, glm::vec4(1.0f), bits);
      |                                                          ^~
/usr/include/wayfire/opengl.hpp:255:32: note: in passing argument 2 of ‘void OpenGL::render_texture(wf::texture_t, const wf::render_target_t&, const wf::geometry_t&, glm::vec4, uint32_t)’
  255 |     const wf::render_target_t& framebuffer,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
../src/firedecor-subsurface.cpp: In member function ‘void wf::firedecor::simple_decoration_surface::render_background_area(const wf::framebuffer_t&, wf::geometry_t, wf::point_t, wf::geometry_t, std::string, long unsigned int, wf::firedecor::decoration_area_type_t, wf::firedecor::matrix<int>, wf::firedecor::edge_t)’:
../src/firedecor-subsurface.cpp:588:16: error: ‘const struct wf::framebuffer_t’ has no member named ‘logic_scissor’
  588 |             fb.logic_scissor(scissor);
      |                ^~~~~~~~~~~~~
../src/firedecor-subsurface.cpp:590:36: error: invalid initialization of reference of type ‘const wf::render_target_t&’ from expression of type ‘const wf::framebuffer_t’
  590 |                                    fb, a_edges[0] + o, glm::vec4(1.0));
      |                                    ^~
/usr/include/wayfire/opengl.hpp:255:32: note: in passing argument 2 of ‘void OpenGL::render_texture(wf::texture_t, const wf::render_target_t&, const wf::geometry_t&, glm::vec4, uint32_t)’
  255 |     const wf::render_target_t& framebuffer,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
../src/firedecor-subsurface.cpp:592:36: error: invalid initialization of reference of type ‘const wf::render_target_t&’ from expression of type ‘const wf::framebuffer_t’
  592 |                                    fb, a_edges[1] + o, glm::vec4(1.0));
      |                                    ^~
/usr/include/wayfire/opengl.hpp:255:32: note: in passing argument 2 of ‘void OpenGL::render_texture(wf::texture_t, const wf::render_target_t&, const wf::geometry_t&, glm::vec4, uint32_t)’
  255 |     const wf::render_target_t& framebuffer,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
../src/firedecor-subsurface.cpp:607:41: error: ‘const struct wf::framebuffer_t’ has no member named ‘get_orthographic_projection’
  607 |                                      fb.get_orthographic_projection());
      |                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/firedecor-subsurface.cpp:637:16: error: ‘const struct wf::framebuffer_t’ has no member named ‘logic_scissor’
  637 |             fb.logic_scissor(scissor);
      |                ^~~~~~~~~~~~~
../src/firedecor-subsurface.cpp:638:55: error: ‘const struct wf::framebuffer_t’ has no member named ‘get_orthographic_projection’
  638 |             OpenGL::render_rectangle(g + o, color, fb.get_orthographic_projection());
      |                                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/firedecor-subsurface.cpp:639:55: error: ‘const struct wf::framebuffer_t’ has no member named ‘get_orthographic_projection’
  639 |             OpenGL::render_rectangle(g_o, o_color, fb.get_orthographic_projection());
      |                                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/firedecor-subsurface.cpp: In member function ‘void wf::firedecor::simple_decoration_surface::render_background(const wf::framebuffer_t&, wf::geometry_t, const wf::geometry_t&)’:
../src/firedecor-subsurface.cpp:654:56: error: ‘const struct wf::framebuffer_t’ has no member named ‘scale’
  654 |                 int r = theme.get_corner_radius() * fb.scale;
      |                                                        ^~~~~
../src/firedecor-subsurface.cpp:655:46: error: ‘const struct wf::framebuffer_t’ has no member named ‘scale’
  655 |                 update_corners(colors, r, fb.scale);
      |                                              ^~~~~
../src/firedecor-subsurface.cpp:668:20: error: ‘const struct wf::framebuffer_t’ has no member named ‘logic_scissor’
  668 |                 fb.logic_scissor(scissor);
      |                    ^~~~~~~~~~~~~
../src/firedecor-subsurface.cpp:675:55: error: invalid initialization of reference of type ‘const wf::render_target_t&’ from expression of type ‘const wf::framebuffer_t’
  675 |                 OpenGL::render_texture(c->tex[a].tex, fb, c->g + o, glm::vec4(1.0f));
      |                                                       ^~
/usr/include/wayfire/opengl.hpp:255:32: note: in passing argument 2 of ‘void OpenGL::render_texture(wf::texture_t, const wf::render_target_t&, const wf::geometry_t&, glm::vec4, uint32_t)’
  255 |     const wf::render_target_t& framebuffer,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
In file included from /usr/include/c++/12.2.0/memory:76,
                 from /usr/include/wayfire/surface.hpp:7:
/usr/include/c++/12.2.0/bits/unique_ptr.h: In instantiation of ‘std::__detail::__unique_ptr_t<_Tp> std::make_unique(_Args&& ...) [with _Tp = wf::firedecor::simple_decoration_surface; _Args = {nonstd::observer_ptr<wf::view_interface_t>&, wf::firedecor::theme_options&}; __detail::__unique_ptr_t<_Tp> = __detail::__unique_ptr_t<wf::firedecor::simple_decoration_surface>]’:
../src/firedecor-subsurface.cpp:830:63:   required from here
/usr/include/c++/12.2.0/bits/unique_ptr.h:1065:30: error: invalid new-expression of abstract class type ‘wf::firedecor::simple_decoration_surface’
 1065 |     { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
      |                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/firedecor-subsurface.cpp:32:7: note:   because the following virtual functions are pure within ‘wf::firedecor::simple_decoration_surface’:
   32 | class simple_decoration_surface : public surface_interface_t,
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/wayfire/surface.hpp:175:18: note:     ‘virtual void wf::surface_interface_t::simple_render(const wf::render_target_t&, int, int, const wf::region_t&)’
  175 |     virtual void simple_render(const wf::render_target_t& fb, int x, int y,
      |                  ^~~~~~~~~~~~~
[3/6] Compiling C++ object src/libfiredecor.so.p/firedecor.cpp.o
../src/firedecor.cpp: In lambda function:
../src/firedecor.cpp:35:43: warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated]
   35 |     wf::signal_connection_t view_updated{ [=] (wf::signal_data_t *data) {
      |                                           ^
../src/firedecor.cpp:35:43: note: add explicit ‘this’ or ‘*this’ capture
[5/6] Compiling C++ object src/libfiredecor.so.p/firedecor-theme.cpp.o
../src/firedecor-theme.cpp: In member function ‘cairo_surface_t* wf::firedecor::decoration_theme_t::form_button(wf::firedecor::button_type_t, double, bool, bool) const’:
../src/firedecor-theme.cpp:277:12: warning: variable ‘base_qty’ set but not used [-Wunused-but-set-variable]
  277 |     double base_qty;
      |            ^~~~~~~~
ninja: build stopped: subcommand failed.
==> ERROR: A failure occurred in build().
    Aborting...
 -> error making: wayfire-firedecor-git

Here is the location of the installed wayfire.

/usr/lib/wayfire
/usr/include/wayfire
/usr/share/wayfire
/home/peyton/.cache/yay/wayfire
/home/peyton/.cache/yay/wayfire-git/wayfire
/home/peyton/.local/share/wayfire

Window decoration not showing

I am currently using wayfire-git. A few updates ago the firedecor plugin worked fine for me. Currently i have firedecor activated in my config but no window decorations. The configuration stayed the same between the wayfire updates. Is this a general problem with newer wayfire versions? If not, which steps should i take to debug this problem?

Can't build it on a fresh garuda live-cd

Can't build it on a fresh garuda live-cd (no wayland-git as package)

The Meson build system

Version: 0.63.2
Source dir: /home/garuda/wayfire-firedecor-git/src/wayfire-firedecor
Build dir: /home/garuda/wayfire-firedecor-git/src/wayfire-firedecor/build
Build type: native build
Project name: firedecor
Project version: 0.1
C compiler for the host machine: cc (gcc 12.2.0 "cc (GCC) 12.2.0")
C linker for the host machine: cc ld.bfd 2.39.0
C++ compiler for the host machine: c++ (gcc 12.2.0 "c++ (GCC) 12.2.0")
C++ linker for the host machine: c++ ld.bfd 2.39.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (1.8.0)
Run-time dependency wayfire found: YES 0.7.4
Run-time dependency wf-config found: YES 0.7.1
Run-time dependency wlroots found: YES 0.15.1
Run-time dependency librsvg-2.0 found: YES 2.54.4
Run-time dependency pixman-1 found: YES 0.40.0
Run-time dependency cairo found: YES 1.17.6
Run-time dependency pango found: YES 1.50.9
Run-time dependency pangocairo found: YES 1.50.9
Run-time dependency glib-2.0 found: YES 2.72.3
Run-time dependency gdk-pixbuf-2.0 found: YES 2.42.9
Run-time dependency Boost found: YES 1.79.0 (/usr)
Message: 
----------------
firedecor 0.1
----------------

Build targets in project: 1

Found ninja-1.11.1 at /usr/bin/ninja
ninja: Entering directory `/home/garuda/wayfire-firedecor-git/src/wayfire-firedecor/build'
[1/6] Compiling C++ object src/libfiredecor.so.p/firedecor-layout.cpp.o
FAILED: src/libfiredecor.so.p/firedecor-layout.cpp.o 
c++ -Isrc/libfiredecor.so.p -Isrc -I../src -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/include/libdrm -I/usr/include/pixman-1 -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++20 -O0 -g -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -fPIC -pthread -MD -MQ src/libfiredecor.so.p/firedecor-layout.cpp.o -MF src/libfiredecor.so.p/firedecor-layout.cpp.o.d -o src/libfiredecor.so.p/firedecor-layout.cpp.o -c ../src/firedecor-layout.cpp
In file included from ../src/firedecor-layout.cpp:6:
../src/firedecor-layout.hpp:4:10: fatal error: wayfire/region.hpp: No such file or directory
    4 | #include <wayfire/region.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
[2/6] Compiling C++ object src/libfiredecor.so.p/firedecor-subsurface.cpp.o
FAILED: src/libfiredecor.so.p/firedecor-subsurface.cpp.o ` 
c++ -Isrc/libfiredecor.so.p -Isrc -I../src -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/include/libdrm -I/usr/include/pixman-1 -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++20 -O0 -g -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -fPIC -pthread -MD -MQ src/libfiredecor.so.p/firedecor-subsurface.cpp.o -MF src/libfiredecor.so.p/firedecor-subsurface.cpp.o.d -o src/libfiredecor.so.p/firedecor-subsurface.cpp.o -c ../src/firedecor-subsurface.cpp
In file included from ../src/firedecor-subsurface.cpp:14:
../src/firedecor-layout.hpp:4:10: fatal error: wayfire/region.hpp: No such file or directory
    4 | #include <wayfire/region.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
[3/6] Compiling C++ object src/libfiredecor.so.p/firedecor-buttons.cpp.o
../src/firedecor-buttons.cpp: In lambda function:
../src/firedecor-buttons.cpp:94:32: warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated]
   94 |     this->idle_damage.run_once([=] () {
      |                                ^
../src/firedecor-buttons.cpp:94:32: note: add explicit ‘this’ or ‘*this’ capture
[4/6] Compiling C++ object src/libfiredecor.so.p/firedecor.cpp.o
../src/firedecor.cpp: In lambda function:
../src/firedecor.cpp:35:43: warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated]
   35 |     wf::signal_connection_t view_updated{ [=] (wf::signal_data_t *data) {
      |                                           ^
../src/firedecor.cpp:35:43: note: add explicit ‘this’ or ‘*this’ capture
[5/6] Compiling C++ object src/libfiredecor.so.p/firedecor-theme.cpp.o
../src/firedecor-theme.cpp: In member function ‘cairo_surface_t* wf::firedecor::decoration_theme_t::form_button(wf::firedecor::button_type_t, double, bool, bool) const’:
../src/firedecor-theme.cpp:277:12: warning: variable ‘base_qty’ set but not used [-Wunused-but-set-variable]
  277 |     double base_qty;
      |            ^~~~~~~~
ninja: build stopped: subcommand failed.

round corner doesn't work

image

my config

font = sans-serif
font_size = 21
active_font = \#e0e0e0ff
inactive_font = \#e0e0e0ff
max_title_size = 0

border_size = 2 2
active_border = \#e0e0e0e6
inactive_border = \#e0e0e0e6
corner_radius = 15

layout = - P5 title | | P5 -
ignore_views = none
debug_mode = false

Build fails if the latest git version of Wayfire is installed

$ meson compile -C build
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja -C /home/green/tmp/Firedecor/build
ninja: Entering directory `/home/green/tmp/Firedecor/build'
[1/6] Compiling C++ object src/libfiredecor.so.p/firedecor.cpp.o
FAILED: src/libfiredecor.so.p/firedecor.cpp.o 
ccache c++ -Isrc/libfiredecor.so.p -Isrc -I../src -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/lib64/libffi/include -I/usr/include/libdrm -I/usr/include/pixman-1 -I/usr/include/elogind -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/freetype2 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++20 -O0 -g -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -fPIC -pthread -MD -MQ src/libfiredecor.so.p/firedecor.cpp.o -MF src/libfiredecor.so.p/firedecor.cpp.o.d -o src/libfiredecor.so.p/firedecor.cpp.o -c ../src/firedecor.cpp
../src/firedecor.cpp:1:10: fatal error: wayfire/singleton-plugin.hpp: No such file or directory
    1 | #include <wayfire/singleton-plugin.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[2/6] Compiling C++ object src/libfiredecor.so.p/firedecor-subsurface.cpp.o
FAILED: src/libfiredecor.so.p/firedecor-subsurface.cpp.o 
ccache c++ -Isrc/libfiredecor.so.p -Isrc -I../src -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/lib64/libffi/include -I/usr/include/libdrm -I/usr/include/pixman-1 -I/usr/include/elogind -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/freetype2 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++20 -O0 -g -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -fPIC -pthread -MD -MQ src/libfiredecor.so.p/firedecor-subsurface.cpp.o -MF src/libfiredecor.so.p/firedecor-subsurface.cpp.o.d -o src/libfiredecor.so.p/firedecor-subsurface.cpp.o -c ../src/firedecor-subsurface.cpp
../src/firedecor-subsurface.cpp:6:10: fatal error: wayfire/compositor-surface.hpp: No such file or directory
    6 | #include <wayfire/compositor-surface.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[3/6] Compiling C++ object src/libfiredecor.so.p/firedecor-theme.cpp.o
FAILED: src/libfiredecor.so.p/firedecor-theme.cpp.o 
ccache c++ -Isrc/libfiredecor.so.p -Isrc -I../src -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/lib64/libffi/include -I/usr/include/libdrm -I/usr/include/pixman-1 -I/usr/include/elogind -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/freetype2 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++20 -O0 -g -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -fPIC -pthread -MD -MQ src/libfiredecor.so.p/firedecor-theme.cpp.o -MF src/libfiredecor.so.p/firedecor-theme.cpp.o.d -o src/libfiredecor.so.p/firedecor-theme.cpp.o -c ../src/firedecor-theme.cpp
In file included from ../src/firedecor-theme.hpp:4,
                 from ../src/firedecor-theme.cpp:10:
../src/firedecor-buttons.hpp:6:10: fatal error: wayfire/surface.hpp: No such file or directory
    6 | #include <wayfire/surface.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[4/6] Compiling C++ object src/libfiredecor.so.p/firedecor-layout.cpp.o
FAILED: src/libfiredecor.so.p/firedecor-layout.cpp.o 
ccache c++ -Isrc/libfiredecor.so.p -Isrc -I../src -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/lib64/libffi/include -I/usr/include/libdrm -I/usr/include/pixman-1 -I/usr/include/elogind -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/freetype2 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++20 -O0 -g -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -fPIC -pthread -MD -MQ src/libfiredecor.so.p/firedecor-layout.cpp.o -MF src/libfiredecor.so.p/firedecor-layout.cpp.o.d -o src/libfiredecor.so.p/firedecor-layout.cpp.o -c ../src/firedecor-layout.cpp
In file included from ../src/firedecor-layout.hpp:6,
                 from ../src/firedecor-layout.cpp:6:
../src/firedecor-buttons.hpp:6:10: fatal error: wayfire/surface.hpp: No such file or directory
    6 | #include <wayfire/surface.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[5/6] Compiling C++ object src/libfiredecor.so.p/firedecor-buttons.cpp.o
FAILED: src/libfiredecor.so.p/firedecor-buttons.cpp.o 
ccache c++ -Isrc/libfiredecor.so.p -Isrc -I../src -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/lib64/libffi/include -I/usr/include/libdrm -I/usr/include/pixman-1 -I/usr/include/elogind -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/freetype2 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++20 -O0 -g -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -fPIC -pthread -MD -MQ src/libfiredecor.so.p/firedecor-buttons.cpp.o -MF src/libfiredecor.so.p/firedecor-buttons.cpp.o.d -o src/libfiredecor.so.p/firedecor-buttons.cpp.o -c ../src/firedecor-buttons.cpp
In file included from ../src/firedecor-buttons.cpp:4:
../src/firedecor-buttons.hpp:6:10: fatal error: wayfire/surface.hpp: No such file or directory
    6 | #include <wayfire/surface.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
ninja: build stopped: subcommand failed.

At the moment of writing the latest version in git is WayfireWM/wayfire@b8b8486

Additional Info:
surface.hpp has gone in WayfireWM/wayfire@fe2221d
singleton-plugin.hpp is also absent in the latest git version

[Enhancement] Border opacity and blur

Wayfire blur and alpha plugin affects the whole window. It would be nice if this feature is handled by firedecor so that only window borders are affected. Thanks

Can't build on wayfire 0.8.0 Fedora 36

While doing meson compile -c build it gives the following:

ninja: Entering directory `/home/syndrizzle/Downloads/Firedecor/build'
[1/3] Compiling C++ object src/lib...or.so.p/firedecor-subsurface.cpp.o
FAILED: src/libfiredecor.so.p/firedecor-subsurface.cpp.o 
c++ -Isrc/libfiredecor.so.p -Isrc -I../src -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/include/libdrm -I/usr/include/valgrind -I/usr/include/pixman-1 -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++20 -O0 -g -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -fPIC -pthread -MD -MQ src/libfiredecor.so.p/firedecor-subsurface.cpp.o -MF src/libfiredecor.so.p/firedecor-subsurface.cpp.o.d -o src/libfiredecor.so.p/firedecor-subsurface.cpp.o -c ../src/firedecor-subsurface.cpp
In file included from ../src/firedecor-subsurface.cpp:14:
../src/firedecor-layout.hpp:4:10: fatal error: wayfire/region.hpp: No such file or directory
    4 | #include <wayfire/region.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
[2/3] Compiling C++ object src/libfiredecor.so.p/firedecor-layout.cpp.o
FAILED: src/libfiredecor.so.p/firedecor-layout.cpp.o 
c++ -Isrc/libfiredecor.so.p -Isrc -I../src -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/include/libdrm -I/usr/include/valgrind -I/usr/include/pixman-1 -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++20 -O0 -g -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -fPIC -pthread -MD -MQ src/libfiredecor.so.p/firedecor-layout.cpp.o -MF src/libfiredecor.so.p/firedecor-layout.cpp.o.d -o src/libfiredecor.so.p/firedecor-layout.cpp.o -c ../src/firedecor-layout.cpp
In file included from ../src/firedecor-layout.cpp:6:
../src/firedecor-layout.hpp:4:10: fatal error: wayfire/region.hpp: No such file or directory
    4 | #include <wayfire/region.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
ninja: build stopped: subcommand failed. 

high ram usage

I face gradual increases in high ram usage when using this plugin

without the plugin :

image

with the plugin :

image

(note : the initial ram usage of both with & without plugin are similar but the ram usage gradually increases to a lot with the plugin )

HiDPI border rounding artifacts on window corners

I'm using a 3840x2160 display with 1.5 scaling. There are visible artifacts seen around the border radius:
image
It's kind of a rectangle.

From my testing, it appears they only don't appear on 1.0 scaling:
image
The fact that everything is a bit blurry is inherent with fractional scaling I suppose. Would it be feasible to mitigate this "rectangle" effect? I've only ever worked with cairo using the Python bindings, but from my understanding, it could be possible it is introducing its own upscaling artifacts.

Custom Buttons: Which dimensions to use?

If the button image is not perfectly square, the button is not rendered well. sometimes there's flipping and some times, the buttons change its dimension. Does the plugin support only square-like button images or is there something am not doing right?

Only getting decorations in XWayland windows

I've been trying to get firedecor working on my Arch setup.

I've installed wayfire-gitAUR and wayfire-firedecor-gitAUR, but as the latter seems to be broken currently (did not actually install firedecor), I then installed firedecor manually from source, which seems to have gone as expected (/usr/lib/wayfire/libfiredecor.so is now installed along side all of my other plugins).

I updated my config to add firedecor at the end of the plugins list. It does not include any other decoration plugins, and I added the default [firedecor] section for good measure.

Despite all of this, when I launch wayfire, I get no errors involving firedecor and no decorations. Is there something else I've neglected to do?

EDIT: So I left firedecor enabled and after using it for a while, I finally opened an X app and realized that i'm actually getting decorations, but only on XWayland windows.

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.