diff options
| -rw-r--r-- | flake.lock | 42 | ||||
| -rw-r--r-- | gui/conf/init.el | 75 | ||||
| -rw-r--r-- | gui/conf/metakr.org | 5 | ||||
| -rw-r--r-- | gui/emacs.nix | 12 |
4 files changed, 87 insertions, 47 deletions
@@ -6,11 +6,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1765441709, - "narHash": "sha256-2LRXe8A779U0m1NTHAaCzNy7WngXFAQw4Gc5vBl33F8=", + "lastModified": 1766941952, + "narHash": "sha256-WTrN9UgYI9PBAwnWz+rF5OEjT/1AUcZ9p33ULaKxY6s=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "27ced263ed6b7a6968f9f449d66aa299cb0f14a7", + "rev": "bd55a84718ce5219acfa13e639dd10a8ac5c1ac8", "type": "github" }, "original": { @@ -27,11 +27,11 @@ ] }, "locked": { - "lastModified": 1765384171, - "narHash": "sha256-FuFtkJrW1Z7u+3lhzPRau69E0CNjADku1mLQQflUORo=", + "lastModified": 1766939458, + "narHash": "sha256-VvZeAKyB3vhyHStSO8ACKzWRKNQPmVWktjfuSVdvtUA=", "owner": "nix-community", "repo": "home-manager", - "rev": "44777152652bc9eacf8876976fa72cc77ca8b9d8", + "rev": "e298a148013c980e3c8c0ac075295fab5074d643", "type": "github" }, "original": { @@ -43,11 +43,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1765186076, - "narHash": "sha256-hM20uyap1a0M9d344I692r+ik4gTMyj60cQWO+hAYP8=", + "lastModified": 1766651565, + "narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "addf7cf5f383a3101ecfba091b98d0a1263dc9b8", + "rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539", "type": "github" }, "original": { @@ -59,11 +59,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1765363881, - "narHash": "sha256-3C3xWn8/2Zzr7sxVBmpc1H1QfxjNfta5IMFe3O9ZEPw=", + "lastModified": 1766687554, + "narHash": "sha256-DegN7KD/EtFSKXf2jvqL6lvev6GlfAAatYBcRC8goEo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d2b1213bf5ec5e62d96b003ab4b5cbc42abfc0d0", + "rev": "fd0ca39c92fdb4012ed8d60e1683c26fddadd136", "type": "github" }, "original": { @@ -91,11 +91,11 @@ }, "oldstable": { "locked": { - "lastModified": 1765363881, - "narHash": "sha256-3C3xWn8/2Zzr7sxVBmpc1H1QfxjNfta5IMFe3O9ZEPw=", + "lastModified": 1766687554, + "narHash": "sha256-DegN7KD/EtFSKXf2jvqL6lvev6GlfAAatYBcRC8goEo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d2b1213bf5ec5e62d96b003ab4b5cbc42abfc0d0", + "rev": "fd0ca39c92fdb4012ed8d60e1683c26fddadd136", "type": "github" }, "original": { @@ -135,11 +135,11 @@ }, "stable": { "locked": { - "lastModified": 1765311797, - "narHash": "sha256-mSD5Ob7a+T2RNjvPvOA1dkJHGVrNVl8ZOrAwBjKBDQo=", + "lastModified": 1766736597, + "narHash": "sha256-BASnpCLodmgiVn0M1MU2Pqyoz0aHwar/0qLkp7CjvSQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "09eb77e94fa25202af8f3e81ddc7353d9970ac1b", + "rev": "f560ccec6b1116b22e6ed15f4c510997d99d5852", "type": "github" }, "original": { @@ -151,11 +151,11 @@ }, "unstable": { "locked": { - "lastModified": 1765270179, - "narHash": "sha256-g2a4MhRKu4ymR4xwo+I+auTknXt/+j37Lnf0Mvfl1rE=", + "lastModified": 1766840161, + "narHash": "sha256-Ss/LHpJJsng8vz1Pe33RSGIWUOcqM1fjrehjUkdrWio=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "677fbe97984e7af3175b6c121f3c39ee5c8d62c9", + "rev": "3edc4a30ed3903fdf6f90c837f961fa6b49582d1", "type": "github" }, "original": { diff --git a/gui/conf/init.el b/gui/conf/init.el index b543c6b..567b1cf 100644 --- a/gui/conf/init.el +++ b/gui/conf/init.el @@ -47,6 +47,8 @@ (setq fast-but-imprecise-scrolling t) (fset 'yes-or-no-p 'y-or-n-p) +(setq use-dialog-box nil) + (setq-default indent-tabs-mode nil) (setq-default tab-width 2) (setq-default c-basic-offset 2) @@ -201,6 +203,7 @@ (org-icalendar-timezone "Europe/Berlin") (org-icalendar-use-deadline '(event-if-not-todo event-if-todo)) (org-icalendar-use-scheduled '(event-if-not-todo event-if-todo)) + (org-agenda-skip-deadline-prewarning-if-scheduled t) :init (require 'org-protocol) (require 'ox-bibtex) @@ -320,6 +323,45 @@ (use-package ob-async :ensure t) +(use-package gptel + :ensure t + :config + (evil-leader/set-key "am" 'gptel-menu) + (evil-leader/set-key "as" 'gptel-send) + (evil-leader/set-key "ac" 'gptel-abort) + (evil-leader/set-key "ar" 'gptel-rewrite) + (setq gptel-default-mode 'org-mode) + (setq gptel-org-branching-context t) + (setq gptel-include-reasoning nil) + (setq gptel-rewrite-default-action 'dispatch) + (defun gptel--read-key-file (path) + "Read API key from PATH, trimming whitespace." + (with-temp-buffer + (insert-file-contents path) + (string-trim (buffer-string)))) + (setq gptel-backend + (gptel-make-gemini "Google" + :key (lambda () (gptel--read-key-file "~/.gemini-ai-key")) + :models '("gemini-flash-latest" "gemini-pro-latest") + :stream t)) + (setq gptel--kit-backend + (gptel-make-openai "KIT-Toolbox" + :host "ki-toolbox.scc.kit.edu" + :endpoint "/api/v1/chat/completions" + :stream t + :key (lambda () (gptel--read-key-file "~/.kit-ai-key")) + :models '("azure.gpt-5"))) + (setq gptel-default-model "Google:gemini-flash-latest")) + +(use-package ob-gptel + :ensure t + :hook ((org-mode . ob-gptel-install-completions)) + :defines ob-gptel-install-completions + :config + (defun ob-gptel-install-completions () + (add-hook 'completion-at-point-functions + 'ob-gptel-capf nil t))) + (custom-theme-set-faces 'user '(org-level-1 ((t (:family "Iosevka Aile" :weight light)))) @@ -433,7 +475,8 @@ (latex . t) (org . t) (dot . t) - (C . t))) + (C . t) + (gptel . t))) (setq org-confirm-babel-evaluate nil) @@ -536,10 +579,10 @@ (electric-indent-local-mode -1)) (add-hook 'c-mode-common-hook 'disable-electric-indent-mode t) -(use-package ace-jump-mode +(use-package avy :ensure t :config - (evil-leader/set-key "SPC" 'ace-jump-mode)) + (evil-leader/set-key "SPC" 'avy-goto-char)) (use-package auctex :defer t) @@ -606,9 +649,11 @@ ad-do-it (message "org-tangle took %f sec" (float-time (time-subtract (current-time) time))))) -(use-package gptel +(use-package envrc :ensure t) +(envrc-global-mode) + (let ((mu4e-config "~/.emacs.d/email.el")) (when (file-exists-p mu4e-config) (load-file mu4e-config))) @@ -616,25 +661,3 @@ (let ((patches "~/.emacs.d/patches.el")) (when (file-exists-p patches) (load-file patches))) - -(use-package envrc - :ensure t) - -(use-package gptel - :ensure t - :config - (defun read-file-contents (file-path) - "Read the contents of FILE-PATH and return it as a string." - (with-temp-buffer - (insert-file-contents file-path) - (buffer-string))) - (defun gptel-api-key () - (read-file-contents "~/.kit-ai-api")) - (setq gptel-backend (gptel-make-openai "KIT-Toolbox" - :host "ki-toolbox.scc.kit.edu" - :endpoint "/api/v1/chat/completions" - :stream t - :key #'gptel-api-key - :models '("azure.gpt-5")))) - -(envrc-global-mode) diff --git a/gui/conf/metakr.org b/gui/conf/metakr.org index 16c9717..2fec43c 100644 --- a/gui/conf/metakr.org +++ b/gui/conf/metakr.org @@ -400,6 +400,11 @@ For quick iteration all colors are stored in a table. (font-latex-italic-face :inherit italic :foreground @muted) + +;; gptel + (gptel-rewrite-highlight-face + :background @meta + :foreground @bg) ) #+END_SRC diff --git a/gui/emacs.nix b/gui/emacs.nix index d197bce..43bb4e1 100644 --- a/gui/emacs.nix +++ b/gui/emacs.nix @@ -80,6 +80,18 @@ }; buildInputs = [ prev.melpaPackages.helm ]; }; + + ob-gptel = prev.trivialBuild { + pname = "ob-gptel"; + version = "dev"; + src = pkgs.fetchFromGitHub { + owner = "jwiegley"; + repo = "ob-gptel"; + rev = "60e704a390d767a7d06c8d3845ba8786b75f7da3"; + hash = "sha256-G3edExxR/Ebm2lcCBhqGEqUdAEDFVxOjqB7h0ulbilA="; + }; + buildInputs = [ prev.melpaPackages.gptel ]; + }; }; extraEmacsPackages = epkgs: |
