summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjetil Orbekk <kj@orbekk.com>2026-09-30 18:41:23 -0400
committerKjetil Orbekk <kj@orbekk.com>2026-09-30 18:41:23 -0400
commitb9d5dbe9e68202530d0035da9c523a4ed232e48a (patch)
tree063ce126238e7c4c0f3bfb65452a8a9c6c562b30
parentdc1974bb76c96f28ec08991b7e6ab3db9c70808b (diff)
-rw-r--r--common/.gitconfig2
-rw-r--r--common/.sbclrc2
-rw-r--r--desktop/.config/blightmud/init.lua12
-rw-r--r--desktop/.config/blightmud/servers.ron8
-rw-r--r--emacs/.config/emacs/emacs-custom.el40
-rw-r--r--emacs/.config/emacs/init.el137
-rw-r--r--emacs/.config/emacs/lisp/kj-development.el16
-rw-r--r--zsh/.zshenv5
8 files changed, 157 insertions, 65 deletions
diff --git a/common/.gitconfig b/common/.gitconfig
index 2bb8fe5..637d5a2 100644
--- a/common/.gitconfig
+++ b/common/.gitconfig
@@ -17,3 +17,5 @@
rebase = true
[merge]
conflictStyle = diff3
+[safe]
+ directory = /storage/projects/password-store.git
diff --git a/common/.sbclrc b/common/.sbclrc
index 465f146..3862312 100644
--- a/common/.sbclrc
+++ b/common/.sbclrc
@@ -1,6 +1,6 @@
;;; The following lines added by ql:add-to-init-file:
#-quicklisp
-(let ((quicklisp-init (merge-pathnames ".cache/quicklisp/setup.lisp"
+(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
(user-homedir-pathname))))
(when (probe-file quicklisp-init)
(load quicklisp-init)))
diff --git a/desktop/.config/blightmud/init.lua b/desktop/.config/blightmud/init.lua
new file mode 100644
index 0000000..360b2b0
--- /dev/null
+++ b/desktop/.config/blightmud/init.lua
@@ -0,0 +1,12 @@
+local function reload_scripts()
+ blight.status_height(1)
+ blight.status_line(0, "")
+ script.reset()
+ script.load("/home/orbekk/.config/blightmud/init.lua")
+end
+
+alias.add("^reload$", reload_scripts)
+
+# see /help config_scripts
+
+blight.output("Loaded init.lua")
diff --git a/desktop/.config/blightmud/servers.ron b/desktop/.config/blightmud/servers.ron
new file mode 100644
index 0000000..cebb41a
--- /dev/null
+++ b/desktop/.config/blightmud/servers.ron
@@ -0,0 +1,8 @@
+{
+ "dunemud": (
+ host: "dunemud.net",
+ port: 6788,
+ tls: true,
+ verify_cert: true,
+ ),
+} \ No newline at end of file
diff --git a/emacs/.config/emacs/emacs-custom.el b/emacs/.config/emacs/emacs-custom.el
index f961587..286790f 100644
--- a/emacs/.config/emacs/emacs-custom.el
+++ b/emacs/.config/emacs/emacs-custom.el
@@ -3,7 +3,9 @@
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
+ '(ai-code-onboarding-seen t)
'(custom-safe-themes
+<<<<<<< variant A
'("fbf73690320aa26f8daffdd1210ef234ed1b0c59f3d001f342b9c0bbf49f531c"
"0340489fa0ccbfa05661bc5c8c19ee0ff95ab1d727e4cc28089b282d30df8fc8"
"e3999eba4f25d912d7d61cbaaed1b551957e61da047279da89499d3bd1f1d007"
@@ -29,13 +31,51 @@
with-editor yaml-mode yasnippet yasnippet-snippets
zenburn-theme))
'(package-vc-selected-packages '((kj-emacs :url "/home/orbekk/git/kj-emacs.git")))
+>>>>>>> variant B
+ '("5e39e95c703e17a743fb05a132d727aa1d69d9d2c9cde9353f5350e545c793d4"
+ "fbf73690320aa26f8daffdd1210ef234ed1b0c59f3d001f342b9c0bbf49f531c"
+ "0340489fa0ccbfa05661bc5c8c19ee0ff95ab1d727e4cc28089b282d30df8fc8"
+ "e3999eba4f25d912d7d61cbaaed1b551957e61da047279da89499d3bd1f1d007"
+ "8d412c0ed46b865312d6df5c1dfd1821d349dd3cba00049cf88c4ad34403597e"
+ "88267200889975d801f6c667128301af0bc183f3450c4b86138bfb23e8a78fb1"
+ default))
+ '(package-selected-packages nil)
+ '(package-vc-selected-packages
+ '((anki-editor :url "https://github.com/anki-editor/anki-editor")
+ (kj-emacs :url "/home/orbekk/git/kj-emacs.git")))
+ '(safe-local-variable-directories '("/home/orbekk/common-lisp/ledger/"))
+####### Ancestor
+ '("fbf73690320aa26f8daffdd1210ef234ed1b0c59f3d001f342b9c0bbf49f531c" "0340489fa0ccbfa05661bc5c8c19ee0ff95ab1d727e4cc28089b282d30df8fc8" "e3999eba4f25d912d7d61cbaaed1b551957e61da047279da89499d3bd1f1d007" "8d412c0ed46b865312d6df5c1dfd1821d349dd3cba00049cf88c4ad34403597e" "88267200889975d801f6c667128301af0bc183f3450c4b86138bfb23e8a78fb1" default))
+ '(package-selected-packages
+ '(modus-themes kj-emacs dslide org-download anki-editor yasnippet org-pomodoro eshell-syntax-highlighting esh-help pcmpl-args exercism tidal haskell-mode diff-hl dts-mode clojure-mode unobtrusive-magit-theme ledger-mode nix-mode rustic tempel puni magit gcmh smudge helpful pdf-tools pcre2el repeat-help selected ace-mc expand-region idle-highlight-mode diredfl anzu direnv ob-async mixed-pitch deadgrep wgrep coterm doom-themes with-editor zenburn-theme yasnippet-snippets yaml-mode which-key undo-tree tabbar session rust-mode puppet-mode pod-mode notmuch muttrc-mode mutt-alias lsp-mode initsplit ido-completing-read+ htmlize graphviz-dot-mode goto-chg gitignore-mode gitconfig-mode gitattributes-mode git-modes folding flycheck ess eproject editorconfig diminish csv-mode color-theme-modern browse-kill-ring boxquote bm bar-cursor apache-mode projectile embark-consult))
+ '(package-vc-selected-packages '((kj-emacs :url "/home/orbekk/git/kj-emacs.git")))
+======= end
'(safe-local-variable-values
+<<<<<<< variant A
'((org-duration-format . h:mm) (org-duration-format \` h:mm)
(checkdoc-allow-quoting-nil-and-t . t)
(eval outline-hide-sublevels 3) (eval outline-hide-sublevels 2)
(Package . CL-WHO) (Package . HUNCHENTOOT) (Base . 10)
(Package . CL-USER) (Syntax . COMMON-LISP)
(eval sly-connect "localhost" 9090) (sly-port . 9090)
+>>>>>>> variant B
+ '((checkdoc-allow-quoting-nil-and-t . t)
+ (eval outline-hide-sublevels 3) (eval outline-hide-sublevels 2)
+ (Package . CL-WHO) (Package . HUNCHENTOOT) (Base . 10)
+ (Package . CL-USER) (Syntax . COMMON-LISP)
+ (eval sly-connect "localhost" 9090) (sly-port . 9090)
+####### Ancestor
+ '((checkdoc-allow-quoting-nil-and-t . t)
+ (eval outline-hide-sublevels 3)
+ (eval outline-hide-sublevels 2)
+ (Package . CL-WHO)
+ (Package . HUNCHENTOOT)
+ (Base . 10)
+ (Package . CL-USER)
+ (Syntax . COMMON-LISP)
+ (eval sly-connect "localhost" 9090)
+ (sly-port . 9090)
+======= end
(checkdoc-package-keywords-flag))))
(custom-set-faces
;; custom-set-faces was added by Custom.
diff --git a/emacs/.config/emacs/init.el b/emacs/.config/emacs/init.el
index 66bbd5f..d81e654 100644
--- a/emacs/.config/emacs/init.el
+++ b/emacs/.config/emacs/init.el
@@ -1,10 +1,5 @@
;;; -*- lexical-binding: t; -*-
-;;;; Elpaca package setup
-;; ;; NixOS emacs doesn't include a build time. Assume a recent version.
-;; (setq elpaca-core-date 20240101)
-;; (setq elpaca-directory "~/.cache/emacs/elpaca")
-;; (load-file (expand-file-name "elpaca-installer.el" user-emacs-directory))
-
+;;;; Package setup
(with-eval-after-load 'package
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t))
(setopt use-package-always-ensure t)
@@ -196,6 +191,10 @@
:init
(vertico-mode))
+(use-package corfu
+ :init
+ (global-corfu-mode))
+
(use-package marginalia
:bind
(:map minibuffer-local-map
@@ -363,15 +362,17 @@
(use-package emacs
:ensure nil
:init
- (setq-default show-trailing-whitespace t)
- (dolist (mode '(calendar-mode-hook
- eshell-mode-hook
- term-mode-hook
- comint-mode-hook
- completion-list-mode))
- (add-hook mode
- (defun kj/disable-trailing-whitespace ()
- (setq show-trailing-whitespace nil)))))
+ ;; (setq-default show-trailing-whitespace t)
+
+ ;; (dolist (mode '(calendar-mode-hook
+ ;; eshell-mode-hook
+ ;; term-mode-hook
+ ;; comint-mode-hook
+ ;; completion-list-mode))
+ ;; (add-hook mode
+ ;; (defun kj/disable-trailing-whitespace ()
+ ;; (setq show-trailing-whitespace nil))))
+ )
(use-package ws-butler
:hook (prog-mode . ws-butler-mode))
@@ -493,11 +494,11 @@
(process-buffer proc))
(kill-buffer (process-buffer proc)))))))))
-(use-package coterm
- :config
- (coterm-mode 1))
-(add-to-list 'comint-output-filter-functions
- 'comint-osc-process-output)
+;; (use-package coterm
+;; :config
+;; (coterm-mode 1))
+;; (add-to-list 'comint-output-filter-functions
+;; 'comint-osc-process-output)
;; Update buffer name to reflect directory.
(advice-add 'cd :after
@@ -590,6 +591,9 @@
(keymap-global-set "C-c m" #'kj/transient)
;;;; Applications
+;;;;; Ghostel
+(use-package ghostel :ensure nil)
+
;;;;; Tramp
(use-package tramp :ensure nil)
@@ -657,25 +661,39 @@
;; Initialize
(anki-editor-reset-cloze-number))
-;;;;; Ledger
-(use-package ledger-mode
- :mode "\\.journal")
-
-(use-package flycheck-hledger
- :after (flycheck ledger-mode)
- :demand t)
-
-(defun kj/ledger-import ()
- (interactive)
- (let*
- ((rules-file "~/git/org/hledger/rules/common.rules")
- (input-file
- (car (last (sort (file-expand-wildcards
- "~/Downloads/Chase3660*.CSV")))))
- (compile-command "hledger import "))
- (message "Importing %s" input-file)
- (compile ))
-)
+;;;;; Gptel
+(use-package gptel
+ :ensure t
+ :config
+ (setq gptel-model 'gemini-flash-latest)
+ (setq gptel-backend
+ (let ((gemini-key "~/.config/.gemini-api-key"))
+ (when (file-exists-p gemini-key)
+ (gptel-make-gemini "Gemini"
+ :key (with-temp-buffer
+ (insert-file-contents gemini-key)
+ (buffer-string))
+ :stream t)))))
+;;;;; ai-code
+(use-package aidermacs
+ :bind (("C-c d" . aidermacs-transient-menu))
+ :config
+ ; Set API_KEY in .bashrc, that will automatically picked up by aider or in elisp
+ (setenv "ANTHROPIC_API_KEY" "sk-...")
+ (let ((gemini-key "~/.config/.gemini-api-key"))
+ (when (file-exists-p gemini-key)
+ (setenv "GOOGLE_API_KEY"
+ (with-temp-buffer
+ (insert-file-contents gemini-key)
+ (s-trim (buffer-string))))
+ (setenv "GEMINI_API_KEY"
+ (with-temp-buffer
+ (insert-file-contents gemini-key)
+ (s-trim (buffer-string))))))
+ :custom
+ ; See the Configuration section below
+ (aidermacs-default-chat-mode 'architect)
+ (aidermacs-default-model "gemini/gemini-flash-latest"))
;;;; Org mode
(use-package org
:config
@@ -688,17 +706,17 @@
)
(setopt org-capture-templates
- '(("s" "Sailing entry" plain (file+datetree "~/org/roam/sailing.org")
+ '(("s" "Sailing entry" plain (file+datetree "~/git/org/roam/sailing.org")
"%^{LOCATION|Brooklyn}p\n%^{VESSEL|J80}p%^{SKIPPER}p%?")
("a" "Anki templates")
("ai" "Inbox basic" entry
- (file+headline "~/org/anki/inbox.org" "Inbox")
+ (file+headline "~/git/org/anki/inbox.org" "Inbox")
"* %T %^g\n:PROPERTIES:\n:ANKI_NOTE_TYPE: Basic\n:END:\n** Front\n%?\n** Back\n%x\n")
("as" "Sailing basic" entry
- (file+headline "~/org/anki/sailing.org" "Sailing")
+ (file+headline "~/git/org/anki/sailing.org" "Sailing")
"* %T\n:PROPERTIES:\n:ANKI_NOTE_TYPE: Basic\n:END:\n** Front\n%?\n** Back\n%x\n")
("az" "Sailing cloze" entry
- (file+headline "~/org/anki/sailing.org" "Sailing")
+ (file+headline "~/git/org/anki/sailing.org" "Sailing")
"* %T\n:PROPERTIES:\n:ANKI_NOTE_TYPE: Cloze\n:END:\n** Text\n%x%?\n** Extra\n")))
;; Install the link type
@@ -788,7 +806,7 @@ Can link to more than one message, if so all matching messages are shown."
;; If you use `org' and don't want your org files in the default location below,
;; change `org-directory'. It must be set before org loads!
- (setq org-directory "~/org/")
+ (setq org-directory "~/git/org/")
(setq org-todo-keywords
'((sequence
"TODO(t)" "ACTIVE(a!)" "WAIT(w@/!)" "|" "DONE(d!)" "CANCELED(c@)")))
@@ -821,7 +839,6 @@ Can link to more than one message, if so all matching messages are shown."
(defvar org-publish-project-alist)
(defun kj/find-agenda-files-containing-tag (tag)
- (setq org-agenda-archives-mode nil)
(let* ((org-agenda-archives-mode nil)
(candidates (org-agenda-files nil 'ifmode))
(matcher (cdr (org-make-tags-matcher tag)))
@@ -839,7 +856,7 @@ Can link to more than one message, if so all matching messages are shown."
(setq project (or project "all"))
(setq force (or force current-prefix-arg))
(setq org-agenda-files (list org-roam-directory))
- (let* ((static-files-re (string-join '("css" "txt" "jpg" "png" "gif" "svg") "\\|"))
+ (let* ((static-files-re (string-join '("css" "txt" "jpg" "jpeg" "png" "gif" "svg") "\\|"))
(files-to-include (kj/find-agenda-files-containing-tag kj/publish-tag))
;; Disable org babel exports during publish entirely to speed up publish.
;; This messes up babel output handling.
@@ -851,10 +868,10 @@ Can link to more than one message, if so all matching messages are shown."
(org-publish-project-alist
`(
("static"
- :base-directory ,(concat org-roam-directory "/static")
+ :base-directory ,org-roam-directory
:base-extension ,static-files-re
:recursive t
- :publishing-directory ,(concat kj/publish-directory "/static")
+ :publishing-directory ,kj/publish-directory
:publishing-function org-publish-attachment)
("source"
:base-directory ,org-roam-directory
@@ -969,6 +986,30 @@ Can link to more than one message, if so all matching messages are shown."
(use-package dslide)
+;;;; Languages
+(use-package sly
+ :custom
+ ((sly-symbol-completion-mode nil)
+ (inferior-lisp-program "sbcl")))
+
+(use-package emacs :ensure nil
+ :defer 1
+ :disabled
+ :after consult
+ :init
+ (when-let ((slime-helper (expand-file-name "~/quicklisp/slime-helper.el"))
+ ((file-exists-p slime-helper)))
+ (load slime-helper)
+ (setopt inferior-lisp-program "sbcl")
+ (defvar kj/slime-history-ring nil)
+ (defvar kj/slime-history-index nil)
+ (add-to-list 'consult-mode-histories
+ '(slime-repl-mode slime-repl-input-history
+ slime-repl-input-history-position
+ beginning-of-line))
+ (slime-setup '(slime-fancy slime-asdf))))
+
+
;;;; Include modules in lisp/
(defvar kj/module-directory (expand-file-name "lisp" user-emacs-directory))
(push kj/module-directory load-path)
diff --git a/emacs/.config/emacs/lisp/kj-development.el b/emacs/.config/emacs/lisp/kj-development.el
index 613f735..dced850 100644
--- a/emacs/.config/emacs/lisp/kj-development.el
+++ b/emacs/.config/emacs/lisp/kj-development.el
@@ -125,22 +125,6 @@
;; :custom
;; (inferior-lisp-program "sbcl"))
-(use-package emacs :ensure nil
- :defer 1
- :after consult
- :init
- (when-let ((slime-helper (expand-file-name "~/.cache/quicklisp/slime-helper.el"))
- ((file-exists-p slime-helper)))
- (load slime-helper)
- (setopt inferior-lisp-program "sbcl")
- (defvar kj/slime-history-ring nil)
- (defvar kj/slime-history-index nil)
- (add-to-list 'consult-mode-histories
- '(slime-repl-mode slime-repl-input-history
- slime-repl-input-history-position
- beginning-of-line))
- (slime-setup '(slime-fancy slime-asdf))))
-
(use-package exercism)
(defun kj/run-exercism-test ()
(interactive)
diff --git a/zsh/.zshenv b/zsh/.zshenv
index 956958e..7ae6672 100644
--- a/zsh/.zshenv
+++ b/zsh/.zshenv
@@ -17,6 +17,11 @@ if [[ $(hostname) =~ fedora ]]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
+if [[ -e ~/.config/.gemini-api-key ]]; then
+ export GEMINI_API_KEY=$(cat ~/.config/.gemini-api-key)
+ export GOOGLE_API_KEY=$(cat ~/.config/.gemini-api-key)
+fi
+
PATH="$HOME/bin:$HOME/.local/bin:$HOME/build/doom-emacs/bin:$PATH:$HOME/.cargo/bin"
alias e="emacsclient -n"