summary refs log tree commit diff
path: root/emacs/custom/my-ui.el
blob: f798f0ae43cee19d04b5e4856fb8ffe020e5aabf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
;;; my-ui.el --- configure UI elements
;;; Commentary:

;;; Code:
(eval-and-compile
  (require 'use-package))

(use-package scroll-bar
  :config
  (scroll-bar-mode -1))

(use-package tool-bar
  :config
  (tool-bar-mode -1))

(use-package menu-bar
  :config
  (menu-bar-mode -1))

(use-package diminish
  :ensure t)

(use-package frame
  :config
  (blink-cursor-mode -1)
  (setq frame-title-format '("%b@" (:eval (or (file-remote-p default-directory 'host) system-name))))
  (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)))

(use-package modus-themes
  :ensure t
  :init
  ;; Load the theme files before enabling a theme (else you get an error).
  (modus-themes-load-themes)
  :config
  (modus-themes-load-operandi)
  :custom
  (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)))))

(require 'time)
(setq display-time-24hr-format t)
(setq display-time-day-and-date t)
(setq display-time-format "%a %e %b, %H:%M")
(setq display-time-interval 60)
(setq display-time-default-load-average nil)
(setq 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)
  (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)

(use-package uniquify
  :defer 5
  :config
  ;; don't muck with special buffers
  (setq uniquify-ignore-buffers-re "^\\*")
  (setq uniquify-buffer-name-style 'forward)
  (setq 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\\)\\*"
         (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