;; init-ui.el --- Better lookings and appearances. -*- lexical-binding: t -*- ;; Author: kj ;; URL: https://git.kj2.me/kj/confi-emacs-actual ;;; Commentary: ;; ;; Visual (UI) configurations for better lookings and appearances. ;; ;;; Code: ;; Optimization (setq idle-update-delay 1.0) (setq-default cursor-in-non-selected-windows nil) (setq highlight-nonselected-windows nil) (setq fast-but-imprecise-scrolling t) (setq redisplay-skip-fontification-on-input t) ;; Sidebar a la derecha con los archivos (use-package dired-sidebar :hook (dired-mode . hl-line-mode) :bind ([f9] . dired-sidebar-toggle-sidebar) :commands (dired-sidebar-toggle-sidebar) :config (setq dired-sidebar-theme 'nerd ;; dired-sidebar-should-follow-file t ;; dired-sidebar-follow-file-idle-delay 0.5 )) ;; Show line numbers (use-package display-line-numbers :ensure nil :hook ((prog-mode conf-mode toml-ts-mode yaml-mode yaml-ts-mode) . display-line-numbers-mode) :init (setq display-line-numbers-width-start t)) ;; Suppress GUI features (setq use-file-dialog nil use-dialog-box nil inhibit-startup-screen t inhibit-startup-echo-area-message user-login-name inhibit-default-init t initial-scratch-message nil) (unless (daemonp) (advice-add #'display-startup-echo-area-message :override #'ignore)) ;; Display dividers between windows (setq window-divider-default-places t window-divider-default-bottom-width 1 window-divider-default-right-width 1) (add-hook 'window-setup-hook #'window-divider-mode) ;; Mouse & Smooth Scroll ;; Scroll one line at a time (less "jumpy" than defaults) (when (display-graphic-p) (setq mouse-wheel-scroll-amount '(1 ((shift) . hscroll)) mouse-wheel-scroll-amount-horizontal 1 mouse-wheel-progressive-speed nil)) (setq scroll-step 1 scroll-margin 0 scroll-conservatively 100000 auto-window-vscroll nil scroll-preserve-screen-position t) ;; Smooth scrolling (use-package ultra-scroll :hook (elpaca-after-init . ultra-scroll-mode)) ;; Use fixed pitch where it's sensible (use-package mixed-pitch :diminish) ;; Display ugly ^L page breaks as tidy horizontal lines (use-package page-break-lines :diminish :hook (elpaca-after-init . global-page-break-lines-mode) :config (dolist (mode '(dashboard-mode emacs-news-mode)) (add-to-list 'page-break-lines-modes mode))) ;; Transient (when (childframe-workable-p) ;; Display transient in child frame (use-package transient-posframe :diminish :defines posframe-border-width :custom-face (transient-posframe ((t (:inherit tooltip)))) (transient-posframe-border ((t (:inherit posframe-border :background unspecified)))) :hook (after-init . transient-posframe-mode) :init (setq transient-mode-line-format nil transient-posframe-border-width posframe-border-width transient-posframe-poshandler 'posframe-poshandler-frame-center transient-posframe-parameters '((left-fringe . 8) (right-fringe . 8))))) ;; La lĂ­nea bonita esa de abajo (use-package doom-modeline :init (doom-modeline-mode) (setq doom-modeline-project-detection 'auto doom-modeline-buffer-file-name-style 'relative-from-project doom-modeline-major-mode-color-icon t doom-modeline-buffer-modification-icon t doom-modeline-indent-info nil doom-modeline-persp-name t)) (use-package hide-mode-line :autoload turn-off-hide-mode-line-mode :hook (((eat-mode eshell-mode shell-mode term-mode vterm-mode embark-collect-mode lsp-ui-imenu-mode pdf-annot-list-mode) . turn-on-hide-mode-line-mode))) ;; A minor-mode menu for mode-line (use-package minions :hook (elpaca-after-init . minions-mode)) ;; Iconos bonitos para varias cosas (use-package nerd-icons :commands nerd-icons-install-fonts :functions font-installed-p :config (unless (font-installed-p nerd-icons-font-family) (nerd-icons-install-fonts t))) ;; nerd-icons en ibuffer (use-package nerd-icons-ibuffer :hook (ibuffer-mode . nerd-icons-ibuffer-mode)) ;; Nerd icons para vertico (use-package nerd-icons-completion :hook (vertico-mode . nerd-icons-completion-mode)) ;; Usar nerd-icons en dired (use-package nerd-icons-dired :after nerd-icons :hook (dired-mode . nerd-icons-dired-mode)) (provide 'init-ui) ;;; init-ui.el ends here