diff options
Diffstat (limited to '.emacs.d')
-rw-r--r-- | .emacs.d/emacs.org | 459 |
1 files changed, 0 insertions, 459 deletions
diff --git a/.emacs.d/emacs.org b/.emacs.d/emacs.org deleted file mode 100644 index 8f9132f..0000000 --- a/.emacs.d/emacs.org +++ /dev/null @@ -1,459 +0,0 @@ -#+title My emacs configuration -#+PROPERTY: header-args:emacs-lisp :tangle ./init.el -* Package System Setup -#+begin_src emacs-lisp -(require 'package) - -(setq package-archives '(("melpa" . "https://melpa.org/packages/") - ("org" . "https://orgmode.org/elpa/") - ("elpa" . "https://elpa.gnu.org/packages/"))) - -(package-initialize) -(unless package-archive-contents -(package-refresh-contents)) - -(unless (package-installed-p 'use-package) -(package-install 'use-package)) - -(require 'use-package) -(setq use-package-always-ensure t) -#+end_src -* UI Configuration -** Basics Configuration -#+begin_src emacs-lisp - (setq inhibit-startup-message nil) - - (defvar apollo/default-font-size 130) - - (set-face-attribute 'default nil :font "JetBrains Mono" :height 130) - - (scroll-bar-mode -1) - (tool-bar-mode -1) - (tooltip-mode -1) - (set-fringe-mode 10) - (menu-bar-mode -1) - (blink-cursor-mode -1) - (menu-bar--visual-line-mode-enable) - ;Visible bell - (setq visible-bell t) - - - - (column-number-mode) - (global-display-line-numbers-mode t) - (menu-bar--display-line-numbers-mode-relative) - ;;Disable line numbers for some modes - (dolist (mode '(pdf-view-mode-hook - org-mode-hook - term-mode-hook - shell-mode-hook - eshell-mode-hook)) - (add-hook mode (lambda () (display-line-numbers-mode 0)))) - -#+end_src - -** Font configuration -I use *JetBrains Mono*, *Arial* and *Cantarell* for this configuration, which will need to be installed in your system for this configuration to work -#+begin_src emacs-lisp - (set-face-attribute 'default nil - :font "JetBrains Mono" - :height apollo/default-font-size) - (set-face-attribute 'fixed-pitch nil - :font "Arial" - :height 260) - - (set-face-attribute 'variable-pitch nil - :font "Cantarell" - :height 295 - :weight 'regular) -#+end_src -** Color theme -#+begin_src emacs-lisp -(use-package doom-themes - :init (load-theme 'doom-dracula t)) -#+end_src -** Modeline -#+begin_src emacs-lisp -(use-package all-the-icons - :ensure t) - - -(use-package doom-modeline - :ensure t - :init (doom-modeline-mode 1) - :custom ((doom-modeline-height 35))) -#+end_src -** Which Key -#+begin_src emacs-lisp -(use-package which-key - :init (which-key-mode) - :diminish which-key-mode - :config - (setq which-key-idle-delay 0.5) - ) -#+end_src -** Ivy and counsel -#+begin_src emacs-lisp - (use-package ivy - :diminish - :bind (("C-s" . swiper) - :map ivy-minibuffer-map - ("TAB" . ivy-alt-done) - ("C-l" . ivy-alt-done) - ("C-j" . ivy-next-line) - ("C-k" . ivy-previous-line) - :map ivy-switch-buffer-map - ("C-k" . ivy-previous-line) - ("C-l" . ivy-done) - ("C-d" . ivy-switch-buffer-kill) - :map ivy-reverse-i-search-map - ("C-k" . ivy-previous-line) - ("C-d" . ivy-reverse-i-search-kill)) - :config - (ivy-mode 1)) - - (use-package ivy-rich - :init - (ivy-rich-mode 1)) - - (use-package counsel - :bind (("C-M-j" . 'counsel-switch-buffer) - :map minibuffer-local-map - ("C-r" . 'counsel-minibuffer-history) - ("C-'" . 'counsel-find-file)) - :config - (counsel-mode 1)) -#+end_src -** Helpful Help Commands -#+begin_src emacs-lisp -(use-package helpful - :custom - (counsel-describe-function-function #'helpful-callable) - (counsel-describe-variable-function #'helpful-variable) - :bind - ([remap describe-function] . counsel-describe-function) - ([remap describe-command] . helpful-command) - ([remap describe-variable] . counsel-describe-variable) - ([remap describe-key] . helpful-key)) -#+end_src -** Cursor color -+ I'm using smart-cursor-color-mode - #+begin_src emacs-lisp -(use-package smart-cursor-color - :config - (smart-cursor-color-mode +1)) - #+end_src -* Keybinding configuration -** The Essentials -I use [[https://evil.readthedocs.io/en/latest/index.html][evil-mode]] for a vim-like experience, with *general.el* and *evil-collection* for better integration -#+begin_src emacs-lisp - ;; Make ESC quit prompts - (global-set-key (kbd "<escape>") 'keyboard-escape-quit) - (use-package general - :config - (general-create-definer apollo/leader-keys - :keymaps '(normal insert visual emacs) - :prefix "SPC" - :global-prefix "C-SPC") - - (apollo/leader-keys - "t" '(:ignore t :which-key "toggles") - "tt" '(counsel-load-theme :which-key "choose theme"))) - - - (use-package evil - :init - (setq evil-want-integration t) - (setq evil-want-keybinding nil) - (setq evil-want-C-u-scroll t) - (setq evil-want-C-i-jump nil) - ;;:hook (evil-mode . apollo/evil-hook) - :config - (evil-mode 1) - (define-key evil-insert-state-map (kbd "C-f") 'evil-normal-state) - - (evil-global-set-key 'motion "j" 'evil-next-visual-line) - (evil-global-set-key 'motion "k" 'evil-previous-visual-line) - - (evil-set-initial-state 'messages-buffer-mode 'normal) - (evil-set-initial-state 'dashboard-mode 'normal) - (evil-define-key 'normal dired-mode-map - (kbd "h") 'dired-up-directory - (kbd "l") 'dired-find-file - (kbd "m") 'dired-mark - (kbd "R") 'dired-do-rename - (kbd "D") 'dired-do-delete) - ) - - (use-package evil-collection - :after evil - :config - (evil-collection-init)) - ;;Ibuffer - (global-set-key (kbd "C-x C-b") 'ibuffer) - ;;Counsel - (global-set-key (kbd "M-;") 'counsel-M-x) - (global-set-key (kbd "C-;") 'counsel-find-file) -#+end_src -** apollo/leader-keys -*** Magit -#+begin_src emacs-lisp -(apollo/leader-keys - "g" '(:ignore t :which-key "Git") - "gs" '(magit-status :which-key "status")) -#+end_src -*** Counsel -#+begin_src emacs-lisp - (apollo/leader-keys - "f" '(counsel-find-file :which-key "Find File")) -#+end_src -* Org mode -** Basic configuration -#+begin_src emacs-lisp -(defun apollo/org-mode-setup () - (setq evil-auto-indent nil) - (apollo/org-theme-dracula)) - -(use-package org - :hook (org-mode . apollo/org-mode-setup) - :config - (setq org-directory "~/org/" - org-agenda-files '("~/org/agenda.org" - "~/org/med.org") - org-default-notes-file (expand-file-name "notes.org" org-directory) - org-ellipsis " ▼ " - org-log-done 'time - org-hide-emphasis-markers nil ;change to t to hide emphasis markers - org-table-convert-region-max-lines 20000 - org-todo-keywords ; This overwrites the default Doom org-todo-keywords - '((sequence - "TODO(t)" ; A task that is ready to be tackled - "BLOG(b)" ; Blog writing assignments - "GYM(g)" ; Things to accomplish at the gym - "WAIT(w)" ; Something is holding up this task - "|" ; The pipe necessary to separate "active" states and "inactive" states - "DONE(d)" ; Task has been completed - "CANCELLED(c)" ))) - (setq org-agenda-start-log-mode t) - (setq org-log-done 'time) - (setq org-log-into-drawer t) -) -#+end_src -*** Org bullets -+ Recently I've been trying out org-superstar as a replacement for org-bullets, but I kept the configuration as a comment for anyone wanting to test it out -#+begin_src emacs-lisp -;; Use either org-bullets or org-superstar - ;; (use-package org-bullets - ;; :after org - ;; :hook (org-mode . org-bullets-mode) - ;; :custom - ;; (org-bullets-bullet-list '("●" "○" "●" "○" "●" "●" ))) - (use-package org-superstar - :after org - :hook (org-mode . org-superstar-mode) - :config - (setq - org-superstar-headline-bullets-list '("◉" "●" "○" "●" "○" "●" "◆") - org-superstar-itembullet-alist '((?+ . ?➤) (?- . ?✦))) ; changes +/- symbols in item lists - ) -#+end_src -*** Org Themes -**** Dark-one -#+begin_src emacs-lisp -(defun apollo/org-theme-darkone () - "My custom org theme for doom themes" - (interactive) - (dolist - (face - '((org-level-1 1.70 "#51afef" ultra-bold) - (org-level-2 1.55 "#7FBCD2" extra-bold) - (org-level-3 1.40 "#da8548" bold) - (org-level-4 1.20 "#da8548" semi-bold) - (org-level-5 1.20 "#5699af" normal) - (org-level-6 1.20 "#a9a1e1" normal) - (org-level-7 1.10 "#46d9ff" normal) - (org-level-8 1.00 "#ff6c6b" normal))) - (set-face-attribute (nth 0 face) nil - :font "Jetbrains Mono" - :weight (nth 3 face) - :height (nth 1 face) - :foreground (nth 2 face))) - (set-face-attribute 'org-table nil - :font "Jetbrains Mono" - :weight 'normal - :height 1.0 - :foreground "#A66CFF")) -#+end_src -**** Dracula -#+begin_src emacs-lisp -(defun apollo/org-theme-dracula () - "Enable Dracula theme for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#8be9fd" ultra-bold) - (org-level-2 1.6 "#bd93f9" extra-bold) - (org-level-3 1.5 "#50fa7b" bold) - (org-level-4 1.4 "#ff79c6" semi-bold) - (org-level-5 1.3 "#9aedfe" normal) - (org-level-6 1.2 "#caa9fa" normal) - (org-level-7 1.1 "#5af78e" normal) - (org-level-8 1.0 "#ff92d0" normal))) - (set-face-attribute (nth 0 face) nil - :font "JetBrains Mono" - :weight (nth 3 face) - :height (nth 1 face) - :foreground (nth 2 face))) - (set-face-attribute 'org-table nil - :font "JetBrains Mono" - :weight 'normal - :height 1.0 - :foreground "#bfafdf")) -#+end_src -**** Center text function -#+begin_src emacs-lisp - (defun apollo/org-mode-visual () - (interactive) - (setq visual-fill-column-width 100 - visual-fill-column-center-text t) - (visual-fill-column-mode 1)) - (defun apollo/org-mode-visual-undo () - (interactive) - (setq visual-fill-column-width 2000 - visual-fill-column-center-text nil) - (visual-fill-column-mode 1)) - - - (use-package visual-fill-column) -#+end_src -** Babel Languages -#+begin_src emacs-lisp - (org-babel-do-load-languages - 'org-babel-load-languages - '((emacs-lisp . t) - (python . t))) -#+end_src -** Babel templates -#+begin_src emacs-lisp - (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 '("py" . "src python")) -#+end_src -** Auto-tangle configuration -#+begin_src emacs-lisp -;; Automatically tangle our Emacs.org config file when we save it -(defun apollo/org-babel-tangle-config () - (when (string-equal (buffer-file-name) - (expand-file-name "~/.emacs.d/emacs.org")) - ;; Dynamic scoping to the rescue - (let ((org-confirm-babel-evaluate nil)) - (org-babel-tangle)))) - -(add-hook 'org-mode-hook (lambda () (add-hook 'after-save-hook #'apollo/org-babel-tangle-config))) -#+end_src -Add some text -* Development -** Languages -*** IDE Features | lsp-mode -**** lsp-mode -#+begin_src emacs-lisp -;;instal flyckeck -(use-package flyckeck) -;;setup lsp-mode - (defun apollo/lsp-mode-setup () - (setq lsp-headerline-breadcrumb-segments '(path-up-to-project file symbols)) - (lsp-headerline-breadcrumb-mode)) - - (use-package lsp-mode - :commands (lsp lsp-deferred) - :hook (lsp-mode . apollo/lsp-mode-setup) - :init - (setq lsp-keymap-prefix "C-c l") ;; Or 'C-l', 's-l' - :config - (lsp-enable-which-key-integration t) - ) -#+end_src -**** lsp-ui -#+begin_src emacs-lisp -(use-package lsp-ui - :hook (lsp-mode . lsp-ui-mode) - :custom - (lsp-ui-doc-position 'bottom)) -#+end_src -*** Debugging with dap -#+begin_src emacs-lisp -(use-package dap-mode - ;; Uncomment the config below if you want all UI panes to be hidden by default! - ;; :custom - ;; (lsp-enable-dap-auto-configure nil) - ;; :config - ;; (dap-ui-mode 1) - - :config - ;; Set up Node debugging - (require 'dap-node) - (dap-node-setup) ;; Automatically installs Node debug adapter if needed - - ;; Bind `C-c l d` to `dap-hydra` for easy access - (general-define-key - :keymaps 'lsp-mode-map - :prefix lsp-keymap-prefix - "d" '(dap-hydra t :wk "debugger"))) -#+end_src -*** Javascript -+ For javascript, automatic installation guide [[https://emacs-lsp.github.io/lsp-mode/page/lsp-typescript/][here]] -#+begin_src emacs-lisp -#+end_src -*** TypeScript -#+begin_src emacs-lisp - (use-package typescript-mode - :mode "\\.ts\\'" - :hook (typescript-mode .lsp-deferred) - :config - (setq typescript-indent-level 2)) -#+end_src -*** Python -#+begin_src emacs-lisp - (use-package python-mode - :ensure t - :hook (python-mode . lsp-deferred) - :custom - ;; NOTE: Set these if Python 3 is called "python3" on your system! - ;; (python-shell-interpreter "python3") - ;; (dap-python-executable "python3") - (dap-python-debugger 'debugpy) - :config - (require 'dap-python)) - - ;;Pyenv -(use-package pyvenv - :config - (pyvenv-mode 1)) -;;set PATH of pyls -(setq lsp-pyls-server-command "/home/apollo/.local/bin/pylsp") -#+end_src -*** Company mode -#+begin_src emacs-lisp -(use-package company - :after lsp-mode - :hook (lsp-mode . company-mode) - :bind (:map company-active-map - ("<tab>" . company-complete-selection)) - (:map lsp-mode-map - ("<tab>" . company-indent-or-complete-common)) - :custom - (company-minimum-prefix-length 1) - (company-idle-delay 0.0)) - -(use-package company-box - :hook (company-mode . company-box-mode)) -#+end_src -** Magit -The best Git interface - #+begin_src emacs-lisp -(use-package magit - :custom - (magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)) - #+end_src - |