emacs.d/bundle/bundle--package.el

332 lines
10 KiB
EmacsLisp
Raw Normal View History

2020-07-26 14:36:43 +02:00
;; PACKAGE
(require 'package)
2023-10-07 10:08:37 +02:00
2023-02-19 11:43:50 +01:00
(use-package htmlize)
2023-03-16 17:08:41 +01:00
(use-package tramp
2023-10-02 09:44:53 +02:00
:ensure nil
:config
(when (eq system-type 'windows-nt)
(setq tramp-default-method "sshx")))
2023-03-16 17:08:41 +01:00
2022-05-06 22:23:17 +02:00
(use-package shrface
2023-10-02 09:44:53 +02:00
:defer t
:config
(shrface-basic)
(shrface-trial)
(shrface-default-keybindings) ; setup default keybindings
(setq shrface-href-versatile t
shrface-toggle-bullets t
shr-width nil))
2022-05-06 22:23:17 +02:00
2020-07-26 14:36:43 +02:00
(use-package nov
2023-10-02 09:44:53 +02:00
:hook ((nov-mode . visual-line-mode)
(nov-mode . (lambda () (if (eq system-type 'windows-nt)
(setq-local line-spacing 2)
(setq-local line-spacing 4)))))
:mode ("\\.epub\\'" . nov-mode)
:init
(add-hook 'nov-mode-hook #'shrface-mode)
2023-11-24 12:18:28 +01:00
:custom
(nov-header-line-format nil)
2023-10-02 09:44:53 +02:00
:config
(setq nov-text-width 82
2023-10-23 08:40:01 +02:00
nov-variable-pitch t)
2023-10-02 09:44:53 +02:00
(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)))
;; (when (eq system-type 'windows-nt)
;; (setq nov-unzip-program "c:/msys64/usr/bin/unzip.exe")))
2022-05-06 19:31:15 +02:00
2021-12-20 09:46:26 +01:00
(use-package eglot
2023-10-02 09:44:53 +02:00
:defer t
:config
(add-to-list 'eglot-server-programs '((c++-mode c-mode) "ccls")))
2021-12-20 09:46:26 +01:00
2023-04-30 10:20:24 +02:00
(use-package sql
2023-10-02 09:44:53 +02:00
:ensure nil
:defer t
:config
(when (eq system-type 'windows-nt)
2023-10-23 16:48:02 +02:00
(setq sql-sqlite-options '("-interactive"))
2023-12-26 12:58:53 +01:00
(setq sql-mariadb-options '("-C" "-t" "-f" "-n"))
(setq sql-mysql-options '("-C" "-t" "-f" "-n"))))
2023-04-30 10:20:24 +02:00
2023-12-11 18:10:16 +01:00
;; (use-package cc-mode
;; :defer t
;; ;; https://www.gnu.org/prep/standards/html_node/Writing-C.html
;; :ensure nil
;; ;; :hook (c-mode . eglot-ensure)
;; :hook (c-mode-common . c-toggle-auto-newline)
;; :custom
;; (fill-column 79) ; according to gnu style guide
;; (c-basic-offset 2) ; ""
;; :config
;; (defun me/c-mode-style-hook ()
;; ;; if linux kernel source use linux style, else use gnu style
;; (c-set-style
;; (if (and (buffer-file-name)
;; (string-match "/usr/src/linux" (buffer-file-name)))
;; "linux"
;; "gnu")))
;; (add-hook 'c-mode-common-hook 'me/c-mode-style-hook))
2023-07-19 14:20:46 +02:00
;; (defun me/c-mode-compile-command-hook ()
;; ;; if no makefile use gcc for compile command
;; (unless (or (file-exists-p "makefile")
;; (file-exists-p "Makefile"))
;; (set (make-local-variable 'compile-command)
;; (concat "gcc " "-Wall " "-g " buffer-file-name " -o "
;; (file-name-sans-extension buffer-file-name)))))
;; (add-hook 'c-mode-common-hook 'me/c-mode-compile-command-hook)
;; (defun me/c-mode-compile-on-save ()
;; ;; compile on save hook
;; (make-local-variable 'after-save-hook)
;; (add-hook 'after-save-hook (lambda () (compile compile-command))))
;; (add-hook 'c-mode-common-hook 'me/c-mode-compile-on-save))
2021-12-20 09:46:26 +01:00
;; (use-package js-mode
;; :ensure nil
;; :hook (js-mode . eglot-ensure)
2023-07-19 14:20:46 +02:00
;; :mode (("\\.webmanifest\\'" . js-mode)
;; ("\\.js\\'" . js-mode)
;; ("\\.mjs\\'" . js-mode)
;; ("\\.cjs\\'" . js-mode)))
(use-package js2-mode
2023-10-02 09:44:53 +02:00
:defer t
:mode
(("\\.webmanifest\\'" . js2-mode)
("\\.js\\'" . js2-mode)
("\\.mjs\\'" . js2-mode)
("\\.cjs\\'" . js2-mode))
:config
(add-to-list 'interpreter-mode-alist '("node" . js2-mode)))
2021-04-22 16:06:12 +02:00
2023-10-17 19:07:14 +02:00
;; (use-package go-mode
;; :defer t
;; :mode ("\\.go\\'" . go-mode)
;; :hook ((before-save . gofmt-before-save)
;; (go-mode . eglot-ensure))
;; :config
;; (defun me/go-mode-compile-command-hook ()
;; ;; if no makefile use go vet for compile command
;; (unless (or (file-exists-p "makefile")
;; (file-exists-p "Makefile"))
;; (set (make-local-variable 'compile-command)
;; (concat "go " "vet " buffer-file-name))))
;; (add-hook 'go-mode-hook 'me/go-mode-compile-command-hook)
;; (defun me/go-mode-compile-on-save ()
;; ;; compile on save hook
;; (make-local-variable 'after-save-hook)
;; (add-hook 'after-save-hook (lambda () (compile compile-command)))))
;; ;; (add-hook 'go-mode-hook 'me/go-mode-compile-on-save)))
2021-04-22 16:06:12 +02:00
2020-07-26 14:36:43 +02:00
(use-package web-mode
2023-10-07 10:08:37 +02:00
:defer t
2023-10-02 09:44:53 +02:00
;; :hook html-mode
:mode (("\\.html?\\'" . web-mode)
("\\.xhtml?\\'" . web-mode)
("\\.tmpl\\'" . web-mode)
("\\.hbs\\'" . web-mode)
("\\.handlebars\\'" . web-mode))
: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))
2020-07-26 14:36:43 +02:00
2021-12-20 09:50:49 +01:00
(use-package python
2023-10-07 10:08:37 +02:00
:defer t
2023-10-02 09:44:53 +02:00
:mode (("\\.py\\'" . python-mode)
("\\.wsgi$" . python-mode)
("\\.j2" . python-mode))
:hook (python-mode . abbrev-mode)
:init
2023-10-04 10:07:22 +02:00
(setq python-indent-guess-indent-offset nil)
2023-10-02 09:44:53 +02:00
(setq python-indent-offset 4)
2023-10-04 10:07:22 +02:00
(setq python-shell-interpreter "ipython")
(setq python-shell-interpreter-args "-i --simple-prompt --InteractiveShell.display_page=True")
2023-10-02 09:44:53 +02:00
:custom
(fill-column 79))
2021-12-20 09:50:49 +01:00
2023-10-17 19:07:14 +02:00
;; (use-package simple-httpd
;; :defer t)
2022-05-05 09:15:55 +02:00
2023-08-21 07:43:31 +02:00
(use-package go-translate
2023-10-02 09:44:53 +02:00
:defer t
:config
(setq gts-translate-list '(("en" "de") ("de" "en")))
(setq gts-default-translator
(gts-translator :picker (gts-prompt-picker)
:engines (list (gts-bing-engine) (gts-google-engine))
:render (gts-buffer-render))))
2022-05-06 19:31:15 +02:00
(use-package magit
2023-10-02 09:44:53 +02:00
:bind ("C-x g" . magit-status)
2023-10-04 10:07:22 +02:00
:init
2023-10-07 16:14:08 +02:00
(when (eq system-type 'windows-nt)
2023-10-04 10:07:22 +02:00
(setq magit-git-executable "C:/Program Files/Git/mingw64/libexec/git-core/git.exe"))
2023-10-02 09:44:53 +02:00
:config
(global-set-key (kbd "C-x M-g") 'magit-dispatch))
2022-05-06 19:31:15 +02:00
2023-12-11 18:10:16 +01:00
;; (use-package yaml-mode
;; :defer t
;; :mode "\\.yml\\'"
;; :config
;; (defun disable-auto-fill ()
;; (auto-fill-mode -1))
;; :hook
;; (yaml-mode . disable-auto-fill))
2022-05-11 08:46:21 +02:00
2023-12-11 18:10:16 +01:00
;; (use-package csv-mode
;; :defer t
;; :mode "\\.csv\\'")
2022-05-14 07:49:44 +02:00
2023-12-11 18:10:16 +01:00
;; (use-package markdown-mode
;; :defer t
;; :mode "\\.md\\'")
2022-06-09 10:13:00 +02:00
2023-12-11 18:10:16 +01:00
;; (use-package typescript-mode
;; :defer t
;; :mode "\\.ts\\'"
;; :hook (typescript-mode . eglot-ensure)
;; :config (setq typescript-indent-level 2))
2022-11-15 09:14:31 +01:00
2022-08-15 15:04:52 +02:00
(when (eq system-type 'gnu/linux)
2023-01-22 20:04:45 +01:00
(use-package spotify :bind ("S-<pause>" . spotify-playpause))
2023-02-13 23:37:46 +01:00
;; (use-package clojure-mode)
;; (use-package cider)
2023-01-22 20:04:45 +01:00
(use-package racket-mode :mode "\\.rkt\\'")
(use-package geiser
2023-10-02 09:44:53 +02:00
:defer t
:init
2023-10-02 09:44:53 +02:00
(setq geiser-active-implementations '(racket guile)))
2023-01-22 20:04:45 +01:00
(use-package geiser-racket
2023-10-02 09:44:53 +02:00
:defer t
:after geiser
:config
(when (eq system-type 'windows-nt)
(setq geiser-racket-binary "c:/Program Files/Racket/Racket.exe")))
2023-01-22 20:04:45 +01:00
(use-package geiser-guile
2023-10-02 09:44:53 +02:00
:defer t
:after geiser
:custom (geiser-guile-binary "guile")))
2022-08-15 15:04:52 +02:00
2022-11-29 13:44:30 +01:00
(use-package mastodon
2023-12-03 10:26:59 +01:00
:defer t
2023-10-02 09:44:53 +02:00
:custom
2023-09-25 08:00:43 +02:00
(mastodon-instance-url "https://emacs.ch")
(mastodon-active-user "qhBidG3d"))
2022-11-29 13:44:30 +01:00
2023-07-19 14:19:59 +02:00
(use-package jabber
2023-12-03 10:26:59 +01:00
:defer t
2023-10-02 09:44:53 +02:00
:custom
2023-09-25 08:00:43 +02:00
(jabber-account-list
'(("marcus.kammer@mailbox.org")))
(jabber-muc-autojoin
'("lisp@conference.a3.pm"
2023-10-02 09:51:24 +02:00
"emacs@salas.suchat.org"
"cl-sbt@conference.mailbox.org"))
2023-09-25 08:00:43 +02:00
(jabber-muc-default-nicknames
'(("lisp@conference.a3.pm" . "marcus")
2023-10-02 09:51:24 +02:00
("emacs@salas.suchat.org" . "marcus")
("cl-sbt@conference.mailbox.org" . "marcus"))))
2023-01-22 17:43:44 +01:00
2023-08-03 11:42:01 +02:00
;; (use-package hyperbole
2023-12-05 15:40:35 +01:00
;; :config
;; (setq hyrolo-date-format "%Y-%m-%d %H:%M:%S")
;; (add-hook 'hyperbole-init-hook
;; (lambda ()
;; (setq hyrolo-file-list
;; (append (hyrolo-initialize-file-list)
;; (cons "~/.rolo.otl"
;; (directory-files-recursively org-directory (rx "." (or "org" "otl") eos))))))))
2023-02-11 18:40:28 +01:00
(use-package ispell
2023-10-02 09:44:53 +02:00
:ensure nil
:config
;; On windows: Copy *.aff and *.dic files to C:\msys64\ucrt64\share\hunspell
;; `hunspell -D`, the program will display the dictionaries and affix files it
;; finds and loads.
;; (when (eq system-type 'windows-nt)
;; (setq ispell-program-name "c:/msys64/ucrt64/bin/hunspell.exe"))
(setq ispell-dictionary "german,english")
(setq ispell-local-dictionary-alist
'(("german" "[[:alpha:]]" "[^[:alpha:]]" "[']" t ("-d" "de_DE_frami,de_AT_frami,de_CH_frami") nil utf-8)
("english" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-d" "en_US,en_GB") nil utf-8)
("german,english" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-d" "de_DE_frami,en_US") nil utf-8)))
(setq ispell-hunspell-dictionary-alist ispell-local-dictionary-alist))
2023-02-11 18:40:28 +01:00
2023-03-16 17:08:41 +01:00
(use-package plantuml-mode
2023-10-02 09:44:53 +02:00
:defer t
2023-10-21 13:07:07 +02:00
:mode ("\\.puml\\'" "\\.plantuml\\'")
2023-10-04 12:22:36 +02:00
:custom
(plantuml-default-exec-mode 'jar)
2023-10-21 13:07:07 +02:00
(plantuml-jar-path "~/plantuml.jar")
2023-12-11 18:10:16 +01:00
(org-plantuml-jar-path "~/plantuml.jar")
(plantuml-java-args '("-DPLANTUML_DPI=300" "-Djava.awt.headless=true" "-jar" "--illegal-access=deny")))
2023-10-04 12:22:36 +02:00
(use-package tex-mode
:defer t
:ensure auctex
:hook ((LaTeX-mode . turn-on-reftex)
(LaTeX-mode . flyspell-mode)
(LaTeX-mode . LaTeX-math-mode))
:config
;; TeX mode settings for editing .tex files
(setq TeX-auto-save t) ; Enable auto-save
(setq TeX-electric-math (cons "$" "$")) ; Shortcut for math mode
(if (eq system-type 'windows-nt)
(progn
2023-12-11 18:10:16 +01:00
(setq TeX-view-program-list '(("SumatraPDF" "~/AppData/Local/SumatraPDF/SumatraPDF.exe %o")))
(setq TeX-view-program-selection '((output-pdf "SumatraPDF"))))
2023-10-04 12:22:36 +02:00
(setq TeX-view-program-selection '((output-pdf "Evince"))))
(setq TeX-source-correlate-start-server t) ; Enable source-correlate
(setq TeX-master nil) ; Default master file
2023-12-14 12:06:16 +01:00
(setq TeX-engine 'luatex) ; Set engine to XeTeX
2023-10-04 12:22:36 +02:00
(setq TeX-command-extra-options "-shell-escape")) ; Allow shell escape
(use-package epg
:ensure nil
:config
2023-10-07 16:14:08 +02:00
(when (eq system-type 'windows-nt)
2023-10-17 19:07:14 +02:00
(setq epg-gpg-home-directory "~/AppData/Roaming/gnupg"
2023-12-26 12:51:43 +01:00
epg-gpg-program "c:/Program Files (x86)/GnuPG/bin/gpg.exe"
epg-gpgconf-program "c:/Program Files (x86)/GnuPG/bin/gpgconf.exe")))
2023-06-15 20:26:40 +02:00
2023-10-21 10:22:22 +02:00
(use-package which-key
:init (which-key-mode))
2023-11-05 17:18:51 +01:00
(use-package ssh-config-mode
2023-12-03 10:26:59 +01:00
:defer t
2023-11-05 17:18:51 +01:00
:mode ("/sshd_config\\'" . ssh-config-mode)
:config
(add-hook 'ssh-config-mode-hook 'turn-on-font-lock))
(use-package nginx-mode
2023-12-03 10:26:59 +01:00
:defer t
2023-11-05 17:18:51 +01:00
:mode ("/nginx/.*\\'" . nginx-mode))
2023-11-07 17:13:50 +01:00
(use-package dashboard
:config
(dashboard-setup-startup-hook))
2023-11-28 15:15:04 +01:00
2023-12-11 18:10:16 +01:00
;; (use-package flymake-json)
2023-11-28 15:15:04 +01:00
2023-12-11 18:10:16 +01:00
;; (use-package json-mode
;; :ensure nil
;; :mode "\\.json\\'"
;; :hook (json-mode . flymake-json-load))
2023-11-28 15:15:04 +01:00
2023-12-11 18:10:16 +01:00
;; (use-package json-navigator
;; :defer t
;; :after json-mode)
2023-11-28 15:15:04 +01:00
2023-12-11 18:10:16 +01:00
;; (use-package jq-format
;; :defer t
;; :after json-mode)