💾 Archived View for tilde.pink › ~emily › log › motidu-day-23.gmi captured on 2021-12-03 at 14:04:38. Gemini links have been rewritten to link to archived content

View Raw

More Information

➡️ Next capture (2023-01-29)

-=-=-=-=-=-=-

motidu: the emacs update

tldr:

it's day 23 in the "month of things i don't use". i know i said i wouldn't use emacs this month, but my init.el file kept calling my name, and i gave in. i'm only using parts of emacs that i never really tried before, so it doesn't count as a forfeit!

gnus for newsgroups

gnus is one of those massive things that people do everything with. i could never wrap my tiny mind around it, but it's primarily supposed to be a news reader, so that's what i'm going to use it as.

i don't like how so many articles on gnus are *massive*, like, it's bonkers. it's nice to have loads of info, but it took a while just to get this basic config working:

(setq
 gnus-select-method '(nntp "news.tilde.pink")
 gnus-thread-hide-subtree t
 gnus-newsgroup-maximum-articles 50
 gnus-summary-line-format "%U%R%z%d  %-30n  %B %s\n")

here's what these lines do:

i'm really liking gnus so far. i think it's super cute! i still prefer alpine, but it's a close call to make.

irc with erc

i tried weechat & catgirl, and they were both fun, but i'm really enjoying erc the most in terms of alternative irc clients, especially when ibuffer is configured correctly! here's my erc config:

(require 'erc)
(require 'tls)

(setq
 erc-nick      "emilog"
 erc-full-name "emily card"
 erc-fill-function 'erc-fill-static
 erc-fill-static-center  15
 erc-hide-list '("JOIN" "PART" "QUIT"))

(global-set-key "\C-cea"
  (lambda ()
    (interactive)
    (erc :server "irc1.example.com"
         :port   "6667")))

(global-set-key "\C-ceb"
  (lambda ()
    (interactive)
    (erc-tls :server "irc2.example.com"
             :port   "6697")))

the variables:

i also add two servers that i can connect to using keyboard shortcuts! one server uses tls/ssl encryption, just to prove that erc can, in fact, do encryption!

the eww web browser

i can't get used to w3c, and i miss lynx, but eww is actually very solid! i don't browse the web much unless i /really/ need to look something up, so it's not a big deal, but it's comfy:

(require 'eww)
(require 'shr)

(setq
 browse-url-browser-function 'eww-browse-url
 shr-use-fonts   nil
 shr-indentation 2
 shr-use-colors  nil
 shr-width       70
 shr-bullet      "• ")

again, a description of the code:

being able to soft wrap the text at 70 columns makes it much more comfy to use, and it's handy to be able to disable fonts and colors!

i like eww!

ibuffer stuffs

ibuffer is a list of emacs buffers you have open. i just found out that you can create custom "folders" for your buffers! for example, all my erc buffers automatically get sorted into an "erc" folder. it's a neato burrito!

(require 'ibuffer)
(require 'ibuffer-ext)

(setq
 ibuffer-show-empty-filter-groups nil
 ibuffer-saved-filter-groups
 '(("default"
    ("erc"   (mode . erc-mode))
    ("eww"   (mode . eww-mode))
    ("dired" (mode . dired-mode))
    ("meta"  (name . "^\\*"))
    ("help" (or (name . "\*Help\*")
		(name . "\*Info\*"))))))

(add-hook 'ibuffer-mode-hook
	  (lambda ()
	    (ibuffer-switch-to-saved-filter-groups "default")))

the important variable here is 'ibuffer-saved-filter-groups', which is a list of folders. every dired buffer gets put into the dired folder. every buffer that starts with an asterisk (*) gets put into the "meta" folder! it's very nice.

in order for these folders to work, we need to activate them, which is what the hook does. ibuffer is so clean now, and i don't have to worry about visual clutter!

file management with dired

dired is a file manager, and it's cool, but this might be a bit of a longer code block to include...

;; sort directories first
(require 'ls-lisp)
(setq ls-lisp-dirs-first t)
(setq ls-lisp-use-insert-directory-program nil)

;; omit dotfiles
(setq dired-omit-files (concat dired-omit-files "\\|^\\..+$"))

;; activate extra dired features
(add-hook 'dired-load-hook
	  (lambda ()
	    (setq
	     dired-x-hands-off-my-keys nil)
	    (load "dired-x")))

;; add some fun shortcuts
(add-hook 'dired-mode-hook
	  (lambda ()
	    (local-set-key (kbd "/") 'dired-omit-mode)
	    (local-set-key (kbd "h") 'dired-hide-details-mode)
	    (local-set-key (kbd "-") 'dired-up-directory)
	    (local-set-key (kbd "e") 'dired-do-async-shell-command)
	    (dired-hide-details-mode 1)
	    (dired-omit-mode 1)))

(global-set-key "\C-cd"  'dired-jump)

when in dired mode, i can use the ampersand key (&) to run a shell command on the current file. it's very nice to not have to leave emacs to run scripts!

conclusion

i used a lot of this stuff casually, but it feels /so good/ to follow tutorials, read gemlog posts, and check the manual so that i can /really/ understand it all better!

i also discovered the absolute best way to create gemini pages in emacs, but i think that's a post for another day.

sleep well, and stay safe!

march 31, 2021