Skip to content

Instantly share code, notes, and snippets.

@bx-sa1
Created September 9, 2023 11:54
Show Gist options
  • Save bx-sa1/dcc87595ac56a7b9679f165fa2766896 to your computer and use it in GitHub Desktop.
Save bx-sa1/dcc87595ac56a7b9679f165fa2766896 to your computer and use it in GitHub Desktop.
init.el
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
(unless (package-installed-p 'use-package)
(package-refresh-contents)
(package-install 'use-package)
(eval-when-compile (require 'use-package)))
;; variables
(defvar baba/org-capture-title "")
;; functions
(defun baba/find-config ()
"Edit init.el"
(interactive)
(find-file "~/.config/emacs/init.el"))
(defun baba/org-capture-get-target (folder)
(let ((title (read-string "Title ")))
(setq baba/org-capture-title title)
(let ((path (concat org-directory folder title ".org")))
(set-buffer (org-capture-target-buffer path))
(goto-char (point-min)))))
;; settings
(defalias 'yes-or-no-p 'y-or-n-p)
(setq use-package-always-ensure t)
(setq backup-directory-alist `(("." . "~/.local/state/emacs/backups")))
(tool-bar-mode -1)
(scroll-bar-mode -1)
(load-theme 'misterioso t)
(setq custom-file (make-temp-file "emacs-custom"))
(global-auto-revert-mode)
(setq-default tab-width 4)
;; keybinds
(global-set-key (kbd "<f12>") 'baba/find-config)
;; packages
(use-package org
:ensure t
:hook ((org-mode . visual-line-mode)
(org-mode . variable-pitch-mode))
:config
(setq org-directory (file-truename "~/Documents/org/"))
(setq org-startup-with-inline-images t)
(setq org-id-link-to-org-use-id 'create-if-interactive-and-no-custom-id)
(setq org-agenda-files '("notes.org" "quick_notes.org"))
(setq org-hide-emphasis-markers t)
(require 'oc-basic)
(setq org-latex-pdf-process
(let
((cmd (concat "pdflatex -shell-escape -interaction nonstopmode"
" --synctex=1"
" -output-directory %o %f")))
(list cmd
"cd %o; if test -r %b.idx; then makeindex %b.idx; fi"
"cd %o; bibtex %b"
cmd
cmd)))
(setq org-capture-templates
'(("q" "Quick note" entry (file "quick_notes.org")
"* %?\n")
("j" "Anki (Japanese)" entry (file+headline "notes.org" "Japanese")
"* %x\n:PROPERTIES:\n:ANKI_DECK: Language\n:ANKI_NOTE_TYPE: Basic (and reversed card)\n:END:\n** Front\n%?\n** Back\n%x\n")
("p" "Anki (Portuguese)" entry (file+headline "notes.org" "Portuguese")
"* %x\n:PROPERTIES:\n:ANKI_DECK: Language\n:ANKI_NOTE_TYPE: Basic (and reversed card)\n:END:\n** Front\n%?\n** Back\n%x\n")))
:bind (("C-c c" . org-capture)
("C-c l" . org-store-link)
("C-c a" . org-agenda)))
(use-package org-roam
:after org
:ensure t
:config
(setq org-roam-directory (concat org-directory "roam/"))
(org-roam-db-autosync-mode)
:bind (("C-c r i" . org-roam-node-insert)
("C-c r f" . org-roam-node-find)
("C-c r c" . org-roam-capture)))
(use-package anki-editor
:ensure t
:config
(setq anki-editor-create-decks t ;; Allow anki-editor to create a new deck if it doesn't exist
anki-editor-org-tags-as-anki-tags t)
:bind (("<f9>" . anki-editor-push-notes)
("C-c RET" . anki-editor-insert-note)))
(use-package org-bullets
:init
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))
(use-package dashboard
:ensure t
:config
(dashboard-setup-startup-hook)
(setq initial-buffer-choice (lambda () (get-buffer "*dashboard*"))))
(use-package counsel
:config
(ivy-mode)
(setq ivy-use-virtual-buffers t)
:bind (("M-x" . counsel-M-x)
("C-x C-f" . counsel-find-file)
("M-y" . counsel-yank-pop)
("<f1> f" . counsel-describe-function)
("<f1> v" . counsel-describe-variable)
("<f1> l" . counsel-find-library)
("<f2> i" . counsel-info-lookup-symbol)
("<f2> u" . counsel-unicode-char)
("<f2> j" . counsel-set-variable)
("C-x b" . ivy-switch-buffer)
("C-c C-r" . ivy-resume)))
(use-package org-alert
:ensure t
:config
(setq alert-default-style 'notifications)
(org-alert-enable))
(use-package org-download
:ensure t)
(use-package go-mode
:ensure t
:hook ((go-mode . display-line-numbers-mode)))
z
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment