;; PACKAGE (require 'package) (setq package-archives '(("melpa" . "https://melpa.org/packages/") ("org" . "https://orgmode.org/elpa/") ("elpa" . "https://elpa.gnu.org/packages/"))) (package-initialize) (unless package-archive-contents (package-refresh-contents)) (unless (package-installed-p 'use-package) (package-install 'use-package)) ;; USE-PACKAGE (require 'use-package) (setq use-package-always-ensure t) (use-package company :init (global-company-mode)) (use-package counsel :bind (("C-M-j" . 'counsel-switch-buffer) :map minibuffer-local-map ("C-r" . 'counsel-minibuffer-history)) :custom (counsel-linux-app-format-function #'counsel-linux-app-format-function-name-only) :config (counsel-mode 1)) (use-package magit) (use-package all-the-icons :if (display-graphic-p) :commands all-the-icons-install-fonts :init (unless (find-font (font-spec :name "all-the-icons")) (all-the-icons-install-fonts t))) (use-package all-the-icons-dired :if (display-graphic-p) :hook (dired-mode . all-the-icons-dired-mode)) (use-package ivy :bind (("C-s" . swiper)) :init (ivy-mode 1)) (use-package olivetti :custom (olivetti-body-width 89)) (use-package shrface :config (shrface-basic) (shrface-trial) (shrface-default-keybindings) (setq shrface-href-versatile t shrface-toggle-bullets t shr-width nil)) (use-package eww :init (add-hook 'eww-after-render-hook #'shrface-mode) :config (require 'shrface) (setq shr-use-colors nil shr-use-fonts nil shr-cookie-policy nil browse-url-browser-function (quote eww-browse-url))) (use-package nov :hook (nov-mode . olivetti-mode) :init (add-hook 'nov-mode-hook #'shrface-mode) :config (require 'shrface) (setq nov-shr-rendering-functions '((img . nov-render-img) (title . nov-render-title))) (setq nov-shr-rendering-functions (append nov-shr-rendering-functions shr-external-rendering-functions)) (setq nov-text-width nil nov-variable-pitch nil)) (use-package projectile :init (projectile-mode +1) :config (setq projectile-completion-system (quote ivy))) (define-key projectile-mode-map (kbd "s-p") 'projectile-command-map) (define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map) ;; (use-package elpy ;; :config (setq elpy-modules ;; '(elpy-module-autodoc ;; elpy-module-company ;; elpy-module-eldoc ;; elpy-module-pyvenv ;; elpy-module-yasnippet) ;; elpy-test-pytest-runner-command '("pytest"))) ;; (use-package pyvenv ;; :init (pyvenv-mode 1)) (use-package eglot :init (add-hook 'python-mode-hook 'eglot-ensure)) (use-package go-mode :hook (go . eglot-ensure) :init (add-hook 'before-save-hook #'gofmt-before-save)) (use-package rust-mode :hook (rust . eglot-ensure)) (use-package typescript-mode :hook (typescript . eglot-ensure)) (use-package ob-go) (use-package ob-http) (use-package ob-rust) (use-package ob-typescript) (use-package web-mode ;; :hook html-mode :mode "\\.html?\\'" :custom (web-mode-markup-indent-offset 2) (web-mode-css-indent-offset 2) (web-mode-code-indent-offset 2) (web-mode-enable-auto-pairing nil) (web-mode-enable-auto-closing t) (web-mode-enable-current-element-highlight t) (web-mode-enable-current-column-highlight t)) (use-package slime :custom (slime-autodoc-use-multiline-p 1) :config (setq inferior-lisp-program (executable-find "sbcl")) (slime-setup '(slime-autodoc slime-fancy slime-asdf slime-indentation slime-sbcl-exts slime-company))) (use-package org :init (org-babel-lob-ingest "~/.emacs.d/library-of-babel.org") :custom (org-adapt-indentation nil) (org-agenda-prefix-format '((agenda . " %i %-12:c%?-12t%-6e% s") (todo . " %i %-12:c %-6e") (tags . " %i %-12:c") (search . " %i %-12:c"))) (org-agenda-dim-blocked-tasks nil) (org-agenda-inhibit-startup nil) (org-agenda-span 14) (org-agenda-start-on-weekday nil) (org-agenda-include-diary t) (org-capture-templates '(("t" "Task" entry (file+headline "tasks.org" "Tasks") "* OPEN %?\n%u\n%a") ("j" "Journal" entry (file+headline "journal.org" "Journal") "* %<%Y-%m-%d %H:%M:%S %p %Z>\n%?") ("a" "Appointment" entry (file+headline "appointments.org" "Appointments") "* %?\n%T\n") ("l" "Logbook" entry (file+olp+datetree "logbook.org") "** %U - %^{Activity}  :LOG:"))) (org-clock-out-remove-zero-time-clocks t) (org-clock-persist t) (org-clock-rounding-minutes 30) (org-confirm-babel-evaluate nil) (org-duration-format (quote h:mm)) (org-export-with-sub-superscripts nil) (org-export-dispatch-use-expert-ui nil) (org-export-backends '((ascii beamer html icalendar latex md odt))) (org-global-properties '(("EFFORT_ALL" . "1:00 2:00 3:00 5:00 8:00 13:00"))) (org-html-doctype "html5") (org-html-html5-fancy t) (org-html-htmlize-output-type nil) (org-latex-pdf-process '(("latexmk -xelatex -shell-escape -quiet -f %f"))) (org-latex-compiler "xelatex") (org-latex-listings t) (org-log-done (quote time)) (org-refile-targets '((nil :maxlevel . 3))) (org-startup-folded t) (org-startup-truncated nil) (org-src-fontify-natively t) (org-src-tab-acts-natively t) (org-src-window-setup 'other-window) (org-src-lang-modes '(("bash" . sh) ("elisp" . emacs-lisp) ("beamer" . latex) ("calc" . fundamental) ("dot" . fundamental) ("screen" . shell-script) ("shell" . sh) ("C" . c) ("sqlite" . sql) ("scheme" . racket) ("plantuml" . plantuml))) (org-time-stamp-rounding-minutes '(30 30)) (org-todo-keywords '((sequence "OPEN" "TODO" "DOING" "|" "DONE"))) (org-use-property-inheritance nil) :config (org-babel-do-load-languages 'org-babel-load-languages '((emacs-lisp . t) (js . t) (lisp . t) (python . t) (sqlite . t) (shell . t) (plantuml . t) (http . t)))) (use-package helpful :commands (helpful-callable helpful-variable helpful-command helpful-key) :custom (counsel-describe-function-function #'helpful-callable) (counsel-describe-variable-function #'helpful-variable) :bind ([remap describe-function] . counsel-describe-function) ([remap describe-command] . helpful-command) ([remap describe-variable] . counsel-describe-variable) ([remap describe-key] . helpful-key)) (use-package ox-reveal) (use-package powershell) ;; (use-package geiser ;; :config ;; (setq geiser-active-implementations '(racket))) ;; (use-package geiser-racket) (use-package racket-mode) (use-package doom-modeline :init (doom-modeline-mode 1)) (use-package doom-themes :init (load-theme 'doom-nord t)) (use-package rainbow-delimiters :hook (prog-mode . rainbow-delimiters-mode)) (use-package flyspell :config ;;(add-hook 'text-mode-hook #'flyspell-mode) ;;(add-hook 'prog-mode-hook #'flyspell-prog-mode) (setq ispell-dictionary "en_US") :hook (text-mode . flyspell-mode)) (use-package org-tree-slide :custom (org-image-actual-width nil)) (use-package ace-window) (use-package markdown-mode) (use-package yaml-mode) (use-package webpaste) (use-package slime-company :after (slime company) :custom (slime-company-after-completion 'slime-company-just-one-space)) (use-package erc :custom (erc-track-shorten-start 8) (erc-kill-buffer-on-part t) (erc-auto-query 'bury) (erc-hide-list '("JOIN" "PART" "QUIT")) (erc-network-hide-list '(("irc.libera.chat" "JOIN" "PART" "QUIT"))) (erc-channel-hide-list '(("#emacs" "JOIN" "PART" "QUIT"))) (erc-rename-buffers t) (erc-autojoin-channels-alist '(("libera.chat" "#emacs"))) (erc-interpret-mirc-color t) (erc-modules '(autojoin button completion fill irccontrols list match menu move-to-prompt netsplit networks noncommands notifications readonly ring stamp track truncate))) (use-package erc-image :after erc :custom (erc-image-inline-rescale 300) :config (add-to-list 'erc-modules 'image)) (use-package emojify :hook (erc-mode . emojify-mode) :commands emojify-mode) (use-package org-web-tools :custom (org-web-tools-pandoc-sleep-time 0.4)) (use-package webjump :bind ("C-c j" . webjump) :custom (webjump-sites (append '(("Wikipedia_de" . [simple-query "de.wikipedia.org" "https://de.wikipedia.org/wiki/" ""])) webjump-sample-sites))) (use-package plantuml-mode :mode "\\.puml?\\'") (use-package unicode-fonts :config (unicode-fonts-setup)) (use-package pyvenv) (add-to-list 'auto-mode-alist '("\\.webmanifest\\'" . js-mode)) (use-package python :mode ("\\.py\\'" . python-mode) ("\\.wsgi$" . python-mode) :init (setq-default indent-tabs-mode nil) :custom (fill-column 79) (python-indent-offset 4)) (use-package csv-mode) (use-package elfeed :bind ("C-x w" . elfeed) :init (setq elfeed-feeds '(("http://nullprogram.com/feed/" lisp blog) ("http://planet.sbcl.org/rss20.xml" lisp) ("https://planet.emacslife.com/atom.xml" emacs) ("https://sachachua.com/blog/category/emacs-news/feed" emacs org blog) ("https://drewdevault.com/blog/index.xml" coding golang blog) ("https://emacsredux.com/atom.xml" emacs blog) ("https://endlessparentheses.com/atom.xml" emacs elisp blog) ("https://norvig.com/rss-feed.xml" coding lisp blog) ("https://blog.mozilla.org/en/feed/" browser web) ("https://blog.codinghorror.com/rss/" coding blog) ("https://blog.chromium.org/feeds/posts/default" browser web) ("https://blog.rust-lang.org/" rust) ("https://hacks.mozilla.org/feed/" browser web) ("https://www.interaction-design.org/rss/site_news.xml" ux design) ("https://www.nngroup.com/feed/rss/" ux design) ("https://uxpamagazine.org/?feed=full" ux design) ("https://feedpress.me/UXmatters" ux design) ("https://uxmovement.com/feed" ux design) ("https://www.uxbeginner.com/feed/" ux design) ("https://jeffgothelf.com/feed/" lean ux design blog) ("https://irreal.org/blog/?feed=rss2" emacs blog) ("https://emacs.stackexchange.com/feeds" emacs elisp) ("https://www.planetpython.org/rss20.xml" python coding) ("https://www.colinmclear.net/posts/index.xml" research emacs blog) ("https://ambrevar.xyz/atom.xml" emacs lisp blog) ("https://en.wikipedia.org/w/api.php?action=featuredfeed&feed=onthisday&feedformat=atom" general) ("https://www.phoronix.com/rss.php" linux tech news) ("https://uxwritinghub.com/feed/" ux writing blog) ("https://mailbox.org/share/feed-de-mailbox.xml" email mailbox web)) elfeed-search-filter "@1-week-ago +unread ")) (use-package smartparens) (use-package org-roam :init (setq org-roam-v2-ack t) (require 'org-roam-dailies) :bind (("C-c r l" . org-roam-buffer-toggle) ("C-c r f" . org-roam-node-find) ("C-c r g" . org-roam-graph) ("C-c r i" . org-roam-node-insert) ("C-c r c" . org-roam-capture) ("C-c r j" . org-roam-dailies-map) :map org-roam-dailies-map ("t" . org-roam-dailies-capture-today) ("y" . org-roam-dailies-capture-yesterday) ("T" . org-roam-dailies-capture-tomorrow) :map org-mode-map ("C-M-i" . completion-at-point)) :custom (org-roam-completion-everywhere t) (org-roam-dailies-capture-templates '(("d" "default" entry "* %<%R> %?" :if-new (file+head "%<%F>.org" "#+title: %<%F>\n")))) (org-roam-capture-templates '(("d" "default" plain "%?" :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n#+date: %U\n") :unnarrowed t))) :config (org-roam-db-autosync-mode)) (use-package simple-httpd) (use-package yaml) (use-package yaml-mode)