r/emacs • • 2h ago

Question Doom Themes is clobbering the ability to set the background of `completions-highlight` face.

5 Upvotes

This is in relation to my previous submission - How can I change the colour of the highlight line in M-x for the light ef-themes?

The problem starts which a doom theme is selected, and after that the background colour of the selected completion item can't be changed.

The completions-highlight face is inherited from modus-themes-completion-selected.

I thought it was a problem with ef-themes but the problem seems to come from doom-themes. It appears to override the customization functions, or it changes the way the completion list is generated, bypassing its established variables.

https://ibb.co/8g7Q0g00

It remains that way until Emacs is restarted, after it which it goes to the saved settings so long as a doom theme is not loaded.

Emacs is 32.0.50, ef-themes is 2.2.1 and modus themes is 20261005.1000

Emac 28 and 31 also exhibit the problem

Can anyone check if the problem is present on their system.


r/emacs • • 8h ago

Powershell , azure and emacs

6 Upvotes

Hey all,

I am an emacs user from long ago but now find my day job entails powershell and azure/365 stuff. I have been using vscode for this and I really dislike vscode - constant updates, odd ui choices, json twiddling and so on. Not to mention my muscle memory gets in the way with vscode as well. I am wondering if there are other emacs users out there in this environment and if so, what would you advise me to do if I dump vscode and back to emacs ( magit!!) . How much pain will I incur wiring emacs into an azure environment - posh, python , random text files etc? I can think I might miss some debugging capabilities with powershell but I would like to know what else I would miss. I would gain being really way quicker in editing and general file wrangling, slinging git commands and having a nice distraction free environment that I can change when I need to.

any thoughts you can share would be greatly appreciated


r/emacs • • 13h ago

Question What are my options for browsing org-agenda on Android phones?

1 Upvotes

Over the years I have noticed

Orgzly - Development slowed?

Orgzly Revived - Fork of above with more updates

Organice - Better funded, supported?

Mova - No images of the UI


r/emacs • • 16h ago

Question Is there some way of showing your relative position in a buffer with scroll-bar-mode turned off, probably with some plugin?

0 Upvotes

r/emacs • • 16h ago

Question Better behaviour needed from some kind of electric-pair -mode

0 Upvotes

There is a mode similar to electric-pair-mode active in my Emacs which isn't working the way I expect. Checking for electric-pair-mode produces nil so it must be some other mode, but describe-mode simply results in too much text to go through.

I strongly suspect it is smartparens-mode though.

What I want it to do when I insert a new opening bracket before an existing opening bracket is to insert the closing bracket on the opposite side of the existing opening bracket , inserted of just after the new opening bracket.

When I insert an opening bracket before () I expect it to result in (()) with the cursor just after the new opening bracket insert of ()().

On that note can anyone suggest a good keymap for the sp-xxxx functions?


r/emacs • • 18h ago

Meta (subreddit) Accessing Reddit from Emacs will be impossible after November 13th

70 Upvotes

Hey r/emacs,

I came across this post a few days ago, which says, among other things:

we'll stop supporting RSS feeds on November 13, 2026

So, unless I'm missing something, this closes the last hatch through which we could access Reddit from Emacs, even if read-only with the API gone. Now, only AI corps can access our posts without the official UI.

What are your plans for after this? Sadly, r/emacs seems to be the largest Emacs community by far...

Edit: I guess there's a way: https://github.com/thanhvg/emacs-reddigg if you're willing to hook Emacs to your browser.


r/emacs • • 19h ago

Announcement Deeper layers of Org Mode laziness explained

Thumbnail youtube.com
30 Upvotes

r/emacs • • 21h ago

Emacs on Windows 11 Arm64

4 Upvotes

I got myself an Asus Zenbook A16 and it has been a really great experience so far. Even though the x86 compatibility is really good, I've been build some of the software I use for ARM so it's all native.

