Emacs

!emacs

@lemmy.ml
Create post
Titlebar Color Sync and Rounded Corners

Titlebar Color Sync and Rounded Corners

Emacs: modus-themes version 4.4.0

Emacs: modus-themes version 4.4.0

Open link in next tab

Emacs: modus-themes version 4.4.0

https://protesilaos.com/codelog/2024-03-17-modus-themes-4-4-0/

Information about the latest version of my highly accessible themes for GNU Emacs.

Emacs: modus-themes version 4.4.0
lem.el 0.22 update

lem.el 0.22 update

Open link in next tab

lem.el

https://codeberg.org/martianh/lem.el

emacs client library and interface for Lemmy instances.

lem.el
Neovim or Emacs (with evil-mode)? My comparison (Alternative title: Markdown in Emacs)

Neovim or Emacs (with evil-mode)? My comparison (Alternative title: Markdown in Emacs)

I'm still torn on nvim vs Emacs. I have my Emacs config readt and I'm working on finishing my nvim config, but I'm still switching back and forth and can't decide. I thought Emacs' other features would be enough to make me stay but frankly I find myself preferring non-emacs alternatives like cmus over emms and I don't use RSS feeds enough to justify elfeed. I also prefer kitty in zsh over term, vterm and eshell. As an editor, however currently Emacs is superior, but we'll see if that changes when my neovim config is complete. Currently, the only advantage of nvim over Emacs when it comes to being my IDE, is faster load times. I think Neovim has faster load time, and Emacs has org-mode as features that stand out, where Emacs startup, even with the daemon/server, is slower, and orgmode support for neovim is inferior. The thing is, I haven't been able to really get into org-mode and I haven't even finished configuring neovim. For the time being, I'll stick to my approach of switching back and forth, but we'll see where things go in the future.

In terms of any other text editing features, I can't say either reigns supreme, as they're both really good. They have the features one would expect and theming is just amazing!

But I think my choice of editor will come down to org-mode or markdown. Markdown is simpler for me, as I'm more familiar with it and I use it all the time for my uni work, as I'm required to. Org-mode is more powerful and featured, but is also more difficult to learn because of how different it is. My other problem is that I just couldn't get into it. So currently, I'm on markdown, because that way, my mind doesn't have to switch back and forth, which is confusing.

