Files
sydnix/users/crumb/programs/emacs/modules/syd-ui.el
2025-02-02 13:47:16 -07:00

80 lines
3.2 KiB
EmacsLisp
Executable File

;;; syd-ui.el -*- lexical-binding: t; -*-
(defvar syd-fixed-pitch-font
(font-spec :family "VictorMono NF" :size 13)
"Default fixed-pitch (monospace) font.")
(defvar syd-variable-pitch-font
(font-spec :family "Overpass" :size 15)
"Default variable-pitch font.")
;; Beautiful theme in dark and light.
(use-package kanagawa-themes
:config
(load-theme 'kanagawa-wave t))
(use-package emacs
;; Display (relative) line numbers only in prog-mode derivatives.
:hook ((prog-mode-hook . display-line-numbers-mode))
:custom ((display-line-numbers-type 'relative)
;; Always ask "y/n"; never "yes/no".
(use-short-answers t)
;; The default value is `ask', meaning that Emacs will ask for
;; confirmation any time you follow a symlink to a file under version
;; control. The documentation claims this is "dangerous, and
;; probably not what you want;" I personally don't see it, and it's
;; usually what I want.
(vc-follow-symlinks t)
;; Log native-compiler warnings, but don't display the
;; buffer. Most of the warnings are "`X' is not known to
;; be defined" which are typically nothing worth concerning.
(native-comp-async-report-warnings-errors 'silent)
;; Don't recenter the view unless >10 lines are scrolled off-screen
;; in a single movement.
(scroll-conservatively 10))
:config
;; Disable the menu bar, scroll bar, and tool bar.
(menu-bar-mode -1)
(scroll-bar-mode -1)
(tool-bar-mode -1)
;; Configuring the defaults for newly-created frames:
;; Set default font.
;; (add-to-list 'default-frame-alist '(font . "VictorMono NF"))
;; Disable the titlebar and borders (decorations).
(add-to-list 'default-frame-alist '(undecorated . t))
;; Maximise the window.
;; (add-to-list 'default-frame-alist '(fullscreen . maximized))
;; Set the default font... again? No! Earlier, we said "when creating a new
;; frame use this font." This call instead defines the face used for
;; "default" text to use this font.
(set-face-attribute 'default nil :font syd-fixed-pitch-font)
(set-face-attribute 'variable-pitch nil :font syd-variable-pitch-font)
;; Use JuliaMono as a fallback for some glyphs that VictorMono does not cover.
(dolist (char-range '((#x0250 . #x02af) ; IPA extensions
(#x2200 . #x22FF))) ; Mathematical operators
(set-fontset-font "fontset-default" char-range "JuliaMono")))
(use-package persp-mode
:disabled
:unless noninteractive
:commands persp-switch-to-buffer
:hook (on-init-ui . persp-mode)
:config
(setq persp-autokill-buffer-on-remove 'kill-weak
persp-reset-windows-on-nil-window-conf nil
persp-nil-hidden t
persp-auto-save-fname "autosave"
persp-save-dir (concat syd-data-dir "workspaces/")
persp-set-last-persp-for-new-frames t
persp-switch-to-added-buffer nil
persp-kill-foreign-buffer-behaviour 'kill
persp-remove-buffers-from-nil-persp-behaviour nil
persp-auto-resume-time -1 ; Don't auto-load on startup
persp-auto-save-opt (if noninteractive 0 1)))
(provide 'syd-ui)