From 2abf7d23eb53f14cb0ea361c1fbcfacac642e6ab Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Sun, 12 Apr 2020 00:31:20 +0100 Subject: [PATCH 01/37] Initial Commit --- README.org | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ config.org | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ init.el | 37 +++++++++++++++++++++++++++ 3 files changed, 187 insertions(+) create mode 100644 README.org create mode 100644 config.org create mode 100644 init.el diff --git a/README.org b/README.org new file mode 100644 index 0000000..9536da3 --- /dev/null +++ b/README.org @@ -0,0 +1,75 @@ +#+TITLE: Bloxie's Emacs Configuration +#+CREATOR: Bloxiebird + +* Introduction +Welcome to my Emacs configuration! + + +* Config +** Appearance +*** Remove Tool Bar +#+BEGIN_SRC emacs-lisp + (tool-bar-mode -1) +#+END_SRC +*** Remove Menu Bar +#+BEGIN_SRC emacs-lisp + (menu-bar-mode -1) +#+END_SRC +*** Remove Scroll Bar +#+BEGIN_SRC emacs-lisp + (scroll-bar-mode -1) +#+END_SRC +** Evil Mode +#+BEGIN_SRC emacs-lisp + (use-package evil + :ensure t + :init + (evil-mode 1)) +#+END_SRC +** Org Mode +*** Org Bullets +#+BEGIN_SRC emacs-lisp + (use-package org-bullets + :ensure t + :config + (add-hook 'org-mode-hook (lambda () (org-bullets-mode)))) +#+END_SRC +*** Enable Indent Mode +#+BEGIN_SRC emacs-lisp + (add-hook 'org-mode-hook 'org-indent-mode) +#+END_SRC +*** Enable Beamer Support +#+BEGIN_SRC emacs-lisp + (add-hook 'org-mode-hook 'org-beamer-mode) +#+END_SRC +** Auto Completion +*** Ivy +#+BEGIN_SRC emacs-lisp + (use-package ivy + :ensure t + :init + (ivy-mode 1)) +#+END_SRC +*** Company +#+BEGIN_SRC emacs-lisp + (use-package company + :ensure t + :init + (global-company-mode 1)) +#+END_SRC +*** Which Key +#+BEGIN_SRC emacs-lisp + (use-package which-key + :ensure t + :init + (which-key-mode)) +#+END_SRC +** Spell Correction +*** Flyspell Correct Ivy +#+BEGIN_SRC emacs-lisp + (use-package flyspell-correct-ivy + :ensure t + :bind ("C-M-;" . flyspell-correct-wrapper) + :init + (setq flyspell-correct-interface #'flyspell-correct-ivy)) +#+END_SRC diff --git a/config.org b/config.org new file mode 100644 index 0000000..9536da3 --- /dev/null +++ b/config.org @@ -0,0 +1,75 @@ +#+TITLE: Bloxie's Emacs Configuration +#+CREATOR: Bloxiebird + +* Introduction +Welcome to my Emacs configuration! + + +* Config +** Appearance +*** Remove Tool Bar +#+BEGIN_SRC emacs-lisp + (tool-bar-mode -1) +#+END_SRC +*** Remove Menu Bar +#+BEGIN_SRC emacs-lisp + (menu-bar-mode -1) +#+END_SRC +*** Remove Scroll Bar +#+BEGIN_SRC emacs-lisp + (scroll-bar-mode -1) +#+END_SRC +** Evil Mode +#+BEGIN_SRC emacs-lisp + (use-package evil + :ensure t + :init + (evil-mode 1)) +#+END_SRC +** Org Mode +*** Org Bullets +#+BEGIN_SRC emacs-lisp + (use-package org-bullets + :ensure t + :config + (add-hook 'org-mode-hook (lambda () (org-bullets-mode)))) +#+END_SRC +*** Enable Indent Mode +#+BEGIN_SRC emacs-lisp + (add-hook 'org-mode-hook 'org-indent-mode) +#+END_SRC +*** Enable Beamer Support +#+BEGIN_SRC emacs-lisp + (add-hook 'org-mode-hook 'org-beamer-mode) +#+END_SRC +** Auto Completion +*** Ivy +#+BEGIN_SRC emacs-lisp + (use-package ivy + :ensure t + :init + (ivy-mode 1)) +#+END_SRC +*** Company +#+BEGIN_SRC emacs-lisp + (use-package company + :ensure t + :init + (global-company-mode 1)) +#+END_SRC +*** Which Key +#+BEGIN_SRC emacs-lisp + (use-package which-key + :ensure t + :init + (which-key-mode)) +#+END_SRC +** Spell Correction +*** Flyspell Correct Ivy +#+BEGIN_SRC emacs-lisp + (use-package flyspell-correct-ivy + :ensure t + :bind ("C-M-;" . flyspell-correct-wrapper) + :init + (setq flyspell-correct-interface #'flyspell-correct-ivy)) +#+END_SRC diff --git a/init.el b/init.el new file mode 100644 index 0000000..edf56a1 --- /dev/null +++ b/init.el @@ -0,0 +1,37 @@ +;; Added by Package.el. This must come before configurations of +;; installed packages. Don't delete this line. If you don't want it, +;; just comment it out by adding a semicolon to the start of the line. +;; You may delete these explanatory comments. +(require 'package) +(setq package-enable-at-startup nil) +(add-to-list 'package-archives + '("melpa" . "https://melpa.org/packages/")) +(package-initialize) + +;; Packages + +;; Use-Package + +(unless (package-installed-p 'use-package) + (package-refresh-contents) + (package-install 'use-package)) + +;; Read the Org Configuration +(when (file-readable-p "~/.emacs.d/config.org") + (org-babel-load-file (expand-file-name "~/.emacs.d/config.org"))) + +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(custom-enabled-themes (quote (wombat))) + '(package-selected-packages + (quote + (org-bullets company flyspell-correct-ivy evil ivy which-key use-package)))) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) From 38efd6b7c6b095a2fd5f7ce6b97bfafbf4cffe5c Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Sun, 12 Apr 2020 00:57:33 +0100 Subject: [PATCH 02/37] Telephone Line --- config.org | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/config.org b/config.org index 9536da3..eb44aec 100644 --- a/config.org +++ b/config.org @@ -19,6 +19,14 @@ Welcome to my Emacs configuration! #+BEGIN_SRC emacs-lisp (scroll-bar-mode -1) #+END_SRC +*** Telephone Line +Install the Telephone Line : +#+BEGIN_SRC emacs-lisp + (use-package telephone-line + :ensure t + :init + (telephone-line-mode 1)) +#+END_SRC ** Evil Mode #+BEGIN_SRC emacs-lisp (use-package evil From f8478aa2cb0516bc92c1046203caa72eeb0b2ced Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Sun, 12 Apr 2020 01:01:38 +0100 Subject: [PATCH 03/37] Readme.org --- README.org | 76 +----------------------------------------------------- 1 file changed, 1 insertion(+), 75 deletions(-) mode change 100644 => 120000 README.org diff --git a/README.org b/README.org deleted file mode 100644 index 9536da3..0000000 --- a/README.org +++ /dev/null @@ -1,75 +0,0 @@ -#+TITLE: Bloxie's Emacs Configuration -#+CREATOR: Bloxiebird - -* Introduction -Welcome to my Emacs configuration! - - -* Config -** Appearance -*** Remove Tool Bar -#+BEGIN_SRC emacs-lisp - (tool-bar-mode -1) -#+END_SRC -*** Remove Menu Bar -#+BEGIN_SRC emacs-lisp - (menu-bar-mode -1) -#+END_SRC -*** Remove Scroll Bar -#+BEGIN_SRC emacs-lisp - (scroll-bar-mode -1) -#+END_SRC -** Evil Mode -#+BEGIN_SRC emacs-lisp - (use-package evil - :ensure t - :init - (evil-mode 1)) -#+END_SRC -** Org Mode -*** Org Bullets -#+BEGIN_SRC emacs-lisp - (use-package org-bullets - :ensure t - :config - (add-hook 'org-mode-hook (lambda () (org-bullets-mode)))) -#+END_SRC -*** Enable Indent Mode -#+BEGIN_SRC emacs-lisp - (add-hook 'org-mode-hook 'org-indent-mode) -#+END_SRC -*** Enable Beamer Support -#+BEGIN_SRC emacs-lisp - (add-hook 'org-mode-hook 'org-beamer-mode) -#+END_SRC -** Auto Completion -*** Ivy -#+BEGIN_SRC emacs-lisp - (use-package ivy - :ensure t - :init - (ivy-mode 1)) -#+END_SRC -*** Company -#+BEGIN_SRC emacs-lisp - (use-package company - :ensure t - :init - (global-company-mode 1)) -#+END_SRC -*** Which Key -#+BEGIN_SRC emacs-lisp - (use-package which-key - :ensure t - :init - (which-key-mode)) -#+END_SRC -** Spell Correction -*** Flyspell Correct Ivy -#+BEGIN_SRC emacs-lisp - (use-package flyspell-correct-ivy - :ensure t - :bind ("C-M-;" . flyspell-correct-wrapper) - :init - (setq flyspell-correct-interface #'flyspell-correct-ivy)) -#+END_SRC diff --git a/README.org b/README.org new file mode 120000 index 0000000..f13833e --- /dev/null +++ b/README.org @@ -0,0 +1 @@ +config.org \ No newline at end of file From aa57d6cad87fe71e24eddf546cbc5671223953b2 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Sun, 12 Apr 2020 05:30:20 +0100 Subject: [PATCH 04/37] Disable EXWM. And small fixes --- config.org | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 115 insertions(+), 1 deletion(-) diff --git a/config.org b/config.org index eb44aec..0b93944 100644 --- a/config.org +++ b/config.org @@ -1,4 +1,4 @@ -#+TITLE: Bloxie's Emacs Configuration ++TITLE: Bloxie's Emacs Configuration #+CREATOR: Bloxiebird * Introduction @@ -19,6 +19,11 @@ Welcome to my Emacs configuration! #+BEGIN_SRC emacs-lisp (scroll-bar-mode -1) #+END_SRC +*** All The Icons +#+BEGIN_SRC emacs-lisp + (use-package all-the-icons + :ensure t) +#+END_SRC *** Telephone Line Install the Telephone Line : #+BEGIN_SRC emacs-lisp @@ -27,6 +32,107 @@ Install the Telephone Line : :init (telephone-line-mode 1)) #+END_SRC +*** Emacs Dashboard +Install the Emacs Dashboard : +#+BEGIN_SRC emacs-lisp + (use-package dashboard + :ensure t + :config + (dashboard-setup-startup-hook)) + + (setq initial-buffer-choice (lambda () (get-buffer "*dashboard*"))) +#+END_SRC +Emacs Dashboard Config : +#+BEGIN_SRC emacs-lisp + ;; Set the title + (setq dashboard-banner-logo-title "Welcome to Bloxie's Emacs!") + ;; Set the banner + (setq dashboard-startup-banner 'logo) + ;; Value can be + ;; 'official which displays the official emacs logo + ;; 'logo which displays an alternative emacs logo + ;; 1, 2 or 3 which displays one of the text banners + ;; "path/to/your/image.png" which displays whatever image you would prefer + + ;; Content is not centered by default. To center, set + (setq dashboard-center-content t) + + ;; To disable shortcut "jump" indicators for each section, set + (setq dashboard-show-shortcuts nil) + + ;;To customize which widgets are displayed, you can use the following snippet + + (setq dashboard-items '((recents . 5) + (bookmarks . 5) + (projects . 5) + (agenda . 5) + (registers . 5))) +#+END_SRC +** EXWM +Emacs X Window Manager +Add hashtag before + to enable + ++BEGIN_SRC emacs-lisp + (use-package exwm + :ensure t + :config + (require 'exwm-config) + (exwm-config-default)) ++END_SRC + +Add hashtag before + to enable + +EXWM System Try ++BEGIN_SRC emacs-lisp + (require 'exwm-systemtray) + (exwm-systemtray-enable) ++END_SRC + +EXWM Specific Keybindings +(global-set-key (kbd "s-e") 'evil-quit-all) +(global-set-key (kbd "s-k") 'exwm-workspace-move) +(global-set-key (kbd "s-w") 'exwm-workspace-swap) +** Custom +*** Resizing Buffers +#+BEGIN_SRC emacs-lisp + (global-set-key (kbd "") 'shrink-window) + (global-set-key (kbd "") 'enlarge-window) + (global-set-key (kbd "") 'shrink-window-horizontally) + (global-set-key (kbd "") 'enlarge-window-horizontally) +#+END_SRC +*** Fullscreen Function +#+BEGIN_SRC emacs-lisp + (defun fullscreen (&optional f) + (interactive) + (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 + '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0)) + (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 + '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0))) +#+END_SRC + +Call Function on Startup +#+BEGIN_SRC emacs-lisp + (fullscreen) +#+END_SRC +** Symon +A system resource viewer + +Add hashtag before + to enable + ++BEGIN_SRC emacs-lisp + (use-package symon + :ensure t + :init + (symon-mode 1)) ++END_SRC +** DMenu +A recreation of the iconic Suckless Dynamic Menu. +#+BEGIN_SRC emacs-lisp + (use-package dmenu + :ensure t + :bind + ("s-f" . 'dmenu)) +#+END_SRC ** Evil Mode #+BEGIN_SRC emacs-lisp (use-package evil @@ -50,6 +156,14 @@ Install the Telephone Line : #+BEGIN_SRC emacs-lisp (add-hook 'org-mode-hook 'org-beamer-mode) #+END_SRC +** Projectile +Install Projectile: +#+BEGIN_SRC emacs-lisp + (use-package projectile + :ensure t + :init + (projectile-mode)) +#+END_SRC ** Auto Completion *** Ivy #+BEGIN_SRC emacs-lisp From 4265ca86f189c38dc38e1f4e82d2b428f4490be7 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Sun, 12 Apr 2020 05:58:27 +0100 Subject: [PATCH 05/37] Emacs Counsel Integration --- config.org | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/config.org b/config.org index 0b93944..d0d8d5c 100644 --- a/config.org +++ b/config.org @@ -24,6 +24,14 @@ Welcome to my Emacs configuration! (use-package all-the-icons :ensure t) #+END_SRC + +All The Icons for Ivy/Counsel +#+BEGIN_SRC emacs-lisp + (use-package all-the-icons-ivy + :ensure t + :init + (all-the-icons-ivy-setup)) +#+END_SRC *** Telephone Line Install the Telephone Line : #+BEGIN_SRC emacs-lisp @@ -167,10 +175,33 @@ Install Projectile: ** Auto Completion *** Ivy #+BEGIN_SRC emacs-lisp - (use-package ivy + (use-package ivy + :ensure t + :init + (ivy-mode 1)) +#+END_SRC + +Ivy Configuration : +#+BEGIN_SRC emacs-lisp + (setq ivy-use-virtual-buffers t) + (setq enable-recursive-minibuffers t) +#+END_SRC + + +#+END_SRC +*** Counsel +#+BEGIN_SRC emacs-lisp + (use-package counsel + :ensure t) +#+END_SRC + +Counsel for Projectile +#+BEGIN_SRC emacs-lisp + (use-package counsel-projectile :ensure t :init - (ivy-mode 1)) + (counsel-projectile-mode)) + (define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map) #+END_SRC *** Company #+BEGIN_SRC emacs-lisp From 2b23c6df7cdd66909bcc725c3c4bf4d81337078d Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Mon, 13 Apr 2020 00:39:27 +0100 Subject: [PATCH 06/37] Dracula Theme and Modeline configuration --- config.org | 34 ++++++++++++++++++++++++++++++---- init.el | 6 ++++-- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/config.org b/config.org index d0d8d5c..ee78a43 100644 --- a/config.org +++ b/config.org @@ -19,6 +19,13 @@ Welcome to my Emacs configuration! #+BEGIN_SRC emacs-lisp (scroll-bar-mode -1) #+END_SRC +*** Theming +#+BEGIN_SRC emacs-lisp + (use-package dracula-theme + :ensure t + :init + (load-theme 'dracula t)) +#+END_SRC *** All The Icons #+BEGIN_SRC emacs-lisp (use-package all-the-icons @@ -32,13 +39,32 @@ All The Icons for Ivy/Counsel :init (all-the-icons-ivy-setup)) #+END_SRC -*** Telephone Line -Install the Telephone Line : +*** Mode Line +Mode Line Configuration : #+BEGIN_SRC emacs-lisp - (use-package telephone-line + (setq telephone-line-lhs + '((evil . (telephone-line-evil-tag-segment)) + (accent . (telephone-line-vc-segment + telephone-line-erc-modified-channels-segment + telephone-line-process-segment)) + (nil . (telephone-line-buffer-segment)))) + (setq telephone-line-rhs + '((nil . (telephone-line-misc-info-segment)) + (accent . (telephone-line-major-mode-segment)) + (evil . (telephone-line-airline-position-segment)))) + + (setq telephone-line-primary-left-separator 'telephone-line-flat + telephone-line-secondary-left-separator 'telephone-line-flat + telephone-line-primary-right-separator 'telephone-line-flat + telephone-line-secondary-right-separator 'telephone-line-flat) + (setq telephone-line-height 20 + telephone-line-evil-use-short-tag t) +#+END_SRC +#+BEGIN_SRC emacs-lisp + (use-package telephone-line :ensure t :init - (telephone-line-mode 1)) + (telephone-line-mode)) #+END_SRC *** Emacs Dashboard Install the Emacs Dashboard : diff --git a/init.el b/init.el index edf56a1..aa0ec1f 100644 --- a/init.el +++ b/init.el @@ -25,7 +25,9 @@ ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. - '(custom-enabled-themes (quote (wombat))) + '(custom-safe-themes + (quote + ("3c83b3676d796422704082049fc38b6966bcad960f896669dfc21a7a37a748fa" default))) '(package-selected-packages (quote (org-bullets company flyspell-correct-ivy evil ivy which-key use-package)))) @@ -34,4 +36,4 @@ ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. - ) + '(default ((t (:inherit nil :stipple nil :background "#282a36" :foreground "#f8f8f2" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 103 :width normal :foundry "ADBO" :family "Inconsolata Regular"))))) From f3e7d2c4427250c17e3bf793d6a196688d4554e3 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Mon, 13 Apr 2020 01:05:59 +0100 Subject: [PATCH 07/37] Rainbows lol --- config.org | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/config.org b/config.org index ee78a43..d725c1b 100644 --- a/config.org +++ b/config.org @@ -252,3 +252,34 @@ Counsel for Projectile :init (setq flyspell-correct-interface #'flyspell-correct-ivy)) #+END_SRC +** Rainbow Delimiters +This Minor Mode will mark pairs of brackets with colours. +#+BEGIN_SRC emacs-lisp + (use-package rainbow-delimiters + :ensure t) +#+END_SRC + +Set Minor Mode as Global : + +#+BEGIN_SRC emacs-lisp + (define-globalized-minor-mode global-rainbow-delimiters-mode rainbow-delimiters-mode + (lambda () (rainbow-delimiters-mode 1))) + + (global-rainbow-delimiters-mode 1) +#+END_SRC + +** Rainbow Mode +This Minor Mode will highlight RGB/HEX values with their respective colours. +#+BEGIN_SRC emacs-lisp + (use-package rainbow-mode + :ensure t) +#+END_SRC + +Set Minor Mode as Global : + +#+BEGIN_SRC emacs-lisp + (define-globalized-minor-mode global-rainbow-mode rainbow-mode + (lambda () (rainbow-mode 1))) + + (global-rainbow-mode 1) +#+END_SRC From b7b34debe01eeb91e9a8e29702628a72f62f5c82 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Mon, 13 Apr 2020 01:51:58 +0100 Subject: [PATCH 08/37] Homepage config --- config.org | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/config.org b/config.org index d725c1b..927d2ef 100644 --- a/config.org +++ b/config.org @@ -101,6 +101,36 @@ Emacs Dashboard Config : (projects . 5) (agenda . 5) (registers . 5))) + + ;; To show agenda for the upcoming seven days set the variable show-week-agenda-p to t. + + (setq show-week-agenda-p t) + + ;; Note that setting list-size for the agenda list is intentionally ignored; all agenda items for the current day will be displayed. + + + ;; To customize which categories from the agenda items should be visible in the dashboard set the dashboard-org-agenda-categories to the list of categories you need. + + ;; (setq dashboard-org-agenda-categories '("Tasks" "Appointments")) + + ;; To add icons to the widget headings and their items: + (setq dashboard-set-heading-icons t) + (setq dashboard-set-file-icons t) + + ;; To show navigator below the banner: + (setq dashboard-set-navigator t) + + ;; To customize the buttons of the navigator like this: + ;; 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) + "Homepage" + "Browse homepage" + (lambda (&rest _) (browse-url "https://gitlab.com/bloxiebird/linux-emacs-configuration"))) + ("★" "Star" "Show stars" (lambda (&rest _) (show-stars)) warning) + ("?" "" "?/h" #'show-help nil "<" ">")) + )) #+END_SRC ** EXWM Emacs X Window Manager From e921fe687430f8de1587c19ecd9408205d0fba4b Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Mon, 13 Apr 2020 03:53:55 +0100 Subject: [PATCH 09/37] Agenda --- config.org | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/config.org b/config.org index 927d2ef..888b466 100644 --- a/config.org +++ b/config.org @@ -104,7 +104,7 @@ Emacs Dashboard Config : ;; To show agenda for the upcoming seven days set the variable show-week-agenda-p to t. - (setq show-week-agenda-p t) + ;; (setq show-week-agenda-p t) ;; Note that setting list-size for the agenda list is intentionally ignored; all agenda items for the current day will be displayed. @@ -220,6 +220,15 @@ A recreation of the iconic Suckless Dynamic Menu. #+BEGIN_SRC emacs-lisp (add-hook 'org-mode-hook 'org-beamer-mode) #+END_SRC +** Agenda +Set Agenda Directory : +#+BEGIN_SRC emacs-lisp + (setq org-agenda-files (quote("~/.emacs.d/agenda.org"))) +#+END_SRC +Calendar/Diary integration : +#+BEGIN_SRC emacs-lisp + (setq org-agenda-include-diary t) +#+END_SRC ** Projectile Install Projectile: #+BEGIN_SRC emacs-lisp From fe1558aa32549d594eac296dd610f12c1964134e Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Mon, 13 Apr 2020 04:41:22 +0100 Subject: [PATCH 10/37] bookmark --- bookmarks | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 bookmarks diff --git a/bookmarks b/bookmarks new file mode 100644 index 0000000..8c67a49 --- /dev/null +++ b/bookmarks @@ -0,0 +1,10 @@ +;;;; Emacs Bookmark Format Version 1 ;;;; -*- coding: utf-8-emacs -*- +;;; This format is meant to be slightly human-readable; +;;; nevertheless, you probably don't want to edit it. +;;; -*- End Of Bookmark File Format Version Stamp -*- +(("Schoolwork" + (filename . "~/Documents/Schoolwork/") + (front-context-string . "English\n drwxr-") + (rear-context-string . "96 Apr 11 05:07 ") + (position . 246)) +) \ No newline at end of file From 618b280e0b06d48631529aa6da01d27742e3b0ea Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Mon, 13 Apr 2020 04:44:18 +0100 Subject: [PATCH 11/37] Projectile bookmarks --- projectile-bookmarks.eld | 1 + 1 file changed, 1 insertion(+) create mode 100644 projectile-bookmarks.eld diff --git a/projectile-bookmarks.eld b/projectile-bookmarks.eld new file mode 100644 index 0000000..ac339ae --- /dev/null +++ b/projectile-bookmarks.eld @@ -0,0 +1 @@ +("~/.emacs.d/") \ No newline at end of file From b143c81443ac8a1b064cee0dff931fe1a0fa6f00 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Mon, 13 Apr 2020 06:48:19 +0100 Subject: [PATCH 12/37] Switch to Courier Font --- init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.el b/init.el index aa0ec1f..d20d7a1 100644 --- a/init.el +++ b/init.el @@ -36,4 +36,4 @@ ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. - '(default ((t (:inherit nil :stipple nil :background "#282a36" :foreground "#f8f8f2" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 103 :width normal :foundry "ADBO" :family "Inconsolata Regular"))))) + '(default ((t (:inherit nil :stipple nil :background "#282a36" :foreground "#f8f8f2" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 109 :width condensed :foundry "ABAT" :family "Courier"))))) From 0494f407f90f7092341ac7afe76a165a08db74ab Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Mon, 13 Apr 2020 06:59:26 +0100 Subject: [PATCH 13/37] Quick tidy --- config.org | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config.org b/config.org index 888b466..9337f6d 100644 --- a/config.org +++ b/config.org @@ -1,5 +1,5 @@ -+TITLE: Bloxie's Emacs Configuration -#+CREATOR: Bloxiebird +* Bloxie's Emacs Configuration +** By Curt Spark / Bloxiebird. * Introduction Welcome to my Emacs configuration! From ac4743da645a500710cc9167819e989a71484069 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Mon, 13 Apr 2020 07:19:59 +0100 Subject: [PATCH 14/37] Python Autocompletion initial setup --- config.org | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/config.org b/config.org index 9337f6d..64a73b9 100644 --- a/config.org +++ b/config.org @@ -269,12 +269,28 @@ Counsel for Projectile (define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map) #+END_SRC *** Company +**** Company Base #+BEGIN_SRC emacs-lisp (use-package company :ensure t :init (global-company-mode 1)) #+END_SRC +**** Company-Jedi Python + +#+BEGIN_SRC emacs-lisp + (use-package company-jedi + :ensure t) +#+END_SRC + +Set Company-Jedi to run on Python buffers. : + +#+BEGIN_SRC emacs-lisp + (require 'company-jedi) + (autoload 'jedi:setup "jedi" nil t) + (add-hook 'python-mode-hook 'jedi:setup) + (add-to-list 'company-backends 'company-jedi) +#+END_SRC *** Which Key #+BEGIN_SRC emacs-lisp (use-package which-key From aeea0f8144e2e30dae063149cdf9ec28cb76c98b Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Mon, 13 Apr 2020 07:29:15 +0100 Subject: [PATCH 15/37] Company Improvements --- config.org | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/config.org b/config.org index 64a73b9..c902ed4 100644 --- a/config.org +++ b/config.org @@ -276,8 +276,15 @@ Counsel for Projectile :init (global-company-mode 1)) #+END_SRC -**** Company-Jedi Python +**** Company Quickhelp +#+BEGIN_SRC emacs-lisp + (use-package company-quickhelp + :ensure t + :init + (company-quickhelp-mode)) +#+END_SRC +**** Company-Jedi Python #+BEGIN_SRC emacs-lisp (use-package company-jedi :ensure t) From f2d9ce8671134d5b6457a8e3574f470aab5503ae Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Mon, 13 Apr 2020 22:48:29 +0100 Subject: [PATCH 16/37] Company mode configuration --- config.org | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/config.org b/config.org index c902ed4..ccde97b 100644 --- a/config.org +++ b/config.org @@ -276,6 +276,24 @@ Counsel for Projectile :init (global-company-mode 1)) #+END_SRC + +Configuration : +#+BEGIN_SRC emacs-lisp + + ; No delay in showing suggestions. + (setq company-idle-delay 0) + + ; Show suggestions after entering one character. + (setq company-minimum-prefix-length 1) + + ; Wrap around when suggestions reach bottom. + (setq company-selection-wrap-around t) + + ; Use tab key to cycle through suggestions. + ; ('tng' means 'tab and go') + (company-tng-configure-default) + +#+END_SRC **** Company Quickhelp #+BEGIN_SRC emacs-lisp (use-package company-quickhelp From c0503de04c37aead7190a3afddfc5dddf79da055 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Tue, 14 Apr 2020 00:03:58 +0100 Subject: [PATCH 17/37] Testing out dynamic tiling --- config.org | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/config.org b/config.org index ccde97b..d0adf1e 100644 --- a/config.org +++ b/config.org @@ -156,6 +156,25 @@ EXWM Specific Keybindings (global-set-key (kbd "s-e") 'evil-quit-all) (global-set-key (kbd "s-k") 'exwm-workspace-move) (global-set-key (kbd "s-w") 'exwm-workspace-swap) +** Dynamic Window Tiling +*** Edwina +Edwina is a dynamic window manager for Emacs. +It automatically arranges your Emacs panes (called “windows” in Emacs parlance) into predefined layouts, dwm-style. ++BEGIN_SRC emacs-lisp + (use-package edwina + :ensure t + :config + (setq display-buffer-base-action '(display-buffer-below-selected)) + (edwina-setup-dwm-keys) + (edwina-mode 1)) ++END_SRC +*** Golden Ratio ++BEGIN_SRC emacs-lisp + (use-package golden-ratio + :ensure t + :init + (golden-ratio-mode 1)) ++END_SRC ** Custom *** Resizing Buffers #+BEGIN_SRC emacs-lisp From 004b3f66d03e832dab6212f65355aff41ddc5083 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Tue, 14 Apr 2020 02:35:25 +0100 Subject: [PATCH 18/37] EXWM configuration --- config.org | 114 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 79 insertions(+), 35 deletions(-) diff --git a/config.org b/config.org index d0adf1e..b65cf5c 100644 --- a/config.org +++ b/config.org @@ -19,6 +19,13 @@ Welcome to my Emacs configuration! #+BEGIN_SRC emacs-lisp (scroll-bar-mode -1) #+END_SRC +*** Modern Fringes +#+BEGIN_SRC emacs-lisp + (use-package modern-fringes + :ensure t + :init + (modern-fringes-invert-arrows)) +#+END_SRC *** Theming #+BEGIN_SRC emacs-lisp (use-package dracula-theme @@ -40,31 +47,26 @@ All The Icons for Ivy/Counsel (all-the-icons-ivy-setup)) #+END_SRC *** Mode Line -Mode Line Configuration : +**** Spaceline #+BEGIN_SRC emacs-lisp - (setq telephone-line-lhs - '((evil . (telephone-line-evil-tag-segment)) - (accent . (telephone-line-vc-segment - telephone-line-erc-modified-channels-segment - telephone-line-process-segment)) - (nil . (telephone-line-buffer-segment)))) - (setq telephone-line-rhs - '((nil . (telephone-line-misc-info-segment)) - (accent . (telephone-line-major-mode-segment)) - (evil . (telephone-line-airline-position-segment)))) - - (setq telephone-line-primary-left-separator 'telephone-line-flat - telephone-line-secondary-left-separator 'telephone-line-flat - telephone-line-primary-right-separator 'telephone-line-flat - telephone-line-secondary-right-separator 'telephone-line-flat) - (setq telephone-line-height 20 - telephone-line-evil-use-short-tag t) -#+END_SRC -#+BEGIN_SRC emacs-lisp - (use-package telephone-line + (use-package spaceline :ensure t - :init - (telephone-line-mode)) + :config + (require 'spaceline-config) + (setq powerline-default-separator (quote arrow)) + (spaceline-spacemacs-theme)) +#+END_SRC + +Display the time on the Mode Line, this is more useful for EXWM. +#+BEGIN_SRC emacs-lisp + (setq display-time-default-load-average nil) + (display-time-mode t) +#+END_SRC +**** Diminish +With Diminish you can optionally remove some of the names of the modes in the Mode Line. +#+BEGIN_SRC emacs-lisp + (use-package diminish + :ensure t) #+END_SRC *** Emacs Dashboard Install the Emacs Dashboard : @@ -134,28 +136,70 @@ Emacs Dashboard Config : #+END_SRC ** EXWM Emacs X Window Manager -Add hashtag before + to enable -+BEGIN_SRC emacs-lisp +#+BEGIN_SRC emacs-lisp (use-package exwm :ensure t :config (require 'exwm-config) (exwm-config-default)) -+END_SRC +#+END_SRC -Add hashtag before + to enable - -EXWM System Try -+BEGIN_SRC emacs-lisp +EXWM System Tray +#+BEGIN_SRC emacs-lisp (require 'exwm-systemtray) (exwm-systemtray-enable) -+END_SRC +#+END_SRC + +If not using EXWM, it will ask to replace the Window Manager with EXWM, I do not like this prompt when using Emacs on other Window Managers. +#+BEGIN_SRC emacs-lisp + (setq exwm-replace 'nil) +#+END_SRC + +Ido gets automatically enabled in the default EXWM configuration, as we're using Ivy. Let's disable it. +#+BEGIN_SRC emacs-lisp + (ido-mode -1) +#+END_SRC + +Set Number of Workspaces initially created. +#+BEGIN_SRC emacs-lisp + (setq exwm-workspace-number 10) +#+END_SRC EXWM Specific Keybindings -(global-set-key (kbd "s-e") 'evil-quit-all) -(global-set-key (kbd "s-k") 'exwm-workspace-move) -(global-set-key (kbd "s-w") 'exwm-workspace-swap) +#+BEGIN_SRC emacs-lisp + + ; Set whether workspaces wrap around or not. + (defvar exwm-workspace-switch-wrap t) + + (defun exwm/exwm-workspace-next () + "Switch to next exwm-workspace (to the right)." + (interactive) + (let* ((only-workspace? (equal exwm-workspace-number 1)) + (overflow? (= exwm-workspace-current-index (1- exwm-workspace-number)))) + (cond + (only-workspace? nil) + (overflow? (when exwm-workspace-switch-wrap + (exwm-workspace-switch 0))) + (t (exwm-workspace-switch (1+ exwm-workspace-current-index)))))) + + (defun exwm/exwm-workspace-prev () + "Switch to next exwm-workspace (to the left)." + (interactive) + (let* ((only-workspace? (equal exwm-workspace-number 1)) + (overflow? (= exwm-workspace-current-index 0))) + (cond + (only-workspace? nil) + (overflow? (when exwm-workspace-switch-wrap + (exwm-workspace-switch (1- exwm-workspace-number)))) + (t (exwm-workspace-switch (1- exwm-workspace-current-index)))))) + + (global-set-key (kbd "") 'exwm/exwm-workspace-next) + (global-set-key (kbd "") 'exwm/exwm-workspace-prev) + (global-set-key (kbd "s-e") 'evil-quit-all) + (global-set-key (kbd "s-k") 'exwm-workspace-move) + (global-set-key (kbd "s-w") 'exwm-workspace-swap) +#+END_SRC ** Dynamic Window Tiling *** Edwina Edwina is a dynamic window manager for Emacs. @@ -214,7 +258,7 @@ A recreation of the iconic Suckless Dynamic Menu. (use-package dmenu :ensure t :bind - ("s-f" . 'dmenu)) + ("s-d" . 'dmenu)) #+END_SRC ** Evil Mode #+BEGIN_SRC emacs-lisp From 0c667fa51edf215860ad6a1d6df55b722a493dc8 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Tue, 14 Apr 2020 04:00:55 +0100 Subject: [PATCH 19/37] Yasnippet testing --- config.org | 44 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/config.org b/config.org index b65cf5c..2ffffc6 100644 --- a/config.org +++ b/config.org @@ -303,10 +303,12 @@ Install Projectile: ** Auto Completion *** Ivy #+BEGIN_SRC emacs-lisp - (use-package ivy - :ensure t - :init - (ivy-mode 1)) + (use-package ivy + :ensure t + :init + (ivy-mode 1) + :bind + ("C-s" . swiper)) #+END_SRC Ivy Configuration : @@ -314,9 +316,6 @@ Ivy Configuration : (setq ivy-use-virtual-buffers t) (setq enable-recursive-minibuffers t) #+END_SRC - - -#+END_SRC *** Counsel #+BEGIN_SRC emacs-lisp (use-package counsel @@ -337,7 +336,7 @@ Counsel for Projectile (use-package company :ensure t :init - (global-company-mode 1)) + (add-hook 'prog-mode-hook 'company-mode)) #+END_SRC Configuration : @@ -363,8 +362,18 @@ Configuration : :ensure t :init (company-quickhelp-mode)) - #+END_SRC +**** Company + Yasnippet ++BEGIN_SRC emacs-lisp + (use-package yasnippet + :ensure t + :config + (use-package yasnippet-snippets + :ensure t) + (yas-reload-all)) + (add-hook 'prog-mode-hook 'yas-minor-mode) + (add-to-list 'company-backends 'company-yasnippet) ++END_SRC **** Company-Jedi Python #+BEGIN_SRC emacs-lisp (use-package company-jedi @@ -395,6 +404,23 @@ Set Company-Jedi to run on Python buffers. : :init (setq flyspell-correct-interface #'flyspell-correct-ivy)) #+END_SRC +** Multiple Cursors +#+BEGIN_SRC emacs-lisp + (use-package multiple-cursors + :ensure t + :bind + ("C-c m" . 'mc/mark-next-like-this) + :bind + ("C-c C-m" . 'mc/mark-all-like-this)) +#+END_SRC +** Expand Region +Auto selects a region of text/code. +#+BEGIN_SRC emacs-lisp + (use-package expand-region + :ensure t + :bind + ("C-c e" . 'er/expand-region)) +#+END_SRC ** Rainbow Delimiters This Minor Mode will mark pairs of brackets with colours. #+BEGIN_SRC emacs-lisp From 7f5c4ceb8b239466a6f3f20c8bc77281c8baade5 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Tue, 14 Apr 2020 04:02:50 +0100 Subject: [PATCH 20/37] Disable EXWM --- config.org | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/config.org b/config.org index 2ffffc6..d1a87c1 100644 --- a/config.org +++ b/config.org @@ -137,24 +137,24 @@ Emacs Dashboard Config : ** EXWM Emacs X Window Manager -#+BEGIN_SRC emacs-lisp ++BEGIN_SRC emacs-lisp (use-package exwm :ensure t :config (require 'exwm-config) (exwm-config-default)) -#+END_SRC ++END_SRC EXWM System Tray -#+BEGIN_SRC emacs-lisp ++BEGIN_SRC emacs-lisp (require 'exwm-systemtray) (exwm-systemtray-enable) -#+END_SRC ++END_SRC If not using EXWM, it will ask to replace the Window Manager with EXWM, I do not like this prompt when using Emacs on other Window Managers. -#+BEGIN_SRC emacs-lisp ++BEGIN_SRC emacs-lisp (setq exwm-replace 'nil) -#+END_SRC ++END_SRC Ido gets automatically enabled in the default EXWM configuration, as we're using Ivy. Let's disable it. #+BEGIN_SRC emacs-lisp @@ -162,12 +162,12 @@ Ido gets automatically enabled in the default EXWM configuration, as we're using #+END_SRC Set Number of Workspaces initially created. -#+BEGIN_SRC emacs-lisp ++BEGIN_SRC emacs-lisp (setq exwm-workspace-number 10) -#+END_SRC ++END_SRC EXWM Specific Keybindings -#+BEGIN_SRC emacs-lisp ++BEGIN_SRC emacs-lisp ; Set whether workspaces wrap around or not. (defvar exwm-workspace-switch-wrap t) @@ -199,7 +199,7 @@ EXWM Specific Keybindings (global-set-key (kbd "s-e") 'evil-quit-all) (global-set-key (kbd "s-k") 'exwm-workspace-move) (global-set-key (kbd "s-w") 'exwm-workspace-swap) -#+END_SRC ++END_SRC ** Dynamic Window Tiling *** Edwina Edwina is a dynamic window manager for Emacs. From d08672713ea07731fddf743dd1f85584b22573fa Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Tue, 14 Apr 2020 04:10:53 +0100 Subject: [PATCH 21/37] Display line numbers on programming modes --- config.org | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/config.org b/config.org index d1a87c1..d68857f 100644 --- a/config.org +++ b/config.org @@ -19,6 +19,10 @@ Welcome to my Emacs configuration! #+BEGIN_SRC emacs-lisp (scroll-bar-mode -1) #+END_SRC +*** Display Line Numbers +#+BEGIN_SRC emacs-lisp + (add-hook 'prog-mode-hook 'display-line-numbers-mode) +#+END_SRC *** Modern Fringes #+BEGIN_SRC emacs-lisp (use-package modern-fringes From d54bff67efffaaff2fa577882d1dc174fd696349 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Tue, 14 Apr 2020 14:32:46 +0100 Subject: [PATCH 22/37] Emacs Application Framework Testing --- config.org | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/config.org b/config.org index d68857f..752bbcb 100644 --- a/config.org +++ b/config.org @@ -4,7 +4,6 @@ * Introduction Welcome to my Emacs configuration! - * Config ** Appearance *** Remove Tool Bar @@ -204,6 +203,22 @@ EXWM Specific Keybindings (global-set-key (kbd "s-k") 'exwm-workspace-move) (global-set-key (kbd "s-w") 'exwm-workspace-swap) +END_SRC +** The Emacs Application Framework +The Emacs Application Framework is a big project, please check the README before use, install dependencies etc. + +#+BEGIN_SRC emacs-lisp + (use-package eaf + :load-path "~/.emacs.d/site-lisp/emacs-application-framework" + ; Set to "/usr/share/emacs/site-lisp/eaf" if installed from AUR + :bind + ("C-x C-f" . 'eaf-open) + :custom + (eaf-find-alternate-file-in-dired t) + :config + (eaf-bind-key scroll_up "C-n" eaf-pdf-viewer-keybinding) + (eaf-bind-key scroll_down "C-p" eaf-pdf-viewer-keybinding) + (eaf-bind-key take_photo "p" eaf-camera-keybinding)) +#+END_SRC ** Dynamic Window Tiling *** Edwina Edwina is a dynamic window manager for Emacs. @@ -272,6 +287,13 @@ A recreation of the iconic Suckless Dynamic Menu. (evil-mode 1)) #+END_SRC ** Org Mode +*** LateX Preview +#+BEGIN_SRC emacs-lisp + (use-package org-fragtog + :ensure t + :init + (add-hook 'org-mode-hook 'org-fragtog-mode)) +#+END_SRC *** Org Bullets #+BEGIN_SRC emacs-lisp (use-package org-bullets From e9fc95f281a08775780239ca8fb34da4595b6d82 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Tue, 14 Apr 2020 14:46:43 +0100 Subject: [PATCH 23/37] Switch to lighter alternative for quick org mode previewing --- config.org | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/config.org b/config.org index 752bbcb..8d38f6d 100644 --- a/config.org +++ b/config.org @@ -3,7 +3,6 @@ * Introduction Welcome to my Emacs configuration! - * Config ** Appearance *** Remove Tool Bar @@ -206,19 +205,19 @@ EXWM Specific Keybindings ** The Emacs Application Framework The Emacs Application Framework is a big project, please check the README before use, install dependencies etc. -#+BEGIN_SRC emacs-lisp ++BEGIN_SRC emacs-lisp (use-package eaf :load-path "~/.emacs.d/site-lisp/emacs-application-framework" ; Set to "/usr/share/emacs/site-lisp/eaf" if installed from AUR :bind - ("C-x C-f" . 'eaf-open) + ("C-c C-f" . 'eaf-open) :custom (eaf-find-alternate-file-in-dired t) :config (eaf-bind-key scroll_up "C-n" eaf-pdf-viewer-keybinding) (eaf-bind-key scroll_down "C-p" eaf-pdf-viewer-keybinding) (eaf-bind-key take_photo "p" eaf-camera-keybinding)) -#+END_SRC ++END_SRC ** Dynamic Window Tiling *** Edwina Edwina is a dynamic window manager for Emacs. @@ -287,6 +286,20 @@ A recreation of the iconic Suckless Dynamic Menu. (evil-mode 1)) #+END_SRC ** Org Mode +*** Simple Org Mode Preview in HTML +#+BEGIN_SRC emacs-lisp + (use-package org-preview-html + :ensure t + :config + :bind + ("C-c r" . 'org-preview-html-mode) + (use-package htmlize + :ensure t)) + + (add-to-list 'load-path + (concat user-emacs-directory + (convert-standard-filename "elisp/"))) +#+END_SRC *** LateX Preview #+BEGIN_SRC emacs-lisp (use-package org-fragtog From 44bfd2fa1fefc2e3e1e21b74bfaaae67dee27ee1 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Tue, 14 Apr 2020 15:10:20 +0100 Subject: [PATCH 24/37] LaTeX insta previews --- config.org | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/config.org b/config.org index 8d38f6d..c1e8e99 100644 --- a/config.org +++ b/config.org @@ -288,17 +288,28 @@ A recreation of the iconic Suckless Dynamic Menu. ** Org Mode *** Simple Org Mode Preview in HTML #+BEGIN_SRC emacs-lisp - (use-package org-preview-html - :ensure t - :config - :bind - ("C-c r" . 'org-preview-html-mode) - (use-package htmlize - :ensure t)) + (defun update-other-buffer () + (interactive) + (other-window 1) + (revert-buffer nil t) + (other-window -1)) - (add-to-list 'load-path - (concat user-emacs-directory - (convert-standard-filename "elisp/"))) + (defun org-compile-beamer-and-update-other-buffer () + "Has as a premise that it's run from an org-mode buffer and the + other buffer already has the PDF open" + (interactive) + (org-beamer-export-to-pdf) + (update-other-buffer)) + + (defun org-compile-latex-and-update-other-buffer () + "Has as a premise that it's run from an org-mode buffer and the + other buffer already has the PDF open" + (interactive) + (org-latex-export-to-pdf) + (update-other-buffer)) + + (define-key org-mode-map (kbd "C-c lr") 'org-compile-latex-and-update-other-buffer) + (define-key org-mode-map (kbd "C-c br") 'org-compile-beamer-and-update-other-buffer) #+END_SRC *** LateX Preview #+BEGIN_SRC emacs-lisp From 146649a99f0043e98b5c3ca645b79db4a53e6b5f Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Tue, 14 Apr 2020 15:16:58 +0100 Subject: [PATCH 25/37] Clearing unecessary packages --- config.org | 105 +---------------------------------------------------- 1 file changed, 2 insertions(+), 103 deletions(-) diff --git a/config.org b/config.org index c1e8e99..ebdd9b1 100644 --- a/config.org +++ b/config.org @@ -136,88 +136,6 @@ Emacs Dashboard Config : ("?" "" "?/h" #'show-help nil "<" ">")) )) #+END_SRC -** EXWM -Emacs X Window Manager - -+BEGIN_SRC emacs-lisp - (use-package exwm - :ensure t - :config - (require 'exwm-config) - (exwm-config-default)) -+END_SRC - -EXWM System Tray -+BEGIN_SRC emacs-lisp - (require 'exwm-systemtray) - (exwm-systemtray-enable) -+END_SRC - -If not using EXWM, it will ask to replace the Window Manager with EXWM, I do not like this prompt when using Emacs on other Window Managers. -+BEGIN_SRC emacs-lisp - (setq exwm-replace 'nil) -+END_SRC - -Ido gets automatically enabled in the default EXWM configuration, as we're using Ivy. Let's disable it. -#+BEGIN_SRC emacs-lisp - (ido-mode -1) -#+END_SRC - -Set Number of Workspaces initially created. -+BEGIN_SRC emacs-lisp - (setq exwm-workspace-number 10) -+END_SRC - -EXWM Specific Keybindings -+BEGIN_SRC emacs-lisp - - ; Set whether workspaces wrap around or not. - (defvar exwm-workspace-switch-wrap t) - - (defun exwm/exwm-workspace-next () - "Switch to next exwm-workspace (to the right)." - (interactive) - (let* ((only-workspace? (equal exwm-workspace-number 1)) - (overflow? (= exwm-workspace-current-index (1- exwm-workspace-number)))) - (cond - (only-workspace? nil) - (overflow? (when exwm-workspace-switch-wrap - (exwm-workspace-switch 0))) - (t (exwm-workspace-switch (1+ exwm-workspace-current-index)))))) - - (defun exwm/exwm-workspace-prev () - "Switch to next exwm-workspace (to the left)." - (interactive) - (let* ((only-workspace? (equal exwm-workspace-number 1)) - (overflow? (= exwm-workspace-current-index 0))) - (cond - (only-workspace? nil) - (overflow? (when exwm-workspace-switch-wrap - (exwm-workspace-switch (1- exwm-workspace-number)))) - (t (exwm-workspace-switch (1- exwm-workspace-current-index)))))) - - (global-set-key (kbd "") 'exwm/exwm-workspace-next) - (global-set-key (kbd "") 'exwm/exwm-workspace-prev) - (global-set-key (kbd "s-e") 'evil-quit-all) - (global-set-key (kbd "s-k") 'exwm-workspace-move) - (global-set-key (kbd "s-w") 'exwm-workspace-swap) -+END_SRC -** The Emacs Application Framework -The Emacs Application Framework is a big project, please check the README before use, install dependencies etc. - -+BEGIN_SRC emacs-lisp - (use-package eaf - :load-path "~/.emacs.d/site-lisp/emacs-application-framework" - ; Set to "/usr/share/emacs/site-lisp/eaf" if installed from AUR - :bind - ("C-c C-f" . 'eaf-open) - :custom - (eaf-find-alternate-file-in-dired t) - :config - (eaf-bind-key scroll_up "C-n" eaf-pdf-viewer-keybinding) - (eaf-bind-key scroll_down "C-p" eaf-pdf-viewer-keybinding) - (eaf-bind-key take_photo "p" eaf-camera-keybinding)) -+END_SRC ** Dynamic Window Tiling *** Edwina Edwina is a dynamic window manager for Emacs. @@ -259,25 +177,6 @@ Call Function on Startup #+BEGIN_SRC emacs-lisp (fullscreen) #+END_SRC -** Symon -A system resource viewer - -Add hashtag before + to enable - -+BEGIN_SRC emacs-lisp - (use-package symon - :ensure t - :init - (symon-mode 1)) -+END_SRC -** DMenu -A recreation of the iconic Suckless Dynamic Menu. -#+BEGIN_SRC emacs-lisp - (use-package dmenu - :ensure t - :bind - ("s-d" . 'dmenu)) -#+END_SRC ** Evil Mode #+BEGIN_SRC emacs-lisp (use-package evil @@ -308,8 +207,8 @@ A recreation of the iconic Suckless Dynamic Menu. (org-latex-export-to-pdf) (update-other-buffer)) - (define-key org-mode-map (kbd "C-c lr") 'org-compile-latex-and-update-other-buffer) - (define-key org-mode-map (kbd "C-c br") 'org-compile-beamer-and-update-other-buffer) + (define-key org-mode-map (kbd "C-c rl") 'org-compile-latex-and-update-other-buffer) + (define-key org-mode-map (kbd "C-c rb") 'org-compile-beamer-and-update-other-buffer) #+END_SRC *** LateX Preview #+BEGIN_SRC emacs-lisp From d67b45e7999fb0e47a99bb8b7ef823012a939a05 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Tue, 14 Apr 2020 17:56:10 +0100 Subject: [PATCH 26/37] LSP mode and spellchecking integration --- config.org | 62 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/config.org b/config.org index ebdd9b1..c66277c 100644 --- a/config.org +++ b/config.org @@ -312,31 +312,6 @@ Configuration : :init (company-quickhelp-mode)) #+END_SRC -**** Company + Yasnippet -+BEGIN_SRC emacs-lisp - (use-package yasnippet - :ensure t - :config - (use-package yasnippet-snippets - :ensure t) - (yas-reload-all)) - (add-hook 'prog-mode-hook 'yas-minor-mode) - (add-to-list 'company-backends 'company-yasnippet) -+END_SRC -**** Company-Jedi Python -#+BEGIN_SRC emacs-lisp - (use-package company-jedi - :ensure t) -#+END_SRC - -Set Company-Jedi to run on Python buffers. : - -#+BEGIN_SRC emacs-lisp - (require 'company-jedi) - (autoload 'jedi:setup "jedi" nil t) - (add-hook 'python-mode-hook 'jedi:setup) - (add-to-list 'company-backends 'company-jedi) -#+END_SRC *** Which Key #+BEGIN_SRC emacs-lisp (use-package which-key @@ -344,14 +319,47 @@ Set Company-Jedi to run on Python buffers. : :init (which-key-mode)) #+END_SRC +** LSP Mode +#+BEGIN_SRC emacs-lisp + + ;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l") + (setq lsp-keymap-prefix "s-l") + + (use-package lsp-mode + :ensure t + :hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode) + (prog-mode . lsp) + ;; if you want which-key integration + (lsp-mode . lsp-enable-which-key-integration)) + :commands lsp) + + ;; optionally + (use-package lsp-ui :commands lsp-ui-mode + :ensure t) + (use-package company-lsp :commands company-lsp + :ensure t) + ;; if you are helm user + ;;(use-package helm-lsp :commands helm-lsp-workspace-symbol) + ;; if you are ivy user + (use-package lsp-ivy :commands lsp-ivy-workspace-symbol + :ensure t) + (use-package lsp-treemacs :commands lsp-treemacs-errors-list + :ensure t) + + ;; optionally if you want to use debugger + (use-package dap-mode + :ensure t) + ;; (use-package dap-LANGUAGE) to load the dap adapter for your language +#+END_SRC ** Spell Correction *** Flyspell Correct Ivy #+BEGIN_SRC emacs-lisp (use-package flyspell-correct-ivy :ensure t - :bind ("C-M-;" . flyspell-correct-wrapper) + :bind ("C-;" . flyspell-correct-wrapper) :init - (setq flyspell-correct-interface #'flyspell-correct-ivy)) + (setq flyspell-correct-interface #'flyspell-correct-ivy) + (add-hook 'org-mode-hook 'flyspell-mode)) #+END_SRC ** Multiple Cursors #+BEGIN_SRC emacs-lisp From de0b12bc0473e86fc237edb7a477a3d550c7a757 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Wed, 15 Apr 2020 02:16:11 +0100 Subject: [PATCH 27/37] Disable Spellchecking - having issues with GB locale --- config.org | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/config.org b/config.org index c66277c..23c56d7 100644 --- a/config.org +++ b/config.org @@ -353,14 +353,15 @@ Configuration : #+END_SRC ** Spell Correction *** Flyspell Correct Ivy -#+BEGIN_SRC emacs-lisp ++BEGIN_SRC emacs-lisp (use-package flyspell-correct-ivy :ensure t :bind ("C-;" . flyspell-correct-wrapper) :init (setq flyspell-correct-interface #'flyspell-correct-ivy) - (add-hook 'org-mode-hook 'flyspell-mode)) -#+END_SRC + (add-hook 'org-mode-hook 'flyspell-mode) + (setq-default ispell-program-name "aspell")) ++END_SRC ** Multiple Cursors #+BEGIN_SRC emacs-lisp (use-package multiple-cursors From b6c876a2c5b197e82a19b6f446fd4831bf6d5408 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Wed, 15 Apr 2020 03:36:43 +0100 Subject: [PATCH 28/37] Minor improvements --- config.org | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/config.org b/config.org index 23c56d7..f6233e5 100644 --- a/config.org +++ b/config.org @@ -410,3 +410,20 @@ Set Minor Mode as Global : (global-rainbow-mode 1) #+END_SRC +** Autosave +#+BEGIN_SRC emacs-lisp + (setq backup-directory-alist + `((".*" . ,temporary-file-directory))) + (setq auto-save-file-name-transforms + `((".*" ,temporary-file-directory t))) +#+END_SRC +** Global Revert Mode +#+BEGIN_SRC emacs-lisp + (global-auto-revert-mode t) +#+END_SRC +** Wind Move +Windmove is built into Emacs. It lets you move point from window to window using Shift and the arrow keys. This is easier to type than ‘C-x o’ when there are multiple windows open. +#+BEGIN_SRC emacs-lisp + (when (fboundp 'windmove-default-keybindings) + (windmove-default-keybindings)) +#+END_SRC From 2049a07e59ce555336bd52719c028b3f25d94812 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Wed, 15 Apr 2020 06:12:18 +0100 Subject: [PATCH 29/37] Documentation --- config.org | 268 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 153 insertions(+), 115 deletions(-) diff --git a/config.org b/config.org index f6233e5..baee941 100644 --- a/config.org +++ b/config.org @@ -6,22 +6,32 @@ Welcome to my Emacs configuration! * Config ** Appearance *** Remove Tool Bar +Remove the Tool bar at the top for more room. +Set mode to false: #+BEGIN_SRC emacs-lisp (tool-bar-mode -1) #+END_SRC *** Remove Menu Bar +Remove the Menu Bar at the top for more room. +Set mode to false: #+BEGIN_SRC emacs-lisp (menu-bar-mode -1) #+END_SRC *** Remove Scroll Bar +Remove the Scroll Bar at the side for more room. +Set mode to false: #+BEGIN_SRC emacs-lisp (scroll-bar-mode -1) #+END_SRC *** Display Line Numbers +Display line numbers for all Programming Modes. +Add hook to enable display-line-numbers-mode on all programming major modes: #+BEGIN_SRC emacs-lisp (add-hook 'prog-mode-hook 'display-line-numbers-mode) #+END_SRC *** Modern Fringes +Modern Fringes is a package that makes the side fringes of Emacs much more cleaner and modern. +Install the package, enable it and ensure that it always is installed: #+BEGIN_SRC emacs-lisp (use-package modern-fringes :ensure t @@ -29,6 +39,8 @@ Welcome to my Emacs configuration! (modern-fringes-invert-arrows)) #+END_SRC *** Theming +The theme for Emacs. +Install and set the theme, ensuring that it is always installed: #+BEGIN_SRC emacs-lisp (use-package dracula-theme :ensure t @@ -36,12 +48,15 @@ Welcome to my Emacs configuration! (load-theme 'dracula t)) #+END_SRC *** All The Icons +All The Icons is a package to display cool icons within Emacs. +Install the package, enable it and ensure that it always is installed: #+BEGIN_SRC emacs-lisp (use-package all-the-icons :ensure t) #+END_SRC -All The Icons for Ivy/Counsel +All The Icons Support for Ivy/Counsel. Which are autocompletion tools in emacs +Install the package, enable it and ensure that it always is installed: #+BEGIN_SRC emacs-lisp (use-package all-the-icons-ivy :ensure t @@ -50,6 +65,8 @@ All The Icons for Ivy/Counsel #+END_SRC *** Mode Line **** Spaceline +Spaceline is the modeline of Spacemacs. +Install the package, enable it and ensure that it always is installed. Then make sure that the default spaceline config is enabled and that the seperators are arrows, for a powerline effect: #+BEGIN_SRC emacs-lisp (use-package spaceline :ensure t @@ -59,19 +76,21 @@ All The Icons for Ivy/Counsel (spaceline-spacemacs-theme)) #+END_SRC -Display the time on the Mode Line, this is more useful for EXWM. +Display the time on the Mode Line, this is more useful for EXWM: #+BEGIN_SRC emacs-lisp (setq display-time-default-load-average nil) (display-time-mode t) #+END_SRC **** Diminish -With Diminish you can optionally remove some of the names of the modes in the Mode Line. +With Diminish you can optionally remove some of the names of the minor modes in the Mode Line. +Install the package, enable it and ensure that it always is installed: #+BEGIN_SRC emacs-lisp (use-package diminish :ensure t) #+END_SRC *** Emacs Dashboard -Install the Emacs Dashboard : +A startup dashboard for Emacs, replacing the boring old one. +Install the package, enable it and ensure that it always is installed: #+BEGIN_SRC emacs-lisp (use-package dashboard :ensure t @@ -80,7 +99,8 @@ Install the Emacs Dashboard : (setq initial-buffer-choice (lambda () (get-buffer "*dashboard*"))) #+END_SRC -Emacs Dashboard Config : + +**** Emacs Dashboard Configuration #+BEGIN_SRC emacs-lisp ;; Set the title (setq dashboard-banner-logo-title "Welcome to Bloxie's Emacs!") @@ -136,27 +156,10 @@ Emacs Dashboard Config : ("?" "" "?/h" #'show-help nil "<" ">")) )) #+END_SRC -** Dynamic Window Tiling -*** Edwina -Edwina is a dynamic window manager for Emacs. -It automatically arranges your Emacs panes (called “windows” in Emacs parlance) into predefined layouts, dwm-style. -+BEGIN_SRC emacs-lisp - (use-package edwina - :ensure t - :config - (setq display-buffer-base-action '(display-buffer-below-selected)) - (edwina-setup-dwm-keys) - (edwina-mode 1)) -+END_SRC -*** Golden Ratio -+BEGIN_SRC emacs-lisp - (use-package golden-ratio - :ensure t - :init - (golden-ratio-mode 1)) -+END_SRC ** Custom *** Resizing Buffers +These are controls to resize the width and height of windows. +Set keys: #+BEGIN_SRC emacs-lisp (global-set-key (kbd "") 'shrink-window) (global-set-key (kbd "") 'enlarge-window) @@ -164,6 +167,8 @@ It automatically arranges your Emacs panes (called “windows” in Emacs parlan (global-set-key (kbd "") 'enlarge-window-horizontally) #+END_SRC *** Fullscreen Function +Emacs does not begin fullscreen, +this function will automatically fullscreen Emacs on startup: #+BEGIN_SRC emacs-lisp (defun fullscreen (&optional f) (interactive) @@ -177,15 +182,64 @@ Call Function on Startup #+BEGIN_SRC emacs-lisp (fullscreen) #+END_SRC -** Evil Mode +** Autosave +Default Emacs will store backup and "temporary" files in the edited files directory, instead this changes it to move it to the UNIX Temporary Directory. +Set backup/temporary file directories: #+BEGIN_SRC emacs-lisp - (use-package evil - :ensure t - :init - (evil-mode 1)) + (setq backup-directory-alist + `((".*" . ,temporary-file-directory))) + (setq auto-save-file-name-transforms + `((".*" ,temporary-file-directory t))) +#+END_SRC +** Wind Move +Windmove is built into Emacs. It lets you move point from window to window using Shift and the arrow keys. This is easier to type than ‘C-x o’ when there are multiple windows open. +Enable Wind Move: +#+BEGIN_SRC emacs-lisp + (when (fboundp 'windmove-default-keybindings) + (windmove-default-keybindings)) +#+END_SRC +** Global Revert Mode +Global Revert Mode is a minor mode that automatically refreshes opened buffers when an external tool has changed their data. +Enable Global Revert Mode: +#+BEGIN_SRC emacs-lisp + (global-auto-revert-mode t) +#+END_SRC +** Rainbow Delimiters +This Minor Mode will mark pairs of brackets with colours. +Install the package, enable it and ensure that it always is installed. +#+BEGIN_SRC emacs-lisp + (use-package rainbow-delimiters + :ensure t) +#+END_SRC + +Set Minor Mode as Global : +#+BEGIN_SRC emacs-lisp + (define-globalized-minor-mode global-rainbow-delimiters-mode rainbow-delimiters-mode + (lambda () (rainbow-delimiters-mode 1))) + + (global-rainbow-delimiters-mode 1) +#+END_SRC +** Rainbow Mode +This Minor Mode will highlight RGB/HEX values with their respective colours. +Install the package, enable it and ensure that it always is installed. +#+BEGIN_SRC emacs-lisp + (use-package rainbow-mode + :ensure t) +#+END_SRC + +Set Minor Mode as Global : + +#+BEGIN_SRC emacs-lisp + (define-globalized-minor-mode global-rainbow-mode rainbow-mode + (lambda () (rainbow-mode 1))) + + (global-rainbow-mode 1) #+END_SRC ** Org Mode -*** Simple Org Mode Preview in HTML +*** Simple Org Mode Preview +These are a simple set of functions that will automatically refresh the other buffer, which presumably has the Org Mode PDF open. +This workflow expects you to have 2 window panes open, which can be in any orientation. The Org Mode File you are editing, and the PDF Document to view the changes you are making. +Define functions and set keybindings: #+BEGIN_SRC emacs-lisp (defun update-other-buffer () (interactive) @@ -211,6 +265,10 @@ Call Function on Startup (define-key org-mode-map (kbd "C-c rb") 'org-compile-beamer-and-update-other-buffer) #+END_SRC *** LateX Preview +This package will automatically convert LaTeX Snippets into viewable LaTeX in your Org Mode Documents. +LaTeX Snippets can be defined with text between dollar signs. Example : $ax+bx^2$ +These LaTeX snippets will also show up when converting to PDF. +Install the package, enable it and ensure that it always is installed: #+BEGIN_SRC emacs-lisp (use-package org-fragtog :ensure t @@ -218,6 +276,8 @@ Call Function on Startup (add-hook 'org-mode-hook 'org-fragtog-mode)) #+END_SRC *** Org Bullets +Org Bullets convert the Asterisks of Org Mode headers into unicode Bullet point with multiple styles. +Install the package, enable it and ensure that it always is installed, then add a hook to enable the Bullet Points when on Org Major Mode: #+BEGIN_SRC emacs-lisp (use-package org-bullets :ensure t @@ -225,24 +285,41 @@ Call Function on Startup (add-hook 'org-mode-hook (lambda () (org-bullets-mode)))) #+END_SRC *** Enable Indent Mode +A hook that will autmatically make sure that indenting of headers are enabled by default, this is visually useful and emulates code hierarchy. +Install the package, enable it and ensure that it always is installed, then add a hook to enable the Indentation when on Org Major Mode: #+BEGIN_SRC emacs-lisp (add-hook 'org-mode-hook 'org-indent-mode) #+END_SRC *** Enable Beamer Support +A hook that will automatically make sure that Beamer Org Mode templates and exportion are enabled by default, for slideshow creation with LaTeX. +Install the package, enable it and ensure that it always is installed, then add a hook to enable the Beamer Mode when on Org Major Mode: #+BEGIN_SRC emacs-lisp (add-hook 'org-mode-hook 'org-beamer-mode) #+END_SRC ** Agenda -Set Agenda Directory : +For Org-Agenda, you can set a location of your Org Agenda file here. +Set Agenda Directory: #+BEGIN_SRC emacs-lisp (setq org-agenda-files (quote("~/.emacs.d/agenda.org"))) #+END_SRC -Calendar/Diary integration : + +This is will integrate the Calendar/Diary into Org-Agenda, so you can get access to dates on public holidays etc. +Set diary to true: #+BEGIN_SRC emacs-lisp (setq org-agenda-include-diary t) #+END_SRC +** Evil Mode +Evil Mode, a package designed to emulate modal editing and vim keybindings in Emacs. +Install the package, enable it and ensure that it always is installed, and then make sure that evil-mode is enabled by default: +#+BEGIN_SRC emacs-lisp + (use-package evil + :ensure t + :init + (evil-mode 1)) +#+END_SRC ** Projectile -Install Projectile: +Projectile is a project manager, like a dynamic bookmarking system. It will automatically add repositories as projects which you can access via Dired or Ivy completion. +Install the package, enable it and ensure that it always is installed, and then make sure that projectile-mode is enabled by default: #+BEGIN_SRC emacs-lisp (use-package projectile :ensure t @@ -251,6 +328,8 @@ Install Projectile: #+END_SRC ** Auto Completion *** Ivy +Ivy is an autocompletion framework, it will automatically fuzzy find search words for you. This includes file managing, searching, and more via its extensibility and the Counsel package. +Install the package, enable it and ensure that it always is installed, and then make sure that ivy-mode is enabled by default: #+BEGIN_SRC emacs-lisp (use-package ivy :ensure t @@ -260,18 +339,22 @@ Install Projectile: ("C-s" . swiper)) #+END_SRC -Ivy Configuration : +Ivy Configuration +Set an option to make Ivy show previously opened/edited buffers in the buffer selection : #+BEGIN_SRC emacs-lisp (setq ivy-use-virtual-buffers t) - (setq enable-recursive-minibuffers t) + ;(setq enable-recursive-minibuffers t) #+END_SRC *** Counsel +A collection of Ivy-enhanced versions of common Emacs commands. +Install the package, enable it and ensure that it always is installed: #+BEGIN_SRC emacs-lisp (use-package counsel :ensure t) #+END_SRC -Counsel for Projectile +Counsel Support in Projectile. +Install the package, enable it and ensure that it always is installed, and then set up bindings for the Projectile specific prefix: #+BEGIN_SRC emacs-lisp (use-package counsel-projectile :ensure t @@ -281,14 +364,16 @@ Counsel for Projectile #+END_SRC *** Company **** Company Base +Company is a text completion framework for Emacs. The name stands for "complete anything". It uses pluggable back-ends and front-ends to retrieve and display completion candidates. +Install the package, enable it and ensure that it always is installed, and then make sure that company-mode is enabled by default: #+BEGIN_SRC emacs-lisp (use-package company :ensure t :init - (add-hook 'prog-mode-hook 'company-mode)) + (company-mode)) #+END_SRC -Configuration : +***** Configuration #+BEGIN_SRC emacs-lisp ; No delay in showing suggestions. @@ -306,6 +391,8 @@ Configuration : #+END_SRC **** Company Quickhelp +Company Quickhelp is an extension to company which introduces documentation popups that appears when idling on a company completion candidate. +Install the package, enable it and ensure that it always is installed, and then make sure that company-quickhelp-mode is enabled by default: #+BEGIN_SRC emacs-lisp (use-package company-quickhelp :ensure t @@ -313,14 +400,38 @@ Configuration : (company-quickhelp-mode)) #+END_SRC *** Which Key +Which Key is an insanely useful package that will automatically show you the possible key combinations to finish a command. +Install the package, enable it and ensure that it always is installed, and then make sure that which-key is enabled by default: #+BEGIN_SRC emacs-lisp (use-package which-key :ensure t :init (which-key-mode)) #+END_SRC -** LSP Mode +** Multiple Cursors +The Multiple Cursors package is pretty self explanatory; you can select and manipulate multiple lines of the same text at the same time; move the cursors in unison. Etc. +Install the package, enable it and ensure that it always is installed, and then bind the useful functions to a mnenomic key chord: #+BEGIN_SRC emacs-lisp + (use-package multiple-cursors + :ensure t + :bind + ("C-c m" . 'mc/mark-next-like-this) + :bind + ("C-c C-m" . 'mc/mark-all-like-this)) +#+END_SRC +** Expand Region +Auto selects a region of text/code, if executed multiple times it will wrap further, like layers of a binary onion. +Install the package, enable it and ensure that it always is installed, and then bind the useful functions to a mnenomic key chord: +#+BEGIN_SRC emacs-lisp + (use-package expand-region + :ensure t + :bind + ("C-c e" . 'er/expand-region)) +#+END_SRC +** LSP Mode +LSP mode will give you IDE capabilities in Emacs, using Microsoft's Universal Language Server Protocol. The same one that VSCode uses for linting, autocompletion. Etc. +Install the package, enable it and ensure that it always is installed, add a hook to make sure it only is activated on Programming Related Major Modes, and set a keychord for the custom prefix. ++BEGIN_SRC emacs-lisp ;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l") (setq lsp-keymap-prefix "s-l") @@ -332,7 +443,10 @@ Configuration : ;; if you want which-key integration (lsp-mode . lsp-enable-which-key-integration)) :commands lsp) ++END_SRC +*** Configuration ++BEGIN_SRC emacs-lisp ;; optionally (use-package lsp-ui :commands lsp-ui-mode :ensure t) @@ -350,80 +464,4 @@ Configuration : (use-package dap-mode :ensure t) ;; (use-package dap-LANGUAGE) to load the dap adapter for your language -#+END_SRC -** Spell Correction -*** Flyspell Correct Ivy -+BEGIN_SRC emacs-lisp - (use-package flyspell-correct-ivy - :ensure t - :bind ("C-;" . flyspell-correct-wrapper) - :init - (setq flyspell-correct-interface #'flyspell-correct-ivy) - (add-hook 'org-mode-hook 'flyspell-mode) - (setq-default ispell-program-name "aspell")) +END_SRC -** Multiple Cursors -#+BEGIN_SRC emacs-lisp - (use-package multiple-cursors - :ensure t - :bind - ("C-c m" . 'mc/mark-next-like-this) - :bind - ("C-c C-m" . 'mc/mark-all-like-this)) -#+END_SRC -** Expand Region -Auto selects a region of text/code. -#+BEGIN_SRC emacs-lisp - (use-package expand-region - :ensure t - :bind - ("C-c e" . 'er/expand-region)) -#+END_SRC -** Rainbow Delimiters -This Minor Mode will mark pairs of brackets with colours. -#+BEGIN_SRC emacs-lisp - (use-package rainbow-delimiters - :ensure t) -#+END_SRC - -Set Minor Mode as Global : - -#+BEGIN_SRC emacs-lisp - (define-globalized-minor-mode global-rainbow-delimiters-mode rainbow-delimiters-mode - (lambda () (rainbow-delimiters-mode 1))) - - (global-rainbow-delimiters-mode 1) -#+END_SRC - -** Rainbow Mode -This Minor Mode will highlight RGB/HEX values with their respective colours. -#+BEGIN_SRC emacs-lisp - (use-package rainbow-mode - :ensure t) -#+END_SRC - -Set Minor Mode as Global : - -#+BEGIN_SRC emacs-lisp - (define-globalized-minor-mode global-rainbow-mode rainbow-mode - (lambda () (rainbow-mode 1))) - - (global-rainbow-mode 1) -#+END_SRC -** Autosave -#+BEGIN_SRC emacs-lisp - (setq backup-directory-alist - `((".*" . ,temporary-file-directory))) - (setq auto-save-file-name-transforms - `((".*" ,temporary-file-directory t))) -#+END_SRC -** Global Revert Mode -#+BEGIN_SRC emacs-lisp - (global-auto-revert-mode t) -#+END_SRC -** Wind Move -Windmove is built into Emacs. It lets you move point from window to window using Shift and the arrow keys. This is easier to type than ‘C-x o’ when there are multiple windows open. -#+BEGIN_SRC emacs-lisp - (when (fboundp 'windmove-default-keybindings) - (windmove-default-keybindings)) -#+END_SRC From 8104e6527efcfe9a95fcac90fa9896ba5d78e1ed Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Wed, 15 Apr 2020 06:21:06 +0100 Subject: [PATCH 30/37] Fix small documentation errors --- config.org | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/config.org b/config.org index baee941..b6dc0ad 100644 --- a/config.org +++ b/config.org @@ -267,6 +267,7 @@ Define functions and set keybindings: *** LateX Preview This package will automatically convert LaTeX Snippets into viewable LaTeX in your Org Mode Documents. LaTeX Snippets can be defined with text between dollar signs. Example : $ax+bx^2$ + These LaTeX snippets will also show up when converting to PDF. Install the package, enable it and ensure that it always is installed: #+BEGIN_SRC emacs-lisp @@ -286,13 +287,13 @@ Install the package, enable it and ensure that it always is installed, then add #+END_SRC *** Enable Indent Mode A hook that will autmatically make sure that indenting of headers are enabled by default, this is visually useful and emulates code hierarchy. -Install the package, enable it and ensure that it always is installed, then add a hook to enable the Indentation when on Org Major Mode: +Add a hook to enable the Indentation when on Org Major Mode: #+BEGIN_SRC emacs-lisp (add-hook 'org-mode-hook 'org-indent-mode) #+END_SRC *** Enable Beamer Support A hook that will automatically make sure that Beamer Org Mode templates and exportion are enabled by default, for slideshow creation with LaTeX. -Install the package, enable it and ensure that it always is installed, then add a hook to enable the Beamer Mode when on Org Major Mode: +Add a hook to enable the Beamer Mode when on Org Major Mode: #+BEGIN_SRC emacs-lisp (add-hook 'org-mode-hook 'org-beamer-mode) #+END_SRC @@ -327,6 +328,15 @@ Install the package, enable it and ensure that it always is installed, and then (projectile-mode)) #+END_SRC ** Auto Completion +*** Which Key +Which Key is an insanely useful package that will automatically show you the possible key combinations to finish a binded keychord. +Install the package, enable it and ensure that it always is installed, and then make sure that which-key is enabled by default: +#+BEGIN_SRC emacs-lisp + (use-package which-key + :ensure t + :init + (which-key-mode)) +#+END_SRC *** Ivy Ivy is an autocompletion framework, it will automatically fuzzy find search words for you. This includes file managing, searching, and more via its extensibility and the Counsel package. Install the package, enable it and ensure that it always is installed, and then make sure that ivy-mode is enabled by default: @@ -399,17 +409,8 @@ Install the package, enable it and ensure that it always is installed, and then :init (company-quickhelp-mode)) #+END_SRC -*** Which Key -Which Key is an insanely useful package that will automatically show you the possible key combinations to finish a command. -Install the package, enable it and ensure that it always is installed, and then make sure that which-key is enabled by default: -#+BEGIN_SRC emacs-lisp - (use-package which-key - :ensure t - :init - (which-key-mode)) -#+END_SRC ** Multiple Cursors -The Multiple Cursors package is pretty self explanatory; you can select and manipulate multiple lines of the same text at the same time; move the cursors in unison. Etc. +The Multiple Cursors package is pretty self explanatory, you can select and manipulate multiple lines of the same text at the same time, move the cursors in unison. Etc. Install the package, enable it and ensure that it always is installed, and then bind the useful functions to a mnenomic key chord: #+BEGIN_SRC emacs-lisp (use-package multiple-cursors From d8033b54083719db818728ec96d7482e3cecd2a5 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Wed, 15 Apr 2020 06:33:07 +0100 Subject: [PATCH 31/37] Config formatting --- config.org | 18 ++++++++++++++++++ dashboard.png | Bin 0 -> 75067 bytes 2 files changed, 18 insertions(+) create mode 100644 dashboard.png diff --git a/config.org b/config.org index b6dc0ad..0813134 100644 --- a/config.org +++ b/config.org @@ -3,6 +3,24 @@ * Introduction Welcome to my Emacs configuration! + +[[./dashboard.png]] + +This configuration is inspired by : +https://github.com/munen/emacs.d + +And also loosely inspired by : + +https://github.com/daedreth/UncleDavesEmacs/blob/master/config.org + +With help from his fantastic Emacs tutorial series : + +https://www.youtube.com/playlist?list=PLX2044Ew-UVVv31a0-Qn3dA6Sd_-NyA1n + +This configuration is much more barebones and suited for someone just doing some writing or editing, which is exactly my use case. It does however copy over the useful functionalities (In my personal preference) +As this is a simple literate configuration, not a large actively maintained distribution like Spacemacs or Doom Emacs, feel free to do whatever you want with the configuration. +I've tried to document what every package does, what the code does briefly for beginners to Emacs or literate configurations. + * Config ** Appearance *** Remove Tool Bar diff --git a/dashboard.png b/dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..6b25ea3926b31d5af6b627e4495bd35da69c713a GIT binary patch literal 75067 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�Gh)}#D3VsU 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 literal 0 HcmV?d00001 From 3fd2c3cc68dadd87b8a84dc09f3897fb6ed838ad Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Wed, 15 Apr 2020 06:34:54 +0100 Subject: [PATCH 32/37] Resizing image --- dashboard.png | Bin 75067 -> 27572 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/dashboard.png b/dashboard.png index 6b25ea3926b31d5af6b627e4495bd35da69c713a..948229904be14a0447b3b8f02860286f5d5c6bcd 100644 GIT binary patch literal 27572 zcmbrmbyQSu+crEZsDMg?lpu|ibb}}$&5!Po8oE0LMCs0=6}=^kl@?jdLBj(6kz z-1qyg?|Ig{zV&_AKYOoXxb{`&aUSP!o_m7-k^lS>ofsVi0=<-y6jK6$p0tBNkDoq& z419v;U_T06(Cj2N9YLU1w7_@n9~~%f9D_gm^at(tRHayP z_tU}_hEUp3a3~z;@xBfm1~&QP75*cM5+a8qcXFOBJkeQnjc6$l{sEsmzgcW4u5Ar4 zyxYjQqx8AmDDw&c#s~r#2!AP|`+Il5EBf{6!=2>g$D9w>4>(vqA3fZ}dDefHeZsssMFgp2pMZ+d%r}6wIiR54+%z-W6dR2i;)+R>Nb>5_CZS7I?a#(_xN4N(vtxB^i-ioP`OW+FNDT*EC}o zveeQ#{+o)#>i8jI^vjc`&7Am@3g7%wgRo^}$AW;3iF^u7ul-Zp>$L29Fog_1zG+Ce zgekt{A5OW@0%~?qx*!IAQ5;k$!^c!34TZl7v)-X&+KVPAsT4^iLg>`YA;hccMAk#y zJ)P_DRP0Y-PeE=@4-54s#C`&n?5{e@r211>mG?#GvKTcA0M= z5T+hyw*(dE+DC$TydbWprlWY`QDTmI5*Dhh42-H1yY!0@hOB4~Z}dxP-|UAt%7-~p z_VB4wNgH_dz(f!!shc4K)NCD3aJ4dG!yWRvJ2}`N7Qi3a)B_3{32>?TcJWU!EBP-3 zs%j@{MiSPF7MhDXHhQV{msSSy^|Vz97hRwQXz& zQQo$iJTnA3eDdR=!}g(E@CXgN%5!UTCWUdlG+0tgMTc5kCrS^WKKDe=I7g&&?Uskj zR}H^s*!FVAVFI+aXX1|^iDC(Ha&{&TF5+m6U-+^6O?ke8v zs7ZeUYB!4P9eDQ|oLgL@VMP(2d^{#|R-RqAdf?t$RHilIy% zv-%b2{rEPBx0XC{KdoE9*(`2PK64!qWdZJxAlQo<#-U6<{_xs+@eqh3x98EYGRmhx8&)C&#+_ zlPs!?b3AFuvS?xSbDjIdZ$AMh@xH+CDX8A}um+rFY8G`SZTyEMoaUKUF5WG=qH}O% zc*E|Nd0hOT-iQ-Yxa&pCtk&Rj!PS3KDUkYkDWIX-bKpxq6fm z)So#=+$AKWr8IZGUk$A)rA#JNPMEqn!KWsmcb8i25tTB9 z6l-Z8fhS--Ji(`Hys9r(YXuFrYKM7qEFeWJ%?*0eTwoO-smw)_mCW3jWoT*r$<)MI z!a^&AqHBaI%sC;+BRlQFJNo`G&2i*c`<~~I<0aPhR9-qc#iyk@5h%B!N0{j9oOur` zQ52kzeu5J z?NP)mjtBFf805=#m~9#L1RbnLqbJZTx8aQg2Ssk~pz*cJKE$wB6p(Knsbk*L5=|3WA!oMz*lk2;URT zw1vbT_m3=*%#u)=TS${rP{06}8g`wXy7o{E+kc?gZ~Cd-qzU}a6mM4&cDA0sg>i8B@^`9zJh zZKw-IdQ8IYnbk&q8<~)%?ka~}a@9cc*8geHUwJE zb@-v8!^~2`MN7Wb(xLf70m-s@7S-aejy(vZ@qor39I`TbB2|f!RXMjDcvM-*KEV^M zyI!HJ>#RX~xZ*8|;qSmz0cb4Jqr`YNesnGT6}^ZnV$<@t{wY;&)MK=?Py z%9*j@Uqn7-9HEJ`?yR+|AW%K#!|5%;(f65(Wr&Tp6CZ@>a5Xtg7-oM91XGrp-w?K{ zv}JNbs^Gbko}Z_?+{kSE;nJe?q)IH!A}1pXp1f^fkMubg4;LFgaeP->9ogJHbK#u# z$>q<1V@nPA_^*?Yg~kX~4oVqCwUFWF<+Z?kM_lWI;rV}38X#_s2BKOCHIkCAo|P-g%~rlHV;J8_sJ1F7GgvbiCy{jP>2Ko1=*w+n>{X{9E=jx5BP7 z$nZYwa5lrR8LP(4u%OpQkL|<7qSaWx3VEU0;~}kA{Hj}IYy7EdV(x>{ZzuTN3nDG@^a&FLM_5xWC2QBPhNEtH6)k zQaH1gW#Q^Ee-g#THzE}PLyF%#SoA=ar*+(OIa$+&6iYFwuvWLv)y5SLt6bt$WqIbh zgtREp(gWkGit%i;&x;#biW-ELxX4mTPlst|%;wXy-Sp0!5aQD^1VT{#Z+S2cR`e`K z4_SjOnIwZ3fJ-u{d7yY|-5)l+DkLPMD|ZJ`dvF%Xa%c#G6E)t`QZ9O0ZjOZiiV5MY z5?2so>M@?;s@veHfulY->MD1&nb^R+R4N+nFOkKNb!zN+4Ho_)Vf5}{)bIY4M8=k9f`6t+Hty51ftoKvM1S$xH#2_CcZ3L+(!QQ0Q zN@CO(Dx`PRez-x4r{8AkQba3(aK`#@!rNib;nFqK{@=CM(4SmFqR(WLrUiKmK zxDz+v4Vb>H4`P@q1batpeEPJaP}p)VcEdE(rXEUm#+cQYAis`LrVb&&wm0m04PLQp zCrnb)pr&ucepqp|hsDR|g_@dpOeX1R{;Y#!3v@A8)Hi*s4z~`(_GFAg>*6CPJMpr! zGAMwWRPGd;Gi1Hi4>OISj#C3$iD;xlzPv`dUJGF>QjV#ew=T2OkcxHjhCVeDM{8=1 zh5WogrTgFeKmqY_{Dz*EB~!)_qx2#y!PC_)`GmAAfz~k0F?{fCxFb6x=j4U5e0oj! zkZA>R&vo;wrbM)P3mI%NKf|KYtiBM&@j7A6^mtpy*14N$hkqZU;<~poI_-0Bh8#33 zHm{Hap%`v1Y|qa>OLc1sSe(L`mI4U0Y~LiqnnbJQ?wIwiLxG}%|*7~ZHPx;wLS4PQ*&w=h!;Ru8CxBN?5pB$qbEJ4gC| zvWOdmIWatj>nN{2=|2CXvEqc#KzkONzaD5p66{(}!T7c(Ng7=|@fWb-_kOiCL)eou`A&&l^b z)2$zN6l8%;3XLm0(xM;;xd=`g>cl)PdIHh_|Lr&cwc!Wa$C=#>A@RTj`jutk`+>H( zYD15Rr;Bsbw7wVWiH}>K|-H&rA=D2UWb5kC>hYq7n zS9EN_e0k}{68O_R^@IvT@S0 zmX1Ox^A0gw;d|qlZ9cQ6XU~wh(6aFy)kIFljk_Y_TTnB-9#mlrk9qFrWxv}tHM1S9 z9c>TNjyCE&{%c&6w~~52YF=yDAkgMR+*nMJz>@rfHW*E~SN4QA-aWLd>y%+NFqVqZ zxkpYdfH=72ZT*BH$DxL*lUD^_dV0;b%9rw^f$J9{A3H?Q&KZc)P_x`fB*J(zUdg}5 z@y|-kB3XPZ2K4*t0SF7E$z*q26{A<7wU&nn?VsUgbWmawv||85 zh7@*HCC0P|K*A&awo*JiY`D?5OQX3MV=XJ{E_p-q^hAFmj&Wb6I1H=Z#$Ys#dg7mI zrnn~3V>_F6ARQ%MQ;CM8PgR}>_@hmWb**9ZoxwXA;a#tpS+IYi`eC>(Ot(}Hveti$ zVQst$!v~z7>c0qJbI7Na-?D0?ubz&fAEEZ}VowK|A*ik8##z#d`xz@tH#E(DH9qfo zZN$`_Q#2RXcAQ+;Q{v7SNI-xs`BPF-@goFh!niH(f=g}%2uKDR3hkZG@IOh&QuF|u zBWmE^p7fz3i(2ln_#pQtvt$)aL~3%vk^{~MmtRPtEs%r)6aP|kN@gka4D_}4!;N*D z#jM3Ya(rCz+o<9gt^w%_p%E&9wu_1vL#*5yRt(i%?)HWi&)_+I7JtYO8$V@!5KD-U z(tmY{Pm@)MuC6K)5hL5Wj+ljJvYh>*4Vvtdn_i0V^E}g_i&^s(PEd+{fPlJoap0g%~f^@*!G#>uH zRAchf1HUWmD&p-}SJ-HfeXE$yp;a=NRyfROo{BjS;lGtwTHa5_3pJME35j{%R@Ze0 zE)u|DYOUf-(~}+Ko<ojr5IIa^_&%kCQ4%*T4z4E%~OZR*bSjzrS z0Jo8RY$TS-h$nC4{-}Pt22N%OWzD#io>PKjHv_Ub{FRAV6g6 z;e~f4{h)m^pO&RXca7XsouWo;H5a5BaVy9$FyScLI7hgq5sjvF`>#$EZl;E84()lR za50O=bZuRKJv7o(ksDWG#*3nQEB>koP+cTq^oAI!w-eBpMn|v8cs+#6IS7P)3sfN7 zYrm}}>{b@{S7N=8re6dCJcS1#NAjcKTM|xXd}lL=+Wa4@%3K!B4z_##72Qvie$jObMOL;XXVn>Smx@z|tkL^JdwDT>048(!oVB%(3<;xip zPb)QH7yBtD%+~(&O2t-2256Xi)j|oeoVuY>zU!7~*lPIJioaM`QVyXpE05`p z^Z+{~gQ0MjUUHE8^Rdk;$&d8y<#_d{thc)c?S$CMD0$5DE&)MV-6V-%`A}KA(AW^H zV6{XFp(mjEXAiVBhfN~2ih4`C`UEgT=_EO*7kDul7_qswI_(9yC_(; zkGV!=3eHXTj;VBj6LNZ(xmGdHLAKY%4m<4}UD@TBZx>IaAVOJ{iL(|<%wQdECRgmN z#5$55A9a292(*0nfTz@SjnB!1`0Rq5)fJnT_MO5`z=R3Mff!J{lGUU+N{`=M(e0AT zQm+b_nAYQx2Y0H7UGU>3O>*HHK|#FTMO^g~KDK7f&`H;x(fiC!w)IK>94J4UMEY_#PJ3-8gYo>5W)cso!2cc$GKe0T&zQ#NtsJ=+yu6vy(x zgvHG>vRx=j9Xf{={8dr$wnZ~Zx^*;V_59-rrZ`=0fluw_A1TbNy$G9kdZm-}X4ge7 z^1?l6cML@lM=XG1CwKxCmBcYWw=0sldAG&6caHh}@3$|_{ry*80t(v$qh1yU*4JJn zg-G4=STonCAQD?(%goa*gE?g?tC!-Jfq8+fWY;0;#w+P5JeeJX~3?r;TKW)Ul@ z@D+=Fl&1el?^7yk?(gTstr&;W^LkBe)(W-iy?Ro``u2Qi3@4q$$2O!|;x(y}|L4?` zEz&Tw2lKhOc;GRJB^}+T)9f`dR(gf@TvYkIjAfi^9Tf+0wi04tS#RB3py3UnTW5~P zl$Gzbdu4+Ii7@2h@>U8Jbx&ZIL3l_jVe%0x$o23x0Sq|eJk!@Lv21^=@H%9+l7xe&??(&BT3zxcmHw`mJ_ekm- z8b@WRPs1&IM-t8r_<4nSEt_C0LEmIeSq&dO7Ky4$YfibA%?78*(@cp%rf+o4w;`_$ zAFp(Y0yD*UI3ACJx|JomIP*ME1nf zc{`^)#bGg=G7)`ZSzRsc8mrEnG`;VH66R8E&YW!gP{NC{{ru(@Su$1$l36*V ztulBxLKp-V;=p5?)S|2-dB%_hC<{Sa;EaI(V>ZgX0_=>vX8m>){uderi<3_I080XBTF>l zcq@k8e&pjv3hH?i>KrrE>;zL|wH{3kw7~UtJas<%Qgh<&Rc?EUFt(6VPF%KdOX|W$ zn=hXu%CRVVvL`40_J;Go_Bv~LC2$XaE@PnU$wT^1`O_)w1Jd(@bm-Wn3;+!*nAiNB zI#=F1yx{UE%5NqFQ%N1KsopRNc|)>?l;P0aG|avlRN9 zZ~WSe28<18|1UC-kAUL}Gzzqb!2nI_13(XeCh4CPuUkI_Bw*d*!k*~~(!1|-%%81} zH|b`3xAyHlYn*6qd6sS~O^zgb={3amj&U$mep-lF#oEWvRa@L%^OvB|8&2agQyrtz zk$jn3A>7}n=gi%w0*uO6bb^CI8cNfxzF==fdwXleoitHTrMBnT6=9Vn-D7=*FikaOK+B{9X~tjYPxyMZ@8S#{i2+k7Qms1;YQ9*Dk(?V zOoa1M37jFU=KtACv$Gbd&d;l);K=?-ofgjPe+U+O%O(8vZT5k>&mmtGj9Q>qP+EEq z#^x&)T9>R?HLyJ^Kput^DBqTt9&WIwQEv7g%@ayF?l)obu4TUOku-znRYw2z`SF=H zPlj|_19k{|xwCDFORae(RMS+L)77W*3QRAY;Hjmrwc709JY&F6Y+Dow^`%UzbamC1 z)12CBuV+V|t8SjgYPuF^wa&Yi-M<0ARz(zGeO^0mK}hqVYLiI|;xeHFug~dvs<~xe zmw{c}&exa)LhwalA1T|aefO(=KSv}vpNswd_#BOVFLWp_PazLqmG#`p&9u5|x2M7= z|9hH4N0kCgl7#hKE%bf>e)8t?>TuVY5PakyCgD>G`l66?JY{Jt__MS$lUTKZ4syB1 zDDitxUt?xAg`iyxSXS#q-BWyglU2BG?Iy4)_*lL3Q6f){X&s_SPU^;+@C^3_|BZ&v zQ&19B$tem5^rj{{3V|AmT=@E>NR$ZOjm62^&YaS1-{Te4>Y+rc<4ADPnG{&jCAi1@ z>=Pg54-;1kF$M^!&ZZ`1fZk^@wW7cvsF1)?NhtZ7hE?~w%K))DTpPM-!j}^0O(vtJ zV|-K&&E5X?HOap*IK;&KeT#duSCxB!Bm1`&U}R7xRL1)I$f7$&k82YvnGkom_uOXJ zCDQZEV9C=q{McWPpY8A*f5OgC!~;R>LQjrld-C+Ls8 zZH^NX8qwK!_YKWGX9wkKt)$Kt>K&@gj;DHdKK3pzj3Dkd$>vB3k43zYhAwh}{9J~E z)i0aGkl~oaHDsgU-hA)iPZ#y>+S)CO&c1GUYJ0GAZ!{Xxc#=YNbPO5BcRxyXk9I0o z*V5aZ1QuI8u6>*jj=JyKaTO-`NO#W8&||rj>8@>@M~3bbqsHYlf?*@ZF?R06?Q@B8K%4j=R z&i96HX=YlB_C00ksh;q$e%mdf`uBNDAy(k+l3pj4zvW)CMgYQ%qK+?SN8=Qgw*d-`5&U@owhlGH==+F#0LQ00fWiP zoi>$MZ^X-3Le}|cDMdU=CA@e_SCM+&h59NXu1x#!WBuz>?_AghnePEIV_f80zu6m4 zcvz!OLXF*h33eSbM}B?5&#bln+iMr$IXxvEm8e8>IV)NdwYya~rqJ!sxW1=5AvT#{ zJ>2NUz(5MONKH!wx>nmEL>H@Y}8~^KBLzb7O_d$Xm+SKWM6^q|a%&t(?GI8^J*{uJ?3xlZeF_Tftdx z6Lw}~f1=)$f{ypbP}=nsV1!doia$JQ&xft2>G?|arnl6<4z(|x1u$(HP8PPwGp1u) zz3r|R*5LE+tV>3&MvHnQn%yU&(iWCrw^tl;3CZagokYT;8I)+Ryk;K*KB;E5y?;M$ABrF+jY?|EzrO|gCByRn7poa~o( z)yT4#%wRb`p#c%?QZCYV1&6iG?Q@ynAr@dm`N%i7&$o#{!jlgHVTS2W+ud?av-Rrl zrCXQIUEf>vGFRlqD$m``dHOiotjNv5WS5twuBzTPYYXittWUfN_V^t|i_tT?rVAH|_uVOz%cPUtNk?AwVdJ2wJdw&a} zys8d(b}p9pW8qiBA)3y?#qMrV=NDwRGF)eXz0)rDdLCwDh>FT5rZPRhvwsyWVa#37 zyCg`wa(*lhNMLmT#+&k|E~H)_J6Fl+Kn>2)#ir@_P)ga&-k#j&wd1xs*8A<;^Sevd z`(@~o4vSvtW22kV-W|Mt>?fdllL7z%Dl}V&Mzpy9a;2>*Y=Er_+dJEp zfB{dHq4RH&^S3MrfW-f>o&OQmfG_;_lCA$nn6Un>$zi@2pL0Pj=o#mJX$oZuWEGrL zQ&S^=5TAW_SGt|3-5%)(p3=Dta!A*FJqyCjzbVW645 zZR^9`?vzmGdyK&o+2UaOPeh$Pp^Ftmjf3{a)3wt!L3a1@nm)SNtrT7^!;6mEJ#1f7 z$o*a$8M%&wjr)IqF4NW4W7S*U)Y>bHpNd}Nh^DE*tTR(1gE0Ta;q@{9SpL3;q3`Ta zQ-Jc>CZW&T_Q~CDtL*e?ox+k+cS-@`P+nhJ6qY5$>oKO~yIsdUT7kUPUA1V=vOZSK%+na+iPH9!CnqCrc=W_;e9!@DCVb-L2~ zPRz1cmAlo<9X}qMZee(xhfP!CQp0){VY=r#9w-Gndf(>QV%Bay#>x^R4LPPFd9fX?p}zdH^Pv5Hip_o zRX!&>b7Ci}7(X1+&fGFKXp%+TZ(l1;!9~;;CKmCKjxv+;x9()(I&=y;eDfd0oQm>! z7*7^GpTK@#5-NZEsu$7PJb8E5)-sxM{?QY*?|Qv@jtgI!SbUSwxjF29h+IF&Y&pE7 zi)a#0O@UjqK8UPj7Ql3M*-Y^F%}V~fmODE|DWOq7%&JVQxSZbvN-gQ&|0tn$i1#%WWBhnoMBb= ztI+z-C8Bw0+p3`d)gX0&pMktwz=#Mg_OMcc?*tL~V3KMzczP-UA`7iPuKnz4X6Y@Z z8ox<8HHN;n*6Pi8Gm+2;$!qM{nRi`k)lub|gKuD88tmOoMmBb6easN3tDZ3R%r~vv zsjJKNl=yYgpVqA|+>Bqg6Qy)~wm&~R7KhA8trfTx*VezeLQHThWJ5Z5td~?Yq6B=d zXOlQ^GQeMYOM7N+Salq`e9IzBp@Ho>VoWu)&!B63; zX)jg$D^i+i)xX}a3}zG&Is5YQt8B-2Ic;f~Bf626NiH9K=tCvltAEE^Gl73gK>vH- z^&cqO+<%g$UL#(ohWj_FyT~C%2obiW6aJ*b5eA?Ms3YxuV6i~^zo69EfE+Nyu*{ia z63kHj5^sb|w;Z?M>$SAA!KIeVDU%G_5;zd>WhngzxKrmd1kb}KeiEaf-5kbexT4;~ z7+>c$Cf?812HI_%RYxd zM5~LG$C#v;!g0(Ir(0*JK<|FQ8+Pj2U9y+ozO%j& z@^OX74tF`FxF9@se$j=DorsNX>Na5tHI%eu3Lg4&Mm$llvUWd97D|4~Zj9%1#-TvY zTi(R$z4)d0tSQ^?>+R8`rAwXkRW&nyUh6L`?0!V>T7Hv>gczqSQ-3A$!0*ZR8K+7P zb~H_!g^c$d)pZ`Q8qq+;|EmJ~`A=3Iqm>ewIkPpbYS%V8-bdb0-~Q`Rr80?7p?8;rFzl{KT% zkA7e4hI`H-Q+d;-s&jKoKfaK6)os?RcDFQg&NMo(xi49q--KP)4$U)FEi3dh4RT8$B~5wY07PXGP|n*uy1GiB z33oenmMwJ$ugC#EWAFeAQ-o5pM>>a9`bF+5RhKk@n~k-cj)iYKyMBD`ICm>B*Y>n? zVmh)jRrzP!%RphFZ`ev0PW#!jtv4u+^A7&pX}TVj6S*^UVDnHkYQ|hzuCQsCc4L=kiLy*Mq&0r)E5O z(g}#WP)KtggLZ=}yd#-iN^aJ8Skre;0^DE%`(ttS({h;XH@{bBKD&Qzk|&*2Q=S8PuG69tH{@A;S$xm zeNiRt9=vob`cZI-{9@<}!}7u(#oM(y1+4B~Lq}-q+3kd`0)}29!?45lNxc3=F4WoC zg)k4z_rB9ejx1$|k!m$QFxbS`4CWh70*v0KV($=$gjjrwW zs}{jI=(Dm`WxHjWYYejKr|~P=>N0b6%##3^BX9xbte7tIw}69`w-fwjMe%^!=Gba; zUp;uQSa&9B*p!oUY&xIOwz2xsdQ2PQfYjNKZNXluzCG%mgQ#4NXkIIqxNmYYVxl@a zI0iYe=VYquw{$pxo!?E$&0rMoNkGYh%@7yAt6wriIF@B3+szG$1siRQ2&Jfv@wd@` zYFbzfTH@HW!&P)ScDZf8RE(4s6B{Gmt+pPY82=3{QHK!Oa+1|xxBfJJ)p6)^g9tejnl$N7nT1S5 zH!Wsu&S?0h4xGWjpUd)jgcMcdrpKbZYdjs0t!bZxytOeAil499NnEYVpjdq5#ID@c z$eGbm19k_`^Y9~Gg#?22y6Mf-n{rE=5n-@q@1mIqkQgppYAP#X=UT@I!+beCWQhp^ zkrTdBdi3>Ff}Nz$LblYtjjoH^YVgoCeCds@N)NW(=o;+jjLrc6+s2N;q#eqpRdzZnUfk3L_9hMB1YLxwuFmE2+GB9{c_WO3&C6xgILp zjIG$hv&q*iE(-gWgWkxJHP^?NXtz{AepL_z1d-+GViEUdf-Ytu2%fu)+AF1nEbg22 zU6K34Nd4E(!!bh6V9X2la8W6HIL*PENEO(Ji>AO=-`loV?$dPh{ zFGGaoTwdS?-Mtgr+fXDJN*mEFxkij_AD)$QqSKZel}9g_=?fe>&_g1=n9*oDugA;K z0v*}JzaT(w%NON%eA~ZV`3!rkw#8aEp9K|MmHW@6#_rZGhWWssxJEF%=g5EJJ($l_ z7s;9Xjn-OCcwJ`UA7i34wHGUgrC&^-XPd=wc2M2VE}E(l!v<~MyR{2k(+XWe!&R=< z<`5zxj@|f}gjraH3abob#(uA(CwhB&)g|p2Sehgx_+@qniNp zL4hYFkfn51kCzQa;JYZiBWju@DZaZ?o)*$}naItBC(#QEb8k%&c3-s}2iTqk!;`}_8T?BqcQBk{=DH^>$rZ@bMeVb|r?&ww<-f8NXjto!S! z*zEYIS`_=aOYgz*{&;}0CGT6n!hIhsTuACZjkQIEDr$OzU|dN~YyrN=FXU!e0tPT( z7yaSCodcuUd4&&cZSPNd7pOk5h!`OO`6)^Opv;5F}mx*v_{4EtgXSz+okMTrOPlIkd-O3{pIrV zB>|UnHJ55iz3Ui$^@jT1(j-JT3Tpa&c!Rk~V5cZ_+~XN7&UJr@g;`18QQ=B(sh+J> zG2=9Xz{-q~VVJqPG80W*-sBcno7i#KYDU;q=sj;LB%Wu-lvSuocPzQi+FHlrmGs=* z6V0c&x!Io_7Q?s3v-k7ABXU?c0P^DY&tH%WZzw;UV->#CZ?mH}S)t1a;&?72!#?sx zV3bZ3X)*KO)n&Qo`!`1vW`DkGN2nG5?b+x^N~_5x1vHI|cO|s0?m8hEfOA3K2RmDQ zK6+}>LvV|Fj>a4Co*z>llE-F<27XrQ4uAd*5m_3h5)a2_7I-EtX!$<#_U01Mo&$aW z#P(lHNfjGS8f+(u_gW69{SXzibb6Y}+@|xwopG0E#_Kk}2{DvL=5~5Ef2wQpDFQKn znQ|&nOJG7Im&45U1$w7%{k|| zfx!3F(A;$g82sM~xm{^fmt#U=?yLN=`?fUo{!;TXQka)WbGHHb=GE5+ zN2LqXf)yIYB`9hprjKgD4wI+AcV@`(9J?x;z%~S=wnm$LmTwM~YdFK(Jkoho!`hlz zrdA(u7h}QgB3LC5{P&zb@K_JSp(+R|hpYa!ARqIft*+bY(6@#C=F_UhLpfB`bB_p3 znK2aPCjk%RJ(p=Rkt$~5!EGm27$9)__NLPwqo*ykdg#gg&I1zMk*}nAfyqX9q9Yrw zza;kF)G$9g9?r8f*wZgPX{o=ovxPDS@Bfc96B%MH;zl3uf2FeProY@C3wsqgDvVpL z@75h#^NU_CgEr8|X??yFoUSn0+_(w}R=@9QJjS^C+VYG49@=^x@QuDyNMAg91WQlvBFVt*g4UP4eCt?{37ld43Y6n?!qaiy4XEi@;SBcXzhthrT8ka{lGo z-=NEP)DwjXe)Sk6sPxw-(AVu{EAWWO@QApbPc>XMccf>MDAc|gnGRfZlBMA^n&)tt zVzKHoJZC1@U3o)YD&vq=Y+s^-K@oO)^|81BL9 z(GZuYC&=!$c{9;$bUANh+l3@@tPiGda&PikzA2zG~>yO;=&GLk-rDZbA^pw{-SCtFbn=ofSJRIMB!-Qrfd9>sjlb;MXL3Zv>O{-lq zd0SJKw}P|gVO}k*^LlAr0iUqir|SqZvX`_}t_`rve3w_JC)PsspUL)R%3ydcwn*}G z%i7y(;v<;>|JYB9<@IhhAD z{1Ch{^QTWs0eJ0q3JoZhZEvis@Bru1h${;s&vaY{LvpIra=^AlbI~-V2S523$4~yq zQ|fd+cn?2-i2^RFaFCI5728zkA4T@96VA9=1S6xc!$vg>;)0}eb*}zSt~Kf;DtByq zzoNdD@|~6~LHItg^=egyb-w}&dzAI21EYw%+SI6*$7jDgXA_Wdi~Rn=q7y@mUEXp2 z=g(;*=oaYAjgRuZP1mW|^0Q&C?teD4W>VRD_~^zqI4xoqc5WUV%^b0eKS#D}Y94bq zECMZ`X58!W;+n{rYy*~exQIa9nQQxWkA$1B_?oQ`Jd+k3%nNz(#-Y`D)xuD41n@Kr z(ARI$lF|&Vio3v{_)b%b9EH}N5dNU@)ROj(QB2tr8t0p6zBXw6vNPWv6j_i{O0)Gk z!bR!-;GAa>*96eZlWu{!vh=c{h4Y_nUjUSUppuNDO+5cZDVnjFS{0cs=+;QVTluWb zg>|$H&PS*@jXcw@hXz?i?l)M;r167-TxvJcTFo++;x7|@FNx$-9p^G^z)HL|$6=wDHIM4bN_meSiHUHX8U=(}rc(VO!!>oRPIA51*eHHML4zTc2E`5FaN2N7u`Vu3iAD1t`fqJ{ zv*@(0qHH9(_^{!rtO8&v?!zZQ<;=hMeM#l-c@siFtU;Lboo|qB*CU^ShSR+2=&k<_gjhc)Py;g2LkrFP_Wuxuqtt93gUVg3z7HwI26p>y?)-!z z)a*DPSTNB;KAd{+=FUa@G%s!03uT_Ze=3jz=*5a3ytapfku?-Cq-m>TlH*ux(I z5QqAZZl%+uUcFdMQ>M%NTuZojp(TE;r2x# zI(ll8>v;mIZ}o4$^aP)>bJV7bG+Rn52Au?-Cv(A5+AbRy)yqsawU#b_r^vTp0AJ6NjbE%=PtNjo zZbYsTn7mTH2Wj^ww)ck$Pdg)T7y-dt;RUc@Zq4GRJrQl^qLT@?!}}>pJtAHkLntOS zt@XY<-DTQU8z))bfquyQai~slA;o?Kt!k^|)SZfDI^XcXr{Agbq?DJdpLH8(T$h@+ zsIyj?E6&(qbbF|3F4^!1G3wZ(`#RT*QTw#>wBC&Eq>$gB*KwlAmMDr3I4Ec_AW20W zhW-THhCcb!8T&e&BjG<@zA$dm8)=9Ei7b0-xcw!)1Z}@RJ6XI)KOGhKE9r0BS^#gNZ)qVp`UL_ z={*Pf8We+%r~0`OD69!ToxZ*oR3~WUbvqJxvH&F%uHm3XAZ^L6miB*8F1!YQlcAg7 z706O^d1q!4=|X-xc~Oo9q*b(=I3U$`hmx+SAh(FM+((ie*P3M?gGzY5#B$}@LDCK>nkd_JIc@SNL(lw zlG49y$2|%m)mr$Zj%Lj)zR7hT#M}z!uy&yt4CYDE`o_bsG$zAp-&#cT=Lw>={s(f z%d~0_9UbaZ?a5$NDf3_3qbql#=9Vs_XOI|_mLY_Oiy$AraRsfb^EvIh?YyeNPPqcD zX`&5t^-y7n?PPtC3r~;vW_l>ArM5JG4As zjqssn+O)dyc-~d%6BoPr-hY^(Z5=~`2-O13o^YpPnfwBISiom+;yZ(uylI9UFTd(W z>Ev;*UESDk7rOiNPtchB+ghpyXK%!1S_0L4bli*Tkq~ds+0qxVKe9%xX|@i)Hz~e? z0gy31Tk@J1Qj&tnFfpws;JPDJBD&YAXjtWEV(DZUX2cY7|`8jN+2kay{#_iIg)+OgEV-f zdwM5x4|8&Su*}Vzl$AKDbhKB6#-AN_@2mEO(^{JuEUfm$b;e&dC4Hfm7E0y!tT=1! z_&k(;pCR3{{@V*!q`ZP>VJ#g*)5s_{WG5j$^7Xectz+K~S*;!?BTJ=HG*8scFNnI` zg>`O_KV&zi*)JN=(SS#<(D;~6xV*ePe^l>4cL3!()FqI=Df#K zN>PP}8wQ08>5D>OKg{~*_s2XeHmz-yC<^SHTo^RzoRkDBmRUm7C9NY6*W3fCw#JiP&y&f1bcYM-nWg=+%(^6`w(Bn zC$2WdssT5fY*8n z0K@f?PD9Id!3bGX)vir#{}W8*R~|^6p3b`jSzOA~fu50m8i{zPHK|+7GfmuOJ~5XB zT4b6<4N-*{=bwo2FKTeL<-}LbRSx;6wbJJO2a=_qCY7Nv2HYsl-L*jET3ct@lbSRG z=pvm^d~VuAWmOS&DKWf!(D*~Nmn*MSns37{`A6mh=mg_2Wa|#hk6x~hUQ4Uq?U`z* z{In$R7kL{l=*X(eB5{gOEFp(gJiB;rsooPIC}&aeYr|!$Z_+$1&6=%-Mh#(Wrp2Vz zU2?s9Zvk~9&`^e1g8@$QvL@mHa9dFES-{#{@6{+Qcl+E~8JM(O22st=IewS=esano z#C!QS(43D~Vs53Hm%f{;kr8B}{DX7&8j#2?0MLs`^x&bV48J#X2{^ELzJP|}<=>ls z{`$MNd-q$V!r)sON#t1(5R@pk-&DdZjO8sEKC31FCIP=JUFU)06#rZk^v^Xy=N-Ci z>V$}xIrQ8ZEgj>kDv&<21iz(iRpByCHfGV=p<&J%q(n1D#Hls_TQoR2Nj%2?aK69SVXSolLBKSH(fnlADE~I>%XG`F6F;8REXU zy@SIvs2xz)v~Dm$qP>Ae6}~(^{8SD2w7po1c;(X1s40R>V8vOUa9t*~Kv{YkRlWny zb@t{;_?C90SuIjbi!HgLUZlAjKiL2^dltO5u~I(y$-pRqJ>AoHUoK3u=7pJ?$%_b> zR|odJTQQO!tr7RLh%1x?3fgX~j`5$b5 zP+0u{N@1<0TvKTkDyw(MozEl5(k|%i5SOFwxhCJ~DqSDvM-!O}a<7N4Bbqc4bs1Pt z!G|NnhM;RfjM}X70saTg5ryAMfht0TPlfWE*Ig&0Z`Z7zACbFh=<)7XYrzk_H=-tO zcVr_!nN7yADL7^AFz+H0nu5kABNM$i!k!mN%Eqo;Z1ksSo$LTYn~TXIc7PF#r{}F0 z&08M#Fn(_{nB`erR!f`+Mq;<;m#4aCufUVrgW&I;8&lqBMvk}qY8dgt_pT_fUqj}3 zs61q0nE!0!s!o}$gAAip&3S}pbBBeA59YXbj?MXlEaoM z)|B#R5Xnyj=?u~fs??eFC8tz=&i6d9KkE;pT~I%E)YA)c|Dec1l_Fr6gMsgp1LIe)4JF{^4GQouVV*p?2BHcnC1M3#LLJ~ z(>!r%(dDdoZ%&}=ofZE1f;>y$=~2abbbSdV+s5F97Wjr7XBivQL6eWN8-a)-Wq_+y zD|rEl3m8=_&s?##eyyZ1Gd%?>3F;RPqwQJ{4jSLvAN%M&F>=tAH_XeAH?xNn#nN4VX6dIEXNz3o`KeeMp`X`b)!q$u`82jd6s?y-fpN(7 zAJa>3po-O#h&y>{R05}`6Q36+eH@DBeQ)1M#wiroWAqFAzP zun!(Y(HO?SrPZu@mY)Xw zOQw|8)6%?A{`H)>{fdE@3WS&rL@Gjo8uJH|)-c-Zmr+XtpI(N+r6=Hb%Z>Qe+y3 z=|tFbv%pAt2b-do+IIH)9Qb;v{**JlMgX{^c=Vzs?2v9>aX+Q8p!hG?<_Az(v{^@1A6rYP?I-7EO+@AYp_fys*U<-&y!;TA4c;NckkcyPr`C+zqFh5Y0pFNDG+ zbv~S=G_ZR;o^Ltqi*16=QP<-e$| z-`BHjyNHbVu>g`Oy6$?3p|$pp8N*D4iK)QTuJ56lz+#H>-%yEo$Gaq!s>x+5mP#v@ z`mW@;jr!pdd(gZF$nCv|yC0sI3{pkpHfcR`GwJFRW)C=6tuHJ*RX_tA-WbRvtxAyE z1zHTvNAI{E3H%{RmDp{o&leVAqBV$3SwW4KiI^=ZgB$9(W^PN_;ani(vQQhXL|$lc zb_z3VOvw!6Fx*DSm(-QL?}6Dj?|VJ{F4w!j`UA|Z*TC#%0QlHs{jsB`W|L&oR~|HO zcLwDx_0GIPLE2vGE}h;*#*J5VC*L#E>f8&-rO9#TRLuru72~~qQEl_vC4D&ZGi)@` zD81npPE0abs04>Q3sxaAf@hCugvn6-&R3wNn9~`W!$gje<`@jq z;+OtB*@QOwjM9OpgH-creoob}3hg`K{l{)?xzeQ%?FEEHiHyRmO)~V=y_-5R23<1A z-1PcA|6n9B(pz+2&w|oJD)Tx`LXLJ^GB)XCIxF<3b)MPBs-@E6wpP5SuPg^2#Prz8 z2QG#6(K(Ns?k|+ZdHeV#yB0JA5Ue#d_xQ`$8b=jaEQee?USMn`Sn3gqGF;A`^>OTt zAL^V!<)sLKL9X{ln1^mUn2!ItKtXc>K-il8ZOw1Xm}c=YT-W7ky&U}80e>6_ax!!) z5nS-e;^ybk7Gf%5%2MI5tK?e{h}~~j^$Zh*N`GxVYK|)ed>7?c2L2wpyS6kGD_Y9& zezIJU*pXK;BN^_W7yh9B3UpVjq<*&SXvKI585X%$pKFa_A-b(;W1Znie;AaT2LoeK?3u!d(O#NNWn9Z22<0vbKje- zR|kidSObiNgj+p1XUno0t=ho&HxqL)_0|t8RV0;e$wey9`i>2{id63adW!thK!8qt zl3KjevT-Ngn-LJnzqxDxPcp@C^5ujj!hH>M&2*tz0nVUw-%&9)eC}hLM_M?LczR;-Sy>3U=n0Daqh4AC%6jsUc3uff~qOPO1f{%Orw)DfSpi zH~Q`K&QZKHU;D!N9fyGa6qyHODd3Ea%|?u3F$$MuTnNAj=5F(2N~@;TuU@5#8F9&} z>|Q)kRrL59H?D_=)6U;QGB}O!afJPJ+!p>SRFmE))-V{*-jIzN-y)*>;g9v7;@RB( zjgB0z0kiY_<>41wIR%C5?v578cs6rOn)vLECst0Dbk;w^#bX7h{`cxN>XPFxr6bR^YDnZgDbf z^FnJtJHQ;yZ8m=Kw~X-jMB9HR)4!2?_F_hgUQU!gCvZZmsohpXxgSd4uXrJ#k_a4V z8vos3c@EvczyG=f&s_Z<6!)H)Fo4bNYMrrE9Br@OwKz1aFCD%V9&!WV*W^6??em@+ zCxC;$dO`-3hBr1EBqo%WX@Wc#ljAoIjlFZ_fL4Oa^AMDDC%WH0PedWh00#AKPK8hS{HJBKS&D4LL~Rw94OOFiJTPjk%0X*0Q;bS3tQL52$rTP>b6?mp$`64E;BE9AM@+({~b9!v~xA@^j3l*}E!Qltc!GEko> zPx{d^4qwaX<5S||lu;LE%)Wyj87-WbX$e}jt{ju`&g*9Nnl`5u#pYef7;8AGQdGhJ zX>zb$W}X>0#M7v{-0>7@)`0bGvKe{r`mv@4#uvV_y7|dPaYCLutbDp2!_z`m)lfD? z^Cu(1XvL;70$L~o7vozPUU6TbFct^g$VxE!)DIu$FvPbvAHLjE8l7+={^Ey?lO!7F z4)Q}P+rJU!<&{9!@TFjZPPR|TF*C!G?7Ap9qNGQYKGI8U%oZ?y z`BL19J3!h9$a16yC1B$>CmUgi9}+=0(-#GWf`UcGv+t7cCyh~Olh>$2GD_c$T)aT> zIP+g@+Ib{v?(lMmRiAEeQabhJva75|C;X7QnIox08K>^9bjQ4{&UQvNt9Za6fZba_ z8fTCy-D$_=v`2O0)4q0-%uj_i988~r;>O=iPxq~8BmnO|XDh9oC8%KZK$N$JGhPq0 z`F6O}H2=p;ZHw6czNfEm*X3bm3M)6=j?SrjGZ!fyYu;5XROGJT9C`v(UWlFTnar3{ z-_dhWi=1g5%(z$MKNS)4?R3^N8EjJ#w3Y)}Bg&qQl=mUW%S&pDMcU;0 zAJQ2(nY|-?Hz(dFB;_Y+#e@9s!Jt4X@AWzB)|%}qx$J9*Iw9yffU4a~gc+1awp>;k zJ=T8x>}x!b6hLlkWj&NjNwTL^_RCQDA?T(SpIHq$qGmcU;w}n(gxzI_=tp!`h!5Qn zz*y4sjXt=P$1zmadt^h*^7IfTzD18$ZXn zo8_0!XL$dOX8s#iolmv{P?*$oSymLGdaDo+4FI8|ch=_x!4F`p7CYxJzl2x(?neJV zUILIG&Jh#HM$R?a-zAU#OmKnM?mt&;xIpnvwQz8&(!gGAwf)5zk+AN7=>Dxc`~>o} zZIPZT_ajV%gO~&#M+XYhpy1h#SS~$t+I```Gn4@U=y_d(=2}9<3b;tg+TiEe)asHZi`~p$>I-^)q23}>BG*(?%TgVz_%#XdH<69$=rHlw(eoWbXDE@ z%}Vu8zWTZO`5$dNY7gS%-xxYGu}wYyNQd;Ii9;*AAsFeC4iVCPQw?0NA>jSba5#Dq z=Q`b-!^bblIin=Au!Cy103wPiaJ%Ktl@g}j{i?SNA)oPh_uNX_yPw#Vd-X&GH##R6 z(54VX9I4**&4Bl2W#*&2N;K%~%%3yC4Dx#x#iSU!4)(MR-I0R){oC4cUr{^PqPsQP z(uW*p>T~#nIo%5&_diQ)OjdDn3u^JFv1RQDU{*?2(fE=(EKK-jAB{U%51ax$9W;%) z@=H=HFhiB;M}&EkEbI2(v0f?6Xd>=Gx1)j4W+rPMp|JjvHheD73hUsl)TFQihyA%I z_GEn?%Gt;yJ-x6MlhHc(i9p*|}ti416aZ z3c_u^)e8%mB&^q7Ix|b01X2xyr92dAXdNo#K&a*FuAwt>zlM`yDTpP4guWka7O_a< z1lh8h$7>&|8GpC77W}ldlWsNTNM6>`x#%#3`!ebtxvTwVuhBu1YjK{F+dOmdbq66f zd}@{nI&dQ~Lvonh%d8NuG(lUQSnRhMCTcM2yR5nHVecCiWN4AieA+|k>6&rc%&_5C z$~j)yd^FcM$gNb*uT)a3DjL9_QWw-o;w;NBVG+M=t#|#UWYl>Dg-HpoNHA{`2NwsP zE{~_3jd&tm7PO#4dT3rd8$Cv_XG5~#B&3GLzXZEa%7eAdVm+ui$ke48g1FKcq3YRk zCa+$`cspf*Qg3{~m%`&iBLLp~xuP2z{eFwzGwQ2p^h3Y~knX$h?| z!__|x8!@_HIasbodkl(7JqQc-_SQU82GX^ACsP$;>Uz2V`&#yN3j-2HQIaMhRk^*qK(>K|Dxa;eK5K&DpO3HUvN0odHYB?xnV_qA#s` zUmsvbw)X6}OeA%_NefG%1Gb7I)=HfGQ=jqH-rpMW(6=tlB}j5XF=jTsH*eBmCyPJy zM{{e_c<-0`x%FY0d6}h?mnOT8;Wvkd7QMxidq2DozgA1L5rD5#oqH&`Y*PDUJ~#kA zc#xTqmEc;H=U_)uZRrH5udxnlbu?ocZa?QF>W0ttSy$O8{(6015C5v;i+REmLHRK* z_tWmynu$m;r=B9F1FopmDsD9BXts~&>6!HQ3hsF37R9fO^NolA7%shc2mVm_rTh~d z|J%rRzU}5ei2?sLApXy3|3!5Azhr7=I=6x7P+zYze~>3<)c{>K>qZ;bK(mjQU} z+72>>rBWAWyA9cdgvK7{ni+R}9#aGMt58sI7&&szv^DNzR;8=v=nc%O(e4G{78i$S zcd;~*v8vLdinOaj_-%oHV}YcnFaSc>oT$P%h6GXki;EW(x5#kRI6XonRr4Sd^t5~# z;w12vfG$YLbev@Hl0!I5XTy76KWZ71D;rar^J&hXuefG#i&R+pbK=*~uB;iM3f>D< z*HG9WaDw=)s!>6^vQ8{dR-@~@kXgmGT0Ylif;7ZbHkK8Di5x@;%)`5DldfwCr?|5b z3G2xEI^HytQ5bxT3^B>60&k|?Y}-qO1Y67zO}F&@@_G$WlBYejt9HB1PYU&&BpQy6 zQX5P8OO(o+1UUJnyA@)B{iCqA;Qiw904GW6dn`Fn4Qgo5A;(YasS< z6Z@us909PVg#F;68UEYxesnEs)De` zt$oo~9MjZ{3GSDHA;#Am{Bw4fb6-Fw1IG#+Rv-BI*wN)wSp@mwK0ejh?pSi`lREsf z3op-DB0~_*Iyp=l8j(hWcRCVJR~`1dOcD(6uMFci(Mkts1>h=6zO9y+{wikZ2OO5B|DVrD^D zr%TQ-Ra#LcJ)zz#ny!(AfJwL+Jyav}`M}lYh6(}gjN-1Yp(Z*!ZQZA|d8L>y&0VV2 z%EhuWyWl=r=HV}$#}FY6=Gp^LKM9Il>!q_3(o)y6Q-;rtSFYz2%Xs1&|KU9@H#WMc ztwnRNUmr$G3hS?=|M7jP@?HMZsTA>$qrnH@8G9SGt-YamLv#3bxI;o^mDh*ivYHvH z0Q*MPd);emw>=`0ScDl|BpU3%_o^9OgIx92VyVl(_}e#>(*rhtG(@O#bZi)-UATn` zKd5JpTY7Kp?)c-nlOgtB{YV>oOSy_d`8jag)uVUl^=#_S?#$q?V~UuAgj!Pw|lE#1@+^I`l~J*;exrvE|5cIj&n? zqjdAD$ANy%3b}V`3A~!P0|T~xfqo2JE>2^PuFn6m zDFqozlxkEK3Zu&w1VC@iGq>7R`RSCyW=?W?_a4W77eLNfBnBLI z&z;1NO&PLaOCfYcqm}%SeeV4G!G}E!c{n?!UAkizP)newP$y5A$bEaaeh{s)@l`P& z>ldD$!S=5$DMbf|SZedr@c6ldD)#2RUbH2PDee9X5HWwcawo9Fba#n63tDHnkzqWz zRvnN~vA#3Wr$DVm#OmlU<>?mc6n@l^4fPY(U?!4=4Rjv7h2EqS|WCRm|a(C}uu|K2s)3v#R)McH9SlhamMFyhZp}BVrrQ zh&pZ57P@+UWq7FO4sYhG>^z(i{DSIQl4&S76KVRrZ0gjVs|iNq?Ppz325r@O{yZs@ zmN>b(zehhB4rP>uM;dCldJ>#IVON0<{1e5N(J70WQxFqv^iu?I_7PpwGhnl=8kf0Z ziOe_qtJfczi!bI-Q-vDdU}9&Jc!2mC*$`k(nv4o-W>eeFTn(c=kv0|VG$5S570p{+ z`_^9j;iei)ty(f40oQ~`AyPt>PLAHb{&2I&kf(Z?C#d>Ky@!nz7x(D)mQnz*E74xh z^2wtw3u;OMd7I0B%}30cGY^jU>r|q?pbDF7m;1&TyJ5aH^@bs!o~E;SULKz6JcNTC zB3&^s7w%VT4}D@4&~eiNpSo?&&F%E%AIWHNwH>y59XnifxG`cJG_HV+5LV6t9L38TayAp@6H=#vI@cXSkt zt{F@LQQq&a^1R1iLSulIDZeSgXnnpYEI?gW9j@Y3i5XpTB#N%Jk`MP#LRnzJ}RMIS83vo?sF2FLM+jmd>5ZRv`CTEO%Fm5|9f z)5-e#&7NB!5y2vOZWU%N&&r+N2AB}AjG7_IUuF@O_L=z!jm!FMfCp!=KRW!--} d+1Wn3kl5axkPurp2AoLo?1}c{Qe~^x{{gGG;*S6T literal 75067 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�Gh)}#D3VsU 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 From 67b7eb0ab782cb93ccc4e242451fd697878ffe6e Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Thu, 16 Apr 2020 03:06:53 +0100 Subject: [PATCH 33/37] Org Mode LaTeX Live Preview Major Improvements --- config.org | 43 +++++++++++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/config.org b/config.org index 0813134..413f568 100644 --- a/config.org +++ b/config.org @@ -7,19 +7,25 @@ Welcome to my Emacs configuration! [[./dashboard.png]] This configuration is inspired by : -https://github.com/munen/emacs.d + +`https://github.com/munen/emacs.d` And also loosely inspired by : -https://github.com/daedreth/UncleDavesEmacs/blob/master/config.org +`https://github.com/daedreth/UncleDavesEmacs/blob/master/config.org` With help from his fantastic Emacs tutorial series : -https://www.youtube.com/playlist?list=PLX2044Ew-UVVv31a0-Qn3dA6Sd_-NyA1n +`https://www.youtube.com/playlist?list=PLX2044Ew-UVVv31a0-Qn3dA6Sd_-NyA1n` -This configuration is much more barebones and suited for someone just doing some writing or editing, which is exactly my use case. It does however copy over the useful functionalities (In my personal preference) -As this is a simple literate configuration, not a large actively maintained distribution like Spacemacs or Doom Emacs, feel free to do whatever you want with the configuration. -I've tried to document what every package does, what the code does briefly for beginners to Emacs or literate configurations. +This configuration is much more barebones and suited for someone just +doing some writing or editing, which is exactly my use case. It does +however copy over the useful functionalities (In my personal +preference) As this is a simple literate configuration, not a large +actively maintained distribution like Spacemacs or Doom Emacs, feel +free to do whatever you want with the configuration. I've tried to +document what every package does, what the code does briefly for +beginners to Emacs or literate configurations. * Config ** Appearance @@ -255,29 +261,42 @@ Set Minor Mode as Global : #+END_SRC ** Org Mode *** Simple Org Mode Preview -These are a simple set of functions that will automatically refresh the other buffer, which presumably has the Org Mode PDF open. -This workflow expects you to have 2 window panes open, which can be in any orientation. The Org Mode File you are editing, and the PDF Document to view the changes you are making. -Define functions and set keybindings: +These are a simple set of functions that will automatically refresh +the other buffer, which presumably has the Org Mode PDF open. Once +using the keybindings to quickly export the file, another window will +pop up as a live preview (Which is just an automatically opened +preview of the exported PDF). Define functions and set keybindings: #+BEGIN_SRC emacs-lisp + (defun open-pdf () + (split-window-right) + (other-window 1) + (find-file (concat "/" (substring buffer-file-name 1 (- (length buffer-file-name) 4)) ".pdf")) + (revert-buffer nil t) + (other-window -1)) + (defun update-other-buffer () (interactive) (other-window 1) (revert-buffer nil t) (other-window -1)) + (defun check-if-pdf-is-open () + (setq openwindows (length (delete-dups (mapcar #'window-buffer (window-list))))) + (if (>= openwindows 2) (update-other-buffer) (open-pdf))) + (defun org-compile-beamer-and-update-other-buffer () "Has as a premise that it's run from an org-mode buffer and the other buffer already has the PDF open" (interactive) (org-beamer-export-to-pdf) - (update-other-buffer)) + (check-if-pdf-is-open)) (defun org-compile-latex-and-update-other-buffer () "Has as a premise that it's run from an org-mode buffer and the other buffer already has the PDF open" (interactive) (org-latex-export-to-pdf) - (update-other-buffer)) + (check-if-pdf-is-open)) (define-key org-mode-map (kbd "C-c rl") 'org-compile-latex-and-update-other-buffer) (define-key org-mode-map (kbd "C-c rb") 'org-compile-beamer-and-update-other-buffer) @@ -398,7 +417,7 @@ Install the package, enable it and ensure that it always is installed, and then (use-package company :ensure t :init - (company-mode)) + (global-company-mode)) #+END_SRC ***** Configuration From 580854a8d1a52bfa060f15620c038955a25d06dc Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Sun, 19 Apr 2020 02:27:49 +0100 Subject: [PATCH 34/37] Change to Xresources theme --- config.org | 4 ++-- init.el | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config.org b/config.org index 413f568..c9acd9a 100644 --- a/config.org +++ b/config.org @@ -66,10 +66,10 @@ Install the package, enable it and ensure that it always is installed: The theme for Emacs. Install and set the theme, ensuring that it is always installed: #+BEGIN_SRC emacs-lisp - (use-package dracula-theme + (use-package xresources-theme :ensure t :init - (load-theme 'dracula t)) + (load-theme 'xresources t)) #+END_SRC *** All The Icons All The Icons is a package to display cool icons within Emacs. diff --git a/init.el b/init.el index d20d7a1..16c14dc 100644 --- a/init.el +++ b/init.el @@ -27,7 +27,7 @@ ;; If there is more than one, they won't work right. '(custom-safe-themes (quote - ("3c83b3676d796422704082049fc38b6966bcad960f896669dfc21a7a37a748fa" default))) + ("86704574d397606ee1433af037c46611fb0a2787e8b6fd1d6c96361575be72d2" "a41b81af6336bd822137d4341f7e16495a49b06c180d6a6417bf9fd1001b6d2b" "3c83b3676d796422704082049fc38b6966bcad960f896669dfc21a7a37a748fa" default))) '(package-selected-packages (quote (org-bullets company flyspell-correct-ivy evil ivy which-key use-package)))) From 5754054ebaa2b2925cbf23c5543c8cbbe3d0d036 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Wed, 22 Apr 2020 23:55:31 +0100 Subject: [PATCH 35/37] Change to simpler theme --- config.org | 43 +--------------------------------------- init.el | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 55 insertions(+), 45 deletions(-) diff --git a/config.org b/config.org index c9acd9a..82c48e3 100644 --- a/config.org +++ b/config.org @@ -69,7 +69,7 @@ Install and set the theme, ensuring that it is always installed: (use-package xresources-theme :ensure t :init - (load-theme 'xresources t)) + (load-theme 'xresources t)) #+END_SRC *** All The Icons All The Icons is a package to display cool icons within Emacs. @@ -87,31 +87,6 @@ Install the package, enable it and ensure that it always is installed: :init (all-the-icons-ivy-setup)) #+END_SRC -*** Mode Line -**** Spaceline -Spaceline is the modeline of Spacemacs. -Install the package, enable it and ensure that it always is installed. Then make sure that the default spaceline config is enabled and that the seperators are arrows, for a powerline effect: -#+BEGIN_SRC emacs-lisp - (use-package spaceline - :ensure t - :config - (require 'spaceline-config) - (setq powerline-default-separator (quote arrow)) - (spaceline-spacemacs-theme)) -#+END_SRC - -Display the time on the Mode Line, this is more useful for EXWM: -#+BEGIN_SRC emacs-lisp - (setq display-time-default-load-average nil) - (display-time-mode t) -#+END_SRC -**** Diminish -With Diminish you can optionally remove some of the names of the minor modes in the Mode Line. -Install the package, enable it and ensure that it always is installed: -#+BEGIN_SRC emacs-lisp - (use-package diminish - :ensure t) -#+END_SRC *** Emacs Dashboard A startup dashboard for Emacs, replacing the boring old one. Install the package, enable it and ensure that it always is installed: @@ -190,22 +165,6 @@ Set keys: (global-set-key (kbd "") 'shrink-window-horizontally) (global-set-key (kbd "") 'enlarge-window-horizontally) #+END_SRC -*** Fullscreen Function -Emacs does not begin fullscreen, -this function will automatically fullscreen Emacs on startup: -#+BEGIN_SRC emacs-lisp - (defun fullscreen (&optional f) - (interactive) - (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 - '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0)) - (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 - '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0))) -#+END_SRC - -Call Function on Startup -#+BEGIN_SRC emacs-lisp - (fullscreen) -#+END_SRC ** Autosave Default Emacs will store backup and "temporary" files in the edited files directory, instead this changes it to move it to the UNIX Temporary Directory. Set backup/temporary file directories: diff --git a/init.el b/init.el index 16c14dc..daf4420 100644 --- a/init.el +++ b/init.el @@ -25,15 +25,66 @@ ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. + '(ansi-color-names-vector + ["#d2ceda" "#f2241f" "#67b11d" "#b1951d" "#3a81c3" "#a31db1" "#21b8c7" "#655370"]) + '(custom-enabled-themes (quote (ewal-doom-one))) '(custom-safe-themes (quote - ("86704574d397606ee1433af037c46611fb0a2787e8b6fd1d6c96361575be72d2" "a41b81af6336bd822137d4341f7e16495a49b06c180d6a6417bf9fd1001b6d2b" "3c83b3676d796422704082049fc38b6966bcad960f896669dfc21a7a37a748fa" default))) + ("ba72dfc6bb260a9d8609136b9166e04ad0292b9760a3e2431cf0cd0679f83c3a" "e1ecb0536abec692b5a5e845067d75273fe36f24d01210bf0aa5842f2a7e029f" "be9645aaa8c11f76a10bcf36aaf83f54f4587ced1b9b679b55639c87404e2499" "8a379e7ac3a57e64de672dd744d4730b3bdb88ae328e8106f95cd81cbd44e0b6" "41098e2f8fa67dc51bbe89cce4fb7109f53a164e3a92356964c72f76d068587e" "bffa9739ce0752a37d9b1eee78fc00ba159748f50dc328af4be661484848e476" "fa2b58bb98b62c3b8cf3b6f02f058ef7827a8e497125de0254f56e373abee088" "2035a16494e06636134de6d572ec47c30e26c3447eafeb6d3a9e8aee73732396" "86704574d397606ee1433af037c46611fb0a2787e8b6fd1d6c96361575be72d2" "a41b81af6336bd822137d4341f7e16495a49b06c180d6a6417bf9fd1001b6d2b" "3c83b3676d796422704082049fc38b6966bcad960f896669dfc21a7a37a748fa" default))) + '(fci-rule-color "#a28c6f") + '(hl-todo-keyword-faces + (quote + (("TODO" . "#dc752f") + ("NEXT" . "#dc752f") + ("THEM" . "#2d9574") + ("PROG" . "#3a81c3") + ("OKAY" . "#3a81c3") + ("DONT" . "#f2241f") + ("FAIL" . "#f2241f") + ("DONE" . "#42ae2c") + ("NOTE" . "#b1951d") + ("KLUDGE" . "#b1951d") + ("HACK" . "#b1951d") + ("TEMP" . "#b1951d") + ("FIXME" . "#dc752f") + ("XXX+" . "#dc752f") + ("\\?\\?\\?+" . "#dc752f")))) + '(jdee-db-active-breakpoint-face-colors (cons "#030100" "#A76A19")) + '(jdee-db-requested-breakpoint-face-colors (cons "#030100" "#813c07")) + '(jdee-db-spec-breakpoint-face-colors (cons "#030100" "#100e0d")) + '(objed-cursor-color "#874804") '(package-selected-packages (quote - (org-bullets company flyspell-correct-ivy evil ivy which-key use-package)))) + (bug-hunter ewal-doom-themes ewal-evil-cursors ewal-spacemacs-themes ewal org-bullets company flyspell-correct-ivy evil ivy which-key use-package))) + '(pdf-view-midnight-colors (quote ("#655370" . "#fbf8ef"))) + '(rustic-ansi-faces + ["#040201" "#874804" "#813c07" "#a45101" "#A76A19" "#D76C03" "#F09010" "#e8c99f"]) + '(vc-annotate-background "#040201") + '(vc-annotate-color-map + (list + (cons 20 "#813c07") + (cons 40 "#8c4305") + (cons 60 "#984903") + (cons 80 "#a45101") + (cons 100 "#9d4f02") + (cons 120 "#964d03") + (cons 140 "#8F4C05") + (cons 160 "#a75604") + (cons 180 "#bf6103") + (cons 200 "#D76C03") + (cons 220 "#bc6003") + (cons 240 "#a15403") + (cons 260 "#874804") + (cons 280 "#693906") + (cons 300 "#4b2b08") + (cons 320 "#2d1c0a") + (cons 340 "#a28c6f") + (cons 360 "#a28c6f"))) + '(vc-annotate-very-old-color nil)) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. - '(default ((t (:inherit nil :stipple nil :background "#282a36" :foreground "#f8f8f2" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 109 :width condensed :foundry "ABAT" :family "Courier"))))) + ) + From d5d73ff33f9aec8dc6037915408d2997b3b40d12 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Fri, 24 Apr 2020 01:40:34 +0100 Subject: [PATCH 36/37] LSP Mode --- config.org | 37 +++++++++++++++++++++++++------------ init.el | 2 +- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/config.org b/config.org index 82c48e3..078c788 100644 --- a/config.org +++ b/config.org @@ -405,6 +405,13 @@ Install the package, enable it and ensure that it always is installed, and then :init (company-quickhelp-mode)) #+END_SRC +**** Company Box +Company Box Mode is a mode that gives Company menu options icons. +#+BEGIN_SRC emacs-lisp + (use-package company-box + :ensure t + :hook (company-mode . company-box-mode)) +#+END_SRC ** Multiple Cursors The Multiple Cursors package is pretty self explanatory, you can select and manipulate multiple lines of the same text at the same time, move the cursors in unison. Etc. Install the package, enable it and ensure that it always is installed, and then bind the useful functions to a mnenomic key chord: @@ -426,13 +433,16 @@ Install the package, enable it and ensure that it always is installed, and then ("C-c e" . 'er/expand-region)) #+END_SRC ** LSP Mode -LSP mode will give you IDE capabilities in Emacs, using Microsoft's Universal Language Server Protocol. The same one that VSCode uses for linting, autocompletion. Etc. -Install the package, enable it and ensure that it always is installed, add a hook to make sure it only is activated on Programming Related Major Modes, and set a keychord for the custom prefix. -+BEGIN_SRC emacs-lisp - - ;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l") - (setq lsp-keymap-prefix "s-l") - +LSP mode will give you IDE capabilities in Emacs, using Microsoft's +Universal Language Server Protocol. The same one that VSCode uses for +linting, autocompletion. Etc. Install the package, enable it and +ensure that it always is installed, add a hook to make sure it only is +activated on Programming Related Major Modes, and set a keychord for +the custom prefix. Please check +`https://github.com/emacs-lsp/lsp-mode#installation` for instructions +on how to install the Programming Language Servers that you want. +*** Lsp Mode +#+BEGIN_SRC emacs-lisp (use-package lsp-mode :ensure t :hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode) @@ -440,10 +450,13 @@ Install the package, enable it and ensure that it always is installed, add a hoo ;; if you want which-key integration (lsp-mode . lsp-enable-which-key-integration)) :commands lsp) -+END_SRC + + ;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l") + (setq lsp-keymap-prefix "s-l") +#+END_SRC *** Configuration -+BEGIN_SRC emacs-lisp +#+BEGIN_SRC emacs-lisp ;; optionally (use-package lsp-ui :commands lsp-ui-mode :ensure t) @@ -454,11 +467,11 @@ Install the package, enable it and ensure that it always is installed, add a hoo ;; if you are ivy user (use-package lsp-ivy :commands lsp-ivy-workspace-symbol :ensure t) - (use-package lsp-treemacs :commands lsp-treemacs-errors-list - :ensure t) + ;;(use-package lsp-treemacs :commands lsp-treemacs-errors-list + ;; :ensure t) ;; optionally if you want to use debugger (use-package dap-mode :ensure t) ;; (use-package dap-LANGUAGE) to load the dap adapter for your language -+END_SRC +#+END_SRC diff --git a/init.el b/init.el index daf4420..779da4a 100644 --- a/init.el +++ b/init.el @@ -55,7 +55,7 @@ '(objed-cursor-color "#874804") '(package-selected-packages (quote - (bug-hunter ewal-doom-themes ewal-evil-cursors ewal-spacemacs-themes ewal org-bullets company flyspell-correct-ivy evil ivy which-key use-package))) + (omnisharp csharp-mode bug-hunter ewal-doom-themes ewal-evil-cursors ewal-spacemacs-themes ewal org-bullets company flyspell-correct-ivy evil ivy which-key use-package))) '(pdf-view-midnight-colors (quote ("#655370" . "#fbf8ef"))) '(rustic-ansi-faces ["#040201" "#874804" "#813c07" "#a45101" "#A76A19" "#D76C03" "#F09010" "#e8c99f"]) From 567dd710156b1c820af8d36711241232eceea4f8 Mon Sep 17 00:00:00 2001 From: Curt Spark Date: Mon, 1 Mar 2021 21:39:10 +0000 Subject: [PATCH 37/37] Switch back to stock emacs --- agenda.org | 0 bookmarks | 10 + config.org | 589 +++++++++++++++++++++++++++++++++++++++ dashboard.png | Bin 0 -> 27572 bytes init.el | 86 ++++++ projectile-bookmarks.eld | 1 + 6 files changed, 686 insertions(+) create mode 100644 agenda.org create mode 100644 bookmarks create mode 100644 config.org create mode 100644 dashboard.png create mode 100644 init.el create mode 100644 projectile-bookmarks.eld diff --git a/agenda.org b/agenda.org new file mode 100644 index 0000000..e69de29 diff --git a/bookmarks b/bookmarks new file mode 100644 index 0000000..8c67a49 --- /dev/null +++ b/bookmarks @@ -0,0 +1,10 @@ +;;;; Emacs Bookmark Format Version 1 ;;;; -*- coding: utf-8-emacs -*- +;;; This format is meant to be slightly human-readable; +;;; nevertheless, you probably don't want to edit it. +;;; -*- End Of Bookmark File Format Version Stamp -*- +(("Schoolwork" + (filename . "~/Documents/Schoolwork/") + (front-context-string . "English\n drwxr-") + (rear-context-string . "96 Apr 11 05:07 ") + (position . 246)) +) \ No newline at end of file diff --git a/config.org b/config.org new file mode 100644 index 0000000..9e0064d --- /dev/null +++ b/config.org @@ -0,0 +1,589 @@ +* Bloxie's Emacs Configuration +** By Curt Spark / Bloxiebird. + +* Introduction +Welcome to my Emacs configuration! + +[[./dashboard.png]] + +This configuration is inspired by : + +`https://github.com/munen/emacs.d` + +And also loosely inspired by : + +`https://github.com/daedreth/UncleDavesEmacs/blob/master/config.org` + +With help from his fantastic Emacs tutorial series : + +`https://www.youtube.com/playlist?list=PLX2044Ew-UVVv31a0-Qn3dA6Sd_-NyA1n` + +This configuration is much more barebones and suited for someone just +doing some writing or editing, which is exactly my use case. It does +however copy over the useful functionalities (In my personal +preference) As this is a simple literate configuration, not a large +actively maintained distribution like Spacemacs or Doom Emacs, feel +free to do whatever you want with the configuration. I've tried to +document what every package does, what the code does briefly for +beginners to Emacs or literate configurations. + +* Config +** Appearance +*** Remove Tool Bar +Remove the Tool bar at the top for more room. +Set mode to false: +#+BEGIN_SRC emacs-lisp + (tool-bar-mode -1) +#+END_SRC +*** Remove Menu Bar +Remove the Menu Bar at the top for more room. +Set mode to false: +#+BEGIN_SRC emacs-lisp + (menu-bar-mode -1) +#+END_SRC +*** Remove Scroll Bar +Remove the Scroll Bar at the side for more room. +Set mode to false: +#+BEGIN_SRC emacs-lisp + (scroll-bar-mode -1) +#+END_SRC +*** Display Line Numbers +Display line numbers for all Programming Modes. +Add hook to enable display-line-numbers-mode on all programming major modes: +#+BEGIN_SRC emacs-lisp + (add-hook 'prog-mode-hook 'display-line-numbers-mode) +#+END_SRC +*** Modern Fringes +Modern Fringes is a package that makes the side fringes of Emacs much more cleaner and modern. +Install the package, enable it and ensure that it always is installed: +#+BEGIN_SRC emacs-lisp + (use-package modern-fringes + :ensure t + :init + (modern-fringes-invert-arrows)) +#+END_SRC +*** Theming +The theme for Emacs. +Install and set the theme, ensuring that it is always installed: +Old theme for if you'd like to follow Xresources ++BEGIN_SRC emacs-lisp + (use-package xresources-theme + :ensure t + :init + (load-theme 'xresources t)) ++END_SRC + +#+BEGIN_SRC emacs-lisp + (use-package doom-themes + :ensure t + :config + ;; Global settings (defaults) + (setq doom-themes-enable-bold t ; if nil, bold is universally disabled + doom-themes-enable-italic t) ; if nil, italics is universally disabled + + (load-theme 'doom-gruvbox t) + + ;; Enable flashing mode-line on errors + (doom-themes-visual-bell-config) + + ;; Enable custom neotree theme (all-the-icons must be installed!) + (doom-themes-neotree-config) + ;; or for treemacs users + (setq doom-themes-treemacs-theme "doom-colors") ; use the colorful treemacs theme + (doom-themes-treemacs-config) + + ;; Corrects (and improves) org-mode's native fontification. + (doom-themes-org-config)) +#+END_SRC +*** All The Icons +All The Icons is a package to display cool icons within Emacs. +Install the package, enable it and ensure that it always is installed: +#+BEGIN_SRC emacs-lisp + (use-package all-the-icons + :ensure t) +#+END_SRC + +All The Icons Support for Ivy/Counsel. Which are autocompletion tools in emacs +Install the package, enable it and ensure that it always is installed: +#+BEGIN_SRC emacs-lisp + (use-package all-the-icons-ivy + :ensure t + :init + (all-the-icons-ivy-setup)) +#+END_SRC +*** Emacs Dashboard +A startup dashboard for Emacs, replacing the boring old one. +Install the package, enable it and ensure that it always is installed: +#+BEGIN_SRC emacs-lisp + (use-package dashboard + :ensure t + :config + (dashboard-setup-startup-hook)) + + (setq initial-buffer-choice (lambda () (get-buffer "*dashboard*"))) +#+END_SRC + +**** Emacs Dashboard Configuration +#+BEGIN_SRC emacs-lisp + ;; Set the title + (setq dashboard-banner-logo-title "Welcome to Bloxie's Emacs!") + ;; Set the banner + (setq dashboard-startup-banner 'logo) + ;; Value can be + ;; 'official which displays the official emacs logo + ;; 'logo which displays an alternative emacs logo + ;; 1, 2 or 3 which displays one of the text banners + ;; "path/to/your/image.png" which displays whatever image you would prefer + + ;; Content is not centered by default. To center, set + (setq dashboard-center-content t) + + ;; To disable shortcut "jump" indicators for each section, set + (setq dashboard-show-shortcuts nil) + + ;;To customize which widgets are displayed, you can use the following snippet + + (setq dashboard-items '((recents . 5) + (bookmarks . 5) + (projects . 5) + (agenda . 5) + (registers . 5))) + + ;; To show agenda for the upcoming seven days set the variable show-week-agenda-p to t. + + ;; (setq show-week-agenda-p t) + + ;; Note that setting list-size for the agenda list is intentionally ignored; all agenda items for the current day will be displayed. + + + ;; To customize which categories from the agenda items should be visible in the dashboard set the dashboard-org-agenda-categories to the list of categories you need. + + ;; (setq dashboard-org-agenda-categories '("Tasks" "Appointments")) + + ;; To add icons to the widget headings and their items: + (setq dashboard-set-heading-icons t) + (setq dashboard-set-file-icons t) + + ;; To show navigator below the banner: + (setq dashboard-set-navigator t) + + ;; To customize the buttons of the navigator like this: + ;; 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) + "Homepage" + "Browse homepage" + (lambda (&rest _) (browse-url "https://gitlab.com/bloxiebird/linux-emacs-configuration"))) + ("★" "Star" "Show stars" (lambda (&rest _) (show-stars)) warning) + ("?" "" "?/h" #'show-help nil "<" ">")) + )) +#+END_SRC +** Custom +*** Auto Popup frame Mode +A mode that is similiar in functionality to pop-up-frame, however much more granular in control and toggleable as it is mode. Will stop duplicate windows from creating new frames etc. + +Using simpler solution instead: +#+BEGIN_SRC emacs-lisp + (setq pop-up-frames t) +#+END_SRC + ++BEGIN_SRC emacs-lisp + (defun which-active-modes () + "Which minor modes are enabled in the current buffer." + (let ((active-modes)) + (mapc (lambda (mode) (condition-case nil + (if (and (symbolp mode) (symbol-value mode)) + (add-to-list 'active-modes mode)) + (error nil) )) + minor-mode-list) + active-modes)) + + (defun pop-up-frames-switch-to-buffer (buffer alist) + "Auto Pop up frames switch to buffer command." + (member 'pop-up-frames-mode (which-active-modes))) + + (setq display-buffer-alist + (append display-buffer-alist + '((pop-up-frames-switch-to-buffer . ((display-buffer-reuse-window display-buffer-pop-up-frame) . ((reusable-frames . 0))) + )))) + + (define-minor-mode pop-up-frames-mode + "Pop up frames minor mode" + :lighter " PUF") + + (provide 'pop-up-frames-mode) ++END_SRC +*** Resizing Buffers +These are controls to resize the width and height of windows. +Set keys: +#+BEGIN_SRC emacs-lisp + (global-set-key (kbd "") 'shrink-window) + (global-set-key (kbd "") 'enlarge-window) + (global-set-key (kbd "") 'shrink-window-horizontally) + (global-set-key (kbd "") 'enlarge-window-horizontally) +#+END_SRC +*** Split and Follow Buffer +When splitting a window vertically or horizontally, make sure the mouse and focus follows that new window. +#+BEGIN_SRC emacs-lisp + (defun split-and-follow-horizontally () + (interactive) + (split-window-below) + (balance-windows) + (other-window 1)) + (global-set-key (kbd "C-x 2") 'split-and-follow-horizontally) + + (defun split-and-follow-vertically () + (interactive) + (split-window-right) + (balance-windows) + (other-window 1)) + (global-set-key (kbd "C-x 3") 'split-and-follow-vertically) +#+END_SRC +** Autosave +Default Emacs will store backup and "temporary" files in the edited files directory, instead this changes it to move it to the UNIX Temporary Directory. +Set backup/temporary file directories: +#+BEGIN_SRC emacs-lisp + (setq backup-directory-alist + `((".*" . ,temporary-file-directory))) + (setq auto-save-file-name-transforms + `((".*" ,temporary-file-directory t))) +#+END_SRC +** Wind Move +Windmove is built into Emacs. It lets you move point from window to window using Shift and the arrow keys. This is easier to type than ‘C-x o’ when there are multiple windows open. +Enable Wind Move: +#+BEGIN_SRC emacs-lisp + (when (fboundp 'windmove-default-keybindings) + (windmove-default-keybindings)) +#+END_SRC +** Global Revert Mode +Global Revert Mode is a minor mode that automatically refreshes opened buffers when an external tool has changed their data. +Enable Global Revert Mode: +#+BEGIN_SRC emacs-lisp + (global-auto-revert-mode t) +#+END_SRC +** Rainbow Delimiters +This Minor Mode will mark pairs of brackets with colours. +Install the package, enable it and ensure that it always is installed. +#+BEGIN_SRC emacs-lisp + (use-package rainbow-delimiters + :ensure t) +#+END_SRC + +Set Minor Mode as Global : +#+BEGIN_SRC emacs-lisp + (define-globalized-minor-mode global-rainbow-delimiters-mode rainbow-delimiters-mode + (lambda () (rainbow-delimiters-mode 1))) + + (global-rainbow-delimiters-mode 1) +#+END_SRC +** Rainbow Mode +This Minor Mode will highlight RGB/HEX values with their respective colours. +Install the package, enable it and ensure that it always is installed. +#+BEGIN_SRC emacs-lisp + (use-package rainbow-mode + :ensure t) +#+END_SRC + +Set Minor Mode as Global : + +#+BEGIN_SRC emacs-lisp + (define-globalized-minor-mode global-rainbow-mode rainbow-mode + (lambda () (rainbow-mode 1))) + + (global-rainbow-mode 1) +#+END_SRC +** Pdf Viewer +PDF Tools is, among other things, a replacement of DocView for PDF +files. The key difference is that pages are not pre-rendered by +e.g. ghostscript and stored in the file-system, but rather created +on-demand and stored in memory. + +Actually, displaying PDF files is just one part of PDF Tools. Since +poppler can provide us with all kinds of information about a document +and is also able to modify it, there is a lot more we can do with +it. + +Install the package, enable it and ensure that it always is installed: +#+BEGIN_SRC emacs-lisp + (use-package pdf-tools + :ensure t + :init + (pdf-loader-install)) +#+END_SRC + +** Org Mode +*** Simple Org Mode Preview +These are a simple set of functions that will automatically refresh +the other buffer, which presumably has the Org Mode PDF open. Once +using the keybindings to quickly export the file, another window will +pop up as a live preview (Which is just an automatically opened +preview of the exported PDF). Define functions and set keybindings: +#+BEGIN_SRC emacs-lisp + (defun open-pdf () + (split-window-right) + (other-window 1) + (find-file (concat "/" (substring buffer-file-name 1 (- (length buffer-file-name) 4)) ".pdf")) + (revert-buffer nil t) + (other-window -1)) + + (defun update-other-buffer () + (interactive) + (other-window 1) + (revert-buffer nil t) + (other-window -1)) + + (defun check-if-pdf-is-open () + (setq openwindows (length (delete-dups (mapcar #'window-buffer (window-list))))) + (if (>= openwindows 2) (update-other-buffer) (open-pdf))) + + (defun org-compile-beamer-and-update-other-buffer () + "Has as a premise that it's run from an org-mode buffer and the + other buffer already has the PDF open" + (interactive) + (org-beamer-export-to-pdf) + (check-if-pdf-is-open)) + + (defun org-compile-latex-and-update-other-buffer () + "Has as a premise that it's run from an org-mode buffer and the + other buffer already has the PDF open" + (interactive) + (org-latex-export-to-pdf) + (check-if-pdf-is-open)) + + (define-key org-mode-map (kbd "C-c rl") 'org-compile-latex-and-update-other-buffer) + (define-key org-mode-map (kbd "C-c rb") 'org-compile-beamer-and-update-other-buffer) +#+END_SRC +*** LateX Preview +This package will automatically convert LaTeX Snippets into viewable LaTeX in your Org Mode Documents. +LaTeX Snippets can be defined with text between dollar signs. Example : $ax+bx^2$ + +These LaTeX snippets will also show up when converting to PDF. +Install the package, enable it and ensure that it always is installed: +#+BEGIN_SRC emacs-lisp + (use-package org-fragtog + :ensure t + :init + (add-hook 'org-mode-hook 'org-fragtog-mode)) +#+END_SRC +*** Org Bullets +Org Bullets convert the Asterisks of Org Mode headers into unicode Bullet point with multiple styles. +Install the package, enable it and ensure that it always is installed, then add a hook to enable the Bullet Points when on Org Major Mode: +#+BEGIN_SRC emacs-lisp + (use-package org-bullets + :ensure t + :config + (add-hook 'org-mode-hook (lambda () (org-bullets-mode)))) +#+END_SRC +*** Enable Indent Mode +A hook that will autmatically make sure that indenting of headers are enabled by default, this is visually useful and emulates code hierarchy. +Add a hook to enable the Indentation when on Org Major Mode: +#+BEGIN_SRC emacs-lisp + (add-hook 'org-mode-hook 'org-indent-mode) +#+END_SRC +*** Enable Beamer Support +A hook that will automatically make sure that Beamer Org Mode templates and exportion are enabled by default, for slideshow creation with LaTeX. +Add a hook to enable the Beamer Mode when on Org Major Mode: +#+BEGIN_SRC emacs-lisp + (add-hook 'org-mode-hook 'org-beamer-mode) +#+END_SRC +** Agenda +For Org-Agenda, you can set a location of your Org Agenda file here. +Set Agenda Directory: +#+BEGIN_SRC emacs-lisp + (setq org-agenda-files (quote("~/.emacs.d/agenda.org"))) +#+END_SRC + +This is will integrate the Calendar/Diary into Org-Agenda, so you can get access to dates on public holidays etc. +Set diary to true: +#+BEGIN_SRC emacs-lisp + (setq org-agenda-include-diary t) +#+END_SRC +** Evil Mode +Evil Mode, a package designed to emulate modal editing and vim keybindings in Emacs. +Install the package, enable it and ensure that it always is installed, and then make sure that evil-mode is enabled by default: +#+BEGIN_SRC emacs-lisp + (use-package evil + :ensure t + :init + (evil-mode 1)) +#+END_SRC +** Projectile +Projectile is a project manager, like a dynamic bookmarking system. It will automatically add repositories as projects which you can access via Dired or Ivy completion. +Install the package, enable it and ensure that it always is installed, and then make sure that projectile-mode is enabled by default: +#+BEGIN_SRC emacs-lisp + (use-package projectile + :ensure t + :init + (projectile-mode)) +#+END_SRC +** Auto Completion +*** Which Key +Which Key is an insanely useful package that will automatically show you the possible key combinations to finish a binded keychord. +Install the package, enable it and ensure that it always is installed, and then make sure that which-key is enabled by default: +#+BEGIN_SRC emacs-lisp + (use-package which-key + :ensure t + :init + (which-key-mode)) +#+END_SRC +*** Ivy +Ivy is an autocompletion framework, it will automatically fuzzy find search words for you. This includes file managing, searching, and more via its extensibility and the Counsel package. +Install the package, enable it and ensure that it always is installed, and then make sure that ivy-mode is enabled by default: +#+BEGIN_SRC emacs-lisp + (use-package ivy + :ensure t + :init + (ivy-mode 1) + :bind + ("C-s" . swiper)) +#+END_SRC + +Ivy Configuration +Set an option to make Ivy show previously opened/edited buffers in the buffer selection : +#+BEGIN_SRC emacs-lisp + (setq ivy-use-virtual-buffers t) + ;(setq enable-recursive-minibuffers t) +#+END_SRC +*** Counsel +A collection of Ivy-enhanced versions of common Emacs commands. +Install the package, enable it and ensure that it always is installed: +#+BEGIN_SRC emacs-lisp + (use-package counsel + :ensure t) +#+END_SRC + +Counsel Support in Projectile. +Install the package, enable it and ensure that it always is installed, and then set up bindings for the Projectile specific prefix: +#+BEGIN_SRC emacs-lisp + (use-package counsel-projectile + :ensure t + :init + (counsel-projectile-mode)) + (define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map) +#+END_SRC +*** Company +**** Company Base +Company is a text completion framework for Emacs. The name stands for "complete anything". It uses pluggable back-ends and front-ends to retrieve and display completion candidates. +Install the package, enable it and ensure that it always is installed, and then make sure that company-mode is enabled by default: +#+BEGIN_SRC emacs-lisp + (use-package company + :ensure t + :init + (global-company-mode)) +#+END_SRC + +***** Configuration +#+BEGIN_SRC emacs-lisp + + ; No delay in showing suggestions. + (setq company-idle-delay 0) + + ; Show suggestions after entering one character. + (setq company-minimum-prefix-length 1) + + ; Wrap around when suggestions reach bottom. + (setq company-selection-wrap-around t) + + ; Use tab key to cycle through suggestions. + ; ('tng' means 'tab and go') + (company-tng-configure-default) + +#+END_SRC +**** Company Quickhelp +Company Quickhelp is an extension to company which introduces documentation popups that appears when idling on a company completion candidate. +Install the package, enable it and ensure that it always is installed, and then make sure that company-quickhelp-mode is enabled by default: +#+BEGIN_SRC emacs-lisp + (use-package company-quickhelp + :ensure t + :init + (company-quickhelp-mode)) +#+END_SRC +**** Company Box +Company Box Mode is a mode that gives Company menu options icons. +#+BEGIN_SRC emacs-lisp + (use-package company-box + :ensure t + :hook (company-mode . company-box-mode)) +#+END_SRC +** Multiple Cursors +The Multiple Cursors package is pretty self explanatory, you can select and manipulate multiple lines of the same text at the same time, move the cursors in unison. Etc. +Install the package, enable it and ensure that it always is installed, and then bind the useful functions to a mnenomic key chord: + +To remove the cursors on non-evil mode implementation, use keybind C-g. +For non-evil mode: ++BEGIN_SRC emacs-lisp + (use-package multiple-cursors + :ensure t + :bind + ("C-c m" . 'mc/mark-next-like-this) + :bind + ("C-c C-m" . 'mc/mark-all-like-this)) ++END_SRC + +To undo the last cursors added on evil mode implementation, type gru in NORMAL mode. +To remove the cursors on evil mode implementation, type grq in NORMAL mode. +For evil mode: +#+BEGIN_SRC emacs-lisp + (use-package evil-mc + :ensure t + :config + (global-evil-mc-mode 1) + :bind + ("C-c m" . 'evil-mc-make-all-cursors) + :bind + ("C-c C-m" . 'evil-mc-make-and-goto-next-match)) +#+END_SRC + +** Expand Region +Auto selects a region of text/code, if executed multiple times it will wrap further, like layers of a binary onion. +Install the package, enable it and ensure that it always is installed, and then bind the useful functions to a mnenomic key chord: +#+BEGIN_SRC emacs-lisp + (use-package expand-region + :ensure t + :bind + ("C-c e" . 'er/expand-region)) +#+END_SRC +** LSP Mode +LSP mode will give you IDE capabilities in Emacs, using Microsoft's +Universal Language Server Protocol. The same one that VSCode uses for +linting, autocompletion. Etc. Install the package, enable it and +ensure that it always is installed, add a hook to make sure it only is +activated on Programming Related Major Modes, and set a keychord for +the custom prefix. Please check +`https://github.com/emacs-lsp/lsp-mode#installation` for instructions +on how to install the Programming Language Servers that you want. +*** Lsp Mode +#+BEGIN_SRC emacs-lisp + (use-package lsp-mode + :ensure t + :hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode) + (prog-mode . lsp) + ;; if you want which-key integration + (lsp-mode . lsp-enable-which-key-integration)) + :commands lsp) + + ;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l") + (setq lsp-keymap-prefix "s-l") +#+END_SRC + +*** Configuration +#+BEGIN_SRC emacs-lisp + ;; optionally + (use-package lsp-ui :commands lsp-ui-mode + :ensure t) + (use-package company-lsp :commands company-lsp + :ensure t) + ;; if you are helm user + ;;(use-package helm-lsp :commands helm-lsp-workspace-symbol) + ;; if you are ivy user + (use-package lsp-ivy :commands lsp-ivy-workspace-symbol + :ensure t) + ;;(use-package lsp-treemacs :commands lsp-treemacs-errors-list + ;; :ensure t) + + ;; optionally if you want to use debugger + (use-package dap-mode + :ensure t) + ;; (use-package dap-LANGUAGE) to load the dap adapter for your language +#+END_SRC diff --git a/dashboard.png b/dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..948229904be14a0447b3b8f02860286f5d5c6bcd GIT binary patch literal 27572 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 literal 0 HcmV?d00001 diff --git a/init.el b/init.el new file mode 100644 index 0000000..e5302f4 --- /dev/null +++ b/init.el @@ -0,0 +1,86 @@ +;; Added by Package.el. This must come before configurations of +;; installed packages. Don't delete this line. If you don't want it, +;; just comment it out by adding a semicolon to the start of the line. +;; You may delete these explanatory comments. +(require 'package) +(setq package-enable-at-startup nil) +(add-to-list 'package-archives + '("melpa" . "https://melpa.org/packages/")) +(package-initialize) + +;; Packages + +;; Use-Package + +(unless (package-installed-p 'use-package) + (package-refresh-contents) + (package-install 'use-package)) + +;; Read the Org Configuration +(when (file-readable-p "~/.emacs.d/config.org") + (org-babel-load-file (expand-file-name "~/.emacs.d/config.org"))) + +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(ansi-color-names-vector + ["#d2ceda" "#f2241f" "#67b11d" "#b1951d" "#3a81c3" "#a31db1" "#21b8c7" "#655370"]) + '(custom-safe-themes + '("7546a14373f1f2da6896830e7a73674ef274b3da313f8a2c4a79842e8a93953e" "d6603a129c32b716b3d3541fc0b6bfe83d0e07f1954ee64517aa62c9405a3441" "8f5a7a9a3c510ef9cbb88e600c0b4c53cdcdb502cfe3eb50040b7e13c6f4e78e" "ba72dfc6bb260a9d8609136b9166e04ad0292b9760a3e2431cf0cd0679f83c3a" "e1ecb0536abec692b5a5e845067d75273fe36f24d01210bf0aa5842f2a7e029f" "be9645aaa8c11f76a10bcf36aaf83f54f4587ced1b9b679b55639c87404e2499" "8a379e7ac3a57e64de672dd744d4730b3bdb88ae328e8106f95cd81cbd44e0b6" "41098e2f8fa67dc51bbe89cce4fb7109f53a164e3a92356964c72f76d068587e" "bffa9739ce0752a37d9b1eee78fc00ba159748f50dc328af4be661484848e476" "fa2b58bb98b62c3b8cf3b6f02f058ef7827a8e497125de0254f56e373abee088" "2035a16494e06636134de6d572ec47c30e26c3447eafeb6d3a9e8aee73732396" "86704574d397606ee1433af037c46611fb0a2787e8b6fd1d6c96361575be72d2" "a41b81af6336bd822137d4341f7e16495a49b06c180d6a6417bf9fd1001b6d2b" "3c83b3676d796422704082049fc38b6966bcad960f896669dfc21a7a37a748fa" default)) + '(fci-rule-color "#a28c6f") + '(hl-todo-keyword-faces + '(("TODO" . "#dc752f") + ("NEXT" . "#dc752f") + ("THEM" . "#2d9574") + ("PROG" . "#3a81c3") + ("OKAY" . "#3a81c3") + ("DONT" . "#f2241f") + ("FAIL" . "#f2241f") + ("DONE" . "#42ae2c") + ("NOTE" . "#b1951d") + ("KLUDGE" . "#b1951d") + ("HACK" . "#b1951d") + ("TEMP" . "#b1951d") + ("FIXME" . "#dc752f") + ("XXX+" . "#dc752f") + ("\\?\\?\\?+" . "#dc752f"))) + '(jdee-db-active-breakpoint-face-colors (cons "#030100" "#A76A19")) + '(jdee-db-requested-breakpoint-face-colors (cons "#030100" "#813c07")) + '(jdee-db-spec-breakpoint-face-colors (cons "#030100" "#100e0d")) + '(objed-cursor-color "#874804") + '(package-selected-packages + '(omnisharp csharp-mode bug-hunter ewal-doom-themes ewal-evil-cursors ewal-spacemacs-themes ewal org-bullets company flyspell-correct-ivy evil ivy which-key use-package)) + '(pdf-view-midnight-colors '("#655370" . "#fbf8ef")) + '(rustic-ansi-faces + ["#040201" "#874804" "#813c07" "#a45101" "#A76A19" "#D76C03" "#F09010" "#e8c99f"]) + '(vc-annotate-background "#040201") + '(vc-annotate-color-map + (list + (cons 20 "#813c07") + (cons 40 "#8c4305") + (cons 60 "#984903") + (cons 80 "#a45101") + (cons 100 "#9d4f02") + (cons 120 "#964d03") + (cons 140 "#8F4C05") + (cons 160 "#a75604") + (cons 180 "#bf6103") + (cons 200 "#D76C03") + (cons 220 "#bc6003") + (cons 240 "#a15403") + (cons 260 "#874804") + (cons 280 "#693906") + (cons 300 "#4b2b08") + (cons 320 "#2d1c0a") + (cons 340 "#a28c6f") + (cons 360 "#a28c6f"))) + '(vc-annotate-very-old-color nil)) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) + diff --git a/projectile-bookmarks.eld b/projectile-bookmarks.eld new file mode 100644 index 0000000..ac339ae --- /dev/null +++ b/projectile-bookmarks.eld @@ -0,0 +1 @@ +("~/.emacs.d/") \ No newline at end of file