;;; 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) ;;; no fringe on the right side (set-fringe-mode '(8 . 0)) (require 'standard-themes) (setq standard-themes-bold-constructs t standard-themes-italic-constructs t standard-themes-mixed-fonts t standard-themes-variable-pitch-ui nil standard-themes-mode-line-accented t ;; Accepts a symbol value: standard-themes-fringes 'intense ;; The following accept lists of properties standard-themes-links '(neutral-underline bold) standard-themes-region '(no-extend neutral intense) standard-themes-prompts '(bold italic) ;; more complex alist to set weight, height, and optional ;; `variable-pitch' per heading level (t is for any level not ;; specified): standard-themes-headings '((0 . (extrabold 1.3)) (1 . (bold 1.25)) (2 . (semibold 1.2)) (3 . (medium 1.15)) (t . (1.1)))) ;; Disable all other themes to avoid awkward blending: (mapc #'disable-theme custom-enabled-themes) (load-theme 'standard-dark :no-confirm) (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)) (set-face-attribute 'default nil :font "Source Code Pro" :height 130) ;; 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)) (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 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\\|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\\|slo-calculator\\).*" (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