Emacs package management with use-package

What is use-package anyway? Simply put, it’s a macro for easier package management within Emacs. I’ve used this for a while, and for me this is much more manageable than the default package declaration. How to use it? First we’ll need to activate it, from your Emacs init.el file: 1 (require 'use-package) And since we’ll mostly use this for external package, also add: 1 (setq use-package-always-ensure t) After that, use-package is ready to use. For example, installing which-key is simply by: ...

February 22, 2024 · (updated August 9, 2025) · 2 min · 265 words · Kristian Alexander P

Github Action for hugo static site using Emacs

About This site is build with Hugo which is a static site generator using markdown. The usual way of doing github action with hugo is using the actions-hugo workflow. Since I’m using org-mode for literally everything, it’s only natural that I also use it for blogging. Figure 1: Deployment to github pages Setup Create a script for exporting org-files to markdown We need to be able to export the org-mode files into markdown format. Depending on how the files are organized, we need to have a function that could export them. Here I’m using per file layout1. ...

February 22, 2024 · (updated August 9, 2025) · 2 min · 393 words · Kristian Alexander P

Hyprland

Hyprland is a wlroots-based tiling Wayland compositor written in C++. Noteworthy features of Hyprland include dynamic tiling, tabbed windows, a clean and readable C++ code-base, and a custom renderer that provides window animations, rounded corners, and Dual-Kawase Blur on transparent windows. General usage and configuration is thoroughly documented at Hyprland wiki1. Starting Hyprland Hyprland can be started via a display manager (GDM, Lightdm etc), or via the command line (in archlinux it’s /usr/bin/Hyprland, notice the capital H). ...

February 22, 2024 · (updated August 9, 2025) · 21 min · 4414 words · Kristian Alexander P

Using Emacs as an email client

Figure 1: Notmuch Emacs Davmail In my work routines, Microsoft is somewhat unavoidable, and trying to have an email client that can sync Exchange in linux has always been a pain to me. This is my documentation on how to use notmuch, davmail, and msmtp to sync my work emails. Configuration davmail.server=true davmail.mode=Auto davmail.url=https://mail.domain/EWS/Exchange.asmx davmail.defaultDomain=DOMAIN davmail.ssl.nosecurecaldav=false davmail.ssl.nosecureimap=false davmail.ssl.nosecureldap=false davmail.ssl.nosecurepop=false davmail.ssl.nosecuresmtp=false davmail.caldavPort=1081 davmail.imapPort=1144 davmail.ldapPort=1390 davmail.popPort=1111 davmail.smtpPort=1026 davmail.imapAutoExpunge=true davmail.allowRemote=false davmail.logFilePath=/tmp/davmail-domain.log davmail.logFileSize=1MB davmail.disableGuiNotifications=true davmail.disableTrayActivitySwitch=true davmail.showStartupBanner=false davmail.enableKerberos=false Notes davmail.mode set to auto. uses port > 1024 to avoid using root privileges. Also set the davmail.logFilePath to a path that is accessible. davmail.server set to true since I don’t need the GUI. All the ssl options is not necessary since it will only be accessed locally. msmtp It’s a simple smtp client with fairly complete sendmail compatibility. This is not a full tutorial on how to setup msmtp, there’s already much information for that online1. ...

February 22, 2024 · (updated August 9, 2025) · 4 min · 706 words · Kristian Alexander P