mirror of
http://github.com/JaeUs3792/dotfiles
synced 2025-12-13 23:51:34 +09:00
Emacs : doom.
This commit is contained in:
565
.doom.d.bak/config.el
Normal file
565
.doom.d.bak/config.el
Normal file
@ -0,0 +1,565 @@
|
||||
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
|
||||
(setq-default tab-width 4)
|
||||
(defvaralias 'c-basic-offset 'tab-width)
|
||||
(setq! indent-tabs-mode t)
|
||||
;; Place your private configuration here! Remember, you do not need to run 'doom
|
||||
;; sync' after modifying this file!
|
||||
(setq default-input-method "korean-hangul")
|
||||
(global-set-key (kbd "<Hangul>") 'toggle-input-method)
|
||||
;; Some functionality uses this to identify you, e.g. GPG configuration, email
|
||||
;; clients, file templates and snippets. It is optional.
|
||||
(setq user-full-name "JaeYoo-Im"
|
||||
user-mail-address "cpu3792@gmail.com")
|
||||
|
||||
;; Doom exposes five (optional) variables for controlling fonts in Doom:
|
||||
;;
|
||||
;; - `doom-font' -- the primary font to use
|
||||
;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable)
|
||||
;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for
|
||||
;; presentations or streaming.
|
||||
;; - `doom-unicode-font' -- for unicode glyphs
|
||||
;; - `doom-serif-font' -- for the `fixed-pitch-serif' face
|
||||
;;
|
||||
;; See 'C-h v doom-font' for documentation and more examples of what they
|
||||
;; accept. For example:
|
||||
;;
|
||||
;;(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
|
||||
;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13))
|
||||
;;
|
||||
;; If you or Emacs can't find your font, use 'M-x describe-font' to look them
|
||||
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
|
||||
;; refresh your font settings. If Emacs still can't find your font, it likely
|
||||
;; wasn't installed correctly. Font issues are rarely Doom issues!
|
||||
|
||||
;; | 12345678 | |
|
||||
;; |----------+---|
|
||||
;; | 일이삼사 | |
|
||||
|
||||
(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
|
||||
doom-variable-pitch-font (font-spec :family "Ubuntu" :size 13))
|
||||
(set-fontset-font t 'hangul (font-spec :name "NanumGothic"))
|
||||
;; There are two ways to load a theme. Both assume the theme is installed and
|
||||
;; available. You can either set `doom-theme' or manually load a theme with the
|
||||
;; `load-theme' function. This is the default:
|
||||
(if (display-graphic-p)
|
||||
(setq doom-theme 'doom-palenight)
|
||||
(setq doom-theme 'doom-gruvbox))
|
||||
(unless (display-graphic-p)
|
||||
(xterm-mouse-mode))
|
||||
(beacon-mode 1)
|
||||
|
||||
(global-auto-revert-mode 1)
|
||||
(setq global-auto-revert-non-file-buffers t)
|
||||
;; This determines the style of line numbers in effect. If set to `nil', line
|
||||
;; numbers are disabled. For relative line numbers, set this to `relative'.
|
||||
(setq display-line-numbers-type t)
|
||||
|
||||
;; If you use `org' and don't want your org files in the default location below,
|
||||
;; change `org-directory'. It must be set before org loads!
|
||||
(setq org-directory "~/org/")
|
||||
|
||||
|
||||
;; Whenever you reconfigure a package, make sure to wrap your config in an
|
||||
;; `after!' block, otherwise Doom's defaults may override your settings. E.g.
|
||||
;;
|
||||
;; (after! PACKAGE
|
||||
;; (setq x y))
|
||||
;;
|
||||
;; The exceptions to this rule:
|
||||
;;
|
||||
;; - Setting file/directory variables (like `org-directory')
|
||||
;; - Setting variables which explicitly tell you to set them before their
|
||||
;; package is loaded (see 'C-h v VARIABLE' to look up their documentation).
|
||||
;; - Setting doom variables (which start with 'doom-' or '+').
|
||||
;;
|
||||
;; Here are some additional functions/macros that will help you configure Doom.
|
||||
;;
|
||||
;; - `load!' for loading external *.el files relative to this one
|
||||
;; - `use-package!' for configuring packages
|
||||
;; - `after!' for running code after a package has loaded
|
||||
;; - `add-load-path!' for adding directories to the `load-path', relative to
|
||||
;; this file. Emacs searches the `load-path' when you load packages with
|
||||
;; `require' or `use-package'.
|
||||
;; - `map!' for binding new keys
|
||||
;;
|
||||
;; To get information about any of these functions/macros, move the cursor over
|
||||
;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k').
|
||||
;; This will open documentation for it, including demos of how they are used.
|
||||
;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces,
|
||||
;; etc).
|
||||
;;
|
||||
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
|
||||
;; they are implemented.
|
||||
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; -Virtico
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;;(if (display-graphic-p)
|
||||
;; (vertico-posframe-mode 1))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; -Transparency
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(defvar gvar/frame-transparency '(85 . 85))
|
||||
|
||||
(defun toggle-transparency ()
|
||||
(interactive)
|
||||
(let ((alpha (frame-parameter nil 'alpha)))
|
||||
(set-frame-parameter
|
||||
nil 'alpha
|
||||
(if (eql (cond ((numberp alpha) alpha)
|
||||
((numberp (cdr alpha)) (cdr alpha))
|
||||
;; Also handle undocumented (<active> <inactive>) form.
|
||||
((numberp (cadr alpha)) (cadr alpha)))
|
||||
100)
|
||||
gvar/frame-transparency '(100 . 100)))))
|
||||
|
||||
(global-set-key (kbd "C-c t") 'toggle-transparency)
|
||||
(defun my/org-roam-rg-search ()
|
||||
"Search org-roam directory using consult-ripgrep. With live-preview."
|
||||
(interactive)
|
||||
(let ((consult-ripgrep-command "rg --null --ignore-case --type org --line-buffered --color=always --max-columns=500 --no-heading --line-number . -e ARG OPTS"))
|
||||
(consult-ripgrep org-roam-directory)))
|
||||
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Language Server Client
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(after! dap-mode
|
||||
(setq dap-python-debugger 'debugpy))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Org Paste Clipboard image for windows, in linux(use org-screenshot-take)
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(defun my-org-paste-image ()
|
||||
"Paste an image into a time stamped unique-named file in the
|
||||
same directory as the org-buffer and insert a link to this file."
|
||||
(interactive)
|
||||
(let* ((target-file
|
||||
(concat
|
||||
(make-temp-name
|
||||
(concat "~/org/images/"
|
||||
(f-filename buffer-file-name)
|
||||
"_"
|
||||
(format-time-string "%Y%m%d_%H%M%S_"))) ".png"))
|
||||
(wsl-path
|
||||
(concat (as-windows-path(file-name-directory target-file))
|
||||
"/"
|
||||
(file-name-nondirectory target-file)))
|
||||
(ps-script
|
||||
(concat "(Get-Clipboard -Format image).Save('" wsl-path "')")))
|
||||
|
||||
(powershell ps-script)
|
||||
|
||||
(if (file-exists-p target-file)
|
||||
(progn (insert (concat "[[" target-file "]]"))
|
||||
(org-display-inline-images))
|
||||
(user-error
|
||||
"Error pasting the image, make sure you have an image in the clipboard!"))
|
||||
))
|
||||
(defun my-org-remove-link-and-trash-linked-file ()
|
||||
"Remove `org-mode' link at point and trash linked file."
|
||||
(interactive)
|
||||
(let* ((link (org-element-context))
|
||||
(path (org-element-property :path link)))
|
||||
(move-file-to-trash path)
|
||||
(delete-region (org-element-property :begin link)
|
||||
(org-element-property :end link))))
|
||||
|
||||
(defun as-windows-path (unix-path)
|
||||
"Takes a unix path and returns a matching WSL path"
|
||||
;; substring removes the trailing \n
|
||||
(substring
|
||||
(shell-command-to-string
|
||||
(concat "wslpath -w " unix-path)) 0 -1))
|
||||
|
||||
(defun powershell (script)
|
||||
"executes the given script within a powershell and returns its return value"
|
||||
(call-process "powershell.exe" nil nil nil
|
||||
"-Command" (concat "& {" script "}")))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Dashboard
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(use-package dashboard
|
||||
:init ;; tweak dashboard config before loading it
|
||||
(setq dashboard-set-heading-icons t)
|
||||
(setq dashboard-set-file-icons t)
|
||||
(setq dashboard-startup-banner 'logo) ;; use standard emacs logo as banner
|
||||
;;(setq dashboard-startup-banner "~/.config/doom/doom-emacs-dash.png") ;; use custom image as banner
|
||||
(setq dashboard-center-content t) ;; set to 't' for centered content
|
||||
(setq dashboard-items '((recents . 10)
|
||||
(bookmarks . 5)
|
||||
(projects . 10)))
|
||||
(setq dashboard-set-footer t)
|
||||
(setq dashboard-page-separator "\n\f\n")
|
||||
(setq dashboard-set-navigator t)
|
||||
;; Format: "(icon title help action face prefix suffix)"
|
||||
(setq dashboard-navigator-buttons
|
||||
`(;; line1
|
||||
((,(all-the-icons-octicon "mark-github" :height 1.1 :v-adjust 0.0)
|
||||
"Github"
|
||||
"Browse my Github"
|
||||
(lambda (&rest _) (browse-url "https://github.com/JaeUs3792/")))
|
||||
(,(all-the-icons-octicon "home" :height 1.1 :v-adjust 0.0)
|
||||
"Homepage"
|
||||
"Browse my Homepage"
|
||||
(lambda (&rest _) (browse-url "https://jaeus.net")))
|
||||
(,(all-the-icons-octicon "zap" :height 1.1 :v-adjust 0.0)
|
||||
"Update"
|
||||
"Doom upgrade"
|
||||
(lambda (&rest _) (doom/upgrade)) warning))))
|
||||
:config
|
||||
(dashboard-setup-startup-hook)
|
||||
(dashboard-modify-heading-icons '((recents . "file-text")
|
||||
(bookmarks . "book"))))
|
||||
|
||||
(setq doom-fallback-buffer-name "*dashboard*")
|
||||
(after! dashboard
|
||||
(page-break-lines-mode))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Rainbow delimiter mode for programming.
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(add-hook 'verilog-mode-hook #'rainbow-delimiters-mode)
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; Avy multi-buffer
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(setq! avy-all-windows t)
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Calendar
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(use-package! calfw)
|
||||
(use-package! calfw-org)
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Neotree
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; comment ~/.emacs.d/modules/ui/doom/config.el (add-hook 'doom-load-theme-hook #'doom-themes-neotree-config)
|
||||
(setq! neo-theme (if (display-graphic-p) 'icons 'arrow))
|
||||
(setq! neo-smart-open t)
|
||||
;;(doom-themes-neotree-config)
|
||||
;;(setq! doom-themes-neotree-file-icons t)
|
||||
;;;; --------------------------------------------------------------------------------------------
|
||||
;; - Org Mode
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(with-eval-after-load 'org
|
||||
;; This is needed as of Org 9.2
|
||||
(require 'org-tempo)
|
||||
|
||||
(add-to-list 'org-structure-template-alist '("sh" . "src shell"))
|
||||
(add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp"))
|
||||
(add-to-list 'org-structure-template-alist '("hs" . "src haskell"))
|
||||
(add-to-list 'org-structure-template-alist '("cc" . "src c"))
|
||||
(add-to-list 'org-structure-template-alist '("cp" . "src c++"))
|
||||
(add-to-list 'org-structure-template-alist '("rs" . "src rust"))
|
||||
(add-to-list 'org-structure-template-alist '("py" . "src jupyter-python"))
|
||||
(add-to-list 'org-structure-template-alist '("oc" . "src octave"))
|
||||
(add-to-list 'org-structure-template-alist '("vl" . "src verilog"))
|
||||
(add-to-list 'org-structure-template-alist '("vh" . "src vhdl")))
|
||||
|
||||
(after! org
|
||||
(setq! org-hide-emphasis-markers t)
|
||||
(setq org-superstar-item-bullet-alist
|
||||
'((?+ . ?➤)
|
||||
(?* . ?–)
|
||||
(?- . ?•)))
|
||||
(custom-set-faces!
|
||||
'(org-level-1 :height 1.7 :weight ultra-bold :foreground "#81a2be") ;; :foreground "#81a2be"
|
||||
'(org-level-2 :height 1.6 :weight extra-bold :foreground "#b294bb") ;; :foreground "#b294bb"
|
||||
'(org-level-3 :height 1.5 :weight bold :foreground "#b5bd68") ;; :foreground "#b5bd68"
|
||||
'(org-level-4 :height 1.4 :weight semi-bold :foreground "#e6c547") ;; :foreground "#e6c547"
|
||||
'(org-level-5 :height 1.3 :weight normal :foreground "#cc6666") ;; :foreground "#cc6666"
|
||||
'(org-level-6 :height 1.2 :weight normal :foreground "#70c0ba") ;; :foreground "#70c0ba"
|
||||
'(org-level-7 :height 1.1 :weight normal :foreground "#b77ee0") ;; :foreground "#b77ee0"
|
||||
'(org-level-8 :height 1.0 :weight normal :foreground "#9ec400")) ;; :foreground "#9ec400"
|
||||
(custom-set-faces!
|
||||
'(org-document-title :height 2.0)))
|
||||
(setq org-use-sub-superscripts '{})
|
||||
(setq org-export-with-sub-superscripts '{})
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Org Roam
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(defun my/org-roam-list-notes-by-tag (tag-name)
|
||||
(mapcar #'org-roam-node-file
|
||||
(seq-filter
|
||||
(my/org-roam-filter-by-tag tag-name)
|
||||
(org-roam-node-list))))
|
||||
|
||||
(defun my/org-roam-refresh-agenda-list ()
|
||||
(interactive)
|
||||
(setq org-agenda-files (my/org-roam-list-notes-by-tag "Project"))
|
||||
(add-to-list 'org-agenda-files "~/org/agenda/agenda.org"))
|
||||
(defun my/org-roam-filter-by-tag (tag-name)
|
||||
(lambda (node)
|
||||
(member tag-name (org-roam-node-tags node))))
|
||||
|
||||
;;(with-eval-after-load 'org-roam
|
||||
;; (defun my/org-roam-project-finalize-hook ()
|
||||
;; "Adds the captured project file to `org-agenda-files' if the
|
||||
;;capture was not aborted."
|
||||
;; ;; Remove the hook since it was added temporarily
|
||||
;; (remove-hook 'org-capture-after-finalize-hook #'my/org-roam-project-finalize-hook)
|
||||
;;
|
||||
;; ;; Add project file to the agenda list if the capture was confirmed
|
||||
;; (unless org-note-abort
|
||||
;; (with-current-buffer (org-capture-get :buffer)
|
||||
;; (add-to-list 'org-agenda-files (buffer-file-name)))))
|
||||
;; (defun my/org-roam-find-project ()
|
||||
;; (interactive)
|
||||
;; ;; Add the project file to the agenda after capture is finished
|
||||
;; (add-hook 'org-capture-after-finalize-hook #'my/org-roam-project-finalize-hook)
|
||||
;;
|
||||
;; ;; Select a project file to open, creating it if necessary
|
||||
;; (org-roam-node-find
|
||||
;; nil
|
||||
;; nil
|
||||
;; (my/org-roam-filter-by-tag "Project")
|
||||
;; :templates
|
||||
;; '(("p" "project" plain "* Goals\n\n%?\n\n* Tasks\n\n** TODO Add initial tasks\n\n* Dates\n\n"
|
||||
;; :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n#+category: ${title}\n#+filetags: Project")
|
||||
;; :unnarrowed t))))
|
||||
;; (defun my/org-roam-capture-inbox ()
|
||||
;; (interactive)
|
||||
;; (org-roam-capture- :node (org-roam-node-create)
|
||||
;; :templates '(("i" "inbox" plain "* %?"
|
||||
;; :if-new (file+head "Inbox.org" "#+title: Inbox\n")))))
|
||||
;;
|
||||
;; (defun my/org-roam-copy-todo-to-today ()
|
||||
;; (interactive)
|
||||
;; (let ((org-refile-keep t) ;; Set this to nil to delete the original!
|
||||
;; (org-roam-dailies-capture-templates
|
||||
;; '(("t" "tasks" entry "%?"
|
||||
;; :if-new (file+head+olp "%<%Y-%m-%d>.org" "#+title: %<%Y-%m-%d>\n" ("Tasks")))))
|
||||
;; (org-after-refile-insert-hook #'save-buffer)
|
||||
;; today-file
|
||||
;; pos)
|
||||
;; (save-window-excursion
|
||||
;; (org-roam-dailies--capture (current-time) t)
|
||||
;; (setq today-file (buffer-file-name))
|
||||
;; (setq pos (point)))
|
||||
;;
|
||||
;; ;; Only refile if the target file is different than the current file
|
||||
;; (unless (equal (file-truename today-file)
|
||||
;; (file-truename (buffer-file-name)))
|
||||
;; (org-refile nil nil (list "Tasks" today-file nil pos))))))
|
||||
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Org Agenda
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(use-package! org-super-agenda
|
||||
:after org
|
||||
:config
|
||||
(org-super-agenda-mode 1)
|
||||
(my/org-roam-refresh-agenda-list))
|
||||
(setq org-agenda-custom-commands
|
||||
'(("z" "Org mode super agenda"
|
||||
((alltodo "" ((org-agenda-overriding-header "")
|
||||
(org-super-agenda-groups
|
||||
'((:name "Important"
|
||||
:tag "Important"
|
||||
:priority "A"
|
||||
:order 6)
|
||||
(:name "Due Today"
|
||||
:deadline today
|
||||
:order 2)
|
||||
(:name "Due Soon"
|
||||
:deadline future
|
||||
:order 8)
|
||||
(:name "Overdue"
|
||||
:deadline past
|
||||
:order 7)
|
||||
(:name "Projects"
|
||||
:tag "Project"
|
||||
:order 14)
|
||||
(:name "To read"
|
||||
:tag "Read"
|
||||
:order 30)
|
||||
(:name "Waiting"
|
||||
:todo "WAIT"
|
||||
:order 20)
|
||||
(:name "Holding"
|
||||
:todo "HOLD"
|
||||
:order 21)
|
||||
(:name "trivial"
|
||||
:priority<= "C"
|
||||
:tag ("Trivial" "Unimportant")
|
||||
:order 90)
|
||||
(:discard (:tag ("Chore" "Routine" "Daily")))))))))))
|
||||
(after! org
|
||||
;;(setq org-todo-keywords
|
||||
;; '((sequence "TODO(t@/!)" "NEXT(n)" "WAIT(w)" "HOLD(h)" "|" "DONE(d)" "KILL(k)")))
|
||||
(setq! org-log-into-drawer "LOGBOOK")
|
||||
(setq! org-clock-into-drawer "CLOCKING")
|
||||
(setq! org-lowest-priority 68))
|
||||
(use-package! org-fancy-priorities
|
||||
:config
|
||||
(setq org-fancy-priorities-list '("⚡" "⬆" "⬇" "☕")))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Org Graphviz
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(org-babel-do-load-languages
|
||||
'org-babel-load-languages
|
||||
'((dot . t)))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Org Mode extra configuration
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(setq org-odt-preferred-output-format "docx")
|
||||
;;(use-package! ob-translate
|
||||
;; :config
|
||||
;; (setq ob-translate:default-dest "ko")
|
||||
;; (setq google-translate-backend-method 'wget))
|
||||
(setq google-translate-backend-method 'curl)
|
||||
(use-package! org-journal
|
||||
:config
|
||||
(setq org-journal-file-type 'weekly))
|
||||
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Org Caldav
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;;(use-package! org-caldav
|
||||
;; :after org)
|
||||
;;(defun my/caldav-sync-perso ()
|
||||
;; "Sync my local calendar in ~/org/calendar.org with my remote calendar"
|
||||
;; (interactive)
|
||||
;; (let ((org-caldav-inbox "~/org/cal_inbox.org")
|
||||
;; (org-caldav-calendar-id "org")
|
||||
;; (org-caldav-url "https://jaeus.net/webdav")
|
||||
;; (org-caldav-files '("~/org/calendar.org")))
|
||||
;; (call-interactively 'org-caldav-sync)))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Org Roam UI Mode
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(use-package! websocket
|
||||
:after org-roam)
|
||||
|
||||
(use-package! org-roam-ui
|
||||
:after org-roam ;; or :after org
|
||||
;; normally we'd recommend hooking orui after org-roam, but since org-roam does not have
|
||||
;; a hookable mode anymore, you're advised to pick something yourself
|
||||
;; if you don't care about startup time, use
|
||||
;;:hook (after-init . org-roam-ui-mode)
|
||||
:config
|
||||
(setq! org-roam-ui-sync-theme t
|
||||
org-roam-ui-follow t
|
||||
org-roam-ui-update-on-save t
|
||||
org-roam-ui-open-on-start nil))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Org Publish
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(setq org-publish-use-timestamps-flag nil)
|
||||
(setq org-export-with-broken-lilnks t)
|
||||
(setq org-publish-project-alist
|
||||
'(("jaeus.net"
|
||||
:base-directory "~/org/www/"
|
||||
:base-extension "org"
|
||||
:publishing-directory "~/Projects/html/"
|
||||
:recursive t
|
||||
:publishing-function org-html-publish-to-html
|
||||
:headline-levels 4
|
||||
:auto-preamble t)))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - EPUB
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(use-package! nov)
|
||||
(add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Open with external program
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;;(use-package openwith
|
||||
;; :after-call pre-command-hook
|
||||
;; :config
|
||||
;; (setq large-file-warning-threshold nil)
|
||||
;; (openwith-mode t)
|
||||
;; (setq openwith-associations
|
||||
;; (list (list (openwith-make-extension-regexp
|
||||
;; '("mpg" "mpeg" "mp3" "mp4" "m4v"
|
||||
;; "avi" "wmv" "wav" "mov" "flv"
|
||||
;; "ogm" "ogg" "mkv"))
|
||||
;; "mpv"
|
||||
;; '(file))
|
||||
;; (list (openwith-make-extension-regexp
|
||||
;; '("pdf"))
|
||||
;; "zathura"
|
||||
;; '(file)))))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Lang - Latex
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(setq! +latex-viewers '(zathura))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Lang - Verilog
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(setq! verilog-auto-newline nil)
|
||||
(setq! verilog-highlight-translate-off t)
|
||||
(setq! verilog-indent-level 4)
|
||||
(setq! verilog-indent-level-module 0)
|
||||
(setq! verilog-indent-level-behavioral 4)
|
||||
(setq! verilog-indent-level-declaration 0)
|
||||
(setq! verilog-case-indent 4)
|
||||
(setq! verilog-cexp-indent 4)
|
||||
(setq! verilog-indent-lists nil)
|
||||
; --------------------------------------------------------------------------------------------
|
||||
;; - Dired
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(use-package! dired
|
||||
:config
|
||||
(evil-collection-define-key 'normal 'dired-mode-map
|
||||
"h" 'dired-up-directory
|
||||
"l" 'dired-find-file))
|
||||
(use-package! dired-hide-dotfiles
|
||||
:hook (dired-mode . dired-hide-dotfiles-mode)
|
||||
:config
|
||||
(evil-collection-define-key 'normal 'dired-mode-map
|
||||
"H" 'dired-hide-dotfiles-mode))
|
||||
(setq! delete-by-moving-to-trash t
|
||||
trash-directory "~/.local/share/Trash/files/")
|
||||
(map! :leader
|
||||
(:prefix ("d" . "dired")
|
||||
:desc "Open dired" "d" #'dired
|
||||
:desc "Dired jump to current" "j" #'dired-jump)
|
||||
(:after dired
|
||||
(:map dired-mode-map
|
||||
:desc "Peep-dired image previews" "d p" #'peep-dired
|
||||
:desc "Dired view file" "d v" #'dired-view-file)))
|
||||
(evil-define-key 'normal peep-dired-mode-map
|
||||
(kbd "j") 'peep-dired-next-file
|
||||
(kbd "k") 'peep-dired-prev-file)
|
||||
(add-hook 'peep-dired-hook 'evil-normalize-keymaps)
|
||||
; --------------------------------------------------------------------------------------------
|
||||
;; - KeyBindings
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(map! "C-s" 'consult-line)
|
||||
(map! "C-M-l" 'consult-imenu)
|
||||
(map! "C-M-j" 'persp-switch-to-buffer)
|
||||
|
||||
(map! :leader
|
||||
;; file bind
|
||||
:desc "Org Agenda Common"
|
||||
"oac" '(lambda () (interactive) (find-file (expand-file-name "~/org/agenda/agenda.org")))
|
||||
:desc "Org Calendar"
|
||||
"oc" 'cfw:open-org-calendar
|
||||
:desc "dOtfiles"
|
||||
"fo" '(:ignore t)
|
||||
:desc "doom config.el"
|
||||
"foc" '(lambda () (interactive) (find-file (expand-file-name "~/.doom.d/config.el")))
|
||||
:desc "doom package.el"
|
||||
"fop" '(lambda () (interactive) (find-file (expand-file-name "~/.doom.d/packages.el")))
|
||||
:desc "doom init.el"
|
||||
"foi" '(lambda () (interactive) (find-file (expand-file-name "~/.doom.d/init.el")))
|
||||
;; Eshell
|
||||
:desc "eshell"
|
||||
"e" '(:ignore t)
|
||||
:desc "eshell"
|
||||
"e s" 'eshell
|
||||
;; AVY
|
||||
:desc "AVY"
|
||||
"v" '(:ignore t)
|
||||
:desc "Avy goto char"
|
||||
"vc" 'avy-goto-char
|
||||
:desc "Avy goto word"
|
||||
"vw" 'avy-goto-word-0
|
||||
:desc "Avy goto line"
|
||||
"vl" 'avy-goto-line
|
||||
;; Org mode
|
||||
:desc "org roam refresh agenda list"
|
||||
"oar" 'my/org-roam-refresh-agenda-list
|
||||
:desc "org roam ui open"
|
||||
"nru" 'org-roam-ui-open
|
||||
:desc "org roam find tag:project"
|
||||
"nrp" 'my/org-roam-find-project
|
||||
:desc "org roam find with ripgrep (preview)"
|
||||
"nrg" 'my/org-roam-rg-search)
|
||||
200
.doom.d.bak/init.el
Normal file
200
.doom.d.bak/init.el
Normal file
@ -0,0 +1,200 @@
|
||||
;;; init.el -*- lexical-binding: t; -*-
|
||||
|
||||
;; This file controls what Doom modules are enabled and what order they load
|
||||
;; in. Remember to run 'doom sync' after modifying it!
|
||||
|
||||
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
|
||||
;; documentation. There you'll find a link to Doom's Module Index where all
|
||||
;; of our modules are listed, including what flags they support.
|
||||
|
||||
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
|
||||
;; 'C-c c k' for non-vim users) to view its documentation. This works on
|
||||
;; flags as well (those symbols that start with a plus).
|
||||
;;
|
||||
;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
|
||||
;; directory (for easy access to its source code).
|
||||
|
||||
(doom! :input
|
||||
;;bidi ; (tfel ot) thgir etirw uoy gnipleh
|
||||
;;chinese
|
||||
;;japanese
|
||||
;;layout ; auie,ctsrnm is the superior home row
|
||||
|
||||
:completion
|
||||
company ; the ultimate code completion backend
|
||||
;;helm ; the *other* search engine for love and life
|
||||
;;ido ; the other *other* search engine...
|
||||
;;ivy ; a search engine for love and life
|
||||
(vertico +icons) ; the search engine of the future
|
||||
|
||||
:ui
|
||||
;;deft ; notational velocity for Emacs
|
||||
doom ; what makes DOOM look the way it does
|
||||
;;doom-dashboard ; a nifty splash screen for Emacs
|
||||
doom-quit ; DOOM quit-message prompts when you quit Emacs
|
||||
(emoji +unicode) ; 🙂
|
||||
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
|
||||
;;hydra
|
||||
;;indent-guides ; highlighted indent columns
|
||||
;;(ligatures +extras) ; ligatures and symbols to make your code pretty again
|
||||
;;minimap ; show a map of the code on the side
|
||||
modeline ; snazzy, Atom-inspired modeline, plus API
|
||||
;;nav-flash ; blink cursor line after big motions
|
||||
neotree ; a project drawer, like NERDTree for vim
|
||||
ophints ; highlight the region an operation acts on
|
||||
(popup +defaults) ; tame sudden yet inevitable temporary windows
|
||||
;;tabs ; a tab bar for Emacs
|
||||
;;treemacs ; a project drawer, like neotree but cooler
|
||||
;;unicode ; extended unicode support for various languages
|
||||
vc-gutter ; vcs diff in the fringe
|
||||
vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
||||
;;window-select ; visually switch windows
|
||||
workspaces ; tab emulation, persistence & separate workspaces
|
||||
;;zen ; distraction-free coding or writing
|
||||
|
||||
:editor
|
||||
(evil +everywhere); come to the dark side, we have cookies
|
||||
file-templates ; auto-snippets for empty files
|
||||
fold ; (nigh) universal code folding
|
||||
;;(format +onsave) ; automated prettiness
|
||||
;;god ; run Emacs commands without modifier keys
|
||||
;;lispy ; vim for lisp, for people who don't like vim
|
||||
;;multiple-cursors ; editing in many places at once
|
||||
;;objed ; text object editing for the innocent
|
||||
;;parinfer ; turn lisp into python, sort of
|
||||
;;rotate-text ; cycle region at point between text candidates
|
||||
snippets ; my elves. They type so I don't have to
|
||||
;;word-wrap ; soft wrapping with language-aware indent
|
||||
|
||||
:emacs
|
||||
(dired +icons) ; making dired pretty [functional]
|
||||
electric ; smarter, keyword-based electric-indent
|
||||
(ibuffer +icons) ; interactive buffer management
|
||||
undo ; persistent, smarter undo for your inevitable mistakes
|
||||
vc ; version-control and Emacs, sitting in a tree
|
||||
|
||||
:term
|
||||
eshell ; the elisp shell that works everywhere
|
||||
;;shell ; simple shell REPL for Emacs
|
||||
;;term ; basic terminal emulator for Emacs
|
||||
;;vterm ; the best terminal emulation in Emacs
|
||||
|
||||
:checkers
|
||||
syntax ; tasing you for every semicolon you forget
|
||||
(spell +flyspell) ; tasing you for misspelling mispelling
|
||||
;;grammar ; tasing grammar mistake every you make
|
||||
|
||||
:tools
|
||||
;;ansible
|
||||
;;biblio ; Writes a PhD for you (citation needed)
|
||||
(debugger +lsp) ; FIXME stepping through code, to help you add bugs
|
||||
;;direnv
|
||||
;;docker
|
||||
;;editorconfig ; let someone else argue about tabs vs spaces
|
||||
;;ein ; tame Jupyter notebooks with emacs
|
||||
(eval +overlay) ; run code, run (also, repls)
|
||||
;;gist ; interacting with github gists
|
||||
lookup ; navigate your code and its documentation
|
||||
(lsp +peek) ; M-x vscode
|
||||
magit ; a git porcelain for Emacs
|
||||
;;make ; run make tasks from Emacs
|
||||
;;pass ; password manager for nerds
|
||||
pdf ; pdf enhancements
|
||||
;;prodigy ; FIXME managing external services & code builders
|
||||
;;rgb ; creating color strings
|
||||
;;taskrunner ; taskrunner for all your projects
|
||||
;;terraform ; infrastructure as code
|
||||
;;tmux ; an API for interacting with tmux
|
||||
;;upload ; map local to remote projects via ssh/ftp
|
||||
|
||||
:os
|
||||
(:if IS-MAC macos) ; improve compatibility with macOS
|
||||
;;tty ; improve the terminal Emacs experience
|
||||
|
||||
:lang
|
||||
;;agda ; types of types of types of types...
|
||||
;;beancount ; mind the GAAP
|
||||
;;(cc +lsp) ; C > C++ == 1
|
||||
;;clojure ; java with a lisp
|
||||
;;common-lisp ; if you've seen one lisp, you've seen them all
|
||||
;;coq ; proofs-as-programs
|
||||
;;crystal ; ruby at the speed of c
|
||||
;;csharp ; unity, .NET, and mono shenanigans
|
||||
;;data ; config/data formats
|
||||
;;(dart +flutter) ; paint ui and not much else
|
||||
;;dhall
|
||||
;;elixir ; erlang done right
|
||||
;;elm ; care for a cup of TEA?
|
||||
emacs-lisp ; drown in parentheses
|
||||
;;erlang ; an elegant language for a more civilized age
|
||||
;;ess ; emacs speaks statistics
|
||||
;;factor
|
||||
;;faust ; dsp, but you get to keep your soul
|
||||
;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER)
|
||||
;;fsharp ; ML stands for Microsoft's Language
|
||||
;;fstar ; (dependent) types and (monadic) effects and Z3
|
||||
;;gdscript ; the language you waited for
|
||||
;;(go +lsp) ; the hipster dialect
|
||||
;;(graphql +lsp) ; Give queries a REST
|
||||
;;(haskell +lsp) ; a language that's lazier than I am
|
||||
;;hy ; readability of scheme w/ speed of python
|
||||
;;idris ; a language you can depend on
|
||||
json ; At least it ain't XML
|
||||
;;(java +lsp) ; the poster child for carpal tunnel syndrome
|
||||
;;javascript ; all(hope(abandon(ye(who(enter(here))))))
|
||||
;;julia ; a better, faster MATLAB
|
||||
;;kotlin ; a better, slicker Java(Script)
|
||||
(latex +latexmk +fold) ; writing papers in Emacs has never been so fun
|
||||
;;lean ; for folks with too much to prove
|
||||
;;ledger ; be audit you can be
|
||||
;;lua ; one-based indices? one-based indices
|
||||
markdown ; writing docs for people to ignore
|
||||
;;nim ; python + lisp at the speed of c
|
||||
;;nix ; I hereby declare "nix geht mehr!"
|
||||
;;ocaml ; an objective camel
|
||||
(org
|
||||
+dragndrop
|
||||
+roam2
|
||||
+journal
|
||||
+jupyter
|
||||
+pretty
|
||||
+gnuplot
|
||||
+hugo) ; organize your plain life in plain text
|
||||
;;php ; perl's insecure younger brother
|
||||
;;plantuml ; diagrams for confusing people more
|
||||
;;purescript ; javascript, but functional
|
||||
(python +lsp) ; beautiful is better than ugly
|
||||
;;qt ; the 'cutest' gui framework ever
|
||||
;;racket ; a DSL for DSLs
|
||||
;;raku ; the artist formerly known as perl6
|
||||
;;rest ; Emacs as a REST client
|
||||
;;rst ; ReST in peace
|
||||
(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
||||
(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
||||
;;scala ; java, but good
|
||||
;;(scheme +guile) ; a fully conniving family of lisps
|
||||
sh ; she sells {ba,z,fi}sh shells on the C xor
|
||||
;;sml
|
||||
;;solidity ; do you need a blockchain? No.
|
||||
;;swift ; who asked for emoji variables?
|
||||
;;terra ; Earth and Moon in alignment for performance.
|
||||
;;web ; the tubes
|
||||
yaml ; JSON, but readable
|
||||
;;zig ; C, but simpler
|
||||
|
||||
:email
|
||||
;;(mu4e +org +gmail)
|
||||
;;notmuch
|
||||
;;(wanderlust +gmail)
|
||||
|
||||
:app
|
||||
;;calendar
|
||||
;;emms
|
||||
;;everywhere ; *leave* Emacs!? You must be joking
|
||||
;;irc ; how neckbeards socialize
|
||||
(rss +org) ; emacs as an RSS reader
|
||||
;;twitter ; twitter client https://twitter.com/vnought
|
||||
|
||||
:config
|
||||
;;literate
|
||||
(default +bindings +smartparens))
|
||||
68
.doom.d.bak/packages.el
Normal file
68
.doom.d.bak/packages.el
Normal file
@ -0,0 +1,68 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; $DOOMDIR/packages.el
|
||||
|
||||
;; To install a package with Doom you must declare them here and run 'doom sync'
|
||||
;; on the command line, then restart Emacs for the changes to take effect -- or
|
||||
;; use 'M-x doom/reload'.
|
||||
|
||||
|
||||
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
|
||||
;(package! some-package)
|
||||
|
||||
;; To install a package directly from a remote git repo, you must specify a
|
||||
;; `:recipe'. You'll find documentation on what `:recipe' accepts here:
|
||||
;; https://github.com/raxod502/straight.el#the-recipe-format
|
||||
;(package! another-package
|
||||
; :recipe (:host github :repo "username/repo"))
|
||||
|
||||
;; If the package you are trying to install does not contain a PACKAGENAME.el
|
||||
;; file, or is located in a subdirectory of the repo, you'll need to specify
|
||||
;; `:files' in the `:recipe':
|
||||
;(package! this-package
|
||||
; :recipe (:host github :repo "username/repo"
|
||||
; :files ("some-file.el" "src/lisp/*.el")))
|
||||
|
||||
;; If you'd like to disable a package included with Doom, you can do so here
|
||||
;; with the `:disable' property:
|
||||
;(package! builtin-package :disable t)
|
||||
|
||||
;; You can override the recipe of a built in package without having to specify
|
||||
;; all the properties for `:recipe'. These will inherit the rest of its recipe
|
||||
;; from Doom or MELPA/ELPA/Emacsmirror:
|
||||
;(package! builtin-package :recipe (:nonrecursive t))
|
||||
;(package! builtin-package-2 :recipe (:repo "myfork/package"))
|
||||
|
||||
;; Specify a `:branch' to install a package from a particular branch or tag.
|
||||
;; This is required for some packages whose default branch isn't 'master' (which
|
||||
;; our package manager can't deal with; see raxod502/straight.el#279)
|
||||
;(package! builtin-package :recipe (:branch "develop"))
|
||||
|
||||
;; Use `:pin' to specify a particular commit to install.
|
||||
;(package! builtin-package :pin "1a2b3c4d5e")
|
||||
|
||||
|
||||
;; Doom's packages are pinned to a specific commit and updated from release to
|
||||
;; release. The `unpin!' macro allows you to unpin single packages...
|
||||
;(unpin! pinned-package)
|
||||
;; ...or multiple packages
|
||||
;(unpin! pinned-package another-pinned-package)
|
||||
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
|
||||
;(unpin! t)
|
||||
(unpin! org-roam)
|
||||
(package! org-roam-ui)
|
||||
;;(package! ob-translate)
|
||||
(package! google-translate)
|
||||
(package! dired-hide-dotfiles)
|
||||
(package! nov)
|
||||
;;(package! org-caldav)
|
||||
(package! openwith)
|
||||
(package! org-super-agenda)
|
||||
(package! graphviz-dot-mode)
|
||||
(package! vertico-posframe)
|
||||
(package! peep-dired)
|
||||
(package! beacon)
|
||||
(package! calfw)
|
||||
(package! calfw-org)
|
||||
(package! dashboard)
|
||||
(package! page-break-lines)
|
||||
;;(package! eglot)
|
||||
@ -1,15 +1,13 @@
|
||||
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
|
||||
(setq-default tab-width 4)
|
||||
(defvaralias 'c-basic-offset 'tab-width)
|
||||
(setq! indent-tabs-mode t)
|
||||
|
||||
;; Place your private configuration here! Remember, you do not need to run 'doom
|
||||
;; sync' after modifying this file!
|
||||
(setq default-input-method "korean-hangul")
|
||||
(global-set-key (kbd "<Hangul>") 'toggle-input-method)
|
||||
|
||||
|
||||
;; Some functionality uses this to identify you, e.g. GPG configuration, email
|
||||
;; clients, file templates and snippets. It is optional.
|
||||
(setq user-full-name "JaeYoo-Im"
|
||||
user-mail-address "cpu3792@gmail.com")
|
||||
(setq user-full-name "John Doe"
|
||||
user-mail-address "john@doe.com")
|
||||
|
||||
;; Doom exposes five (optional) variables for controlling fonts in Doom:
|
||||
;;
|
||||
@ -31,25 +29,11 @@
|
||||
;; refresh your font settings. If Emacs still can't find your font, it likely
|
||||
;; wasn't installed correctly. Font issues are rarely Doom issues!
|
||||
|
||||
;; | 12345678 | |
|
||||
;; |----------+---|
|
||||
;; | 일이삼사 | |
|
||||
|
||||
(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
|
||||
doom-variable-pitch-font (font-spec :family "Ubuntu" :size 13))
|
||||
(set-fontset-font t 'hangul (font-spec :name "NanumGothic"))
|
||||
;; There are two ways to load a theme. Both assume the theme is installed and
|
||||
;; available. You can either set `doom-theme' or manually load a theme with the
|
||||
;; `load-theme' function. This is the default:
|
||||
(if (display-graphic-p)
|
||||
(setq doom-theme 'doom-palenight)
|
||||
(setq doom-theme 'doom-gruvbox))
|
||||
(unless (display-graphic-p)
|
||||
(xterm-mouse-mode))
|
||||
(beacon-mode 1)
|
||||
(setq doom-theme 'doom-one)
|
||||
|
||||
(global-auto-revert-mode 1)
|
||||
(setq global-auto-revert-non-file-buffers t)
|
||||
;; This determines the style of line numbers in effect. If set to `nil', line
|
||||
;; numbers are disabled. For relative line numbers, set this to `relative'.
|
||||
(setq display-line-numbers-type t)
|
||||
@ -91,475 +75,57 @@
|
||||
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
|
||||
;; they are implemented.
|
||||
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; -Virtico
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;;(if (display-graphic-p)
|
||||
;; (vertico-posframe-mode 1))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; -Transparency
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(defvar gvar/frame-transparency '(85 . 85))
|
||||
;; Eshell
|
||||
(when (eq system-type 'windows-nt)
|
||||
(setq explicit-shell-file-name "powershell.exe")
|
||||
(setq explicit-powershell.exe-args '()))
|
||||
(defun ju/get-prompt-path ()
|
||||
(let* ((current-path (eshell/pwd))
|
||||
(git-output (shell-command-to-string "git rev-parse --show-toplevel"))
|
||||
(has-path (not (string-match "^fatal" git-output))))
|
||||
(if (not has-path)
|
||||
(abbreviate-file-name current-path)
|
||||
(string-remove-prefix (file-name-directory git-output) current-path))))
|
||||
|
||||
(defun toggle-transparency ()
|
||||
(interactive)
|
||||
(let ((alpha (frame-parameter nil 'alpha)))
|
||||
(set-frame-parameter
|
||||
nil 'alpha
|
||||
(if (eql (cond ((numberp alpha) alpha)
|
||||
((numberp (cdr alpha)) (cdr alpha))
|
||||
;; Also handle undocumented (<active> <inactive>) form.
|
||||
((numberp (cadr alpha)) (cadr alpha)))
|
||||
100)
|
||||
gvar/frame-transparency '(100 . 100)))))
|
||||
(defun ju/eshell-prompt ()
|
||||
(let ((current-branch (magit-get-current-branch)))
|
||||
(concat
|
||||
"\n"
|
||||
(propertize (system-name) 'face `(:foreground "#62aeed"))
|
||||
(propertize " ॐ " 'face `(:foreground "white"))
|
||||
(propertize (ju/get-prompt-path) 'face `(:foreground "#82cfd3"))
|
||||
(when current-branch
|
||||
(concat
|
||||
(propertize " • " 'face `(:foreground "white"))
|
||||
(propertize (concat " " current-branch) 'face `(:foreground "#c475f0"))))
|
||||
(propertize " • " 'face `(:foreground "white"))
|
||||
(propertize (format-time-string "%I:%M:%S %p") 'face `(:foreground "#5a5b7f"))
|
||||
(if (= (user-uid) 0)
|
||||
(propertize "\n#" 'face `(:foreground "red2"))
|
||||
(propertize "\nλ" 'face `(:foreground "#aece4a")))
|
||||
(propertize " " 'face `(:foreground "white")))))
|
||||
|
||||
(global-set-key (kbd "C-c t") 'toggle-transparency)
|
||||
(defun my/org-roam-rg-search ()
|
||||
"Search org-roam directory using consult-ripgrep. With live-preview."
|
||||
(interactive)
|
||||
(let ((consult-ripgrep-command "rg --null --ignore-case --type org --line-buffered --color=always --max-columns=500 --no-heading --line-number . -e ARG OPTS"))
|
||||
(consult-ripgrep org-roam-directory)))
|
||||
(defun ju/configure-eshell ()
|
||||
;; Save command history when commands are entered
|
||||
(add-hook 'eshell-pre-command-hook 'eshell-save-some-history)
|
||||
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Language Server Client
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(after! dap-mode
|
||||
(setq dap-python-debugger 'debugpy))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Org Paste Clipboard image for windows, in linux(use org-screenshot-take)
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(defun my-org-paste-image ()
|
||||
"Paste an image into a time stamped unique-named file in the
|
||||
same directory as the org-buffer and insert a link to this file."
|
||||
(interactive)
|
||||
(let* ((target-file
|
||||
(concat
|
||||
(make-temp-name
|
||||
(concat "~/org/images/"
|
||||
(f-filename buffer-file-name)
|
||||
"_"
|
||||
(format-time-string "%Y%m%d_%H%M%S_"))) ".png"))
|
||||
(wsl-path
|
||||
(concat (as-windows-path(file-name-directory target-file))
|
||||
"/"
|
||||
(file-name-nondirectory target-file)))
|
||||
(ps-script
|
||||
(concat "(Get-Clipboard -Format image).Save('" wsl-path "')")))
|
||||
;; Truncate buffer for performance
|
||||
(add-to-list 'eshell-output-filter-functions 'eshell-truncate-buffer)
|
||||
|
||||
(powershell ps-script)
|
||||
;; Bind some useful keys for evil-mode
|
||||
(evil-define-key '(normal insert visual) eshell-mode-map (kbd "C-r") 'counsel-esh-history)
|
||||
(evil-define-key '(normal insert visual) eshell-mode-map (kbd "<home>") 'eshell-bol)
|
||||
(evil-normalize-keymaps)
|
||||
|
||||
(if (file-exists-p target-file)
|
||||
(progn (insert (concat "[[" target-file "]]"))
|
||||
(org-display-inline-images))
|
||||
(user-error
|
||||
"Error pasting the image, make sure you have an image in the clipboard!"))
|
||||
))
|
||||
(defun my-org-remove-link-and-trash-linked-file ()
|
||||
"Remove `org-mode' link at point and trash linked file."
|
||||
(interactive)
|
||||
(let* ((link (org-element-context))
|
||||
(path (org-element-property :path link)))
|
||||
(move-file-to-trash path)
|
||||
(delete-region (org-element-property :begin link)
|
||||
(org-element-property :end link))))
|
||||
|
||||
(defun as-windows-path (unix-path)
|
||||
"Takes a unix path and returns a matching WSL path"
|
||||
;; substring removes the trailing \n
|
||||
(substring
|
||||
(shell-command-to-string
|
||||
(concat "wslpath -w " unix-path)) 0 -1))
|
||||
|
||||
(defun powershell (script)
|
||||
"executes the given script within a powershell and returns its return value"
|
||||
(call-process "powershell.exe" nil nil nil
|
||||
"-Command" (concat "& {" script "}")))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Dashboard
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(use-package dashboard
|
||||
:init ;; tweak dashboard config before loading it
|
||||
(setq dashboard-set-heading-icons t)
|
||||
(setq dashboard-set-file-icons t)
|
||||
(setq dashboard-startup-banner 'logo) ;; use standard emacs logo as banner
|
||||
;;(setq dashboard-startup-banner "~/.config/doom/doom-emacs-dash.png") ;; use custom image as banner
|
||||
(setq dashboard-center-content t) ;; set to 't' for centered content
|
||||
(setq dashboard-items '((recents . 10)
|
||||
(bookmarks . 5)
|
||||
(projects . 10)))
|
||||
(setq dashboard-set-footer t)
|
||||
(setq dashboard-page-separator "\n\f\n")
|
||||
(setq dashboard-set-navigator t)
|
||||
;; Format: "(icon title help action face prefix suffix)"
|
||||
(setq dashboard-navigator-buttons
|
||||
`(;; line1
|
||||
((,(all-the-icons-octicon "mark-github" :height 1.1 :v-adjust 0.0)
|
||||
"Github"
|
||||
"Browse my Github"
|
||||
(lambda (&rest _) (browse-url "https://github.com/JaeUs3792/")))
|
||||
(,(all-the-icons-octicon "home" :height 1.1 :v-adjust 0.0)
|
||||
"Homepage"
|
||||
"Browse my Homepage"
|
||||
(lambda (&rest _) (browse-url "https://jaeus.net")))
|
||||
(,(all-the-icons-octicon "zap" :height 1.1 :v-adjust 0.0)
|
||||
"Update"
|
||||
"Doom upgrade"
|
||||
(lambda (&rest _) (doom/upgrade)) warning))))
|
||||
:config
|
||||
(dashboard-setup-startup-hook)
|
||||
(dashboard-modify-heading-icons '((recents . "file-text")
|
||||
(bookmarks . "book"))))
|
||||
|
||||
(setq doom-fallback-buffer-name "*dashboard*")
|
||||
(after! dashboard
|
||||
(page-break-lines-mode))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Rainbow delimiter mode for programming.
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(add-hook 'verilog-mode-hook #'rainbow-delimiters-mode)
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; Avy multi-buffer
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(setq! avy-all-windows t)
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Calendar
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(use-package! calfw)
|
||||
(use-package! calfw-org)
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Neotree
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; comment ~/.emacs.d/modules/ui/doom/config.el (add-hook 'doom-load-theme-hook #'doom-themes-neotree-config)
|
||||
(setq! neo-theme (if (display-graphic-p) 'icons 'arrow))
|
||||
(setq! neo-smart-open t)
|
||||
;;(doom-themes-neotree-config)
|
||||
;;(setq! doom-themes-neotree-file-icons t)
|
||||
;;;; --------------------------------------------------------------------------------------------
|
||||
;; - Org Mode
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(with-eval-after-load 'org
|
||||
;; This is needed as of Org 9.2
|
||||
(require 'org-tempo)
|
||||
|
||||
(add-to-list 'org-structure-template-alist '("sh" . "src shell"))
|
||||
(add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp"))
|
||||
(add-to-list 'org-structure-template-alist '("hs" . "src haskell"))
|
||||
(add-to-list 'org-structure-template-alist '("cc" . "src c"))
|
||||
(add-to-list 'org-structure-template-alist '("cp" . "src c++"))
|
||||
(add-to-list 'org-structure-template-alist '("rs" . "src rust"))
|
||||
(add-to-list 'org-structure-template-alist '("py" . "src jupyter-python"))
|
||||
(add-to-list 'org-structure-template-alist '("oc" . "src octave"))
|
||||
(add-to-list 'org-structure-template-alist '("vl" . "src verilog"))
|
||||
(add-to-list 'org-structure-template-alist '("vh" . "src vhdl")))
|
||||
|
||||
(after! org
|
||||
(setq! org-hide-emphasis-markers t)
|
||||
(setq org-superstar-item-bullet-alist
|
||||
'((?+ . ?➤)
|
||||
(?* . ?–)
|
||||
(?- . ?•)))
|
||||
(custom-set-faces!
|
||||
'(org-level-1 :height 1.7 :weight ultra-bold :foreground "#81a2be") ;; :foreground "#81a2be"
|
||||
'(org-level-2 :height 1.6 :weight extra-bold :foreground "#b294bb") ;; :foreground "#b294bb"
|
||||
'(org-level-3 :height 1.5 :weight bold :foreground "#b5bd68") ;; :foreground "#b5bd68"
|
||||
'(org-level-4 :height 1.4 :weight semi-bold :foreground "#e6c547") ;; :foreground "#e6c547"
|
||||
'(org-level-5 :height 1.3 :weight normal :foreground "#cc6666") ;; :foreground "#cc6666"
|
||||
'(org-level-6 :height 1.2 :weight normal :foreground "#70c0ba") ;; :foreground "#70c0ba"
|
||||
'(org-level-7 :height 1.1 :weight normal :foreground "#b77ee0") ;; :foreground "#b77ee0"
|
||||
'(org-level-8 :height 1.0 :weight normal :foreground "#9ec400")) ;; :foreground "#9ec400"
|
||||
(custom-set-faces!
|
||||
'(org-document-title :height 2.0)))
|
||||
(setq org-use-sub-superscripts '{})
|
||||
(setq org-export-with-sub-superscripts '{})
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Org Roam
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(defun my/org-roam-list-notes-by-tag (tag-name)
|
||||
(mapcar #'org-roam-node-file
|
||||
(seq-filter
|
||||
(my/org-roam-filter-by-tag tag-name)
|
||||
(org-roam-node-list))))
|
||||
|
||||
(defun my/org-roam-refresh-agenda-list ()
|
||||
(interactive)
|
||||
(setq org-agenda-files (my/org-roam-list-notes-by-tag "Project"))
|
||||
(add-to-list 'org-agenda-files "~/org/agenda/agenda.org"))
|
||||
(defun my/org-roam-filter-by-tag (tag-name)
|
||||
(lambda (node)
|
||||
(member tag-name (org-roam-node-tags node))))
|
||||
|
||||
;;(with-eval-after-load 'org-roam
|
||||
;; (defun my/org-roam-project-finalize-hook ()
|
||||
;; "Adds the captured project file to `org-agenda-files' if the
|
||||
;;capture was not aborted."
|
||||
;; ;; Remove the hook since it was added temporarily
|
||||
;; (remove-hook 'org-capture-after-finalize-hook #'my/org-roam-project-finalize-hook)
|
||||
;;
|
||||
;; ;; Add project file to the agenda list if the capture was confirmed
|
||||
;; (unless org-note-abort
|
||||
;; (with-current-buffer (org-capture-get :buffer)
|
||||
;; (add-to-list 'org-agenda-files (buffer-file-name)))))
|
||||
;; (defun my/org-roam-find-project ()
|
||||
;; (interactive)
|
||||
;; ;; Add the project file to the agenda after capture is finished
|
||||
;; (add-hook 'org-capture-after-finalize-hook #'my/org-roam-project-finalize-hook)
|
||||
;;
|
||||
;; ;; Select a project file to open, creating it if necessary
|
||||
;; (org-roam-node-find
|
||||
;; nil
|
||||
;; nil
|
||||
;; (my/org-roam-filter-by-tag "Project")
|
||||
;; :templates
|
||||
;; '(("p" "project" plain "* Goals\n\n%?\n\n* Tasks\n\n** TODO Add initial tasks\n\n* Dates\n\n"
|
||||
;; :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n#+category: ${title}\n#+filetags: Project")
|
||||
;; :unnarrowed t))))
|
||||
;; (defun my/org-roam-capture-inbox ()
|
||||
;; (interactive)
|
||||
;; (org-roam-capture- :node (org-roam-node-create)
|
||||
;; :templates '(("i" "inbox" plain "* %?"
|
||||
;; :if-new (file+head "Inbox.org" "#+title: Inbox\n")))))
|
||||
;;
|
||||
;; (defun my/org-roam-copy-todo-to-today ()
|
||||
;; (interactive)
|
||||
;; (let ((org-refile-keep t) ;; Set this to nil to delete the original!
|
||||
;; (org-roam-dailies-capture-templates
|
||||
;; '(("t" "tasks" entry "%?"
|
||||
;; :if-new (file+head+olp "%<%Y-%m-%d>.org" "#+title: %<%Y-%m-%d>\n" ("Tasks")))))
|
||||
;; (org-after-refile-insert-hook #'save-buffer)
|
||||
;; today-file
|
||||
;; pos)
|
||||
;; (save-window-excursion
|
||||
;; (org-roam-dailies--capture (current-time) t)
|
||||
;; (setq today-file (buffer-file-name))
|
||||
;; (setq pos (point)))
|
||||
;;
|
||||
;; ;; Only refile if the target file is different than the current file
|
||||
;; (unless (equal (file-truename today-file)
|
||||
;; (file-truename (buffer-file-name)))
|
||||
;; (org-refile nil nil (list "Tasks" today-file nil pos))))))
|
||||
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Org Agenda
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(use-package! org-super-agenda
|
||||
:after org
|
||||
:config
|
||||
(org-super-agenda-mode 1)
|
||||
(my/org-roam-refresh-agenda-list))
|
||||
(setq org-agenda-custom-commands
|
||||
'(("z" "Org mode super agenda"
|
||||
((alltodo "" ((org-agenda-overriding-header "")
|
||||
(org-super-agenda-groups
|
||||
'((:name "Important"
|
||||
:tag "Important"
|
||||
:priority "A"
|
||||
:order 6)
|
||||
(:name "Due Today"
|
||||
:deadline today
|
||||
:order 2)
|
||||
(:name "Due Soon"
|
||||
:deadline future
|
||||
:order 8)
|
||||
(:name "Overdue"
|
||||
:deadline past
|
||||
:order 7)
|
||||
(:name "Projects"
|
||||
:tag "Project"
|
||||
:order 14)
|
||||
(:name "To read"
|
||||
:tag "Read"
|
||||
:order 30)
|
||||
(:name "Waiting"
|
||||
:todo "WAIT"
|
||||
:order 20)
|
||||
(:name "Holding"
|
||||
:todo "HOLD"
|
||||
:order 21)
|
||||
(:name "trivial"
|
||||
:priority<= "C"
|
||||
:tag ("Trivial" "Unimportant")
|
||||
:order 90)
|
||||
(:discard (:tag ("Chore" "Routine" "Daily")))))))))))
|
||||
(after! org
|
||||
;;(setq org-todo-keywords
|
||||
;; '((sequence "TODO(t@/!)" "NEXT(n)" "WAIT(w)" "HOLD(h)" "|" "DONE(d)" "KILL(k)")))
|
||||
(setq! org-log-into-drawer "LOGBOOK")
|
||||
(setq! org-clock-into-drawer "CLOCKING")
|
||||
(setq! org-lowest-priority 68))
|
||||
(use-package! org-fancy-priorities
|
||||
:config
|
||||
(setq org-fancy-priorities-list '("⚡" "⬆" "⬇" "☕")))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Org Graphviz
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(org-babel-do-load-languages
|
||||
'org-babel-load-languages
|
||||
'((dot . t)))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Org Mode extra configuration
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(setq org-odt-preferred-output-format "docx")
|
||||
;;(use-package! ob-translate
|
||||
;; :config
|
||||
;; (setq ob-translate:default-dest "ko")
|
||||
;; (setq google-translate-backend-method 'wget))
|
||||
(setq google-translate-backend-method 'curl)
|
||||
(use-package! org-journal
|
||||
:config
|
||||
(setq org-journal-file-type 'weekly))
|
||||
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Org Caldav
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;;(use-package! org-caldav
|
||||
;; :after org)
|
||||
;;(defun my/caldav-sync-perso ()
|
||||
;; "Sync my local calendar in ~/org/calendar.org with my remote calendar"
|
||||
;; (interactive)
|
||||
;; (let ((org-caldav-inbox "~/org/cal_inbox.org")
|
||||
;; (org-caldav-calendar-id "org")
|
||||
;; (org-caldav-url "https://jaeus.net/webdav")
|
||||
;; (org-caldav-files '("~/org/calendar.org")))
|
||||
;; (call-interactively 'org-caldav-sync)))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Org Roam UI Mode
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(use-package! websocket
|
||||
:after org-roam)
|
||||
|
||||
(use-package! org-roam-ui
|
||||
:after org-roam ;; or :after org
|
||||
;; normally we'd recommend hooking orui after org-roam, but since org-roam does not have
|
||||
;; a hookable mode anymore, you're advised to pick something yourself
|
||||
;; if you don't care about startup time, use
|
||||
;;:hook (after-init . org-roam-ui-mode)
|
||||
:config
|
||||
(setq! org-roam-ui-sync-theme t
|
||||
org-roam-ui-follow t
|
||||
org-roam-ui-update-on-save t
|
||||
org-roam-ui-open-on-start nil))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Org Publish
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(setq org-publish-use-timestamps-flag nil)
|
||||
(setq org-export-with-broken-lilnks t)
|
||||
(setq org-publish-project-alist
|
||||
'(("jaeus.net"
|
||||
:base-directory "~/org/www/"
|
||||
:base-extension "org"
|
||||
:publishing-directory "~/Projects/html/"
|
||||
:recursive t
|
||||
:publishing-function org-html-publish-to-html
|
||||
:headline-levels 4
|
||||
:auto-preamble t)))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - EPUB
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(use-package! nov)
|
||||
(add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Open with external program
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;;(use-package openwith
|
||||
;; :after-call pre-command-hook
|
||||
;; :config
|
||||
;; (setq large-file-warning-threshold nil)
|
||||
;; (openwith-mode t)
|
||||
;; (setq openwith-associations
|
||||
;; (list (list (openwith-make-extension-regexp
|
||||
;; '("mpg" "mpeg" "mp3" "mp4" "m4v"
|
||||
;; "avi" "wmv" "wav" "mov" "flv"
|
||||
;; "ogm" "ogg" "mkv"))
|
||||
;; "mpv"
|
||||
;; '(file))
|
||||
;; (list (openwith-make-extension-regexp
|
||||
;; '("pdf"))
|
||||
;; "zathura"
|
||||
;; '(file)))))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Lang - Latex
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(setq! +latex-viewers '(zathura))
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
;; - Lang - Verilog
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(setq! verilog-auto-newline nil)
|
||||
(setq! verilog-highlight-translate-off t)
|
||||
(setq! verilog-indent-level 4)
|
||||
(setq! verilog-indent-level-module 0)
|
||||
(setq! verilog-indent-level-behavioral 4)
|
||||
(setq! verilog-indent-level-declaration 0)
|
||||
(setq! verilog-case-indent 4)
|
||||
(setq! verilog-cexp-indent 4)
|
||||
(setq! verilog-indent-lists nil)
|
||||
; --------------------------------------------------------------------------------------------
|
||||
;; - Dired
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(use-package! dired
|
||||
:config
|
||||
(evil-collection-define-key 'normal 'dired-mode-map
|
||||
"h" 'dired-up-directory
|
||||
"l" 'dired-find-file))
|
||||
(use-package! dired-hide-dotfiles
|
||||
:hook (dired-mode . dired-hide-dotfiles-mode)
|
||||
:config
|
||||
(evil-collection-define-key 'normal 'dired-mode-map
|
||||
"H" 'dired-hide-dotfiles-mode))
|
||||
(setq! delete-by-moving-to-trash t
|
||||
trash-directory "~/.local/share/Trash/files/")
|
||||
(map! :leader
|
||||
(:prefix ("d" . "dired")
|
||||
:desc "Open dired" "d" #'dired
|
||||
:desc "Dired jump to current" "j" #'dired-jump)
|
||||
(:after dired
|
||||
(:map dired-mode-map
|
||||
:desc "Peep-dired image previews" "d p" #'peep-dired
|
||||
:desc "Dired view file" "d v" #'dired-view-file)))
|
||||
(evil-define-key 'normal peep-dired-mode-map
|
||||
(kbd "j") 'peep-dired-next-file
|
||||
(kbd "k") 'peep-dired-prev-file)
|
||||
(add-hook 'peep-dired-hook 'evil-normalize-keymaps)
|
||||
; --------------------------------------------------------------------------------------------
|
||||
;; - KeyBindings
|
||||
;; --------------------------------------------------------------------------------------------
|
||||
(map! "C-s" 'consult-line)
|
||||
(map! "C-M-l" 'consult-imenu)
|
||||
(map! "C-M-j" 'persp-switch-to-buffer)
|
||||
|
||||
(map! :leader
|
||||
;; file bind
|
||||
:desc "Org Agenda Common"
|
||||
"oac" '(lambda () (interactive) (find-file (expand-file-name "~/org/agenda/agenda.org")))
|
||||
:desc "Org Calendar"
|
||||
"oc" 'cfw:open-org-calendar
|
||||
:desc "dOtfiles"
|
||||
"fo" '(:ignore t)
|
||||
:desc "doom config.el"
|
||||
"foc" '(lambda () (interactive) (find-file (expand-file-name "~/.doom.d/config.el")))
|
||||
:desc "doom package.el"
|
||||
"fop" '(lambda () (interactive) (find-file (expand-file-name "~/.doom.d/packages.el")))
|
||||
:desc "doom init.el"
|
||||
"foi" '(lambda () (interactive) (find-file (expand-file-name "~/.doom.d/init.el")))
|
||||
;; Eshell
|
||||
:desc "eshell"
|
||||
"e" '(:ignore t)
|
||||
:desc "eshell"
|
||||
"e s" 'eshell
|
||||
;; AVY
|
||||
:desc "AVY"
|
||||
"v" '(:ignore t)
|
||||
:desc "Avy goto char"
|
||||
"vc" 'avy-goto-char
|
||||
:desc "Avy goto word"
|
||||
"vw" 'avy-goto-word-0
|
||||
:desc "Avy goto line"
|
||||
"vl" 'avy-goto-line
|
||||
;; Org mode
|
||||
:desc "org roam refresh agenda list"
|
||||
"oar" 'my/org-roam-refresh-agenda-list
|
||||
:desc "org roam ui open"
|
||||
"nru" 'org-roam-ui-open
|
||||
:desc "org roam find tag:project"
|
||||
"nrp" 'my/org-roam-find-project
|
||||
:desc "org roam find with ripgrep (preview)"
|
||||
"nrg" 'my/org-roam-rg-search)
|
||||
(setq eshell-prompt-function 'ju/eshell-prompt
|
||||
eshell-prompt-regexp "^λ "
|
||||
eshell-history-size 10000
|
||||
eshell-buffer-maximum-lines 10000
|
||||
eshell-hist-ignoredups t
|
||||
eshell-scroll-to-bottom-on-input t))
|
||||
(add-hook 'eshell-first-time-mode-hook #'ju/configure-eshell)
|
||||
(setq eshell-prompt-function
|
||||
(lambda ()
|
||||
(concat (abbreviate-file-name (eshell/pwd))
|
||||
(if (= (user-uid) 0) " # " " λ ")))
|
||||
eshell-prompt-regexp "^[^#λ\n]* [#λ] ")
|
||||
|
||||
@ -25,28 +25,28 @@
|
||||
;;helm ; the *other* search engine for love and life
|
||||
;;ido ; the other *other* search engine...
|
||||
;;ivy ; a search engine for love and life
|
||||
(vertico +icons) ; the search engine of the future
|
||||
vertico ; the search engine of the future
|
||||
|
||||
:ui
|
||||
;;deft ; notational velocity for Emacs
|
||||
doom ; what makes DOOM look the way it does
|
||||
;;doom-dashboard ; a nifty splash screen for Emacs
|
||||
doom-dashboard ; a nifty splash screen for Emacs
|
||||
doom-quit ; DOOM quit-message prompts when you quit Emacs
|
||||
(emoji +unicode) ; 🙂
|
||||
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
|
||||
;;hydra
|
||||
hydra
|
||||
;;indent-guides ; highlighted indent columns
|
||||
;;(ligatures +extras) ; ligatures and symbols to make your code pretty again
|
||||
;;ligatures ; ligatures and symbols to make your code pretty again
|
||||
;;minimap ; show a map of the code on the side
|
||||
modeline ; snazzy, Atom-inspired modeline, plus API
|
||||
;;nav-flash ; blink cursor line after big motions
|
||||
neotree ; a project drawer, like NERDTree for vim
|
||||
;;neotree ; a project drawer, like NERDTree for vim
|
||||
ophints ; highlight the region an operation acts on
|
||||
(popup +defaults) ; tame sudden yet inevitable temporary windows
|
||||
;;tabs ; a tab bar for Emacs
|
||||
;;treemacs ; a project drawer, like neotree but cooler
|
||||
;;unicode ; extended unicode support for various languages
|
||||
vc-gutter ; vcs diff in the fringe
|
||||
unicode ; extended unicode support for various languages
|
||||
(vc-gutter +pretty) ; vcs diff in the fringe
|
||||
vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
||||
;;window-select ; visually switch windows
|
||||
workspaces ; tab emulation, persistence & separate workspaces
|
||||
@ -67,14 +67,14 @@
|
||||
;;word-wrap ; soft wrapping with language-aware indent
|
||||
|
||||
:emacs
|
||||
(dired +icons) ; making dired pretty [functional]
|
||||
(dired +icons) ; making dired pretty [functional]
|
||||
electric ; smarter, keyword-based electric-indent
|
||||
(ibuffer +icons) ; interactive buffer management
|
||||
(ibuffer +icons) ; interactive buffer management
|
||||
undo ; persistent, smarter undo for your inevitable mistakes
|
||||
vc ; version-control and Emacs, sitting in a tree
|
||||
|
||||
:term
|
||||
eshell ; the elisp shell that works everywhere
|
||||
;;eshell ; the elisp shell that works everywhere
|
||||
;;shell ; simple shell REPL for Emacs
|
||||
;;term ; basic terminal emulator for Emacs
|
||||
;;vterm ; the best terminal emulation in Emacs
|
||||
@ -87,7 +87,7 @@
|
||||
:tools
|
||||
;;ansible
|
||||
;;biblio ; Writes a PhD for you (citation needed)
|
||||
(debugger +lsp) ; FIXME stepping through code, to help you add bugs
|
||||
;;debugger ; FIXME stepping through code, to help you add bugs
|
||||
;;direnv
|
||||
;;docker
|
||||
;;editorconfig ; let someone else argue about tabs vs spaces
|
||||
@ -95,7 +95,7 @@
|
||||
(eval +overlay) ; run code, run (also, repls)
|
||||
;;gist ; interacting with github gists
|
||||
lookup ; navigate your code and its documentation
|
||||
(lsp +peek) ; M-x vscode
|
||||
(lsp +eglot) ; M-x vscode
|
||||
magit ; a git porcelain for Emacs
|
||||
;;make ; run make tasks from Emacs
|
||||
;;pass ; password manager for nerds
|
||||
@ -105,6 +105,7 @@
|
||||
;;taskrunner ; taskrunner for all your projects
|
||||
;;terraform ; infrastructure as code
|
||||
;;tmux ; an API for interacting with tmux
|
||||
tree-sitter ; syntax and parsing, sitting in a tree...
|
||||
;;upload ; map local to remote projects via ssh/ftp
|
||||
|
||||
:os
|
||||
@ -139,38 +140,39 @@
|
||||
;;(haskell +lsp) ; a language that's lazier than I am
|
||||
;;hy ; readability of scheme w/ speed of python
|
||||
;;idris ; a language you can depend on
|
||||
json ; At least it ain't XML
|
||||
;;json ; At least it ain't XML
|
||||
;;(java +lsp) ; the poster child for carpal tunnel syndrome
|
||||
;;javascript ; all(hope(abandon(ye(who(enter(here))))))
|
||||
;;julia ; a better, faster MATLAB
|
||||
;;kotlin ; a better, slicker Java(Script)
|
||||
(latex +latexmk +fold) ; writing papers in Emacs has never been so fun
|
||||
(latex +latexmk +fold) ; writing papers in Emacs has never been so fun
|
||||
;;lean ; for folks with too much to prove
|
||||
;;ledger ; be audit you can be
|
||||
;;lua ; one-based indices? one-based indices
|
||||
markdown ; writing docs for people to ignore
|
||||
;;nim ; python + lisp at the speed of c
|
||||
;;nix ; I hereby declare "nix geht mehr!"
|
||||
nix ; I hereby declare "nix geht mehr!"
|
||||
;;ocaml ; an objective camel
|
||||
(org
|
||||
+dragndrop
|
||||
+roam2
|
||||
+gnuplot
|
||||
+hugo
|
||||
+journal
|
||||
+jupyter
|
||||
+pretty
|
||||
+gnuplot
|
||||
+hugo) ; organize your plain life in plain text
|
||||
+roam2)
|
||||
; organize your plain life in plain text
|
||||
;;php ; perl's insecure younger brother
|
||||
;;plantuml ; diagrams for confusing people more
|
||||
;;purescript ; javascript, but functional
|
||||
(python +lsp) ; beautiful is better than ugly
|
||||
(python +lsp) ; beautiful is better than ugly
|
||||
;;qt ; the 'cutest' gui framework ever
|
||||
;;racket ; a DSL for DSLs
|
||||
;;raku ; the artist formerly known as perl6
|
||||
;;rest ; Emacs as a REST client
|
||||
;;rst ; ReST in peace
|
||||
(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
||||
(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
||||
(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
||||
;;scala ; java, but good
|
||||
;;(scheme +guile) ; a fully conniving family of lisps
|
||||
sh ; she sells {ba,z,fi}sh shells on the C xor
|
||||
@ -179,7 +181,7 @@
|
||||
;;swift ; who asked for emoji variables?
|
||||
;;terra ; Earth and Moon in alignment for performance.
|
||||
;;web ; the tubes
|
||||
yaml ; JSON, but readable
|
||||
;;yaml ; JSON, but readable
|
||||
;;zig ; C, but simpler
|
||||
|
||||
:email
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
|
||||
;; To install a package directly from a remote git repo, you must specify a
|
||||
;; `:recipe'. You'll find documentation on what `:recipe' accepts here:
|
||||
;; https://github.com/raxod502/straight.el#the-recipe-format
|
||||
;; https://github.com/radian-software/straight.el#the-recipe-format
|
||||
;(package! another-package
|
||||
; :recipe (:host github :repo "username/repo"))
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
|
||||
;; Specify a `:branch' to install a package from a particular branch or tag.
|
||||
;; This is required for some packages whose default branch isn't 'master' (which
|
||||
;; our package manager can't deal with; see raxod502/straight.el#279)
|
||||
;; our package manager can't deal with; see radian-software/straight.el#279)
|
||||
;(package! builtin-package :recipe (:branch "develop"))
|
||||
|
||||
;; Use `:pin' to specify a particular commit to install.
|
||||
@ -48,21 +48,3 @@
|
||||
;(unpin! pinned-package another-pinned-package)
|
||||
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
|
||||
;(unpin! t)
|
||||
(unpin! org-roam)
|
||||
(package! org-roam-ui)
|
||||
;;(package! ob-translate)
|
||||
(package! google-translate)
|
||||
(package! dired-hide-dotfiles)
|
||||
(package! nov)
|
||||
;;(package! org-caldav)
|
||||
(package! openwith)
|
||||
(package! org-super-agenda)
|
||||
(package! graphviz-dot-mode)
|
||||
(package! vertico-posframe)
|
||||
(package! peep-dired)
|
||||
(package! beacon)
|
||||
(package! calfw)
|
||||
(package! calfw-org)
|
||||
(package! dashboard)
|
||||
(package! page-break-lines)
|
||||
;;(package! eglot)
|
||||
|
||||
Reference in New Issue
Block a user