X-Git-Url: http://git.vanrenterghem.biz/Dotty.git/blobdiff_plain/f6dabf55464c3b724356f3238faaf37bab3c5049..b5a4a9f6a8bd6f46c0a7b8511ef1d84882af5593:/emacs/.emacs.d/init.el diff --git a/emacs/.emacs.d/init.el b/emacs/.emacs.d/init.el index d8714af..34715c2 100644 --- a/emacs/.emacs.d/init.el +++ b/emacs/.emacs.d/init.el @@ -8,6 +8,12 @@ (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 @@ -57,11 +63,53 @@ vc-follow-symlinks t ([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 + :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<=\"\""))) + ("n" "Agenda and all TODOs" ((agenda "") (alltodo ""))))) :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) @@ -70,10 +118,20 @@ vc-follow-symlinks 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 @@ -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 - '(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. @@ -260,8 +318,15 @@ vc-follow-symlinks 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 - (setq denote-directory "/home/frederik/Nextcloud/notes/")) + (setq denote-directory "/home/frederik/Nextcloud/notes/") + (denote-rename-buffer-mode 1)) (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 - +(setq pdf-misc-print-programm "/usr/bin/lpr") + (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 '())) +;; 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