Merge pull request 'Modularize doom config' (#2) from unstable into stable

Reviewed-on: #2
pull/3/head^2
penguin 6 months ago
commit 557a2b1fdd

@ -1,16 +1,9 @@
# Base16 Spacemacs 256 - alacritty color config
# Nasser Alshammari (https://github.com/nashamri/spacemacs-theme)
colors:
# Default colors
primary:
background: '0x1f2022'
background: '0x0b0c0d'
foreground: '0xa3a3a3'
# Colors the cursor will use if `custom_cursor_colors` is true
cursor:
text: '0x1f2022'
cursor: '0xa3a3a3'
# Normal colors
normal:
black: '0x1f2022'
@ -33,10 +26,3 @@ colors:
cyan: '0x2d9574'
white: '0xf8f8f8'
indexed_colors:
- { index: 16, color: '0xffa500' }
- { index: 17, color: '0xb03060' }
- { index: 18, color: '0x282828' }
- { index: 19, color: '0x444155' }
- { index: 20, color: '0xb8b8b8' }
- { index: 21, color: '0xe8e8e8' }

@ -0,0 +1,42 @@
# Base16 Spacemacs 256 - alacritty color config
# Nasser Alshammari (https://github.com/nashamri/spacemacs-theme)
colors:
# Default colors
primary:
background: '0x1f2022'
foreground: '0xa3a3a3'
# Colors the cursor will use if `custom_cursor_colors` is true
cursor:
text: '0x1f2022'
cursor: '0xa3a3a3'
# Normal colors
normal:
black: '0x1f2022'
red: '0xf2241f'
green: '0x67b11d'
yellow: '0xb1951d'
blue: '0x4f97d7'
magenta: '0xa31db1'
cyan: '0x2d9574'
white: '0xa3a3a3'
# Bright colors
bright:
black: '0x585858'
red: '0xf2241f'
green: '0x67b11d'
yellow: '0xb1951d'
blue: '0x4f97d7'
magenta: '0xa31db1'
cyan: '0x2d9574'
white: '0xf8f8f8'
indexed_colors:
- { index: 16, color: '0xffa500' }
- { index: 17, color: '0xb03060' }
- { index: 18, color: '0x282828' }
- { index: 19, color: '0x444155' }
- { index: 20, color: '0xb8b8b8' }
- { index: 21, color: '0xe8e8e8' }

@ -3,323 +3,22 @@
;; Place your private configuration here! Remember, you do not need to run 'doom
;; sync' after modifying this file!
(require 'site-gentoo)
(require-theme 'spacemacs-theme)
;; Some functionality uses this to identify you, e.g. GPG configuration, email
;; clients, file templates and snippets. It is optional.
;; (load-theme 'spamcemacs-dark t)
;; (use-package spacemacs-theme
;; :config
;; (load-theme 'spacemacs-dark t))
(setq user-full-name (getenv "CONFIG_FULL_NAME")
user-mail-address (getenv "CONFIG_EMAIL_ADDRESS"))
(setq doom-font (font-spec :family "JetBrains Mono Nerd Font" :size 14 :weight 'semibold)
doom-big-font (font-spec :family "JetBrains Mono Nerd Font" :size 28 :weight 'bold)
doom-serif-font (font-spec :family "JetBrains Mono Nerd Font" :size 14 :weight 'bold))
;; (setq doom-font "JetBrains Mono Nerd Font")
;; Doom exposes five (optional) variables for controlling fonts in Doom:
;;
;; - `doom-font' -- the primary font to use
;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable)
;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for
;; presentations or streaming.
;; - `doom-unicode-font' -- for unicode glyphs
;; - `doom-serif-font' -- for the `fixed-pitch-serif' face
;;
;; See 'C-h v doom-font' for documentation and more examples of what they
;; accept. For example:
;;
;;(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13))
;;
;; If you or Emacs can't find your font, use 'M-x describe-font' to look them
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
;; refresh your font settings. If Emacs still can't find your font, it likely
;; wasn't installed correctly. Font issues are rarely Doom issues!
;; 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 'spacemacs-dark)
;; (use-package spacemacs-theme-dark
;; :ensure t
;; :config
;; (load-theme 'spacemacs-dark-theme t))
;; 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'.
(setq display-line-numbers-type t)
;; 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 "~/org/")
(setq projectile-project-search-path '("~/Projects/"))
;; Whenever you reconfigure a package, make sure to wrap your config in an
;; `after!' block, otherwise Doom's defaults may override your settings. E.g.
;;
;; (after! PACKAGE
;; (setq x y))
;;
;; The exceptions to this rule:
;;
;; - Setting file/directory variables (like `org-directory')
;; - Setting variables which explicitly tell you to set them before their
;; package is loaded (see 'C-h v VARIABLE' to look up their documentation).
;; - Setting doom variables (which start with 'doom-' or '+').
;;
;; Here are some additional functions/macros that will help you configure Doom.
;;
;; - `load!' for loading external *.el files relative to this one
;; - `use-package!' for configuring packages
;; - `after!' for running code after a package has loaded
;; - `add-load-path!' for adding directories to the `load-path', relative to
;; this file. Emacs searches the `load-path' when you load packages with
;; `require' or `use-package'.
;; - `map!' for binding new keys
;;
;; To get information about any of these functions/macros, move the cursor over
;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k').
;; This will open documentation for it, including demos of how they are used.
;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces,
;; etc).
;;
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
;; they are implemented.
(require 'ansi-color)
(require 'dap-cpptools)
(require 'helm-make)
;; Indenting, formatting, etc
;; Universal (all langs)
(map! :leader
:desc "Comment/Uncomment"
"/" #'comment-line)
(map! :leader
:desc "Search project for text"
"s /" #'+default/search-project)
(with-eval-after-load 'evil
(map!
(:prefix "g"
:desc "New line after comment block" :n "o" #'+default/newline-below)))
(with-eval-after-load 'evil
(map!
(:prefix "g"
:desc "New line after comment block" :n "O" #'+default/newline-above)))
;; C/C++
(c-add-style "penguin"
'("stroustrup"
(c-offsets-alist
(innamespace . -)
(inline-open . 0)
(inher-cont . c-lineup-multi-inher)
(arglist-cont-nonempty . +)
(template-args-cont . +))))
(defun penguin-c-hook()
(setq +format-with-lsp nil)
(map!
:leader
:prefix "p"
:desc "Compile project" :n "c" #'helm-make-projectile)
(map!
:leader
:prefix "c"
:desc "Compile project" :n "c" #'helm-make-projectile)
(map!
:leader
:prefix "c"
:desc "List project errors" :n "x" #'lsp-treemacs-errors-list)
(c-set-style "penguin")
(c-set-offset 'case-label '+)
(c-set-offset 'arglist-intro '+)
(setq lsp-headerline-breadcrumb-enable 't))
(add-hook 'c-mode-hook 'penguin-c-hook)
(add-hook 'c++-mode-hook 'penguin-c-hook)
(add-hook 'after-change-major-mode-hook
(lambda ()
(modify-syntax-entry ?_ "w")))
;; Markdown
(add-hook 'text-mode-hook
#'(lambda ()
(setq indent-tabs-mode nil)
(setq tab-width 4)))
;; Rust
(after! rustic
(setq lsp-rust-server 'rust-analyzer))
(setq lsp-rust-analyzer-cargo-watch-command "clippy")
(setq lsp-eldoc-render-all t)
(setq lsp-idle-delay 0.6)
(setq lsp-rust-analyzer-server-display-inlay-hints t)
(setq lsp-rust-analyzer-display-lifetime-elision-hints-enable "skip_trivial")
(setq lsp-rust-analyzer-display-chaining-hints t)
(setq lsp-rust-analyzer-display-lifetime-elision-hints-use-parameter-names nil)
(setq lsp-rust-analyzer-display-closure-return-type-hints t)
(setq lsp-rust-analyzer-display-parameter-hints nil)
(setq lsp-rust-analyzer-display-reborrow-hints nil)
(setq dap-auto-configure-mode t)
(map! :map dap-mode-map
:leader
:prefix ("d" . "dap")
;; basics
:desc "dap next" "n" #'dap-next
:desc "dap step in" "i" #'dap-step-in
:desc "dap step out" "o" #'dap-step-out
:desc "dap continue" "c" #'dap-continue
:desc "dap hydra" "h" #'dap-hydra
:desc "dap debug restart" "r" #'dap-debug-restart
:desc "dap debug" "s" #'dap-debug
;; debug
:prefix ("dd" . "Debug")
:desc "dap debug recent" "r" #'dap-debug-recent
:desc "dap debug last" "l" #'dap-debug-last
;; eval
:prefix ("de" . "Eval")
:desc "eval" "e" #'dap-eval
:desc "eval region" "r" #'dap-eval-region
:desc "eval thing at point" "s" #'dap-eval-thing-at-point
:desc "add expression" "a" #'dap-ui-expressions-add
:desc "remove expression" "d" #'dap-ui-expressions-remove
:prefix ("db" . "Breakpoint")
:desc "dap breakpoint toggle" "b" #'dap-breakpoint-toggle
:desc "dap breakpoint condition" "c" #'dap-breakpoint-condition
:desc "dap breakpoint hit count" "h" #'dap-breakpoint-hit-condition
:desc "dap breakpoint log message" "l" #'dap-breakpoint-log-message)
(after! org
(setq org-todo-keywords
'((sequence "TODO(t)" "PROJ(p)" "BLOCKED(b)" "WIP(w)" "|" "KILL(k)" "DONE(d)"))))
(setq x-super-keysym 'meta)
(defhydra doom-window-resize-hydra (:hint nil)
"
_k_ increase height _<up>_ increase height
_h_ decrease width _l_ increase width _<left>_ decrease width _<right>_ increase width
_j_ decrease height _<down>_ decrease height
S-arrow key to shift by 5
"
("h" evil-window-decrease-width)
("j" evil-window-increase-height)
("k" evil-window-decrease-height)
("l" evil-window-increase-width)
("<left>" evil-window-decrease-width)
("<up>" evil-window-increase-height)
("<down>" evil-window-decrease-height)
("<right>" evil-window-increase-width)
("<S-left>" (evil-window-decrease-width 20))
("<S-up>" (evil-window-increase-height 20))
("<S-down>" (evil-window-decrease-height 20))
("<S-right>" (evil-window-increase-width 20))
("q" nil))
(map!
(:leader
:prefix "w"
:desc "Hydra resize" :n "SPC" #'doom-window-resize-hydra/body))
;; (map! :leader
;; "f p" nil
;; "f P" nil)
(map!
:leader
:prefix "f"
:desc "Open doom config" "p" #'doom/open-private-config)
(setq evil-split-window-below t)
(defun penguin-helm-posframe-size-function ()
"The default functon used by `helm-posframe-size-function'."
(list
:width (/ (frame-width) 2)
:height (or helm-posframe-height helm-display-buffer-height)
:min-height (or helm-posframe-min-height
(let ((height (+ helm-display-buffer-height 1)))
(min height (or helm-posframe-height height))))
:min-width (or helm-posframe-min-width
(let ((width (round (* (frame-width) 0.62))))
(min width (or helm-posframe-width width))))))
(setq helm-posframe-size-function #'penguin-helm-posframe-size-function)
(defun penguin-reload-dir-locals-for-current-buffer ()
"reload dir locals for the current buffer"
(interactive)
(let ((enable-local-variables :all))
(hack-dir-local-variables-non-file-buffer)))
(defun penguin-reload-dir-locals-for-all-buffer-in-this-directory ()
"For every buffer with the same `default-directory` as the
current buffer's, reload dir-locals."
(interactive)
(let ((dir default-directory))
(dolist (buffer (buffer-list))
(with-current-buffer buffer
(when (equal default-directory dir)
(penguin-reload-dir-locals-for-current-buffer))))))
;; fix compilation buffer error which wouldn't let me jump to errors
(add-hook 'compilation-filter-hook 'ansi-color-compilation-filter)
(setq-default evil-kill-on-visual-paste nil)
(setq lsp-treemacs-sync-mode 1)
(defun apply-lang-settings-to-open-buffers ()
"Apply C++ mode settings to open buffers."
(interactive)
(dolist (buffer (buffer-list))
(with-current-buffer buffer
(when (or (eq major-mode 'c-mode) (eq major-mode 'c++-mode))
(penguin-c-hook)))))
(add-hook! 'doom-after-reload-hook #'apply-lang-settings-to-open-buffers)
(setq org-noter-notes-search-path '("~/Documents/notes/"))
;; (setq lsp-clangd-binary-path '("/usr/bin/clangd"))
(defun wvxvw/export-rel-url (path desc format)
(cl-case format
(html (format "<a href=\"%s\">%s</a>" path (or desc path)))
(latex (format "\\href{%s}{%s}" path (or desc path)))
(otherwise path)))
(eval-after-load "org"
'(org-link-set-parameters "rel" :follow #'browse-url :export #'wvxvw/export-rel-url))
(setq projectile-enable-caching nil)
(setq find-file-hook nil)
;; kill company completion
(with-eval-after-load 'company
(define-key company-active-map (kbd "C-k") 'company-abort))
(after! org
(setq org-agenda-files
'("~/Documents/notes/agendas")))
(after! company
(set-company-backend!
'emacs-lisp-mode
'(:separate
company-capf company-files))
(set-company-backend!
'sh-mode
'(:separate
company-capf company-shell company-files))
(set-company-backend!
'org-mode
'(:separate
company-dabbrev company-yasnippet company-ispell company-files)))
(map!
(:leader
:prefix "o"
:desc "Calendar" :n "c" #'cfw:open-org-calendar))
(add-hook 'calendar-load-hook
(lambda ()
(calendar-set-date-style 'american)))
(setq calendar-holidays
(append holiday-general-holidays holiday-local-holidays
holiday-other-holidays
holiday-solar-holidays))
(unless 'display-graphic-p
(setq confirm-kill-emacs nil))
(setq calendar-christian-all-holidays-flag 't)
(load! "penguin/appearance.el")
(load! "penguin/lang.el")
(load! "penguin/keybinds.el")
(load! "penguin/org.el")
(load! "penguin/project.el")
(load! "penguin/debug.el")
(load! "penguin/calendar.el")
(load! "penguin/completions.el")
(load! "penguin/misc.el")
(load! "penguin/local.el")

@ -22,7 +22,7 @@
:completion
company ; the ultimate code completion backend
(helm +childframe +fuzzy +icons) ; the *other* search engine for love and life
(helm +fuzzy +icons) ; the *other* search engine for love and life
;;ido ; the other *other* search engine...
;; ivy ; a search engine for love and life
;;vertico ; the search engine of the future
@ -31,7 +31,7 @@
;;deft ; notational velocity for Emacs
doom ; what makes DOOM look the way it does
doom-dashboard ; a nifty splash screen for Emacs
doom-quit ; DOOM quit-message prompts when you quit Emacs
;; doom-quit ; DOOM quit-message prompts when you quit Emacs
(emoji +unicode) ; 🙂
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
hydra
@ -43,8 +43,8 @@
;;neotree ; a project drawer, like NERDTree for vim
ophints ; highlight the region an operation acts on
(popup +all +defaults) ; tame sudden yet inevitable temporary windows
;;tabs ; a tab bar for Emacs
treemacs ; a project drawer, like neotree but cooler
tabs ; a tab bar for Emacs
(treemacs +lsp) ; a project drawer, like neotree but cooler
;;unicode ; extended unicode support for various languages
(vc-gutter +pretty) ; vcs diff in the fringe
vi-tilde-fringe ; fringe tildes to mark beyond EOB
@ -76,7 +76,7 @@
:term
;;eshell ; the elisp shell that works everywhere
;;shell ; simple shell REPL for Emacs
;;term ; basic terminal emulator for Emacs
;term ; basic terminal emulator for Emacs
(vterm +toggle) ; the best terminal emulation in Emacs
:checkers
@ -99,18 +99,18 @@
magit ; a git porcelain for Emacs
make ; run make tasks from Emacs
;;pass ; password manager for nerds
;;pdf ; pdf enhancements
pdf ; pdf enhancements
;;prodigy ; FIXME managing external services & code builders
;;rgb ; creating color strings
;;taskrunner ; taskrunner for all your projects
taskrunner ; taskrunner for all your projects
;;terraform ; infrastructure as code
;;tmux ; an API for interacting with tmux
tmux ; an API for interacting with tmux
tree-sitter ; syntax and parsing, sitting in a tree...
upload ; map local to remote projects via ssh/ftp
:os
(:if IS-MAC macos) ; improve compatibility with macOS
;;tty ; improve the terminal Emacs experience
tty ; improve the terminal Emacs experience
:lang
;;agda ; types of types of types of types...
@ -121,21 +121,21 @@
;;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
;;elm ; care for a cup of TEA?
emacs-lisp ; drown in parentheses
;;erlang ; an elegant language for a more civilized age
;;ess ; emacs speaks statistics
ess ; emacs speaks statistics
;;factor
;;faust ; dsp, but you get to keep your soul
;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER)
;;fsharp ; ML stands for Microsoft's Language
;;fstar ; (dependent) types and (monadic) effects and Z3
;;gdscript ; the language you waited for
;;(go +lsp) ; the hipster dialect
;; (go +lsp) ; the hipster dialect
;;(graphql +lsp) ; Give queries a REST
;;(haskell +lsp) ; a language that's lazier than I am
;;hy ; readability of scheme w/ speed of python
@ -143,9 +143,9 @@
;;json ; At least it ain't XML
;;(java +lsp) ; the poster child for carpal tunnel syndrome
;;javascript ; all(hope(abandon(ye(who(enter(here))))))
julia ; a better, faster MATLAB
julia ; a better, faster MATLAB
;;kotlin ; a better, slicker Java(Script)
;;latex ; writing papers in Emacs has never been so fun
latex ; writing papers in Emacs has never been so fun
;;lean ; for folks with too much to prove
;;ledger ; be audit you can be
lua ; one-based indices? one-based indices
@ -153,11 +153,11 @@
;;nim ; python + lisp at the speed of c
;;nix ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel
(org +dragndrop +pandoc) ; organize your plain life in plain text
(org +dragndrop +pandoc +roam2 +gnuplot +pretty +journal) ; organize your plain life in plain text
;;php ; perl's insecure younger brother
;;plantuml ; diagrams for confusing people more
;;purescript ; javascript, but functional
python ; beautiful is better than ugly
(python +lsp +tree-sitter +pyright) ; beautiful is better than ugly
qt ; the 'cutest' gui framework ever
;;racket ; a DSL for DSLs
;;raku ; the artist formerly known as perl6
@ -173,8 +173,8 @@
;;swift ; who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance.
;;web ; the tubes
;;yaml ; JSON, but readable
;;zig ; C, but simpler
yaml ; JSON, but readable
zig ; C, but simpler
:email
;;(mu4e +org +gmail)
@ -186,7 +186,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

@ -7,49 +7,54 @@
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
;(package! some-package)
;(package! some-package)
;; To install a package directly from a remote git repo, you must specify a
;; `:recipe'. You'll find documentation on what `:recipe' accepts here:
;; https://github.com/radian-software/straight.el#the-recipe-format
;(package! another-package
; :recipe (:host github :repo "username/repo"))
;(package! another-package
; :recipe (:host github :repo "username/repo"))
;; If the package you are trying to install does not contain a PACKAGENAME.el
;; file, or is located in a subdirectory of the repo, you'll need to specify
;; `:files' in the `:recipe':
;(package! this-package
; :recipe (:host github :repo "username/repo"
; :files ("some-file.el" "src/lisp/*.el")))
;(package! this-package
; :recipe (:host github :repo "username/repo"
; :files ("some-file.el" "src/lisp/*.el")))
;; If you'd like to disable a package included with Doom, you can do so here
;; with the `:disable' property:
;(package! builtin-package :disable t)
;(package! builtin-package :disable t)
;; You can override the recipe of a built in package without having to specify
;; all the properties for `:recipe'. These will inherit the rest of its recipe
;; from Doom or MELPA/ELPA/Emacsmirror:
;(package! builtin-package :recipe (:nonrecursive t))
;(package! builtin-package-2 :recipe (:repo "myfork/package"))
;(package! builtin-package :recipe (:nonrecursive t))
;(package! builtin-package-2 :recipe (:repo "myfork/package"))
;; Specify a `:branch' to install a package from a particular branch or tag.
;; This is required for some packages whose default branch isn't 'master' (which
;; our package manager can't deal with; see radian-software/straight.el#279)
;(package! builtin-package :recipe (:branch "develop"))
;(package! builtin-package :recipe (:branch "develop"))
;; Use `:pin' to specify a particular commit to install.
;(package! builtin-package :pin "1a2b3c4d5e")
;(package! builtin-package :pin "1a2b3c4d5e")
;; Doom's packages are pinned to a specific commit and updated from release to
;; release. The `unpin!' macro allows you to unpin single packages...
;(unpin! pinned-package)
;(unpin! pinned-package)
;; ...or multiple packages
;(unpin! pinned-package another-pinned-package)
;(unpin! pinned-package another-pinned-package)
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
;(unpin! t)
;; (unpin! t)
(package! helm-icons)
(package! helm-company)
(package! helm-make)
(package! impatient-mode)
;; (package! spacemacs-theme)
(package! vterm)
(package! multi-vterm)
(package! treemacs-projectile)
(package! evil-terminal-cursor-changer)
(package! dpaste)
(load (expand-file-name "~/.local/share/doom/packages.el"))

@ -0,0 +1,84 @@
;;; $DOOMDIR/penguin/appearance.el -*- lexical-binding: t; -*-
;; (load-theme 'spamcemacs-dark t)
;; (use-package spacemacs-theme
;; :config
;; (load-theme 'spacemacs-dark t))
(setq doom-font (font-spec :family "JetBrains Mono Nerd Font" :size 14 :weight 'semibold)
doom-big-font (font-spec :family "JetBrains Mono Nerd Font" :size 28 :weight 'bold)
doom-serif-font (font-spec :family "JetBrains Mono Nerd Font" :size 14 :weight 'bold))
;; (setq doom-font "JetBrains Mono Nerd Font")
;; Doom exposes five (optional) variables for controlling fonts in Doom:
;;
;; - `doom-font' -- the primary font to use
;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable)
;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for
;; presentations or streaming.
;; - `doom-unicode-font' -- for unicode glyphs
;; - `doom-serif-font' -- for the `fixed-pitch-serif' face
;;
;; See 'C-h v doom-font' for documentation and more examples of what they
;; accept. For example:
;;
;;(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13))
;;
;; If you or Emacs can't find your font, use 'M-x describe-font' to look them
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
;; refresh your font settings. If Emacs still can't find your font, it likely
;; wasn't installed correctly. Font issues are rarely Doom issues!
;; 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 'spacemacs-dark)
;; (use-package spacemacs-theme-dark
;; :ensure t
;; :config
;; (load-theme 'spacemacs-dark-theme t))
;; 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'.
(setq display-line-numbers-type t)
;; 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!
;; Whenever you reconfigure a package, make sure to wrap your config in an
;; `after!' block, otherwise Doom's defaults may override your settings. E.g.
;;
;; (after! PACKAGE
;; (setq x y))
;;
;; The exceptions to this rule:
;;
;; - Setting file/directory variables (like `org-directory')
;; - Setting variables which explicitly tell you to set them before their
;; package is loaded (see 'C-h v VARIABLE' to look up their documentation).
;; - Setting doom variables (which start with 'doom-' or '+').
;;
;; Here are some additional functions/macros that will help you configure Doom.
;;
;; - `load!' for loading external *.el files relative to this one
;; - `use-package!' for configuring packages
;; - `after!' for running code after a package has loaded
;; - `add-load-path!' for adding directories to the `load-path', relative to
;; this file. Emacs searches the `load-path' when you load packages with
;; `require' or `use-package'.
;; - `map!' for binding new keys
;;
;; To get information about any of these functions/macros, move the cursor over
;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k').
;; This will open documentation for it, including demos of how they are used.
;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces,
;; etc).
;;
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
;; they are implemented.
;; $EMACS_SPLASH_IMAGE should be defined as an absolute path as an environment variable. I define this in my ~/.localrc
(setq fancy-splash-image (getenv "CONFIG_EMACS_SPLASH"))
(setq centaur-tabs-style "wave")
(setq centaur-tabs-set-bar 'under)
(use-package! evil-terminal-cursor-changer
:hook (tty-setup . evil-terminal-cursor-changer-activate))

@ -0,0 +1,12 @@
;;; $DOOMDIR/penguin/calendar.el -*- lexical-binding: t; -*-
(add-hook 'calendar-load-hook
(lambda ()
(calendar-set-date-style 'american)))
(setq calendar-holidays
(append holiday-general-holidays holiday-local-holidays
holiday-other-holidays
holiday-solar-holidays))
(setq calendar-christian-all-holidays-flag 't)

@ -0,0 +1,35 @@
;;; $DOOMDIR/penguin/completions.el -*- lexical-binding: t; -*-
(require 'helm-make)
(require 'ansi-color)
(setq helm-make-list-target-method 'qp)
;; Stopped using this and posframe because it breaks tty emacs
;; (defun penguin-helm-posframe-size-function ()
;; "The default functon used by `helm-posframe-size-function'."
;; (list
;; :width (/ (frame-width) 2)
;; :height (or helm-posframe-height helm-display-buffer-height)
;; :min-height (or helm-posframe-min-height
;; (let ((height (+ helm-display-buffer-height 1)))
;; (min height (or helm-posframe-height height))))
;; :min-width (or helm-posframe-min-width
;; (let ((width (round (* (frame-width) 0.62))))
;; (min width (or helm-posframe-width width))))))
;; (setq helm-posframe-size-function #'penguin-helm-posframe-size-function)
(after! company
(set-company-backend!
'emacs-lisp-mode
'(:separate
company-capf company-files))
(set-company-backend!
'sh-mode
'(:separate
company-capf company-shell company-files)))
;; fix compilation buffer error which wouldn't let me jump to errors
(add-hook 'compilation-filter-hook 'ansi-color-compilation-filter)

@ -0,0 +1,4 @@
;;; $DOOMDIR/penguin/debug.el -*- lexical-binding: t; -*-
(require 'dap-cpptools)
(setq dap-auto-configure-mode t)

@ -0,0 +1,99 @@
;;; $DOOMDIR/penguin/keybinds.el -*- lexical-binding: t; -*-
(map! :leader
:desc "Comment/Uncomment"
"/" #'comment-line)
(map! :leader
:desc "Search project for text"
"s /" #'+default/search-project)
(with-eval-after-load 'evil
(map!
(:prefix "g"
:desc "New line after comment block" :n "o" #'+default/newline-below)))
(with-eval-after-load 'evil
(map!
(:prefix "g"
:desc "New line after comment block" :n "O" #'+default/newline-above)))
(defhydra doom-window-resize-hydra (:hint nil)
"
_k_ increase height _<up>_ increase height
_h_ decrease width _l_ increase width _<left>_ decrease width _<right>_ increase width
_j_ decrease height _<down>_ decrease height
S-arrow key to shift by 5
"
("h" evil-window-decrease-width)
("j" evil-window-increase-height)
("k" evil-window-decrease-height)
("l" evil-window-increase-width)
("<left>" evil-window-decrease-width)
("<up>" evil-window-increase-height)
("<down>" evil-window-decrease-height)
("<right>" evil-window-increase-width)
("<S-left>" (evil-window-decrease-width 20))
("<S-up>" (evil-window-increase-height 20))
("<S-down>" (evil-window-decrease-height 20))
("<S-right>" (evil-window-increase-width 20))
("q" nil))
(map!
(:leader
:prefix "w"
:desc "Hydra resize" :n "SPC" #'doom-window-resize-hydra/body))
;; (map! :leader
;; "f p" nil
;; "f P" nil)
(map!
:leader
:prefix "f"
:desc "Open doom config" "p" #'doom/open-private-config)
(map!
:leader
:prefix "w"
:desc "Jump to window" "a" #'ace-window)
(map!
(:leader
:prefix "o"
:desc "Calendar" :n "c" #'cfw:open-org-calendar))
(map! :map dap-mode-map
:leader
:prefix ("d" . "dap")
;; basics
:desc "dap next" "n" #'dap-next
:desc "dap step in" "i" #'dap-step-in
:desc "dap step out" "o" #'dap-step-out
:desc "dap continue" "c" #'dap-continue
:desc "dap hydra" "h" #'dap-hydra
:desc "dap debug restart" "r" #'dap-debug-restart
:desc "dap debug" "s" #'dap-debug
;; debug
:prefix ("dd" . "Debug")
:desc "dap debug recent" "r" #'dap-debug-recent
:desc "dap debug last" "l" #'dap-debug-last
;; eval
:prefix ("de" . "Eval")
:desc "eval" "e" #'dap-eval
:desc "eval region" "r" #'dap-eval-region
:desc "eval thing at point" "s" #'dap-eval-thing-at-point
:desc "add expression" "a" #'dap-ui-expressions-add
:desc "remove expression" "d" #'dap-ui-expressions-remove
:prefix ("db" . "Breakpoint")
:desc "dap breakpoint toggle" "b" #'dap-breakpoint-toggle
:desc "dap breakpoint condition" "c" #'dap-breakpoint-condition
:desc "dap breakpoint hit count" "h" #'dap-breakpoint-hit-condition
:desc "dap breakpoint log message" "l" #'dap-breakpoint-log-message)
(after! centaur-tabs
(map!
(:leader
:desc "Jump to tab" :n "j" #'centaur-tabs-ace-jump))
(centaur-tabs-group-by-projectile-project)
(centaur-tabs-group-buffer-groups))
;; kill company completion
(with-eval-after-load 'company
(define-key company-active-map (kbd "C-k") 'company-abort))

@ -0,0 +1,100 @@
;;; $DOOMDIR/penguin/lang.el -*- lexical-binding: t; -*-
(require 'impatient-mode)
;; Indenting, formatting, etc
;; Universal (all langs)
;; C/C++
(c-add-style "penguin"
'("stroustrup"
(c-offsets-alist
(innamespace . -)
(inline-open . 0)
(inher-cont . c-lineup-multi-inher)
(arglist-cont-nonempty . +)
(template-args-cont . +))))
(defun penguin-make-hook()
(setq +format-with-lsp nil)
(map!
:leader
:prefix "p"
:desc "Compile project" :n "c" #'helm-make-projectile)
(map!
:leader
:prefix "c"
:desc "Compile project" :n "c" #'helm-make-projectile)
(map!
:leader
:prefix "c"
:desc "List project errors" :n "x" #'lsp-treemacs-errors-list))
(add-hook 'makefile-mode-hook 'penguin-make-hook)
(defun penguin-c-hook()
(setq +format-with-lsp nil)
(map!
:leader
:prefix "p"
:desc "Compile project" :n "c" #'helm-make-projectile)
(map!
:leader
:prefix "c"
:desc "Compile project" :n "c" #'helm-make-projectile)
(map!
:leader
:prefix "c"
:desc "List project errors" :n "x" #'lsp-treemacs-errors-list)
(c-set-style "penguin")
(c-set-offset 'case-label '+)
(c-set-offset 'arglist-intro '+)
(setq lsp-headerline-breadcrumb-enable 't))
(add-hook 'c-mode-hook 'penguin-c-hook)
(add-hook 'c++-mode-hook 'penguin-c-hook)
(add-hook 'after-change-major-mode-hook
(lambda ()
(modify-syntax-entry ?_ "w")))
(defun apply-lang-settings-to-open-buffers ()
"Apply C++ mode settings to open buffers."
(interactive)
(dolist (buffer (buffer-list))
(with-current-buffer buffer
(when (or (eq major-mode 'c-mode) (eq major-mode 'c++-mode))
(penguin-c-hook)))))
(add-hook! 'doom-after-reload-hook #'apply-lang-settings-to-open-buffers)
;; Markdown
(add-hook 'text-mode-hook
#'(lambda ()
(setq indent-tabs-mode nil)
(setq tab-width 4)))
(defun markdown-html (buffer)
(princ (with-current-buffer buffer
(format "<!DOCTYPE html><html><title>Impatient Markdown</title><xmp theme=\"united\" style=\"display:none;\"> %s </xmp><script src=\"http://ndossougbe.github.io/strapdown/dist/strapdown.js\"></script></html>" (buffer-substring-no-properties (point-min) (point-max))))
(current-buffer)))
(imp-set-user-filter 'markdown-html)
;; Rust
(after! rustic
(setq lsp-rust-server 'rust-analyzer))
(setq lsp-rust-analyzer-cargo-watch-command "clippy")
(setq lsp-eldoc-render-all t)
(setq lsp-idle-delay 0.6)
(setq lsp-rust-analyzer-server-display-inlay-hints t)
(setq lsp-rust-analyzer-display-lifetime-elision-hints-enable "skip_trivial")
(setq lsp-rust-analyzer-display-chaining-hints t)
(setq lsp-rust-analyzer-display-lifetime-elision-hints-use-parameter-names nil)
(setq lsp-rust-analyzer-display-closure-return-type-hints t)
(setq lsp-rust-analyzer-display-parameter-hints nil)
(setq lsp-rust-analyzer-display-reborrow-hints nil)
(add-hook 'python-mode-hook
(lambda ()
(setq +format-with-lsp nil)
(setq indent-tabs-mode t)
(setq tab-width 4)
(setq py-indent-tabs-mode t)
(setq python-indent 4)
(setq python-indent-offset 4)
(add-to-list 'write-file-functions 'delete-trailing-whitespace))
(tabify (point-min) (point-max)))

@ -0,0 +1,15 @@
;;; $DOOMDIR/penguin/local.el -*- lexical-binding: t; -*-
(setq-local local-doom-user-dir (expand-file-name "~/.local/share/doom/"))
(if
(file-directory-p local-doom-user-dir)
(progn
(cl-loop for file in
(directory-files local-doom-user-dir nil directory-files-no-dot-files-regexp) do
(progn
(unless (string= file "packages.el")
(print (concat "Loading " file))
(load (concat local-doom-user-dir file))
))))
(progn
(print local-doom-user-dir " not found.")))

@ -0,0 +1,19 @@
;;; $DOOMDIR/penguin/misc.el -*- lexical-binding: t; -*-
(setq-default evil-kill-on-visual-paste nil)
(setq find-file-hook nil)
(defun penguin-reload-dir-locals-for-current-buffer ()
"reload dir locals for the current buffer"
(interactive)
(let ((enable-local-variables :all))
(hack-dir-local-variables-non-file-buffer)))
(defun penguin-reload-dir-locals-for-all-buffer-in-this-directory ()
"For every buffer with the same `default-directory` as the
current buffer's, reload dir-locals."
(interactive)
(let ((dir default-directory))
(dolist (buffer (buffer-list))
(with-current-buffer buffer
(when (equal default-directory dir)
(penguin-reload-dir-locals-for-current-buffer))))))

@ -0,0 +1,60 @@
;;; $DOOMDIR/user/org.el -*- lexical-binding: t; -*-
(require 'org)
(add-hook! 'org-mode-hook 'org-num-mode)
(setq org-directory "~/org/")
(setq org-noter-notes-search-path '("~/Documents/notes/"))
(after! org
(setq org-agenda-files
'("~/Documents/agendas"))
(org-link-set-parameters "rel" :follow #'browse-url :export #'wvxvw/export-rel-url)
(set-company-backend!
'org-mode
'company-capf 'company-files)
(setq org-todo-keywords
'((sequence
"TODO(t)"
"BLOCKED(b)"
"WIP(w)"
"REVIEW(r)"
"|"
"CLOSED(c)"
"RESOLVED(R)"
"DONE(d)"))))
;; (setcdr (assq 'system org-file-apps-defaults-gnu) "xdg-open %s")
(setcdr (assq 'system org-file-apps-gnu) "xdg-open %s")
(advice-add 'org-open-file :around
(lambda (orig-fun &rest args)
;; Work around a weird problem with xdg-open.
(let ((process-connection-type nil))
(apply orig-fun args))))
(defun org-table-import-xlsx-to-csv-org ()
(interactive)
(let* ((source-file (file-name-sans-extension (buffer-file-name
(current-buffer))))
(xlsx-file (concat source-file ".xlsx"))
(csv-file (concat source-file ".csv")))
(org-odt-convert xlsx-file "csv")
(org-table-import csv-file nil)))
(defun org-table-import-xlsx-file-to-csv-org (file)
(interactive "f")
(let* ((source-file (file-name-sans-extension (buffer-file-name
(current-buffer))))
(xlsx-file (concat source-file ".xlsx"))
(csv-file (concat source-file ".csv")))
(org-odt-convert file "csv")
(org-table-import csv-file nil)))
;; I originally added this to fix relative links when converting org to html links but I'm pretty sure it doesn't even work
(defun wvxvw/export-rel-url (path desc format)
(cl-case format
(html (format "<a href=\"%s\">%s</a>" path (or desc path)))
(latex (format "\\href{%s}{%s}" path (or desc path)))
(otherwise path)))

@ -0,0 +1,23 @@
;;; $DOOMDIR/penguin/project.el -*- lexical-binding: t; -*-
(require 'projectile)
(setq lsp-treemacs-sync-mode 1)
(setq projectile-project-search-path '("~/Projects/"))
(setq treemacs-hide-dot-git-directory nil)
(setq treemacs-project-follow-into-home nil)
;; (setq projectile-project-root-functions '(projectile-root-local
;; projectile-root-top-down
;; projectile-root-bottom-up
;; projectile-root-top-down-recurring))
(setf treemacs-follow-mode nil)
(setq treemacs-project-follow-mode t)
(defun penguin-projectile-switch-project-action ()
(closure
t
nil
(+workspace-new)
(+workspaces-set-project-action-fn)
(+workspaces-switch-to-project-h)))
(setq projectile-switch-project-action 'penguin-projectile-switch-project-action)
(after! projectile
(add-to-list 'projectile-globally-ignored-directories "^.cache$"))

@ -0,0 +1,2 @@
~/
~/Projects/

@ -0,0 +1,5 @@
# -*- mode: snippet -*-
# name: date
# key: <d
# --
`(format-time-string "%m-%d-%Y")`$0

@ -0,0 +1,374 @@
;;; doom-gruvbox-material-light.el --- inspired by Gruvbox material
;;; https://github.com/sainnhe/gruvbox-material/blob/master/autoload/gruvbox_material.vim
(require 'doom-themes)
(defgroup doom-gruvbox-material-light-theme nil
"Options for `doom-gruvbox-material-light' theme"
:group 'doom-themes)
(defcustom doom-gruvbox-material-light-brighter-modeline nil
"If non-nil, more vivid colors will be used to style the mode-line."
:group 'doom-gruvbox-material-light-theme
:type 'boolean)
(defcustom doom-gruvbox-material-light-brighter-comments nil
"If non-nil, comments will be highlighted in more vivid colors."
:group 'doom-gruvbox-material-light-theme
:type 'boolean)
(defcustom doom-gruvbox-material-light-comment-bg doom-gruvbox-material-light-brighter-comments
"If non-nil, comments will have a subtle, darker background. Enhancing their
legibility."
:group 'doom-gruvbox-material-light-theme
:type 'boolean)
(defcustom doom-gruvbox-material-light-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-gruvbox-material-light-theme
:type '(choice integer boolean))
(defcustom doom-gruvbox-material-light-background nil
"Choice between \"soft\", \"medium\" and \"hard\" background contrast.
Defaults to \"soft\""
:group 'doom-gruvbox-material-light-theme
:type 'string)
(defcustom doom-gruvbox-material-light-palette nil
"Choice between \"material\", \"mix\" and \"original\" color palette.
Defaults to \"material\""
:group 'doom-gruvbox-material-light-theme
:type 'string)
(defcustom doom-gruvbox-material-light-dired-height 1.15
"Font height for dired buffers"
:group 'doom-gruvbox-material-light-theme
:type 'float)
;; colors from
;; https://github.com/sainnhe/gruvbox-material-vscode/tree/master/src/palette
(cond
((equal doom-gruvbox-material-light-background "hard")
(setq gm/bg "#f9f5d7" ;; bg
gm/bg-alt "#fbf1c7" ;; bg2
gm/base0 "#f3eac7" ;; bg1
gm/base1 "#fbf1c7" ;; bg2
gm/base2 "#f2e5bc" ;; bg3
gm/base3 "#f2e5bc" ;; bg4
gm/base4 "#ebdbb2" ;; bg5
gm/base5 "#e0cfa9" ;; bg6
gm/base6 "#d5c4a1" ;; bg7
gm/base7 "#c9b99a" ;; bg8
gm/base8 "#a89984")) ;; grey0
((equal doom-gruvbox-material-light-background "medium")
(setq gm/bg "#fbf1c7" ;; bg
gm/bg-alt "#f2e5bc" ;; bg2
gm/base0 "#f6ebc1" ;; bg1
gm/base1 "#f2e5bc" ;; bg2
gm/base2 "#eee0b7" ;; bg3
gm/base3 "#ebdbb2" ;; bg4
gm/base4 "#e0cfa9" ;; bg5
gm/base5 "#d5c4a1" ;; bg6
gm/base6 "#c9b99a" ;; bg7
gm/base7 "#bdae93" ;; bg8
gm/base8 "#a89984")) ;; grey0
(t
(setq gm/bg "#f2e5bc" ;; bg
gm/bg-alt "#ebdbb2" ;; bg2
gm/base0 "#efe0b7" ;; bg1
gm/base1 "#ebdbb2" ;; bg2
gm/base2 "#e6d5ae" ;; bg3
gm/base3 "#e0cfa9" ;; bg4
gm/base4 "#d5c4a1" ;; bg5
gm/base5 "#c9b99a" ;; bg6
gm/base6 "#bdae93" ;; bg7
gm/base7 "#a89984" ;; bg8
gm/base8 "#a89984"))) ;; grey0
(cond
((equal doom-gruvbox-material-light-palette "original")
(setq gm/fg "#3c3836" ;; fg
gm/fg-alt "#504945" ;; fg1
gm/red "#9d0006"
gm/dark-red "#ea6962" ;;dimRed
gm/orange "#af3a03"
gm/dark-orange "#e78a4e" ;;dimOrange
gm/green "#79740e"
gm/dark-green "#a9b665" ;;dimGreen
gm/teal "#427b58" ;; aqua
gm/dark-teal "#89b482" ;; dimAqua
gm/yellow "#b57614"
gm/dark-yellow "#d8a657" ;; dimYellow
gm/blue "#076678"
gm/dark-blue "#7daea3" ;; dimBlue
gm/magenta "#8f3f71" ;; purple
gm/violet "#d3869b" ;; dimPurple
gm/cyan "#427b58" ;; aqua
gm/dark-cyan "#89b482")) ;; dimAqua
((equal doom-gruvbox-material-light-palette "mix")
(setq gm/fg "#514036" ;; fg
gm/fg-alt "#6f4f3c" ;; fg1
gm/red "#af2528"
gm/dark-red "#ea6962" ;;dimRed
gm/orange "#b94c07"
gm/dark-orange "#e78a4e" ;;dimOrange
gm/green "#72761e"
gm/dark-green "#a9b665" ;;dimGreen
gm/teal "#477a5b" ;; aqua
gm/dark-teal "#89b482" ;; dimAqua
gm/yellow "#b4730e"
gm/dark-yellow "#d8a657" ;; dimYellow
gm/blue "#266b79"
gm/dark-blue "#7daea3" ;; dimBlue
gm/magenta "#924f79" ;; purple
gm/violet "#d3869b" ;; dimPurple
gm/cyan "#477a5b" ;; aqua
gm/dark-cyan "#89b482")) ;; dimAqua
(t
(setq gm/fg "#654735" ;; fg
gm/fg-alt "#6f4f3c" ;; fg1
gm/red "#c14a4a"
gm/dark-red "#ea6962" ;; dimRed
gm/orange "#c35e0a"
gm/dark-orange "#e78a4e" ;; dimOrange
gm/green "#6c782e"
gm/dark-green "#a9b665" ;; dimGreen
gm/teal "#4c7a5d" ;; aqua
gm/dark-teal "#89b482" ;; dimAqua
gm/yellow "#b47109"
gm/dark-yellow "#d8a657" ;; dimYellow
gm/blue "#45707a"
gm/dark-blue "#7daea3" ;; dimBlue
gm/magenta "#945e80" ;; purple
gm/violet "#d3869b" ;; dimPurple
gm/cyan "#4c7a5d" ;; aqua
gm/dark-cyan "#89b482"))) ;; dimAqua
(def-doom-theme doom-gruvbox-material-light
"Gruvbox material light variant"
;; name default 256 16
((bg `(,gm/bg "#ffffd7" nil ))
(bg-alt `(,gm/bg-alt "#ffffd7" nil ))
(base0 `(,gm/base0 "#f0f0f0" "white" ))
(base1 `(,gm/base1 "#ffffff" "brightblack" ))
(base2 `(,gm/base2 "#d7d6af" "brightblack" ))
(base3 `(,gm/base3 "#262626" "brightblack" ))
(base4 `(,gm/base4 "#3f3f3f" "brightblack" ))
(base5 `(,gm/base5 "#525252" "brightblack" ))
(base6 `(,gm/base6 "#6b6b6b" "brightblack" ))
(base7 `(,gm/base7 "#979797" "brightblack" ))
(base8 `(,gm/base8 "#8a8a8a" "white" ))
(fg `(,gm/fg "#875f00" "brightblack" ))
(fg-alt `(,gm/fg-alt "#1c1c1c" "black" ))
(grey base8)
(red `(,gm/red "#d70000" "red" ))
(dark-red `(,gm/dark-red "#af0000" "red" ))
(orange `(,gm/orange "#d75f00" "brightred" ))
(dark-orange `(,gm/dark-orange "#d75f00" "brightred" ))
(green `(,gm/green "#878700" "green" ))
(dark-green `(,gm/dark-green "#878700" "green" ))
(teal `(,gm/teal "#00875f" "brightgreen" ))
(dark-teal `(,gm/dark-teal "#00875f" "brightgreen" ))
(yellow `(,gm/yellow "#af5f00" "yellow" ))
(dark-yellow `(,gm/dark-yellow "#af5f00" "yellow" ))
(blue `(,gm/blue "#005f5f" "brightblue" ))
(dark-blue `(,gm/dark-blue "#005f5f" "blue" ))
(magenta `(,gm/magenta "#87005f" "brightmagenta"))
(violet `(,gm/violet "#87005f" "magenta" ))
(cyan `(,gm/cyan "#00875f" "brightcyan" ))
(dark-cyan `(,gm/dark-cyan "#00875f" "cyan" ))
;; face categories -- required for all themes
(highlight blue)
(vertical-bar (doom-darken base1 0.1))
;; (selection dark-blue)
(selection grey)
(builtin magenta)
(comments (if doom-gruvbox-material-light-brighter-comments dark-cyan
(doom-blend yellow base8 0.5)))
(doc-comments (doom-darken (if doom-gruvbox-material-light-brighter-comments green green) 0.15))
(constants magenta)
(functions cyan)
(keywords (doom-darken dark-green 0.25))
(methods cyan)
(operators blue)
(type orange)
(strings green)
(variables cyan)
(numbers magenta)
(region `(,(doom-darken (car bg-alt) 0.15) ,@(doom-darken (cdr base1) 0.35)))
(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-gruvbox-material-light-brighter-modeline)
(-modeline-pad
(when doom-gruvbox-material-light-padded-modeline
(if (integerp doom-gruvbox-material-light-padded-modeline) doom-gruvbox-material-light-padded-modeline 4)))
(modeline-fg fg)
(modeline-fg-alt fg-alt)
(modeline-bg
(if -modeline-bright
(doom-darken blue 0.475)
`(,(doom-darken (car bg-alt) 0.15) ,@(cdr base0))))
(modeline-bg-l
(if -modeline-bright
(doom-darken blue 0.45)
`(,(doom-darken (car bg-alt) 0.1) ,@(cdr base0))))
(modeline-bg-inactive `(,(doom-darken (car bg-alt) 0.1) ,@(cdr bg-alt)))
(modeline-bg-inactive-l `(,(car bg-alt) ,@(cdr base1))))
;; --- extra faces ------------------------
((elscreen-tab-other-screen-face :background "#353a42" :foreground "#1e2022")
(evil-goggles-default-face :inherit 'region :background (doom-blend region bg 0.5))
((line-number &override) :foreground (doom-darken fg-alt 0.4))
((line-number-current-line &override) :foreground fg)
(font-lock-comment-face
:foreground comments
:background (if doom-gruvbox-material-light-comment-bg (doom-lighten bg 0.05)))
(font-lock-doc-face
:inherit 'font-lock-comment-face
:foreground doc-comments)
(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))
(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)))
;; Doom modeline
(doom-modeline-bar :background (if -modeline-bright modeline-bg highlight))
(doom-modeline-buffer-file :inherit 'mode-line-buffer-id :weight 'bold)
(doom-modeline-buffer-path :inherit 'mode-line-emphasis :weight 'bold)
(doom-modeline-buffer-project-root :foreground blue :weight 'bold)
;; ivy-mode
(ivy-current-match :background blue :distant-foreground base0 :weight 'bold)
;; (ivy-current-match :foreground blue :background bg)
(ivy-minibuffer-match-face-2 :foreground blue :background bg)
;; --- major-mode faces -------------------
;; column indicator
(fill-column-indicator :foreground bg-alt :background bg-alt)
;; css-mode / scss-mode
(css-proprietary-property :foreground orange)
(css-property :foreground green)
(css-selector :foreground blue)
;; dired
(diredfl-compressed-file-name :height doom-gruvbox-material-light-dired-height
:foreground yellow)
(diredfl-dir-heading :height doom-gruvbox-material-light-dired-height
:foreground teal)
(diredfl-dir-name :height doom-gruvbox-material-light-dired-height
:foreground blue)
(diredfl-deletion :height doom-gruvbox-material-light-dired-height
:foreground red :background (doom-lighten red 0.55))
(diredfl-deletion-file-name :foreground red
:background (doom-lighten red 0.55))
(diredfl-file-name :height doom-gruvbox-material-light-dired-height
:foreground fg)
(dired-flagged :height doom-gruvbox-material-light-dired-height
:foreground red :background (doom-lighten red 0.55))
(diredfl-symlink :height doom-gruvbox-material-light-dired-height
:foreground magenta)
;; eshell
(+eshell-prompt-git-branch :foreground cyan)
;; evil
(evil-ex-lazy-highlight :foreground fg :background violet)
(evil-snipe-first-match-face :foreground bg :background orange)
;; LaTeX-mode
(font-latex-math-face :foreground (doom-darken dark-green 0.2))
(font-latex-script-char-face :foreground dark-blue)
;; lsp
(lsp-face-highlight-read :foreground fg-alt
:background (doom-lighten dark-blue 0.3))
(lsp-face-highlight-textual :foreground fg-alt
:background (doom-lighten dark-blue 0.3))
(lsp-face-highlight-write :foreground fg-alt
:background (doom-lighten dark-blue 0.3))
(lsp-lsp-flycheck-info-unnecessary-face
:foreground (doom-lighten dark-yellow 0.12))
;; magit
(magit-section-heading :foreground blue :weight 'bold)
;; markdown-mode
(markdown-markup-face :foreground base5)
(markdown-header-face :inherit 'bold :foreground blue)
((markdown-code-face &override) :background (doom-darken base3 0.05))
;; org-mode
(org-hide :foreground hidden)
(solaire-org-hide-face :foreground hidden)
(org-document-info :foreground blue)
(org-document-info-keyword :foreground dark-blue)
(org-document-title :foreground blue)
(org-block-begin-line :foreground dark-cyan
:background bg-alt)
(org-block-end-line :foreground dark-cyan
:background bg-alt)
(org-block :foreground fg :background bg-alt)
(org-meta-line :foreground dark-cyan)
(org-drawer :foreground dark-yellow)
(org-level-1 :foreground magenta :weight 'semi-bold :height 1.4)
(org-level-2 :foreground cyan :weight 'semi-bold :height 1.2)
(org-level-3 :foreground green :weight 'semi-bold :height 1.1)
(org-level-4 :foreground yellow :weight 'semi-bold)
(org-level-5 :foreground violet :weight 'semi-bold)
(org-level-6 :foreground dark-cyan :weight 'semi-bold)
(org-level-7 :foreground dark-green :weight 'semi-bold)
(org-level-8 :foreground dark-yellow :weight 'semi-bold)
;; rainbow
(rainbow-delimiters-depth-1-face :foreground (doom-lighten orange 0.2))
(rainbow-delimiters-depth-2-face :foreground violet)
(rainbow-delimiters-depth-3-face :foreground dark-cyan)
(rainbow-delimiters-depth-4-face :foreground dark-yellow)
(rainbow-delimiters-unmatched-face: :foreground fg :background 'nil)
(show-paren-match :foreground bg :background dark-red)
;; tree sitter
(tree-sitter-hl-face:method.call :foreground cyan :weight 'semi-bold)
;; others
(isearch :foreground bg :background violet)
(selection :foreground bg-alt :background dark-orange)
(company-tooltip-common-selection :foreground bg-alt :background dark-blue)
)
;; --- extra variables ---------------------
()
)
;;; doom-gruvbox-material-light-theme.el ends here

@ -0,0 +1,370 @@
;;; doom-gruvbox-material.el --- inspired by Gruvbox material
;;; https://github.com/sainnhe/gruvbox-material/blob/master/autoload/gruvbox_material.vim
(require 'doom-themes)
;;
(defgroup doom-gruvbox-material-theme nil
"Options for doom-themes"
:group 'doom-themes)
(defcustom doom-gruvbox-material-brighter-modeline nil
"If non-nil, more vivid colors will be used to style the mode-line."
:group 'doom-gruvbox-material-theme
:type 'boolean)
(defcustom doom-gruvbox-material-brighter-comments nil
"If non-nil, comments will be highlighted in more vivid colors."
:group 'doom-gruvbox-material-theme
:type 'boolean)
(defcustom doom-gruvbox-material-comment-bg doom-gruvbox-material-brighter-comments
"If non-nil, comments will have a subtle, darker background. Enhancing their
legibility."
:group 'doom-gruvbox-material-theme
:type 'boolean)
(defcustom doom-gruvbox-material-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-gruvbox-material-theme
:type '(choice integer boolean))
(defcustom doom-gruvbox-material-background nil
"Choose between \"soft\", \"medium\" and \"hard\" background contrast.
Defaults to \"soft\""
:group 'doom-gruvbox-material-theme
:type 'string)
(defcustom doom-gruvbox-material-palette nil
"Choose between \"material\", \"mix\" and \"original\" color palette.
Defaults to \"material\""
:group 'doom-gruvbox-material-theme
:type 'string)
(defcustom doom-gruvbox-material-dired-height 1.15
"Font height for dired buffers"
:group 'doom-gruvbox-material-theme
:type 'float)
;; colors from
;; https://github.com/sainnhe/gruvbox-material-vscode/tree/master/src/palette
(cond
((equal doom-gruvbox-material-background "hard")
(setq gm/bg "#202020" ;; bg
gm/bg-alt "#2a2827" ;; bg2
gm/base0 "#131414" ;; bg1
gm/base1 "#2a2827" ;; bg2
gm/base2 "#2e2c2b" ;; bg3
gm/base3 "#131414" ;; bg4
gm/base4 "#32302f" ;; bg5
gm/base5 "#46403d" ;; bg6
gm/base6 "#514945" ;; bg7
gm/base7 "#5a524c" ;; bg8
gm/base8 "#7c6f64")) ;; grey0
((equal doom-gruvbox-material-background "medium")
(setq gm/bg "#292828" ;; bg
gm/bg-alt "#32302f" ;; bg2
gm/base0 "#1c1c1c" ;; bg1
gm/base1 "#32302f" ;; bg2
gm/base2 "#383432" ;; bg3
gm/base3 "#3c3836" ;; bg4
gm/base4 "#45403d" ;; bg5
gm/base5 "#504945" ;; bg6
gm/base6 "#5a524c" ;; bg7
gm/base7 "#665c54" ;; bg8
gm/base8 "#7c6f64")) ;; grey0
(t
(setq gm/bg "#181919" ;; bg
gm/bg-alt "#3c3836" ;; bg2
gm/base0 "#242424" ;; bg1
gm/base1 "#3c3836" ;; bg2
gm/base2 "#403c3a" ;; bg3
gm/base3 "#45403d" ;; bg4
gm/base4 "#504945" ;; bg5
gm/base5 "#5a524c" ;; bg6
gm/base6 "#665c54" ;; bg7
gm/base7 "#7c6f64" ;; bg8
gm/base8 "#7c6f64"))) ;; grey0
(cond
((equal doom-gruvbox-material-palette "original")
(setq gm/fg "#ebdbb2" ;; fg
gm/fg-alt "#c9b99a" ;; fg1
gm/red "#fb4934"
gm/dark-red "#b85651" ;;dimRed
gm/orange "#fe8019"
gm/dark-orange "#bd6f3e" ;;dimOrange
gm/green "#b8bb26"
gm/dark-green "#8f9a52" ;;dimGreen
gm/teal "#8ec07c" ;; aqua
gm/dark-teal "#72966c" ;; dimAqua
gm/yellow "#fabd2f"
gm/dark-yellow "#c18f41" ;; dimYellow
gm/blue "#83a598"
gm/dark-blue "#68948a" ;; dimBlue
gm/magenta "#d3869b" ;; purple
gm/violet "#ab6c7d" ;; dimPurple
gm/cyan "#8ec07c" ;; aqua
gm/dark-cyan "#72966c")) ;; dimAqua
((equal doom-gruvbox-material-palette "mix")
(setq gm/fg "#e2cca9" ;; fg
gm/fg-alt "#c5b18d" ;; fg1
gm/red "#f2594b"
gm/dark-red "#b85651" ;;dimRed
gm/orange "#f28534"
gm/dark-orange "#bd6f3e" ;;dimOrange
gm/green "#b0b846"
gm/dark-green "#8f9a52" ;;dimGreen
gm/teal "#8bba7f" ;; aqua
gm/dark-teal "#72966c" ;; dimAqua
gm/yellow "#e9b143"
gm/dark-yellow "#c18f41" ;; dimYellow
gm/blue "#80aa9e"
gm/dark-blue "#68948a" ;; dimBlue
gm/magenta "#d3869b" ;; purple
gm/violet "#ab6c7d" ;; dimPurple
gm/cyan "#8bba7f" ;; aqua
gm/dark-cyan "#72966c")) ;; dimAqua
(t
(setq gm/fg "#d4be98" ;; fg
gm/fg-alt "#ddc7a1" ;; fg1
gm/red "#ea6962"
gm/dark-red "#b85651" ;; dimRed
gm/orange "#e78a4e"
gm/dark-orange "#bd6f3e" ;; dimOrange
gm/green "#a9b665"
gm/dark-green "#8f9a52" ;; dimGreen
gm/teal "#89b482" ;; aqua
gm/dark-teal "#72966c" ;; dimAqua
gm/yellow "#d8a657"
gm/dark-yellow "#c18f41" ;; dimYellow
gm/blue "#7daea3"
gm/dark-blue "#68948a" ;; dimBlue
gm/magenta "#d3869b" ;; purple
gm/violet "#ab6c7d" ;; dimPurple
gm/cyan "#89b482" ;; aqua
gm/dark-cyan "#72966c"))) ;; dimAqua
(def-doom-theme doom-gruvbox-material
"A dark theme inspired by gruvbox material"
;; name default 256 16
((bg `(,gm/bg "#282828" nil ))
(bg-alt `(,gm/bg-alt "#303030" nil ))
(base0 `(,gm/base0 "black" "black" ))
(base1 `(,gm/base1 "#121212" "brightblack" ))
(base2 `(,gm/base2 "#2e2e2e" "brightblack" ))
(base3 `(,gm/base3 "#262626" "brightblack" ))
(base4 `(,gm/base4 "#3f3f3f" "brightblack" ))
(base5 `(,gm/base5 "#585858" "brightblack" ))
(base6 `(,gm/base6 "#6b6b6b" "brightblack" ))
(base7 `(,gm/base7 "#979797" "brightblack" ))
(base8 `(,gm/base8 "#767676" "white" ))
(fg `(,gm/fg "#d7d7af" "brightwhite" ))
(fg-alt `(,gm/fg-alt "#b2b2b2" "white" ))
(grey base8)
(red `(,gm/red "#ea6962" "red" ))
(dark-red `(,gm/dark-red "#ea6962" "red" ))
(orange `(,gm/orange "#d7875f" "brightred" ))
(dark-orange `(,gm/dark-orange "#d7875f" "brightred" ))
(green `(,gm/green "#afd700" "green" ))
(dark-green `(,gm/dark-green "#afd700" "green" ))
(teal `(,gm/teal "#87d7af" "brightgreen" ))
(dark-teal `(,gm/dark-teal "#87d7af" "brightgreen" ))
(yellow `(,gm/yellow "#d7d787" "yellow" ))
(dark-yellow `(,gm/dark-yellow "#d7d787" "yellow" ))
(blue `(,gm/blue "#83a598" "brightblue" ))
(dark-blue `(,gm/dark-blue "#87d7d7" "blue" ))
(magenta `(,gm/magenta "#d3869b" "brightmagenta"))
(violet `(,gm/violet "#a9a1e1" "magenta" ))
(cyan `(,gm/cyan "#87d7af" "brightcyan" ))
(dark-cyan `(,gm/dark-cyan "#87d7af" "cyan" ))
;; face categories -- required for all themes
(highlight blue)
(vertical-bar (doom-darken base1 0.1))
(selection dark-blue)
(builtin magenta)
(comments (if doom-gruvbox-material-brighter-comments dark-cyan
(doom-blend yellow base8 0.5)))
(doc-comments (doom-darken (if doom-gruvbox-material-brighter-comments green green) 0.15))
(constants violet)
(functions cyan)
(keywords (doom-darken dark-green 0.25))
(methods cyan)
(operators blue)
(type orange)
(strings green)
(variables cyan)
(numbers magenta)
(region `(,(doom-lighten (car bg-alt) 0.15) ,@(doom-lighten (cdr base1) 0.35)))
(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-gruvbox-material-brighter-modeline)
(-modeline-pad
(when doom-gruvbox-material-padded-modeline
(if (integerp doom-gruvbox-material-padded-modeline) doom-gruvbox-material-padded-modeline 4)))
(modeline-fg fg)
(modeline-fg-alt fg-alt)
(modeline-bg
(if -modeline-bright
(doom-darken blue 0.475)
`(,(doom-darken (car bg-alt) 0.15) ,@(cdr base0))))
(modeline-bg-l
(if -modeline-bright
(doom-darken blue 0.45)
`(,(doom-darken (car bg-alt) 0.1) ,@(cdr base0))))
(modeline-bg-inactive `(,(doom-darken (car bg-alt) 0.1) ,@(cdr bg-alt)))
(modeline-bg-inactive-l `(,(car bg-alt) ,@(cdr base1))))
;; --- extra faces ------------------------
((elscreen-tab-other-screen-face :background "#353a42" :foreground "#1e2022")
(evil-goggles-default-face :inherit 'region :background (doom-blend region bg 0.5))
((line-number &override) :foreground (doom-darken fg-alt 0.4))
((line-number-current-line &override) :foreground fg)
(font-lock-comment-face
:foreground comments
:background (if doom-gruvbox-material-comment-bg (doom-lighten bg 0.05)))
(font-lock-doc-face
:inherit 'font-lock-comment-face
:foreground doc-comments)
(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))
(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)))
;; Doom modeline
(doom-modeline-bar :background (if -modeline-bright modeline-bg highlight))
(doom-modeline-buffer-file :inherit 'mode-line-buffer-id :weight 'bold)
(doom-modeline-buffer-path :inherit 'mode-line-emphasis :weight 'bold)
(doom-modeline-buffer-project-root :foreground blue :weight 'bold)
;; ivy-mode
(ivy-current-match :background blue :distant-foreground base0 :weight 'bold)
;; (ivy-current-match :foreground blue :background bg)
(ivy-minibuffer-match-face-2 :foreground blue :background bg)
;; --- major-mode faces -------------------
;; column indicator
(fill-column-indicator :foreground bg-alt :background bg-alt)
;; css-mode / scss-mode
(css-proprietary-property :foreground orange)
(css-property :foreground green)
(css-selector :foreground blue)
;; dired
(diredfl-compressed-file-name :height doom-gruvbox-material-dired-height
:foreground yellow)
(diredfl-dir-heading :height doom-gruvbox-material-dired-height
:foreground teal)
(diredfl-dir-name :height doom-gruvbox-material-dired-height
:foreground blue)
(diredfl-deletion :height doom-gruvbox-material-dired-height
:foreground red :background (doom-darken red 0.55))
(diredfl-deletion-file-name :foreground red
:background (doom-darken red 0.55))
(diredfl-file-name :height doom-gruvbox-material-dired-height
:foreground fg)
(dired-flagged :height doom-gruvbox-material-dired-height
:foreground red :background (doom-darken red 0.55))
(diredfl-symlink :height doom-gruvbox-material-dired-height
:foreground magenta)
;; eshell
(+eshell-prompt-git-branch :foreground cyan)
;; evil
(evil-ex-lazy-highlight :foreground bg :background yellow)
(evil-snipe-first-match-face :foreground bg :background orange)
;; LaTeX-mode
(font-latex-math-face :foreground dark-green)
(font-latex-script-char-face :foreground dark-blue)
;; lsp
(lsp-face-highlight-read :foreground fg-alt
:background (doom-darken blue 0.6))
(lsp-face-highlight-textual :foreground fg-alt
:background (doom-darken blue 0.6))
(lsp-face-highlight-write :foreground fg-alt
:background (doom-darken blue 0.6))
(lsp-lsp-flycheck-info-unnecessary-face
:foreground (doom-lighten dark-yellow 0.12))
;; magit
(magit-section-heading :foreground blue :weight 'bold)
;; markdown-mode
(markdown-markup-face :foreground base5)
(markdown-header-face :inherit 'bold :foreground blue)
((markdown-code-face &override) :background (doom-lighten base3 0.05))
;; org-mode
(org-hide :foreground hidden)
(solaire-org-hide-face :foreground hidden)
(org-document-info :foreground blue)
(org-document-info-keyword :foreground dark-blue)
(org-document-title :foreground blue)
(org-block-begin-line :foreground dark-cyan
:background bg-alt)
(org-block-end-line :foreground dark-cyan
:background bg-alt)
(org-block :foreground fg :background bg-alt)
(org-meta-line :foreground dark-cyan)
(org-drawer :foreground dark-yellow)
(org-level-1 :foreground magenta :weight 'semi-bold :height 1.4)
(org-level-2 :foreground cyan :weight 'semi-bold :height 1.2)
(org-level-3 :foreground green :weight 'semi-bold :height 1.1)
(org-level-4 :foreground yellow :weight 'semi-bold)
(org-level-5 :foreground violet :weight 'semi-bold)
(org-level-6 :foreground dark-cyan :weight 'semi-bold)
(org-level-7 :foreground dark-green :weight 'semi-bold)
(org-level-8 :foreground dark-yellow :weight 'semi-bold)
;; rainbow and parenthesis
(rainbow-delimiters-depth-1-face :foreground dark-orange)
(rainbow-delimiters-depth-2-face :foreground violet)
(rainbow-delimiters-depth-3-face :foreground dark-cyan)
(rainbow-delimiters-depth-4-face :foreground dark-yellow)
(rainbow-delimiters-unmatched-face: :foreground fg :background 'nil)
(show-paren-match :foreground bg :background dark-red)
;; tree sitter
(tree-sitter-hl-face:method.call :foreground cyan :weight 'semi-bold)
;; others
(isearch :foreground bg :background violet)
(selection :foreground bg-alt :background dark-orange)
(company-tooltip-common-selection :foreground bg-alt :background dark-blue)
)
;; --- extra variables ---------------------
()
)
;;; doom-gruvbox-material-theme.el ends here

@ -32,7 +32,7 @@ font pango:JetBrains Nerd Font Mono 10, Jet Brains Nerd Font Mono 10
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec --no-startup-id alacritty
bindsym $mod+Return exec alacritty
# kill focused window
bindsym $mod+Shift+q kill
@ -194,6 +194,19 @@ bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9
# assign [class="Pcmanfm"] $ws3
# assign [class="Skype"] $ws5
assign [class="firefox*"] $ws3
for_window [class="firefox*"] workspace --no-auto-back-and-forth $ws3, focus
assign [class="teams-for-linux"] $ws8
for_window [class="teams-for-linux"] workspace --no-auto-back-and-forth $ws8, focus
assign [class="(?i)discord"] $ws8
for_window [class="(?i)discord"] workspace --no-auto-back-and-forth $ws8, focus
assign [class="Alacritty"] $ws5
for_window [class="Alacritty"] workspace --no-auto-back-and-forth $ws4, focus
assign [class="Emacs*"] $ws2
for_window [class="Emacs*"] workspace --no-auto-back-and-forth $ws2, focus
# Open specific applications in floating mode
# for_window [title="alsamixer"] floating enable border pixel 1
# for_window [class="Calamares"] floating enable border normal
@ -294,7 +307,8 @@ mode "resize" {
# exec --no-startup-id start_conky_maia
# exec --no-startup-id start_conky_green
#exec --no-startup-id xautolock -time 30 -locker blurlock
exec_always --no-startup-id fix_xcursor
exec --no-startup-id $HOME/.local/bin/launch_emacs.sh
# exec_always --no-startup-id fix_xcursor
# Colors set from ~/.Xresources
set_from_resource $background background
@ -420,9 +434,9 @@ for_window [title="Desktop — Plasma"] kill; floating enable; border none
exec --no-startup-id flameshot
exec --no-startup-id nitrogen --restore; sleep 1;
exec_always --no-startup-id picom
bindsym $mod+n exec nitrogen --restore
bindsym $mod+m exec $HOME/.screenlayout/default.sh
bindsym $mod+n exec --no-startup-id nitrogen --restore
bindsym $mod+m exec $HOME/.screenlayout/home.sh
bindsym $mod+Shift+p exec --no-startup-id $HOME/.config/polybar/launch.sh
exec --no-startup-id xsettingsd
gaps top 50
gaps top 25

@ -1 +1,2 @@
plugin/*
lazy-lock.json

@ -239,6 +239,11 @@ lvim.plugins = {
"sindrets/diffview.nvim",
dependencies = "nvim-lua/plenary.nvim",
},
{
"NeogitOrg/neogit",
dependencies = "nvim-lua/plenary.nvim",
config = true
}
}
-- lvim.plugins = {
@ -258,7 +263,7 @@ local options = {
backup = true, -- creates a backup file
clipboard = "unnamedplus", -- allows neovim to access the system clipboard
cmdheight = 2, -- more space in the neovim command line for displaying messages
completeopt = { "menuone", "noselect" }, -- mostly just for cmp
completeopt = { "menuone", "noselect" }, -- mostly just for cmp{ "NeogitOrg/neogit", dependencies = "nvim-lua/plenary.nvim", config = true }
conceallevel = 0, -- so that `` is visible in markdown files
fileencoding = "utf-8", -- the encoding written to a file
hlsearch = true, -- highlight all matches on previous search pattern

@ -1,49 +0,0 @@
{
"Comment.nvim": { "branch": "master", "commit": "38d3b7eb553872d8866f14a0dd4fe84126068fce" },
"LuaSnip": { "branch": "master", "commit": "e77fa9ad0b1f4fc6cddf54e51047e17e90c7d7ed" },
"alpha-nvim": { "branch": "main", "commit": "87c204040e3f5d4c1c95067b35905d8f8a2f2545" },
"bigfile.nvim": { "branch": "main", "commit": "c1bad34ce742b4f360b67ca23c873fef998240fc" },
"bufferline.nvim": { "branch": "main", "commit": "a4bd44523316928a7c4a5c09a3407d02c30b6027" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-nvim-lsp": { "branch": "main", "commit": "0e6b2ed705ddcff9738ec4ea838141654f12eeef" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" },
"diffview.nvim": { "branch": "main", "commit": "b0cc22f5708f6b2b4f873b44fbc5eb93020f4e0c" },
"friendly-snippets": { "branch": "main", "commit": "631f79e346b0b3203d2ce3eae619ca8d612e5463" },
"gitsigns.nvim": { "branch": "main", "commit": "e5edefd9976039f5352e0c900f35206770b33a2d" },
"glow.nvim": { "branch": "main", "commit": "bbd0473d72a45094495ee5600b5577823543eefe" },
"indent-blankline.nvim": { "branch": "master", "commit": "018bd04d80c9a73d399c1061fa0c3b14a7614399" },
"lazy.nvim": { "branch": "main", "commit": "d6a782c7002682f4a01b79fc3918c4584ad6e8fb" },
"lir.nvim": { "branch": "master", "commit": "1aa871f20637eccc4e1e26b0fbcf9aafc9b6caf7" },
"lualine.nvim": { "branch": "master", "commit": "84ffb80e452d95e2c46fa29a98ea11a240f7843e" },
"lunar.nvim": { "branch": "master", "commit": "08bbc93b96ad698d22fc2aa01805786bcedc34b9" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "7276ffffcf51a8304b5fd4b81293be4ee010ec47" },
"mason.nvim": { "branch": "main", "commit": "057ac5ca159c83e302a55bd839a96ff1ea2396db" },
"neodev.nvim": { "branch": "main", "commit": "0043cf91c18aeac8db5765eb86c6078e17ac9325" },
"nlsp-settings.nvim": { "branch": "main", "commit": "32aa12da328258f2dccb15d327c26a8d21d9f4bd" },
"null-ls.nvim": { "branch": "main", "commit": "33b853a3933eed3137cd055aac4e539e69832ad0" },
"nvim-autopairs": { "branch": "master", "commit": "7566a86f44bb72ba2b1a609f528a27d93241502d" },
"nvim-cmp": { "branch": "main", "commit": "11102d3db12c7f8b35265ad0e17a21511e5b1e68" },
"nvim-dap": { "branch": "master", "commit": "6cedcb527e264c8f25e86afa8dae74c6692dee51" },
"nvim-dap-ui": { "branch": "master", "commit": "286f682f366fbc652b38dff893569374e9433dd3" },
"nvim-lspconfig": { "branch": "master", "commit": "427378a03ffc1e1bc023275583a49b1993e524d0" },
"nvim-navic": { "branch": "master", "commit": "83dc174da915f9dbc9b51169e9b62a2e0d42b527" },
"nvim-tree.lua": { "branch": "master", "commit": "bb375fb20327c49920c41d2b51c1ce2f4fe7deb3" },
"nvim-treesitter": { "branch": "master", "commit": "2ce3c9080cfe4a39c7907e672edafd2a95244a7c" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "0bf8fbc2ca8f8cdb6efbd0a9e32740d7a991e4c3" },
"nvim-ts-rainbow": { "branch": "master", "commit": "ef95c15a935f97c65a80e48e12fe72d49aacf9b9" },
"nvim-web-devicons": { "branch": "master", "commit": "986875b7364095d6535e28bd4aac3a9357e91bbe" },
"onedarker.nvim": { "branch": "freeze", "commit": "b00dd2189f264c5aeb4cf04c59439655ecd573ec" },
"plenary.nvim": { "branch": "master", "commit": "9ac3e9541bbabd9d73663d757e4fe48a675bb054" },
"project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" },
"schemastore.nvim": { "branch": "main", "commit": "0b396f538f195c249f021a48c3d8988f0d3f86f7" },
"space-vim-dark": { "branch": "master", "commit": "d24c6c27b49c1ab49416a47d96979481281f53b5" },
"structlog.nvim": { "branch": "main", "commit": "45b26a2b1036bb93c0e83f4225e85ab3cee8f476" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "580b6c48651cabb63455e97d7e131ed557b8c7e2" },
"telescope.nvim": { "branch": "0.1.x", "commit": "9de317bdea2bc393074651179c4fc7f93e9b2d56" },
"toggleterm.nvim": { "branch": "main", "commit": "68fdf851c2b7901a7065ff129b77d3483419ddce" },
"tokyonight.nvim": { "branch": "main", "commit": "c5df636ce62a8aab7565f35da143cfd672526302" },
"trouble.nvim": { "branch": "main", "commit": "20d1b30d6925213abece21d35858a16e11d1e9fc" },
"vim-illuminate": { "branch": "master", "commit": "a2907275a6899c570d16e95b9db5fd921c167502" },
"which-key.nvim": { "branch": "main", "commit": "4acffc92953a90a790603bfdab7c92319ab167b1" }
}

@ -33,8 +33,8 @@ local options = {
scrolloff = 8, -- is one of my fav
sidescrolloff = 8,
guifont = "monospace:h17", -- the font used in graphical neovim applications
backupdir="/home/penguin/.vim/backup//",
directory="/home/penguin/.vim/swap//",
backupdir="/home/$USER/.vim/backup//",
directory="/home/$USER/.vim/swap//",
}
vim.opt.shortmess:append "c"

@ -103,7 +103,7 @@ shadow-ignore-shaped = false;
# Sets the radius of rounded window corners. When > 0, the compositor will
# round the corners of windows. Does not interact well with
# `transparent-clipping`.
# corner-radius = 8.0
# corner-radius = 5.0
# Exclude conditions for rounded corners.
@ -184,7 +184,7 @@ detect-client-opacity = true;
# refresh-rate = 0;
# Vertical synchronization: match the refresh rate of the monitor
vsync = false;
vsync = true;
# Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing.
# Reported to have no effect, though.

@ -17,9 +17,10 @@ yellow = #f6c177
purple = #c4a7e7
background = #171924
foreground = #e0def4
background-alt = #26233a
background-alt = #453f69
background-alt2 = #1c1e2b
foreground-alt = #6e6a86
alert = #a60f2b
#############################################
[bar/small]
@ -33,7 +34,7 @@ height = 25pt
monitor = ${env:MONITOR:}
line-size = 4pt
enable-ipc = true
border-size = 4pt
border-size = 2pt
padding-right = 1
module-margin = 1
padding-left = 1
@ -55,7 +56,7 @@ font-N = <fontconfig pattern>;<vertical offset>
#############################################
modules-center = title
modules-left = i3
modules-right = pulseaudio filesystem memory smalltime
modules-right = pulseaudio smalltime
#############################################
[bar/top]
@ -69,7 +70,7 @@ height = 25pt
monitor = ${env:MONITOR:}
line-size = 4pt
enable-ipc = true
border-size = 4pt
border-size = 2pt
padding-right = 1
module-margin = 1
padding-left = 1
@ -89,23 +90,23 @@ tray-background = ${root.background}
font-0 = JetBrainsMono Nerd Font:size=10;3
font-N = <fontconfig pattern>;<vertical offset>
#############################################
modules-center = title
modules-left = i3
modules-right = pulseaudio filesystem memory cpu time
modules-center = cpu
modules-left = i3 title
modules-right = filesystem memory pulseaudio time
#############################################
[module/i3]
type = internal/i3
ws-icon-0 = 1;
ws-icon-1 = 2;
ws-icon-2 = 3;
ws-icon-3 = 4;
ws-icon-4 = 5;
ws-icon-5 = 6;
ws-icon-6 = 7;
ws-icon-7 = 8;
ws-icon-8 = 9;
ws-icon-1 = 2;
ws-icon-2 = 3;
ws-icon-3 = 4;󰈙
ws-icon-4 = 5;
ws-icon-5 = 6;
ws-icon-6 = 7;
ws-icon-7 = 8;
ws-icon-8 = 9;
#############################################
# pin-workspaces = true
format = <label-state>
@ -131,6 +132,7 @@ label-focused-padding = 1
label-focused-underline = ${colors.background-alt}
#############################################
label-urgent = ${self.workspace-label}
label-urgent-foreground = ${colors.alert}
label-urgent-padding = 1
#############################################
label-empty-foreground = ${colors.foreground-alt}
@ -144,15 +146,16 @@ inline-mode = false
enable-click = true
# fuzzy-match = false
enable-scroll = true
reverse-scroll = false
reverse-scroll = true
show-urgent = true
pin-workspaces = true
#############################################
[module/filesystem]
type = internal/fs
interval = 25
mount-0 = /
label-mounted = %percentage_used%%
label-mounted = 󰋊 %percentage_used%%
label-mounted-foreground = ${colors.blue}
label-unmounted = %mountpoint% not mounted
label-unmounted-foreground = ${colors.foreground}
@ -162,8 +165,9 @@ label-unmounted-foreground = ${colors.foreground}
[module/memory]
type = internal/memory
interval = 2
format-prefix = "RAM "
label = %percentage_used:2%%
warn-percentage = 95
format-prefix = "RAM "
label = %gb_used%/%gb_total%
format-prefix-foreground = ${colors.purple}
#############################################
@ -173,7 +177,7 @@ type = internal/cpu
interval = 2
format-prefix = "CPU "
label = %percentage:2%%
format-prefix-foreground = ${colors.blue}
format-prefix-foreground = ${colors.purple}
format = <label> <ramp-coreload>
# ; Spacing (number of spaces, pixels, points) between individual per-core ramps
ramp-coreload-spacing = 0
@ -189,7 +193,7 @@ ramp-coreload-7 = █
[module/time]
type = internal/date
interval = 5
date = "%a %-m/%d/%Y %I:%M:%S %p"
date = "%a %m/%d/%Y %I:%M:%S %p"
label = %date%
#############################################
@ -297,4 +301,4 @@ format = <label>
format-padding = 4
label = %title%
label-maxlen = 50
label-empty = Empty
label-empty =

@ -19,7 +19,7 @@ sleep 0.2
# Launch on all other monitors
for m in $OTHERS; do
orientation=$(xrandr --query --verbose | grep "$m" | cut -d ' ' -f 5)
if [[ $orientation == "right" ]];then
if [[ $orientation == "right" || $orientation == "left" ]];then
MONITOR=$m polybar --reload -c $BAR_CONFIG $LITTLE_BAR_NAME &
else
MONITOR=$m polybar --reload -c $BAR_CONFIG $BAR_NAME &

@ -34,7 +34,7 @@ set column_ratios 1,3,4
set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$
# Show hidden files? You can toggle this by typing 'zh'
set show_hidden false
set show_hidden true
# Ask for a confirmation when running the "delete" command?
# Valid values are "always", "never", "multiple" (default)

4
.gitignore vendored

@ -1 +1,3 @@
./config/doom/custom.el
.config/doom/custom.el
.config/ranger/colorschemes/__pycache__/*
.local/bin*/*

Binary file not shown.

@ -0,0 +1,22 @@
# Table of Contents
1. [Background](#org55f2a10)
2. [Usage](#orgd4ac34e)
<a id="org55f2a10"></a>
# Background
This is my config. Maybe one day I&rsquo;ll make a readme on how to use it idk
<a id="orgd4ac34e"></a>
# Usage
chmod u+x ./update-symlinks.sh
./update-symlinks.sh

@ -1,29 +0,0 @@
#!/bin/sh
lock() {
i3lock
}
case "$1" in
lock)
i3lock
;;
logout)
i3-msg exit
;;
suspend)
lock && loginctl suspend
;;
hibernate)
lock && loginctl hibernate
;;
reboot)
loginctl reboot
;;
shutdown)
loginctl poweroff
;;
*)
echo "Usage: $0 {lock|logout|suspend|hibernate|reboot|shutdown}"
exit 2
esac
exit 0

@ -1,19 +1,50 @@
! Dracula Xresources palette
*.foreground: #F8F8F2
*.background: #282A36
*.color0: #000000
*.color8: #4D4D4D
*.color1: #FF5555
*.color9: #FF6E67
*.color2: #50FA7B
*.color10: #5AF78E
*.color3: #F1FA8C
*.color11: #F4F99D
*.color4: #BD93F9
*.color12: #CAA9FA
*.color5: #FF79C6
*.color13: #FF92D0
*.color6: #8BE9FD
*.color14: #9AEDFE
*.color7: #BFBFBF
*.color15: #E6E6E6
! Base16 Spacemacs
! Scheme: Nasser Alshammari (https://github.com/nashamri/spacemacs-theme)
#define base00 #1f2022
#define base01 #282828
#define base02 #444155
#define base03 #585858
#define base04 #b8b8b8
#define base05 #a3a3a3
#define base06 #e8e8e8
#define base07 #f8f8f8
#define base08 #f2241f
#define base09 #ffa500
#define base0A #b1951d
#define base0B #67b11d
#define base0C #2d9574
#define base0D #4f97d7
#define base0E #a31db1
#define base0F #b03060
*.foreground: base05
*.background: base00
*.cursorColor: base05
*.color0: base00
*.color1: base08
*.color2: base0B
*.color3: base0A
*.color4: base0D
*.color5: base0E
*.color6: base0C
*.color7: base05
*.color8: base03
*.color9: base08
*.color10: base0B
*.color11: base0A
*.color12: base0D
*.color13: base0E
*.color14: base0C
*.color15: base07
! Note: colors beyond 15 might not be loaded (e.g., xterm, urxvt),
! use 'shell' template to set these if necessary
*.color16: base09
*.color17: base0F
*.color18: base01
*.color19: base02
*.color20: base04
*.color21: base06

@ -0,0 +1,23 @@
# /etc/skel/.bash_profile
# This file is sourced by bash for login shells. The following line
# runs your .bashrc and is recommended by the bash info pages.
if [[ -f ~/.bashrc ]] ; then
. "$HOME/.bashrc"
fi
if [[ -f ~/.bash_sources ]]; then
. $HOME/.bash_sources
fi
if [[ -f ~/.bash_aliases ]] ; then
. $HOME/.bash_aliases
fi
if [[ -f ~/.localrc ]] ; then
. $HOME/.localrc
elif [[ -d "$HOME/.local/var/log" ]]; then
echo "$HOME/.localrc not found. Have you created it yet?" | gawk '{ print strftime("[%Y-%m-%d %H:%M:%S]"), $0 }' >> ~/.local/var/log/localrc.log
else
mkdir -p ~/.local/var/log
echo "$HOME/.localrc not found. Have you created it yet?" | gawk '{ print strftime("[%Y-%m-%d %H:%M:%S]"), $0 }' >> ~/.local/var/log/localrc.log
fi

@ -16,9 +16,9 @@ fi
# Put your fun stuff here.
. "$HOME/.cargo/env"
. "$HOME/.local/env"
. "$HOME/.config/emacs/env"
if [[ -f ~/.bash_sources ]]; then
. $HOME/.bash_sources
fi
if [[ -f ~/.bash_aliases ]] ; then
. $HOME/.bash_aliases
fi

@ -26,55 +26,17 @@ zstyle ':completion:*' insert-tab false
setopt noautomenu
setopt nomenucomplete
. "$HOME/.cargo/env"
. "$HOME/.local/env"
. "$HOME/.config/emacs/env"
. "$HOME/.bash_aliases"
. "$HOME/.bash_sources"
if [ -d ~/.pscripts ];then
export PATH="$HOME/.pscripts:$PATH"
fi
alias ls="lsd -AFlh"
LS_COLORS='di=1;35:fi=0:ln=31:pi=5:so=5:bd=5:cd=5:or=31:mi=0:ex=35:*.rpm=90:*.png=35:*.gif=36:*.jpg=35:*.c=92:*.jar=33:*.py=93:*.h=90:*.txt=94:*.doc=104:*.docx=104:*.odt=104:*.csv=102:*.xlsx=102:*.xlsm=102:*.rb=31:*.cpp=92:*.sh=92:*.html=96:*.zip=4;33:*.tar.gz=4;33:*.mp4=105:*.mp3=106:tw=1;37:ow=1;37'
export LS_COLORS
setopt globdots
# eval "$(dircolors)"
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
alias vim="lvim"
export EDITOR="/home/penguin/.local/bin/lvim"
export VISUAL="/home/penguin/.local/bin/lvim"
function pssh()
{
case "$1" in
epgit)
source $HOME/.pscripts/pssh_epgit
;;
ep)
source $HOME/.pscripts/pssh_ep
;;
github)
source $HOME/.pscripts/pssh_github
;;
pi)
source $HOME/.pscripts/pssh_pi
;;
vps)
source $HOME/.pscripts/pssh_vps
;;
*)
echo "Usage: $0 {epgit | ep | github | pi | vps}"
esac
}
alias pfixskew="find . -exec touch {} \;"
alias bmake="bear -- make"
alias rdos2unix="find . -type f -print0 | xargs -0 dos2unix --"
alias minicom="minicom -con"
. ~/.bash_aliases
export EDITOR="launch_emacs.sh"
export VISUAL="launch_emacs.sh"
zle_highlight=(default:bold,fg=white)
@ -83,7 +45,6 @@ function cformat()
find . -regex '.*\.\(cpp\|hpp\|cc\|cxx\|c\)' -exec clang-format -style=file -i {} \;
}
source ~/powerlevel10k/powerlevel10k.zsh-theme
autoload -U select-word-style
select-word-style bash
@ -92,3 +53,24 @@ select-word-style bash
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
# plug "zsh-users/zsh-syntax-highlighting"
HISTFILE=~/.histfile
HISTSIZE=4096
SAVEHIST=4096
setopt appendhistory
if [[ -f ~/.bash_sources ]]; then
. $HOME/.bash_sources
fi
if [[ -f ~/.bash_aliases ]] ; then
. $HOME/.bash_aliases
fi
if [[ -f ~/.localrc ]] ; then
. $HOME/.localrc
elif [[ -d "$HOME/.local/var/log" ]]; then
echo "$HOME/.localrc not found. Have you created it yet?" | gawk '{ print strftime("[%Y-%m-%d %H:%M:%S]"), $0 }' >> ~/.local/var/log/localrc.log
else
mkdir -p ~/.local/var/log
echo "$HOME/.localrc not found. Have you created it yet?" | gawk '{ print strftime("[%Y-%m-%d %H:%M:%S]"), $0 }' >> ~/.local/var/log/localrc.log
fi

Loading…
Cancel
Save