summaryrefslogblamecommitdiff
path: root/emacs/custom/my-ui.el
blob: 639eb46928ea9b1d7dad299e8f43780f3e10b6b0 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11

                                                                 


               
 




                      
 















                                                         
                                             





                                                      








                                                                     
 
                                    
                                                                       



                                                                
 














                                                               
 
                                                         
                                


                                       

                                                





                                                   
                                     
 



                                                                               

                          
                                                                                       


                                                                         
                    
                                                        



                                        
                                                                                             



                                        
                                             



                                        
 
                                            
 

                      
;;; 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))

;; 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))
        ("\\*\\(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