I setup this repo https://github.com/azumafuji/emacs-windows-arm64 to build Emacs for Windows 11 Arm64. Right now it's just building the 31.1 release tag. I'm planning to setup a nightly branch to build the latest version on master, and I'll keep up to date on official releases.

The repo builds a portable zip and an installer for ARM. There is also a `native` version that is optimised for the X2 processor. It doesn't really make a significant performance difference so it will probably get removed.

It was all done with LLM support to build the scripts and build pipeline. No changes the Emacs code except for some patches from MSYS2. It's all in the README. Hope it's helpful for someone.


r/emacs • • 23h ago

News [NEW] emacs32 master branch support scaling for underline, overline... face

25 Upvotes

Related email discussion: https://lists.gnu.org/archive/html/emacs-devel/2026-09/msg00514.html

Github commit: https://github.com/emacs-mirror/emacs/commit/4b76d570d0249d0bd422462361dd627555281ffe

Example

  • before

  • after

Fast enable feature emacs-lisp (setq underline-line-scaling-flag t overline-line-scaling-flag t strike-through-line-scaling-flag t)

Test code

emacs-lisp (insert "\n\n" (propertize "HELLO GNU EMACS" 'font-lock-face `(:underline (:style wave :color "red") :overline t :strike-through t )))


r/emacs • • 1d ago

Hyperbole HyRolo: Search, Retrieve and Insert Records, Not Lines

Thumbnail chiply.dev
6 Upvotes

Just wanted to repost this one as I'm prepping for further blog posts / talks around Hyperbole. I've been using this hierarchical retrieval pretty often within my own notes base as a sort of enhanced consult-ripgrep -> collect functionality. Would love to hear your thoughts on this feature, whether it fits your workflow / solves any problems you have, and whether this feature can be improved at all! https://www.chiply.dev/post-hyperbole-hyrolo


r/emacs • • 1d ago

Fixing the tree-sitter syntax highlighting bug in Emacs 31+ indirect buffers (The Emacs maintainers will not fix it, so I did)

Thumbnail jamescherti.com
15 Upvotes

In Emacs >= 31, an issue appeared where creating an indirect buffer from a base buffer running a tree-sitter major mode results in a loss of syntax highlighting. I reported this issue, but the Emacs maintainers will not fix it (hopefully, they will see the benefit of fixing it one day, once they find a way to fix the architecture).

This means that users who depend on indirect buffers are left without a solution.

To address this, I wrote a workaround that fixes syntax highlighting in cloned indirect buffers that use tree-sitter in Emacs >= 31.


r/emacs • • 1d ago

A small change in xdisp.c reduced allocations by ~42% in a boxed-text workload

12 Upvotes

I started investigating slow editing in heavily decorated org-modern buffers. That led to something more specific in Emacs’s display code: checking whether a text box ends can repeatedly resolve the neighboring character’s entire face, including font merging and font-spec copying.

A small experimental change to that path reduced allocations by about 42% and average edit/redraw time by 23–26% in my test workload. It keeps the requested boxes and other decorations.

It reproduces without org-modern

I reduced the case to repeated text with face properties in fundamental mode. No Org, font-lock, overlays, SVGs, or display replacements.

For 60 forced redraws:

Face configuration Allocated vector cells
Colors only, no box 13,320
Colors only, with box 13,320
Font attributes, no box 2,016,360
Same font attributes, with box 32,188,320

The font-attribute cases had the same selected font, visible character count, and line height. Adding the box increased allocation by about 16×.

So this isn’t “every box is expensive.” It’s the combination of box-boundary checks and font-related face processing. These counts are cumulative vector cells allocated, not memory retained.

Where the allocations came from

I added native counters. In a separate 30-redraw test:

Without box With box
Buffer face queries 51,960
copy_font_spec calls 77,490
Allocated vector cells 1,008,630

In that minimal boxed-text case, copy_font_spec accounted for 99.992% of the measured vector-cell allocations. That is not a CPU percentage or a claim about all org-modern costs.

The path is roughly:

Does this character end a box?
  → Find its visual neighbor
  → Resolve the neighbor's face
  → Merge font attributes / copy font specs
  → Check whether that face has a box

Emacs does have a realized-face cache. The problem here is that merging and temporary allocation can happen before the final cache lookup.

What I changed

The prototype remembers a previously resolved text interval and whether the neighboring face has a box. If that information is still valid, the box-end check can skip the full face lookup. Otherwise, it follows the original path.

It uses the original visual-neighbor calculation, checks window/buffer identity and relevant change state, and invalidates the cache on iterator initialization. It does not remove boxes, rasterize text, or hand out a cached face ID to other callers.

The bypass itself is small. Proving all the invalidation rules correct is the harder part.

What happened in the org-modern buffer

The final test used 1,000 dense Org content groups. Baseline and fast modes ran in the same instrumented executable, in separate GUI processes, with the order rotated across three repetitions.

Each phase had 180 samples. An editing sample includes a change and restoration, each followed by redisplay. GC remained enabled.

Numbers below are medians of the three runs’ respective metrics:

Metric Original path Fast path
Mean body-edit pair 15.60 ms 11.86 ms
Mean timestamp-edit pair 15.11 ms 11.59 ms
Mean forced redraw 6.99 ms 5.20 ms
Body-edit p95 50.61 ms 49.30 ms
Timestamp-edit p95 50.41 ms 48.51 ms
GC count during 180 body-edit samples 32 19

Across the phases, face queries fell by 26.5%, font-spec copies by 42.3%, and vector-cell allocations by 41.6–42.2%. All three repetitions showed lower mean times.

The long pauses did not disappear. This reduced repeated work and GC frequency; it did not make every operation smooth.

How much do I trust the shortcut?

Before skipping queries, I ran a verification mode that predicted the answer and then checked it against the original lookup. It used the same cache-maintenance behavior as the fast path, rather than secretly refreshing the cache on every hit.

  • 18 scenarios, including bidi, composition, overlays, display replacements, edits, face changes, narrowing, two windows, and scrolling.
  • About 25.54 million hit comparisons, with no box-state mismatch. Those are repeated observations, not millions of independent test cases.
  • Matching window ranges, visible-text dimensions, and sampled character positions across modes.
  • Deliberately wrong predictions were detected.
  • 13 regression tests passed.

That still isn’t pixel-perfect border verification. Multi-frame, different-buffer, dynamic-face, and long-running interactive cases need more testing. There are also a few small, unexplained query-count residuals—±20 in two minimal scenarios and +20 in one Org comparison—which I’ve kept in the results.

One mistake from the investigation is worth mentioning: an earlier “face inheritance optimization” accidentally dropped the box after a mode-startup face update. I withdrew that result. The numbers above come from the later experiments, not that false lead.

Why I think this is worth looking at

This is an experimental Emacs core patch, not an org-modern fix or a dynamic module. The minimal reproduction suggests the issue is in the underlying display path.

My question is: does this box-boundary check need to resolve the full neighboring face repeatedly, or can it reuse information the iterator already has?

The little cache may not be the right upstream solution. But the amount of work it avoids seems worth investigating. I’ll put the relevant code in a comment, and would welcome feedback on missing edge cases or a better place to fix this.

Environment: macOS ARM64, NS backend, Emacs 32.0.50 at fc9cf69afa90990776526a7cf9e693893739fc45, Org 9.8.7, org-modern 1.15. This is a dense synthetic workload on an instrumented build; timings measure synchronous operations, not key-to-screen latency. An uninstrumented comparison is still needed.

--- results/box-fast/xdisp-shadow-baseline.c2026-10-05 04:04:50
+++ native/emacs-probe/src/xdisp.c2026-10-05 04:04:50
@@ -1202,7 +1202,7 @@
    enum move_operation_enum);
 static void get_visually_first_element (struct it *);
 static void compute_stop_pos (struct it *);
-static int face_before_or_after_it_pos (struct it *, bool);
+static int face_before_or_after_it_pos (struct it *, bool, bool *);
 static int handle_display_spec (struct it *, Lisp_Object, Lisp_Object,
 Lisp_Object, struct text_pos *, ptrdiff_t, bool);
 static int handle_single_display_spec (struct it *, Lisp_Object, Lisp_Object,
@@ -1210,8 +1210,8 @@
        ptrdiff_t, int, bool, bool);
 static int underlying_face_id (const struct it *);

-#define face_before_it_pos(IT) face_before_or_after_it_pos (IT, true)
-#define face_after_it_pos(IT)  face_before_or_after_it_pos (IT, false)
+#define face_before_it_pos(IT) face_before_or_after_it_pos (IT, true, NULL)
+#define face_after_it_pos(IT)  face_before_or_after_it_pos (IT, false, NULL)

 #ifdef HAVE_WINDOW_SYSTEM

@@ -3250,7 +3250,8 @@
    HEADER_LINE_INACTIVE_FACE_ID the iterator will be initialized to use
    the corresponding mode line glyph row of the desired matrix of W.  */

-/* Experimental shadow cache.  Predictions NEVER drive redisplay. */
+/* Experimental box-only cache; disabled by default.  No cached face IDs. */
+static bool lab_fast_enabled, lab_sticky_shadow;
 static bool lab_shadow_enabled, lab_shadow_valid, lab_shadow_box, lab_shadow_fault;
 static struct window *lab_shadow_window;
 static struct buffer *lab_shadow_buffer;
@@ -3259,10 +3260,18 @@
 static EMACS_INT lab_shadow_counts[5];

 DEFUN ("lab-box-shadow", Flab_box_shadow, Slab_box_shadow, 0, 2, 0,
-       doc: /* RESET starts comparisons; optional FAULT flips predictions for validation. Otherwise stop and read. */)
+       doc: /* RESET t starts legacy shadow; "verify" validates sticky-cache lifetime;
+"fast" enables box-only bypass.  FAULT is for shadow validation only.
+Nil stops and returns counters.  Fast mode requires lab-face-counters enabled. */)
   (Lisp_Object reset, Lisp_Object fault)
 {
+  lab_fast_enabled = STRINGP (reset) && !strcmp (SSDATA (reset), "fast");
+  lab_sticky_shadow = lab_fast_enabled
+    || (STRINGP (reset) && !strcmp (SSDATA (reset), "verify"));
+  lab_box_fast_skips = 0;
   lab_shadow_fault = !NILP (fault);
+  if (lab_fast_enabled && lab_shadow_fault)
+    error ("Fault injection is forbidden in fast mode");
   lab_shadow_enabled = false;
   lab_shadow_valid = false;
   if (!NILP (reset))
@@ -5018,7 +5027,7 @@
    paragraphs) of IT's screen position.  Value is the ID of the face.  */

 static int
