;;; my-ui.el --- configure UI elements -*- lexical-binding: t -*- ;;; Commentary: ;;; Code: ;; cleaning up the UI (scroll-bar-mode -1) (tool-bar-mode -1) (menu-bar-mode -1) (blink-cursor-mode -1) (when (memq window-system '(mac ns)) (add-to-list 'default-frame-alist '(font . "Source Code Pro-15")) (add-to-list 'default-frame-alist '(fullscreen . maximized)) (add-to-list 'default-frame-alist '(ns-appearance . nil)) (add-to-list 'default-frame-alist '(ns-transparent-titlebar . nil)) (when (boundp 'ns-use-native-fullscreen) (setq ns-use-native-fullscreen nil)) (when (boundp 'mac-allow-anti-aliasing) (setq mac-allow-anti-aliasing t))) (when (memq window-system '(x pgtk)) ;; if using `set-frame-font`, when opening a new frame with ;; emacsclient, the font will not be used. Instead, use ;; `default-frame-alist` to have the same font with emacsclient. (add-to-list 'default-frame-alist '(font . "Source Code Pro-11")) ;; this is a fall back in the case we have Unicode characters. ;; For example, with this settings, the following source is ;; rendered correctly 😇 😀 and 🤢 (set-fontset-font t 'symbol "Noto Color Emoji" nil 'append)) ;; Load a custom theme (eval-and-compile (require 'modus-themes nil t) (setq modus-themes-syntax '(yellow-comments) modus-themes-links '(bold) modus-themes-markup '(bold intense background) modus-themes-org-blocks 'gray-background modus-themes-headings '((1 . (background 1)) (2 . (rainbow semibold 1)) (t . (bold))) modus-themes-completions '((matches . (extrabold intense)) (selection . (semibold intense)) (popup . (extrabold intense)))) (load-theme 'modus-operandi t)) (customize-set-variable 'display-time-24hr-format t) (customize-set-variable 'display-time-day-and-date t) (customize-set-variable 'display-time-format "%a %e %b, %H:%M") (customize-set-variable 'display-time-interval 60) (customize-set-variable 'display-time-default-load-average nil) (customize-set-variable 'zoneinfo-style-world-list '(("UTC" "UTC") ("America/Los_Angeles" "Berkeley") ("America/Denver" "Mountain Time") ("America/Chicago" "Central Time") ("America/New_York" "New York") ("Europe/London" "London") ("Europe/Paris" "Paris") ("Asia/Calcutta" "Bangalore") ("Asia/Tokyo" "Tokyo"))) ;; the following setup only works with emacs >=28 I think (when (boundp 'world-clock-list) (setq world-clock-list t)) (when (boundp 'world-clock-time-format) ;; UTC => 02:42 +0000 Wednesday 20 April ;; Berkeley => 19:42 -0700 Tuesday 19 April (setq world-clock-time-format "%R %z %A %d %B")) (when (boundp 'world-clock-timer-enable) (setq world-clock-timer-enable t)) (when (boundp 'world-clock-timer-second) (setq world-clock-timer-second 60)) ;; Disable help mouse-overs for mode-line as they provide little to no benefits (setq mode-line-default-help-echo nil show-help-function nil) (setq uniquify-ignore-buffers-re "^\\*" uniquify-buffer-name-style 'forward uniquify-separator "/") (setq display-buffer-alist `( ("\\*\\(.* # Help.*\\|Help\\|xref\\)\\*" ; See the hooks for `visual-line-mode' (display-buffer-reuse-mode-window display-buffer-in-side-window) (window-width . 0.35) (side . left) (slot . 0)) ("\\*\\(Flymake diagnostics\\|eldoc\\|Package-Lint\\).*" (display-buffer-in-side-window) (window-height . 0.16) (side . top) (slot . 0)) ("\\*\\(Backtrace\\|Warnings\\|Compile-Log\\|Flymake log\\|Async Shell Command\\)\\*" (display-buffer-in-side-window) (window-height . 0.16) (side . top) (slot . 2)) ("\\*\\(Wo\\)\?Man" (display-buffer-in-side-window) (window-width . 0.4) (side . left) (slot . 0)) ("\\*\\(wclock\\).*" (display-buffer-in-side-window) (window-width . 0.35) (side . left) (slot . 0)))) (add-hook 'help-mode-hook 'visual-line-mode) (provide 'my-ui) ;;; my-ui.el ends here