diff options
author | Jacob Janzen <jjanzenn@proton.me> | 2024-08-09 22:11:23 -0500 |
---|---|---|
committer | Jacob Janzen <jjanzenn@proton.me> | 2024-08-09 22:11:23 -0500 |
commit | e6e8ebe10aa40e5a3be2b94cdf3b324f3d3e52e0 (patch) | |
tree | aca3b279520b76d918ce603d47981f1d23dbd1af /gentoo | |
parent | 40f02bc8088ca93224bf65f083c4ab3b17eaf435 (diff) |
split-dotfiles
Diffstat (limited to 'gentoo')
24 files changed, 6 insertions, 1037 deletions
diff --git a/gentoo/.config/emacs b/gentoo/.config/emacs new file mode 120000 index 0000000..f4e5e56 --- /dev/null +++ b/gentoo/.config/emacs @@ -0,0 +1 @@ +../../common/.config/emacs
\ No newline at end of file diff --git a/gentoo/.config/emacs/feed.org b/gentoo/.config/emacs/feed.org deleted file mode 100644 index 9cf8cb6..0000000 --- a/gentoo/.config/emacs/feed.org +++ /dev/null @@ -1,22 +0,0 @@ -#+title: Emacs RSS Feed - -#+begin_src org :tangle ~/.config/emacs/feed.org :mkdirp yes - ,* Blogs - :PROPERTIES: - :ID: elfeed - :END: - ,** Software :software: - ,*** [[https://pluralistic.net/feed/][Cory Doctorow's Blog]] :politics:fiction: - ,*** [[https://maia.crimew.gay/feed.xml][Maia Crimew's Blog]] :internet:politics: - ,*** [[https://drewdevault.com/blog/index.xml][Drew DeVault's Blog]] - ,** Comics :comic: - ,*** [[https://xkcd.com/atom.xml][XKCD]] - ,** People I know - ,*** [[https://pinkish.bearblog.dev/feed/][Pinkish's Blog]] :software: - ,*** [[https://jjanzen.ca/rss.xml][Me]] :software:review: - ,** Internet Infrastructure :internet:software: - ,*** [[https://daniel.haxx.se/blog/feed/][cURL Blog]] - ,*** [[https://blog.archive.org/feed/][Archive.org Blog]] - ,** Reviews :review: - ,*** [[https://mountainofink.com/?format=rss][Mountain of Ink]] -#+end_src diff --git a/gentoo/.config/emacs/force-custom-file.org b/gentoo/.config/emacs/force-custom-file.org deleted file mode 100644 index 8b8a418..0000000 --- a/gentoo/.config/emacs/force-custom-file.org +++ /dev/null @@ -1,8 +0,0 @@ -#+title: Emacs Force the Usage of a =custom.el= File - -Force the usage of a =custom.el= file for customizations instead of placing them in =init.el=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/force-custom-file.el :mkdirp yes - (setq custom-file (concat user-emacs-directory "custom.el")) - (when (file-exists-p custom-file) - (load custom-file)) -#+end_src diff --git a/gentoo/.config/emacs/init.org b/gentoo/.config/emacs/init.org deleted file mode 100644 index 7eec368..0000000 --- a/gentoo/.config/emacs/init.org +++ /dev/null @@ -1,25 +0,0 @@ -#+title: Emacs Configuration -Load [[./force-custom-file.org][force-custom-file.el]] to ensure that =init.el= is not polluted by customizations. -#+begin_src emacs-lisp :tangle ~/.config/emacs/init.el :mkdirp yes - (load "~/.config/emacs/force-custom-file.el") -#+end_src - -Load [[./package-setup.org][package-setup.el]] to allow for package installation. -#+begin_src emacs-lisp :tangle ~/.config/emacs/init.el :mkdirp yes - (load "~/.config/emacs/package-setup.el") -#+end_src - -Load [[./user-interface.org][user-interface.el]] to clean up Emacs' user interface and make it look the way I like. -#+begin_src emacs-lisp :tangle ~/.config/emacs/init.el :mkdirp yes - (load "~/.config/emacs/user-interface.el") -#+end_src - -Load [[./tools.org][tools.el]] to add functionality to Emacs. -#+begin_src emacs-lisp :tangle ~/.config/emacs/init.el :mkdirp yes - (load "~/.config/emacs/tools.el") -#+end_src - -Load [[./languages.org][languages.el]] to add language and language server protocol support. -#+begin_src emacs-lisp :tangle ~/.config/emacs/init.el :mkdirp yes - (load "~/.config/emacs/tools.el") -#+end_src diff --git a/gentoo/.config/emacs/languages.org b/gentoo/.config/emacs/languages.org deleted file mode 100644 index a0a19e4..0000000 --- a/gentoo/.config/emacs/languages.org +++ /dev/null @@ -1,128 +0,0 @@ -#+title: Emacs Programming Language Setup - -* Shell Script -Run =eglot= on shell script files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes - (add-hook 'sh-mode-hook 'jj/eglot-setup) -#+end_src - -* C -Run =eglot= on C and C++ files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes - (add-hook 'c-mode-hook 'jj/eglot-setup) - (add-hook 'c++-mode-hook 'jj/eglot-setup) - (add-hook 'cc-mode-hook 'jj/eglot-setup) -#+end_src - -* Web -Run =eglot= on HTML files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes - (add-hook 'html-mode-hook 'jj/eglot-setup) -#+end_src - -Run =eglot= on CSS files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes - (add-hook 'css-mode-hook 'jj/eglot-setup) -#+end_src - -Run =eglot= on JavaScript files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes - (add-hook 'js-json-mode-hook 'jj/eglot-setup) - (add-hook 'js-mode-hook 'jj/eglot-setup) -#+end_src - -* Python -Run =eglot= on Python files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes - (add-hook 'python-mode-hook 'jj/eglot-setup) -#+end_src - -* Go -Install Go support and run =eglot= on Go files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes - (use-package go-mode - :init - (add-hook 'go-mode-hook 'jj/eglot-setup)) -#+end_src - -Get documentation for Go variables, functions, and arguments. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes - (use-package go-eldoc - :init - (add-hook 'go-mode-hook 'go-eldoc-setup)) -#+end_src - -Automatically generate tests in Go. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes - (use-package go-gen-test) -#+end_src - -Get refactoring tools from =go-guru=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes - (use-package go-guru - :hook (go-mode . go-guru-hl-identifier-mode)) -#+end_src - -* Lua -Install Lua support and run =eglot= on Lua files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes - (use-package lua-mode - :init - (add-hook 'lua-mode-hook 'jj/eglot-setup)) -#+end_src - -Better Lisp editing with =lispy=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes - (use-package lispy - :hook (emacs-lisp-mode . lispy-mode)) - (use-package lispyville - :after lispy - :hook (lispy-mode . lispyville-mode)) -#+end_src - -Better parentheses handling in lisp with =parinfer-rust-mode=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package parinfer-rust-mode - :hook (emacs-lisp-mode . parinfer-rust-mode) - :init - (setq parinfer-rust-auto-download t)) -#+end_src - -* Markdown -Install Markdown support and run =eglot= on Markdown files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes - (use-package markdown-mode - :init - (add-hook 'markdown-mode-hook 'jj/eglot-setup)) -#+end_src - -* LaTeX -Run =eglot= on TeX files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes - (add-hook 'tex-mode-hook 'jj/eglot-setup) -#+end_src - -Use AUCTeX for extra LaTeX integration. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes - (use-package auctex - :config - (add-hook 'LaTeX-mode-hook 'jj/eglot-setup) - (add-hook 'LaTeX-mode-hook - (lambda () - (put 'LaTeX-mode 'eglot-language-id "latex")))) -#+end_src - -Use CDLaTeX for environment and macro insertion. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes - (use-package cdlatex - :config - (add-hook 'LaTeX-mode-hook #'turn-on-cdlatex)) -#+end_src - -* YAML -Install YAML support and run =eglot= on YAML files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/languages.el :mkdirp yes - (use-package yaml-mode - :init - (add-hook 'yaml-mode-hook 'jj/eglot-setup)) -#+end_src diff --git a/gentoo/.config/emacs/package-setup.org b/gentoo/.config/emacs/package-setup.org deleted file mode 100644 index 6ed238c..0000000 --- a/gentoo/.config/emacs/package-setup.org +++ /dev/null @@ -1,25 +0,0 @@ -#+title: Emacs Package Setup -Install =straight= for better package management. -#+begin_src emacs-lisp :tangle ~/.config/emacs/package-setup.el :mkdirp yes - (defvar bootstrap-version) - (let ((bootstrap-file - (expand-file-name - "straight/repos/straight.el/bootstrap.el" - (or (bound-and-true-p straight-base-dir) - user-emacs-directory))) - (bootstrap-version 7)) - (unless (file-exists-p bootstrap-file) - (with-current-buffer - (url-retrieve-synchronously - "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el" - 'silent 'inhibit-cookies) - (goto-char (point-max)) - (eval-print-last-sexp))) - (load bootstrap-file nil 'nomessage)) -#+end_src - -Install =use-package= for declarative package installation. Make =use-package= default to =ensure t= so that packages are enabled if they are declared. -#+begin_src emacs-lisp :tangle ~/.config/emacs/package-setup.el :mkdirp yes - (straight-use-package 'use-package) - (setq straight-use-package-by-default t) -#+end_src diff --git a/gentoo/.config/emacs/tools.org b/gentoo/.config/emacs/tools.org deleted file mode 100644 index 54da2b4..0000000 --- a/gentoo/.config/emacs/tools.org +++ /dev/null @@ -1,362 +0,0 @@ -#+title: Emacs Tool Setup - -* Vi Keybindings -Use =vi= keybindings with =evil=. Set the undo system to =undo-fu=. Wrapped lines can be moved between with =j= and =k=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package evil - :init - (setq evil-want-keybinding nil) - :config - (evil-mode) - (evil-global-set-key 'motion "j" 'evil-next-visual-line) - (evil-global-set-key 'motion "k" 'evil-previous-visual-line) - (evil-global-set-key 'motion (kbd "RET") nil) - :custom - (evil-undo-system 'undo-fu)) -#+end_src - -Use =evil-collection= to include =vi= keybindings in extra modes. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package evil-collection - :after evil - :config - (evil-collection-init)) -#+end_src - -* Undo -Better undo with =undo-fu=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package undo-fu) -#+end_src - -Make undo persistent when closing Emacs with =undo-fu-session=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package undo-fu-session - :init (undo-fu-session-global-mode 1)) -#+end_src - -* Lookup -Better lookup with =dumb-jump=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package dumb-jump - :init (add-hook 'xref-backend-functions #'dumb-jump-xref-activate)) -#+end_src - -* Version Control -Install Magit for Git integration. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package magit) -#+end_src - -* Document Viewing -Replace =DocView= with a better document viewer from =pdf-tools=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package pdf-tools - :config - (pdf-tools-install) - :init - (add-hook 'pdf-view-mode-hook #'(lambda () (display-line-numbers-mode -1))) - (add-hook 'TeX-after-compilation-finished-functions - #'TeX-revert-document-buffer) - :config - (setq TeX-view-program-selection '((output-pdf "PDF Tools")) - TeX-view-program-list '(("PDF Tools" TeX-pdf-tools-sync-view)) - TeX-source-correlate-start-server t)) -#+end_src - -Save place in PDFs with =saveplace-pdf-view=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package saveplace-pdf-view - :config (save-place-mode 1)) -#+end_src - -* Org-Mode -Ensure that =org= is set up before any of this. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package org) -#+end_src -Set my =org-mode= directory. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (setq org-directory "~/org") -#+end_src - -Hide emphasis markers because I can see if something is *bold*, /italic/, or =monospace= without needing to see the markers. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (setq org-hide-emphasis-markers t) -#+end_src - -Set up nicer looking bullet points. -- they look like circles -- instead of hyphens -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (font-lock-add-keywords 'org-mode - '(("^ *\\([-]\\) " - (0 (prog1 () (compose-region (match-beginning 1) (match-end 1) "•")))))) -#+end_src - -Set up fonts. Don't use =monospace= by default. Do use it where necessary though. Also, make different heading levels different sizes. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (add-hook 'org-mode-hook 'variable-pitch-mode) - (custom-set-faces - '(variable-pitch ((t (:family "CMU Serif" :height 130 :weight thin)))) - '(fixed-pitch ((t (:family "SauceCodePro Nerd Font" :height 110 :weight regular)))) - '(org-block ((t (:inherit fixed-pitch)))) - '(org-code ((t (:inherit (shadow fixed-pitch))))) - '(org-document-info-keyword ((t (:inherit (shadow fixed-pitch))))) - '(org-meta-line ((t (:inherit (font-lock-comment-face fixed-pitch))))) - '(org-verbatim ((t (:inherit (shadow fixed-pitch))))) - '(org-table ((t (:inherit (shadow fixed-pitch))))) - '(org-document-title ((t (:inherit title :height 2.0 :underline nil)))) - '(org-level-1 ((t (:inherit outline-1 :weight: bold :height 1.75)))) - '(org-level-2 ((t (:inherit outline-2 :weight: bold :height 1.5)))) - '(org-level-2 ((t (:inherit outline-3 :weight: bold :height 1.25)))) - '(org-level-2 ((t (:inherit outline-4 :weight: bold :height 1.1)))) - '(org-level-4 ((t (:inherit outline-4 :height 1.1)))) - '(org-level-5 ((t (:inherit outline-5 :height 1.0)))) - ) -#+end_src - -Wrap lines and centre the view to make for a nicer reading experience. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package visual-fill-column) - (add-hook 'org-mode-hook 'visual-line-mode) - (add-hook 'org-mode-hook #'(lambda () (display-line-numbers-mode -1))) - (defun jj/org-mode-visual-fill () - (setq visual-fill-column-width 100 - visual-fill-column-center-text t) - (visual-fill-column-mode 1)) - (add-hook 'org-mode-hook #'jj/org-mode-visual-fill) -#+end_src - -Increase the size of LaTeX previews. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (setq org-format-latex-options (plist-put org-format-latex-options :scale 2.0)) -#+end_src - -Follow links with the return key. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (setq org-return-follows-link t) -#+end_src - -Tangle on save. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (defun org-babel-tangle-config () - (when (string-suffix-p ".org" (buffer-file-name)) - (org-babel-tangle))) - (add-hook 'org-mode-hook - (lambda () - (add-hook 'after-save-hook #'org-babel-tangle-config))) -#+end_src - -* Shell -Use =eshell= as an integrated shell. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package eshell) - (global-set-key (kbd "C-c e") 'eshell) -#+end_src - -* Language Servers -Add =eglot= keybindings. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (global-set-key (kbd "C-c r") 'eglot-rename) - (global-set-key (kbd "C-c a") 'eglot-code-actions) -#+end_src - -Install =tree-sitter=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package tree-sitter) - (use-package tree-sitter-langs) -#+end_src - -Define function to set up =eglot= automatically. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (defun jj/eglot-setup () - (eglot-ensure) - (tree-sitter-mode 1) - (tree-sitter-hl-mode 1)) -#+end_src - -* Completions -Use company for completions with no delay, starting immediately after first character is typed. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package company - :config - (add-hook 'after-init-hook 'global-company-mode) - (setq company-idle-delay 0 - company-minimum-prefix-length 1 - company-selection-wrap-around t)) -#+end_src - -Use =vertico= as a completion user interface. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package vertico - :custom - (vertico-cycle t) - :init - (vertico-mode)) -#+end_src - -Use =orderless= to allow typing any portion of a word that you want to search for. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package orderless - :ensure t - :custom - (completion-styles '(orderless basic)) - (completion-category-overrides '((file (styles basic partial-completion))))) -#+end_src - -Get descriptions of items in =vertico= with =marginalia=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package marginalia - :bind (:map minibuffer-local-map - ("M-A" . marginalia-cycle)) - :init - (marginalia-mode)) -#+end_src - -Get nerd font icons in completions. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package nerd-icons-completion - :config - (nerd-icons-completion-mode)) -#+end_src - -Use consult with =vertico= for extra functionality to various functions. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package consult - :bind ( - ("C-c M-x" . consult-mode-command) - ("C-c h" . consult-history) - ("C-c k" . consult-kmacro) - ("C-c m" . consult-man) - ("C-c i" . consult-info) - ([remap Info-search] . consult-info) - ("C-x M-:" . consult-complex-command) - ("C-x b" . consult-buffer) - ("C-x 4 b" . consult-buffer-other-window) - ("C-x 5 b" . consult-buffer-other-frame) - ("C-x t b" . consult-buffer-other-tab) - ("C-x r b" . consult-bookmark) - ("C-x p b" . consult-project-buffer) - ("M-#" . consult-register-load) - ("M-'" . consult-register-store) - ("C-M-#" . consult-register) - ("M-y" . consult-yank-pop) - ("M-g e" . consult-compile-error) - ("M-g f" . consult-flycheck) - ("M-g g" . consult-goto-line) - ("M-g M-g" . consult-goto-line) - ("M-g o" . consult-outline) - ("M-g m" . consult-mark) - ("M-g k" . consult-global-mark) - ("M-g i" . consult-imenu) - ("M-g I" . consult-imenu-multi) - ("M-s d" . consult-fd) - ("M-s c" . consult-locate) - ("M-s g" . consult-grep) - ("M-s G" . consult-git-grep) - ("M-s r" . consult-ripgrep) - ("M-s l" . consult-line) - ("M-s L" . consult-line-multi) - ("M-s k" . consult-keep-lines) - ("M-s u" . consult-focus-lines) - ("M-s e" . consult-isearch-history) - :map isearch-mode-map - ("M-e" . consult-isearch-history) - ("M-s e" . consult-isearch-history) - ("M-s l" . consult-line) - ("M-s L" . consult-line-multi) - :map minibuffer-local-map - ("M-s" . consult-history) - ("M-r" . consult-history)) - :hook (completion-list-mode . consult-preview-at-point-mode) - :init - (setq register-preview-delay 0.5 - register-preview-function #'consult-register-format) - (advice-add #'register-preview :override #'consult-register-window) - (setq xref-show-xrefs-function #'consult-xref - xref-show-definitions-function #'consult-xref) - :config - (consult-customize - consult-theme :preview-key '(:debounce 0.2 any) - consult-ripgrep consult-git-grep consult-grep - consult-bookmark consult-recent-file consult-xref - consult--source-bookmark consult--source-file-register - consult--source-recent-file consult--source-project-recent-file - :preview-key '(:debounce 0.4 any)) - (setq consult-narrow-key "<")) -#+end_src - -Use Flycheck for syntax checking. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package flycheck - :config - (add-hook 'after-init-hook #'global-flycheck-mode)) -#+end_src - -Use Flyspell for spell checking. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (dolist (hook '(text-mode-hook)) - (add-hook hook (lambda () (flyspell-mode 1)))) - (use-package flyspell-correct - :after flyspell - :bind (:map flyspell-mode-map ("C-;" . flyspell-correct-wrapper))) -#+end_src - -* Snippets -Use =yasnippet= for snippets so I don't need to type as much. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package yasnippet - :init - (yas-global-mode 1) - :config - (global-set-key (kbd "C-c s") 'yas-insert-snippet)) -#+end_src - -Install snippet collection for =yasnippet=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package yasnippet-snippets) -#+end_src - -* Formatting -Automatically format with Apheleia and =clang-format=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package apheleia - :init (apheleia-global-mode +1)) - (use-package clang-format) -#+end_src - -* RSS -Use Emacs as an RSS feed with =elfeed=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package elfeed - :config - (global-set-key (kbd "C-c f") 'elfeed) - (global-set-key (kbd "C-c M-f") 'elfeed-update)) -#+end_src - -Make =elfeed= more powerful with =elfeed-goodies=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package elfeed-goodies - :after elfeed - :config - (elfeed-goodies/setup)) -#+end_src - -Store my feed in Org-mode [[./feed.org][here]]. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package elfeed-org - :config - (elfeed-org) - (setq rmh-elfeed-org-files (list "~/.config/emacs/feed.org"))) -#+end_src - -* Deft -Use the Deft package to manage notes. -#+begin_src emacs-lisp :tangle ~/.config/emacs/tools.el :mkdirp yes - (use-package deft - :config - (global-set-key (kbd "C-c d") 'deft) - (setq deft-directory "~/notes/" - deft-default-extension "org")) -#+end_src diff --git a/gentoo/.config/emacs/user-interface.org b/gentoo/.config/emacs/user-interface.org deleted file mode 100644 index b5a860d..0000000 --- a/gentoo/.config/emacs/user-interface.org +++ /dev/null @@ -1,114 +0,0 @@ -#+title: Emacs User Interface - -* Theming -Set the default font to the Source Code Pro nerd font variant. I use size 14 font. -#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes - (set-face-attribute 'default t :font "Sauce Code Pro Nerd Font-14") -#+end_src - -Use my custom Emacs theme. -#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes - (use-package doom-themes - :straight (doom-themes :type git :host github :repo "doomemacs/themes" - :fork (:host github - :repo "JacobJanzen/emacs-doom-themes")) - :config - (setq doom-themes-enable-bold t - doom-themes-enable-italic t) - (load-theme 'doom-disco t) - (doom-themes-org-config)) - -(add-to-list 'default-frame-alist '(alpha-background . 90)) -#+end_src - -Use =doom-modeline= for a nicer modeline. -#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes - (use-package doom-modeline - :init (doom-modeline-mode 1)) -#+end_src - -* Clean UI -Disable the Emacs start screen and make the =scratch= buffer default to empty. -#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes - (setq inhibit-startup-screen t) - (setq initial-scratch-message nil) -#+end_src - -Disable scroll bar, tool bar, and menu bar. -#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes - (scroll-bar-mode -1) - (tool-bar-mode -1) - (menu-bar-mode -1) -#+end_src - -* Fancy Stuff -Use line numbers by default. -#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes - (global-display-line-numbers-mode 1) -#+end_src - -Highlight changes for an operation with =evil-goggles=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes - (use-package evil-goggles - :after evil - :config - (evil-goggles-mode) - (evil-goggles-use-diff-faces)) -#+end_src - -Install nerd font icons. -#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes - (use-package nerd-icons) -#+end_src - -Scroll one line at a time. -#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes - (setq scroll-conservatively most-positive-fixnum) -#+end_src - -Create parent directories when they don't yet exist. -#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes - (defun jj/create-non-existent-directory () - (let ((parent-directory (file-name-directory buffer-file-name))) - (when (and (not (file-exists-p parent-directory)) - (y-or-n-p (format "Directory `%s' does not exist! Create it?" parent-directory))) - (make-directory parent-directory t)))) - (add-to-list 'find-file-not-found-functions #'jj/create-non-existent-directory) -#+end_src - - -* Whitespace Management -Use spaces over tabs and set tab width to 4. -#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes - (setq-default indent-tabs-mode nil) - (setq tab-width 4 - c-basic-offset tab-width) -#+end_src - -Delete trailing whitespace on save. -#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes - (defun jj/before-save-hook () - (unless (eql (with-current-buffer (current-buffer) major-mode) - 'markdown-mode) - (delete-trailing-whitespace))) - (add-hook 'before-save-hook #'jj/before-save-hook) -#+end_src - -* Backup Management -Don't create backup files. -#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes - (setq make-backup-files nil) -#+end_src - -* Customize =dired= -Use nerd font icons in =dired=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes - (use-package nerd-icons-dired - :hook (dired-mode . nerd-icons-dired-mode)) -#+end_src - -Use colours in =dired= with =diredfl=. -#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes - (use-package diredfl - :init (diredfl-global-mode 1)) -#+end_src diff --git a/gentoo/.config/fastfetch b/gentoo/.config/fastfetch new file mode 120000 index 0000000..a73d684 --- /dev/null +++ b/gentoo/.config/fastfetch @@ -0,0 +1 @@ +../../common/.config/fastfetch
\ No newline at end of file diff --git a/gentoo/.config/fastfetch/config.org b/gentoo/.config/fastfetch/config.org deleted file mode 100644 index 7a2d099..0000000 --- a/gentoo/.config/fastfetch/config.org +++ /dev/null @@ -1,92 +0,0 @@ -#+title: Fastfetch Settings -Open a JSON object. -#+begin_src js :tangle ~/.config/fastfetch/config.jsonc :mkdirp yes - { -#+end_src - -Use a =sixel= image for the logo. -#+begin_src js :tangle ~/.config/fastfetch/config.jsonc :mkdirp yes - "logo": { - "type": "raw", - "source": "~/.config/fastfetch/logo.sixel", - "width": 40, - "height": 19 - }, -#+end_src - -Two spaces between an item and its key. -#+begin_src js :tangle ~/.config/fastfetch/config.jsonc :mkdirp yes - "display": { - "separator": " " - }, -#+end_src - -Define the modules in the =fastfetch= display. -#+begin_src js :tangle ~/.config/fastfetch/config.jsonc :mkdirp yes - "modules": [ - "title", - { - "type": "custom", - "format": "──────────────────────────────────" - }, - { - "type": "os", - "key": "" - }, - { - "type": "kernel", - "key": "" - }, - { - "type": "uptime", - "key": "" - }, - { - "type": "packages", - "key": "" - }, - { - "type": "shell", - "key": "" - }, - { - "type": "display", - "key": "" - }, - { - "type": "wm", - "key": "" - }, - { - "type": "terminal", - "key": "" - }, - { - "type": "cpu", - "key": "" - }, - { - "type": "gpu", - "key": "" - }, - { - "type": "memory", - "key": "" - }, - { - "type": "disk", - "key": "" - }, - { - "type": "locale", - "key": "" - }, - "break", - "colors" - ] -#+end_src - -Close the JSON object. -#+begin_src js :tangle ~/.config/fastfetch/config.jsonc :mkdirp yes -} -#+end_src diff --git a/gentoo/.config/nvim b/gentoo/.config/nvim new file mode 120000 index 0000000..a0abd03 --- /dev/null +++ b/gentoo/.config/nvim @@ -0,0 +1 @@ +../../common/.config/nvim
\ No newline at end of file diff --git a/gentoo/.config/nvim/init.org b/gentoo/.config/nvim/init.org deleted file mode 100644 index 9c15739..0000000 --- a/gentoo/.config/nvim/init.org +++ /dev/null @@ -1,22 +0,0 @@ -#+title: Neovim Settings -This is the entry point for my Neovim configuration. I don't use Neovim much these days, so it is very stripped back from what it once was. Emacs is much comfier for most uses, so Neovim is mostly relegated to editing system configuration files. - -Disable timeout to speed things up. -#+begin_src lua :tangle ~/.config/nvim/init.lua :mkdirp yes - vim.cmd([[set notimeout]]) -#+end_src - -Install plugins in the [[./lua/plugins.org][plugins.lua]] file. -#+begin_src lua :tangle ~/.config/nvim/init.lua :mkdirp yes - require('plugins') -#+end_src - -Set up behaviour in the [[./lua/behaviour.org][behaviour.lua]] file. -#+begin_src lua :tangle ~/.config/nvim/init.lua :mkdirp yes - require('behaviour') -#+end_src - -Set up appearance in the [[./lua/appearance.org][appearance.lua]] file. -#+begin_src lua :tangle ~/.config/nvim/init.lua :mkdirp yes - require('appearance') -#+end_src diff --git a/gentoo/.config/nvim/lua/appearance.org b/gentoo/.config/nvim/lua/appearance.org deleted file mode 100644 index 274f438..0000000 --- a/gentoo/.config/nvim/lua/appearance.org +++ /dev/null @@ -1,15 +0,0 @@ -#+title: Neovim Appearance Settings -Use line numbers. -#+begin_src lua :tangle ~/.config/nvim/lua/appearance.lua :mkdirp yes - vim.opt.number = true -#+end_src - -Turn on syntax highlighting. -#+begin_src lua :tangle ~/.config/nvim/lua/appearance.lua :mkdirp yes - vim.cmd([[ - set termguicolors - syntax on - colorscheme default - set background=light - ]]) -#+end_src diff --git a/gentoo/.config/nvim/lua/behaviour.org b/gentoo/.config/nvim/lua/behaviour.org deleted file mode 100644 index 871b65e..0000000 --- a/gentoo/.config/nvim/lua/behaviour.org +++ /dev/null @@ -1,19 +0,0 @@ -#+title: Neovim Behaviour Settings - -Use tabs with width 4. -#+begin_src lua :tangle ~/.config/nvim/lua/behaviour.lua :mkdirp yes - vim.opt.tabstop = 4 - vim.opt.expandtab = true - vim.opt.shiftwidth = 4 - vim.opt.autoindent = true -#+end_src - -Better command line completion. -#+begin_src lua :tangle ~/.config/nvim/lua/behaviour.lua :mkdirp yes - vim.opt.wildmode = 'longest,list' -#+end_src - -Better management of file types. -#+begin_src lua :tangle ~/.config/nvim/lua/behaviour.lua :mkdirp yes - vim.cmd('filetype plugin indent on') -#+end_src diff --git a/gentoo/.config/nvim/lua/plugins.org b/gentoo/.config/nvim/lua/plugins.org deleted file mode 100644 index f3027f9..0000000 --- a/gentoo/.config/nvim/lua/plugins.org +++ /dev/null @@ -1,27 +0,0 @@ -#+title: Neovim Plugins -* Setup -Use =lazy= to manage plugins. This block activates =lazy=. -#+begin_src lua :tangle ~/.config/nvim/lua/plugins.lua :mkdirp yes - local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" - if not vim.loop.fs_stat(lazypath) then - vim.fn.system({ - "git", - "clone", - "--filter=blob:none", - "https://github.com/folke/lazy.nvim.git", - "--branch=stable", - lazypath, - }) - end - vim.opt.rtp:prepend(lazypath) -#+end_src - -* Plugins -I use =lightline= for a nice status bar. The Ayu theme matches my overall colour scheme. =delimitmate= provides better delimiter handling. Trailing whitespace is highlighted with =vim-trailing-whitespace=. -#+begin_src lua :tangle ~/.config/nvim/lua/plugins.lua :mkdirp yes - require('lazy').setup({ - 'itchyny/lightline.vim', - 'Raimondi/delimitMate', - 'bronson/vim-trailing-whitespace', - }) -#+end_src diff --git a/gentoo/.local/share/fonts b/gentoo/.local/share/fonts new file mode 120000 index 0000000..9ab89c4 --- /dev/null +++ b/gentoo/.local/share/fonts @@ -0,0 +1 @@ +../../../common/.local/share/fonts
\ No newline at end of file diff --git a/gentoo/.local/share/fonts/ComputerModern.tar.gz b/gentoo/.local/share/fonts/ComputerModern.tar.gz Binary files differdeleted file mode 100644 index f84d106..0000000 --- a/gentoo/.local/share/fonts/ComputerModern.tar.gz +++ /dev/null diff --git a/gentoo/.local/share/fonts/NFM.tar.gz b/gentoo/.local/share/fonts/NFM.tar.gz Binary files differdeleted file mode 100644 index b862584..0000000 --- a/gentoo/.local/share/fonts/NFM.tar.gz +++ /dev/null diff --git a/gentoo/.local/share/fonts/SauceCodePro.tar.gz b/gentoo/.local/share/fonts/SauceCodePro.tar.gz Binary files differdeleted file mode 100644 index d3451f3..0000000 --- a/gentoo/.local/share/fonts/SauceCodePro.tar.gz +++ /dev/null diff --git a/gentoo/.wallpaper b/gentoo/.wallpaper Binary files differindex e67150d..ec41b94 100644..120000 --- a/gentoo/.wallpaper +++ b/gentoo/.wallpaper diff --git a/gentoo/clang-format.org b/gentoo/clang-format.org index 6c38b3b..960b79e 100644..120000 --- a/gentoo/clang-format.org +++ b/gentoo/clang-format.org @@ -1,9 +1 @@ -#+title: Clang-Format Settings -Use a style similar to Linux kernel style (but with 4-wide indents and spaces over tabs). -#+begin_src yaml :tangle ~/.clang-format -BasedOnStyle: LLVM -IndentWidth: 4 -BreakBeforeBraces: Linux -AllowShortIfStatementsOnASingleLine: false -IndentCaseLabels: false -#+end_src +../common/clang-format.org
\ No newline at end of file diff --git a/gentoo/gitconfig.org b/gentoo/gitconfig.org index c907204..e4e5534 100644..120000 --- a/gentoo/gitconfig.org +++ b/gentoo/gitconfig.org @@ -1,18 +1 @@ -#+title: Git Configuration -Define my full name and email. -#+begin_src conf :tangle ~/.gitconfig - [user] - name = Jacob Janzen - email = jjanzenn@proton.me -#+end_src -Use =main= over =master=. -#+begin_src conf :tangle ~/.gitconfig - [init] - defaultBranch = main -#+end_src - -Make =pull= rebase on conflict. -#+begin_src conf :tangle ~/.gitconfig - [pull] - rebase = true -#+end_src +../common/gitconfig.org
\ No newline at end of file diff --git a/gentoo/install b/gentoo/install deleted file mode 100644 index 09b2efd..0000000 --- a/gentoo/install +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/sh - -mv ~/.update-home.log ~/.update-home.log.old - -if ! test -d ~/.dotfiles; then - echo Installing dotfiles... - git clone git@git.sr.ht:~jjanzen/.dotfiles ~/.dotfiles >> ~/.update-home.log -fi - -CWD=$(pwd) -cd ~/.dotfiles || exit - -{ - git stash - git checkout main - git pull --rebase -} >> ~/.update-home.log - -if ! diff ~/.dotfiles/install ~/.local/bin/update-home >> ~/.update-home.log; then - cp ~/.dotfiles/install ~/.local/bin/update-home || exit 1 - echo Changes have been made to the install script. - echo Running the new install script. - chmod +x ~/.local/bin/update-home - ~/.local/bin/update-home - exit -fi - -echo Installing configuration files... -find -- . -type f -name "*.org" | while read -r file; do - emacs --batch "${file}" -f package-initialize --eval '(org-babel-tangle)' >> ~/.update-home.log -done - -echo Installing wallpaper... -cp .wallpaper ~/.wallpaper - -fonts_changed=false -if ! test -d ~/.local/share/fonts/ComputerModern; then - echo Computer Modern font missing. Installing... - tar xf ~/.dotfiles/.local/share/fonts/ComputerModern.tar.gz -C ~/.local/share/fonts >> ~/.update-home.log - fonts_changed=true -fi -if ! test -f ~/.local/share/fonts/NFM.ttf; then - echo Nerd Font Mono font missing. Installing... - tar xf ~/.dotfiles/.local/share/fonts/NFM.tar.gz -C ~/.local/share/fonts >> ~/.update-home.log - fonts_changed=true -fi -if ! test -d ~/.local/share/fonts/SauceCodePro; then - echo Source Code Pro Nerd Font missing. Installing... - tar xf ~/.dotfiles/.local/share/fonts/SauceCodePro.tar.gz -C ~/.local/share/fonts >> ~/.update-home.log - fonts_changed=true -fi - -if [ $fonts_changed = true ]; then - echo Updating the font cache... - fc-cache -f >> ~/.update-home.log -fi - -cd "${CWD}" || exit diff --git a/gentoo/install.org b/gentoo/install.org deleted file mode 100644 index 9a9c0aa..0000000 --- a/gentoo/install.org +++ /dev/null @@ -1,93 +0,0 @@ -#+title: Install Script - -This can be run as =./install=, so make it explicit what binary to run it with (POSIX shell). -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - #!/bin/sh -#+end_src - -Save the old log file. -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - mv ~/.update-home.log ~/.update-home.log.old -#+end_src - -Install the dotfiles repository at =~/.dotfiles= if it doesn't already exist. -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - if ! test -d ~/.dotfiles; then - echo Installing dotfiles... - git clone git@git.sr.ht:~jjanzen/.dotfiles ~/.dotfiles >> ~/.update-home.log - fi -#+end_src - -POSIX shell doesn't have =pushd= and =popd=. We do it manually by saving the current path before moving to =~/.dotfiles=. Exit if the =cd= call fails (it shouldn't). -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - CWD=$(pwd) - cd ~/.dotfiles || exit -#+end_src - -Stash any existing changes before moving to the main branch and pulling any new changes from the remote. -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - { - git stash - git checkout main - git pull --rebase - } >> ~/.update-home.log -#+end_src - -If the =update-home= executable has changed, replace it and bootstrap into the new one. -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - if ! diff ~/.dotfiles/install ~/.local/bin/update-home >> ~/.update-home.log; then - cp ~/.dotfiles/install ~/.local/bin/update-home || exit 1 - echo Changes have been made to the install script. - echo Running the new install script. - chmod +x ~/.local/bin/update-home - ~/.local/bin/update-home - exit - fi -#+end_src - -Extract each configuration file from its literate =.org= file into its correct location by running =org-babel-tangle= on each =.org= file. -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - echo Installing configuration files... - find -- . -type f -name "*.org" | while read -r file; do - emacs --batch "${file}" -f package-initialize --eval '(org-babel-tangle)' >> ~/.update-home.log - done -#+end_src - -Install the [[./wallpaper.png][wallpaper]] file. -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - echo Installing wallpaper... - cp .wallpaper ~/.wallpaper -#+end_src - -Install any missing fonts by extracting the corresponding =tar.gz= archive. -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - fonts_changed=false - if ! test -d ~/.local/share/fonts/ComputerModern; then - echo Computer Modern font missing. Installing... - tar xf ~/.dotfiles/.local/share/fonts/ComputerModern.tar.gz -C ~/.local/share/fonts >> ~/.update-home.log - fonts_changed=true - fi - if ! test -f ~/.local/share/fonts/NFM.ttf; then - echo Nerd Font Mono font missing. Installing... - tar xf ~/.dotfiles/.local/share/fonts/NFM.tar.gz -C ~/.local/share/fonts >> ~/.update-home.log - fonts_changed=true - fi - if ! test -d ~/.local/share/fonts/SauceCodePro; then - echo Source Code Pro Nerd Font missing. Installing... - tar xf ~/.dotfiles/.local/share/fonts/SauceCodePro.tar.gz -C ~/.local/share/fonts >> ~/.update-home.log - fonts_changed=true - fi -#+end_src - -If any missing fonts were installed, update the font cache. -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - if [ $fonts_changed = true ]; then - echo Updating the font cache... - fc-cache -f >> ~/.update-home.log - fi -#+end_src - -Move the user back to where they came from. -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - cd "${CWD}" || exit -#+end_src |