Commit 28d8a05200f1

Vincent Demeester <vincent@sbr.pm>
2020-01-31 13:11:07
emacs.org: move setup-style.el
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent e504407
Changed files (2)
lisp/setup-style.el
@@ -1,18 +1,11 @@
-;;; setup-style.el --- setup emacs style ๐Ÿ˜Ž
-;;; Commentary:
-;;; Code:
 ;;; -*- lexical-binding: t; -*-
-
 ;;; ยฏ\_(ใƒ„)_/ยฏ
-
-;;; Fonts used:
 ;;; - Iosevka (https://github.com/be5invis/Iosevka)
 ;;; - Fira Sans (https://github.com/mozilla/Fira/)
 (setq font-height 110)
 (cond
  ((string= (system-name) "hokkaido")
   (setq font-height 100)))
-
 ;; Middle/Near East: ืฉืœื•ื, ุงู„ุณู‘ู„ุงู… ุนู„ูŠูƒู…
 (when (member "Noto Sans Arabic" (font-family-list))
   (set-fontset-font t 'arabic "Noto Sans Arabic"))
@@ -24,7 +17,7 @@
   (set-fontset-font t 'ethiopic "Noto Sans Ethiopic"))
 
 (set-face-attribute 'default nil
-		    :family "Fira Code" ; "Overpass Mono" to try someday
+                    :family "Fira Code" ; "Overpass Mono" to try someday
                     :height font-height)
 (set-face-attribute 'variable-pitch nil
                     :family "Fira Sans"
@@ -36,7 +29,7 @@
   "Reset fonts to my preferences."
   (interactive)
   (set-face-attribute 'default nil
-		      :family "Fira Code"
+                      :family "Fira Code"
                       :height font-height)
   (set-face-attribute 'variable-pitch nil
                       :family "Fira Sans"
@@ -214,8 +207,3 @@
 (run-with-timer 0 3600 'theme-switcher)
 
 (provide 'setup-style)
-
-;; Local Variables:
-;; coding: utf-8
-;; indent-tabs-mode: nil
-;; End:
emacs.org
@@ -340,3 +340,217 @@
 
   (provide 'setup-browser)
 #+end_src
+
+** ~setup-style.el~
+
+#+begin_src emacs-lisp :tangle lisp/setup-style.el
+  ;;; -*- lexical-binding: t; -*-
+  ;;; ยฏ\_(ใƒ„)_/ยฏ
+  ;;; - Iosevka (https://github.com/be5invis/Iosevka)
+  ;;; - Fira Sans (https://github.com/mozilla/Fira/)
+  (setq font-height 110)
+  (cond
+   ((string= (system-name) "hokkaido")
+    (setq font-height 100)))
+  ;; Middle/Near East: ืฉืœื•ื, ุงู„ุณู‘ู„ุงู… ุนู„ูŠูƒู…
+  (when (member "Noto Sans Arabic" (font-family-list))
+    (set-fontset-font t 'arabic "Noto Sans Arabic"))
+  (when (member "Noto Sans Hebrew" (font-family-list))
+    (set-fontset-font t 'arabic "Noto Sans Hebrew"))
+
+  ;; Africa: แˆ แˆ‹แˆ
+  (when (member "Noto Sans Ethiopic" (font-family-list))
+    (set-fontset-font t 'ethiopic "Noto Sans Ethiopic"))
+
+  (set-face-attribute 'default nil
+                      :family "Fira Code" ; "Overpass Mono" to try someday
+                      :height font-height)
+  (set-face-attribute 'variable-pitch nil
+                      :family "Fira Sans"
+                      :height font-height
+                      :weight 'regular)
+
+  ;;; Utilities and key bindings
+  (defun mu-reset-fonts ()
+    "Reset fonts to my preferences."
+    (interactive)
+    (set-face-attribute 'default nil
+                        :family "Fira Code"
+                        :height font-height)
+    (set-face-attribute 'variable-pitch nil
+                        :family "Fira Sans"
+                        :height font-height
+                        :weight 'regular))
+
+  (bind-key "C-c t f" #'mu-reset-fonts)
+
+  ;;; Interface
+  (use-package frame                      ; Frames
+    :bind ("C-c w f" . toggle-frame-fullscreen)
+    :init
+    ;; Kill `suspend-frame'
+    (unbind-key "C-x C-z")
+    :config (add-to-list 'initial-frame-alist '(fullscreen . maximized)))
+
+  (use-package emacs
+    :custom
+    (use-file-dialog nil)
+    (use-dialog-box nil)
+    (inhibit-splash-screen t)
+    (echo-keystrokes 0.1) ; Faster echo keystrokes
+    (line-number-display-limit-width 10000) ;; Avoid showing ?? in the mode line when we have long lines.
+    (display-time-world-list '(("Europe/London" "London")
+                               ("Europe/Paris" "Paris")
+                               ("America/New_York" "Boston")
+                               ("America/Los_Angeles" "San-Francisco")
+                               ("Asia/Calcutta" "Bangalore")
+                               ("Australia/Brisbane" "Brisbane")))
+    :config
+    (menu-bar-mode -1)
+    (tool-bar-mode -1)
+    (scroll-bar-mode -1)
+    (horizontal-scroll-bar-mode -1)
+    (line-number-mode 1)
+    (column-number-mode 1)
+    (global-hl-line-mode 1)
+    (global-unset-key (kbd "C-z"))
+    (global-unset-key (kbd "C-x C-z"))
+    (global-unset-key (kbd "C-h h")))
+
+  ;;; Theme
+  (setq custom-safe-themes t)    ; Treat themes as safe
+
+  (use-package doom-themes
+    :config
+    (load-theme 'doom-one t)
+    (doom-themes-visual-bell-config)
+    (doom-themes-org-config))
+
+  (use-package solaire-mode
+    :config
+    (setq solaire-mode-remap-modeline nil)
+    (add-hook 'after-change-major-mode-hook #'turn-on-solaire-mode)
+    (add-hook 'after-revert-hook #'turn-on-solaire-mode)
+    (add-hook 'minibuffer-setup-hook #'solaire-mode-in-minibuffer)
+    (add-hook 'ediff-prepare-buffer-hook #'solaire-mode)
+    (advice-add #'persp-load-state-from-file :after #'solaire-mode-restore-persp-mode-buffers))
+
+  ;; Show buffer position percentage starting from top
+  (setq mode-line-percent-position '(-3 "%o"))
+  (defvar mu-eyebrowse-mode-line
+    '(:propertize
+      (:eval
+       (when (bound-and-true-p eyebrowse-mode)
+         (let* ((num (eyebrowse--get 'current-slot))
+                (tag (when num
+                       (nth 2 (assoc num (eyebrowse--get 'window-configs)))))
+                (str (concat
+                      " "
+                      (if (and tag (< 0 (length tag)))
+                          tag
+                        (when num (int-to-string num)))
+                      " ")))
+           str)))
+      face (:background "#81a2be" :foreground "#373b41"))
+    "Mode line format for Eyebrowse.")
+
+  (put 'mu-eyebrowse-mode-line 'risky-local-variable t)
+
+  (setq-default mode-line-format
+                '("%e"
+                  mu-eyebrowse-mode-line
+                  mode-line-front-space
+                  mode-line-mule-info
+                  mode-line-client
+                  mode-line-modified
+                  mode-line-remote
+                  mode-line-frame-identification
+                  mode-line-buffer-identification " " mode-line-position
+                  (vc-mode vc-mode)
+                  (multiple-cursors-mode mc/mode-line)
+                  " " mode-line-modes
+                  mode-line-end-spaces))
+
+  (defmacro rename-modeline (package-name mode new-name)
+    "Rename PACKAGE-NAME with MODE into NEW-NAME in the mode line."
+    `(eval-after-load ,package-name
+       '(defadvice ,mode (after rename-modeline activate)
+          (setq mode-name ,new-name))))
+
+  (defun generic-term-init ()
+    (visual-line-mode -1)
+    (setq-local global-hl-line-mode nil)
+    (setq-local scroll-margin 0))
+
+  (add-hook 'term-mode-hook #'generic-term-init)
+  (add-hook 'shell-mode-hook #'generic-term-init)
+  (add-hook 'eshell-mode-hook #'generic-term-init)
+
+  (use-package moody
+    :config
+    (setq x-underline-at-descent-line t)
+    (moody-replace-mode-line-buffer-identification)
+    (moody-replace-vc-mode))
+
+  (use-package minions                    ; A minor-mode menu for the mode line
+    :init (minions-mode)
+    :config
+    (setq
+     minions-mode-line-lighter "ฮป="
+     minions-direct '(flycheck-mode)))
+
+  (setq-default indicate-buffer-boundaries 'left)
+  (setq-default indicate-empty-lines +1)
+
+  (use-package highlight
+    :ensure t
+    :pin melpa)
+
+  (use-package highlight-numbers
+    :hook (prog-mode . highlight-numbers-mode))
+
+  (use-package symbol-overlay
+    :defer 4
+    :bind
+    ("M-s h ." . symbol-overlay-put)
+    ("M-s h n" . symbol-overlay-jump-next)
+    ("M-s h p" . symbol-overlay-jump-prev)
+    :hook (prog-mode . symbol-overlay-mode)
+    :config
+    (setq symbol-overlay-idle-time 0.2))
+
+  (use-package rainbow-delimiters
+    :hook (prog-mode . rainbow-delimiters-mode))
+
+  (use-package rainbow-mode
+    :commands rainbow-mode
+    :hook (prog-mode . rainbow-mode))
+
+  (use-package visual-fill-column
+    :commands visual-fill-column-mode)
+
+  (use-package hide-mode-line-mode
+    :commands hide-mode-line-mode)
+
+  (defun set-light-theme ()
+    "Set the light theme with some customization if needed."
+    (interactive)
+    (load-theme 'doom-one-light t))
+
+  (defun set-dark-theme ()
+    "Set the dark theme with some customization if needed."
+    (interactive)
+    (load-theme 'doom-one t))
+
+  (defun theme-switcher ()
+    (interactive)
+    (let ((current-hour (string-to-number (format-time-string "%H"))))
+      (if (and (> current-hour 6) (< current-hour 20))
+          (set-light-theme)
+        (set-dark-theme))))
+
+  ;; Run at every 3600 seconds, after 0s delay
+  (run-with-timer 0 3600 'theme-switcher)
+
+  (provide 'setup-style)
+#+end_src