379 lines
11 KiB
EmacsLisp
379 lines
11 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 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-babel-shell-names (quote
|
||
("sh" "bash" "csh" "ash" "dash" "ksh" "mksh" "posh")))
|
||
(org-capture-templates (quote
|
||
(("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 (quote
|
||
(ascii beamer html icalendar latex md odt)))
|
||
(org-global-properties (quote
|
||
(("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 (quote
|
||
("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 (quote
|
||
(("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 (quote
|
||
((sequence "OPEN" "TODO" "DOING" "|" "DONE"))))
|
||
(org-use-property-inheritance nil)
|
||
:config
|
||
(org-babel-do-load-languages
|
||
'org-babel-load-languages (quote
|
||
((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
|
||
:config
|
||
(setq elfeed-feeds
|
||
'("http://nullprogram.com/feed/"
|
||
"http://planet.sbcl.org/rss20.xml"
|
||
"https://planet.emacslife.com/atom.xml"
|
||
"https://sachachua.com/blog/category/emacs-news/feed"
|
||
"https://drewdevault.com/blog/index.xml"
|
||
"https://emacsredux.com/atom.xml"
|
||
"https://endlessparentheses.com/atom.xml"
|
||
"https://norvig.com/rss-feed.xml"
|
||
"https://blog.mozilla.org/en/feed/"
|
||
"https://blog.codinghorror.com/rss/"
|
||
"https://blog.chromium.org/feeds/posts/default"
|
||
"https://blog.rust-lang.org/"
|
||
"https://hacks.mozilla.org/feed/"
|
||
"https://www.interaction-design.org/rss/site_news.xml"
|
||
"https://www.nngroup.com/feed/rss/"
|
||
"https://uxpamagazine.org/?feed=full"
|
||
"https://feedpress.me/UXmatters"
|
||
"https://uxmovement.com/feed"
|
||
"https://www.uxbeginner.com/feed/"
|
||
"https://jeffgothelf.com/feed/"
|
||
"https://irreal.org/blog/?feed=rss2"
|
||
"https://emacs.stackexchange.com/feeds"
|
||
"https://www.planetpython.org/rss20.xml"
|
||
"https://www.phoronix.com/rss.php")))
|
||
|
||
(use-package smartparens)
|