;;; custom-ui-config.el -*- lexical-binding: t; -*- ;; Copyright (C) 2023 ;; SPDX-License-Identifier: MIT ;; Author: System Crafters Community ;;; Code: (setq use-dialog-box nil fill-column 80 truncate-lines nil truncate-partial-width-windows nil) (menu-bar-mode -1) (tab-bar-mode -1) (tool-bar-mode -1) (scroll-bar-mode -1) (line-number-mode) (global-display-line-numbers-mode -1) (global-prettify-symbols-mode +1) (global-visual-line-mode +1) ;; (set-frame-font "FiraCode Nerd Font-12") ;; (set-frame-parameter nil 'alpha-background 80) ;; Nerd-Icons modes (when (require 'nerd-icons) (nerd-icons-set-font "Symbols Nerd Font Mono") (when (require 'nerd-icons-dired nil :noerror) (add-hook 'dired-mode-hook #'nerd-icons-dired-mode)) (when (require 'nerd-icons-ibuffer nil :noerror) (add-hook 'ibuffer-mode-hook #'nerd-icons-ibuffer-mode)) (when (require 'nerd-icons-completion nil :noerror) (nerd-icons-completion-mode) (when (require 'marginalia nil :noerror) (add-hook 'marginalia-mode-hook #'nerd-icons-completion-marginalia-setup)))) ;; Doom-Modeline (setq doom-modeline-icon t doom-modeline-mu4e nil ;; Use mu4e own formatting doom-modeline-modal nil doom-modeline-modal-icon nil doom-modeline-persp-name nil doom-modeline-persp-icon nil) (when (require 'doom-modeline nil :noerror) (doom-modeline-mode +1)) (setq mu4e-use-fancy-chars t mu4e-headers-thread-single-orphan-prefix '("─>" . "─▶") mu4e-headers-thread-orphan-prefix '("┬>" . "┬▶") mu4e-headers-thread-connection-prefix '("│ " . "│ ") mu4e-headers-thread-first-child-prefix '("├>" . "├▶") mu4e-headers-thread-child-prefix '("├>" . "├▶") mu4e-headers-thread-last-child-prefix '("└>" . "╰▶") mu4e-modeline-all-read '("R:" . "󰑇:") mu4e-modeline-all-clear '("C:" . "󰚭:") mu4e-modeline-new-items '("N:" . "󰎔:") mu4e-modeline-unread-items '("U:" . "󰶊:") mu4e-search-full-label '("F" . "󱊖") mu4e-search-hide-label '("H" . "󰘓") mu4e-search-related-label '("R" . "󰌹") mu4e-search-skip-duplicates-label '("D" . "󰆑") mu4e-search-threaded-label'("T" . "󱇫") mu4e-alert-modeline-formatter 'mu4e-alert-default-mode-line-formatter) ;; Dashboard (setq initial-buffer-choice 'dashboard-open dashboard-icon-type 'nerd-icons dashboard-set-heading-icons t dashboard-set-file-icons t dashboard-set-navigator t dashboard-set-init-info t dashboard-startup-banner 'ascii dashboard-projects-backend 'project-el dashboard-projects-switch-function 'project-switch-project dashboard-projects-show-base t dashboard-recentf-show-base 'align dashboard-items '((recents . 5) (agenda . 15)) dashboard-heading-icons '((recents . "nf-oct-history") (agenda . "nf-oct-calendar")) dashboard-banner-ascii (concat " .000000. \n" " .0. .0. \n" " .00. .00. \n" " .000cl. .lc000. \n" ".0 0.\n" "0. .o0000o. .0\n" " 00 .0' '0. 00 \n" " 00 .0 0. 00 \n" " HHHHH HHHHHHHHHHHH HHHHH \n" "HHHH HHH HHHHHHHHHHHHHH HHHH\n" " HHHHHH HHHHHHHHH HHHHHHHH \n" " HHH HHHH HHHHHHHHH HHHH \n" " HHH HHHHHH \n" " HHHHH HH \n")) (when (require 'dashboard nil :noerror) (keymap-global-set "C-c d" #'dashboard-open) (add-hook 'dashboard-mode-hook #'khalel-import-events)) ;; Extra minor-modes (when (require 'git-gutter nil :noerror) (global-git-gutter-mode +1)) (when (require 'which-key nil :noerror) (which-key-mode +1)) (when (require 'page-break-lines nil :noerror) (global-page-break-lines-mode +1)) ;;;; Help Buffers ;; Make `describe-*' screens more helpful (when (require 'helpful nil :noerror) (keymap-set helpful-mode-map " " #'helpful-update) (keymap-global-set " " #'helpful-command) (keymap-global-set " " #'helpful-callable) (keymap-global-set " " #'helpful-key) (keymap-global-set " " #'helpful-symbol) (keymap-global-set " " #'helpful-variable) (keymap-global-set "C-h F" #'helpful-function)) ;; Bind extra `describe-*' commands (keymap-global-set "C-h K" #'describe-keymap) ;; add visual pulse when changing focus, like beacon but built-in ;; from from https://karthinks.com/software/batteries-included-with-emacs/ (defun pulse-line (&rest _) "Pulse the current line." (pulse-momentary-highlight-one-line (point))) (dolist (command '(scroll-up-command scroll-down-command recenter-top-bottom other-window)) (advice-add command :after #'pulse-line)) (provide 'custom-ui-config) ;;; custom-ui-config.el ends here