···2121 mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 ssse3"
2222# the amount of threads to compile with. generally set to the amount of threads
2323# your cpu has. I'm using less here so my computer has some power for other task
2424-MAKEOPTS="-j4"
2424+MAKEOPTS="-j8"
2525#MAKEOPTS="-j3 -l4"
26262727# Needed for out of tree kernel modules
···5151# grab microcode for currently detected cpu (sys-firmware/intel-microcode)
5252MICROCODE_SIGNATURES="-S"
5353# enable support for gpus
5454-VIDEO_CARDS="amdgpu crocus i915 i965 intel iris radeonsi"
5454+# VIDEO_CARDS="amdgpu crocus i915 i965 intel iris radeonsi"
5555+VIDEO_CARDS="amdgpu intel radeonsi"
55565657DISTDIR="/var/cache/distfiles"
5758PKGDIR="/var/cache/binpkgs"
···11+From 82f227292e5d1403b417f35897e1f0d424bebf1b Mon Sep 17 00:00:00 2001
22+From: Ilia Bozhinov <ammen99@gmail.com>
33+Date: Tue, 1 Jun 2021 09:24:04 +0200
44+Subject: [PATCH] output-layout: add workarounds/use_external_output_config
55+66+Currently, if an external application like kanshi sets the output
77+configuration, Wayfire will reset it to the values in the config file
88+whenever the config file is reloaded.
99+1010+To fix this, the new `use_external_output_config` option modifies
1111+Wayfire's handling of output configuration: when this option is true,
1212+ Wayfire will ignore any values in the config file (except mirroring)
1313+ and use the values given by kanshi (or any similar program).
1414+---
1515+ metadata/workarounds.xml | 7 ++++
1616+ src/core/output-layout.cpp | 78 ++++++++++++++++++++++++++++----------
1717+ 2 files changed, 66 insertions(+), 19 deletions(-)
1818+1919+diff --git a/metadata/workarounds.xml b/metadata/workarounds.xml
2020+index 3f3474eca..c12af9800 100644
2121+--- a/metadata/workarounds.xml
2222++++ b/metadata/workarounds.xml
2323+@@ -30,6 +30,13 @@
2424+ <_short>Allow dynamic repaint delay</_short>
2525+ <_long>If true, allows Wayfire to dynamically recalculate its max_render_time, i.e allow render time higher than max_render_time.</_long>
2626+ <default>false</default>
2727++ </option>
2828++ <option name="use_external_output_configuration" type="bool">
2929++ <_short>Use external output configuration instead of Wayfire's own.</_short>
3030++ <_long>If true, Wayfire will not handle any configuration options for outputs in the config file once an
3131++ external daemon like https://github.com/emersion/kanshi sets the output configuration via the wlr-output-management protocol.
3232++ Exceptions are made for options not available via wlr-output-management, like output mirroring and custom modelines.</_long>
3333++ <default>false</default>
3434+ </option>
3535+ </plugin>
3636+ </wayfire>
3737+diff --git a/src/core/output-layout.cpp b/src/core/output-layout.cpp
3838+index 3fef83921..24be2e9d6 100644
3939+--- a/src/core/output-layout.cpp
4040++++ b/src/core/output-layout.cpp
4141+@@ -251,6 +251,7 @@ struct output_layout_output_t
4242+ {
4343+ wlr_output *handle;
4444+ output_state_t current_state;
4545++ bool is_externally_managed = false;
4646+4747+ std::unique_ptr<wf::output_impl_t> output;
4848+ wl_listener_wrapper on_destroy, on_mode;
4949+@@ -261,6 +262,9 @@ struct output_layout_output_t
5050+ wf::option_wrapper_t<double> scale_opt;
5151+ wf::option_wrapper_t<std::string> transform_opt;
5252+5353++ wf::option_wrapper_t<bool> use_ext_config{
5454++ "workarounds/use_external_output_configuration"};
5555++
5656+ void initialize_config_options()
5757+ {
5858+ config_section = wf::get_core().config_backend->get_output_section(handle);
5959+@@ -373,15 +377,50 @@ struct output_layout_output_t
6060+ return true;
6161+ }
6262+6363+- output_state_t load_state_from_config()
6464++ /**
6565++ * Determine whether the state in the config file should be ignored.
6666++ */
6767++ bool should_ignore_config_state()
6868+ {
6969+- output_state_t state;
7070+- state.position = position_opt;
7171++ if (is_externally_managed && use_ext_config)
7272++ {
7373++ wf::output_config::mode_t mode = mode_opt;
7474++ if (mode.get_type() == output_config::MODE_MIRROR)
7575++ {
7676++ // Special case: output mirroring
7777++ // It is not supported directly supported by wlr-output-management
7878++ // Thus, if the config file says to mirror an output, we do use that
7979++ // information.
8080++ return false;
8181++ }
8282+8383+- /* Make sure we can use custom modes that are
8484+- * specified in the config */
8585++ return true;
8686++ }
8787++
8888++ return false;
8989++ }
9090++
9191++ /**
9292++ * Load the state the output is configured with.
9393++ * This is typically the config file, but in case of daemons like kanshi this
9494++ * might be the external configuration.
9595++ */
9696++ output_state_t load_configured_state()
9797++ {
9898++ // Ensure custom modes from the config are enabled
9999++ // Also make sure to refresh them even if the output is externally
100100++ // managed.
101101+ refresh_custom_modes();
102102+103103++ if (should_ignore_config_state())
104104++ {
105105++ // Current state is what was requested by the client.
106106++ return this->current_state;
107107++ }
108108++
109109++ output_state_t state;
110110++ state.position = position_opt;
111111++
112112+ wf::output_config::mode_t mode = mode_opt;
113113+ wlr_output_mode tmp;
114114+115115+@@ -968,6 +1007,12 @@ class output_layout_t::impl
116116+117117+ if (apply_configuration(configuration, test_only))
118118+ {
119119++ // Notify outputs that they have external configuration
120120++ for (auto& [wo, _] : configuration)
121121++ {
122122++ this->outputs[wo]->is_externally_managed = true;
123123++ }
124124++
125125+ wlr_output_configuration_v1_send_succeeded(wlr_configuration);
126126+ } else
127127+ {
128128+@@ -989,7 +1034,7 @@ class output_layout_t::impl
129129+ * next reconfiguration. This is needed because if we are removing
130130+ * an output, we might get into a situation where the last physical
131131+ * output has already been removed but we are yet to add the noop one */
132132+- noop_output->apply_state(noop_output->load_state_from_config());
133133++ noop_output->apply_state(noop_output->load_configured_state());
134134+ wlr_output_layout_add_auto(output_layout, noop_output->handle);
135135+ timer_remove_noop.disconnect();
136136+ }
137137+@@ -1056,27 +1101,22 @@ class output_layout_t::impl
138138+ return configuration;
139139+ }
140140+141141+- output_configuration_t last_config_configuration;
142142+-
143143+ /** Load config from file, test and apply */
144144+ void reconfigure_from_config()
145145+ {
146146+- /* Load from config file */
147147++ // Load desired configuration from config file
148148+ output_configuration_t configuration;
149149+- for (auto& entry : this->outputs)
150150++ for (auto& [output, layout_output] : this->outputs)
151151+ {
152152+- configuration[entry.first] = entry.second->load_state_from_config();
153153++ configuration[output] = layout_output->load_configured_state();
154154+ }
155155+156156+- if ((configuration == get_current_configuration()) ||
157157+- (configuration == last_config_configuration))
158158++ if (configuration != get_current_configuration())
159159+ {
160160+- return;
161161+- }
162162+-
163163+- if (test_configuration(configuration))
164164+- {
165165+- apply_configuration(configuration);
166166++ if (test_configuration(configuration))
167167++ {
168168++ apply_configuration(configuration);
169169++ }
170170+ }
171171+ }
172172+
···11+https://github.com/llvm/llvm-project/commit/7ab1ab0db40158e6f0794637054c98376e236a6d.patch
22+From 7ab1ab0db40158e6f0794637054c98376e236a6d Mon Sep 17 00:00:00 2001
33+From: Dimitry Andric <dimitry@andric.com>
44+Date: Mon, 14 Mar 2022 22:05:35 +0100
55+Subject: [PATCH] [libc++] Make __dir_stream visibility declaration consistent
66+77+The class `__dir_stream` is currently declared in two places: as a
88+top-level forward declaration in `directory_iterator.h`, and as a friend
99+declaration in class `directory_entry`, in `directory_entry.h`.
1010+1111+The former has a `_LIBCPP_HIDDEN` attribute, but the latter does not,
1212+causing the Firefox build to complain about the visibility not matching
1313+the previous declaration. This is because Firefox plays games with
1414+pushing and popping visibility.
1515+1616+Work around this by making both `__dir_stream` declarations consistently
1717+use `_LIBCPP_HIDDEN`.
1818+1919+Reviewed By: ldionne, philnik, #libc
2020+2121+Differential Revision: https://reviews.llvm.org/D121639
2222+---
2323+ libcxx/include/__filesystem/directory_entry.h | 2 +-
2424+ 1 file changed, 1 insertion(+), 1 deletion(-)
2525+2626+diff --git a/libcxx/include/__filesystem/directory_entry.h b/libcxx/include/__filesystem/directory_entry.h
2727+index 3db244556cfd8..5ba3ef96de481 100644
2828+--- a/libcxx/include/__filesystem/directory_entry.h
2929++++ b/libcxx/include/__filesystem/directory_entry.h
3030+@@ -254,7 +254,7 @@ class directory_entry {
3131+ private:
3232+ friend class directory_iterator;
3333+ friend class recursive_directory_iterator;
3434+- friend class __dir_stream;
3535++ friend class _LIBCPP_HIDDEN __dir_stream;
3636+3737+ enum _CacheType : unsigned char {
3838+ _Empty,
···4646[ "$MAKEOPTS" ] ||
4747 { [ "$AKU_PORTAGEQ" ] && MAKEOPTS="$(portageq envvar MAKEOPTS)" || MAKEOPTS="=j$(nproc)"; }
48484949-# If CC is set to clang in portage, enable LLVM and LLVM_IAS, but
5050-# if LLVM and LLVM_IAS is already set, don't change it.
4949+# If CC is set to clang in portage, enable LLVM, but
5050+# if LLVM is already set, don't change it. (LLVM_IAS is default to on if LLVM is on)
5151[ "$AKU_PORTAGEQ" = 1 ] &&
5252 case $(portageq envvar CC) in
5353 *clang* )
5454 : "${LLVM=1}"
5555- : "${LLVM_IAS=1}"
5656- export LLVM LLVM_IAS
5555+ export LLVM
5756 esac
58575958info "Changing directory ($AKU_DIR)..."
···11// Max FPS
22-fps_max "100"
22+fps_max "90" // My laptop isn't a beast so capping my fps should help the game run a little smoother
33+fps_max_menu "60"
3445// Mouse Sensitivity
56sensitivity "0.2"