Coder Social home page Coder Social logo

wf-config's People

Contributors

alebastr avatar alyssais avatar ammen99 avatar chkboom avatar ericonr avatar kostadinsh avatar marcusbritanicus avatar maxice8 avatar mntmn avatar namorniradnug avatar soreau avatar timgott avatar valpackett avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

wf-config's Issues

Cube crashes a second after returning to desktop

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?

Log: wayfire-cube-crash.log

Keep numeric order of rules

Actual: Using wcm windows rules are sorted by first digit only:
screen_area_sab_18:12:36_

Expected:

rules are in numeric order also if >9

Add support for free-text sections

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

Build fails on devuan ceres.

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.

Please include a license file

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

Add support for custom config formats

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.

Fails to build with the new glibc on Fedora Rawhide

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:

  1. Make tests optional feature and skip them in downstream packages
  2. Make tests use system doctest package. We already have a workaround applied to Fedora package and wf-config builds just fine using external doctest.
  3. Apply the WIP solution with substituting SIGSTKSZ to an integer constant in the bundled doctest.h

wf-touch has the same issue.

Options are not removed from after being removed from config file

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.

test(types_test.cpp.o): Build error in Fedora 35

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] = {};
      |                                                ^~~~~~~~

Write only user modified values to the config file

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.

Implement a boolean option

It is useful in many cases, especially in wf-panel.
It should support all of yes/no, true/false, 0/1 as values.

wf-config fails the file-parsing test

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 )

Config file saved with wrong locale

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.

generated wf-config.pc file uses "Unknown version comparison operator"

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 >=.

Increase flexibility of compound options.

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.

Support lists in /etc/wayfire/defaults.ini

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 ~)

GCC 10 regression?

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(
      |                    ^~~~~~~~~~~~~~~~
  • Full build log
  • OS: Fedora Rawdhie (33)
  • GCC: 10.0.1-0.9.fc33
  • libevdev: 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

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.