328 lines
9.6 KiB
EmacsLisp
328 lines
9.6 KiB
EmacsLisp
;; 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 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
|
|
:init (add-hook 'Info-mode-hook (lambda () (olivetti-mode) (setq olivetti-body-width 73)))
|
|
: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)
|
|
|
|
(use-package go-mode
|
|
:config
|
|
(add-hook 'before-save-hook #'gofmt-before-save)
|
|
(add-hook 'go-mode-hook 'eglot-ensure))
|
|
|
|
(use-package rust-mode
|
|
:hook (rust . eglot-ensure))
|
|
|
|
(use-package typescript-mode
|
|
:config
|
|
(add-hook 'typescript-mode-hook 'eglot-ensure))
|
|
|
|
(add-hook 'js-mode-hook 'eglot-ensure)
|
|
|
|
(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-editing-commands
|
|
slime-sbcl-exts)))
|
|
|
|
|
|
(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 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 python-indent-offset 4)
|
|
(setq-default indent-tabs-mode nil)
|
|
:custom
|
|
(fill-column 79)
|
|
:config
|
|
(add-hook 'python-mode-hook 'eglot-ensure))
|
|
|
|
(use-package csv-mode)
|
|
|
|
(use-package elfeed
|
|
:bind ("C-x w" . elfeed)
|
|
:init
|
|
(setq elfeed-feeds
|
|
'(("http://nullprogram.com/feed/" lisp blog)
|
|
("https://planet.emacslife.com/atom.xml" emacs)
|
|
("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://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://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://uxwritinghub.com/feed/" ux writing blog)
|
|
("https://www.philnewton.net/blog/feed/" emacs blog)
|
|
("https://emacsredux.com/atom.xml" emacs blog)
|
|
("https://marcus3santos.github.io/index.xml" emacs blog)
|
|
("https://pragdave.me/feed.xml" coding blog)
|
|
("https://yiming.dev/rss.xml" coding emacs lisp blog)
|
|
("https://feeds.feedburner.com/PythonInsider" security bugs python news)
|
|
("https://mailbox.org/share/feed-de-mailbox.xml" email mailbox web)
|
|
("https://blog.codinghorror.com/rss/" blog coding)
|
|
("https://feeds.feedburner.com/PythonInsider" python blog news)
|
|
("https://blog.rust-lang.org/feed.xml" rust blog news))
|
|
elfeed-search-filter "@1-week-ago +unread "))
|
|
|
|
(use-package smartparens)
|
|
|
|
(use-package org-roam
|
|
:init
|
|
(setq org-roam-v2-ack t)
|
|
(setq org-roam-db-location "~/org-roam.db")
|
|
(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)
|
|
|
|
("n" "Note" plain
|
|
"%?"
|
|
:if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n#+date: %U\n%l\n\n%i")
|
|
:unnarrowed t)
|
|
|
|
("p" "personas" plain
|
|
"%?"
|
|
:if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n#+date: %U\n* Personality\n* Behaviors\n* Needs & Goals\n")
|
|
:unnarrowed t))))
|
|
|
|
(use-package simple-httpd)
|
|
|
|
(use-package yaml)
|
|
|
|
(use-package yaml-mode)
|
|
|
|
(use-package elpher)
|
|
|
|
(load "bundle--org")
|
|
(load "bundle--magit")
|
|
(load "bundle--irc")
|