]> git.vanrenterghem.biz Git - Dotty.git/blobdiff - emacs/.emacs.d/init.el
Further configure org-mode and Denote.
[Dotty.git] / emacs / .emacs.d / init.el
index d8714af2683186216efc5fb313bb47710c8f19e7..34715c22b108737c53d3038eefa88f41355eb43d 100644 (file)
@@ -8,6 +8,12 @@
 
 (tool-bar-mode -1)
 
 
 (tool-bar-mode -1)
 
+;; Configure printing using CUPS network printer
+(setq lpr-switches
+      (append '("-o raw"
+               "-o media=A4")
+              lpr-switches))
+
 ;; Enable the melpa archive for packages
 (use-package package
   :config
 ;; Enable the melpa archive for packages
 (use-package package
   :config
@@ -57,11 +63,53 @@ vc-follow-symlinks t
             ([tab]    . company-complete-common)            
              ("TAB"    . company-complete-common))
   :config
             ([tab]    . company-complete-common)            
              ("TAB"    . company-complete-common))
   :config
+  (setq ispell-complete-word-dict
+   (expand-file-name (concat user-emacs-directory "aspell_words.txt")))
+  ;(defun my/text-mode-hook ()
+  ;  (setq-local company-backends
+;              '((company-dabbrev company-ispell :separate)
+ ;                 company-files)))
+ ; (add-hook 'text-mode-hook #'my/text-mode-hook)
   (global-company-mode 1))
 
 (use-package org
   :ensure t
   (global-company-mode 1))
 
 (use-package org
   :ensure t
+  :bind
+  (("C-c c" . org-capture)
+   ("C-c l" . org-store-link)
+   ("C-c a" . org-agenda))
+  :custom
+  (org-default-notes-file "~/Nextcloud/notes/inbox.org")
+  (org-agenda-files `(,org-default-notes-file "~/Nextcloud/notes/calendar.org"))
+  (org-capture-bookmark nil)
+  ;; Capture templates
+  (org-capture-templates
+   '(("f" "Fleeting note" item
+      (file+headline org-default-notes-file "Notes")
+      "* %?\nEntered on %U\n  %i\n  %a")
+     ("b" "Tax receipt" item
+      (file "~/Documents/belastingen/FY24-25.org")
+      "* %t %a\n") 
+     ("p" "Permanent note" plain
+      (file denote-last-path)
+      #'denote-org-capture
+      :no-save t
+      :immediate-finish nil
+      :kill-buffer t
+      :jump-to-captured t)
+     ("t" "New task" entry
+      (file+headline org-default-notes-file "Tasks")
+      "* TODO %i%?")
+     ("e" "Email follow-up" entry (file+headline org-default-notes-file "Tasks")
+      "* TODO %:fromname: %a %?\nDEADLINE: %(org-insert-time-stamp (org-read-date nil t \"+2d\"))")))
+  ;; Agenda views
+  (org-agenda-custom-commands
+   '(("P" "Expired calendar events" ((tags "TIMESTAMP<=\"<now>\"")))
+     ("n" "Agenda and all TODOs"  ((agenda "") (alltodo "")))))
   :config
   :config
+  (setq org-agenda-skip-scheduled-if-done t)
+  (setq org-agenda-skip-deadline-if-done t)
+  (setq org-agenda-start-on-weekday nil)
   ;; Automatically flow lines based on window width and use
   ;; variable width fonts in org-mode.
   (add-hook 'org-mode-hook 'visual-line-mode)
   ;; Automatically flow lines based on window width and use
   ;; variable width fonts in org-mode.
   (add-hook 'org-mode-hook 'visual-line-mode)
@@ -70,10 +118,20 @@ vc-follow-symlinks t
   (org-babel-do-load-languages
    'org-babel-load-languages
    '((R . t)
   (org-babel-do-load-languages
    'org-babel-load-languages
    '((R . t)
-     (latex . t)))
-  ;; Security risk - This is somewhat ill-advised it appears
-  (setq org-confirm-babel-evaluate nil))
-       
+     (latex . t))))
+
+(use-package org-caldav
+  :ensure t
+  :config
+  (setq org-caldav-url "https://owncloud.vanrenterghem.biz/remote.php/dav/calendars/frederik")
+  (setq org-caldav-calendar-id "orgmode")
+  ;; Org filename where new entries from calendar stored
+  (setq org-caldav-inbox "~/Nextcloud/notes/calendar.org")
+  ;; Additional Org files to check for calendar events
+  (setq org-caldav-files nil)
+  ;; Usually a good idea to set the timezone manually
+  (setq org-icalendar-timezone "Australia/Perth"))
+
 (use-package tex
   :ensure auctex
   :config
 (use-package tex
   :ensure auctex
   :config
@@ -125,7 +183,7 @@ vc-follow-symlinks t
    '("8d146df8bd640320d5ca94d2913392bc6f763d5bc2bb47bed8e14975017eea91" "9a977ddae55e0e91c09952e96d614ae0be69727ea78ca145beea1aae01ac78d2" "0cf95236abcf59e05b1ea69b4edd53d293a5baec4fe4c3484543fee99bfd2204" "80b00f3bf7cdbdca6c80aadfbbb03145f3d0aacf6bf2a559301e61109954e30a" default))
  '(org-export-backends '(ascii html icalendar latex md odt))
  '(package-selected-packages
    '("8d146df8bd640320d5ca94d2913392bc6f763d5bc2bb47bed8e14975017eea91" "9a977ddae55e0e91c09952e96d614ae0be69727ea78ca145beea1aae01ac78d2" "0cf95236abcf59e05b1ea69b4edd53d293a5baec4fe4c3484543fee99bfd2204" "80b00f3bf7cdbdca6c80aadfbbb03145f3d0aacf6bf2a559301e61109954e30a" default))
  '(org-export-backends '(ascii html icalendar latex md odt))
  '(package-selected-packages
-   '(eat ellama emms mpdel-embark libmpdel pass password-store fontaine osm embark-consult embark consult jinx dired-preview ftable flx nerd-icons-dired nerd-icons all-the-icons-dired ox-rss org-ql org-contrib mustache org-static-blog haskell-mode julia-mode elfeed-protocol ack auctex lsp-mode elpy ## org htmlize leuven-theme lua-mode ess-smart-underscore ess-R-data-view ess)))
+   '(nov eat mu4e ellama emms mpdel-embark libmpdel pass password-store fontaine osm orderless embark-consult embark consult jinx dired-preview ftable flx nerd-icons-dired nerd-icons all-the-icons-dired marginalia vertico denote ox-rss org-ql org-contrib mustache org-static-blog haskell-mode julia-mode elfeed-protocol ack company magit auctex lsp-mode elpy ## org htmlize leuven-theme lua-mode ess-smart-underscore ess-R-data-view ess)))
 (custom-set-faces
  ;; custom-set-faces was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
 (custom-set-faces
  ;; custom-set-faces was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
@@ -260,8 +318,15 @@ vc-follow-symlinks t
 ;; Denote config
 (use-package denote
   :ensure t
 ;; Denote config
 (use-package denote
   :ensure t
+  :hook (dired-mode . denote-dired-mode)
+  :bind
+  (("C-c n n" . denote)
+   ("C-c n r" . denote-rename-file)
+   ("C-c n l" . denote-link)
+   ("C-c n b" . denote-backlinks))
   :config
   :config
-  (setq denote-directory "/home/frederik/Nextcloud/notes/"))
+  (setq denote-directory "/home/frederik/Nextcloud/notes/")
+  (denote-rename-buffer-mode 1))
 
 (use-package nerd-icons
   ;; :custom
 
 (use-package nerd-icons
   ;; :custom
@@ -350,7 +415,8 @@ vc-follow-symlinks t
 
 ;; View PDFs in Emacs
 (pdf-loader-install) ; On demand loading, leads to faster startup time
 
 ;; View PDFs in Emacs
 (pdf-loader-install) ; On demand loading, leads to faster startup time
-
+(setq pdf-misc-print-programm "/usr/bin/lpr")
+  
 (use-package magit
   :ensure t)
 
 (use-package magit
   :ensure t)
 
@@ -361,6 +427,70 @@ vc-follow-symlinks t
   (add-hook 'eshell-load-hook #'eat-eshell-mode)
   (setq eshell-visual-commands '()))
 
   (add-hook 'eshell-load-hook #'eat-eshell-mode)
   (setq eshell-visual-commands '()))
 
+;; Read ePub files
+(use-package nov
+  :ensure t
+  :init
+  (add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode))
+  :config
+  (add-hook 'nov-mode-hook #'variable-pitch-mode))
+
+;; Set some preset fonts
+(use-package fontaine
+  :ensure t
+  :config
+  (setq fontaine-presets
+      '((regular-1
+         :default-family "Iosevka Nerd Font"
+         :default-height 120
+         :variable-pitch-family "Linux Biolinum O"
+        :variable-pitch-weight normal
+        :variable-pitch-height 1.1
+         :italic-family "Iosevka Etoile"
+         :line-spacing 1)
+       (large-1
+         :default-family "Iosevka Nerd Font"
+         :default-height 150
+         :variable-pitch-family "Linux Biolinum O"
+        :variable-pitch-weight normal
+        :variable-pitch-height 1.1
+         :italic-family "Iosevka Etoile"
+         :line-spacing 1)
+       (regular-2
+         :default-family "Fira Mono Nerd Font"
+         :default-height 140
+         :variable-pitch-family "Fira Sans Book"
+        :variable-pitch-weight normal
+        :variable-pitch-height 1.0
+         :line-spacing 1)
+        (large-2
+         :default-family "Fira Mono Nerd Font"
+         :default-height 140
+         :variable-pitch-family "Fira Sans Book"
+        :variable-pitch-weight normal
+        :variable-pitch-height 1.0
+         :line-spacing 1)
+       (ereader-Baskerville
+         :variable-pitch-family "Libre Baskerville"
+        :variable-pitch-weight normal
+        :variable-pitch-height 1.0
+         :line-spacing 1)
+       (ereader-Noto-Serif
+        :variable-pitch-family "Noto Serif"
+        :variable-pitch-weight normal
+        :variable-pitch-height 1.0
+         :line-spacing 1)
+       (ereader-Bembo-Tufte
+        :variable-pitch-family "ETBembo"
+        :variable-pitch-weight normal
+        :variable-pitch-height 1.1
+         :line-spacing 1)
+       (ereader-Literata
+        :variable-pitch-family "Literata"
+        :variable-pitch-weight normal
+        :variable-pitch-height 1.0
+         :line-spacing 1))))
+
 ;; Custom functions
 
 ;; Might want to run this automatically
 ;; Custom functions
 
 ;; Might want to run this automatically