From c974f99921cb4d8eaf917f4edbff9b86c51f2a1b Mon Sep 17 00:00:00 2001 From: Vidhu Kant Sharma Date: Sun, 27 Nov 2022 00:27:58 +0530 Subject: created somewhat custom doom theme --- .doom.d/config.el | 6 +- .doom.d/custom.el | 19 ++- .doom.d/init.el | 16 +- .doom.d/themes/tokyo-night-theme.el | 299 ++++++++++++++++++++++++++++++++++++ 4 files changed, 323 insertions(+), 17 deletions(-) create mode 100644 .doom.d/themes/tokyo-night-theme.el (limited to '.doom.d') diff --git a/.doom.d/config.el b/.doom.d/config.el index b6a38ca..0ad28c3 100644 --- a/.doom.d/config.el +++ b/.doom.d/config.el @@ -7,7 +7,7 @@ ;; Some functionality uses this to identify you, e.g. GPG configuration, email ;; clients, file templates and snippets. (setq user-full-name "Vidhu Kant Sharma" - user-mail-address "vidhukant@protonmail.ch") + user-mail-address "vidhukant@vidhukant.xyz") ;; Doom exposes five (optional) variables for controlling fonts in Doom. Here ;; are the three important ones: @@ -27,11 +27,11 @@ ;; There are two ways to load a theme. Both assume the theme is installed and ;; available. You can either set `doom-theme' or manually load a theme with the ;; `load-theme' function. This is the default: -(setq doom-theme 'doom-tokyo-night) +(setq doom-theme 'tokyo-night) ;; If you use `org' and don't want your org files in the default location below, ;; change `org-directory'. It must be set before org loads! -(setq org-directory "/hdd/org/") +(setq org-directory "/hdd/Documents/org/") ;; This determines the style of line numbers in effect. If set to `nil', line ;; numbers are disabled. For relative line numbers, set this to `relative'. diff --git a/.doom.d/custom.el b/.doom.d/custom.el index 86d1415..f97dc92 100644 --- a/.doom.d/custom.el +++ b/.doom.d/custom.el @@ -3,7 +3,8 @@ ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. - '(package-selected-packages '(lsp-mode))) + '(custom-safe-themes + '("6abe1a7563dbd6524f08e1a875415adb800e918cfb9617f9a1eb8d2ef7f5305a" default))) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. @@ -11,8 +12,14 @@ ;; If there is more than one, they won't work right. ) -(defun my-web-mode-hook () - "Hooks for Web mode." - (setq web-mode-markup-indent-offset 2) -) -(add-hook 'web-mode-hook 'my-web-mode-hook) +(add-hook 'web-mode-hook + (defun my-web-mode-hook () + "Hooks for Web mode." + (setq web-mode-markup-indent-offset 2))) + +(custom-set-faces! + '(window-divider :foreground "#9b1bed") + ;'(line-number :foreground "#ff0aa3"))) + ) +; window transparency +(add-to-list 'default-frame-alist '(alpha . 90)) diff --git a/.doom.d/init.el b/.doom.d/init.el index b6d1d0a..b3af47b 100644 --- a/.doom.d/init.el +++ b/.doom.d/init.el @@ -36,7 +36,7 @@ ;;hydra ;;indent-guides ; highlighted indent columns ;;ligatures ; ligatures and symbols to make your code pretty again - ;;minimap ; show a map of the code on the side + minimap ; show a map of the code on the side modeline ; snazzy, Atom-inspired modeline, plus API ;;nav-flash ; blink cursor line after big motions ;;neotree ; a project drawer, like NERDTree for vim @@ -113,16 +113,16 @@ :lang ;;agda ; types of types of types of types... ;;beancount ; mind the GAAP - ;cc ; C > C++ == 1 + ;;cc ; C > C++ == 1 ;;clojure ; java with a lisp ;;common-lisp ; if you've seen one lisp, you've seen them all ;;coq ; proofs-as-programs ;;crystal ; ruby at the speed of c ;;csharp ; unity, .NET, and mono shenanigans - ;;data ; config/data formats + data ; config/data formats ;;(dart +flutter) ; paint ui and not much else ;;dhall - elixir ; erlang done right + ;;elixir ; erlang done right ;;elm ; care for a cup of TEA? emacs-lisp ; drown in parentheses ;;erlang ; an elegant language for a more civilized age @@ -133,7 +133,7 @@ ;;fstar ; (dependent) types and (monadic) effects and Z3 ;;gdscript ; the language you waited for (go +lsp) ; the hipster dialect - (haskell +lsp) ; a language that's lazier than I am + ;;(haskell +lsp) ; a language that's lazier than I am ;;hy ; readability of scheme w/ speed of python ;;idris ; a language you can depend on ;;json ; At least it ain't XML @@ -160,7 +160,7 @@ ;;rest ; Emacs as a REST client ;;rst ; ReST in peace ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} - rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap() + ;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap() ;;scala ; java, but good ;;(scheme +guile) ; a fully conniving family of lisps sh ; she sells {ba,z,fi}sh shells on the C xor @@ -169,7 +169,7 @@ ;;swift ; who asked for emoji variables? ;;terra ; Earth and Moon in alignment for performance. web ; the tubes - ;;yaml ; JSON, but readable + yaml ; JSON, but readable ;;zig ; C, but simpler :email @@ -182,7 +182,7 @@ ;;emms ;;everywhere ; *leave* Emacs!? You must be joking ;;irc ; how neckbeards socialize - ;;(rss +org) ; emacs as an RSS reader + (rss +org) ; emacs as an RSS reader ;;twitter ; twitter client https://twitter.com/vnought :config diff --git a/.doom.d/themes/tokyo-night-theme.el b/.doom.d/themes/tokyo-night-theme.el new file mode 100644 index 0000000..c4dd15b --- /dev/null +++ b/.doom.d/themes/tokyo-night-theme.el @@ -0,0 +1,299 @@ +;;; themes/tokyo-night-theme.el -*- lexical-binding: t; -*- + +;;; doom-tokyo-night-theme.el --- inspired by VSCode's Tokyo Night theme -*- lexical-binding: t; no-byte-compile: t; -*- +;; +;; Added: December 15, 2021 (#650) +;; Author: FosterHangdaan +;; Maintainer: +;; Source: https://github.com/enkia/tokyo-night-vscode-theme +;; +;;; Commentary: +;;; Code: + +(require 'doom-themes) + + +;; +;;; Variables + +(defgroup doom-tokyo-night-theme nil + "Options for doom-themes" + :group 'doom-themes) + +(defcustom doom-tokyo-night-brighter-modeline nil + "If non-nil, more vivid colors will be used to style the mode-line." + :group 'doom-tokyo-night-theme + :type 'boolean) + +(defcustom doom-tokyo-night-brighter-comments nil + "If non-nil, comments will be highlighted in more vivid colors." + :group 'doom-tokyo-night-theme + :type 'boolean) + +(defcustom doom-tokyo-night-comment-bg doom-tokyo-night-brighter-comments + "If non-nil, comments will have a subtle, darker background. Enhancing their legibility." + :group 'doom-tokyo-night-theme + :type 'boolean) + +(defcustom doom-tokyo-night-padded-modeline nil + "If non-nil, adds a 4px padding to the mode-line. Can be an integer to determine the exact padding." + :group 'doom-tokyo-night-theme + :type '(or integer boolean)) + + +;; +;;; Theme definition + +(def-doom-theme tokyo-night + "A clean, dark theme that celebrates the lights of downtown Tokyo at night." + + ; Color Scheme + ; gui 256 + ; "#f7768e" "#f7768e" => This keyword, HTML elements, Regex group symbol, CSS units, Terminal Red + ; "#ff9e64" "#ff9e64" => Number and Boolean constants, Language support constants + ; "#e0af68" "#e0af68" => Function parameters, Regex character sets, Terminal Yellow + ; "#9ece6a" "#9ece6a" => Strings, CSS class names + ; "#73daca" "#73daca" => Object literal keys, Markdown links, Terminal Green + ; "#b4f9f8" "#b4f9f8" => Regex literal strings + ; "#2ac3de" "#2ac3de" => Language support functions, CSS HTML elements + ; "#7dcfff" "#7dcfff" => Object properties, Regex quantifiers and flags, Markdown headings, Terminal Cyan, Markdown code, Import/export keywords + ; "#7aa2f7" "#7aa2f7" => Function names, CSS property names, Terminal Blue + ; "#bb9af7" "#bb9af7" => Control Keywords, Storage Types, Regex symbols and operators, HTML Attributes, Terminal Magenta + ; "#c0caf5" "#c0caf5" => Variables, Class names, Terminal White + ; "#a9b1d6" "#a9b1d6" => Editor foreground + ; "#9aa5ce" "#9aa5ce" => Markdown Text, HTML Text + ; "#cfc9c2" "#cfc9c2" => Parameters inside functions (semantic highlighting only) + ; "#565f89" "#565f89" => Comments + ; "#414868" "#414868" => Terminal black + ; "#24283b" "#24283b" => Editor background (Storm) + ; "#1a1b26" "#1a1b26" => Editor background (Night) + + ;; name default 256 16 + ;((bg '("#1a1b26" nil nil )) + ((bg '("#100b13" nil nil )) + (bg-alt '("#1a1b26" nil nil )) + (base0 '("#414868" "#414868" "black" )) + (base1 '("#51587a" "#51587a" "brightblack" )) + (base2 '("#61698b" "#61698b" "brightblack" )) + (base3 '("#71799d" "#71799d" "brightblack" )) + (base4 '("#8189af" "#8189af" "brightblack" )) + (base5 '("#9099c0" "#9099c0" "brightblack" )) + (base6 '("#a0aad2" "#a0aad2" "brightblack" )) + (base7 '("#b0bae3" "#b0bae3" "brightblack" )) + (base8 '("#c0caf5" "#c0caf5" "white" )) + (fg-alt '("#c0caf5" "#c0caf5" "brightwhite" )) + (fg '("#a9b1d6" "#a9b1d6" "white" )) + + (grey base4) + (red '("#f7768e" "#f7768e" "red" )) + (orange '("#ff9e64" "#ff9e64" "brightred" )) + (green '("#73daca" "#73daca" "green" )) + (teal '("#2ac3de" "#2ac3de" "brightgreen" )) + (yellow '("#e0af68" "#e0af68" "yellow" )) + (blue '("#7aa2f7" "#7aa2f7" "brightblue" )) + (dark-blue '("#565f89" "#565f89" "blue" )) + (magenta '("#bb9af7" "#bb9af7" "magenta" )) + (violet '("#9aa5ce" "#9aa5ce" "brightmagenta")) + (cyan '("#b4f9f8" "#b4f9f8" "brightcyan" )) + (dark-cyan '("#7dcfff" "#7dcfff" "cyan" )) + ; Additional custom colors + (dark-green '("#9ece6a" "#9ece6a" "green" )) + (brown '("#cfc9c2" "#cfc9c2" "yellow" )) + + ;; face categories -- required for all themes + (highlight cyan) + (vertical-bar (doom-lighten bg 0.05)) + (selection base0) + (builtin red) + (comments (if doom-tokyo-night-brighter-comments base5 base1)) + (doc-comments (doom-lighten (if doom-tokyo-night-brighter-comments base5 base1) 0.25)) + (constants orange) + (functions blue) + (keywords magenta) + (methods blue) + (operators dark-cyan) + (type base8) + (strings dark-green) + (variables base8) + (numbers orange) + (region base0) + (error red) + (warning yellow) + (success green) + (vc-modified orange) + (vc-added green) + (vc-deleted red) + + ;; custom categories + (hidden `(,(car bg) "black" "black")) + (-modeline-bright doom-tokyo-night-brighter-modeline) + (-modeline-pad + (when doom-tokyo-night-padded-modeline + (if (integerp doom-tokyo-night-padded-modeline) doom-tokyo-night-padded-modeline 4))) + + (modeline-fg nil) + (modeline-fg-alt base5) + + (modeline-bg + (if -modeline-bright + base3 + `(,(doom-darken (car bg) 0.15) ,@(cdr base0)))) + (modeline-bg-l + (if -modeline-bright + base3 + `(,(doom-darken (car bg) 0.1) ,@(cdr base0)))) + (modeline-bg-inactive (doom-darken bg 0.1)) + (modeline-bg-inactive-l `(,(car bg) ,@(cdr base1)))) + + + ;; --- Extra Faces ------------------------ + ( + ((line-number-current-line &override) :foreground base8) + ((line-number &override) :foreground comments :background (doom-darken bg 0.025)) + + (font-lock-comment-face + :foreground comments + :background (if doom-tokyo-night-comment-bg (doom-lighten bg 0.05))) + (font-lock-doc-face + :inherit 'font-lock-comment-face + :foreground doc-comments) + + ;;; Doom Modeline + (doom-modeline-bar :background (if -modeline-bright modeline-bg highlight)) + (doom-modeline-buffer-path :foreground base8 :weight 'normal) + (doom-modeline-buffer-file :foreground brown :weight 'normal) + + (mode-line + :background modeline-bg :foreground modeline-fg + :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg))) + (mode-line-inactive + :background modeline-bg-inactive :foreground modeline-fg-alt + :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-inactive))) + (mode-line-emphasis + :foreground (if -modeline-bright base8 highlight)) + (mode-line-buffer-id + :foreground highlight) + + ;;; Indentation + (whitespace-indentation :background bg) + (whitespace-tab :background bg) + + ;;; Ivy + (ivy-subdir :foreground blue) + (ivy-minibuffer-match-face-1 :foreground green :background bg-alt) + (ivy-minibuffer-match-face-2 :foreground orange :background bg-alt) + (ivy-minibuffer-match-face-3 :foreground red :background bg-alt) + (ivy-minibuffer-match-face-4 :foreground yellow :background bg-alt) + + ;;; Elscreen + (elscreen-tab-other-screen-face :background "#353a42" :foreground "#1e2022") + + ;;; Solaire + (solaire-mode-line-face + :inherit 'mode-line + :background modeline-bg-l + :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-l))) + (solaire-mode-line-inactive-face + :inherit 'mode-line-inactive + :background modeline-bg-inactive-l + :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-inactive-l))) + + ;;; Telephone + (telephone-line-accent-active + :inherit 'mode-line + :background (doom-lighten bg 0.2)) + (telephone-line-accent-inactive + :inherit 'mode-line + :background (doom-lighten bg 0.05)) + (telephone-line-evil-emacs + :inherit 'mode-line + :background dark-blue) + + ;;;; rainbow-delimiters + (rainbow-delimiters-depth-1-face :foreground fg) + (rainbow-delimiters-depth-2-face :foreground blue) + (rainbow-delimiters-depth-3-face :foreground orange) + (rainbow-delimiters-depth-4-face :foreground green) + (rainbow-delimiters-depth-5-face :foreground cyan) + (rainbow-delimiters-depth-6-face :foreground yellow) + (rainbow-delimiters-depth-7-face :foreground teal) + + ;;; Treemacs + (treemacs-root-face :foreground magenta :weight 'bold :height 1.2) + (doom-themes-treemacs-root-face :foreground magenta :weight 'ultra-bold :height 1.2) + (doom-themes-treemacs-file-face :foreground fg-alt) + (treemacs-directory-face :foreground base8) + (treemacs-file-face :foreground fg) + (treemacs-git-modified-face :foreground green) + (treemacs-git-renamed-face :foreground yellow) + + ;;; Magit + (magit-section-heading :foreground blue) + (magit-branch-remote :foreground orange) + (magit-diff-our :foreground (doom-darken red 0.2) :background (doom-darken red 0.7)) + (magit-diff-our-highlight :foreground red :background (doom-darken red 0.5) :weight 'bold) + (magit-diff-removed :foreground (doom-darken red 0.2) :background (doom-darken red 0.7)) + (magit-diff-removed-highlight :foreground red :background (doom-darken red 0.5) :weight 'bold) + + ;; --- Major-Mode Faces ------------------- + ;;; elisp + (highlight-quoted-symbol :foreground yellow) + + ;;; js2-mode + (js2-function-param :foreground yellow) + (js2-object-property :foreground green) + + ;;; typescript-mode + (typescript-this-face :foreground red) + (typescript-access-modifier-face :foreground brown) + + ;;; rjsx-mode + (rjsx-tag :foreground red) + (rjsx-text :foreground violet) + (rjsx-attr :foreground magenta :slant 'italic :weight 'medium) + (rjsx-tag-bracket-face :foreground (doom-darken red 0.3)) + + ;;; css-mode / scss-mode + (css-property :foreground blue) + (css-selector :foreground teal) + (css-pseudo-class :foreground orange) + + ;;; markdown-mode + (markdown-markup-face :foreground violet) + (markdown-header-face :inherit 'bold :foreground dark-cyan) + (markdown-blockquote-face :foreground violet :background (doom-lighten bg 0.04)) + (markdown-table-face :foreground violet :background (doom-lighten bg 0.04)) + ((markdown-code-face &override) :foreground dark-cyan :background (doom-lighten bg 0.04)) + + ;;; org-mode + (org-hide :foreground hidden) + (org-block :background (doom-darken base2 0.65)) + (org-block-begin-line :background (doom-darken base2 0.65) :foreground comments :extend t) + (solaire-org-hide-face :foreground hidden) + + ;;; web-mode + (web-mode-json-context-face :foreground brown) + (web-mode-json-key-face :foreground teal) + ;;;; Block + (web-mode-block-delimiter-face :foreground yellow) + ;;;; Code + (web-mode-constant-face :foreground constants) + (web-mode-variable-name-face :foreground variables) + ;;;; CSS + (web-mode-css-pseudo-class-face :foreground orange) + (web-mode-css-property-name-face :foreground blue) + (web-mode-css-selector-face :foreground teal) + (web-mode-css-function-face :foreground yellow) + ;;;; HTML + (web-mode-html-attr-engine-face :foreground yellow) + (web-mode-html-attr-equal-face :foreground operators) + (web-mode-html-attr-name-face :foreground magenta) + (web-mode-html-tag-bracket-face :foreground (doom-darken red 0.3)) + (web-mode-html-tag-face :foreground red)) + + + ;; --- extra variables --------------------- + ;; () + ) + +;;; doom-tokyo-night-theme.el ends here -- cgit v1.2.3