From 8a26e9d3d083125d0aec070c02d568ca61709120 Mon Sep 17 00:00:00 2001 From: Levi Date: Mon, 19 Aug 2024 12:05:47 +0200 Subject: [PATCH] keybindings, no themes, migrate deft to denote --- emacs/custom.el | 55 +++++++++---------- emacs/init.el | 140 +++++++++++++++++++++++++++++++++++++----------- 2 files changed, 137 insertions(+), 58 deletions(-) diff --git a/emacs/custom.el b/emacs/custom.el index cf93508..a64a43f 100644 --- a/emacs/custom.el +++ b/emacs/custom.el @@ -6,45 +6,46 @@ ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(custom-safe-themes - '("81f53ee9ddd3f8559f94c127c9327d578e264c574cda7c6d9daddaec226f87bb" "3770d0ae70172461ee0a02edcff71b7d480dc54066e8960d8de9367d12171efb" "f64189544da6f16bab285747d04a92bd57c7e7813d8c24c30f382f087d460a33" "f079ef5189f9738cf5a2b4507bcaf83138ad22d9c9e32a537d61c9aae25502ef" "835d934a930142d408a50b27ed371ba3a9c5a30286297743b0d488e94b225c5f" default)) + '("88f7ee5594021c60a4a6a1c275614103de8c1435d6d08cc58882f920e0cec65e" "aec7b55f2a13307a55517fdf08438863d694550565dee23181d2ebd973ebd6b8" "014cb63097fc7dbda3edf53eb09802237961cbb4c9e9abd705f23b86511b0a69" "81f53ee9ddd3f8559f94c127c9327d578e264c574cda7c6d9daddaec226f87bb" "3770d0ae70172461ee0a02edcff71b7d480dc54066e8960d8de9367d12171efb" "f64189544da6f16bab285747d04a92bd57c7e7813d8c24c30f382f087d460a33" "f079ef5189f9738cf5a2b4507bcaf83138ad22d9c9e32a537d61c9aae25502ef" "835d934a930142d408a50b27ed371ba3a9c5a30286297743b0d488e94b225c5f" default)) '(devil-key [44]) '(devil-repeatable-keys '(("%k /") - ("%k d") - ("%k k") - ("%k m ^") - ("%k m e") - ("%k m b" "%k m f" "%k m a" "% k m e") - ("%k m @" "%k m h") - ("%k m y") - ("%k p" "%k n" "%k b" "%k f" "%k a" "%k e") - ("%k s") - ("%k x [" "%k x ]") - ("%k x ^" "%k x {" "%k x }") - ("%k x o") - ("%k x u") - ("%k >" "%k <"))) + ("%k d") + ("%k k") + ("%k m ^") + ("%k m e") + ("%k m b" "%k m f" "%k m a" "% k m e") + ("%k m @" "%k m h") + ("%k m y") + ("%k p" "%k n" "%k b" "%k f" "%k a" "%k e") + ("%k s") + ("%k x [" "%k x ]") + ("%k x ^" "%k x {" "%k x }") + ("%k x o") + ("%k x u") + ("%k >" "%k <"))) '(devil-translations '(("%k m m" . "C-M-") - ("%k m %k" . "M-,") - ("%k m z" . "M-") - ("%k m" . "M-") - ("%k %k" . "%k") - ("%k z" . "s-") - ("%k" . "C-"))) + ("%k m %k" . "M-,") + ("%k m z" . "M-") + ("%k m" . "M-") + ("%k %k" . "%k") + ("%k z" . "s-") + ("%k" . "C-"))) '(global-devil-mode t) '(god-mode-alist '((nil . "C-") ("m" . "M-") ("M" . "C-M-"))) + '(indent-tabs-mode nil) '(mac-option-modifier '(:ordinary meta :function meta :mouse meta)) '(mingus-mpd-host "192.168.178.67") '(mingus-stream-alist '(("CRo 1 - Radiozurnal (czech)" . "http://amp1.cesnet.cz:8000/cro1-256.ogg") - ("CRo 2 - Praha (czech)" . "http://amp1.cesnet.cz:8000/cro2-256.ogg") - ("CRo 3 - Vltava czech)" . "http://amp1.cesnet.cz:8000/cro3-256.ogg") - ("open radio" . "http://open-radio.nl:8000/org.ogg") - ("Radio Rota" . "http://streamer.radiorota.cz:8000/rota64.ogg") - ("anonradio" . "http://anonradio.net:8000/anonradio"))) + ("CRo 2 - Praha (czech)" . "http://amp1.cesnet.cz:8000/cro2-256.ogg") + ("CRo 3 - Vltava czech)" . "http://amp1.cesnet.cz:8000/cro3-256.ogg") + ("open radio" . "http://open-radio.nl:8000/org.ogg") + ("Radio Rota" . "http://streamer.radiorota.cz:8000/rota64.ogg") + ("anonradio" . "http://anonradio.net:8000/anonradio"))) '(package-selected-packages - '(plz flycheck-projectile ob-go devil realgud projectile dash async yasnippet ace-jump ace-jump-mode acme-theme async-status cape corfu deft dired-git dired-git-info doom-modeline doom-themes embark emojify eshell-toggle eshell-vterm fic-mode flycheck fzf git-lens git-link go-projectile go-scratch god-mode graphviz-dot-mode json-mode kotlin-mode ligature lsp-mode magit mastodon mingus mmm-mode multi-web-mode multifiles multiple-cursors multishell nerd-icons-completion nerd-icons-corfu nerd-icons-dired nerd-icons-ibuffer nlinum notmuch orderless org-ai org-context org-dashboard persistent-scratch php-mode plan9-theme plantuml-mode prescient project-explorer projectile-ripgrep protobuf-mode quelpa-use-package rego-mode scratch switch-window unicode-fonts vertico vterm-toggle wgrep which-key yaml-mode zenburn-theme zetteldeft)) + '(denote-explore denote workgroups2 multi-vterm jirascope eat ox-hugo plz flycheck-projectile ob-go devil realgud projectile dash async yasnippet ace-jump ace-jump-mode acme-theme async-status cape corfu deft dired-git dired-git-info doom-modeline doom-themes embark emojify eshell-toggle eshell-vterm fic-mode flycheck fzf git-lens git-link go-projectile go-scratch god-mode graphviz-dot-mode json-mode kotlin-mode ligature lsp-mode magit mastodon mingus mmm-mode multi-web-mode multifiles multiple-cursors multishell nerd-icons-completion nerd-icons-corfu nerd-icons-dired nerd-icons-ibuffer nlinum notmuch orderless org-ai org-context org-dashboard persistent-scratch php-mode plan9-theme plantuml-mode prescient project-explorer projectile-ripgrep protobuf-mode quelpa-use-package rego-mode scratch switch-window unicode-fonts vertico vterm-toggle wgrep which-key yaml-mode zenburn-theme zetteldeft)) '(tab-width 4) '(tool-bar-mode nil) '(use-short-answers t)) diff --git a/emacs/init.el b/emacs/init.el index bfdab64..6ec9937 100644 --- a/emacs/init.el +++ b/emacs/init.el @@ -47,7 +47,7 @@ (add-hook 'minibuffer-setup-hook #'cursor-intangible-mode) (when (file-exists-p custom-file) (load custom-file)) - (load-theme 'acme) + ;;(load-theme 'doom-one) (add-hook 'eshell-mode-hook (lambda () (setq-local corfu-auto nil) @@ -59,14 +59,12 @@ '("BUILD\\'" . python-mode)) (global-set-key (kbd "C-c C-r") 'replace-regexp) (global-set-key (kbd "C-c C-R") 'replace-string) - (global-set-key (kbd "C-`") 'vterm-toggle) + (global-set-key (kbd "C-") 'multi-vterm-dedicated-toggle) (global-set-key (kbd "C-") 'speedbar)) (use-package async :ensure t) (use-package async-status :ensure t) (use-package dash :ensure t) -(use-package nlinum :ensure t :defer t - :init (global-nlinum-mode 1)) (use-package multiple-cursors :ensure t :defer t :init (multiple-cursors-mode 1) :bind (("C-S-c C-S-c" . 'mc/edit-lines) @@ -98,29 +96,29 @@ ;; eye candy ;; === -(use-package acme-theme :ensure t :defer t) +;; (use-package acme-theme :ensure t :defer t) (use-package zenburn-theme :ensure t :defer t) (use-package doom-modeline :ensure t :init (doom-modeline-mode 1)) -(use-package doom-themes :ensure t - :config - (progn - (setq doom-themes-enable-bold t - doom-themes-enable-italic t) - (doom-themes-visual-bell-config) - (setq doom-themes-treemacs-theme "doom-atom") - (doom-themes-treemacs-config) - (doom-themes-org-config))) -(use-package plan9-theme :ensure t :defer t) +;; (use-package doom-themes :ensure t +;; :config +;; (progn +;; (setq doom-themes-enable-bold t +;; doom-themes-enable-italic t) +;; (doom-themes-visual-bell-config) +;; (setq doom-themes-treemacs-theme "doom-atom") +;; (doom-themes-treemacs-config) +;; (doom-themes-org-config))) +;; (use-package plan9-theme :ensure t :defer t) (use-package nerd-icons :ensure t :defer t) (use-package nerd-icons-corfu :ensure t :defer t) (use-package nerd-icons-dired :ensure t :defer t :hook (dired-mode . nerd-icons-dired-mode)) (use-package nerd-icons-completion :ensure t :defer t) (use-package nerd-icons-ibuffer :ensure t :defer t) -(use-package ligature :ensure t :defer t - :init (global-ligature-mode 1)) -(use-package emojify :ensure t :defer t) +;; (use-package ligature :ensure t :defer t +;; :init (global-ligature-mode 1)) +;; (use-package emojify :ensure t :defer t) (use-package unicode-fonts :ensure t) ;; scratch buffers @@ -144,11 +142,14 @@ ;; === (use-package multishell :ensure t :defer t) (use-package vterm-toggle :ensure t - :bind (("C-x ! t v" . #'vterm-toggle))) + :bind (("C-x ! t v" . #'multi-vterm) + ("C-x ! t n" . #'multi-vterm-next) + ("C-x ! t p" . #'multi-vterm-prev))) (use-package eshell-toggle :ensure t - :bind (("C-x ! t e" . #'eshell-toggle))) + :bind (("C-x t e" . #'eshell-toggle))) (use-package eshell-vterm :ensure t :defer t :init (eshell-vterm-mode 1)) +(use-package multi-vterm :ensure t) ;; org-mode @@ -210,8 +211,9 @@ (use-package ob-go :ensure t :defer t) -(use-package org-dashboard :ensure t :defer t - :after (:all org)) +(use-package ox-hugo :ensure t :defer t) ;; gitlab uses goldmark +(with-eval-after-load 'ox + (require 'ox-hugo)) (use-package org-context :ensure t :defer t :after (:all org)) @@ -219,15 +221,74 @@ ;; knowledge management ;; === -(use-package deft :ensure t - :bind (("C-c n d" . #'deft) - ("C-c n f" . #'deft-find-file)) +;; (use-package deft :ensure t +;; :bind (("C-c n d" . #'deft) +;; ("C-c n f" . #'deft-find-file)) +;; :config +;; (setq deft-directory "~/notes") +;; (setq deft-recursive t) +;; (setq deft-extensions '("org" "txt" "tex" "md")) +;; (setq deft-text-mode 'org-mode)) + +(use-package denote :ensure t :config - (setq deft-directory "~/notes") - (setq deft-recursive t) - (setq deft-extensions '("org" "txt" "tex" "md")) - (setq deft-text-mode 'org-mode)) -(use-package zetteldeft :ensure t) + (setq denote-directory (expand-file-name "~/notes/")) + (setq denote-save-buffers nil) + (setq denote-known-keywords '("emacs" "pascom" "golang" "dev")) + (setq denote-infer-keywords t) + (setq denote-sort-keywords t) + (setq denote-file-type nil) ; Org is the default, set others here + (setq denote-prompts '(title keywords)) + (setq denote-excluded-directories-regexp nil) + (setq denote-excluded-keywords-regexp nil) + (setq denote-rename-confirmations '(rewrite-front-matter modify-file-name)) + (setq denote-date-prompt-use-org-read-date t) ; use org date interface + (setq denote-date-format nil) ; read doc string + (setq denote-backlinks-show-context t) + (denote-rename-buffer-mode 1) + + ;; denote key bindings + (let ((map global-map)) + (define-key map (kbd "C-c n n") #'denote) + (define-key map (kbd "C-c n c") #'denote-region) ; "contents" mnemonic + (define-key map (kbd "C-c n N") #'denote-type) + (define-key map (kbd "C-c n d") #'denote-date) + (define-key map (kbd "C-c n z") #'denote-signature) ; "zettelkasten" mnemonic + (define-key map (kbd "C-c n s") #'denote-subdirectory) + (define-key map (kbd "C-c n t") #'denote-template) + ;; If you intend to use Denote with a variety of file types, it is + ;; easier to bind the link-related commands to the `global-map', as + ;; shown here. Otherwise follow the same pattern for `org-mode-map', + ;; `markdown-mode-map', and/or `text-mode-map'. + (define-key map (kbd "C-c n i") #'denote-link) ; "insert" mnemonic + (define-key map (kbd "C-c n I") #'denote-add-links) + (define-key map (kbd "C-c n b") #'denote-backlinks) + (define-key-map (kbd "C-c n f") #'denote-open-or-create) + (define-key map (kbd "C-c n l f") #'denote-find-link) + (define-key map (kbd "C-c n l b") #'denote-find-backlink) + ;; Note that `denote-rename-file' can work from any context, not just + ;; Dired bufffers. That is why we bind it here to the `global-map'. + (define-key map (kbd "C-c n r") #'denote-rename-file) + (define-key map (kbd "C-c n R") #'denote-rename-file-using-front-matter)) + + ;; Key bindings specifically for Dired. + (let ((map dired-mode-map)) + (define-key map (kbd "C-c C-d C-i") #'denote-link-dired-marked-notes) + (define-key map (kbd "C-c C-d C-r") #'denote-dired-rename-files) + (define-key map (kbd "C-c C-d C-k") #'denote-dired-rename-marked-files-with-keywords) + (define-key map (kbd "C-c C-d C-R") #'denote-dired-rename-marked-files-using-front-matter)) + + (with-eval-after-load 'org-capture + (setq denote-org-capture-specifiers "%l\n%i\n%?") + (add-to-list 'org-capture-templates + '("n" "New note (with denote.el)" plain + (file denote-last-path) + #'denote-org-capture + :no-save t + :immediate-finish nil + :kill-buffer t + :jump-to-captured t))) +) @@ -252,9 +313,12 @@ ("C-c p 5 b" . #'projectile-switch-to-buffer-other-frame) ("C-c p d" . #'projectile-dired) ("C-c p 4 d" . #'projectile-dired-other-window) - ("C-c p 4 d" . #'projectile-dired-other-frame)) + ("C-c p 4 d" . #'projectile-dired-other-frame) + ("C-c p x v" . #'multi-vterm-project)) :diminish projectile-mode :init (projectile-mode)) + +(use-package denote-explore :ensure t) @@ -497,3 +561,17 @@ message-sendmail-envelope-from 'header mail-envelope-from 'header) +(global-set-key (kbd "S-") #'lsp-find-definition) + +(setq org-hugo-base-dir "~/tmp") + + +;; workspaces +;; === +(use-package workgroups2 :ensure t :defer t + :init + (workgroups-mode 1)) + +;; media +;; === +(use-package mingus :ensure t :defer t)