تازگی گردآوری
تازه- آخرین مشاهده موفق
- 2026-08-14 13:51 UTC
- وضعیت گردآوری
- ok
- نسخه تجزیهگر
- web-v3
This channel is a feed for r/emacs.@r_channels@reddit2telegram
مشاهدات عمومی نمایه؛ این اعداد توسط مالک کانال ارائه نشدهاند.
مشاهده تازه · اطمینان متوسط · 181 نمونه پست
دسترسی برابر است با میانه بازدید پستهای منتشرشده در ۳۰ روز گذشته تقسیم بر آخرین تعداد مشاهدهشده اعضا. خط تیره یعنی داده تاریخی کافی نیست. (channel-v1)
هفت روز اخیر
این بخش آنچه دایرکتوری واقعاً مشاهده کرده نشان میدهد و امتیاز ترکیبی اعتبار یا کیفیت تولید نمیکند.
ویرایش و حذف پست از داده تجمیعی فعلی در دسترس نیست؛ بنابراین بهجای صفر، ناموجود نمایش داده میشود.
بازه 2026-08-08 تا 2026-08-14 · ذخیره موقت ۱۵ دقیقه · channel-evidence-7d-v2
Org-draw: Drawing inside org-mode using tl;drawhttps://youtu.be/04zbf-tosNQhttps://redd.it/1vponzm@r_emacs
Magit Ricing?https://preview.redd.it/t1owu3yvkmjh1.png?width=960&format=png&auto=webp&s=964ad55723027161f445a31b989f566add32f394I’m really starting to like Magit from a functionality standpoint, but I hate to say it—it’s ugly. It’s probably the better choice for me practically, especially since I’m already using Emacs, but I really like the way Lazygit looks and feels.What I especially like about Lazygit is the panel-based layout. Files, branches, commits, diffs, etc. are visually separated into their own areas, which makes the interface feel much cleaner and easier to scan than having everything in one continuous buffer.Has anyone riced or customized Magit to get closer to that kind of look? I’m not necessarily trying to recreate Lazygit exactly, but I’d love stronger visual separation between sections and more of that clean, organized panel/dashboard feel.https://redd.it/1vphmxv@r_emacs
A Tour of Magit's Status InterfaceI just wrote a post about Magit's status screen, focusing on why it's powerful rather than just saying it is, I've always found the "why" gets asserted more than explained. It's written to be approachable for non-Emacs folks. Planning follow-ups on staging/committing and cherry-pick/rebase.For those who have been using Git CLI, what workflow did Magit make so painless you now take it for granted?https://heiwiper.com/posts/magit-status-tour/https://redd.it/1vpdpet@r_emacs
Has anyone gotten org-display-remote-inline-images to work ?Found a post that says org-display-remote-inline-images only functional for TRAMP paths. Is this accurate ? I tried both 'cache and 'download options still getting "No images to display inline" Tried both with and without double brackets. (Local images work fine)emacs: 30.2 org mode : 9.7.11https://redd.it/1vpcccc@r_emacs
Gptel new interaction interface ?https://youtu.be/T9HSTSm7i5Mhttps://redd.it/1voxxpo@r_emacs
Capture dotfiles using org-captureSince I discovered org mode, I always was balancing between using symlinks and org babel tangle to manage my configuration. Now I'm in point that work related items are org babel managed and system level config is symlinked, because, often tools write back to their files. Another reason why I did not go full on babel was that I don't like workflow:1. found file that requires backup2. copy file3. paste in to org mode4. fill all details5. tangle.But yesterday I was visited by GNU spirit and she gave mi this org-capture template that reduces adding new file to backup to C-c k (my capture prefix) b (backup) and then tangle that file to original place: * [[%(project-root (project-current))]] [[%(abbreviate-file-name (org-capture-get :original-file))][%(file-relative-name (org-capture-get :original-file) (project-root (project-current)))]] - repository :: [[%(project-root (project-current))]] - file :: [[%(abbreviate-file-name (org-capture-get :original-file))][%(file-relative-name (org-capture-get :original-file) (project-root (project-current)))]] #+header: :tangle %(abbreviate-file-name (org-capture-get :original-file)) #+begin_src %^{Language|shell|elixir|nix|python|elisp|fundamental|eshell|conf} %(with-temp-buffer (insert-file-contents (org-capture-get :original-file)) (buffer-string)) #+end_srcI cannot comprehend how simple it is and how I never realized I could do this. Two think I think would be nice in future: \- if only it can automatically group those captures by project, but thinking of creating project backup capture template and simply refile from capture buffer \- automatic detangle so I can get back changes written by tools to their files, but not all of them support comments and many of them don't patch but dump state to file, so probably unsolvable using build in tools, only by elisp scriptingI'm trying to avoid longer elisp scripting for now 😄 What do you think?https://redd.it/1vowo7f@r_emacs
Regex fontificationDoes anyone know a good package for fontification of regular expressions. What I'm after, in particular is something that would simply highlight groups/classes in regular expressions.For example in `typescript-ts-mode`, I see this from my code:Incorrect regex with an empty alternative group \`\(|\)\`That regex has an incorrect, empty alternative group. I noticed that when reviewing it in Gitlab, it highlighted a past version of this regex in this way, making it much easier to spot the mistake:https://preview.redd.it/z1iabumthhjh1.png?width=715&format=png&auto=webp&s=fde04f2efb89e87e4eb779151de1cfac125ba942I'm looking for a package that would add a single face, for capture groups, groups, classes and special characters in regular expressions. I don't know if that exists or whether this needs to be added to the tree-sitter grammar to work.https://redd.it/1vovi0e@r_emacs
New package: reviewer.elhttps://redd.it/1votod3@r_emacs
Just a fun little project I've been working onJust something I've been working on to learn more elisp. I like muds and I like Emacs, why not combine them! :) (I didn't realize it would record what I was listening to on youtube, so the music is NOT intentional). This is pretty much in an alpha state as I'm pretty much an elisp noob, but it more or less works. Nothing fancy , but it does work!Fun project to combine emacs and mudshttps://redd.it/1vooi5p@r_emacs
agent-shell 0.73 updateshttps://redd.it/1volpch@r_emacs
What is the best way to view the live output of a long shell process in Emacs without making it hang AND capture it into and org-babel #+RESULTS: as well?I want to capture the screen output of long running scripts like Debian upgrades in Emacs without Emacs hanging.I usually capture the output into an org-babel src text block for review but Emacs hangs during the process and when I do it :async it fails with the Error in process sentinel message.Piping the output into a file and using the tail command to view it one of Emac's terminal packages could probably do the trick. The filename could be linked into the org region using org-transclusion or some other similar method.My current approach is to run command 2>&1 | tee outputfile and that usually guarantees that all the output will appear in the :wrap src text regardless of any errors, rather than the Org error buffer.In my limited experience this would be equivalent to getting Emacs to inject the execution of the command into a gnu screen or tmux session so the output would be visible in that screen via term or eat and the results would still be captured in the #+RESULTS: block.Any ideas or existing solutions for this issue?https://redd.it/1voj7u4@r_emacs
Demo: Browse the web in the Emacs Web Browser by using LLMs to live-rewrite the page's source.https://redd.it/1vohgxc@r_emacs
Fixing a flycheck + straight.el + package.el issueI've been tinkering with my config lately, which has me running Emacs directly rather than firing up a server and client. Because of this, I noticed the following warning:>⛔ Warning (straight): package.el was loaded when straight.el was already loaded. You may wish to delete ~/.emacs.d/elpa or add (setq package-enable-at-startup nil) to ~/.emacs.d/early-init.el to avoid multiple versions of the same packages being loaded.I don't want to have to deal with mysterious package version mismatch issues down the road, so I decided to try and fix it. Obvious way to start was by deleting ~/.emacs.d/elpa/ and adding (setq package-enable-at-startup nil) to my ~/.emacs.d/early-init.el, and this seemed to work, at first. A little while later I made some changes to one of my personal packages and reloaded, and the warning came back.This led to some grueling trial and error. I was able to pin it down to Emacs lisp files, specifically ones that don't belong to Emacs (such as init.el or early-init.el). I went through the minor modes I use in emacs-lisp-mode one by one, and was able to highlight flycheck as the issue.Actually solving the issue was interesting. Flycheck apparently fires background Emacs processes using -Q --batch to do its checking which makes a lot of sense for performance and such, but it also calls (package-initialize) to install any packages referenced by whatever you're working on. This happens out-of-band of your current Emacs instance, and in that separate Emacs instance none of your normal initialization code gets run. The arguments it passes to those instances are set in a constant flycheck-emacs-args, and I wouldn't want to alter those to use my config (or any part of it really) since that would likely bog things down.What I ended up having to do was inject some code into flycheck-emacs-lisp-check-form at the very beginning of the (progn ...) it contains: (with-eval-after-load 'flycheck ;; flycheck-emacs-lisp-check-form is stored in a string, so we have to ;; parse it to a list before operating on it (let ((form (read flycheck-emacs-lisp-check-form))) ;; inject an override setting package-user-dir to the temporary ;; directory so when the flychecker initializes packages they don't get ;; written to ~/.emacs.d/elpa/, which causes startup warnings (setcdr form (cons '(setq package-user-dir (expand-file-name "flycheck-elpa" temporary-file-directory)) (cdr form))) (setq flycheck-emacs-lisp-check-form (prin1-to-string form))))This moves package-user-dir for those instances to a temporary directory, so they can do what they need to do without interfering with normal Emacs usage and operation.https://redd.it/1vo7jns@r_emacs
The Emacs pastoral tradition by Chris Maioranahttps://youtu.be/ki2FblUUpWw?si=KdaDc4EM2PtEnCM3https://redd.it/1vo78sp@r_emacs
Using noweb syntax and elisp to manage host-specific dotfileshttps://bjfer.github.io/blog/posts/dotfile-org/https://redd.it/1vo2qgm@r_emacs
legmacs demo : Emacs-like editor running on plan9 and displaying in Windows Terminalhttps://youtu.be/Yy8GPr-0MOMhttps://redd.it/1vo2s11@r_emacs
highly recommend simple-modeline -- Configurable, but minimalhttps://redd.it/1vnk901@r_emacs
Help me reduce the number of packages I'm using (maybe)Seeing that the built-in completion may now be a viable alternative to vertico made me interested in the things that I might be able to replace with built-in functionality. I use quite a number of packages, and some of them are really essential to me, but some of them may be old and familiar and worse than built-in functionality. For instance, I still use mic-paren, and I have NO idea how old it is. The last update was 9 years ago. It works the way I want, but I'm willing to take suggestions on how to use default emacs to replace its functionality, or a better package that does more.I'm also willing to accept that maybe I'll leave everything as-is. But fewer dependencies on spinning up a new emacs would be nice, and I do write a lot of my own tools when I need them.If nothing else, I'm interested to hear what people think. ;; Package management elpaca ;; Icon packages all-the-icons nerd-icons all-the-icons-ibuffer all-the-icons-dired all-the-icons-completion ;; Completion orderless vertico marginalia -- Show useful notes in the 'dead' space when completing embark -- Still trying to figure out how to make this part of my workflow helm -- My preferred completion interface for buffer switching, finding files, etc. consult -- I don't think I actually use consult much except for xref company -- My preferred completion framework for code (I tried corfu+cape and could not get them to work well for me) embark-consult ;; elisp let-completion -- scope-sensitive completion super-save -- Configurable auto-saving f -- elisp package for file access/manipulation compile-angel -- automatically byte-compile/native-compile elisp bind-key -- bind-key syntax ;; Magit + Transient transient -- essential, and not just for magit; I build a lot of my workflow through here magit ;; Cosmetic ef-themes ligature -- I use ligatures everywhere ;; Search deadgrep -- I mostly use helm-ag, but this is an excellent package rg -- Maybe I should just switch to this? A lot of overlap with deadgrep, but I think the deadgrep interface is nicer helm-ag -- How I use ripgrep in helm anju -- count isearch results/show search position ;; Movement + Editing switch-window -- Good if there are multiple windows in a frame, pops up a number so you don't have to cycle through, you can jump to the one you want zop-to-char -- Like zap-to-char but better dumb-jump -- important fallback when eglot/LSP can't find a symbol iedit -- Multiple cursors tempel -- Template package avy -- I use this to jump around files all the time ;; Programming eglot-booster -- Make eglot more async xref-union -- combines all the xref stuff together eglot-tempel clang-format -- For formatting, obviously clang-format+ -- clang-format on save ;; Syntax highlighting mic-paren -- My default paren highlighting package. Been using it for years. rainbow-delimiters -- Highlights braces, brackets and parens in colours that let you see the scope they enclose. Especially good in lisp prism -- Colours code by scope, extremely useful in lisp indent-bars -- Helps show scope, particularly in C++, particulary in files where scopes may extend over many pages ;; Misc tiles -- Notes taking package/scratchpad. I use it to emulate the quick note-taking I had in notepad++ helpful -- Nicer help display dashboard -- I like having a better splash screen, but I think a list of recent files would be sufficient ;; Project management project -- I think I might prefer projectile torus -- A way to group files/buffers. Fast to switch between files within the active group, fast to switch between groups, but a little clunky in some spots ;; Modeline minions -- Group all minor modes into a single group on the modeline. 10/10,
Gemini steals C+g, with hilarious consequencesToday I was in a meeting (Google Meet / Chrome) sharing my emacs screen. Every time I hit Ctrl+g, a window popped up with some Gemini chat thing. Anybody else had this happen? TIL that without C+g, emacs is practically unusable. (Save for the menu bars, they saved me this time - at least I was able to quit.) Presentation was rubbish though.https://redd.it/1vnse30@r_emacs
how to ship an info file in a module?Yesterday during the org-meeting, Ihor mentioned that he appreciated packages providing an info file.My question is, what is the best way to do this? In particular,1. What location? e.g. docs/<package>.info>2. Should the package add its path in Info-directory-list?I am assuming that the user will use use-package or something similar to use/try the package.thank you in advancehttps://redd.it/1vniwju@r_emacs
Tailwind, Modus Themes, and the blog theming workflowhttps://sdowney.org/posts/tailwind-theme-workflow/https://redd.it/1vnkrku@r_emacs
Question about visidata and emacsHi, I wanted to know if anyone has a workflow to use Visidata inside emacs or something similar to make working with Visidata easier within Emacs? Right now, I open another terminal (Otherwise my evil keybinds will break with the ones from Visitata) and then use a shortcut that copies the file path, and then i open it in Visidata. I wanted to know if there's a better way.Thanks for reading.https://redd.it/1vmijf1@r_emacs
I built an Emacs keybinding drill trainer (95 moves, levels 1–7) — corrections welcome, especially from evil-mode users>https://redd.it/1vme9dz@r_emacs
Rust-analyzer with eglot and large codebasesWhenever a rust project indexes, emacs grinds to a halt completely. I have `read-process-output-max` set. This is unusable for larger codebases. Help is appreciated!https://redd.it/1vlmc1m@r_emacs
LSP-Mode and eldoc?I'm experimenting with eglot vs lsp-mode, and I can't seem to find a good way to get reliable documentation with lsp-mode. In Eglot in a C++ file I get:https://preview.redd.it/cn6lokafruih1.png?width=1523&format=png&auto=webp&s=eb730236c09fbeb1f39921960dbf9a65d137a513While in lsp-mode I get:https://preview.redd.it/onwagyvjruih1.png?width=1520&format=png&auto=webp&s=0670d187b6b7d13429abffac81e09476b3eaea19That's significantly less helpful. I really love the concept of eldoc and being able to have a window off to the side dedicate to documentation (I would prefer that to the floating UI in lsp-ui, though I haven't played with it much). Is there any way to achieve that in lsp-mode?Granted, Eglot Eldoc support isn't panacea in all languages anyway, since in Typescript I get pretty useless information: https://preview.redd.it/qcpk8ppesuih1.png?width=1790&format=png&auto=webp&s=f53a6f9f4646872f98f99355be0be6c5bb01452f https://redd.it/1vm1b9b@r_emacs
Workflows hard to reproduce outside Emacs?Hi, I'm conducting an inquiry to outline, with evidence, how the tooling landscape has evolved over time.I'm a casual Emacs user myself. I find it cool, but as soon as I step into something a bit beyond the ordinary, I often have to rely on specialized tools that can achieve it in a blink of an eye. This seems to be a shared sentiment, and potentially one of the things limiting adoption, along with the cognitive overload caused by the sheer richness of the tool and its ecosystem. But that may also be on me and my own skill gaps.Since it's hard to sell Emacs to someone, especially because the key concepts it brings to the table are arguably unfamiliar to most people, even IT folks, I'd like to gauge the situation by inverting the process: what are the workflows that would be very hard to reproduce without Emacs?Once I collect enough examples, another group will try to figure out alternative ways to accomplish the same tasks with their own tools.So, to be clear, we'll start with a problem, and various tools and their respective communities will attempt to solve it with what they know, then we'll evaluate how difficult it was. Finally, I'll build a matrix comparing everything.So, give me your best shots. The results will be published around Christmas in a well known journal in Europe, so I'll be back! https://redd.it/1vlxuwt@r_emacs
Continuous clocking across days/r/orgmode/comments/1vlrtqw/continuous_clocking_across_days/https://redd.it/1vlrw2x@r_emacs
Tramp for Homelab?can you all help me understand Tramp better? is it to SSH as Magit is to git? or is it just simply a way to connect files to your dired? can you run commands on remote machines with Tramp? is it worth using or just use the Term? https://redd.it/1vlq9tu@r_emacs
Indentation on emacs? how to make it aligned like in nvim(second image)https://preview.redd.it/z258bynbcsih1.png?width=375&format=png&auto=webp&s=f11deee8aaf74735ad0db9fca7ef8735fa66d07ahttps://preview.redd.it/4b395mxccsih1.png?width=400&format=png&auto=webp&s=859ad425f3a3a20a07b552078a873c4078de9b4dhttps://redd.it/1vloyjr@r_emacs
You understand my painhttps://redd.it/1vlnjtc@r_emacs
[eaf]「ebook-viewer」 Super Fast & Support Native Calibre's ebook-viewer on emacs.https://redd.it/1vlmn9g@r_emacs
gptel-agent users: how are you using the web search tool?I've been using gptel-agent, specifically because I want local LLM instances to be able to query the web (without additional setup).I'd love to hear how you are achieving this. My results are not promising:Likely to be a problem-in-chair but so far I've tried 3 models:1. Deepseekr1 runs out of tokens (400 error token limit) when run from gptel-agent;2. Gemma4:e2b cannot use websearch and just prompts repeatedly for a query (this seems to be a gemma issue)3. tomng/nanbeige4.1:3b can use the web search, but treats the response as a new chat. E.g. it thinks it is at the beginning of a process, and has forgotten the initial question.I'd love to see how you guys are working this.https://redd.it/1vll30j@r_emacs
Displaying an input language indicator in mode-line, using doom-mode-lineHow to add an indicator to the mode-line, I use and write in two languages, English and Italian, I want to have an indicator for example color X and if the keyboard is in Italian mode there will be an indicator with the name of the keyboard now and color Xhttps://redd.it/1vlg595@r_emacs
It have been such a long time since i have a good experience updating my code editorToday I'm feeling lucky so I decided to pull the master branch of Emacs (v32) and build it up myself for both my PC and MacOS expecting everything is broken but oh boy I love being wrong here. Thanks to jimeh and kiennq for providing excellent build script on both platforms. There is not a single plugin being broken, well except evil on Windows but it went away after I upgraded evil to the newest version. The occasional typing lag when editing my Rust code because of the hungry eldoc also went away and it feels super responsive like other editors now. And there are many quality of life improvements like built in tree-sitter support and markdown mode, collapsing minor modes,... The only thing that not right is the new lsp semantic highlighting making the theme so colorful that hurting my eyes but it can be easily disabled.I have been using you-know-what editor for a long time and after the AI bubble it keeps getting worse after each weekly update and i'm no longer expecting anything good from updating my editor.But with Emacs it's such a breath of fresh air!https://redd.it/1vlhgss@r_emacs
rebuild, the buffer contains information that the Lisp state does not, and that unsaved text can be lost.# 4. Display glyphs are not always text columnsGraphical checkbox glyphs and other display properties can occupy a different apparent width from their underlying string.That is usually harmless in a normal widget buffer, but it becomes visible ninside grids, padding and borders. For layout-heavy interfaces, text representations such as \[ \] and \[x\] are much easier to measure reliably.# 5. Recreating every widget is expensive; recreating changed regions can be acceptableThe useful question was not “Is widget.el slow?” but:>Which widgets are recreated, how often, and over what region?Preserving widgets in unchanged regions and adding optional fast paths produced a large improvement without replacing the control system.# 6. Benchmark byte-compiled codeThe source-loaded and byte-compiled results differed substantially, especially around closures and layout traversal.Source-loaded measurements are useful for relative profiling, but release-like performance should be measured with byte-compiled TextUI and widget definitions.# Where TextUI now standsTextUI still does not provide component-local state, a virtual DOM, CSS, a box model, or another widget catalogue.It currently provides:* responsive Flex and Grid layout* Knuth–Plass paragraph justification* native image regions* ordinary widget.el controls* buffer-level state* lifecycle effects and async protection* automatic block reconciliation* explicit region refresh as an optional fast path* optional measurement and attachment acceleration for package-owned widgetsThe project has moved from asking “Can Emacs display this kind of interface?” to a more useful question:>How much layout and refresh behavior can we add while keeping the native Emacs programming model understandable?For now, “automatic by default, explicit after measurement” feels like the right boundary.I would be interested to hear from package authors: which part of widget.el causes the most trouble in real interfaces—layout, editable fields, refresh cost, focus, or something else?\\[https://github.com/yibie/textui/blob/main/CHANGELOG.md](https://github.com/yibie/textui/blob/main/CHANGELOG.md)https://redd.it/1vlcqtu@r_emacs
'push-button "A package-owned button." :format "%[%v%]" :textui-measure #'textui-widgets-measure-button :textui-attach #'textui-widgets-attach-button):textui-measure receives a converted widget and returns its exact single-line presentation.:textui-attach receives that widget and the bounds of the already inserted presentation, then attaches ordinary widget.el behavior without changing its width.There is no adapter registry, no required TextUI superclass and no second control hierarchy. If either property is absent, TextUI keeps using the ordinary widget creation path for that phase.The bundled textui-button, textui-checkbox and textui-field types are examples of this protocol. They are not intended to become a replacement widget library. Package authors should normally keep defining their controls with widget.el.# 0.5: complete evaluation by default, explicit optimization when measuredAfter seeing the failure mode of textui-route-state, I tried removing its manually maintained dependency graph.The default update path now works like this:update textui-state ↓ coalesce updates in the current event cycle ↓ evaluate the complete render function ↓ compute the complete responsive layout ↓ compare named complete-line regions ↓ replace only the regions that actually changedI describe this as:>Complete evaluation, block-level commit.The complete render function remains the source of truth, so TextUI can see structural changes, responsive layout changes and effect dependencies.It does not perform element-level virtual-DOM reconciliation. It compares bounded, named blocks of complete lines. Unchanged regions keep their existing native widgets.In the byte-compiled btop fixture with 1,000 process rows at 120 columns:* Automatic complete reconciliation: 4.14 ms median* p95: 4.31 msThat was fast enough to make automatic reconciliation the default.However, I agree that developers should still have access to a manual performance path when measurement justifies it.TextUI therefore retains this form: (textui-update buffer (lambda (state) (plist-put (copy-sequence state) :selected next-row)) :region 'rows :producer #'my-package--render-rows)This skips the complete render function and refreshes only rows.In the same 1,000-row fixture:* Automatic reconciliation: 4.14 ms* Explicit region update: 2.36 msThe explicit path was about 1.75× faster.The difference from the removed textui-route-state is locality: the state change, target region and producer now appear together at the update site. There is no persistent key-to-region graph elsewhere in the render function.It is intentionally a caller-owned performance promise. The developer must ensure that the updated state does not also affect:* another region* the frame shell* responsive layout* a lifecycle effectThe intended rule is simple:>Start with automatic reconciliation. Introduce an explicit region update only after measuring a real problem.# A few practical widget.el lessonsBuilding these versions changed how I think about widget.el.# 1. Extend widget.el before wrapping itdefine-widget already provides inheritance and type properties. If a package needs faster measurement or attachment, adding inherited properties is usually simpler than creating an adapter registry or another widget hierarchy.# 2. Keep presentation and behavior separateFor layout, TextUI first needs to know the exact visible presentation. For interaction, widget.el needs markers, overlays, keymaps and callbacks.Separating those two phases made it possible to optimize layout without reimplementing control behavior.# 3. Understand :action and :notifyButtons normally use :action. Editable controls report value changes through :notify.TextUI schedules one automatic refresh after a successful :action, but it does not wrap :notify. An editable widget should copy its current widget-value into ordinary Lisp state from its :notify callback.If field contents are not synchronized before a complete
What I learned about widget.el while building TextUI 0.2–0.5TextUI has moved from 0.2 to 0.5.1. The releases happened close together because most of the work was driven by focused experiments: reproduce a real UI, find the missing capability, measure it, and only then decide whether it belongs in the framework.The main lesson has become clearer:>TextUI should improve the layout, refresh and runtime behavior around Emacs widget.el, rather than replace it with another widget system.Repository: [https://github.com/yibie/textui](https://github.com/yibie/textui)# 0.2: state, lifecycle and partial refreshThe first versions of TextUI were mostly about responsive Flex and Grid layout. By 0.2, the layout engine was already useful, but building a live interface still required too much repeated coordination code.Version 0.2 added a small buffer-level runtime:* textui-state, an ordinary buffer-local Lisp value* textui-update and textui-set-state* coalescing several state changes into one refresh* lifecycle effects for timers, processes and cleanup* async callbacks that ignore results from expired effects* named complete-line refresh regionsAt that time, TextUI also introduced textui-route-state. A render function could declare that certain top-level plist keys affected a particular region.That was fast. In the original 50-process btop fixture, one detail update improved from a median of 11.65 ms for a full refresh to 5.67 ms through state-to-region routing.But it introduced a new responsibility: the package developer had to maintain a second dependency graph.If a routed key later started affecting another region, the surrounding layout, or a lifecycle effect, forgetting to update the route could leave stale content in the buffer.The framework could not detect that mistake because the route existed specifically to skip the complete render function.# 0.3: finding where widget.el actually costs timeA thoughtful response from the author of vui pushed me to investigate a more fundamental question:>Is good refresh performance only possible after replacing widget.el controls with a separate widget implementation?Instead of guessing, I profiled TextUI with hundreds and thousands of real widget.el controls.A large part of the cost came from creating a widget to measure it, inserting the final layout, and then creating the widget again in the real buffer. Editable fields were especially expensive because of their overlays, markers and teardown behavior.Version 0.3 introduced an optional fast path:1. Produce the exact single-line presentation without creating the final widget.2. Let the layout engine place that text.3. Attach normal widget.el behavior directly to the already inserted range.The generic widget path remained available for every widget type that did not declare the optimization.In a fixed fixture containing 3,000 native controls:* Generic native-widget path: 596.55 ms* Attached fast path: 238.58 msThat is about a 2.5× improvement while retaining normal widget actions, notifications, validation, keymaps and type identity.The performance programs are retained under test/performance/, including experiments that did not improve performance. I found the negative results useful because they ruled out several attractive but incorrect explanations.Version 0.3 also fixed several layout details exposed by these tests:* editable fields and display glyphs remain inside bordered widths* Knuth–Plass uses real ideal, shrink and stretch spacing* narrow paragraphs fall back to natural wrapping instead of overflowingTextUI’s paragraph justification is based on the algorithm from emacs-kp.# 0.4: turning the optimization into a widget.el extension seamThe 0.3 fast path initially worked mainly with TextUI’s own experimental widget types.Version 0.4 made it a public, inherited widget.el protocol: :textui-measure :textui-attachA package can add these properties to its existing define-widget form: (require 'textui-widgets) (define-widget 'my-package-button
Fortnightly Tips, Tricks, and Questions — 2026-08-11 / week 32This is a thread for smaller, miscellaneous items that might not warrant a full post on their own.The default sort is new to ensure that new items get attention.If something gets upvoted and discussed a lot, consider following up with a post!Search for previous "Tips, Tricks" Threads.Fortnightly means once every two weeks. We will continue to monitor the mass of confusion resulting from dark corners of English.https://redd.it/1vl5lkv@r_emacs
How do I quit vim?How do I quit vim? haha but not quit as in exiting, quit as removing the (use-package evil)from my emacs config. I've been using emacs + evil-mode for 6-7 years now and I'm open to exploring options. It's probably fun, but what are yall experiences/suggestions on emacs without evil? Do you advocate another edit school?https://redd.it/1vkyzpl@r_emacs
A warning for new Emacs usersDon't get confused by the word "sexp". That's how Emacs gets young men in.They come looking for sex, get sucked into endlessly configuring their workflow, and eventually forget what they came for in the first place.https://redd.it/1vkufc3@r_emacs
single-window.el - Always Open Emacs Buffers in the Current Active WindowThe single-window package forces Emacs to open buffers in the current active window.It keeps your carefully arranged layouts intact, reduces visual clutter, and provides a much more predictable workflow. It handles edge cases by configuring modes like org-mode (src blocks and agenda) to respect the current window.https://redd.it/1vkja7m@r_emacs
Is there a package so I can have mini-windows like in VS Code?I'm trying to entirely move over from VS Code to Emacs but still rely on the mini-window (in the top) of VS Code which contains recently opened & edited scripts, I imagine there is something like this in Emacs? Also, a side one, but is there also a package so I can have the side-on view/section (like in VS Code), which will give a list of all the directories & files in a directory? Both of these features keep me from swapping over entirelyhttps://redd.it/1vjv09o@r_emacs
myn-macs (MY miNimal eMACS IDE setup for the lazy terminal wizard)https://codeberg.org/CatWizard/myn-macshttps://redd.it/1vkdgeb@r_emacs
Keybindings for markdown-ts-mode in Emacs 31? Excited to see that `markdown-ts-mode` will be part of the upcoming Emacs 31 release. Thank you for developing it! I am curious: 1. What will be the keybindings that come with this mode? How do they compare to other implementations such as `markdown-mode`?2. Where is the documentation for markdown-ts-mode? Will it just be part of the Emacs documentation? Is there a way to view it right now?3. BTW, is there a comparison of markdown-ts-mode and markdown-mode? Thanks! https://redd.it/1vjsaw1@r_emacs
[ Prot new vid ] Emacs: conditionally expand abbrev-mode definitionshttps://youtu.be/QzhU6fklc4o?si=X1fsOqgYCZnA8Cpghttps://redd.it/1vjzpkg@r_emacs
graph-fa2 0.2.3 now available on MELPAhttps://redd.it/1vjz9py@r_emacs
New to Emacs - Eglot/gopls automatic imports not working on saveHello Emacs gurus!I'm new to Emacs and I'm trying to set up my Go development environment.When I run: M-x eglot-code-action-organize-imports it correctly adds missing imports (for example, fmt), so Eglot and gopls seem to be working.However, I'd like to make this easier to use. Is there an idiomatic way to run "organize imports" with a keyboard shortcut, or even automatically when saving the file?What's the recommended approach for Go development with Eglot?Thanks!https://redd.it/1vjwhn2@r_emacs
emacsformacosx.com d12frosted/homebrew-emacs-plus?i dont know much about emacs. i have been a neovim user for years now and just willing to give emacs a try. which one should i go for?https://redd.it/1vjscrc@r_emacs
Keybindings for markdown-ts-mode in Emacs 31?Excited to see that `markdown-ts-mode` will be part of the upcoming Emacs 31 release. Thank you for developing it! I am curious: 1. What will be the keybindings that come with this mode? How do they compare to other implementations such as `markdown-mode`?2. Where is the documentation for markdown-ts-mode? Will it just be part of the Emacs documentation? Is there a way to view it right now?3. BTW, is there a comparison of markdown-ts-mode and markdown-mode? Thanks!https://redd.it/1vjsd3t@r_emacs
Make Emacs load faster on WindowsIs there some way to speed up the loading of Emacs on Windows? For me it goes painfully slow (much slower than on Linux), and I have therefore considered switching to another editor.https://redd.it/1vjoc63@r_emacs
Day 2 of emacs (as a neovim user)https://redd.it/1vjms2b@r_emacs
Runbox.el - for shell/compile/eglot over TRAMP in local buffershttps://github.com/antrmn/runbox.elhttps://redd.it/1vjkjrc@r_emacs
Denote abort or cancelled file history in Doom EmacsI have recently started experimenting and learning Denote. I somehow like the naming conventions. As such I new to Emacs as well and am using Doom Emacs. There is one issue which is bothering me which I would appreciate if someone can direct me to a solution. When I trying to create a new Denote note in doom emacs using M-x: Denote I am sometimes aborting or cancelling the note creation before I select the tag by pressing Esc.I am noticing that the name of the aborted or cancelled note persists and shows up in the note list when I am creating the new notes after that. Is it possible to ensure that these types of aborted or cancelled note names are not captured and visible in the new note list. Only the ones which are valid and created is visible. Also how do I remove the existing demo note names as well from the list https://redd.it/1vjjyaf@r_emacs
dired-z: zoxide-style directory jumping inside Diredhttps://redd.it/1vjescg@r_emacs
video about that to get started", then go from there. 2) Another learning stepping stone: "Okay, I have been messing around with X for a bit, I wonder if they have a video, maybe they have some tips and trick I (probably) don't know about.Anyways, I guess I gushed enough about Emacs on r/emacs.So HA! Take that, to all you "just want a text editor" / "learn Emacs fast" people! PIN THIS! (The last statement is just for effect; I don't need to tell you what to do. Do what you think is best, like you are already doing.)https://redd.it/1vjcac1@r_emacs
terminal commands in Emacs, then learn why Eshell + Eat is amazing. You could progress to other things from here, but this is a pretty great start. Okay, this one is silly from me. I figured all this out because I want to play Nethack (a game! my heavens) on an online server in Emacs, literally just to see if I could and because it gave me an excuse to learn about shells in Emacs. Totally worth it, because now I know more about it! Look, I know vterm is great, and ghostel is probably better, but 1) I'm on Windows (yeah, yeah), and 2) having it all within Emacs/Elisp, with consistent behavior across OSes, that's pretty sweet. Eshell-eat minor mode all the way! But see, I know about these other things, so I can look into those when I want later. Oh yeah! I also learned remote file editing through TRAMP when doing all this! That's a serious game changer. Editing multiple things at once: figure out multiple windows and frames and how to navigate. Learn about indirect buffers. Like, omg, indirect buffers are the best. And keyboard shortcuts to move between frames and not Alt+Tab! That's crazy (awesome, that is). Elisp: learn how to write your own functions in Emacs to solve issues you come across. Man, I freakin' love writing functions that solve my problems. Did I mention hacking too many times at this point? Dired: how to manage files in Emacs. I'm finding it okay, but it beats opening up Explorer all the time, or doing this via terminal commands. WDired might be what I'm missing. Keybindings: figure out how to map your favorite functions to keybindings the way you like it. use-package can overlap here. Repeat maps is also a great hack. Keyboard Macros: figure out how to automate a set of commands, and how to manage multiple macros. This is great, and very much worth learning! Esp. how to edit macros after the fact, that made this vastly more useful to me. That and saving them. Registers: figure out how to store bits of useful information that you will use often but not continuously. VERY handy.And etc, etc. There's so much more - I just listed what I learned so far, to varying degrees of expertise. Yes, it is a lot, and I did not learn this all in a week, so set some reasonable expectations here. This is where "well I tried Emacs for a month and didn't like it" comes from, because that's a lot of stuff to figure out, and it takes a lot of time to figure these things out well. (In case anyone is curious about the next thing I'm looking at, only now am I considering modal editing, like Helix with hel, even more bespoke than vim/evil mode. But I'm going to try coding up a few of my own functions first in Elisp before deciding if I need the whole hel package, and I'm already leaning like probably not. Devil mode is also hilarious.).Something I will say though is that being a good programmer helps a lot. So either 1) maybe Emacs isn't right for you right now, but you can always come back to it later, or 2) use learning Elisp as an excuse to learn programming. At least a hackable amount. I used vim a lot before I switched, but I'm glad I encountered Emacs at the time I did, because I don't know if my programming skills were up to snuff then as they are now. I was definitely in camp 1. But I was glad to learn and use vim then because it did what I wanted, and then it didn't, and now I'm glad to use Emacs because it does what I want. The hacker's editor.So in conclusion, the way to learn Emacs, for real, is to figure out how to do the stuff you want to do in it, in the way you want it. You learn by doing that. Surprise! This is why everyone's journey is different, because what people want to do is different. Honestly though, learning Emacs is super fun because Emacs enables you, not limits you, and that makes this one of the most fulfilling and fun tools to master, and will probably be a lifetime tool for me.Oh yeah, and I do want to point out, Prot and System Crafter videos are great. I mainly use them two ways though. 1) Initial starting point: "hey, I want to do X. I wonder if they did a
How to learn Emacs, like, for realThis is a response post to how do i learn emacs, the fastest way, which even had the gall to ask for a pin. There was some responses to the original post that align with what I think, and I hope this post captures the sentiment correctly. That's right, I'm being a little spicy! Basically, I am expanding my response a bit from what I gave in this post.What sold me on Emacs is understanding that Emacs is the hacker's/tinkerer's editor. In full disclosure, I straight up stole that line from O'Reilly Learning GNU Emacs, 3rd edition, but I think it is true and I really took that to heart. If you like being able to futz around and spend time (probably too much time) customizing and writing up code and getting Emacs to do things as you want as you want it, then Emacs is hands-down the thing for you. And if that's the case, then starting off with vanilla Emacs imo is the way to go, and giving yourself lots of time (like months, just fyi) to figure things out. But, like, take it from me, if you are a tinkerer, this process is actually really fun! Because Emacs makes it very easy (soooooo easy) for you to get your hands dirty, mess around, and then change Emacs in the way you want.Well, if that's not you, and you "just want a text editor" (looking at you, some of you posters), or want to "get up to speed quickly" (looking at you, post I'm responding to), then idk. Most people who say that don't really "get" Emacs and why it's amazing, imho. It will just appear to be clunky, not understanding that you can, should, and are supposed to solve the clunkiness yourself in Emacs.Look, you want to get started? You want to learn Emacs, like, for real? Then do this: pick something to do that you don't know how to do. Figure out how to do that thing, then pick something else and repeat. Oh yeah, and in general, start with the built-in stuff (it's there for a reason). Try it out for a bit, then decide if it's a real pain point worth using an external package or not, or can you fix it with your own custom Elisp. Figure out how to do anything, and how to understand what I mean when I say `C-x C-f` and `M-x customize RET`. I started with Mastering Emacs, which started off with explaining the help system in Emacs, which is SO GOOD and is such good idea, like this is the best freakin' starting advice I ever heard and can give. I also used O'Reilly Learning GNU Emacs, 3rd edition, already mentioned. But like, I don't care, just pick something! Moving on to the built-tutorial is a good next step. Packages: figure out straight.el and use-package. Man, this is so handy. Setting keybindings and hooks, and get automatic deferred loading, like thank you please. Org-mode: note-taking, and task management with org-agenda. A big thing is that I have notes to remind myself of all the different commands I will inevitably forget, but a quick refresher gets me up and running again quickly. Also, making custom org-agenda views - hack away! Just a fun thing from me: I'm a big fan of Mission Impossible (until they ruined it :( ), so I have my TODO keyword be MISSION, and my DONE keyword be ACCOMPLISHED. That has straight up increased my attitude around todos by like 500%. Also, I would start with like a few mega-org files and then migrate to org-roam thing later only if you decide need it, but hey, you do you. Customize: how do I get colors and fonts to be the way I want, and then everything else from there. In general, if you can set it with Customize, do it through that rather than setq, imo. Programming: figure out how to get eglot working, esp. for completions, refactoring, and finding definitions. I do a lot of Python, and figuring this out took some time, but super worth it! Experiment with built-in completion before jumping to things like corfu, imo. Eshell + Eat: figure out how to run
Why emacs project management prefers file marker based root over manually setting one?By manually, I mean, for example, using recursive directory picker that sets project where you would like. So this would work kind of like zoxide + nvim where you do `cd project; nvim`. I mean, you get more search options, but on the other hand when you want to work on something once, maybe you would still like to take advantage of projectile/project.el featuresSo, is ability to set project once without making that file and adding it to project cache some kind of antipattern? Or why there is no obvious way to do it (or i am missing something)?https://redd.it/1vj122g@r_emacs
[ANN] TextUI is now public: responsive Flex/Grid layout for widget.el interfaceshttps://redd.it/1vj0m68@r_emacs
So as a neovim user, I wanna give Emacs a spinHow do I get started and should I try out Vanilla Emacs or go for a pre-configured one like Doom Emacs ?r/emacs https://redd.it/1viuk2b@r_emacs
Day of 23 and so on of using Emacs.https://redd.it/1viu4o9@r_emacs
This is for people that use Emacs and Kakounehttps://codeberg.org/johndoeuserr01/kakoune-in-helix/src/branch/main/kak-rcp.elhttps://redd.it/1vipvh7@r_emacs
Rate my Emacs config!I'm fairly new to Emacs and have just started experimenting with configuring it.Please rate it and maybe give me some suggestions, if you want!The link is here.https://redd.it/1vhw12r@r_emacs
Arbitrary Code Execution Vulnerability Mitigatedhttps://eshelyaron.com/posts/2026-08-06-emacs-arbitrary-code-execution-returns.htmlhttps://redd.it/1vhuppw@r_emacs
I am really enjoying ECA (editor code assistant) for Emacs agentic codingI must say, I have decided to try some new AI tools this week and am really loving ECA! It does ghost text, next edit suggestions, and autocomplete like Cursor as well as offering a full-fledged cli agent harness.The only downside is that it's not the model provider's harness and doesn't natively find the model's skills and subagent. For agents, in the project's .ECA directory, you have to symlink to your Claude/codex/copilot agent .md files. For skills, you can add the skills path to your .eca/config.json.Other than that, I expect I will swap between eca and agent-shell depending on my mood. There are some things I like about agent-shell better (viewport mode, understanding your model's agents/skill structure, etc).https://redd.it/1vhownf@r_emacs
AI ruins motivation to develop myself as a software engineerHi, guys!I'm a software engineer in about 5 years. I still like programming. This kind of programming when you just sit down in front of your computer and write code in an editor. I like Emacs and use it for all types of my development. But working in an enterprise company upsets me.I collected a few points that frustrates me.AI changed trade offs and my coworkers started producing insane amount of code and almost everything was AI generated. It is nice when people perform more but we've got a situation when one guy generates a lot of code and wins a few days of work but another guy spends a few day to read all of this. For me it feels like shifted productivity. Someone get, someone lose.Documentations are fully generated by AI. A month ago I needed to review coworker's feature doc. and I was destroyed by this text. English is not our mother tongue but we have to write docs in English that is totally fine. But this text was absolute unreadable. There were a lot of unknown, unexplained terms that we invented by AI. Amount of text was insane. Honestly, I tried to read it in two days until I gave up and feed all this text into AI assistant to prepare short description.Newly hired developers are silent. In my development experience it is like a nonsense. When you dive into a project your have to have questions about something, like domain, stack, some decisions. But now there is not question. AI allows you instantly write a code that makes no sense but disguised as good and reasonable.AI tools scary and annoy me. When I work, I like to exactly understand what happens in my computer in the current time. But now I see how full access delegation of the computer to an AI Agent became an industry standard. And when you anyway decide to try something then it is outdated in a month and you need install and learn smt new.And all this points ruin my motivation because I do not see signs that guys who understand (or tries to understand) what's happening in program is relevant in a market. I see how managers push us to install all this stuff blindly and just give x10 productivity, somehow.Does anyone have something like that? How do you deal with it?https://redd.it/1vhbztj@r_emacs
I experimenting a responsive, interactive UI inside an ordinary Emacs bufferhttps://redd.it/1vh1ocs@r_emacs
Create compound scoring rules in Gnus?Hi, I want to make a scoring rule in Gnus but I need it triggered only if two conditions are true, so essentially if subject equals x and author equals y, increase score.https://redd.it/1vgyu3q@r_emacs
Question about org-toggle-pretty-entitieshttps://redd.it/1vgykdo@r_emacs
term/ansi-termI always see people talking about things like Ghostel, VTerm and Eat. But why is the built-in terminal rarely discussed as an actual option?https://redd.it/1vgt1lb@r_emacs
r-ts-mode now on MelpaI am happy to announce that r-ts-mode is now available on Melpa. It has the possibility of being used with ESS but it can also be used independently.https://codeberg.org/R-for-emacs/r-ts-modehttps://redd.it/1vgtezf@r_emacs
Org export in Nix (flake) project does not respect environmentHi all! I'm trying to figure out why exporting from an org buffer fails lacking a LaTeX package despite it being available in the project's nix flake. I use `envrc` and testing the package availability, I get the correct path.The flake also provides the R environment (and pkgs), and Emacs ESS works no problem. The issue seems to lie in the export process, but I cannot figure out why, and so cannot Claude code XDhttps://redd.it/1vgfn35@r_emacs
Prot new video > Emacs: the 'speedbar' built-in file explorer (Emacs 31)https://youtu.be/Crn6x3RmmyQ?si=_EwuRr9d0IbCgpr4https://redd.it/1vg6pza@r_emacs
Help with syncing Elfeed across machines with SyncthingI've tried syncing the entire elfeed-db-directory across machines, but have ended up with missing entries in the data subdirectory, as well as constant file conflicts.From this old post I see that Skeeto suggested syncing only the index file, which seems like the way to go.I see that elfeed-protocol has been mentioned as a possible solution but I think that requires some notion of a central/default server that fetches RSS feeds. Would appreciate hearing any solutions or approaches to this -- thanks in advance.https://redd.it/1vg361g@r_emacs
Eglot package only works in certain buffersSo I've recently added eglot to my config specifically for Python, it works in a standard .py file that I open in a buffer.But, when I use C-c ' to open a code block (from org mode) in a temporary buffer it doesn't work here, the buffer is in the major mode python-mode & from the documentation it should work, can anyone help me out?https://redd.it/1vfjz5z@r_emacs
Emacs ATX meetup this Thursday, August 6thThis is a monthly reminder. Every first Thursday of the month we meet without a specific agenda to blabber about Emacs stuff and anyone is welcome to join. This time is on August 6th.I understand that it's not the most convenient time for many (6 PM CST - UTC−6; 01:00 CET; 4PM PST), please don't sacrifice your sleep and other important matters just to attend it - I reckon it's not worth it - these meetings are typically not big, nor important or riveting. But if you decide to join, we'd love to see and hear from you.https://www.meetup.com/emacsatx/events/DM me if you'd like to join without going through meetup.com curse and I'll send you a direct link to the meeting. There's a maddening reason for why I don't post it publicly anymore, join if you want to know more.----Previous meetings and notes:https://www.reddit.com/r/emacs/comments/1ukwx8l/emacsatxmeetuptomorrowjuly2nd/https://www.reddit.com/r/emacs/comments/1tvcwd8/emacsmonthlythursdaymeetup/https://www.reddit.com/r/emacs/comments/1t4mpn3/emacsatxmeetupthisthursday/https://www.reddit.com/r/emacs/comments/1sa0jmd/emacsatxmeetuptomorrowthursday/https://www.reddit.com/r/emacs/comments/1rj8tik/emacsatxmeetupthisthursday/https://www.reddit.com/r/emacs/comments/1qwrh0l/emacsatxmeetuptodayinfewhours/https://redd.it/1vfm014@r_emacs
Is high cpu usage avoidable at all?My 5800X3D is getting pretty toasty doing pretty much anything in emacs, whether it's scrolling through a file (only a few hundred lines long) or actually typing new things into the file. I've tried running the profiler numerous times, disabling various modes along the way, like doom-modeline, display-line-numbers-mode, etc. The profiler says redisplay-internal is using between 75 to 90 percent cpu, but when expanding it, pretty much none of that percentage is accounted for lower in the tree, so i have no clue what the cause is. Running emacs -q solves it, and when gradually enabling various modes again i'm starting to feel like it's just a combination of things causing it, and not one package/mode in particular. So that brings me to the question: do i just put up with the high cpu usage? Cause i don't want to disable basic things like display-line-numbers either. But it feels kind of silly to have your cpu hit 70C when doing basic text editing.https://redd.it/1vfgmy2@r_emacs
Emacs Lisp Macros are Beautifulhttps://www.chiply.dev/post-elisp-macros-are-beautifulhttps://redd.it/1vfbuw2@r_emacs
[not mine] The Shape of Things to Come, Part 1: The Continuous Thunderdome — Steve Yeggehttps://yegge.ai/essays/the-shape-of-things-to-come/https://redd.it/1vewowe@r_emacs
A Real-Time Display Editor# A Real-Time Display EditorIt isn't even daylight yet.I greet you with a C-c a.Coffee in my right hand. An acrobatic left pinky manages to C-x C-f, and on we go.Whenever I get lost,C-h.Some days we talk endlessly, with the kind of verbosity only possible with both hands on the keyboard.Other days, neither of us says a word.Only the cursor keeps blinking.And we think.And then there are the days when something, or rather, someone, makes me use other tools.But it always ends the same way.Night falls. We call it a day. C-x C-s.Until tomorrow, old friend.C-x C-c.https://redd.it/1veh2nf@r_emacs
bible-gateway package update: touch-typing verse memorisation, reading plans, transient menu, and morehttps://redd.it/1veofgj@r_emacs
Announcing now-playing.el, a remote control interface to the macOS Music apphttp://yummymelon.com/devnull/announcing-now-playing-el.htmlhttps://redd.it/1vel7ne@r_emacs
Best android client for org agenda/todos? (not orgzly)As someone coming over from beorg on ios, what would be the most similar to beorg? I'd like for it to have a clean interface as well as the ability to send reminders/notifications BEFORE an event/todo, and/or have the ability to push todos to android calendar. I have tried orgzly revived, but it just wasn't for me, so I am wondering if there are better alternativeshttps://redd.it/1vel9ze@r_emacs
Claude Code Layer Spacemacs not workingHello, I'm new to emacs, and migrated from Vim some time ago. I'm trying to install the Claude Code Layer, as using AI is mandatory at work :/I follow the instructions on the documentation, but I when I try to open the side panel with M-a c y after c, it tells me that there aren't keys to show.Does anyone know what do I need to do, please?Thanks!https://redd.it/1vefzcy@r_emacs
patch GNU emacs bug#68339 (w32 ime font size)link: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=68339repo: https://github.com/zHaOdANiuu/emacs-w32-ime-font.patchIf you don't know how to test it, you'll need to install a CJK input method first. If you're unfamiliar with it, you can think of it simply as typing multiple ASCII characters that get composed into a single character.Here is the related Windows link.info: https://support.microsoft.com/en-US/Windows/Hardware/Input-Devices/language-packs-for-windows This is my work result.https://preview.redd.it/cqgpibno93hh1.png?width=955&format=png&auto=webp&s=d592c7bbc14fc5732d6af7178cd013e691057167If you have any issues, feel free to open an issue on my GitHub repository and I'll address each one. https://redd.it/1ve3g80@r_emacs
I decided to customize imenu-list a bit morehttps://redd.it/1vdziaa@r_emacs
15 years old looking for adviceHey everyone,I'm 15 and I've decided to give Emacs a real shot.So far I've finished the built-in tutorial, watched the System Crafters "Ultimate Beginner" video, and I'm about to start reading through the Emacs Wiki.My goal is to become a full-stack web developer. I was actually about to start The Odin Project, but I decided to spend this whole week learning Emacs first because... I don't know, it just clicked with me. I genuinely enjoy using it.The funny thing is, I really don't like VS Code. I know it's what almost everyone recommends, but it just doesn't interest me the way Emacs does. I truly tried using Vscode over and over again but its just like its not for me. I know choosing Emacs from the start probably isn't the easiest path, but I don't mind putting in the work if it pays off in the long run.I've got plenty of free time this week, so my plan is basically to immerse myself in Emacs before I start TOP.If you were starting over today, what resources would you recommend? Books, YouTube channels, blog posts, GitHub repos... anything that helped you really understand Emacs.Also, are there any beginner mistakes I should avoid or things you wish you'd learned earlier?Thanks in advance. I'm really looking forward to joining the Emacs community.https://redd.it/1vdy2pg@r_emacs
eglot extremely slow when doing xref-find-definitions on large fileI'm running Emacs 31.0.91 on macOS 26.6.The file I'm viewing is [https://github.com/wolfSSL/wolfssl/blob/master/wolfcrypt/test/test.c](https://github.com/wolfSSL/wolfssl/blob/master/wolfcrypt/test/test.c)This file has 82095 lines of code and about 3.1M in size.When I do a `M-x xref-find-definitions` on a function, it takes 45 seconds or even longer to locate it. Once the first call is handled, the subsequent xref calls will go fine, even with a different function.I'm using clangd v21.0.0 and the same LSP works perfectly with my vim setup.For smaller sized files, it appears to be working reasonably fine. Is there anything I can tweak for this performance issue? My gc related configuration: ;; in early-init.el (setq gc-cons-threshold most-positive-fixnum) ;; in init.el (setopt gc-cons-threshold (* 48 1024 1024) gc-cons-percentage 0.2) (run-with-idle-timer 15 t #'garbage-collect)My eglot configuration is pretty straightforward: (use-package eglot :custom (eglot-code-action-indications '(eldoc-hint)) :hook ((c-ts-mode c++-ts-mode cmake-ts-mode go-ts-mode python-ts-mode) . eglot-ensure) (before-save . (lambda () (when (eglot-managed-p) (eglot-format-buffer)))))https://redd.it/1vdx80z@r_emacs
4coder like scope hint implementationhttps://redd.it/1vdu2w9@r_emacs
I stand corrected about Elisp.For the past few months, I've been getting closer and closer to Emacs. After 30 years of using Vim, I discovered Org-mode, and that's when things escalated... it's a total rabbit hole.At first, I just copy-pasted from ready-made configurations because the sight of Elisp made me want to throw up—it resembled "the unloved child of a plumber and a water pump." I even complained on this sub about what an abomination it is, asking how anyone could even use it, etc.Fortunately, my nerd nature won out, and I started tinkering, trying to understand HOW it's put together. That was a mistake. Right now, I've already been through two quick Elisp courses, I'm reading a manual on how to use it in Emacs, I'm starting to write my own tools, and I'm getting more and more sucked into the ecosystem.Now I stand corrected. (E)lisp is so logical, understandable, and just plain cool that the only thing that surprises me is how I hadn't come across it earlier...P.S. I also discovered Clojure by accident... which might be even cooler...https://redd.it/1vdlykg@r_emacs
What's the best pdf reader on Emacs?I've seen quite a few options and getting them to run on mac has been a pain unfortunately. Emacs reader crashes my emacs any time I try to run it.I've heard some negative things about pdf-tools from 4 years ago, but I'm not sure if it's been optimised since then. What is the overall best pdf-reader on emacs that just lets me read and select text?https://redd.it/1vdlpae@r_emacs
Need help with debugging. Emacs error reporting is still too weak in 2026.I just lost time debugging something that should have been obvious.Emacs refused to load my init.el with this message: load-with-code-conversion: Symbol’s function definition is void: defmacro*That’s it. No useful file. No clear line. No real context.Important detail: I always launch Emacs with `--debug-init`. It’s in my bash aliases. Every single time. I also have `debug-on-error t` in my init.el.The error occurred while scraping/compiling loaddefs. It blamed `f/bin/docs.el`, but the actual culprit was an old vendored `ert.el` sitting in `s/dev/` that still contained `defmacro*` and had been pulled into the autoloads file. The error message (even with --debug-init) gave me almost zero help finding that.This isn’t a minor warning. This completely prevented Emacs from loading my init.el. My entire environment was down.Hitting a void function during loaddefs/byte-compilation should produce something a lot more helpful, for example:- Which file actually contained the defmacro*- That it came from autoloads or a dependency- That defmacro* is an obsolete cl macro- A clearer, more actionable backtrace by defaultRight now the signal-to-noise ratio on this class of error is bad. For experienced users it’s annoying. For newcomers it’s actively hostile, they see a cryptic void-function error, their config won’t load, and they have no idea where to start.I don’t expect miracles, but basic “where did this undefined function actually come from” information during init/loaddefs failures would be a lot more helpful.Maybe I’m missing something, a variable, a package, or some setting that would provide more useful information in these cases? Anybody?https://redd.it/1vd8iyt@r_emacs
New package: agent-shell-hqhttps://redd.it/1vd802z@r_emacs
Marginalia doesn't align correctlyWith icons offWith icons onUnfortunately marginalia doesn't seem to be aligning the annotations correctly, with or without nerd icons on. I'm not really sure what could cause this. It seems to happen on the longest one, as if marginalia was expecting the actual text to be a certain length, but it wasn't and pushed the rest.I'm posting here to see if anyone has any ideas of experience with this. If you want to check the config, relevant files are probably here and here. It's pretty standard. Thank you!https://redd.it/1vd7q7k@r_emacs
dired configuration similar to yazi keymaps. This is my dired config, share yours please:DSo I recently start using yazy and I found a very good file manager, is feel faster and out of the box. I like use tui programs but also Emacs with their vast repository of packages and options.So maybe people coming from vim/neovim/helix/kakoune miss some times tools like yazi or want behavior as yazi.So I made my dired config similar to yazi to keep and similar mental model in both programs. Not everything is implemented because I not use all the options and insted of use v to select multiples lines or files/dirs I use "J" and "K" more similar as kakoune.I dont know if is the final result but its great and very similar experience as yazi:D. https://codeberg.org/johndoeuserr01/yazi-dired-Emacs This required, dired-x, dired-preview, dirvish, dired-hide-dotfiles, dired-recent, dired-hist (this to have something similar as <C-i> <C-o> to jump forward and backward between visit dirs), and affe as a replace of fzf. Other difference is to scroll I use <C-v> and <M-v> so <C-e> is not implemented. I hope an Emacs and a yazi user found this helpfulhttps://redd.it/1vcz6p6@r_emacs
adif-mode: Major mode for viewing and editing amateur radio ADIF log fileshttps://github.com/K6SM/adif-modehttps://redd.it/1vcwz0j@r_emacs
Nice GTK tooltips for Flycheck. Works on GTK builds (Linux: Wayland/X11).https://redd.it/1vcvi8e@r_emacs
Is there a way to highlight code blocks in eww mode?I'm reading a website which uses lisp. Is it possible to highlight the parenthesis with rainbow delimiters or maybe ever to get some syntax highlighting?https://redd.it/1vctnu5@r_emacs
How do you handle images in your org-mode workflow?I was about to enable inline images by default in org-mode, but I noticed it gets quite sluggish during scrolling, when images are displayed. I tried org-sliced-images, but I don't really like it that much. Do you just toggle an image when you need it as you write your org files? Any tips?I'm running emacs-pgtk on wayland. Is it worth trying one of the other versions, Lucid or GTK? Emacs could really benefit from GPU acceleration.https://redd.it/1vcsq53@r_emacs