If markdown support in Emacs was as good as Orgmode support (meaning things like making titles larger in-document, essentially giving me a live preview in the document itself as I'm writing it, was available in Emacs), the coice would be obvious. Currently, I use Ghostwriter for Markdown and it feels good, but it feels useless, as in, it's another program for just this one thing (markdown), that's a usecase under another usecase umbrella (text editing). Alternatively, if Emacs supported live markdown preview within itself to the level of ghostwriter (and no, the browser preview doesn't count, it's not good enough to have to have a broswer window opened alongside Emacs) so if I can get Ghostwriter-level of polish for Markdown and specifically Markdown live preview in Emacs, or Orgmode-level of support, where the live preview happens in the document itself as I'm writing it, I would likely switch to Emacs. But currently, I'm quite torn.

Is the above possible? And if so, can you point me in the right direction of how to achieve it? Thanks.

Edit: a massive thank you rhabarba for helping me get markdown set up on Emacs! After doing that, and adding a few other quality-of-life features, I'd say my Emacs configuration feels quite complete.

This week marks 10 years of my silly project to promote Emacs: Emacs.sexy

This week marks 10 years of my silly project to promote Emacs: Emacs.sexy

Open link in next tab

Emacs.sexy

https://emacs.sexy/

Emacs is Sexy

Emacs.sexy
Using gopass with Emacs

Using gopass with Emacs

Hey gang!

So I've used gopass for awhile now, and Emacs for longer.

I was wondering if any of you here interact with gopass via Emacs with auth-source or something similar.

The main reason I ask is because I'm wanting to finally use Emacs for other things, such as an IRC client and making more use of Magit, and even writing with 750words.

A lot of my passwords are stored with gopass, and the structure isn't always the same for stores. For instance:

| Forums
|-- Gentoo
|-- Some other forum
|
| Email Host
|--  email-address@somewhere.com
|---- password
|---- recovery codes
|
| Employer Name
|-- Some program we use at work
|---- myworkemail@work-site.com
|
| Some app
|-- My User Name

Maybe this structure for a password store is a no-no, though it's not a big deal to move things around.

Any tips? I've seen auth-source-gopass, but that doesn't provide any interaction with selection of passwords or creation of passwords, I think.

I've look at that mentioned library some and writing an auth-source backend doesn't seem too involved, but maybe I don't necessarily have to with auth-source.

EDIT:

A potential configuration that others might use:

(require 'consult)
(require 'auth-source-pass)

(use-package pass
  :requires password-store
  :preface
  (defvar consult:pass-source
    `(:name "Passwords"
      :narrow ?<                     ;; maybe you want something else for narrow?
      :face pass-mode-directory-face ;; maybe you want to use a different face?
      :category pass
      :enabled
      ,(lambda ()
         (auth-source-pass-file-name-p auth-source-pass-filename))
      :items ,#'password-store-list)
    "Consult source for passwords with (go)pass.")

  (defun consult:pass (arg pass)
    "Stolen from Doom Emacs.
https://github.com/doomemacs/doomemacs/blob/master/modules/tools/pass/autoload/consult.el"
    (interactive
     (list current-prefix-arg
           (progn
             (require 'consult)
             (consult--read consult:pass-source
                            :prompt "(Go)Pass: "
                            :sort nil
                            :require-match t
                            :category 'pass))))
    (funcall (if arg
                 #'password-store-url
               #'password-store-copy)
             pass))
  :custom
  (password-store-executable (executable-find "gopass"))
  (auth-source-pass-filename
   (or (getenv "PASSWORD_STORE_DIR")
       (expand-file-name "~/.local/share/gopass/stores/root")))
  :config
  (auth-source-pass-enable))
lem.el update 0.20

lem.el update 0.20

Open link in next tab

lem.el

https://codeberg.org/martianh/lem.el

emacs client library and interface for Lemmy instances.

lem.el
Crafting Ironsworn in Emacs

Crafting Ironsworn in Emacs

Open link in next tab

Crafting Ironsworn in Emacs

https://youtube.com/watch?v=KUMkj9HWiEY&si=hF2_6hN15l0jdyGS

This was a presentation I did for EmacsConf 2023 about how I've been hacking up a way to play Solo Role Playing Games, like Ironsworn, using Emacs and Org fi...

EMMS source for beets library databases

EMMS source for beets library databases

I merged a new source for EMMS yesterday (a backend providing commands like 'emms-add-file' and 'emms-play-file') which reads a beets (https://beets.io) library database using Emacs' built-in SQLite support (beets is a command line program which manages your music library and automatically performs operations like tagging and converting music files; it keeps an SQLite database of tracks).

Since beets library databases already contain metadata about the tracks, this source skips running the default track info initialization function (other track init functions do run though).

On my PC (which is fairly powerful), loading ~1500 tracks (my personal library) into the EMMS cache (including their metadata) takes few minutes, during which Emacs is very annoying to use; this process takes under a second using the beets source.

Another nice feature is the ability to interactively filter chosen tracks (by passing a prefix argument to any beets source command). The filtering is done in two steps:

  1. Choose metadata types to filter by (actually columns in the beets database).

  2. For each metadata type (column) chosen, choose between unique values which appear in that column and which don't correspond only to tracks which have already been filtered by a previous choice.

Both steps use 'completing-read-multiple' (and only allow valid choices).

The source should require no configuration (only tested on Linux though) provided you haven't changed the location of the beets library database, and the source commands are autoloaded.

The source should be available in EMMS 19 (the next version, which should be released soon).

Combobulate: Intuitive, Structured Navigation with Tree-Sitter

Combobulate: Intuitive, Structured Navigation with Tree-Sitter

Open link in next tab

Combobulate: Intuitive, Structured Navigation with Tree-Sitter

https://www.masteringemacs.org/article/combobulate-intuitive-structured-navigation-treesitter

Tree-sitter's promise of simplifying code navigation can seem like a dream, but in reality, it introduces its own set of challenges that complicate the process. In this article, I delve into the intricate nature of crafting intuitive navigation within a tree-sitter environment, shedding light on the complexities that can confound our expectations of how code exploration should flow seamlessly.

Combobulate: Intuitive, Structured Navigation with Tree-Sitter