My GNU Emacs Configuration.
Go to file
Curt Spark 2b23c6df7c Dracula Theme and Modeline configuration 2020-04-13 00:39:27 +01:00
README.org Readme.org 2020-04-12 01:01:38 +01:00
config.org Dracula Theme and Modeline configuration 2020-04-13 00:39:27 +01:00
init.el Dracula Theme and Modeline configuration 2020-04-13 00:39:27 +01:00

README.org

+TITLE: Bloxie's Emacs Configuration

Introduction

Welcome to my Emacs configuration!

Config

Appearance

Remove Tool Bar

  (tool-bar-mode -1)

Remove Menu Bar

  (menu-bar-mode -1)

Remove Scroll Bar

  (scroll-bar-mode -1)

Theming

  (use-package dracula-theme
    :ensure t
    :init
    (load-theme 'dracula t))

All The Icons

  (use-package all-the-icons
    :ensure t)

All The Icons for Ivy/Counsel

  (use-package all-the-icons-ivy
    :ensure t
    :init
    (all-the-icons-ivy-setup))

Mode Line

Mode Line Configuration :

  (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)
  (use-package telephone-line 
    :ensure t
    :init
    (telephone-line-mode))

Emacs Dashboard

Install the Emacs Dashboard :

  (use-package dashboard
    :ensure t
    :config
    (dashboard-setup-startup-hook))

  (setq initial-buffer-choice (lambda () (get-buffer "*dashboard*")))

Emacs Dashboard Config :

  ;; 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)))

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

  (global-set-key (kbd "<C-up>") 'shrink-window)
  (global-set-key (kbd "<C-down>") 'enlarge-window)
  (global-set-key (kbd "<C-left>") 'shrink-window-horizontally)
  (global-set-key (kbd "<C-right>") 'enlarge-window-horizontally)

Fullscreen Function

  (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)))

Call Function on Startup

  (fullscreen)

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.

  (use-package dmenu
    :ensure t
    :bind
    ("s-f" . 'dmenu))

Evil Mode

  (use-package evil
    :ensure t
    :init
    (evil-mode 1))

Org Mode

Org Bullets

  (use-package org-bullets
    :ensure t
    :config
    (add-hook 'org-mode-hook (lambda () (org-bullets-mode))))

Enable Indent Mode

  (add-hook 'org-mode-hook 'org-indent-mode)

Enable Beamer Support

  (add-hook 'org-mode-hook 'org-beamer-mode)

Projectile

Install Projectile:

  (use-package projectile
    :ensure t
    :init
    (projectile-mode))

Auto Completion

Ivy

    (use-package ivy
      :ensure t
      :init
      (ivy-mode 1))

Ivy Configuration :

  (setq ivy-use-virtual-buffers t)
  (setq enable-recursive-minibuffers t)

#+END_SRC

Counsel

  (use-package counsel
    :ensure t)

Counsel for Projectile

  (use-package counsel-projectile
    :ensure t
    :init
    (counsel-projectile-mode))
  (define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map)

Company

  (use-package company
    :ensure t
    :init
    (global-company-mode 1))

Which Key

  (use-package which-key
    :ensure t
    :init
    (which-key-mode))

Spell Correction

Flyspell Correct Ivy

  (use-package flyspell-correct-ivy
    :ensure t
    :bind ("C-M-;" . flyspell-correct-wrapper)
    :init
    (setq flyspell-correct-interface #'flyspell-correct-ivy))