doom emacs! + theming
This commit is contained in:
parent
1826efd1ff
commit
eaf48232cd
18
base.nix
18
base.nix
@ -15,6 +15,24 @@
|
|||||||
stylix = {
|
stylix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
image = ./wallpaper.jpeg;
|
image = ./wallpaper.jpeg;
|
||||||
|
cursor = {
|
||||||
|
package = pkgs.bibata-cursors;
|
||||||
|
name = "Bibata-Modern-Ice";
|
||||||
|
};
|
||||||
|
fonts = {
|
||||||
|
monospace = {
|
||||||
|
package = pkgs.nerd-fonts.comic-shanns-mono;
|
||||||
|
name = "ComicShansMono Nerd Font Mono";
|
||||||
|
};
|
||||||
|
sansSerif = {
|
||||||
|
package = pkgs.dejavu_fonts;
|
||||||
|
name = "DejaVu Sans";
|
||||||
|
};
|
||||||
|
serif = {
|
||||||
|
package = pkgs.dejavu_fonts;
|
||||||
|
name = "DejaVu Serif";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
sops = {
|
sops = {
|
||||||
defaultSopsFormat = "yaml";
|
defaultSopsFormat = "yaml";
|
||||||
|
|||||||
10
dotfiles/doom/bookmarks
Normal file
10
dotfiles/doom/bookmarks
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
;;;; Emacs Bookmark Format Version 1;;;; -*- coding: utf-8-emacs; mode: lisp-data -*-
|
||||||
|
;;; This format is meant to be slightly human-readable;
|
||||||
|
;;; nevertheless, you probably don't want to edit it.
|
||||||
|
;;; -*- End Of Bookmark File Format Version Stamp -*-
|
||||||
|
(("org-capture-last-stored"
|
||||||
|
(filename . "~/Documents/Notes/20240518175854-egypt.org")
|
||||||
|
(front-context-string)
|
||||||
|
(rear-context-string . "\n#+title: Egypt\n")
|
||||||
|
(position . 83))
|
||||||
|
)
|
||||||
502
dotfiles/doom/config.el
Normal file
502
dotfiles/doom/config.el
Normal file
@ -0,0 +1,502 @@
|
|||||||
|
(use-package
|
||||||
|
insert-esv
|
||||||
|
:init
|
||||||
|
(setq insert-esv-crossway-api-key "bb1872462ecc59624c7bb8ab36c9701ce2027cd1")
|
||||||
|
(setq insert-esv-include-short-copyright 'false)
|
||||||
|
(setq insert-esv-include-headings 'true)
|
||||||
|
(setq insert-esv-include-passage-horizontal-lines 'false)
|
||||||
|
(setq insert-esv-line-length '500)
|
||||||
|
:bind ("C-x C-e" . insert-esv-passage))
|
||||||
|
|
||||||
|
(setq bookmark-default-file "~/.config/doom/bookmarks")
|
||||||
|
|
||||||
|
(map! :leader
|
||||||
|
(:prefix ("b". "buffer")
|
||||||
|
:desc "List bookmarks" "L" #'list-bookmarks
|
||||||
|
:desc "Set bookmark" "m" #'bookmark-set
|
||||||
|
:desc "Delete bookmark" "M" #'bookmark-set
|
||||||
|
:desc "Save current bookmarks to bookmark file" "w" #'bookmark-save))
|
||||||
|
|
||||||
|
(global-auto-revert-mode 1)
|
||||||
|
(setq global-auto-revert-non-file-buffers t)
|
||||||
|
|
||||||
|
(evil-define-key 'normal ibuffer-mode-map
|
||||||
|
(kbd "f c") 'ibuffer-filter-by-content
|
||||||
|
(kbd "f d") 'ibuffer-filter-by-directory
|
||||||
|
(kbd "f f") 'ibuffer-filter-by-filename
|
||||||
|
(kbd "f m") 'ibuffer-filter-by-mode
|
||||||
|
(kbd "f n") 'ibuffer-filter-by-name
|
||||||
|
(kbd "f x") 'ibuffer-filter-disable
|
||||||
|
(kbd "g h") 'ibuffer-do-kill-lines
|
||||||
|
(kbd "g H") 'ibuffer-update)
|
||||||
|
|
||||||
|
(setq doom-fallback-buffer "*dashboard*")
|
||||||
|
|
||||||
|
(map! :leader
|
||||||
|
(:prefix ("d" . "dired")
|
||||||
|
:desc "Open dired" "d" #'dired
|
||||||
|
:desc "Dired jump to current" "j" #'dired-jump)
|
||||||
|
(:after dired
|
||||||
|
(:map dired-mode-map
|
||||||
|
:desc "Peep-dired image previews" "d p" #'peep-dired
|
||||||
|
:desc "Dired view file" "d v" #'dired-view-file)))
|
||||||
|
|
||||||
|
(evil-define-key 'normal dired-mode-map
|
||||||
|
(kbd "M-RET") 'dired-display-file
|
||||||
|
(kbd "h") 'dired-up-directory
|
||||||
|
(kbd "l") 'dired-open-file ; use dired-find-file instead of dired-open.
|
||||||
|
(kbd "m") 'dired-mark
|
||||||
|
(kbd "t") 'dired-toggle-marks
|
||||||
|
(kbd "u") 'dired-unmark
|
||||||
|
(kbd "C") 'dired-do-copy
|
||||||
|
(kbd "D") 'dired-do-delete
|
||||||
|
(kbd "J") 'dired-goto-file
|
||||||
|
(kbd "M") 'dired-do-chmod
|
||||||
|
(kbd "O") 'dired-do-chown
|
||||||
|
(kbd "P") 'dired-do-print
|
||||||
|
(kbd "R") 'dired-do-rename
|
||||||
|
(kbd "T") 'dired-do-touch
|
||||||
|
(kbd "Y") 'dired-copy-filenamecopy-filename-as-kill ; copies filename to kill ring.
|
||||||
|
(kbd "Z") 'dired-do-compress
|
||||||
|
(kbd "+") 'dired-create-directory
|
||||||
|
(kbd "-") 'dired-do-kill-lines
|
||||||
|
(kbd "% l") 'dired-downcase
|
||||||
|
(kbd "% m") 'dired-mark-files-regexp
|
||||||
|
(kbd "% u") 'dired-upcase
|
||||||
|
(kbd "* %") 'dired-mark-files-regexp
|
||||||
|
(kbd "* .") 'dired-mark-extension
|
||||||
|
(kbd "* /") 'dired-mark-directories
|
||||||
|
(kbd "; d") 'epa-dired-do-decrypt
|
||||||
|
(kbd "; e") 'epa-dired-do-encrypt)
|
||||||
|
;; (kbd "Q") 'quick-preview-at-point) ;; previews with sushi
|
||||||
|
;; Get file icons in dired
|
||||||
|
;; (add-hook 'dired-mode-hook 'all-the-icons-dired-mode)
|
||||||
|
;; With dired-open plugin, you can launch external programs for certain extensions
|
||||||
|
;; For example, I set all .png files to open in 'sxiv' and all .mp4 files to open in 'mpv'
|
||||||
|
(setq dired-open-extensions '(("gif" . "eog")
|
||||||
|
("jpg" . "eog")
|
||||||
|
("png" . "eog")
|
||||||
|
("mkv" . "celluloid")
|
||||||
|
("mp4" . "celluloid")))
|
||||||
|
|
||||||
|
(evil-define-key 'normal peep-dired-mode-map
|
||||||
|
(kbd "j") 'peep-dired-next-file
|
||||||
|
(kbd "k") 'peep-dired-prev-file)
|
||||||
|
(add-hook 'peep-dired-hook 'evil-normalize-keymaps)
|
||||||
|
|
||||||
|
(setq delete-by-moving-to-trash t
|
||||||
|
trash-directory "~/.local/share/Trash/files/")
|
||||||
|
|
||||||
|
;; (diredp-toggle-find-file-reuse-dir 1)
|
||||||
|
(setq dired-kill-when-opening-new-dired-buffer 1)
|
||||||
|
|
||||||
|
(use-package! base16-stylix-theme)
|
||||||
|
(require 'base16-stylix-theme)
|
||||||
|
(setq doom-theme 'base16-stylix)
|
||||||
|
;; (setq doom-theme 'doom-opera-light)
|
||||||
|
;; ;; (setq doom-theme 'doom-dark+)
|
||||||
|
;; (map! :leader
|
||||||
|
;; :desc "Load new theme" "h t" #'counsel-load-theme)
|
||||||
|
|
||||||
|
;; (emms-all)
|
||||||
|
;; (emms-default-players)
|
||||||
|
;; (emms-mode-line 1)
|
||||||
|
;; (emms-playing-time 1)
|
||||||
|
;; (setq emms-source-file-default-directory "~/Music/"
|
||||||
|
;; emms-playlist-buffer-name "*Music*"
|
||||||
|
;; emms-info-asynchronously t
|
||||||
|
;; emms-source-file-directory-tree-function 'emms-source-file-directory-tree-find)
|
||||||
|
;; (map! :leader
|
||||||
|
;; (:prefix ("m p d". "EMMS audio player")
|
||||||
|
;; :desc "Go to emms playlist" "a" #'emms-playlist-mode-go
|
||||||
|
;; :desc "Emms pause track" "x" #'emms-pause
|
||||||
|
;; :desc "Emms stop track" "s" #'emms-stop
|
||||||
|
;; :desc "Emms play previous track" "p" #'emms-previous
|
||||||
|
;; :desc "Emms play next track" "n" #'emms-next))
|
||||||
|
|
||||||
|
(map! :leader
|
||||||
|
(:prefix ("e". "evaluate/EWW")
|
||||||
|
:desc "Evaluate elisp in buffer" "b" #'eval-buffer
|
||||||
|
:desc "Evaluate defun" "d" #'eval-defun
|
||||||
|
:desc "Evaluate elisp expression" "e" #'eval-expression
|
||||||
|
:desc "Evaluate last sexpression" "l" #'eval-last-sexp
|
||||||
|
:desc "Evaluate elisp in region" "r" #'eval-region))
|
||||||
|
|
||||||
|
;; (setq browse-url-browser-function 'eww-browse-url)
|
||||||
|
(map! :leader
|
||||||
|
:desc "Search web for text between BEG/END"
|
||||||
|
"s w" #'eww-search-words
|
||||||
|
(:prefix ("e" . "evaluate/EWW")
|
||||||
|
:desc "Eww web browser" "w" #'eww
|
||||||
|
:desc "Eww reload page" "R" #'eww-reload))
|
||||||
|
|
||||||
|
(setq doom-unicode-font "Symbola")
|
||||||
|
(setq doom-font (font-spec :family "ComicShannsMono Nerd Font Mono" :size 18)
|
||||||
|
doom-variable-pitch-font (font-spec :family "ComicShannsMono Nerd Font Mono" :size 18)
|
||||||
|
doom-big-font (font-spec :family "ComicShannsMono Nerd Font Mono" :size 22))
|
||||||
|
(after! doom-themes
|
||||||
|
(setq doom-themes-enable-bold t
|
||||||
|
doom-themes-enable-italic t))
|
||||||
|
(custom-set-faces!
|
||||||
|
'(bold :weight ultra-bold)
|
||||||
|
'(font-lock-comment-face :slant italic)
|
||||||
|
'(font-lock-keyword-face :slant italic))
|
||||||
|
|
||||||
|
(defun func/insert-todays-date (prefix)
|
||||||
|
(interactive "P")
|
||||||
|
(let ((format (cond
|
||||||
|
((not prefix) "%Y-%m-%d")
|
||||||
|
((equal prefix '(4)) "%A, %B %d, %Y"))))
|
||||||
|
(insert (format-time-string format))))
|
||||||
|
|
||||||
|
(require 'calendar)
|
||||||
|
(defun func/insert-any-date (date)
|
||||||
|
"Insert DATE using the current locale."
|
||||||
|
(interactive (list (calendar-read-date)))
|
||||||
|
(insert (calendar-date-string date)))
|
||||||
|
|
||||||
|
(map! :leader
|
||||||
|
(:prefix ("i d" . "Insert date")
|
||||||
|
:desc "Insert any date" "a" #'func/insert-any-date
|
||||||
|
:desc "Insert todays date" "t" #'func/insert-todays-date))
|
||||||
|
|
||||||
|
(defun func/org-roam-capture-task ()
|
||||||
|
(interactive)
|
||||||
|
;; Capture the new task, creating the project file if necessary
|
||||||
|
(org-roam-capture-
|
||||||
|
:node (org-roam-node-read nil)
|
||||||
|
:templates '(("p" "project" plain "** TODO %?"
|
||||||
|
:if-new (file+head+olp "%<%Y%m%d%H%M%S>-${slug}.org"
|
||||||
|
"#+title: ${title}\n#+category: ${title}\n#+filetags: Project"
|
||||||
|
("Tasks"))))))
|
||||||
|
|
||||||
|
(global-set-key (kbd "C-c n t") #'my/org-roam-capture-task)
|
||||||
|
|
||||||
|
(use-package! flycheck
|
||||||
|
:config
|
||||||
|
(flycheck-define-checker nix-statix
|
||||||
|
"A syntax checker for Nix using Statix."
|
||||||
|
:command ("statix" "check" source)
|
||||||
|
:error-patterns
|
||||||
|
((warning line-start (file-name) ":" line ":" column
|
||||||
|
": " (message) line-end))
|
||||||
|
:modes (nix-mode))
|
||||||
|
|
||||||
|
(add-to-list 'flycheck-checkers 'nix-statix))
|
||||||
|
|
||||||
|
;; Populates only the EXPORT_FILE_NAME property in the inserted headline.
|
||||||
|
(with-eval-after-load 'org-capture
|
||||||
|
(defun org-hugo-new-subtree-post-capture-template ()
|
||||||
|
"Returns `org-capture' template string for new Hugo post.
|
||||||
|
See `org-capture-templates' for more information."
|
||||||
|
(let* ((title (read-from-minibuffer "Post Title: ")) ;Prompt to enter the post title
|
||||||
|
(fname (org-hugo-slug title)))
|
||||||
|
(mapconcat #'identity
|
||||||
|
`(
|
||||||
|
,(concat "* TODO " title)
|
||||||
|
":PROPERTIES:"
|
||||||
|
,(concat ":EXPORT_FILE_NAME: " (format-time-string "%Y-%m-%d-") fname)
|
||||||
|
":END:"
|
||||||
|
"%?\n") ;Place the cursor here finally
|
||||||
|
"\n"))))
|
||||||
|
;; org capture templates
|
||||||
|
(setq org-capture-templates
|
||||||
|
'(
|
||||||
|
("h" ;`org-capture' binding + h
|
||||||
|
"Hugo post"
|
||||||
|
entry
|
||||||
|
;; It is assumed that below file is present in `org-directory'
|
||||||
|
;; and that it has a "Blog Ideas" heading. It can even be a
|
||||||
|
;; symlink pointing to the actual location of all-posts.org!
|
||||||
|
(file+olp "/home/jawz/Development/Websites/portfolio/content-org/posts.org" "blog")
|
||||||
|
(function org-hugo-new-subtree-post-capture-template))
|
||||||
|
))
|
||||||
|
|
||||||
|
;;;(after! org
|
||||||
|
;;;;; ⧗ ― ﮸ λ ◁ ▷ ✧ ✦
|
||||||
|
;;;(appendq! +ligatures-extra-symbols
|
||||||
|
;;;`(:clock "⧗ "
|
||||||
|
;;;:circle ""
|
||||||
|
;;;:code ""
|
||||||
|
;;;:results "﮸"
|
||||||
|
;;;:shogi "⛊"
|
||||||
|
;;;:white_shogi "☖"
|
||||||
|
;;;:black_shogi "☗"
|
||||||
|
;;;:two_lines "⚏"
|
||||||
|
;;;;; :tags " "
|
||||||
|
;;;:empty ""
|
||||||
|
;;;))
|
||||||
|
;;;(set-ligatures! 'org-mode
|
||||||
|
;;;;; :merge t
|
||||||
|
;;;;; :clock ":LOGBOOK:"
|
||||||
|
;;;:quote "#+begin_quote"
|
||||||
|
;;;:name "#+CAPTION:"
|
||||||
|
;;;:quote_end "#+end_quote"
|
||||||
|
;;;:code "#+begin_src"
|
||||||
|
;;;:code "#+BEGIN_SRC"
|
||||||
|
;;;:src_block "#+BEGIN:"
|
||||||
|
;;;:code "#+end_src"
|
||||||
|
;;;:code "#+END_SRC"
|
||||||
|
;;;:results "#+RESULTS:"
|
||||||
|
;;;:results "#+results:"
|
||||||
|
;;;;; :src_block_end ":END:"
|
||||||
|
;;;;; :src_block_end "#+END"
|
||||||
|
;;;;; :two_lines ":PROPERTIES:"
|
||||||
|
;;;;; :black_shogi "#+CATEGORY:"
|
||||||
|
;;;;; :black_shogi "#+category:"
|
||||||
|
;;;;; :two_lines "#+startup:"
|
||||||
|
;;;;; :two_lines "#+STARTUP:"
|
||||||
|
;;;:empty "#+title: "
|
||||||
|
;;;:empty "#+TITLE: "
|
||||||
|
;;;;; :shogi "#+NAME:"
|
||||||
|
;;;;; :shogi "#+name:"
|
||||||
|
;;;;; :tags "keywords:"
|
||||||
|
;;;;; :black_shogi "#+roam_tags:"
|
||||||
|
;;;))
|
||||||
|
|
||||||
|
(setq display-line-numbers-type t)
|
||||||
|
(map! :leader
|
||||||
|
:desc "Comment or uncomment lines" "TAB TAB" #'comment-line
|
||||||
|
(:prefix ("t" . "toggle")
|
||||||
|
:desc "Toggle line numbers" "l" #'doom/toggle-line-numbers
|
||||||
|
:desc "Toggle line highlight in frame" "h" #'hl-line-mode
|
||||||
|
:desc "Toggle line highlight globally" "H" #'global-hl-line-mode
|
||||||
|
:desc "Toggle truncate lines" "t" #'toggle-truncate-lines))
|
||||||
|
|
||||||
|
(setq display-line-numbers-type `relative)
|
||||||
|
(global-visual-line-mode t)
|
||||||
|
|
||||||
|
;; CONFIG
|
||||||
|
(require 'config-general-mode)
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.conf$" . config-general-mode))
|
||||||
|
|
||||||
|
(setq all-the-icons-scale-factor .8) ;; fixes the issue of rightmost characters not fitting.
|
||||||
|
(set-face-attribute 'mode-line nil :font "Iosevka Nerd Font-15")
|
||||||
|
(setq doom-modeline-height 30 ;; sets modeline height
|
||||||
|
doom-modeline-bar-width 5 ;; sets right bar width
|
||||||
|
doom-modeline-persp-name t ;; adds perspective name to modeline
|
||||||
|
doom-modeline-persp-icon t) ;; adds folder icon next to persp name
|
||||||
|
|
||||||
|
(xterm-mouse-mode 1)
|
||||||
|
|
||||||
|
(map! :leader
|
||||||
|
(:prefix ("=" . "open file")
|
||||||
|
:desc "Edit agenda file" "a" #'(lambda () (interactive)
|
||||||
|
(find-file
|
||||||
|
"~/Documents/Notes/20220819130052-agenda.org"))
|
||||||
|
:desc "Edit doom config.org" "c" #'(lambda () (interactive)
|
||||||
|
(find-file
|
||||||
|
"~/.config/doom/config.org"))
|
||||||
|
:desc "Edit doom init.el" "i" #'(lambda () (interactive)
|
||||||
|
(find-file "~/.config/doom/init.el"))
|
||||||
|
:desc "Edit doom packages.el" "p" #'(lambda () (interactive)
|
||||||
|
(find-file "~/.config/doom/packages.el"))))
|
||||||
|
|
||||||
|
(setq read-process-output-max (* 1024 1024)) ;; 1mb
|
||||||
|
(setq lsp-idle-delay 0.500)
|
||||||
|
(setq lsp-log-io nil) ; if set to true can cause a performance hit
|
||||||
|
;; c# LSP
|
||||||
|
(after! lsp-mode
|
||||||
|
(setq lsp-csharp-server-path "/usr/bin/omnisharp"))
|
||||||
|
|
||||||
|
(after! org
|
||||||
|
(setq org-directory "~/Documents/Notes/"
|
||||||
|
org-agenda-files (directory-files-recursively
|
||||||
|
"~/Documents/Notes" "\\.org$")
|
||||||
|
;; org-default-notes-file (expand-file-name "Notes.org" org-directory)
|
||||||
|
org-id-locations-file "~/Documents/Notes/.orgids"
|
||||||
|
org-attach-id-dir "~/Documents/Notes/images"
|
||||||
|
org-ellipsis " ▼ "
|
||||||
|
org-superstar-headline-bullets-list '("◉" "●" "○" "◆" "●" "○" "◆")
|
||||||
|
org-superstar-item-bullet-alist '((?+ . ?+) (?- . ?-))
|
||||||
|
org-log-done 'time
|
||||||
|
org-log-into-drawer t
|
||||||
|
org-hide-emphasis-markers t
|
||||||
|
org-todo-keywords
|
||||||
|
'((sequence
|
||||||
|
"TODO(t)" ; A task that needs doing & is ready to do
|
||||||
|
"PROJ(p)" ; A project, which usually contains other tasks
|
||||||
|
"ART(a)" ; Similar to PROJ but focused on drawing
|
||||||
|
"IDEA(i)" ; Misc tasks, usually to elaborate on writing later
|
||||||
|
"HOLD(h)" ; This task is paused/on hold because I'm a lazy fuck
|
||||||
|
"|"
|
||||||
|
"DONE(d)" ; Task succesfully completed
|
||||||
|
"CANCELED(c)") ; Task was cancelled
|
||||||
|
(sequence
|
||||||
|
"[ ](T)" ; A task that needs doing
|
||||||
|
"[-](S)" ; A task in progress
|
||||||
|
"[?](H)" ; A task on hold
|
||||||
|
"|"
|
||||||
|
"[X](D)")) ; A task completed
|
||||||
|
org-todo-keyword-faces
|
||||||
|
'(("[-]" . +org-todo-active)
|
||||||
|
("[?]" . +org-todo-onhold)
|
||||||
|
("HOLD" . +org-todo-onhold)
|
||||||
|
("ART" . +org-todo-project)
|
||||||
|
("IDEA" . +org-todo-project)
|
||||||
|
("PROJ" . +org-todo-project)
|
||||||
|
("CANCELED" . +org-todo-cancel)))
|
||||||
|
(require 'org-habit))
|
||||||
|
|
||||||
|
(use-package! org-roam-bibtex
|
||||||
|
:after org-roam
|
||||||
|
:load-path "~/Documents/Notes/bibtex/")
|
||||||
|
;; :config
|
||||||
|
;; (require 'org-ref)) ; optional: if using Org-ref v2 or v3 citation links
|
||||||
|
|
||||||
|
(custom-set-faces
|
||||||
|
'(org-level-1 ((t (:inherit outline-1 :height 1.4))))
|
||||||
|
'(org-level-2 ((t (:inherit outline-2 :height 1.3))))
|
||||||
|
'(org-level-3 ((t (:inherit outline-3 :height 1.2))))
|
||||||
|
'(org-level-4 ((t (:inherit outline-4 :height 1.1))))
|
||||||
|
'(org-level-5 ((t (:inherit outline-5 :height 1.0))))
|
||||||
|
'(org-document-title ((t (:inherit outline-1 :height 2.0))))
|
||||||
|
)
|
||||||
|
|
||||||
|
;; (use-package org-alert
|
||||||
|
;; :ensure t)
|
||||||
|
;; (setq alert-default-style 'libnotify
|
||||||
|
;; org-alert-interval 3600)
|
||||||
|
;; ;; Auto start org-alert when emacs/daemon load
|
||||||
|
;; (org-alert-enable)
|
||||||
|
|
||||||
|
(use-package org-auto-tangle
|
||||||
|
:defer t
|
||||||
|
:hook (org-mode . org-auto-tangle-mode))
|
||||||
|
|
||||||
|
(map! :leader
|
||||||
|
:desc "Org babel tangle" "m B" #'org-babel-tangle)
|
||||||
|
;; (org-babel-do-load-languages
|
||||||
|
;; 'org-babel-load-languages
|
||||||
|
;; '((R . t)
|
||||||
|
;; (emacs-lisp . t)
|
||||||
|
;; (nix . t)))
|
||||||
|
|
||||||
|
(require 'org-inlinetask)
|
||||||
|
(setq org-inlinetask-min-level 9)
|
||||||
|
|
||||||
|
(setq deft-directory "~/Documents/Notes/")
|
||||||
|
(use-package org-roam
|
||||||
|
:ensure t
|
||||||
|
:custom
|
||||||
|
(org-roam-directory "~/Documents/Notes/")
|
||||||
|
(org-roam-completion-everywhere t)
|
||||||
|
(org-roam-dailies-capture-templates
|
||||||
|
'(("d" "default" entry "* %<%I:%M %p>: %?"
|
||||||
|
:if-new (file+head "%<%Y-%m-%d>.org" "#+title: %<%Y-%m-%d>\n"))))
|
||||||
|
(org-roam-capture-templates
|
||||||
|
'(("d" "default" plain
|
||||||
|
"%?"
|
||||||
|
:if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n")
|
||||||
|
:unnarrowed t)
|
||||||
|
("l" "programming language" plain
|
||||||
|
(file "/home/jawz/.config/doom/templates/programming.org")
|
||||||
|
:if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+filetags: :programming:language:${title}:\n#+title: ${title}")
|
||||||
|
:unnarrowed t)
|
||||||
|
("e" "political events" plain
|
||||||
|
(file "/home/jawz/.config/doom/templates/events.org")
|
||||||
|
:if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+filetags: :politics:conflicts:\n#+title: ${title}")
|
||||||
|
:unnarrowed t)
|
||||||
|
("p" "project" plain
|
||||||
|
"* PROJ ${title}\n%?\n* Tasks"
|
||||||
|
:if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+category: ${title}\n#+filetags: :project:\n#+title: ${title}")
|
||||||
|
:unnarrowed t)
|
||||||
|
))
|
||||||
|
:bind()
|
||||||
|
:bind-keymap()
|
||||||
|
:config
|
||||||
|
(org-roam-db-autosync-mode))
|
||||||
|
(setq completion-ignore-case t)
|
||||||
|
(set-file-template! "~/Documents/Notes/.+\\.org$" 'org-mode :ignore t)
|
||||||
|
|
||||||
|
(use-package! websocket
|
||||||
|
:after org-roam)
|
||||||
|
|
||||||
|
(use-package! org-roam-ui
|
||||||
|
:after org-roam ;; or :after org
|
||||||
|
;; normally we'd recommend hooking orui after org-roam, but since org-roam does not have
|
||||||
|
;; a hookable mode anymore, you're advised to pick something yourself
|
||||||
|
;; if you don't care about startup time, use
|
||||||
|
;; :hook (after-init . org-roam-ui-mode)
|
||||||
|
:config
|
||||||
|
(setq org-roam-ui-sync-theme t
|
||||||
|
org-roam-ui-follow t
|
||||||
|
org-roam-ui-update-on-save t
|
||||||
|
org-roam-ui-open-on-start nil))
|
||||||
|
|
||||||
|
(use-package! org-transclusion
|
||||||
|
:after org
|
||||||
|
:init
|
||||||
|
(map!
|
||||||
|
:map global-map "<f12>" #'org-transclusion-add
|
||||||
|
:leader
|
||||||
|
(:prefix ("n r" . "toggle")
|
||||||
|
:desc "Org Transclussion Add" "a" #'org-transclusion-add
|
||||||
|
:desc "Org Transclusion Mode" "t" #'org-transclusion-mode)))
|
||||||
|
|
||||||
|
(after! undo-tree
|
||||||
|
(setq undo-tree-auto-save-history nil))
|
||||||
|
|
||||||
|
;; (remove-hook 'undo-fu-mode-hook #'global-undo-fu-session-mode)
|
||||||
|
|
||||||
|
(setq user-full-name "Danilo Reyes"
|
||||||
|
user-mail-address "CaptainJawZ@outlook.com")
|
||||||
|
|
||||||
|
(custom-set-variables
|
||||||
|
'(flycheck-flake8-maximum-line-length 88)
|
||||||
|
'(safe-local-variable-values '((git-commit-major-mode . git-commit-elisp-text-mode))))
|
||||||
|
|
||||||
|
(map! :leader
|
||||||
|
(:prefix ("r" . "registers")
|
||||||
|
:desc "Copy to register" "c" #'copy-to-register
|
||||||
|
:desc "Frameset to register" "f" #'frameset-to-register
|
||||||
|
:desc "Insert contents of register" "i" #'insert-register
|
||||||
|
:desc "Jump to register" "j" #'jump-to-register
|
||||||
|
:desc "List registers" "l" #'list-registers
|
||||||
|
:desc "Number to register" "n" #'number-to-register
|
||||||
|
:desc "Interactively choose a register" "r" #'counsel-register
|
||||||
|
:desc "View a register" "v" #'view-register
|
||||||
|
:desc "Window configuration to register" "w" #'window-configuration-to-register
|
||||||
|
:desc "Increment register" "+" #'increment-register
|
||||||
|
:desc "Point to register" "SPC" #'point-to-register))
|
||||||
|
|
||||||
|
(defadvice! fixed-flycheck-proselint-parse-errors-a (output checker buffer)
|
||||||
|
:override #'flycheck-proselint-parse-errors
|
||||||
|
(delq
|
||||||
|
nil (mapcar (lambda (err)
|
||||||
|
(let-alist err
|
||||||
|
(and (or (not (derived-mode-p 'org-mode))
|
||||||
|
(save-excursion (goto-char .start)
|
||||||
|
(not (org-in-src-block-p))))
|
||||||
|
(flycheck-error-new-at-pos
|
||||||
|
.start
|
||||||
|
(pcase .severity
|
||||||
|
(`"suggestion" 'info)
|
||||||
|
(`"warning" 'warning)
|
||||||
|
(`"error" 'error)
|
||||||
|
(_ 'error))
|
||||||
|
.message
|
||||||
|
:id .check
|
||||||
|
:buffer buffer
|
||||||
|
:checker checker
|
||||||
|
:end-pos .end))))
|
||||||
|
(let-alist (car (flycheck-parse-json output))
|
||||||
|
.data.errors))))
|
||||||
|
|
||||||
|
(defun prefer-horizontal-split ()
|
||||||
|
(set-variable 'split-height-threshold nil t)
|
||||||
|
(set-variable 'split-width-threshold 40 t)) ; make this as low as needed
|
||||||
|
(add-hook 'markdown-mode-hook 'prefer-horizontal-split)
|
||||||
|
(map! :leader
|
||||||
|
:desc "Clone indirect buffer other window" "b c" #'clone-indirect-buffer-other-window)
|
||||||
|
|
||||||
|
(setq twittering-allow-insecure-server-cert t)
|
||||||
|
|
||||||
|
(map! :leader
|
||||||
|
(:prefix ("w" . "window")
|
||||||
|
:desc "Winner redo" "<right>" #'winner-redo
|
||||||
|
:desc "Winner undo" "<left>" #'winner-undo))
|
||||||
|
|
||||||
|
(map! :leader
|
||||||
|
:desc "Zap to char" "z" #'zap-to-char
|
||||||
|
:desc "Zap up to char" "Z" #'zap-up-to-char)
|
||||||
1041
dotfiles/doom/config.org
Executable file
1041
dotfiles/doom/config.org
Executable file
File diff suppressed because it is too large
Load Diff
21
dotfiles/doom/custom.el
Normal file
21
dotfiles/doom/custom.el
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
(custom-set-variables
|
||||||
|
;; custom-set-variables was added by Custom.
|
||||||
|
;; 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.
|
||||||
|
'(flycheck-flake8-maximum-line-length 88)
|
||||||
|
'(safe-local-variable-values
|
||||||
|
'((org-hugo-auto-export-on-save . t)
|
||||||
|
(org-hugo-base-dir . /home/jawz/Development/Websites/portfolio/)
|
||||||
|
(git-commit-major-mode . git-commit-elisp-text-mode))))
|
||||||
|
(custom-set-faces
|
||||||
|
;; custom-set-faces was added by Custom.
|
||||||
|
;; 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.
|
||||||
|
'(org-document-title ((t (:inherit outline-1 :height 2.0))))
|
||||||
|
'(org-level-1 ((t (:inherit outline-1 :height 1.4))))
|
||||||
|
'(org-level-2 ((t (:inherit outline-2 :height 1.3))))
|
||||||
|
'(org-level-3 ((t (:inherit outline-3 :height 1.2))))
|
||||||
|
'(org-level-4 ((t (:inherit outline-4 :height 1.1))))
|
||||||
|
'(org-level-5 ((t (:inherit outline-5 :height 1.0)))))
|
||||||
192
dotfiles/doom/init.el
Executable file
192
dotfiles/doom/init.el
Executable file
@ -0,0 +1,192 @@
|
|||||||
|
;;; init.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
;; This file controls what Doom modules are enabled and what order they load
|
||||||
|
;; in. Remember to run 'doom sync' after modifying it!
|
||||||
|
|
||||||
|
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
|
||||||
|
;; documentation. There you'll find a link to Doom's Module Index where all
|
||||||
|
;; of our modules are listed, including what flags they support.
|
||||||
|
|
||||||
|
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
|
||||||
|
;; 'C-c c k' for non-vim users) to view its documentation. This works on
|
||||||
|
;; flags as well (those symbols that start with a plus).
|
||||||
|
;;
|
||||||
|
;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
|
||||||
|
;; directory (for easy access to its source code).
|
||||||
|
|
||||||
|
(doom! :input
|
||||||
|
;;bidi ; (tfel ot) thgir etirw uoy gnipleh
|
||||||
|
;;chinese
|
||||||
|
;;japanese
|
||||||
|
;;layout ; auie,ctsrnm is the superior home row
|
||||||
|
|
||||||
|
:completion
|
||||||
|
;; company ; the ultimate code completion backend
|
||||||
|
(corfu +orderless) ; complete with cap(f), cape and a flying feather!
|
||||||
|
;;helm ; the *other* search engine for love and life
|
||||||
|
;;ido ; the other *other* search engine...
|
||||||
|
;;(ivy +fuzzy +childframe +icons) ; a search engine for love and life
|
||||||
|
vertico ; the search engine of the future
|
||||||
|
|
||||||
|
:ui
|
||||||
|
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
|
||||||
|
;;(emoji +unicode +github) ; 🙂
|
||||||
|
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
|
||||||
|
;;indent-guides ; highlighted indent columns
|
||||||
|
;;(ligatures +extra +iosevka) ; ligatures and symbols to make your code pretty again
|
||||||
|
;;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
|
||||||
|
ophints ; highlight the region an operation acts on
|
||||||
|
(popup +defaults) ; tame sudden yet inevitable temporary windows
|
||||||
|
;;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
|
||||||
|
;;window-select ; visually switch windows
|
||||||
|
workspaces ; tab emulation, persistence & separate workspaces
|
||||||
|
;;zen ; distraction-free coding or writing
|
||||||
|
|
||||||
|
:editor
|
||||||
|
(evil +everywhere); come to the dark side, we have cookies
|
||||||
|
file-templates ; auto-snippets for empty files
|
||||||
|
fold ; (nigh) universal code folding
|
||||||
|
(format +onsave) ; automated prettiness
|
||||||
|
;;god ; run Emacs commands without modifier keys
|
||||||
|
;;lispy ; vim for lisp, for people who don't like vim
|
||||||
|
;;multiple-cursors ; editing in many places at once
|
||||||
|
;;objed ; text object editing for the innocent
|
||||||
|
;;parinfer ; turn lisp into python, sort of
|
||||||
|
rotate-text ; cycle region at point between text candidates
|
||||||
|
snippets ; my elves. They type so I don't have to
|
||||||
|
;;word-wrap ; soft wrapping with language-aware indent
|
||||||
|
|
||||||
|
:emacs
|
||||||
|
dired ; making dired pretty [functional]
|
||||||
|
electric ; smarter, keyword-based electric-indent
|
||||||
|
eww ; the internet is gross
|
||||||
|
ibuffer ; interactive buffer management
|
||||||
|
(undo +tree) ; persistent, smarter undo for your inevitable mistakes
|
||||||
|
vc ; version-control and Emacs, sitting in a tree
|
||||||
|
|
||||||
|
:term
|
||||||
|
;;eshell ; the elisp shell that works everywhere
|
||||||
|
;;shell ; simple shell REPL for Emacs
|
||||||
|
;;term ; basic terminal emulator for Emacs
|
||||||
|
vterm ; the best terminal emulation in Emacs
|
||||||
|
|
||||||
|
:checkers
|
||||||
|
syntax ; tasing you for every semicolon you forget
|
||||||
|
(spell +flyspell +hunspell) ; tasing you for misspelling mispelling
|
||||||
|
grammar ; tasing grammar mistake every you make
|
||||||
|
|
||||||
|
:tools
|
||||||
|
;;ansible
|
||||||
|
;;biblio ; Writes a PhD for you (citation needed)
|
||||||
|
;;collab ; buffers with friends
|
||||||
|
;;debugger ; FIXME stepping through code, to help you add bugs
|
||||||
|
direnv
|
||||||
|
(docker +lsp)
|
||||||
|
editorconfig ; let someone else argue about tabs vs spaces
|
||||||
|
;;ein ; tame Jupyter notebooks with emacs
|
||||||
|
(eval +overlay) ; run code, run (also, repls)
|
||||||
|
(lookup +dictionary + offline) ; navigate your code and its documentation
|
||||||
|
(lsp +peek) ; M-x vscode
|
||||||
|
magit ; a git porcelain for Emacs
|
||||||
|
;;make ; run make tasks from Emacs
|
||||||
|
;;pass ; password manager for nerds
|
||||||
|
;;pdf ; pdf enhancements
|
||||||
|
;;prodigy ; FIXME managing external services & code builders
|
||||||
|
;;terraform ; infrastructure as code
|
||||||
|
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 (featurep :system 'macos) macos) ; improve compatibility with macOS tty ; improve the terminal Emacs experience
|
||||||
|
|
||||||
|
:lang
|
||||||
|
;;agda ; types of types of types of types...
|
||||||
|
;;beancount ; mind the GAAP
|
||||||
|
;;(cc +lsp) ; 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 +lsp +tree-sitter) ; unity, .NET, and mono shenanigans
|
||||||
|
;;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
|
||||||
|
;;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 +lsp) ; the language you waited for
|
||||||
|
;;(go +lsp) ; the hipster dialect
|
||||||
|
;;(graphql +lsp) ; Give queries a REST
|
||||||
|
(haskell +lsp +tree-sitter) ; a language that's lazier than I am
|
||||||
|
;;hy ; readability of scheme w/ speed of python
|
||||||
|
;;idris ; a language you can depend on
|
||||||
|
(json +lsp +tree-sitter) ; At least it ain't XML
|
||||||
|
;;(java +lsp +tree-sitter) ; the poster child for carpal tunnel syndrome
|
||||||
|
(javascript +lsp +tree-sitter) ; all(hope(abandon(ye(who(enter(here))))))
|
||||||
|
;;julia ; a better, faster MATLAB
|
||||||
|
;;kotlin ; a better, slicker Java(Script)
|
||||||
|
;;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
|
||||||
|
;;markdown ; writing docs for people to ignore
|
||||||
|
;;nim ; python + lisp at the speed of c
|
||||||
|
(nix +lsp +tree-sitter) ; I hereby declare "nix geht mehr!"
|
||||||
|
;;ocaml ; an objective camel
|
||||||
|
(org +hugo +pretty +roam2) ; organize your plain life in plain text
|
||||||
|
;;(php +lsp +tree-sitter) ; perl's insecure younger brother
|
||||||
|
;;plantuml ; diagrams for confusing people more
|
||||||
|
;; graphviz ; diagrams for confusing yourself even more
|
||||||
|
;;purescript ; javascript, but functional
|
||||||
|
(python +pyright +lsp +tree-sitter) ; beautiful is better than ugly
|
||||||
|
;;qt ; the 'cutest' gui framework ever
|
||||||
|
;;racket ; a DSL for DSLs
|
||||||
|
;;raku ; the artist formerly known as perl6
|
||||||
|
;;rest ; Emacs as a REST client
|
||||||
|
;;rst ; ReST in peace
|
||||||
|
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
||||||
|
(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
||||||
|
;;scala ; java, but good
|
||||||
|
;;(scheme +guile) ; a fully conniving family of lisps
|
||||||
|
(sh +lsp +tree-sitter) ; she sells {ba,z,fi}sh shells on the C xor
|
||||||
|
;;sml
|
||||||
|
;;solidity ; do you need a blockchain? No.
|
||||||
|
;;swift ; who asked for emoji variables?
|
||||||
|
;;terra ; Earth and Moon in alignment for performance.
|
||||||
|
;;web ; the tubes
|
||||||
|
(yaml +lsp +tree-sitter) ; JSON, but readable
|
||||||
|
;;zig ; C, but simpler
|
||||||
|
|
||||||
|
:email
|
||||||
|
;;(mu4e +org +gmail)
|
||||||
|
;;notmuch
|
||||||
|
;;(wanderlust +gmail)
|
||||||
|
|
||||||
|
:app
|
||||||
|
calendar
|
||||||
|
;;emms
|
||||||
|
everywhere ; *leave* Emacs!? You must be joking
|
||||||
|
;;irc ; how neckbeards socialize
|
||||||
|
;;(rss +org) ; emacs as an RSS reader
|
||||||
|
|
||||||
|
:config
|
||||||
|
literate
|
||||||
|
(default +bindings +smartparens))
|
||||||
93
dotfiles/doom/packages.el
Executable file
93
dotfiles/doom/packages.el
Executable file
@ -0,0 +1,93 @@
|
|||||||
|
;; -*- no-byte-compile: t; -*-
|
||||||
|
;;; $DOOMDIR/packages.el
|
||||||
|
|
||||||
|
;; To install a package with Doom you must declare them here and run 'doom sync'
|
||||||
|
;; on the command line, then restart Emacs for the changes to take effect -- or
|
||||||
|
;; use 'M-x doom/reload'.
|
||||||
|
|
||||||
|
|
||||||
|
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
|
||||||
|
;(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/raxod502/straight.el#the-recipe-format
|
||||||
|
;(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")))
|
||||||
|
|
||||||
|
;; 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)
|
||||||
|
|
||||||
|
;; 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"))
|
||||||
|
|
||||||
|
;; 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 raxod502/straight.el#279)
|
||||||
|
;(package! builtin-package :recipe (:branch "develop"))
|
||||||
|
|
||||||
|
;; Use `:pin' to specify a particular commit to install.
|
||||||
|
;(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)
|
||||||
|
;; ...or multiple packages
|
||||||
|
;(unpin! pinned-package another-pinned-package)
|
||||||
|
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
|
||||||
|
;(unpin! t)
|
||||||
|
|
||||||
|
;; (package! nixos-options) ;; enable when migrating to nixos
|
||||||
|
;; (package! quick-preview) ;; preview files with sushi
|
||||||
|
|
||||||
|
|
||||||
|
;; (package! codeium :recipe (:host github :repo "Exafunction/codeium.el"))
|
||||||
|
(package! config-general-mode)
|
||||||
|
(package! dired-open)
|
||||||
|
(package! dired-subtree)
|
||||||
|
(package! doom-modeline-now-playing)
|
||||||
|
(package! ini-mode)
|
||||||
|
(package! insert-esv) ;; bible passages
|
||||||
|
(package! olivetti) ;; writing mode centering text, looks like word
|
||||||
|
(package! org-auto-tangle)
|
||||||
|
(package! org-roam-ui)
|
||||||
|
(package! org-transclusion)
|
||||||
|
(package! peep-dired) ;; kind of cool but never could make it work
|
||||||
|
(package! php-cs-fixer)
|
||||||
|
(package! systemd)
|
||||||
|
;; (package! 2048-game)
|
||||||
|
;; (package! academic-phrases)
|
||||||
|
;; (package! caddyfile-mode)
|
||||||
|
;; (package! clippy)
|
||||||
|
;; (package! crontab-mode) ;; crontab colors
|
||||||
|
;; (package! evil-tutor) ;; vim tutorial
|
||||||
|
;; (package! ewal) ;; theme colors based on pywal
|
||||||
|
;; (package! ewal-doom-themes)
|
||||||
|
;; (package! ewal-evil-cursors)
|
||||||
|
;; (package! fish-completion) ;; what does it do???????????????????????????
|
||||||
|
;; (package! flycheck-aspell)
|
||||||
|
;; (package! ivy-posframe)
|
||||||
|
;; (package! mw-thesaurus)
|
||||||
|
;; (package! org-alert)
|
||||||
|
;; (package! org-appear) ;; couldn't get it to work
|
||||||
|
;; (package! org-recur) ;; works but I want to keep org vanilla
|
||||||
|
;; (package! ox-chameleon
|
||||||
|
;; :recipe (:host github :repo "tecosaur/ox-chameleon"))
|
||||||
|
;; (package! renpy)
|
||||||
|
;; (package! resize-window)
|
||||||
|
;; (package! tldr)
|
||||||
|
;; (package! typit) ;; type speed test
|
||||||
|
;; (package! vimgolf) ;; vim puzzles
|
||||||
|
;; (package! wc-mode) ;; displays character count of buffer
|
||||||
1
dotfiles/doom/templates/default.org
Executable file
1
dotfiles/doom/templates/default.org
Executable file
@ -0,0 +1 @@
|
|||||||
|
%?
|
||||||
21
dotfiles/doom/templates/events.org
Normal file
21
dotfiles/doom/templates/events.org
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
%?
|
||||||
|
|
||||||
|
* Sources
|
||||||
|
1.
|
||||||
|
|
||||||
|
* Belligerents
|
||||||
|
1.
|
||||||
|
|
||||||
|
* Casualties and losses
|
||||||
|
|
||||||
|
* Location
|
||||||
|
|
||||||
|
* Causes
|
||||||
|
|
||||||
|
* Events
|
||||||
|
|
||||||
|
* Major Contention Events
|
||||||
|
|
||||||
|
* Outcome
|
||||||
|
|
||||||
|
* Important Notes
|
||||||
13
dotfiles/doom/templates/programming.org
Executable file
13
dotfiles/doom/templates/programming.org
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
%?
|
||||||
|
|
||||||
|
- Influenced by
|
||||||
|
- Influenced
|
||||||
|
- Related tools
|
||||||
|
|
||||||
|
* Hello World
|
||||||
|
|
||||||
|
* Tips
|
||||||
|
|
||||||
|
* Resources
|
||||||
|
- Documentation
|
||||||
|
- YouTube channels
|
||||||
126
flake.lock
generated
126
flake.lock
generated
@ -116,6 +116,45 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"doomemacs": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733434763,
|
||||||
|
"narHash": "sha256-sebujw5VvBWMS+wXyjiGF81iyjPM/QQDnw5l7tDJCvk=",
|
||||||
|
"owner": "doomemacs",
|
||||||
|
"repo": "doomemacs",
|
||||||
|
"rev": "ba1dca322f9a07bc2b7bec6a98f2c3c55c0bbd77",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "doomemacs",
|
||||||
|
"repo": "doomemacs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"emacs-overlay": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-doom-emacs-unstraightened"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": [
|
||||||
|
"nix-doom-emacs-unstraightened"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1734423772,
|
||||||
|
"narHash": "sha256-AN8gnO871LRm1vvclMqXt+YWS5fJeX5BE2BDuaIQdHs=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "emacs-overlay",
|
||||||
|
"rev": "840a2fa3e9d546ecbcc080ee13bf6aa0e8697b10",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "emacs-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@ -528,9 +567,7 @@
|
|||||||
},
|
},
|
||||||
"jawz-scripts": {
|
"jawz-scripts": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": "nixpkgs"
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734312686,
|
"lastModified": 1734312686,
|
||||||
@ -546,6 +583,27 @@
|
|||||||
"url": "ssh://git@gitlab.com/CaptainJawZ/scripts-flake.git"
|
"url": "ssh://git@gitlab.com/CaptainJawZ/scripts-flake.git"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-doom-emacs-unstraightened": {
|
||||||
|
"inputs": {
|
||||||
|
"doomemacs": "doomemacs",
|
||||||
|
"emacs-overlay": "emacs-overlay",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1734424909,
|
||||||
|
"narHash": "sha256-P06anJ94BOMY8wIlOrpZ4+wDG63zDUz8hTWU757dlgM=",
|
||||||
|
"owner": "marienz",
|
||||||
|
"repo": "nix-doom-emacs-unstraightened",
|
||||||
|
"rev": "3923ae495bf08dffd21efef50b04b074a54299b1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "marienz",
|
||||||
|
"repo": "nix-doom-emacs-unstraightened",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-gaming": {
|
"nix-gaming": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
@ -570,18 +628,14 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734119587,
|
"lastModified": 0,
|
||||||
"narHash": "sha256-AKU6qqskl0yf2+JdRdD0cfxX4b9x3KKV5RqA6wijmPM=",
|
"narHash": "sha256-AKU6qqskl0yf2+JdRdD0cfxX4b9x3KKV5RqA6wijmPM=",
|
||||||
"owner": "nixos",
|
"path": "/nix/store/22r7q7s9552gn1vpjigkbhfgcvhsrz68-source",
|
||||||
"repo": "nixpkgs",
|
"type": "path"
|
||||||
"rev": "3566ab7246670a43abd2ffa913cc62dad9cdf7d5",
|
|
||||||
"type": "github"
|
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"id": "nixpkgs",
|
||||||
"ref": "nixos-unstable",
|
"type": "indirect"
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-lib": {
|
"nixpkgs-lib": {
|
||||||
@ -612,6 +666,34 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 0,
|
||||||
|
"narHash": "sha256-AKU6qqskl0yf2+JdRdD0cfxX4b9x3KKV5RqA6wijmPM=",
|
||||||
|
"path": "/nix/store/22r7q7s9552gn1vpjigkbhfgcvhsrz68-source",
|
||||||
|
"type": "path"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1734119587,
|
||||||
|
"narHash": "sha256-AKU6qqskl0yf2+JdRdD0cfxX4b9x3KKV5RqA6wijmPM=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "3566ab7246670a43abd2ffa913cc62dad9cdf7d5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_2",
|
"flake-parts": "flake-parts_2",
|
||||||
@ -663,8 +745,9 @@
|
|||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"hyprland": "hyprland",
|
"hyprland": "hyprland",
|
||||||
"jawz-scripts": "jawz-scripts",
|
"jawz-scripts": "jawz-scripts",
|
||||||
|
"nix-doom-emacs-unstraightened": "nix-doom-emacs-unstraightened",
|
||||||
"nix-gaming": "nix-gaming",
|
"nix-gaming": "nix-gaming",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs_3",
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
"stylix": "stylix",
|
"stylix": "stylix",
|
||||||
@ -704,7 +787,7 @@
|
|||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": "systems_2",
|
"systems": "systems_3",
|
||||||
"tinted-foot": "tinted-foot",
|
"tinted-foot": "tinted-foot",
|
||||||
"tinted-kitty": "tinted-kitty",
|
"tinted-kitty": "tinted-kitty",
|
||||||
"tinted-tmux": "tinted-tmux"
|
"tinted-tmux": "tinted-tmux"
|
||||||
@ -753,6 +836,21 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"tinted-foot": {
|
"tinted-foot": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|||||||
15
flake.nix
15
flake.nix
@ -3,6 +3,8 @@
|
|||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||||
ucodenix.url = "github:e-tho/ucodenix";
|
ucodenix.url = "github:e-tho/ucodenix";
|
||||||
|
nix-doom-emacs-unstraightened.url = "github:marienz/nix-doom-emacs-unstraightened";
|
||||||
|
jawz-scripts.url = "git+ssh://git@gitlab.com/CaptainJawZ/scripts-flake.git";
|
||||||
nur = {
|
nur = {
|
||||||
url = "github:nix-community/nur";
|
url = "github:nix-community/nur";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
@ -27,10 +29,7 @@
|
|||||||
url = "github:danth/stylix";
|
url = "github:danth/stylix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
jawz-scripts = {
|
|
||||||
url = "git+ssh://git@gitlab.com/CaptainJawZ/scripts-flake.git";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
@ -42,7 +41,6 @@
|
|||||||
inherit system;
|
inherit system;
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
};
|
};
|
||||||
overlayFile = import ./overlay.nix { inherit pkgs; };
|
|
||||||
lib = inputs.nixpkgs.lib // inputs.home-manager.lib;
|
lib = inputs.nixpkgs.lib // inputs.home-manager.lib;
|
||||||
createConfig =
|
createConfig =
|
||||||
name:
|
name:
|
||||||
@ -52,7 +50,12 @@
|
|||||||
inherit inputs outputs;
|
inherit inputs outputs;
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
{ nixpkgs.overlays = [ overlayFile ]; }
|
{
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(import ./overlay.nix { inherit pkgs; })
|
||||||
|
inputs.nix-doom-emacs-unstraightened.overlays.default
|
||||||
|
];
|
||||||
|
}
|
||||||
./hosts/${name}/configuration.nix
|
./hosts/${name}/configuration.nix
|
||||||
inputs.nur.modules.nixos.default
|
inputs.nur.modules.nixos.default
|
||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
|
|||||||
@ -1,6 +1,10 @@
|
|||||||
{ config, ... }:
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
home.stateVersion = "24.11";
|
home.stateVersion = "24.11";
|
||||||
|
stylix.targets = {
|
||||||
|
emacs.enable = true;
|
||||||
|
vesktop.enable = true;
|
||||||
|
};
|
||||||
programs.bash = {
|
programs.bash = {
|
||||||
enable = true;
|
enable = true;
|
||||||
historyFile = "\${XDG_STATE_HOME}/bash/history";
|
historyFile = "\${XDG_STATE_HOME}/bash/history";
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
inputs,
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
@ -24,42 +25,54 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
users.users.jawz.packages =
|
|
||||||
builtins.attrValues {
|
|
||||||
inherit (pkgs.xorg) xwininfo;
|
|
||||||
inherit (pkgs)
|
|
||||||
xdotool
|
|
||||||
xclip
|
|
||||||
wl-clipboard-rs
|
|
||||||
;
|
|
||||||
}
|
|
||||||
++ builtins.attrValues {
|
|
||||||
inherit (pkgs)
|
|
||||||
fd # modern find, faster searches
|
|
||||||
fzf # fuzzy finder! super cool and useful
|
|
||||||
ripgrep # modern grep
|
|
||||||
tree-sitter # code parsing based on symbols and shit, I do not get it
|
|
||||||
graphviz # graphs
|
|
||||||
tetex # export pdf
|
|
||||||
languagetool # proofreader for English
|
|
||||||
|
|
||||||
# lsps
|
|
||||||
yaml-language-server
|
|
||||||
markdownlint-cli
|
|
||||||
;
|
|
||||||
inherit (pkgs.nodePackages)
|
|
||||||
vscode-json-languageserver
|
|
||||||
prettier # multi-language linter
|
|
||||||
;
|
|
||||||
};
|
|
||||||
services.emacs = {
|
services.emacs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package =
|
package = pkgs.emacsWithDoom {
|
||||||
let
|
doomDir = ../../dotfiles/doom;
|
||||||
emacsPackages = (pkgs.emacsPackagesFor pkgs.emacs-gtk).emacsWithPackages;
|
doomLocalDir = "~/.local/share/nix-doom";
|
||||||
in
|
emacs = pkgs.emacs-gtk;
|
||||||
emacsPackages (epkgs: [ epkgs.vterm ]);
|
extraPackages =
|
||||||
|
epkgs:
|
||||||
|
let
|
||||||
|
extraPackages = config.home-manager.users.jawz.programs.emacs.extraPackages epkgs;
|
||||||
|
in
|
||||||
|
extraPackages
|
||||||
|
++ [
|
||||||
|
(epkgs.trivialBuild {
|
||||||
|
pname = "stylix-theme";
|
||||||
|
# add config from doom's ui/doom module
|
||||||
|
src = pkgs.writeText "stylix-theme.el" config.home-manager.users.jawz.programs.emacs.extraConfig;
|
||||||
|
version = "0.1.0";
|
||||||
|
packageRequires = extraPackages;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
extraBinPackages = builtins.attrValues {
|
||||||
|
inherit (pkgs.xorg) xwininfo;
|
||||||
|
inherit (pkgs)
|
||||||
|
xdotool
|
||||||
|
xclip
|
||||||
|
wl-clipboard-rs
|
||||||
|
|
||||||
|
fd # modern find, faster searches
|
||||||
|
fzf # fuzzy finder! super cool and useful
|
||||||
|
ripgrep # modern grep
|
||||||
|
tree-sitter # code parsing based on symbols and shit, I do not get it
|
||||||
|
graphviz # graphs
|
||||||
|
tetex # export pdf
|
||||||
|
languagetool # proofreader for English
|
||||||
|
|
||||||
|
# lsps
|
||||||
|
yaml-language-server
|
||||||
|
markdownlint-cli
|
||||||
|
;
|
||||||
|
inherit (pkgs.nodePackages)
|
||||||
|
vscode-json-languageserver
|
||||||
|
prettier # multi-language linter
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
|
# extraPackages = [ pkgs.base16-stylix-theme ];
|
||||||
};
|
};
|
||||||
environment.variables.PATH = [ "\${XDG_CONFIG_HOME}/emacs/bin" ];
|
environment.variables.PATH = [ "\${XDG_CONFIG_HOME}/emacs/bin" ];
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user