summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjetil Orbekk <kj@orbekk.com>2023-12-12 09:43:01 -0500
committerKjetil Orbekk <kj@orbekk.com>2023-12-19 07:51:57 -0500
commitae34ffd918068cbf0e57c123963b5c212be7798c (patch)
tree3c69c19aa1fa0aecf76199b0818f8f1a3ed3fff0
parent5f32fba8ec6ff54618d42d4f623f14c4d93664e8 (diff)
Update config
-rw-r--r--desktop/.config/kanshi/config7
-rw-r--r--emacs/.config/emacs-kj/lisp/kj-org.el353
2 files changed, 211 insertions, 149 deletions
diff --git a/desktop/.config/kanshi/config b/desktop/.config/kanshi/config
index 56607d0..a765604 100644
--- a/desktop/.config/kanshi/config
+++ b/desktop/.config/kanshi/config
@@ -3,6 +3,11 @@ profile dock-office {
output "HP Inc. HP Z27n G2 6CM9450CCQ" enable
}
+profile dock-google {
+ output eDP-1 disable
+ output "Lenovo Group Limited LEN P32p-20 VNA6N4GT" enable
+}
+
profile default {
output "*" enable
-} \ No newline at end of file
+}
diff --git a/emacs/.config/emacs-kj/lisp/kj-org.el b/emacs/.config/emacs-kj/lisp/kj-org.el
index 1a6059a..471d6dc 100644
--- a/emacs/.config/emacs-kj/lisp/kj-org.el
+++ b/emacs/.config/emacs-kj/lisp/kj-org.el
@@ -10,158 +10,215 @@
org-return-follows-link t
)
-;; 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-todo-keywords
- '((sequence
- "TODO(t)" "ACTIVE(a!)" "WAIT(w@/!)" "|" "DONE(d!)" "CANCELED(c@)")))
-(setq org-refile-use-outline-path nil)
-(setq org-refile-targets '((nil . (:maxlevel . 2))))
-(setq org-log-into-drawer t)
-(setq org-agenda-log-mode-items '(closed clock state))
-(setq org-agenda-start-day nil)
-(setq org-agenda-block-separator nil)
-(setq org-agenda-compact-blocks t)
-(setq org-agenda-start-with-log-mode nil)
-(setq org-habit-show-all-today t)
-(setq org-agenda-time-grid '((daily today require-timed) (800 1600) "......" "----------------------"))
-(setq org-roam-directory (concat org-directory "roam/"))
-(setq-default org-agenda-files '())
-(dolist (file '("tasks.org"
- "running-2022.org"))
- (add-to-list 'org-agenda-files (concat org-roam-directory file)))
-(setq org-roam-db-location (concat org-roam-directory "/org-roam.db"))
-(setq org-export-with-toc nil)
-(setq deft-directory org-directory)
-(setq deft-recursive t)
-;; Org html export
-(setq org-html-htmlize-output-type 'css)
-;; Website publish settings.
-(defvar kj/publish-tag "publish")
-(defvar kj/publish-directory "/ssh:orbekk@dragon.orbekk.com:/storage/srv/kj.orbekk.com")
-(add-to-list 'org-modules 'org-habit)
-
-(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)))
- (files))
- ;; (message "Results:")
- (dolist (file candidates files)
- (org-check-agenda-file file)
- (with-current-buffer (org-get-agenda-file-buffer file)
- ;; (message "%S" (org-scan-tags 'agenda matcher nil))
- (when (org-scan-tags 'agenda matcher nil)
- (push file files))))))
-
-(defun kj/org-publish (&optional project force)
- (interactive)
- (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") "\\|"))
- (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.
- ;; (org-export-use-babel nil)
- (org-babel-default-header-args
- (kj/assq-replace '((:exports . "both")
- (:eval . "never-export"))
- org-babel-default-header-args))
- (org-publish-project-alist
- `(
- ("static"
- :base-directory ,(concat org-roam-directory "/static")
- :base-extension ,static-files-re
- :recursive t
- :publishing-directory ,(concat kj/publish-directory "/static")
- :publishing-function org-publish-attachment)
- ("source"
- :base-directory ,org-roam-directory
- :base-extension "org"
- :exclude ".*"
- :include ,files-to-include
- :recursive t
- :publishing-directory ,kj/publish-directory
- :publishing-function org-publish-attachment)
- ("html"
- :base-directory ,org-roam-directory
- :base-extension "org"
- :recursive t
- :exclude ".*"
- :include ,files-to-include
- :publishing-directory ,kj/publish-directory
- :publishing-function org-html-publish-to-html
-
- :with-broken-links t
- :with-toc nil
- :with-latex t
- :with-drawers t
- :with-title t
- :section-numbers nil
-
- ;; HTML options
- :html-toplevel-hlevel 2
- :html-preamble ""
- :html-postamble ""
- :html-html5-fancy t
- :html-doctype "html5"
- :html-head "<link rel=\"stylesheet\" type=\"text/css\" href=\"static/org.css\"/>"
- :html-head-include-scripts nil
- :html-head-include-default-style nil
- :html-container article)
-
- ("all" :components ("static" "source" "html")))))
-
- (org-publish project force)))
+ ;; Install the link type
+ (org-add-link-type "notmuch" 'org-notmuch-open)
+ (add-hook 'org-store-link-functions 'org-notmuch-store-link)
+
+ (defun org-notmuch-store-link ()
+ "Store a link to a notmuch search or message."
+ (when (eq major-mode 'notmuch-show-mode)
+ (let* ((message-id (notmuch-show-get-prop :id))
+ (subject (notmuch-show-get-subject))
+ (to (notmuch-show-get-to))
+ (from (notmuch-show-get-from))
+ desc link)
+ (org-store-link-props :type "notmuch" :from from :to to
+ :subject subject :message-id message-id)
+ (setq desc (org-email-link-description))
+ (setq link (concat "notmuch:" "id:" message-id))
+ (org-add-link-props :link link :description desc)
+ link)))
+
+ (defun org-notmuch-open (path)
+ "Follow a notmuch message link specified by PATH."
+ (org-notmuch-follow-link path))
+
+ (defun org-notmuch-follow-link (search)
+ "Follow a notmuch link to SEARCH.
+
+Can link to more than one message, if so all matching messages are shown."
+ (require 'notmuch)
+ (notmuch-show (org-link-unescape search)))
+
+
+
+
+ (org-add-link-type "notmuch-search" 'org-notmuch-search-open)
+ (add-hook 'org-store-link-functions 'org-notmuch-search-store-link)
+
+ (defun org-notmuch-search-store-link ()
+ "Store a link to a notmuch search or message."
+ (when (eq major-mode 'notmuch-search-mode)
+ (let ((link (concat "notmuch-search:"
+ (org-link-escape notmuch-search-query-string)))
+ (desc (concat "Notmuch search: " notmuch-search-query-string)))
+ (org-store-link-props :type "notmuch-search"
+ :link link
+ :description desc)
+ link)))
+
+ (defun org-notmuch-search-open (path)
+ "Follow a notmuch message link specified by PATH."
+ (message path)
+ (org-notmuch-search-follow-link path))
+
+ (defun org-notmuch-search-follow-link (search)
+ "Follow a notmuch link by displaying SEARCH in notmuch-search mode."
+ (require 'notmuch)
+ (notmuch-search (org-link-unescape search)))
+
+ ;; 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-todo-keywords
+ '((sequence
+ "TODO(t)" "ACTIVE(a!)" "WAIT(w@/!)" "|" "DONE(d!)" "CANCELED(c@)")))
+ (setq org-refile-use-outline-path nil)
+ (setq org-refile-targets '((nil . (:maxlevel . 2))))
+ (setq org-log-into-drawer t)
+ (setq org-agenda-log-mode-items '(closed clock state))
+ (setq org-agenda-start-day nil)
+ (setq org-agenda-block-separator nil)
+ (setq org-agenda-compact-blocks t)
+ (setq org-agenda-start-with-log-mode nil)
+ (setq org-habit-show-all-today t)
+ (setq org-agenda-time-grid '((daily today require-timed) (800 1600) "......" "----------------------"))
+ (setq org-roam-directory (concat org-directory "roam/"))
+ (setq-default org-agenda-files '())
+ (dolist (file '("tasks.org"
+ "running-2022.org"))
+ (add-to-list 'org-agenda-files (concat org-roam-directory file)))
+ (setq org-roam-db-location (concat org-roam-directory "/org-roam.db"))
+ (setq org-export-with-toc nil)
+ (setq deft-directory org-directory)
+ (setq deft-recursive t)
+ ;; Org html export
+ (setq org-html-htmlize-output-type 'css)
+ ;; Website publish settings.
+ (defvar kj/publish-tag "publish")
+ (defvar kj/publish-directory "/ssh:orbekk@dragon.orbekk.com:/storage/srv/kj.orbekk.com")
+ (add-to-list 'org-modules 'org-habit)
+
+ (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)))
+ (files))
+ ;; (message "Results:")
+ (dolist (file candidates files)
+ (org-check-agenda-file file)
+ (with-current-buffer (org-get-agenda-file-buffer file)
+ ;; (message "%S" (org-scan-tags 'agenda matcher nil))
+ (when (org-scan-tags 'agenda matcher nil)
+ (push file files))))))
+
+ (defun kj/org-publish (&optional project force)
+ (interactive)
+ (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") "\\|"))
+ (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.
+ ;; (org-export-use-babel nil)
+ (org-babel-default-header-args
+ (kj/assq-replace '((:exports . "both")
+ (:eval . "never-export"))
+ org-babel-default-header-args))
+ (org-publish-project-alist
+ `(
+ ("static"
+ :base-directory ,(concat org-roam-directory "/static")
+ :base-extension ,static-files-re
+ :recursive t
+ :publishing-directory ,(concat kj/publish-directory "/static")
+ :publishing-function org-publish-attachment)
+ ("source"
+ :base-directory ,org-roam-directory
+ :base-extension "org"
+ :exclude ".*"
+ :include ,files-to-include
+ :recursive t
+ :publishing-directory ,kj/publish-directory
+ :publishing-function org-publish-attachment)
+ ("html"
+ :base-directory ,org-roam-directory
+ :base-extension "org"
+ :recursive t
+ :exclude ".*"
+ :include ,files-to-include
+ :publishing-directory ,kj/publish-directory
+ :publishing-function org-html-publish-to-html
+
+ :with-broken-links t
+ :with-toc nil
+ :with-latex t
+ :with-drawers t
+ :with-title t
+ :section-numbers nil
+
+ ;; HTML options
+ :html-toplevel-hlevel 2
+ :html-preamble ""
+ :html-postamble ""
+ :html-html5-fancy t
+ :html-doctype "html5"
+ :html-head "<link rel=\"stylesheet\" type=\"text/css\" href=\"static/org.css\"/>"
+ :html-head-include-scripts nil
+ :html-head-include-default-style nil
+ :html-container article)
+
+ ("all" :components ("static" "source" "html")))))
+
+ (org-publish project force)))
; (setq org-appear-autolinks t)
; (use-package! org-appear
; :hook (org-mode . org-appear-mode))
-(setq org-log-done 'time)
-(setq org-todo-keywords
- '((sequence
- "TODO(t)" ; A task that needs doing & is ready to do
- "PROJ(p)" ; A project, which usually contains other tasks
- "LOOP(r)" ; A recurring task
- "STRT(s)" ; A task that is in progress
- "WAIT(w)" ; Something external is holding up this task
- "HOLD(h)" ; This task is paused/on hold because of me
- "IDEA(i)" ; An unconfirmed and unapproved task or notion
- "|"
- "DONE(d!)" ; Task successfully completed
- "KILL(k)") ; Task was cancelled, aborted or is no longer applicable
- (sequence
- "[ ](T)" ; A task that needs doing
- "[-](S)" ; Task is in progress
- "[?](W)" ; Task is being held up or paused
- "|"
- "[X](D)") ; Task was completed
- (sequence
- "|"
- "OKAY(o)"
- "YES(y)"
- "NO(n)")))
-
-(setq org-journal-file-type 'weekly)
-(setq org-journal-dir org-roam-directory)
-(setq org-journal-file-format "journal-%Y-%m-%d.org")
-(setq org-journal-enable-agenda-integration t)
-(defun kj/org-journal-init ()
- (interactive)
- (save-excursion
- (goto-char (point-min))
- (org-id-get-create)
- (org-set-property "category" "journal")))
-
-(defun kj/org-journal-file-header (time)
- (format-time-string "#+title: Week of %F (%W)\n"
- (org-journal--convert-time-to-file-type-time time)))
-(setq org-journal-file-header #'kj/org-journal-file-header)
-(add-hook 'org-journal-after-header-create-hook 'kj/org-journal-init)
+ (setq org-log-done 'time)
+ (setq org-todo-keywords
+ '((sequence
+ "TODO(t)" ; A task that needs doing & is ready to do
+ "PROJ(p)" ; A project, which usually contains other tasks
+ "LOOP(r)" ; A recurring task
+ "STRT(s)" ; A task that is in progress
+ "WAIT(w)" ; Something external is holding up this task
+ "HOLD(h)" ; This task is paused/on hold because of me
+ "IDEA(i)" ; An unconfirmed and unapproved task or notion
+ "|"
+ "DONE(d!)" ; Task successfully completed
+ "KILL(k)") ; Task was cancelled, aborted or is no longer applicable
+ (sequence
+ "[ ](T)" ; A task that needs doing
+ "[-](S)" ; Task is in progress
+ "[?](W)" ; Task is being held up or paused
+ "|"
+ "[X](D)") ; Task was completed
+ (sequence
+ "|"
+ "OKAY(o)"
+ "YES(y)"
+ "NO(n)")))
+
+ (setq org-journal-file-type 'weekly)
+ (setq org-journal-dir org-roam-directory)
+ (setq org-journal-file-format "journal-%Y-%m-%d.org")
+ (setq org-journal-enable-agenda-integration t)
+ (defun kj/org-journal-init ()
+ (interactive)
+ (save-excursion
+ (goto-char (point-min))
+ (org-id-get-create)
+ (org-set-property "category" "journal")))
+
+ (defun kj/org-journal-file-header (time)
+ (format-time-string "#+title: Week of %F (%W)\n"
+ (org-journal--convert-time-to-file-type-time time)))
+ (setq org-journal-file-header #'kj/org-journal-file-header)
+ (add-hook 'org-journal-after-header-create-hook 'kj/org-journal-init)
;; Org
(add-to-list 'org-export-backends 'md)