The `backlight` file seems to not receive modification events for
inotify (it does receive other events though).
These other events still trigger an update, but the value read is still
the old value because the events arrive just slightly before the file is
updated.
The new `poll-interval` setting will inject an event every X seconds to
force an update.
If the actual_brightness file is used, the interval is set to 0 and thus
turned off.
This does not add any more wakeups to the module, the inotify modules
wake up every second anyway and during that time, the interval is
checked.
Fixes#2835
* Remove unused function
* Refactor deprecation warning
* Modules take config as parameter instead of using the singleton
* Bar take config as parameter instead of using the singleton
* Renderer take config as parameter instead of using the singleton
* Legacy Tray Manager take config as parameter instead of using the singleton
* Screen take config as parameter instead of using the singleton
* Controller take config as parameter instead of using the singleton
* Remove the config singleton
* Apply review suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
* Apply style suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
* Apply style suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
* Apply style suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
* Apply style suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
* Apply style suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
* Apply style suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
* Apply style suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
* Apply style suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
* Apply style suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
---------
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
The issue has been fixed in the linux kernel version 5.9 and above so we
are removing our workaround for this from polybar.
Users with older versions can still work around this by explicitly
setting `use-actual-brightness` to false, it is just not done by default
anymore.
Closes#2835
Ref https://bugzilla.kernel.org/show_bug.cgi?id=203905
Ref 69d9f4278d
The previous CAST_MOD(Impl) for the action_router constructor was
illegal because `this` is not yet of type Impl (because the subclass
constructor has not run yet).
The action_router now accepts std::function for its callbacks.
Fixes#2519
* module: Implement proof of concept action router
Action implementation inside module becomes much cleaner because each
module just registers action names together with a callback (pointer to
member function) and the action router does the rest.
* Make input function final
This forces all modules to use the action router
* modules: Catch exceptions in action handlers
* Use action router for all modules
* Use action_ prefix for function names
The mpd module's 'stop' action overwrote the base module's stop function
which caused difficult to debug behavior.
To prevent this in the future we now prefix each function that is
responsible for an action with 'action_'
* Cleanup
* actions: Throw exception when re-registering action
Action names are unique inside modules. Unfortunately there is no way to
ensure this statically, the next best thing is to crash the module and
let the user know that this is a bug.
* Formatting
* actions: Ignore data for actions without data
This is the same behavior as before.
* action_router: Write tests
All modules now expose their actions as public static constants
Issues: The menu module no longer closes when an item is clicked (before
it would intercept any executed command and look if it matches one of
its exec commands)
Some devices can have "amdgpu_bl1" or "amdgpu_bl2", but the code hardcoded in the value "amdgpu_bl0". This change tests based on the first characters: "amdgpu_bl".