aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.builds/repo.yml7
-rw-r--r--GNUmakefile6
-rw-r--r--manifest.scm3
-rw-r--r--oni-browse-url.el6
-rw-r--r--oni-eww.el4
-rw-r--r--oni-flycheck.el4
-rw-r--r--oni-org/Eldev4
-rw-r--r--oni-org/oni-org.el84
-rw-r--r--oni-php/oni-php.el5
-rw-r--r--oni-scheme.el41
10 files changed, 80 insertions, 84 deletions
diff --git a/.builds/repo.yml b/.builds/repo.yml
index 0ea020a..8d52f50 100644
--- a/.builds/repo.yml
+++ b/.builds/repo.yml
@@ -3,10 +3,11 @@ image: guix
oauth: pages.sr.ht/PAGES:RW
tasks:
- guix: |
+ cd emacs-config
guix package --verbosity=0 --manifest=manifest.scm
- package: |
+ cd emacs-config
make
- upload: |
- cd public
- acurl -f "https://pages.sr.ht/publish/ryuslash.srht.site/emacs-config/" \
- -Fcontent=@emacs-config.tar.gz
+ cd emacs-config
+ hut pages publish -d ryuslash.srht.site -s emacs-config emacs-config.tar.gz
diff --git a/GNUmakefile b/GNUmakefile
index 20f90fc..26d4f34 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -110,6 +110,7 @@ package: \
$(OUTDIR)/$(guile (get-module-version "oni-nxml")) \
$(OUTDIR)/$(guile (get-multifile-module-version "oni-org")) \
$(OUTDIR)/$(guile (get-module-version "oni-org-roam")) \
+ $(OUTDIR)/$(guile (get-module-version "oni-outline")) \
$(OUTDIR)/$(guile (get-module-version "oni-package")) \
$(OUTDIR)/$(guile (get-module-version "oni-paredit")) \
$(OUTDIR)/$(guile (get-multifile-module-version "oni-php")) \
@@ -137,7 +138,7 @@ package: \
$(OUTDIR)/$(guile (get-module-version "oni-web")) \
$(OUTDIR)/$(guile (get-module-version "oni-yaml")) \
$(OUTDIR)/$(guile (get-multifile-module-version "oni-yasnippet"))
- cd public && tar cvzf emacs-config.tar.gz .
+ cd public && tar cvzf ../emacs-config.tar.gz .
clean:
rm -rfv .eldev public
@@ -332,6 +333,9 @@ $(OUTDIR)/$(guile (get-module-version "oni-nxml")): oni-nxml.el
$(OUTDIR)/$(guile (get-module-version "oni-org-roam")): oni-org-roam.el
$(call upload,\"$<\")
+$(OUTDIR)/$(guile (get-module-version "oni-outline")): oni-outline.el
+ $(call upload,\"$<\")
+
$(OUTDIR)/$(guile (get-module-version "oni-package")): oni-package.el
$(call upload,\"$<\")
diff --git a/manifest.scm b/manifest.scm
index cc13671..fc0e556 100644
--- a/manifest.scm
+++ b/manifest.scm
@@ -7,4 +7,5 @@
"findutils"
"git"
"tar"
- "gzip"))
+ "gzip"
+ "hut"))
diff --git a/oni-browse-url.el b/oni-browse-url.el
index 33260d2..d6a94f0 100644
--- a/oni-browse-url.el
+++ b/oni-browse-url.el
@@ -4,7 +4,7 @@
;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: local
-;; Version: 2022.1213.070851
+;; Version: 2026.0707.172201
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
@@ -71,8 +71,8 @@ before this filter."
(t args))))
(setq browse-url-browser-function
- (if (eql system-type 'windows-nt)
- 'browse-url-default-windows-browser
+ (if (member system-type '(windows-nt darwin))
+ 'browse-url-default-browser
'browse-url-firefox))
;; Taken from https://mas.to/@ParetoOptimalDev/109378647927115065
diff --git a/oni-eww.el b/oni-eww.el
index 41e9f52..e36b9bf 100644
--- a/oni-eww.el
+++ b/oni-eww.el
@@ -4,7 +4,7 @@
;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: local
-;; Version: 2026.0429.164233
+;; Version: 2026.0702.170337
;; Package-Requires: (eww oni-data-dir)
;; This program is free software; you can redistribute it and/or modify
@@ -27,6 +27,7 @@
;;; Code:
(require 'eww)
+(require 'oni-data-dir)
(defvar oni-eww-desired-window-width 120
"The window width which ‘oni-eww-resize-margins’ will try to accommodate.")
@@ -56,6 +57,7 @@ Delete all other windows and then pass BUFFER and ALIST on to
`(,(rx string-start "*eww*" string-end) oni-eww-display-buffer-in-only-window))
(add-hook 'eww-mode-hook #'oni-eww-setup-margins)
+(add-hook 'eww-mode-hook #'outline-minor-mode)
(provide 'oni-eww)
;;; oni-eww.el ends here
diff --git a/oni-flycheck.el b/oni-flycheck.el
index 7047b00..7304551 100644
--- a/oni-flycheck.el
+++ b/oni-flycheck.el
@@ -4,8 +4,8 @@
;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: local
-;; Version: 2021.0715.221757
-;; Package-Requires: (flycheck flycheck-posframe flycheck-cask)
+;; Version: 2026.0629.004856
+;; Package-Requires: (flycheck flycheck-posframe flycheck-cask flycheck-phpstan)
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
diff --git a/oni-org/Eldev b/oni-org/Eldev
index f2baf05..225ee09 100644
--- a/oni-org/Eldev
+++ b/oni-org/Eldev
@@ -7,7 +7,9 @@
(eldev-use-package-archive `("oni" . ,(expand-file-name "../public/packages")))
(eldev-use-local-dependency
- (car (directory-files (format "%s/share/emacs/site-lisp" (getenv "GUIX_ENVIRONMENT"))
+ (car (directory-files (format "%s/share/emacs/site-lisp"
+ (or (getenv "GUIX_ENVIRONMENT")
+ (expand-file-name "~/.guix-profile")))
t "org-pretty-table" nil 1)))
(eldev-use-plugin 'autoloads)
diff --git a/oni-org/oni-org.el b/oni-org/oni-org.el
index ea85dbc..1c6ef2f 100644
--- a/oni-org/oni-org.el
+++ b/oni-org/oni-org.el
@@ -4,8 +4,8 @@
;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: local
-;; Version: 2026.0616.072304
-;; Package-Requires: (oni-hydra org org-edna diminish olivetti org-pretty-table)
+;; Version: 2026.0707.150746
+;; Package-Requires: (oni-hydra org org-edna diminish olivetti)
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
@@ -38,6 +38,7 @@
(require 'color)
(require 'diminish)
(require 'hydra)
+(require 'map)
(require 'ob)
(require 'org)
(require 'org-clock)
@@ -46,10 +47,14 @@
(require 'org-faces)
(require 'org-habit)
(require 'org-protocol)
-(require 'org-roam)
(require 'range)
(require 'subr-x)
+(use-package org-pretty-table
+ :vc (:url "https://github.com/Fuco1/org-pretty-table.git"
+ :rev :newest)
+ :hook (org-mode))
+
;;; Constants
(defconst oni-org-root
@@ -242,7 +247,7 @@ _di_: Add inlineimages STARTUP
("A" (org-capture nil "a"))
("j" (org-capture nil "j"))
("f" oni-org-find-node)
- ("i" org-roam-node-insert)
+ ;; ("i" org-roam-node-insert)
("di" oni-org-document-add-inline-images-startup))
(defun oni-org-in-dblock-p ()
@@ -361,7 +366,6 @@ and not a state update."
(add-hook 'org-mode-hook 'flyspell-mode)
(add-hook 'org-mode-hook 'olivetti-mode)
(add-hook 'org-mode-hook 'org-indent-mode)
-(add-hook 'org-mode-hook 'org-pretty-table-mode)
(add-hook 'org-mode-hook 'variable-pitch-mode)
(add-hook 'org-mode-hook 'visual-line-mode)
(add-hook 'org-mode-hook 'yas-minor-mode)
@@ -454,9 +458,9 @@ and not a state update."
;;;;; Custom Commands
-(oni-org--map-put org-agenda-custom-commands "n"
- '("NEXT items"
- ((todo "NEXT"))))
+(setf (map-elt org-agenda-custom-commands "n")
+ '("NEXT items"
+ ((todo "NEXT"))))
;;;; Capture
@@ -986,27 +990,9 @@ This is done by adding a ‘:hidden t’ header argument to the code block."
,(/ (length text) 2)))))
text))
-(defmacro oni-org--map-put (collection key value)
- "The result of ‘(setf (map-elt ...) ...)’ on a list.
-Trying to byte-compile the above form doesn't work at the moment.
-This is a temporary hack to make sure I don't have to repeat this
-same code all the time."
- (declare (indent 2))
- (let ((key-name (gensym))
- (value-name (gensym)))
- `(let ((,key-name ,key)
- (,value-name ,value))
- (condition-case nil
- (with-no-warnings
- (map-put! ,collection ,key-name ,value-name nil))
- (map-not-inplace
- (setq ,collection
- (map-insert ,collection ,key-name ,value-name))
- ,value-name)))))
-
(defvar oni-org--capture-D-date nil)
-(oni-org--map-put org-capture-templates "D"
- '("A DONE item for my to-done list." entry (file oni-org-todo-main-file) "* DONE %?
+(setf (map-elt org-capture-templates "D")
+ '("A DONE item for my to-done list." entry (file oni-org-todo-main-file) "* DONE %?
CLOSED: %(setq oni-org--capture-D-date (format-time-string (org-time-stamp-format t t) (org-read-date t t nil \"Date: \")))
:PROPERTIES:
:CREATED: %(progn oni-org--capture-D-date)
@@ -1014,22 +1000,22 @@ CLOSED: %(setq oni-org--capture-D-date (format-time-string (org-time-stamp-forma
:LOGBOOK:
- State \"DONE\" from \"TODO\" %(progn oni-org--capture-D-date)
:END:"
- :after-finalize (lambda () (setq oni-org--capture-D-date nil))))
+ :after-finalize (lambda () (setq oni-org--capture-D-date nil))))
-(oni-org--map-put org-capture-templates "t"
- '("A simple TODO item." entry (file "") "* TODO %?
+(setf (map-elt org-capture-templates "t")
+ '("A simple TODO item." entry (file "") "* TODO %?
:PROPERTIES:
:CREATED: %U
:END:"))
-(oni-org--map-put org-capture-templates "U"
- '("A TODO capture from the browser." entry (file "") "* TODO %:description
+(setf (map-elt org-capture-templates "U")
+ '("A TODO capture from the browser." entry (file "") "* TODO %:description
:PROPERTIES:
:CREATED: %U
:END:
%:link"
- :immediate-finish t))
+ :immediate-finish t))
(defun oni-org-find-new-note-file ()
(let ((title (read-string "Title: ")))
@@ -1044,22 +1030,22 @@ CLOSED: %(setq oni-org--capture-D-date (format-time-string (org-time-stamp-forma
oni-org-todo-dir))
(setq-local oni-org--capture-page-title title)))
-(oni-org--map-put org-capture-templates "p"
- '("A note page." plain (function oni-org-find-new-note-file) "#+TITLE: %(with-current-buffer (org-capture-get :buffer) oni-org--capture-page-title)
+(setf (map-elt org-capture-templates "p")
+ '("A note page." plain (function oni-org-find-new-note-file) "#+TITLE: %(with-current-buffer (org-capture-get :buffer) oni-org--capture-page-title)
#+DATE: %U
%?"
- :after-finalize (lambda () (when org-note-abort
- (delete-file (buffer-file-name (org-capture-get :buffer)) t)
- (kill-buffer (org-capture-get :buffer))))))
+ :after-finalize (lambda () (when org-note-abort
+ (delete-file (buffer-file-name (org-capture-get :buffer)) t)
+ (kill-buffer (org-capture-get :buffer))))))
-(oni-org--map-put org-capture-templates "c"
- '("Chores"))
+(setf (map-elt org-capture-templates "c")
+ '("Chores"))
-(oni-org--map-put org-capture-templates "cl"
- `("Laundry" entry (file ,oni-org-todo-main-file)
- (file ,(expand-file-name "laundry.org" oni-org-capture-template-directory))
- :immediate-finish t))
+(setf (map-elt org-capture-templates "cl")
+ `("Laundry" entry (file ,oni-org-todo-main-file)
+ (file ,(expand-file-name "laundry.org" oni-org-capture-template-directory))
+ :immediate-finish t))
(defun oni-org-get-morning-checklist ()
"Get the template for my morning checklist."
@@ -1075,10 +1061,10 @@ CLOSED: %(setq oni-org--capture-D-date (format-time-string (org-time-stamp-forma
(expand-file-name "morning-checklist-trash.org" oni-org-capture-template-directory)))
template))))
-(oni-org--map-put org-capture-templates "cm"
- `("Morning Checklist" entry (file ,oni-org-todo-main-file)
- (function oni-org-get-morning-checklist)
- :immediate-finish t))
+(setf (map-elt org-capture-templates "cm")
+ `("Morning Checklist" entry (file ,oni-org-todo-main-file)
+ (function oni-org-get-morning-checklist)
+ :immediate-finish t))
(defun oni-org-insert-link (title entry)
(interactive
diff --git a/oni-php/oni-php.el b/oni-php/oni-php.el
index 4c4b3d0..89b53c6 100644
--- a/oni-php/oni-php.el
+++ b/oni-php/oni-php.el
@@ -4,7 +4,7 @@
;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: local
-;; Version: 2026.0628.181554
+;; Version: 2026.0629.012633
;; Package-Requires: (php-mode oni-flycheck oni-hydra fic-mode rainbow-delimiters rainbow-identifiers)
;; This program is free software; you can redistribute it and/or modify
@@ -28,11 +28,12 @@
;;; Code:
(require 'align)
+(require 'grep)
(require 'hydra)
(require 'map)
+(require 'php-mode)
(require 'project)
(require 'whitespace)
-(require 'php-mode)
(defconst oni-php-root
(file-name-directory
diff --git a/oni-scheme.el b/oni-scheme.el
index 6c48414..cc0f553 100644
--- a/oni-scheme.el
+++ b/oni-scheme.el
@@ -4,7 +4,7 @@
;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: local
-;; Version: 2025.0602.150536
+;; Version: 2026.0714.001608
;; Package-Requires: (oni-company oni-paredit rainbow-delimiters geiser geiser-guile)
;; This program is free software; you can redistribute it and/or modify
@@ -50,37 +50,36 @@
(make-local-variable 'minor-mode-overriding-map-alist)
(push `(paredit-mode . ,newmap) minor-mode-overriding-map-alist)))
+(defconst +oni-scheme-import-display+ " …"
+ "What to display instead of the scheme imports.")
+
(defun oni-scheme-toggle-import-display ()
(interactive)
- (let ((start (get-text-property (point) 'oni-scheme-import-start))
- (end (get-text-property (point) 'oni-scheme-import-end))
- (visiblep (not (string= " ..." (get-text-property (point) 'display)))))
- (with-silent-modifications
- (unwind-protect
- (progn
- (buffer-disable-undo)
- (put-text-property start end 'display (if visiblep " ..." nil)))
- (buffer-enable-undo)))))
+ (let* ((overlay (seq-find (lambda (o) (overlay-get o 'oni-scheme-hidden-imports))
+ (overlays-at (point))))
+ (visiblep (not (string= +oni-scheme-import-display+
+ (overlay-get overlay 'display)))))
+ (overlay-put overlay 'display (if visiblep +oni-scheme-import-display+ nil))))
(defun oni-scheme-hide-guile-imports ()
"Hide the imports in ‘define-module’."
(save-excursion
(let (start end)
(goto-char (point-min))
- (when (search-forward "(define-module" nil t)
- (forward-char -14)
+ (when (re-search-forward (rx "(" (or "define-module"
+ "use-modules"))
+ nil t)
+ (forward-char (- (length (match-string 0))))
(setq start (line-end-position))
(forward-sexp)
(setq end (1- (point)))
- (with-silent-modifications
- (unwind-protect
- (progn
- (buffer-disable-undo)
- (set-text-properties start end `(display " ..."
- keymap ,oni-scheme-hidden-imports-keymap
- oni-scheme-import-start ,start
- oni-scheme-import-end ,end)))
- (buffer-enable-undo)))))))
+ (dolist (o (overlays-in start end))
+ (when (overlay-get o 'oni-scheme-hidden-imports)
+ (delete-overlay o)))
+ (let ((overlay (make-overlay start end nil nil t)))
+ (overlay-put overlay 'oni-scheme-hidden-imports t)
+ (overlay-put overlay 'display +oni-scheme-import-display+)
+ (overlay-put overlay 'keymap oni-scheme-hidden-imports-keymap))))))
(add-hook 'scheme-mode-hook 'company-mode)
(add-hook 'scheme-mode-hook 'display-fill-column-indicator-mode)