From 74cf7c2a99b9c4318d30808f5cab6d119f19c605 Mon Sep 17 00:00:00 2001
From: Oliver Davies <oliver@oliverdavies.uk>
Date: Thu, 14 Dec 2023 23:59:56 +0000
Subject: [PATCH] Add espanso

---
 CHANGELOG.md                                  |  6 ++++
 system/nixos/home-manager/desktop.nix         |  1 +
 system/nixos/home-manager/modules/espanso.nix | 33 +++++++++++++++++++
 3 files changed, 40 insertions(+)
 create mode 100644 system/nixos/home-manager/modules/espanso.nix

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6f86515d..86f79a8e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com), but adapt
 
 Instead of grouping changes by tag, they are grouped by the date they are released.
 
+## 12th December 2023
+
+## Added
+
+* Add [espanso](https://espanso.org) as a text expander.
+
 ## 21st November 2023
 
 ### Added
diff --git a/system/nixos/home-manager/desktop.nix b/system/nixos/home-manager/desktop.nix
index aa25dc5a..91bfeb10 100644
--- a/system/nixos/home-manager/desktop.nix
+++ b/system/nixos/home-manager/desktop.nix
@@ -4,6 +4,7 @@
   imports = [
     ./modules/alacritty.nix
     ./modules/autorandr.nix
+    ./modules/espanso.nix
     ./modules/i3.nix
   ];
 
diff --git a/system/nixos/home-manager/modules/espanso.nix b/system/nixos/home-manager/modules/espanso.nix
new file mode 100644
index 00000000..5361fe6e
--- /dev/null
+++ b/system/nixos/home-manager/modules/espanso.nix
@@ -0,0 +1,33 @@
+let
+  baseUrl = "https://www.oliverdavies.dev";
+in
+  {
+  services.espanso = {
+    enable = true;
+
+    configs = {
+      default = {
+        show_notifications = false;
+      };
+    };
+
+    matches = {
+      base = {
+        matches = [
+          {
+            trigger = ":atdc";
+            replace = "${baseUrl}/atdc";
+          }
+          {
+            trigger = ":call";
+            replace = "${baseUrl}/call";
+          }
+          {
+            trigger = ":coaching";
+            replace = "${baseUrl}/team-coaching";
+          }
+        ];
+      };
+    };
+  };
+}