Daily Driving a Raspberry Pi 5

After switching from Apple devices to GNU/Linux, I’ve enjoyed numerous advantages. However, there’s always been one thing that used to make me look back: battery life, or the lack thereof. Not anymore :) ...

2025/10/31

Emacs Everywhere, even in Wayland

If you are anything like me, you probably feel something is wrong whenever you have to input text outside of Emacs. Fear not, there’s a solution. Here’s a simple code snippet to launch an emacs temp frame for input instead. (defun thanos/wtype-text (text) "Process TEXT for wtype, handling newlines properly." (let* ((has-final-newline (string-match-p "\n$" text)) (lines (split-string text "\n")) (last-idx (1- (length lines)))) (string-join (cl-loop for line in lines for i from 0 collect (cond ;; Last line without final newline ((and (= i last-idx) (not has-final-newline)) (format "wtype -s 350 \"%s\"" (replace-regexp-in-string "\"" "\\\\\"" line))) ;; Any other line (t (format "wtype -s 350 \"%s\" && wtype -k Return" (replace-regexp-in-string "\"" "\\\\\"" line))))) " && "))) (defun thanos/type () "Launch a temporary frame with a clean buffer for typing." (interactive) (let ((frame (make-frame '((name . "emacs-float") (fullscreen . 0) (undecorated . t) (width . 70) (height . 20)))) (buf (get-buffer-create "emacs-float"))) (select-frame frame) (switch-to-buffer buf) (erase-buffer) (org-mode) (setq-local header-line-format (format " %s to insert text or %s to cancel." (propertize "C-c C-c" 'face 'help-key-binding) (propertize "C-c C-k" 'face 'help-key-binding))) (local-set-key (kbd "C-c C-k") (lambda () (interactive) (kill-new (buffer-string)) (delete-frame))) (local-set-key (kbd "C-c C-c") (lambda () (interactive) (start-process-shell-command "wtype" nil (thanos/wtype-text (buffer-string))) (delete-frame))))) Make sure wtype is installed in your system for the above snippet to work. ...

2025/07/19

Major update for Gnosis: 0.5.0 release

Gnosis just got a major update with this new release. With the long promised support of org-mode being added along with support for linking notes to org-gnosis nodes. Org Mode Support After hacking on org-gnosis and gaining a better understanding of how org-mode works, I decided to use org-mode for creating and exporting gnosis notes. Notes, no matter their note type, will now be as follows: Cloze type example. * Thema :pharmacology:antimicrobials:penicillin: :PROPERTIES: :GNOSIS_ID: NEW :GNOSIS_TYPE: cloze :END: ** Keimenon What is the treatment for Actinomyces infection? Penicillin ** Hypothesis - drug type ** Answer - Penicillin ** Parathema Sulfonamides → Nocardia Actinomyces → [[id:680ca944-8ee9-4513-92d6-25696ee01f48][Penicillin]] (treatment is a SNAP) Note that anki-like syntax is still supported for clozes. ...

2025/06/17

Emacs Note Taking & Journaling using org-gnosis [Video]

Emacs Note Taking & Journaling with org-gnosis ...

2025/03/03

Emacs As Your Terminal Emulator [Video]

Emacs As Your Terminal Emulator ...

2025/01/25

Progress update on org-gnosis & a graphical interface addition.

I’ve been working on a “roam-like” note taking system, to replace & update my current org-roam workflow. This post is a minor update on the current state of it’s development. ...

2024/12/18

Emacs 30 Built-in Completion UI & Styles [Video]

Emacs 30 Built-in Completion UI & Styles Video notes: When referring to “Emacs Completions”, I refer to Completion Styles & UI I’ve often relied on third-party packages to emulate features from other text editors. For instance, I’ve long used vertico, corfu and orderless. While I still recommend these packages, I became curious about using Emacs without depending on third-party options. My current setup tries to emulate my workflow with the packages mentioned above. The catalyst that pushed me to try the built-in completion is the addition of completion-preview-mode in Emacs 30. Mini-buffer completions Emacs does not enable “vertical” completions for the mini-buffer by default, but you can enable fido-vertical-mode which comes built-in with Emacs. fido-mode is an enhanced icomplete-mode that emulates ido-mode, also referred to as fake ido-mode. Completion Styles Changing completion-styles example: (setf completion-styles '(basic flex)) There is a plethora of completion styles, builtin styles include flex, which provides “fuzzy” completions. Completion UI & Code completions Emacs built-in completions have a distinctive approach. Instead of displaying a popup at point, a new Completions buffer appears when invoking completion-at-point. Example configuration: ...

2024/12/12

Installing GNU Guix | Using non-free drivers (NonGuix) [Video]

Installing GNU Guix | Using non-free kernel drivers (Nonguix) ...

2024/12/04

org-gnosis | Roam-like note taking system

org-roam was my preferred tool for note taking & journaling, but since it’s author seems to have stepped down & it’s implementation is quite different from how I’d approach making a zettelkasten for Emacs, I decided to start working on a new package, named org-gnosis. Goals of this project The primary objective is to achieve full compatibility with existing org-roam notes while resolving current database implementation issues. These goals were met successfully on the first day of development. ...

2024/11/21

RSS Mastery with RSS-Bridge & Elfeed [Video]

I’ve just published a short video covering the basics of RSS, RSS-Bridge & Elfeed, it’s currently available on YouTube. Video notes What is RSS? XML-based web feed that allows users to access updates of websites, without “visiting” the website. Hacktivist including Aaron Swartz contributed to the development of RSS Why use it? Having total control over information you consume Filter/Prioritize content from various sources Bypass algorithms Ad-free reading Offline Access Time saving Allows creation of a personalized & decentralized information hub (+ Emacs RSS) ;; => ’elfeed No matter what RSS reader you choose, they all get the same job done ...

2024/11/09