Sidebar

Emacs

emacs
Emacs highduc 2 weeks ago 100%
Issues with daemon as systemd user unit

Hi! I'm trying to run the emacs daemon as a systemd user unit, and I'm seeing this error when trying to launch the GUI client: > Authorization required, but no authorization protocol specified From what I've seen online it might be due to it trying to start before I'm logged in or something like that. It does work after restarting the unit but I don't want to do that every time. Anyone else see this before? Any ideas for a fix? Is there a better way of starting the emacs daemon?

3
4
emacs
Emacs j4k3 3 weeks ago 100%
What's the deal with old emacs projects, and do you have a way to import .sln projects from Visual Studio?

I'm coming across stuff on the emacs wiki like [Project Buffer Mode](https://www.emacswiki.org/emacs/ProjectBufferMode) and [SLN Mode](https://www.emacswiki.org/emacs/SlnMode) Are these old packages like everything else in Linux; not relevant or usable any more? I'm not sure if "just try them" is the right idea here, or even how to go about doing that (yet). Do you have any other suggestions or options? I'm trying to see the project view of the open source game Cataclysm DDA. They seem to be using a Windows system for development now and I'm seeing several little elements that are not getting compiled the same between their builds and what make produces with GCC. Perhaps the stuff in the project files would reveal more detail. (learning, but this is over my head and outside of my comfort zone)

5
4
emacs
Emacs j4k3 4 weeks ago 100%
Sacha Chua's Emacs cheat sheet from a few days ago but reworked in gimp as a desktop background

I figure I would share this one more time. The thing is so handy I put it on my desktop but the original is blinding white and 1.5:1 aspect ratio. This is a quick recolor and resize to 16:9. There is a 90px margin on top that is sized for the GNOME header so that the content remains visible. Sorry if this post seems redundant. For me, having this reminder to keep trying to use Emacs is just the motivation I need to open a file in Emacs instead of just using gedit quickly. ::: spoiler bonus tip! On Fedora 40, if you have darkmode set to the default in GNOME, GNU Emacs does not follow the darkmode styling directive for the menu bar. I spent forever trying to make this work in darkmode. If the app is launched using `$ GTK_THEME=Adwaita:dark emacs` it will start with the menu bar set to dark mode. However there is a script that actually launches Emacs in `/user/bin/emacs-desktop`. If you open that file and modify it by adding `export GTK_THEME=Adwaita:dark emacs` just before the last line, it will launch with darkmode enabled. This is the entire contents of that file: ``` #!/usr/bin/sh # The pure GTK build of emacs is not supported on X11, so try to avoid # using if there is an alternative. if [ "$XDG_SESSION_TYPE" = 'x11' ]; then case "$(readlink -f /usr/bin/emacs)" in */emacs-*.*-pgtk) if type emacs-gtk+x11 >/dev/null; then exec emacs-gtk+x11 "$@" elif type emacs-lucid >/dev/null; then exec emacs-lucid "$@" fi ;; esac fi export GTK_THEME=Adwaita:dark emacs exec emacs "$@" ``` I'm not claiming it is the right way. It just worked when I tried it.

34
9
emacs
Emacs EMacAdie 4 weeks ago 100%
2024-08 Austin Emacs Meetup https://macadie.info/2024/08/18/2024-08-austin-emacs-meetup/

Sometimes I do write-ups of the monthly Austin Emacs meetup. Here is the write-up for August.

4
0
emacs
Emacs NanoooK 1 month ago 100%
Forge 0.4.0 and 0.4.1 released https://emacsair.me/2024/08/14/forge-0.4/

I am excited to finally announce the release of Forge version 0.4.0, consisting of 699 commits since the last release two years ago. It was actually released six days ago, at the same time as Magit and nine other packages, which all had to be released at the same time.

16
0
emacs
Emacs j4k3 1 month ago 97%
How to Learn Emacs: A Hand-drawn One-pager for Beginners / A visual tutorial

Seems helpful for noobs like me.

40
4
emacs
Emacs j4k3 1 month ago 87%
I'm learning Emacs right now as a first time hobbyist. Keep doing the GNU tutorial or jump right in to DT's Doom tutorial?

