My doom emacs configuration
doom header
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
;; Place your private configuration here! Remember, you do not need to run 'doom
;; sync' after modifying this file!
EXWM Configuration
Package Requirements
Helper Functions
System Integration
Window Management
Polybar Integration
Perspective EXWM Integration
Core EXWM Configuration
Keybindings
Multi-Monitor Configuration
Visual Customization
System Integration
multi monitor code suggestion fix
doom configuration
(setq doom-font (font-spec :family "Maple Mono NF" :size 20 :weight 'normal)
doom-variable-pitch-font (font-spec :family "Maple Mono NF" :size 22)
doom-big-font (font-spec :family "Maple Mono NF" :size 24))
;; Enable EXWM
;; (setq fancy-splash-image "~/.config/doom/Emacs.png")
(setq display-line-numbers-type 'relative)
doom theme fix
;; (setq doom-theme 'elegant) ; my own custom theme
;; (setq catppuccin-flavor 'frappe)
;; (setq doom-theme 'doom-nano-light)
;; (custom-set-faces!
;; '(default :background "#303446")
;; '(org-list-dt :foreground "#EF9F76")
;; '(org-bullet :foreground "#F4B8E4"))
doom custom theme
;;; doom-bluecurve-theme.el --- inspired by Red Hat Bluecurve -*- lexical-binding: t; no-byte-compile: t; -*-
;;
;; Copyright (C) 2025 by Custom User
;;
;; Author: Custom User
;; Version: 1.0.0
;; Keywords: custom themes, faces
;; Homepage: https://github.com/doomemacs/themes
;; Package-Requires: ((emacs "25.1") (cl-lib "0.5") (doom-themes "2.2.1"))
;;
;;; Commentary:
;;
;; A theme inspired by the classic Red Hat Bluecurve theme.
;;
;;; Code:
;; (require 'doom-themes)
;; ;;
;; ;;; Variables
;; (defgroup doom-bluecurve-theme nil
;; "Options for the `doom-bluecurve' theme."
;; :group 'doom-themes)
;; (defcustom doom-bluecurve-brighter-modeline nil
;; "If non-nil, more vivid colors will be used to style the mode-line."
;; :group 'doom-bluecurve-theme
;; :type 'boolean)
;; (defcustom doom-bluecurve-brighter-comments nil
;; "If non-nil, comments will be highlighted in more vivid colors."
;; :group 'doom-bluecurve-theme
;; :type 'boolean)
;; (defcustom doom-bluecurve-padded-modeline doom-themes-padded-modeline
;; "If non-nil, adds a 4px padding to the mode-line.
;; Can be an integer to determine the exact padding."
;; :group 'doom-bluecurve-theme
;; :type '(choice integer boolean))
;; ;;
;; ;;; Theme definition
;; (def-doom-theme doom-bluecurve
;; "A theme inspired by Red Hat Bluecurve"
;; ;; name default 256 16
;; ((bg '("#e6e6e6" "#e6e6e6" "white"))
;; (fg '("#000000" "#000000" "black"))
;; ;; These are off-color variants of bg/fg, used primarily for `solaire-mode',
;; ;; but can also be useful as a basis for subtle highlights (e.g. for hl-line
;; ;; or region), especially when paired with the `doom-darken', `doom-lighten',
;; ;; and `doom-blend' helper functions.
;; (bg-alt '("#eeeeee" "#eeeeee" "white"))
;; (fg-alt '("#777777" "#777777" "black"))
;; ;; These should represent a spectrum from bg to fg, where base0 is a starker
;; ;; bg and base8 is a starker fg. They are used for (1) custom themed faces,
;; ;; (2) to define the face of unspecified `custom-set-faces'.
;; (base0 '("#f0f0f0" "#f0f0f0" "white"))
;; (base1 '("#eeeeee" "#eeeeee" "brightwhite"))
;; (base2 '("#e6e6e6" "#e6e6e6" "brightwhite"))
;; (base3 '("#cccccc" "#cccccc" "brightwhite"))
;; (base4 '("#b3b3b3" "#b3b3b3" "brightblack"))
;; (base5 '("#999999" "#999999" "brightblack"))
;; (base6 '("#777777" "#777777" "brightblack"))
;; (base7 '("#555555" "#555555" "black"))
;; (base8 '("#000000" "#000000" "black"))
;; (grey base4)
;; (red '("#cc0000" "#cc0000" "red"))
;; (orange '("#f57900" "#f57900" "brightred"))
;; (green '("#73d216" "#73d216" "green"))
;; (teal '("#5e7ab7" "#5e7ab7" "brightgreen"))
;; (yellow '("#f5c211" "#f5c211" "yellow"))
;; (blue '("#4464ac" "#4464ac" "brightblue"))
;; (dark-blue '("#3450a0" "#3450a0" "blue"))
;; (magenta '("#551a8b" "#551a8b" "brightmagenta"))
;; (violet '("#6c3483" "#6c3483" "magenta"))
;; (cyan '("#0088cc" "#0088cc" "brightcyan"))
;; (dark-cyan '("#0077aa" "#0077aa" "cyan"))
;; ;; These are the "universal syntax classes" that doom-themes establishes.
;; ;; These *must* be included in every doom themes, or your theme will throw an
;; ;; error, as they are used in the base theme defined in doom-themes-base.
;; (highlight blue)
;; (vertical-bar (doom-darken base2 0.1))
;; (selection dark-blue)
;; (builtin blue)
;; (comments (if doom-bluecurve-brighter-comments dark-cyan base6))
;; (doc-comments (if doom-bluecurve-brighter-comments (doom-lighten dark-cyan 0.15) base6))
;; (constants magenta)
;; (functions blue)
;; (keywords blue)
;; (methods blue)
;; (operators fg)
;; (type blue)
;; (strings green)
;; (variables fg)
;; (numbers magenta)
;; (region base3)
;; (error red)
;; (warning orange)
;; (success green)
;; (vc-modified yellow)
;; (vc-added green)
;; (vc-deleted red)
;; ;; custom categories
;; (modeline-bg (if doom-bluecurve-brighter-modeline base3 base2))
;; (modeline-bg-alt (doom-darken bg 0.15))
;; (modeline-fg base8)
;; (modeline-fg-alt base6)
;; (-modeline-pad
;; (when doom-bluecurve-padded-modeline
;; (if (integerp doom-bluecurve-padded-modeline) doom-bluecurve-padded-modeline 4))))
;; ;;;; Base theme face overrides
;; (((font-lock-comment-face &override)
;; :slant 'italic
;; :background (if doom-bluecurve-brighter-comments (doom-lighten bg 0.05)))
;; ((font-lock-keyword-face &override) :weight 'bold)
;; ((font-lock-constant-face &override) :weight 'bold)
;; ((line-number &override) :foreground base6)
;; ((line-number-current-line &override) :foreground fg :background base2)
;; (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-alt :foreground modeline-fg-alt
;; :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-alt)))
;; (mode-line-emphasis :foreground (if doom-bluecurve-brighter-modeline base8 highlight))
;; ;;;; css-mode <built-in> / scss-mode
;; (css-proprietary-property :foreground orange)
;; (css-property :foreground green)
;; (css-selector :foreground blue)
;; ;;;; doom-modeline
;; (doom-modeline-bar :background (if doom-bluecurve-brighter-modeline modeline-bg highlight))
;; (doom-modeline-evil-emacs-state :foreground magenta)
;; (doom-modeline-evil-insert-state :foreground blue)
;; ;;;; markdown-mode
;; (markdown-markup-face :foreground base5)
;; (markdown-header-face :inherit 'bold :foreground blue)
;; (markdown-code-face :background base1)
;; ;;;; org <built-in>
;; (org-block :background base1)
;; (org-block-begin-line :foreground fg :slant 'italic)
;; ;;;; solaire-mode
;; (solaire-mode-line-face
;; :inherit 'mode-line
;; :background modeline-bg-alt
;; :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-alt)))
;; (solaire-mode-line-inactive-face
;; :inherit 'mode-line-inactive
;; :background modeline-bg-alt
;; :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-alt))))
;; ;;;; Base theme variable overrides-
;; ())
;;; doom-bluecurve-theme.el ends here
custom dashboard
;; Bild-Banner
;; Titel
;; Link und Hilfe
;; Footer
eat configuration
(use-package! eat
:defer t
:config
(when (fboundp 'eat-global-mode)
(eat-global-mode)
(setq eat-kill-buffer-on-exit t)))
tailwindcss configuration
(use-package! eglot
:config
(add-to-list 'eglot-server-programs
'(((web-mode :language-id "html")
(heex-ts-mode :language-id "html")) . ("tailwindcss-language-server" "--stdio"))))
(after! lsp-mode
(use-package! lsp-tailwindcss
:config
(setq lsp-tailwindcss-add-on-mode t
lsp-tailwindcss-server-version "0.14.8"
lsp-tailwindcss-skip-config-check t)))
citar configuration
(setq! citar-bibliography '("~/org-roam/library/master.bib"))
(setq! citar-library-paths '("~/org-roam/library/files/")
citar-notes-paths '("~/org-roam/library/notes/"))
org-roam
org roam search
vulpea
org-ql
;; (use-package! org-ql
;; :config
;; (setq
;; org-ql-views
;; '(("stuck" lambda nil
;; (interactive)
;; (org-ql-search
;; (org-agenda-files)
;; '(and (tags "story")
;; (not (tags "ignore"))
;; (not (done)) ;; Finished stories should be excluded
;; (not (descendants (todo "NEXT"))) ;; If there are already
;; ;; something in progress
;; ;; it will shown
;; (and (not (descendants (done))) ;; There are not scheduled not finished items
;; (not (descendants (scheduled)))))
;; :narrow nil :super-groups
;; '((:name "Waiting" :order 8 :todo "WAIT")
;; (:name "Important" :order 1 :deadline t :priority>= "B")
;; (:name "Work" :order 2 :tag "work")
;; (:name "Study" :order 2 :tag "study")
;; (:name "Stucked" :order 3 :tag "story"))
;; :title "stuck-projects"))
;; ("reports" lambda nil
;; (interactive)
;; (org-ql-search
;; (org-agenda-files)
;; '(and (or (tags-local "weekly")
;; (tags-local "monthly"))
;; (not (tags "ignore")))
;; :narrow nil :super-groups
;; '((:name "Weekly reports" :tag "weekly")
;; (:name "Monthly reports" :tag "monthly"))
;; :title "Introspection reports"))
;; ("next" lambda nil
;; (interactive)
;; (org-ql-search
;; (org-agenda-files)
;; '(and (or (tags-local "refile")
;; (todo "PROG")
;; (todo "WAIT")
;; (todo "NEXT"))
;; (not (tags "ignore"))
;; (not (property "linked"))
;; (not (done)))
;; :sort '(date)
;; :narrow nil
;; :super-groups
;; `((:name "In progress" :order 1 :todo "PROG")
;; (:name "Daily" :order 2 :regexp ,org-repeat-re)
;; (:name "Waiting" :order 3 :todo "WAIT")
;; (:name "Refile" :order 3 :tag "refile")
;; (:name "Important" :order 3 :priority>= "B")
;; (:auto-tags t :order 5))
;; :title "Next actions"))
;; ("calendar" lambda nil
;; (interactive)
;; (org-ql-search
;; (org-agenda-files)
;; `(and (ts-active)
;; (regexp ,org-scheduled-time-hour-regexp)
;; (not (done)))
;; :sort '(date)
;; :narrow nil
;; :super-groups
;; '((:auto-planning t))
;; :title "Calendar"))
;; ("dashboard" lambda nil
;; (interactive)
;; (org-ql-search
;; (org-agenda-files)
;; '(and (or (ts-active :to today)
;; (deadline auto)
;; (todo "PROG")
;; (and (tags "journal")
;; (not (tags "weekly"))
;; (not (tags "monthly"))
;; (not (tags "yearly"))
;; (todo)))
;; (not (todo "WAIT"))
;; (not (tags "ignore"))
;; (not (property "linked"))
;; (not (done)))
;; :sort '(date)
;; :narrow nil
;; :super-groups
;; `((:name "In progress" :order 1
;; :tag "monthly" :tag "weekly" :todo "PROG")
;; (:name "Agenda" :order 2
;; :deadline t :regexp ,org-scheduled-time-hour-regexp)
;; (:name "Daily" :order 2
;; :and (:todo nil :regexp ,org-repeat-re))
;; (:name "Today" :order 3 :tag "Tasks")
;; (:name "Important" :order 3 :priority>= "B")
;; (:auto-tags t :order 5))
;; :title "Dashboard"))))
;; )
org-roam ui
toc-org
;; toc-org Konfiguration
;; Integration mit org-roam
md-to-org
org-projects
org-tidy
org-babel-async
make org prettier
org agenda
calendar
deft
(setq deft-directory "~/org-roam/notes")
olivetti global mode
gleam configuration
;; Gleam-Modus konfigurieren
;; Tree-Sitter-Grammatik für Gleam installieren
;; Entscheide dich für EINEN der folgenden Blöcke:
;; Option 1: Wenn du Eglot verwenden möchtest
python configuration
typst configuration
typst exporter
lsp bridge
;; (use-package! lsp-bridge
;; :after yasnippet
;; :init
;; (require 'yasnippet)
;; (yas-global-mode 1)
;; :config
;; (require 'lsp-bridge)
;; (global-lsp-bridge-mode)
;; ;; TailwindCSS-Unterstützung
;; ;; Installation des TailwindCSS-Servers
;; ;; npm install -g @tailwindcss/language-server
;; ;; Multiserver-Konfiguration für HTML mit TailwindCSS
;; (setq lsp-bridge-multi-lang-server-mode-list
;; '(((web-mode html-mode) . "html_tailwindcss")))
;; ;; Aktiviere Vervollständigung in Strings (wichtig für TailwindCSS in HTML-Klassen)
;; (setq lsp-bridge-enable-completion-in-string t)
;; (add-to-list 'lsp-bridge-completion-in-string-file-types '("html"))
;; ;; Benutzerdefinierte Spracherkennung für TailwindCSS
;; (setq lsp-bridge-get-language-id
;; (lambda (file-path)
;; (cond ((string-match-p "\\.html$" file-path) "html")
;; (t (lsp-bridge-get-lang-id-by-extension file-path))))))
GPT.el
ox-zola