summary refs log tree commit diff
path: root/emacs/custom/my-ui.el
blob: a0473e67489b7d65fc89f1fca1b4fa204ad68112 (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
;;;my-ui -- 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))

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