;; Start of oni-gui (defun oni-gui-setup-faces (frame) "Setup faces for FRAME." (set-face-attribute 'fixed-pitch frame :font "Fantasque Sans Mono-15") (set-face-attribute 'variable-pitch frame :font "Dosis-16")) (defun oni-gui-setup-fontsets (frame) "Setup fontsets for FRAME. If FRAME is nil, they’re set for the current frame." (let ((font-awesome "Font Awesome 5 Free Solid-12")) (set-fontset-font t #xf026 font-awesome frame) (set-fontset-font t #xf027 font-awesome frame) (set-fontset-font t #xf028 font-awesome frame) (set-fontset-font t #xf240 font-awesome frame) (set-fontset-font t #xf241 font-awesome frame) (set-fontset-font t #xf242 font-awesome frame) (set-fontset-font t #xf243 font-awesome frame) (set-fontset-font t #xf244 font-awesome frame) (set-fontset-font t #xf2c9 font-awesome frame) (set-fontset-font t #xf6a9 font-awesome frame) (set-fontset-font t #xf769 font-awesome frame) (set-fontset-font t #xf76b font-awesome frame)) (let ((font-awesome "Font Awesome 5 Free Regular-12")) (set-fontset-font t #xf0c8 font-awesome frame) (set-fontset-font t #xf14a font-awesome frame)) (let ((dejavu-sans-mono "DejaVu Sans Mono-12")) (set-fontset-font t #x25c9 dejavu-sans-mono frame) (set-fontset-font t #x25cb dejavu-sans-mono frame) (set-fontset-font t #x2738 dejavu-sans-mono frame) (set-fontset-font t #x273f dejavu-sans-mono frame) (set-fontset-font t #x2713 dejavu-sans-mono frame))) ;; Thanks to the article at ;; https://andreyorst.gitlab.io/posts/2020-07-21-programming-ligatures-in-emacs/ (defun oni-gui-setup-ligatures (&optional _) "Define ligatures supported by Fantasque Sans Mono." (let ((ligatures `((?= . ,(regexp-opt '("==" "===" "=/=" "=>" "==>" "=>>" "=<<"))) (?! . ,(regexp-opt '("!=" "!=="))) (?< . ,(regexp-opt '("<-<" "<<-" "<--" "<-" "<->" "<=<" "<<=" "<==" "<=>" "<~>" "<~~" "<~" "<<<" "<<" "<=" "<>" "<|||" "<||" "<|" "<|>" "" "->>" "-<" "-<<"))) (?> . ,(regexp-opt '(">->" ">=>" ">>=" ">>-" ">-" ">=" ">>" ">>>"))) (?~ . ,(regexp-opt '("~~" "~>" "~~>"))) (?| . ,(regexp-opt '("|>" "||>" "|||>" "||"))) (?: . ,(regexp-opt '("::"))) (?& . ,(regexp-opt '("&&"))) (?/ . ,(regexp-opt '("//" "/*"))) (?* . ,(regexp-opt '("*/" "**/")))))) (dolist (char-regexp ligatures) (set-char-table-range composition-function-table (car char-regexp) `([,(cdr char-regexp) 0 font-shape-gstring]))))) (use-package emacs :ensure-system-package (("/opt/homebrew/Caskroom/font-fantasque-sans-mono" . font-fantasque-sans-mono) ("/opt/homebrew/Caskroom/font-dosis" . font-dosis)) :config (setf (map-elt default-frame-alist 'font) "Fantasque Sans Mono-15") (setf (map-elt default-frame-alist 'internal-border-width) 15) (setq-default cursor-type '(bar . 2)) (setq-default cursor-in-non-selected-windows 'box) (setq frame-resize-pixelwise t) (scroll-bar-mode -1) (unless (eq system-type 'windows-nt) (if (daemonp) (progn (add-hook 'after-make-frame-functions #'oni-gui-setup-ligatures) (add-hook 'after-make-frame-functions #'oni-gui-setup-fontsets) (add-hook 'after-make-frame-functions #'oni-gui-setup-faces)) (oni-gui-setup-fontsets nil) (oni-gui-setup-faces nil) (oni-gui-setup-ligatures))) (global-unset-key (kbd "C-z")) (global-set-key (kbd "C-c c") '("Frequently used commands" . oni-gui-hydra/body)) (when (fboundp 'pixel-scroll-precision-mode) (pixel-scroll-precision-mode))) (use-package yoshi-theme :vc (:url "https://git.sr.ht/~ryuslash/yoshi-theme" :rev :newest) :init (load-theme 'yoshi :no-confirm) :config (require 'yoshi-mode-line)) ;; End of oni-gui