aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.lock42
-rw-r--r--gui/conf/init.el75
-rw-r--r--gui/conf/metakr.org5
-rw-r--r--gui/emacs.nix12
4 files changed, 87 insertions, 47 deletions
diff --git a/flake.lock b/flake.lock
index db4904e..baecf7d 100644
--- a/flake.lock
+++ b/flake.lock
@@ -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: