177 lines
5.1 KiB
Org Mode
177 lines
5.1 KiB
Org Mode
* evil
|
|
#+begin_src emacs-lisp
|
|
(use-package evil
|
|
:demand t
|
|
:config
|
|
(progn
|
|
(evil-mode +1)))
|
|
|
|
(use-package evil-leader
|
|
:demand t
|
|
:config
|
|
(global-evil-leader-mode))
|
|
|
|
(use-package evil-org
|
|
:demand t
|
|
:after (org evil-leader)
|
|
:config
|
|
(progn
|
|
(add-hook 'org-mode-hook 'evil-org-mode)))
|
|
#+end_src
|
|
|
|
This makes evil-mode play nice with org-fc
|
|
#+begin_src emacs-lisp
|
|
(use-package org-fc
|
|
:demand t
|
|
:config
|
|
(progn
|
|
(evil-define-minor-mode-key '(normal insert emacs) 'org-fc-review-flip-mode
|
|
(kbd "RET") 'org-fc-review-flip
|
|
(kbd "n") 'org-fc-review-flip
|
|
(kbd "s") 'org-fc-review-suspend-card
|
|
(kbd "q") 'org-fc-review-quit)
|
|
|
|
(evil-define-minor-mode-key '(normal insert emacs) 'org-fc-review-rate-mode
|
|
(kbd "a") 'org-fc-review-rate-again
|
|
(kbd "h") 'org-fc-review-rate-hard
|
|
(kbd "g") 'org-fc-review-rate-good
|
|
(kbd "e") 'org-fc-review-rate-easy
|
|
(kbd "s") 'org-fc-review-suspend-card
|
|
(kbd "q") 'org-fc-review-quit)))
|
|
#+end_src
|
|
|
|
* Appearance
|
|
#+begin_src emacs-lisp
|
|
(setq imalison:dark-theme 'dracula)
|
|
#+end_src
|
|
|
|
* org-mode
|
|
#+begin_src emacs-lisp
|
|
(setq imalison:org-whoami "Kat Huang")
|
|
(setq org-directory "~/org/") ; This is the directory where you want to save your Org files. Change as necessary.
|
|
(add-to-list 'org-capture-templates
|
|
'("j" "Journal" entry (file+datetree "~/org/daily-journal.org")
|
|
"* %?\nEntered on %U\n %i\n %a"))
|
|
(setq org-capture-templates
|
|
(append org-capture-templates
|
|
'(("r" "Weekly Review" entry
|
|
(file+datetree "~/org/weekly_reviews.org")
|
|
(file "~/org/weekly_review_template.org")))))
|
|
#+end_src
|
|
** Journal
|
|
#+begin_src emacs-lisp
|
|
(setq imalison:journal-template-filepath
|
|
(imalison:join-paths org-directory "templates" "daily-journal-template.org"))
|
|
#+end_src
|
|
** Insert a link to a task selected from agenda
|
|
#+begin_src emacs-lisp
|
|
(defun imalison:insert-link-to-agenda ()
|
|
(interactive)
|
|
(let ((all-tasks '()))
|
|
;; Step 1: Get the list of all org-agenda-files
|
|
(dolist (file (org-agenda-files))
|
|
;; Step 2: For each file, search for all TODO headings
|
|
(with-current-buffer (find-file-noselect file)
|
|
(org-map-entries
|
|
(lambda ()
|
|
(let ((heading (org-get-heading t t t t))
|
|
(marker (point-marker)))
|
|
(add-to-list 'all-tasks (cons heading marker)))))))
|
|
;; Step 3: Prompt the user to select a task from the list of all TODO headings
|
|
(let* ((selected-task (completing-read "Select a task: " all-tasks nil t))
|
|
(selected-marker (cdr (assoc selected-task all-tasks)))
|
|
(file (marker-buffer selected-marker))
|
|
(pos (marker-position selected-marker)))
|
|
;; Step 4: Insert a link to the selected task
|
|
(insert (format "[[file:%s::%d][%s]]" (buffer-file-name file) pos selected-task)))))
|
|
#+end_src
|
|
|
|
** org-babel
|
|
*** javascript
|
|
#+begin_src emacs-lisp
|
|
(use-package ob-js
|
|
:ensure nil
|
|
:after org
|
|
:config
|
|
(progn
|
|
(add-to-list 'org-babel-load-languages '(js . t))
|
|
(org-babel-do-load-languages 'org-babel-load-languages org-babel-load-languages)
|
|
(add-to-list 'org-babel-tangle-lang-exts '("js" . "js"))))
|
|
#+end_src
|
|
** Show daily scheduled tasks at a few points in the day
|
|
#+begin_src emacs-lisp
|
|
(use-package org-wild-notifier
|
|
:after org
|
|
:custom
|
|
((org-wild-notifier-day-wide-alert-times '("10am" "5pm" "10pm"))))
|
|
#+end_src
|
|
* kat forgets to save her files
|
|
#+begin_src emacs-lisp
|
|
(auto-save-visited-mode +1)
|
|
#+end_src
|
|
* Display line numbers in programming modes
|
|
#+begin_src emacs-lisp
|
|
(defun imalison:enable-display-line-numbers-mode ()
|
|
(display-line-numbers-mode +1))
|
|
(add-hook 'prog-mode-hook 'imalison:enable-display-line-numbers-mode)
|
|
#+end_src
|
|
|
|
* Disable autoflake
|
|
#+begin_src emacs-lisp
|
|
(use-package apheleia
|
|
:demand t
|
|
:config
|
|
(progn
|
|
(setf (alist-get 'python-mode apheleia-mode-alist)
|
|
'(isort black))
|
|
(setf (alist-get 'python-ts-mode apheleia-mode-alist)
|
|
(alist-get 'python-mode apheleia-mode-alist))))
|
|
#+end_src
|
|
|
|
* Packages
|
|
#+begin_src emacs-lisp
|
|
(use-package org-drill)
|
|
(require 'package)
|
|
(add-to-list 'package-archives
|
|
'("melpa" . "https://melpa.org/packages/") t)
|
|
(package-initialize)
|
|
|
|
#+end_src
|
|
|
|
* Disable wild notifactions
|
|
#+begin_src emacs-lisp
|
|
(setq org-wild-notifier-day-wide-alert-times nil)
|
|
#+end_src
|
|
|
|
* Swift
|
|
#+begin_src emacs-lisp
|
|
(require 'package)
|
|
(add-to-list 'package-archives
|
|
'("melpa" . "https://melpa.org/packages/") t)
|
|
(package-initialize)
|
|
|
|
(unless (package-installed-p 'swift-mode)
|
|
(package-refresh-contents)
|
|
(package-install 'swift-mode))
|
|
|
|
(unless (package-installed-p 'lsp-mode)
|
|
(package-refresh-contents)
|
|
(package-install 'lsp-mode))
|
|
|
|
;; Swift Mode
|
|
(require 'swift-mode)
|
|
(add-to-list 'auto-mode-alist '("\\.swift\\'" . swift-mode))
|
|
|
|
;; LSP Mode
|
|
(require 'lsp-mode)
|
|
(add-hook 'swift-mode-hook #'lsp)
|
|
|
|
;; Set the path to SourceKit-LSP if it's not in your PATH
|
|
(setq lsp-sourcekit-executable "/path/to/sourcekit-lsp")
|
|
|
|
;; Optional: Set the path to your Swift toolchain if necessary
|
|
(setq lsp-sourcekit-executable-args '("-toolchain" "/path/to/swift-toolchain"))
|
|
|
|
#+end_src
|
|
|