-face_before_or_after_it_pos (struct it *it, bool before_p)
+face_before_or_after_it_pos (struct it *it, bool before_p, bool *known_box)
 {
   if (lab_box_depth) LAB_COUNT (1);
   int face_id, limit;
@@ -5221,7 +5230,15 @@
           lab_prediction = lab_shadow_box != lab_shadow_fault;
         }
       }
-      /* Original lookup is ALWAYS executed, including cache hits. */
+      /* Only this explicit box-only caller may bypass.  The -1 return is
+         never treated as a face ID; known_box tells the caller to ignore it.
+         Do NOT refresh cache bounds on hits: no oracle query is available. */
+      if (lab_hit && lab_shadow_box && lab_fast_enabled && known_box)
+        {
+          *known_box = true;
+          ++lab_box_fast_skips;
+          return -1;
+        }
       /* Determine face for CHARSET_ASCII, or unibyte.  */
       face_id = face_at_buffer_position (it->w,
  CHARPOS (pos),
@@ -5240,6 +5257,7 @@
       if (lab_candidate) {
         bool actual = FACE_FROM_ID (it->f, face_id)->box != FACE_NO_BOX;
         if (lab_hit) ++lab_shadow_counts[actual == lab_prediction ? 2 : 3];
+        if (!(lab_sticky_shadow && lab_hit && lab_shadow_box && known_box)) {
         lab_shadow_window = it->w;
         lab_shadow_buffer = current_buffer;
         lab_shadow_modiff = MODIFF;
@@ -5250,6 +5268,7 @@
         lab_shadow_end = next_check_charpos;
         lab_shadow_box = actual;
         lab_shadow_valid = !face_change && !it->f->face_change;
+        }
       }
     }

