From 69ba8d13c8bad526e451beff9c5787dbd1f45e4e Mon Sep 17 00:00:00 2001 From: LLoyderino Date: Fri, 23 May 2025 18:32:00 +0200 Subject: Added catppuccin theme --- .gitignore | 1 + init.el | 4 ++++ theme.el | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 theme.el diff --git a/.gitignore b/.gitignore index 75ca6e1..291b6e1 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ !.gitignore !init.el +!theme.el \ No newline at end of file diff --git a/init.el b/init.el index 92ffdbe..05a00df 100644 --- a/init.el +++ b/init.el @@ -27,3 +27,7 @@ ;; Magit (use-package magit) +;; Catppuccin theme +;; (require 'theme) +(load "~/.emacs.d/theme.el") + diff --git a/theme.el b/theme.el new file mode 100644 index 0000000..514687f --- /dev/null +++ b/theme.el @@ -0,0 +1,36 @@ +;;; theme.el -*- lexical-binding: t; -*- + +;; Utility to set light & dark theme that follows system +;; This has only been tested on Gnome 48 and depends on gsettings + +(use-package catppuccin-theme) + +(defun set-color-scheme () + (set-theme + (string-trim + (shell-command-to-string "gsettings get org.gnome.desktop.interface color-scheme")))) + +(defun set-theme (scheme) + (setq catppuccin-flavor (cond ((string-equal scheme "\'default\'") 'latte) + ((string-equal scheme "\'prefer-light\'") 'latte) + ((string-equal scheme "\'prefer-dark\'") 'mocha))) + (load-theme 'catppuccin :no-confirm)) + +(defun monitor-theme-changes () + "Listen to gnome theme changes and run set the correct flavor" + (let ((process (make-process + :name "gsettings-monitor" + :command '("gsettings" "monitor" "org.gnome.desktop.interface" "color-scheme") + :filter (lambda (_ output) + (when (string-match-p "color-scheme" output) + (set-color-scheme)))))) + ;; Kill on exit without user prompt + (set-process-query-on-exit-flag process nil))) + +;; Initialize settings +(set-color-scheme) +(monitor-theme-changes) + +(provide 'theme) + +;;; theme.el ends here -- cgit v1.3.1