wayfirewm / wf-config Goto Github PK
View Code? Open in Web Editor NEWA library for managing configuration files, written for wayfire
Home Page: https://wayfire.org/
License: MIT License
A library for managing configuration files, written for wayfire
Home Page: https://wayfire.org/
License: MIT License
In Fedora 34 compiles fine, but build error in f34. GCC version basically identical - 11.0.1
.
FAILED: test/types_test.p/types_test.cpp.o
g++ -Itest/types_test.p -Itest -I../test -Iinclude -I../include -I/usr/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -Wno-deprecated-declarations -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -MD -MQ test/types_test.p/types_test.cpp.o -MF test/types_test.p/types_test.cpp.o.d -o test/types_test.p/types_test.cpp.o -c ../test/types_test.cpp
In file included from /usr/include/signal.h:315,
from /usr/include/c++/11/csignal:42,
from ../test/doctest.h:3241,
from ../test/types_test.cpp:2:
../test/doctest.h:4403:45: error: size of array ‘altStackMem’ is not an integral constant-expression
4403 | static char altStackMem[SIGSTKSZ];
| ^~~~~~~~
../test/doctest.h:4453:48: error: size of array ‘altStackMem’ is not an integral constant-expression
4453 | char FatalConditionHandler::altStackMem[SIGSTKSZ] = {};
| ^~~~~~~~
11.0.1
0.56.2
0.57.2
Currently, the way compound options are done, you have to type something like this:
[section]
option_1_key1 = value
option_2_key1 = value
...
option_1_key1 = value
option_2_key2 = value
...
For the options available in the default wayfire plugins, this isn't too much of a problem, but for compound options with more than 2 options, it could be quite cumbersome and inelegant to have to write the key1, key2, etc, for every single option. Instead, why not let the user also type something like this:
[section]
[.key1]
option_1 = value
option_2 = value
...
[.key2]
option_1 = value
option_2 = value
...
I'm not advocating for the replacement of the original way of doing this, but having that second option would be pretty nice, and it also works well with established INI
formating.
This might be useful in some cases like the Expo plugin in wayfire, because it could be activated via a key/button/touch binding. Needed for: WayfireWM/wayfire#78
wf-shell fails to compile because pkg-config's wf-config.pc uses ==
instead of =
:
Unknown version comparison operator '==' after package name 'wlroots' in file '/usr/lib/pkgconfig/wf-config.pc'
After editing /usr/lib/pkgconfig/wf-config.pc
to use =
instead of ==
compiling moves on. Valid comparison operators are =, <, >, <= or >=.
Recent changes in glibc1 made SIGSTKSZ non-constant and since then bundled doctest.h
fails to compile with
[9/31] g++ -Itest/types_test.p -Itest -I../test -Iinclude -I../include -I/usr/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -Wno-deprecated-declarations -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -MD -MQ test/types_test.p/types_test.cpp.o -MF test/types_test.p/types_test.cpp.o.d -o test/types_test.p/types_test.cpp.o -c ../test/types_test.cpp
FAILED: test/types_test.p/types_test.cpp.o
g++ -Itest/types_test.p -Itest -I../test -Iinclude -I../include -I/usr/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -Wno-deprecated-declarations -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -MD -MQ test/types_test.p/types_test.cpp.o -MF test/types_test.p/types_test.cpp.o.d -o test/types_test.p/types_test.cpp.o -c ../test/types_test.cpp
In file included from /usr/include/signal.h:315,
from /usr/include/c++/11/csignal:42,
from ../test/doctest.h:3241,
from ../test/types_test.cpp:2:
../test/doctest.h:4403:45: error: size of array ‘altStackMem’ is not an integral constant-expression
4403 | static char altStackMem[SIGSTKSZ];
| ^~~~~~~~
../test/doctest.h:4453:48: error: size of array ‘altStackMem’ is not an integral constant-expression
4453 | char FatalConditionHandler::altStackMem[SIGSTKSZ] = {};
| ^~~~~~~~
The issue is tracked in doctest/doctest#473, but there's no fix accepted by the doctest
upstream at the moment.
I can suggest several options for dealing with that:
doctest
package. We already have a workaround applied to Fedora package and wf-config
builds just fine using external doctest
.doctest.h
wf-touch has the same issue.
Title explains it. Right now, lists are ignored from that config file
Also, there needs to be a way for items to be added to the list in ~/.config/wayfire.ini without disrupting the items in /etc (for example, I can have a default list of plugins in /etc and then optionally load in stuff like cube in ~)
We could use a special option type, with a format animation = <msec> <ease>
, for ex. animation = 300 sine
We need this in wf-config too (for option updated callbacks)
Now that debian/devuan includes 'wayfire' in repo, they seem to have forgotten to include wf-shell, so starting wayfire gives blank screen.
Back to building wf-shell then. Which requires wf-config.
Building with gcc-9, on aarch64
wf-config version from 2023-01-17
$ git rev-parse -short HEAD
-short
578b0bf
Build fails with:
$ ninja -C build && sudo ninja -C build install
ninja: Entering directory `build'
[0/31] Compiling C++ object libwf-config.so.0.8.0.p/src_duration.cpp.o
[9/31] Compiling C++ object test/types_test.p/types_test.cpp.o
FAILED: test/types_test.p/types_test.cpp.o
c++ -Itest/types_test.p -Itest -I../test -Iinclude -I../include -I/usr/include -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -O3 -Wno-deprecated-declarations -O2 -ffast-math -ftree-vectorize -fno-strict-overflow -funsafe-math-optimizations -march=armv8-a+crypto+crc+aes+sha2 -O2 -ffast-math -ftree-vectorize -fno-strict-overflow -funsafe-math-optimizations -march=armv8-a+crypto+crc+aes+sha2 -MD -MQ test/types_test.p/types_test.cpp.o -MF test/types_test.p/types_test.cpp.o.d -o test/types_test.p/types_test.cpp.o -c ../test/types_test.cpp
In file included from ../test/types_test.cpp:2:
/usr/include/doctest/doctest.h:4299:57: error: array bound is not an integer constant before ‘]’ token
4299 | static char altStackMem[4 * SIGSTKSZ];
| ^
/usr/include/doctest/doctest.h: In constructor ‘doctest::{anonymous}::FatalConditionHandler::FatalConditionHandler()’:
/usr/include/doctest/doctest.h:4318:33: error: ‘altStackMem’ was not declared in this scope
4318 | sigStack.ss_sp = altStackMem;
| ^~~~~~~~~~~
/usr/include/doctest/doctest.h: At global scope:
/usr/include/doctest/doctest.h:4347:22: error: ‘char doctest::{anonymous}::FatalConditionHandler::altStackMem []’ is not a static data member of ‘struct doctest::{anonymous}::FatalConditionHandler’
4347 | char FatalConditionHandler::altStackMem[] = {};
| ^~~~~~~~~~~~~~~~~~~~~
[10/31] Compiling C++ object test/option_wrapper_test.p/option_wrapper_test.cpp.o
FAILED: test/option_wrapper_test.p/option_wrapper_test.cpp.o
c++ -Itest/option_wrapper_test.p -Itest -I../test -Iinclude -I../include -I/usr/include -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -O3 -Wno-deprecated-declarations -O2 -ffast-math -ftree-vectorize -fno-strict-overflow -funsafe-math-optimizations -march=armv8-a+crypto+crc+aes+sha2 -O2 -ffast-math -ftree-vectorize -fno-strict-overflow -funsafe-math-optimizations -march=armv8-a+crypto+crc+aes+sha2 -MD -MQ test/option_wrapper_test.p/option_wrapper_test.cpp.o -MF test/option_wrapper_test.p/option_wrapper_test.cpp.o.d -o test/option_wrapper_test.p/option_wrapper_test.cpp.o -c ../test/option_wrapper_test.cpp
In file included from ../test/option_wrapper_test.cpp:2:
/usr/include/doctest/doctest.h:4299:57: error: array bound is not an integer constant before ‘]’ token
4299 | static char altStackMem[4 * SIGSTKSZ];
| ^
/usr/include/doctest/doctest.h: In constructor ‘doctest::{anonymous}::FatalConditionHandler::FatalConditionHandler()’:
/usr/include/doctest/doctest.h:4318:33: error: ‘altStackMem’ was not declared in this scope
4318 | sigStack.ss_sp = altStackMem;
| ^~~~~~~~~~~
/usr/include/doctest/doctest.h: At global scope:
/usr/include/doctest/doctest.h:4347:22: error: ‘char doctest::{anonymous}::FatalConditionHandler::altStackMem []’ is not a static data member of ‘struct doctest::{anonymous}::FatalConditionHandler’
4347 | char FatalConditionHandler::altStackMem[] = {};
| ^~~~~~~~~~~~~~~~~~~~~
[11/31] Compiling C++ object test/option_base_test.p/option_base_test.cpp.o
FAILED: test/option_base_test.p/option_base_test.cpp.o
c++ -Itest/option_base_test.p -Itest -I../test -Iinclude -I../include -I/usr/include -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -O3 -Wno-deprecated-declarations -O2 -ffast-math -ftree-vectorize -fno-strict-overflow -funsafe-math-optimizations -march=armv8-a+crypto+crc+aes+sha2 -O2 -ffast-math -ftree-vectorize -fno-strict-overflow -funsafe-math-optimizations -march=armv8-a+crypto+crc+aes+sha2 -MD -MQ test/option_base_test.p/option_base_test.cpp.o -MF test/option_base_test.p/option_base_test.cpp.o.d -o test/option_base_test.p/option_base_test.cpp.o -c ../test/option_base_test.cpp
In file included from ../test/option_base_test.cpp:2:
/usr/include/doctest/doctest.h:4299:57: error: array bound is not an integer constant before ‘]’ token
4299 | static char altStackMem[4 * SIGSTKSZ];
| ^
/usr/include/doctest/doctest.h: In constructor ‘doctest::{anonymous}::FatalConditionHandler::FatalConditionHandler()’:
/usr/include/doctest/doctest.h:4318:33: error: ‘altStackMem’ was not declared in this scope
4318 | sigStack.ss_sp = altStackMem;
| ^~~~~~~~~~~
/usr/include/doctest/doctest.h: At global scope:
/usr/include/doctest/doctest.h:4347:22: error: ‘char doctest::{anonymous}::FatalConditionHandler::altStackMem []’ is not a static data member of ‘struct doctest::{anonymous}::FatalConditionHandler’
4347 | char FatalConditionHandler::altStackMem[] = {};
| ^~~~~~~~~~~~~~~~~~~~~
[12/31] Compiling C++ object test/option_test.p/option_test.cpp.o
FAILED: test/option_test.p/option_test.cpp.o
c++ -Itest/option_test.p -Itest -I../test -Iinclude -I../include -I/usr/include -I/usr/include/libxml2 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -O3 -Wno-deprecated-declarations -O2 -ffast-math -ftree-vectorize -fno-strict-overflow -funsafe-math-optimizations -march=armv8-a+crypto+crc+aes+sha2 -O2 -ffast-math -ftree-vectorize -fno-strict-overflow -funsafe-math-optimizations -march=armv8-a+crypto+crc+aes+sha2 -MD -MQ test/option_test.p/option_test.cpp.o -MF test/option_test.p/option_test.cpp.o.d -o test/option_test.p/option_test.cpp.o -c ../test/option_test.cpp
In file included from ../test/option_test.cpp:2:
/usr/include/doctest/doctest.h:4299:57: error: array bound is not an integer constant before ‘]’ token
4299 | static char altStackMem[4 * SIGSTKSZ];
| ^
/usr/include/doctest/doctest.h: In constructor ‘doctest::{anonymous}::FatalConditionHandler::FatalConditionHandler()’:
/usr/include/doctest/doctest.h:4318:33: error: ‘altStackMem’ was not declared in this scope
4318 | sigStack.ss_sp = altStackMem;
| ^~~~~~~~~~~
/usr/include/doctest/doctest.h: At global scope:
/usr/include/doctest/doctest.h:4347:22: error: ‘char doctest::{anonymous}::FatalConditionHandler::altStackMem []’ is not a static data member of ‘struct doctest::{anonymous}::FatalConditionHandler’
4347 | char FatalConditionHandler::altStackMem[] = {};
| ^~~~~~~~~~~~~~~~~~~~~
[14/31] Compiling C++ object test/section_test.p/section_test.cpp.o
FAILED: test/option_test.p/option_test.cpp.o
c++ -Itest/option_test.p -Itest -I../test -Iinclude -I../include -I/usr/include -I/usr/include/libxml2 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -O3 -Wno-deprecated-declarations -O2 -ffast-math -ftree-vectorize -fno-strict-overflow -funsafe-math-optimizations -march=armv8-a+crypto+crc+aes+sha2 -O2 -ffast-math -ftree-vectorize -fno-strict-overflow -funsafe-math-optimizations -march=armv8-a+crypto+crc+aes+sha2 -MD -MQ test/option_test.p/option_test.cpp.o -MF test/option_test.p/option_test.cpp.o.d -o test/option_test.p/option_test.cpp.o -c ../test/option_test.cpp
In file included from ../test/option_test.cpp:2:
/usr/include/doctest/doctest.h:4299:57: error: array bound is not an integer constant before ‘]’ token
4299 | static char altStackMem[4 * SIGSTKSZ];
| ^
/usr/include/doctest/doctest.h: In constructor ‘doctest::{anonymous}::FatalConditionHandler::FatalConditionHandler()’:
/usr/include/doctest/doctest.h:4318:33: error: ‘altStackMem’ was not declared in this scope
4318 | sigStack.ss_sp = altStackMem;
| ^~~~~~~~~~~
/usr/include/doctest/doctest.h: At global scope:
/usr/include/doctest/doctest.h:4347:22: error: ‘char doctest::{anonymous}::FatalConditionHandler::altStackMem []’ is not a static data member of ‘struct doctest::{anonymous}::FatalConditionHandler’
4347 | char FatalConditionHandler::altStackMem[] = {};
| ^~~~~~~~~~~~~~~~~~~~~
[14/31] Compiling C++ object test/section_test.p/section_test.cpp.o
FAILED: test/section_test.p/section_test.cpp.o
c++ -Itest/section_test.p -Itest -I../test -Iinclude -I../include -I/usr/include -I/usr/include/libxml2 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -O3 -Wno-deprecated-declarations -O2 -ffast-math -ftree-vectorize -fno-strict-overflow -funsafe-math-optimizations -march=armv8-a+crypto+crc+aes+sha2 -O2 -ffast-math -ftree-vectorize -fno-strict-overflow -funsafe-math-optimizations -march=armv8-a+crypto+crc+aes+sha2 -MD -MQ test/section_test.p/section_test.cpp.o -MF test/section_test.p/section_test.cpp.o.d -o test/section_test.p/section_test.cpp.o -c ../test/section_test.cpp
In file included from ../test/section_test.cpp:2:
/usr/include/doctest/doctest.h:4299:57: error: array bound is not an integer constant before ‘]’ token
4299 | static char altStackMem[4 * SIGSTKSZ];
| ^
/usr/include/doctest/doctest.h: In constructor ‘doctest::{anonymous}::FatalConditionHandler::FatalConditionHandler()’:
/usr/include/doctest/doctest.h:4318:33: error: ‘altStackMem’ was not declared in this scope
4318 | sigStack.ss_sp = altStackMem;
| ^~~~~~~~~~~
/usr/include/doctest/doctest.h: At global scope:
/usr/include/doctest/doctest.h:4347:22: error: ‘char doctest::{anonymous}::FatalConditionHandler::altStackMem []’ is not a static data member of ‘struct doctest::{anonymous}::FatalConditionHandler’
4347 | char FatalConditionHandler::altStackMem[] = {};
| ^~~~~~~~~~~~~~~~~~~~~
[15/31] Compiling C++ object test/config_manager_test.p/config_manager_test.cpp.o
FAILED: test/config_manager_test.p/config_manager_test.cpp.o
c++ -Itest/config_manager_test.p -Itest -I../test -Iinclude -I../include -I/usr/include -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -O3 -Wno-deprecated-declarations -O2 -ffast-math -ftree-vectorize -fno-strict-overflow -funsafe-math-optimizations -march=armv8-a+crypto+crc+aes+sha2 -O2 -ffast-math -ftree-vectorize -fno-strict-overflow -funsafe-math-optimizations -march=armv8-a+crypto+crc+aes+sha2 -MD -MQ test/config_manager_test.p/config_manager_test.cpp.o -MF test/config_manager_test.p/config_manager_test.cpp.o.d -o test/config_manager_test.p/config_manager_test.cpp.o -c ../test/config_manager_test.cpp
In file included from ../test/config_manager_test.cpp:2:
/usr/include/doctest/doctest.h:4299:57: error: array bound is not an integer constant before ‘]’ token
4299 | static char altStackMem[4 * SIGSTKSZ];
| ^
/usr/include/doctest/doctest.h: In constructor ‘doctest::{anonymous}::FatalConditionHandler::FatalConditionHandler()’:
/usr/include/doctest/doctest.h:4318:33: error: ‘altStackMem’ was not declared in this scope
4318 | sigStack.ss_sp = altStackMem;
| ^~~~~~~~~~~
/usr/include/doctest/doctest.h: At global scope:
/usr/include/doctest/doctest.h:4347:22: error: ‘char doctest::{anonymous}::FatalConditionHandler::altStackMem []’ is not a static data member of ‘struct doctest::{anonymous}::FatalConditionHandler’
4347 | char FatalConditionHandler::altStackMem[] = {};
| ^~~~~~~~~~~~~~~~~~~~~
[16/31] Compiling C++ object test/xml_test.p/xml_test.cpp.o
FAILED: test/xml_test.p/xml_test.cpp.o
c++ -Itest/xml_test.p -Itest -I../test -Iinclude -I../include -I/usr/include -I/usr/include/libxml2 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -O3 -Wno-deprecated-declarations -O2 -ffast-math -ftree-vectorize -fno-strict-overflow -funsafe-math-optimizations -march=armv8-a+crypto+crc+aes+sha2 -O2 -ffast-math -ftree-vectorize -fno-strict-overflow -funsafe-math-optimizations -march=armv8-a+crypto+crc+aes+sha2 -MD -MQ test/xml_test.p/xml_test.cpp.o -MF test/xml_test.p/xml_test.cpp.o.d -o test/xml_test.p/xml_test.cpp.o -c ../test/xml_test.cpp
In file included from ../test/xml_test.cpp:2:
/usr/include/doctest/doctest.h:4299:57: error: array bound is not an integer constant before ‘]’ token
4299 | static char altStackMem[4 * SIGSTKSZ];
| ^
/usr/include/doctest/doctest.h: In constructor ‘doctest::{anonymous}::FatalConditionHandler::FatalConditionHandler()’:
/usr/include/doctest/doctest.h:4318:33: error: ‘altStackMem’ was not declared in this scope
4318 | sigStack.ss_sp = altStackMem;
| ^~~~~~~~~~~
/usr/include/doctest/doctest.h: At global scope:
/usr/include/doctest/doctest.h:4347:22: error: ‘char doctest::{anonymous}::FatalConditionHandler::altStackMem []’ is not a static data member of ‘struct doctest::{anonymous}::FatalConditionHandler’
4347 | char FatalConditionHandler::altStackMem[] = {};
| ^~~~~~~~~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.
If I can provide more information I will be glad to.
Hello. Trying to package and push wayfire in official Fedora repos but there some things which require by Fedora guidelines, so maybe we can fix this:
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_downstream_so_name_versioning
Here is review request:
https://bugzilla.redhat.com/show_bug.cgi?id=1756496#c1
Originally a symbol resolution failure happened due to 211a86c.
Relevant issues: void-linux/void-packages#20618, WayfireWM/wf-shell#50
After an option that does not exist in xml files is registered, it is not unregistered when removing the option from the config file. This means for plugins such as command and workspace-names, removing a list option leaves a stagnant option in the config. On the plugin side, there is no way of knowing that the option has been removed because it's forever part of the config object and section->get_registered_options() reflects this.
On IRC there was the suggestion to use alternative config format for Wayfire, more similar to Sway.
No matter what we think is better, even now we could use free-text sections, i.e sections which don't have the option = value
format. This could be useful for ex. in autostart, potentially command (I don't really like how the pairs look like when editing the config file), etc.
Once activators are programatically callable (WayfireWM/wayfire#655) it would even be possible to write a plugin which receives a section of the config which looks like Sway's config. For example:
[my-super-cool-config-plugin]
bind "<super>KEY_T" plugin1/do_stuff; plugin/2_do_stuff
bind-signal "plugin1_signal" plugin2/do_stuff
This was already done in wf-shell, see this commit:
WayfireWM/wf-shell@d319b01
Pkgconfig support is no longer supported in glm
upstream and not shipped in v0.9.9.8 for some reason. wf-config
should not require pkgconfig version of glm
during build. Same applies for wayfire
.
In multiple cases we want to restart the animation, continuing from where we currently are. This can be done, but requires quite a lot of code, which can be shared here.
Currently, wf-config is perfectly happy with duplicate options in the config files. We should through a warning so we can find mistakes like this more easily.
The number of helper functions is growing, and they could share some code via templating
It is useful in many cases, especially in wf-panel.
It should support all of yes/no
, true/false
, 0/1
as values.
In my wayfire.ini I put this:
…
[cube]
activate =
…
the cube activation is still done with BTN_LEFT, the key is ignored. I also tried with KEY_X and BTN_RIGHT.
Options are parsed with the correct US locale, but written to the config file using the system locale.
In the de_DE.UTF-8 locale, all double values are written with a comma instead of a period as decimal separator. For some reason, double options can be changed during a session, but wayfire cannot read the option on next start and they will be reset to default.
It looks like a simple way to fix this would be to set the correct locale in all option_type::to_string
methods.
wf-config fails the file-parsing test, but passes all the other tests:
../source/subprojects/wf-config/test/file_test.cpp(336) ERROR!
CHECK( flock(fd, 2 | 4) == 0 )
with expansion:
CHECK( -1 == 0 )
Perhaps with the decorator pattern? We need to make sure that the user of the library can't mix the types.
The source file src/duration.cpp is missing an include for <algorithm>
.
[20/33] Compiling C++ object libwf-config.so.0.9.0.p/src_duration.cpp.o
FAILED: libwf-config.so.0.9.0.p/src_duration.cpp.o
ccache c++ -Ilibwf-config.so.0.9.0.p -I. -I.. -Iinclude -I../include -I/usr/include/libevdev-1.0 -I/usr/include -I/usr/include/libxml2 -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c++17 -Wno-deprecated-declarations -march=x86-64-v3 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/home/chris/.cache/yay/wf-config-git/src=/usr/src/debug/wf-config-git -flto=auto -fPIC -MD -MQ libwf-config.so.0.9.0.p/src_duration.cpp.o -MF libwf-config.so.0.9.0.p/src_duration.cpp.o.d -o libwf-config.so.0.9.0.p/src_duration.cpp.o -c ../src/duration.cpp
../src/duration.cpp: In member function ‘double wf::animation::duration_t::impl::get_progress_percentage() const’:
../src/duration.cpp:79:21: error: ‘clamp’ is not a member of ‘std’
79 | return std::clamp(progress, 0.0, 1.0);
| ^~~~~
ninja: build stopped: subcommand failed.
Trying to get this packaged on Void Linux and we know the license is MIT but there is no license file with your copyright we can bring with the package.
This blocks inclusion into Void Linux
The cube works find when pressing Ctrl+Alt+LeftMouseButton, and I can stay with the cube rotated as long as I want. When I let go of the key, it returns so that a face of the cube takes the entire screen, and crashes a second after that.
I tried restoring an older config of mine, doesn't seem to change anything. It used to work a short while ago, so it might be one of the recent commits?
Hello. Error during build process with GCC 10 and latest commit fdcc040:
FAILED: wf-config@sha/src_section.cpp.o
c++ -Iwf-config@sha -I. -I.. -Iinclude -I../include -I/usr/include/libevdev-1.0/ -I/usr/include/libxml2 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=c++17 -Wno-deprecated-declarations -O2 -g -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -MD -MQ 'wf-config@sha/src_section.cpp.o' -MF 'wf-config@sha/src_section.cpp.o.d' -o 'wf-config@sha/src_section.cpp.o' -c ../src/section.cpp
../src/section.cpp: In member function 'std::shared_ptr<wf::config::option_base_t> wf::config::section_t::get_option(const string&)':
../src/section.cpp:38:20: error: 'invalid_argument' is not a member of 'std'
38 | throw std::invalid_argument("Non-existing option " + name
| ^~~~~~~~~~~~~~~~
../src/section.cpp: In member function 'void wf::config::section_t::register_new_option(std::shared_ptr<wf::config::option_base_t>)':
../src/section.cpp:60:20: error: 'invalid_argument' is not a member of 'std'
60 | throw std::invalid_argument(
| ^~~~~~~~~~~~~~~~
Fedora Rawdhie (33)
10.0.1-0.9.fc33
1.9.0
Or this is new libevdev
regression?
Here is common GCC 10 issues:
https://gcc.gnu.org/gcc-10/porting_to.html#common
This is driving me mad.
When I change anything using Wayfire Config Manager, all the settings from all the plugins and options are dumped to the config file.
It would be great if you wrote only the ones actually modified/changed by the user.
what(): No such option: core/plugins
This doesn't happen with any option that is defined in the xml files, only with ones that aren't, such as this one.
Currently, only wayfire supports custom config backends, thanks to it's plugin system. However, there are other projects which use wf-config - wf-shell, wcm, etc. It would be nice if we could have a very limited plugin system for wf-config - this would help the other projects as well.
I have to restart wayfire
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.