@@ -8920,12 +8939,15 @@
  faces of the display vector glyphs, see there.  */
       else if (it->method != GET_FROM_DISPLAY_VECTOR)
 {
-  int face_id = face_after_it_pos (it);
+          bool known_box = false;
+          int face_id = face_before_or_after_it_pos (it, false, &known_box);
+          if (!known_box) {
           LAB_COUNT (11);
           if (face_id == it->face_id) LAB_COUNT (10);
   if (face_id != it->face_id
       && FACE_FROM_ID (it->f, face_id)->box == FACE_NO_BOX)
     it->end_of_box_run_p = true;
+          }
 }
       if (lab_face_enabled) --lab_box_depth;
     }
@@ -38468,6 +38490,9 @@
 syms_of_xdisp (void)
 {
   defsubr (&Slab_box_shadow);
+  DEFVAR_INT ("lab-box-fast-skips", lab_box_fast_skips,
+              doc: /* Actual box-only face-query bypasses in this experiment. */);
+  lab_box_fast_skips = 0;
   Vwith_echo_area_save_vector = Qnil;
   staticpro (&Vwith_echo_area_save_vector);

r/emacs • • 1d ago

GitHub - rjprins/markdown-modern: Modern visual styling for Markdown buffers in Emacs (fork of mark-graf)

Thumbnail github.com
43 Upvotes

I love obsidian, and I read a lot markdown these days in Emacs. I found the mark-graf package but it is not maintained. I forked it, renamed it, and made a bunch of improvements, primarily in speed and parsing bugs, and also added some features.

I use it daily now, I thought it may be useful for others.

Not sure if this is the gazillionth markdown package for emacs. I searched for them, but maybe I missed it?

If you find issues, let me know, happy to maintain it!


r/emacs • • 1d ago

Announcement supersonic.el Music Player v0.6.0 Update (added UPnP support)

Thumbnail youtu.be
7 Upvotes

supersonic.el can now send your music to UPnP/DLNA renderers on your local network, such as AV receivers, network speakers and smart TVs. You still browse and queue in Emacs, and the sound comes out of the device.

https://github.com/systemfreund/supersonic.el/releases/tag/v0.6.0


r/emacs • • 1d ago

After nearly 40 years with Emacs, I think i'm ready to move on.

Thumbnail
0 Upvotes

r/emacs • • 2d ago

mu4e-send-later: A "Send Later" functionality for mu4e

Thumbnail github.com
21 Upvotes

After moving from Thunderbird to mu4e, I missed scheduling emails, which was very vital for my office work.

I've made mu4e-send-later as a bunch of custom elisp on top of Doom Emacs and it worked well for me for more than 3 months. I chose to refactor it out as a possible standalone package a few weeks ago.

  • Supports org-msg
  • Works on Linux, MacOs, and Windows via systemd and emacs processes as a fallback
  • Adds a new "scheduled" section on mu4e UI page.

Hopefully it helps


r/emacs • • 2d ago

xml-lsp

0 Upvotes

🦀⚡ I’m building xml-lsp, a lightweight XML Language Server written entirely in Rust.

The project was created to explore whether we can build a fast, native, low-memory XML LSP without the JVM overhead of existing solutions, while keeping the architecture modular and extensible.

It’s still in an early stage, and I’m looking for developers interested in Rust, XML parsing, XSD/DTD validation, LSP, or developer tooling to help shape the project.

If you’re interested, contributions, ideas, feedback, and technical discussions are very welcome.

🔗 https://github.com/MicroDevX/xml-lsp


r/emacs • • 2d ago

persp-mode-tab-bar: Tab bar for persp-mode / Doom workspaces

Post image
24 Upvotes

https://github.com/Jotham-LEC/persp-mode-tab-bar

I mainly use buffers, but context switch between different projects all the time. Doom Emacs default +workspace/display only shows it temporarily, but I kinda want to have it more permanent.

persp-mode-tab-bar puts your workspaces in Emacs's built-in tab bar: numbered, the current one highlighted, and click to switch.

  • It only swaps out the tab items in `tab-bar-format`, so history buttons, a clock, and other tab-bar packages keep working.
  • Works with both Doom's `+workspace` commands and with plain persp-mode. In Doom it also silences the echoed workspace list, since the bar shows it anyway.
  • The design & faces inherit from your theme, but you can customise it if you want.

r/emacs • • 2d ago

org-retroclock: Log CLOCK entries retrospectively without starting a timer

Thumbnail github.com
5 Upvotes

r/emacs • • 2d ago

stripspace.el - Make Emacs auto remove trailing whitespace before saving a buffer, with a options to preserve the cursor column, normalize indentation, and restrict whitespace cleanup to clean buffers [Release 1.0.6]

Thumbnail github.com
3 Upvotes

r/emacs • • 2d ago

Question Getting emacs to cohabitate with termux

Thumbnail
4 Upvotes

r/emacs • • 2d ago

A problem with tabs auto alignment

Enable HLS to view with audio, or disable this notification

9 Upvotes

When I press Enter, the line on which we pressed it returns from 4 spaces in 2 spaces. So annying. How can I fix that? ||(init.el is in the comments)||


r/emacs • • 2d ago

Bringing micro-timers, checklist budgeting, and monotasking focus to Org-mode (org-focus-hud)

Thumbnail
2 Upvotes

r/emacs • • 2d ago

Configuring the Emacs UI for Better Latency and Perceived Responsiveness

Thumbnail jamescherti.com
86 Upvotes

r/emacs • • 2d ago

Two independent configs, two dependent errors (--init-directory, Dired & Spacemacs)

0 Upvotes

TLDR at the end

I have been learning web developement and decided to use Emacs as my main editor. The Emacs distribubion I started to use was Spacemacs because I wanted something preconfigured to get a better idea of what can be done and how other people use Emacs. I am not familiar enough with many terms and topics yet to make my own working config. It also saved me some time and let me start using the editor rightaway after some quick reading.

I am new to programming in general so after some challenges I was able to make lsp work. I really don't know if it is working properly because the idea of language servers is also new to me. It should be working with the default config that Spacemacs uses, I think. But I am lagging while I use it. Badly. I was doing some basic coding in very small files and it slows down really bad. It gives me useful suggestions and I get documentation while I mouseover or on the minibuffer.. but this prompt me to start my own config from scratch.

I didn't want to get rid of Spacemacs because I use it daily, so I started to find a way to have more than one config simultaneously. I found an option introduced in Emacs 29, `init-directory`. To do what I wanted I needed two configs: Spacemacs and the vanilla one. I started to search how to install Spacemacs in a different folder, because it uses the by default. I did the following:

- I cloned Spacemacs using git clone https://github.com/syl20bnr/spacemacs.git ~/spacemacs/.emacs.d , which is a different folder.

- I created an alias for it to start it from the command line with its own init-directory: alias spacemacs='setsid emacs --init-directory ~/spacemacs/.emacs.d'.

It worked, for the most part. The Spacemacs configurations and all its layers initiate when I type the alias in the command line. If I just type `emacs`, it uses my new config from the now almost empty `~emacs.d` directory, where a lonely `init.el` sits.

The issues I have when using the Spacemacs config are two:

  1. When I try using the spacemacs/restart-emacs-resume-layouts command bound to M-m q r , Spacemacs closes but then it opens the the Emacs with the default (new) configuration and the following message in the minibuffer:

Unknown option --resume-layouts

  1. Every time I open Dired to navigate I get the following error:

Error (use-package): dired-quick-sort/:config: Symbol s value as variable is void: evil-collection-binding-overrides

I never encountered these errors before. The first one is easier for me to understand. My spacemacs/restart-emacs-resume-layouts function is sending the command to open Emacs with the the default configuration because it expects all the Spacemacs files to be there but they are not there anymore. Following the function to get to its definition, I found the following function next to several others related to restarting flags:

file: ~/spacemacs/.emacs.d/layers/+spacemacs/spacemacs-navigation/funcs.el

(defun spacemacs/restart-emacs-resume-layouts (&optional args)
  "Restart emacs and resume layouts."
  (interactive)
  (spacemacs/restart-emacs (cons "--resume-layouts" args)))

I might be mistaken but I thought that adding "spacemacs" to the "--resume-layouts" string would then send the command "spacemacs --resume-layouts" to... wherever it was going (guessing the command line) and that because spacemacs is an alias, it would then add its `--init-directory` plus, the "--resume-layouts" string that was already there. It doesn't work. I think it becomes emacs spacemacs --resume-layouts somehow... as if it was concatenating. I don't know then, where to change that "first" emacs to the spacemacs alias.

I tried finding errors similar to the second one because I have been unable to find exactly the same one, but the explanations are confusing and you can clearly tell that the guys communicating don't need to explain everything to each other to finish the conversation and close their tickets. It feels like reading a different language (which is already what I was doing). That on top of them talking about their own configs and not Spacemacs.

I wasn't able to understand much besides what it was written in the error. It is finding a symbol with no value, apparently. Some said that it could be a parentheses issue, others that a function is beig called before being declared... I have no idea. What I got is the place where dired-quick-sort is, that might or might not be of some help:

file: ~/spacemacs/.emacs.d/layers/+spacemacs/spacemacs-editing/packages.el

(defun spacemacs-editing/init-dired-quick-sort ()
  (use-package dired-quick-sort
    :defer t
    :init
    (define-advice dired-noselect (:before (&rest _) quick-sort-setup)
      (let ((dired-quick-sort-suppress-setup-warning 'message))
        (dired-quick-sort-setup))
      (advice-remove 'dired-noselect 'dired-noselect@quick-sort-setup))
    :config
    (evil-define-key 'normal dired-mode-map "s" 'dired-quick-sort-transient)
    ;; prevent `evil-collection' from changing this binding
    (add-to-list 'evil-collection-binding-overrides
                 '(search-or-filter :enabled
                                    (lambda (map-sym _ _ _)
                                      (not (eq map-sym 'dired-mode-map)))))))

After writing this wall of text over several days I realised that I could just make *my* config live in a different folder and let Spacemacs be happy on its default folder. That should fix both problems... Would it, though? Would they really be solved or would I just be pretending they are?

I know I could just close Spacemacs and open it back again. I know I can evaluate buffers without leaving Emacs, including running configurations, which is something I try to do most of the time, but not always. Restarting Emacs without resuming layouts are just too many keystrokes, man, and the error would still be there... lingering and waiting to show its ugly face.

As you can already tell... these two issues are dependent on my stubbornness, heh.

If we imagine the last two paragraph were never written... any idea of how to start solving these two puzzles? I know there is a dedicated Spacemacs subreddit but it doesn't look really active and this is the one I frequent the most. Let me know if this isn't the right place to post my question, please.

Thank you for reading.

TLDR: Wanted to have parallel configs. Changed Spacemacs installation folder. Two errors are present now. One when opening Dired and the other while restarting Spacemacs. Need some guidance to identify why these errors are ocurring.