summary refs log tree commit diff
path: root/emacs/custom/my-ui.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/custom/my-ui.el')
-rw-r--r--emacs/custom/my-ui.el127
1 files changed, 127 insertions, 0 deletions
diff --git a/emacs/custom/my-ui.el b/emacs/custom/my-ui.el
new file mode 100644
index 0000000..a0473e6
--- /dev/null
+++ b/emacs/custom/my-ui.el
@@ -0,0 +1,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