I felt clunky doing NVIM and could never remember hotkeys for once a week -ish in-situ functional learning. Like I jump in FreeCAD for a few days, come back, and I can't recall a hotkey combo I only used once. I think I can use Emacs lisp for some actual project goals with AI and other microcontroller projects involving FORTH, that I've never been able to figure out, and code complexity management issues I've never overcome. I still want the menu bar and am really unsure if the evil key bindings are for me. I would probably find it useful if I knew the vim bindings in situations like OpenWRT with busybox only, but it was the extreme complexity of navigating nvim help and key bindings that I found so useless to learn in-situ. Help me navigate this please. I'm being indecisive in a bad way about how to make this pretty, and get it configured.

6
4
emacs
Emacs 4ffy 1 month ago 100%
Emacsair! Magit 4.0 released https://emacsair.me/2024/08/09/magit-4.0/

>I am excited and relieved to finally announce the release of Magit version 4.0, consisting of 1077 commits, since the last release three years ago. The release notes can be found [here](https://github.com/magit/magit/blob/main/docs/RelNotes/4.0.0.org).

22
1
emacs
Emacs cakeofhonor 2 months ago 100%
Emacs Face Line Spacing / Margin / Height

I've been theming emacs, trying to get it to look just right, but the lack of a per face line spacing is making it kind of difficult. I've tried to use :box as a hack to add invisible spacing, but that started to look weird when the region is highlighted. Does anyone know why there doesn't seem to be much interest or discussion on this topic? I'd love to be able to just add a top or bottom margin to headings like in css.

5
1
emacs
Emacs Sandra 2 months ago 100%
Emacs RFC 2646 email flowing

Emacs RFC 2646 email flowing Heck it Emacs! A few months ago I fixed a bug in RFC 2646 handling where the last paragraph wouldn't get reflowed unless I remembered to add a hard newline (that is, a newline with the `'hard` text property) *after* it, at EOT. I needed to hit one extra RET at the end. All other paragraphs would be wrapped, not just the last one. (I even bugged @jas@fosstodon.org about it.) But it still didn't always work and today I tried to get to the bottom of why, spending the entire day debugging it, finally realizing that... It's not even being *called* when there's only one paragraph in the email. I wasted so much time before realizing that! And then getting to the bottom of why *that* wasn't happening was the opposite of easy but it turnes out that Gnus by design doesn't call the `fill-flowed-encode` function when there aren't any hard newlines in the buffer. Which there aren't gonna be if it's a single-paragraph letter 🤦🏻‍♀️ Use-hard-newlines is beyond useless since that's always buffer-local and the text-reflowing is being done in a temp buffer. Instead since 2010 we're supposed to set `mml-enable-flowed` to true. But don't worry, fans of the `messages-are-flowing` package, I'm gonna send patches there to reflect that. I have a bunch of other changes to that package too since I've been using that a lot this summer. This is all in bug#71017 (cursed palindrome!) for people who wanna dig in 👩🏻‍🏫 @emacs@lemmy.ml

12
1
emacs
Emacs AusatKeyboardPremi 3 months ago 100%
Suggestions for a complimentary typeface to JetBrains Mono for reading and writing documents or prose

cross-posted from: https://lemmy.world/post/16240755 > Suggestions for a complimentary typeface to JetBrains Mono for reading and writing documents or prose > > I am looking for a typeface that complements well to the one that I use to write code ([JetBrains Mono](http://jetbrains.com/mono/)). I will be using this to write documents and articles. > > For further context, I am configuring Emacs' org-mode where I would be using both typefaces together. I could use JetBrains Mono for both purposes as I find it capable. But I would like to explore my options. > > I have also looked at [Iosevka](https://typeof.net/Iosevka/). It offers variants for coding, reading, and writing. But I would prefer to stick with JetBrains Mono as much as I can for coding purposes.

7
1
emacs
Emacs AlecStewart1st 4 months ago 100%
Complex Capture Template: rx '**' range error?

Hello, friends! So I have a complex way of capturing TODO tasks for today or week. Someone will probably tell me that there's a package out there somewhere to do this easier, but regardless I would like to figure this out. Here's the function I use: (defun org-capture::today-task-tree () "Create a task tree for tasks TODO today." (let* ((time-string (format-time-string "<%Y-%m-%d %a>" (current-time))) (heading (concat "[%] " time-string)) (heading-rx (rx (group "[" (0+ num) "%]") (0+ space) (group (literal time-string))))) (goto-char (point-max)) (if-let (pnt (re-search-backward heading-rx nil t)) (goto-char pnt) (goto-char (point-max)) (or (bolp) (insert "\n")) (insert "* " heading "\n") (beginning-of-line 0)) (org-end-of-subtree))) And here's the `org-capture-templates` entry: ("gt" "Today: A task for today" entry (file+function ,(expand-file-name "~/Documents/Org/GTD/work.org") org-capture::today-task-tree) (file ,(concat my-emacs-dir "capture-templates/datetree-weekly-tasks.tmplt")) :empty-lines-after 1 :after-finalize (lambda () (org-update-statistics-cookies t))) And here's the actual capture template that I store in a file in my config: ** [ ] [#%^{Priority}] %^{Task name} %(funcall-interactively #'org-deadline nil (current-time)) %^g %? %i Now when I'm in that file `~/Documents/Org/GTD/work.org` and I run the above function with `M-: org-capture::today-task-tree` it works fine. An example of what the file will look like it: * [100%] 2024-04-27 Mon ** [X] Do something important this Monday #[A] :work: CLOSED: 2024-04-27 Mon 12:42 DEADLINE: 2024-04-27 Mon * [%] 2024-04-28 Tues ** [ ] Do something else that's not as important #[B] :personal: DEADLINE: 2024-04-27 But for whatever reason when I run `org-capture` and finish the capture with `C-c C-c` or refile with `C-c C-w` I get rx--translate-bounded-repetition: rx ‘**’ range error Which I don't really know what that means nor how to fix it, and I can't really find anything useful via searching the internet at the moment. A possible thing to not is that I [disable Org's element caching](https://codeberg.org/alecStewart1/dots/src/commit/509d89c9f2a0c8a057ebc916e0784466c9be6b73/emacs/.emacs.d/lisp/writing.el#L565). If you want to look at my configuration to dig around some, you can find it [here](https://codeberg.org/alecStewart1/dots/src/branch/main/emacs/.emacs.d) and the part where my configurations for Org-Mode are [here](https://codeberg.org/alecStewart1/dots/src/commit/509d89c9f2a0c8a057ebc916e0784466c9be6b73/emacs/.emacs.d/lisp/writing.el#L85).

4
3
emacs
Emacs AusatKeyboardPremi 4 months ago 100%
Show/highlight invisible characters like zero-width-space in Emacs

In my pursuit to migrate from Vim to Emacs, I have stumbled on yet another roadblock. When working with files that contain [special whitespace characters](https://unicode-explorer.com/articles/space-characters), Vim/Neovim would automatically highlight these. This saved me a lot of time during debugging or data analysis, and is a functionality that I struggled to get to work on more modern IDEs. However, this does not work out-of-the-box neither on vanilla Emacs nor Doom Emacs. I am unable to find any working solutions online. I assumed `whitespace-mode` would have handled this, but it is not the case. It would be really helpful if the community here can help solve my problem as I deal with such characters on a daily basis. Until then, I have to pause my pursuit and stick with the trusty Neovim. ::: spoiler U+200B in Neovim Notice Neovim highlighting the character as `<200B>`. ![](https://lemmy.world/pictrs/image/868c6bbe-d2f6-4cb5-b0d9-7f7eaa0047ef.png) ::: ::: spoiler U+200B in Doom Emacs Notice the think cursor between "hello" and "world". ![](https://lemmy.world/pictrs/image/d1b725a6-dba8-42d6-bca2-7f54b29ab14f.png) ::: ----------------- Thanks to the suggestion by @nmtake@lemm.ee, `glyphless-display-mode` allows me to view the characters. But it still doesn't play well with vim motions on Emacs. [Here is a demonstration](https://imgur.com/z9ccGd0), and below are the keystrokes. 1. `C-v` to enable `VISUAL-BLOCK` mode. 2. `9j` to select all 9 occurrences. 3. `d` to delete the selection. The above vim-motion works on Neovim but not on Emacs with evil-mode. If anyone wants to try out here is the text I am playing with: ```plain hello ​ world hello ​ world hello ​ world hello ​ world hello ​ world hello ​ world hello ​ world hello ​ world hello ​ world hello ​ world ```

10
4
emacs
Emacs kelvie 4 months ago 91%
Does anyone use emacs as their main terminal emulator?

I've been using konsole (and iterm2 on my work mac) for most of my working career, but on the linux side, I've recently switched to Kitty, but now I'm wondering if I can finally get used to just using emacs on both. Does anyone use emacs as their main terminal? Is there one better than ansi-term that supports modern features like libsixel? I still can't quite get used to the keybindings (like C-c twice for ^C) and some other weirdness.

29
18
emacs
Emacs nmtake 4 months ago 100%
Wrote minimal minibuffer-centric MPD client codeberg.org

I wrote this script to learn how `completing-read`'s [complex arguments](https://www.gnu.org/software/emacs/manual/html_node/elisp/Programmed-Completion.html) works. Compared to other clients it's quite limited; but thanks to packages like Vertico and Orderless, it works quite well for my use cases. [Screenshot](https://lemm.ee/pictrs/image/bf3321ff-097e-4340-a10b-a804dd36012f.webp)

9
3
emacs
Emacs DrOps 4 months ago 100%
Writing Lisp Code with ChatGPT https://plaindrops.de/blog/2024/CodingLispWithChatGPT/

When I needed a taylored function for a problem, I tried if ChatGPT could help me.

5
4
emacs
Emacs DrOps 5 months ago 100%
A Hydra for Denote, and what I learned from it. https://plaindrops.de/blog/2024/medusadenote/

Making a Hydra for Denote was not as straightforward as I thought, Therefore I documented it

10
1
emacs
Emacs hellstabber 5 months ago 100%
[QUESTION] Book recommendation for Emacs

Hello! Since I spend most of my day on the bus, I have a lot of time to read. Do you have any book recommendations for learning Emacs? I plan to use Emacs as a text editor for note taking and programming in general.

9
3
emacs
Emacs Ramin_HAL9001 5 months ago 100%
[Humor] A song about the Emacs Philosophy https://www.extrema.is/blog/2024/04/29/emacs-philosophy

A close friend of mine was "inspired" to write a song by my series of blog articles called "[Emacs Fulfills the Unix Philosophy](https://tilde.town/~ramin_hal9001/articles/emacs-fulfills-the-unix-philosophy.html )" (actually I think he is busting my chops a bit for being an annoying Emacs evangelist, but anyway...) I thought it was pretty funny and worth sharing here. He wrote the lyrics and used one of those Large Language Models like Stable Diffusion (or something like it) to make the actual music, and settled on a few different renditions of the song. You can listen to them on his website: https://www.extrema.is/blog/2024/04/29/emacs-philosophy

13
2
emacs
Emacs StrangeAstronomer 5 months ago 100%
Not an elfeed bug

... more an annoyance really, and not elfeed's fault at all but ... *[first posted on reddit/r/emacs but probably more interesting here]* lemmy RSS feeds (such as "https://lemmy.ml/feeds/c/emacs.xml") often (but not always) have mis-guided "Link:" elements which target an external link, an image file or other material instead of the lemmy post itself. Consequently, hitting 'b' elfeed-search-browse-url may send one on a surprising if not always useful journey. eg ``` Title: Keymacs, a program to generate Emacs keybindings | Plain DrOps Author: https://feddit.de/u/DrOps Date: Tue, 23 Apr 2024 23:35:25 AEST Feed: Lemmy - emacs Tags: emacs, lemmy Link: https://plaindrops.de/blog/2024/keymacs/ submitted by DrOps to emacs 8 points | 2 comments https://plaindrops.de/blog/2024/keymacs/ ``` In this case, the link to lemmy itself is in the "2 comments" => https://lemmy.ml/post/14798221 Here's a little hook to fix it up - it also marks the entry with the tag 'lemmy-fixed' ... ``` (defun elfeed-fix-lemmy-link (entry) "Fix lemmy.ml RSS feed links in elfeed." (when-let ((url-base-regexp "https://lemmy\\.ml/") (feed (elfeed-entry-feed entry)) (feed-url (elfeed-feed-url feed)) ((string-match-p (concat url-base-regexp "feeds/c/") feed-url)) (entry-link (elfeed-entry-link entry)) (link-url-regexp (concat url-base-regexp "post/[0-9]+")) ((not (string-match-p link-url-regexp entry-link)))) (when-let ((content (elfeed-deref (elfeed-entry-content entry)))) (let ((lines (split-string content "\n"))) (dolist (line lines) (when (string-match link-url-regexp line) (let ((post-link (substring line (match-beginning 0) (match-end 0)))) (setf (elfeed-entry-link entry) post-link) (elfeed-tag entry 'lemmy-fixed) (message "Fixed lemmy link in elfeed: %s" post-link) (cl-return)))))))) (add-hook 'elfeed-new-entry-hook #'elfeed-fix-lemmy-link) ``` Thanks to u/karthik for getting me started with this. The crappy elisp is mine not his (roast me!)

6
0
emacs
Emacs BenchpressMuyDebil 5 months ago 100%
Wrote some simple code to prevent saving .json if it doesn't parse

I was working with NPM package.json files a lot lately and I often found myself saving them in an unparseable state. json-ts-mode highlights syntax errors in yellow but it wasn't enough. I didn't want to use flymake-eslint becuase it requires having the jsonlint binary in the PATH and I just wanted a simple Lisp solution. The code tries to parse the current buffer on save using Emacs' built-in json-parse-string and moves the cursor to the location of the parsing error if it fails. The below code naively assumes that the saved buffer is always the current buffer, which may very well not be the case (e.g. (save-some-buffers)). It also probably won't save JSON5 files which have `// comments inside` because json-parse-string won't handle that. ``` (defun rtz/json-parse-pre () (interactive) (if (eq major-mode 'json-ts-mode) (condition-case err (progn (json-parse-string (buffer-substring-no-properties (point-min) (point-max))) nil) (json-parse-error (goto-char (nth 3 err)) (error err))))) (setq write-file-functions '(rtz/json-parse-pre)) ```

7
1
emacs
Emacs dsemy 5 months ago 96%
Atom backend for Gnus merged

A new backend for Gnus which I have been developing for a while was merged today into Emacs - you can now fetch and read Atom feeds right from Gnus. The backend is extremely customizable, allowing you to swap any parsing function with a custom implementation (I use this feature to display youtube video descriptions from youtube channel Atom feeds, which are otherwise not picked up by the backend since they don't appear in a standard location, and also to be able to supply a youtube channel name instead of its web address to add it; see https://git.sr.ht/~dsemy/emacs-config/tree/master/item/init.d/init-programs.el#L90 if you're curious). This is a result of this backend being actually made of two backends - an "abstract" backend (nnfeed) which handles feed data storage, talking to Gnus, and defining server variables which will hold parsing functions, and another (nnatom) which actually provides these parsing functions. This also means it is very simple to define new "feed-like" backends, since you don't need to implement data storage or the Gnus backend interface, only some parsing functions (their requirements are also designed to be fairly generic, so it would be easy to handle various types of feeds. nnfeed itself makes very little assumptions about the feed type). It should be available with Emacs 30 (or right now from Git).

27
2
emacs
Emacs DrOps 5 months ago 90%
Keymacs, a program to generate Emacs keybindings | Plain DrOps https://plaindrops.de/blog/2024/keymacs/

For sure, I’m heading straight to Emacs hell for this. Apparently, there are a lot of Emacs purists in the world who, over the years, have learned to type such complex key sequences as C-x r t M-. C-c C-p fluently. I'm not one of them. And when I tried to figure out how to customize it for myself, the web forums were full of comments saying it wasn't a good idea.

8
2