summaryrefslogtreecommitdiff
path: root/.emacs.d
diff options
context:
space:
mode:
Diffstat (limited to '.emacs.d')
-rw-r--r--.emacs.d/emacs.org459
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
-