;;; thanos-aesthetics.el --- -*- lexical-binding: t; -*- ;; Copyright (C) 2023 Thanos Apollo ;; Author: Thanos Apollo ;; Keywords: ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; ╭━━━━┳╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭━━━╮╱╱╱╱╱╭╮╭╮╱╱╱╱╱╱╱╱╭━━━╮ ;; ┃╭╮╭╮┃┃╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╭━╮┃╱╱╱╱╱┃┃┃┃╱╱╱╱╱╱╱╱┃╭━━╯ ;; ╰╯┃┃╰┫╰━┳━━┳━╮╭━━┳━━╮┃┃╱┃┣━━┳━━┫┃┃┃╭━━╮╱╱╱╱┃╰━━┳╮╭┳━━┳━━┳━━╮ ;; ╱╱┃┃╱┃╭╮┃╭╮┃╭╮┫╭╮┃━━┫┃╰━╯┃╭╮┃╭╮┃┃┃┃┃╭╮┃╭━━╮┃╭━━┫╰╯┃╭╮┃╭━┫━━┫ ;; ╱╱┃┃╱┃┃┃┃╭╮┃┃┃┃╰╯┣━━┃┃╭━╮┃╰╯┃╰╯┃╰┫╰┫╰╯┃╰━━╯┃╰━━┫┃┃┃╭╮┃╰━╋━━┃ ;; ╱╱╰╯╱╰╯╰┻╯╰┻╯╰┻━━┻━━╯╰╯╱╰┫╭━┻━━┻━┻━┻━━╯╱╱╱╱╰━━━┻┻┻┻╯╰┻━━┻━━╯ ;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃┃ ;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╰╯ ;;; Code: (require 'nerd-icons) (setf inhibit-startup-message t) (setf initial-scratch-message nil) ;; Transparency (add-to-list 'default-frame-alist '(alpha-background . 90)) (add-to-list 'default-frame-alist '(alpha 90 90)) (when (equal is-phone nil) (scroll-bar-mode -1) (set-fringe-mode 10)) (tool-bar-mode -1) (tooltip-mode -1) (menu-bar-mode -1) (global-hl-line-mode) (require 'which-key) (which-key-mode 1) (blink-cursor-mode -1) (menu-bar--visual-line-mode-enable) (global-visual-line-mode 1) ;; Set emojis for emacs 29 (require 'emojify) (global-emojify-mode) (global-emojify-mode-line-mode) (setf visible-bell t) (column-number-mode) (global-display-line-numbers-mode 1) (menu-bar--display-line-numbers-mode-relative) ;;Disable line numbers for some modes (defvar thanos/no-line-number-modes '(pdf-view-mode-hook org-mode-hook term-mode-hook shell-mode-hook eshell-mode-hook vterm-mode-hook elfeed vterm-mode telega-chat-mode-hook telega-root-mode-hook nov-mode-hook transmission-mode-hook)) (cl-loop for mode in thanos/no-line-number-modes do (add-hook mode (lambda () (display-line-numbers-mode 0)))) ;; Set font-size for each device (custom-set-faces (if is-hermes '(default ((t (:inherit nil :height 120 :family "Jetbrains Mono")))) '(default ((t (:inherit nil :height 130 :family "Jetbrains Mono")))))) (require 'modus-themes) ;; Modus-themes configuration (setq modus-themes-italic-constructs t modus-themes-bold-constructs nil modus-themes-mixed-fonts nil modus-themes-variable-pitch-ui nil modus-themes-custom-auto-reload t modus-themes-disable-other-themes t modus-themes-prompts '(italic bold) modus-themes-completions '((matches . (extrabold)) (selection . (semibold italic text-also underline))) modus-themes-org-blocks 'tinted-background) (setq modus-themes-common-palette-overrides '((fg-line-number-inactive "gray40") (fg-line-number-active cyan-intense) ;; bg values: ;; molokai: #1c1e1f ;; 1337: #191919 ;; gruvbox: #282828 ;; henna: #21272e ;; monokai: #272822 ;; badger: #171717 ;; ayu-dark: #0d1017 (bg-main "#171717") ;; (overline-heading-1 gold) (fg-heading-1 red-warmer) ;; (bg-heading-1 bg-blue-nuanced) (bg-line-number-inactive unspecified) (bg-line-number-active unspecified) (bg-paren-match bg-magenta-intense) (underline-paren-match fg-main) (underline-err red-intense) (underline-warning yellow-faint) (underline-note cyan-faint) (string green) (border-mode-line-active bg-mode-line-active) (border-mode-line-inactive bg-mode-line-inactive) (bg-mode-line-active bg-lavender) ;; set fg from badger theme (fg-mode-line-active "#F6F3E8") (border-mode-line-active blue-intense) (bg-hl-line bg-dim) (cursor slate) ,@modus-themes-preset-overrides-intense)) (setq modus-themes-headings '((1 . (ultrabold 1.35)) (2 . (semibold 1.2)) (agenda-date . (1.3)) (agenda-structure . (variable-pitch light 1.8)) (t . (1.15)))) (defun theme-invisible-dividers (_theme) "Make window dividers for THEME invisible." (let ((bg (face-background 'default))) (custom-set-faces `(fringe ((t :background ,bg :foreground ,bg))) `(window-divider ((t :background ,bg :foreground ,bg))) `(window-divider-first-pixel ((t :background ,bg :foreground ,bg))) `(window-divider-last-pixel ((t :background ,bg :foreground ,bg)))))) (add-hook 'enable-theme-functions #'theme-invisible-dividers) (load-theme 'modus-vivendi) ;; Don't display battery-mode on desktop (if is-zeus (display-battery-mode 0) (display-battery-mode 1)) ;; UI -- Vertico, consult, marginalia (require 'vertico) (require 'marginalia) (vertico-mode) (savehist-mode) (define-key global-map (kbd "C-x b") 'consult-buffer) (define-key global-map (kbd "C-c m") 'consult-imenu) (add-hook 'marginalia-mode-hook #'nerd-icons-completion-marginalia-setup) (marginalia-mode) ;; Helpful (require 'helpful) (define-key global-map (kbd "C-h f") #'helpful-callable) (define-key global-map (kbd "C-h v") #'helpful-variable) (define-key global-map (kbd "C-h k") #'helpful-key) (define-key global-map (kbd "C-h x") #'helpful-command) (define-key global-map (kbd "C-c C-d") #'helpful-at-point) (define-key global-map (kbd "C-h F") #'helpful-function) ;; ibuffer (global-set-key (kbd "C-x C-b") 'ibuffer) (add-hook 'ibuffer-mode-hook 'nerd-icons-ibuffer-mode) (provide 'thanos-aesthetics) ;;; thanos-aesthetics.el ends here