summaryrefslogtreecommitdiff
path: root/.emacs.d
diff options
context:
space:
mode:
Diffstat (limited to '.emacs.d')
-rw-r--r--.emacs.d/modules/thanos-aesthetics.el191
-rw-r--r--.emacs.d/modules/thanos-ai.el50
-rw-r--r--.emacs.d/modules/thanos-books.el57
-rw-r--r--.emacs.d/modules/thanos-chat.el55
-rw-r--r--.emacs.d/modules/thanos-dired.el93
-rw-r--r--.emacs.d/modules/thanos-elfeed.el100
-rw-r--r--.emacs.d/modules/thanos-multimedia.el120
-rw-r--r--.emacs.d/modules/thanos-org.el247
-rw-r--r--.emacs.d/modules/thanos-packages.el92
-rw-r--r--.emacs.d/modules/thanos-shells.el176
-rw-r--r--.emacs.d/modules/thanos-tools.el176
11 files changed, 0 insertions, 1357 deletions
diff --git a/.emacs.d/modules/thanos-aesthetics.el b/.emacs.d/modules/thanos-aesthetics.el
deleted file mode 100644
index f5eb30f..0000000
--- a/.emacs.d/modules/thanos-aesthetics.el
+++ /dev/null
@@ -1,191 +0,0 @@
-;;; thanos-aesthetics.el --- -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2023 Thanos Apollo
-
-;; Author: Thanos Apollo <[email protected]>
-;; Keywords:
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;; ╭━━━━┳╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭━━━╮╱╱╱╱╱╭╮╭╮╱╱╱╱╱╱╱╱╭━━━╮
-;; ┃╭╮╭╮┃┃╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╭━╮┃╱╱╱╱╱┃┃┃┃╱╱╱╱╱╱╱╱┃╭━━╯
-;; ╰╯┃┃╰┫╰━┳━━┳━╮╭━━┳━━╮┃┃╱┃┣━━┳━━┫┃┃┃╭━━╮╱╱╱╱┃╰━━┳╮╭┳━━┳━━┳━━╮
-;; ╱╱┃┃╱┃╭╮┃╭╮┃╭╮┫╭╮┃━━┫┃╰━╯┃╭╮┃╭╮┃┃┃┃┃╭╮┃╭━━╮┃╭━━┫╰╯┃╭╮┃╭━┫━━┫
-;; ╱╱┃┃╱┃┃┃┃╭╮┃┃┃┃╰╯┣━━┃┃╭━╮┃╰╯┃╰╯┃╰┫╰┫╰╯┃╰━━╯┃╰━━┫┃┃┃╭╮┃╰━╋━━┃
-;; ╱╱╰╯╱╰╯╰┻╯╰┻╯╰┻━━┻━━╯╰╯╱╰┫╭━┻━━┻━┻━┻━━╯╱╱╱╱╰━━━┻┻┻┻╯╰┻━━┻━━╯
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃┃
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╰╯
-;;; Code:
-
-(require 'nerd-icons)
-
-(setf inhibit-startup-message t)
-(setf initial-scratch-message nil)
-
-;; Transparency
-(add-to-list 'default-frame-alist '(alpha-background . 90))
-(add-to-list 'default-frame-alist '(alpha 90 90))
-
-(when (equal is-phone nil)
- (scroll-bar-mode -1)
- (set-fringe-mode 10))
-
-(tool-bar-mode -1)
-(tooltip-mode -1)
-(menu-bar-mode -1)
-(global-hl-line-mode)
-
-(require 'which-key)
-(which-key-mode 1)
-
-(blink-cursor-mode -1)
-(menu-bar--visual-line-mode-enable)
-(global-visual-line-mode 1)
-
-;; Set emojis for emacs 29
-(require 'emojify)
-(global-emojify-mode)
-(global-emojify-mode-line-mode)
-
-(setf visible-bell t)
-
-(column-number-mode)
-(global-display-line-numbers-mode 1)
-(menu-bar--display-line-numbers-mode-relative)
-
-;;Disable line numbers for some modes
-(defvar thanos/no-line-number-modes
- '(pdf-view-mode-hook
- org-mode-hook
- term-mode-hook
- shell-mode-hook
- eshell-mode-hook
- vterm-mode-hook
- elfeed
- vterm-mode
- telega-chat-mode-hook
- telega-root-mode-hook
- nov-mode-hook
- transmission-mode-hook))
-
-(cl-loop for mode in thanos/no-line-number-modes
- do (add-hook mode (lambda () (display-line-numbers-mode 0))))
-
-;; Set font-size for each device
-(custom-set-faces
- (if is-hermes '(default ((t (:inherit nil :height 120 :family "Jetbrains Mono"))))
- '(default ((t (:inherit nil :height 130 :family "Jetbrains Mono"))))))
-
-(require 'modus-themes)
-;; Modus-themes configuration
-(setq modus-themes-italic-constructs t
- modus-themes-bold-constructs nil
- modus-themes-mixed-fonts nil
- modus-themes-variable-pitch-ui nil
- modus-themes-custom-auto-reload t
- modus-themes-disable-other-themes t
- modus-themes-prompts '(italic bold)
- modus-themes-completions '((matches . (extrabold))
- (selection . (semibold italic text-also underline)))
- modus-themes-org-blocks 'tinted-background)
-
-(setq modus-themes-common-palette-overrides
- '((fg-line-number-inactive "gray40")
- (fg-line-number-active cyan-intense)
- ;; bg values:
- ;; molokai: #1c1e1f
- ;; 1337: #191919
- ;; gruvbox: #282828
- ;; henna: #21272e
- ;; monokai: #272822
- ;; badger: #171717
- ;; ayu-dark: #0d1017
- (bg-main "#171717")
- ;; (overline-heading-1 gold)
- (fg-heading-1 red-warmer)
- ;; (bg-heading-1 bg-blue-nuanced)
- (bg-line-number-inactive unspecified)
- (bg-line-number-active unspecified)
- (bg-paren-match bg-magenta-intense)
- (underline-paren-match fg-main)
- (underline-err red-intense)
- (underline-warning yellow-faint)
- (underline-note cyan-faint)
- (string green)
- (border-mode-line-active bg-mode-line-active)
- (border-mode-line-inactive bg-mode-line-inactive)
- (bg-mode-line-active bg-lavender)
- ;; set fg from badger theme
- (fg-mode-line-active "#F6F3E8")
- (border-mode-line-active blue-intense)
- (bg-hl-line bg-dim)
- (cursor slate)
- ,@modus-themes-preset-overrides-intense))
-
-(setq modus-themes-headings
- '((1 . (ultrabold 1.35))
- (2 . (semibold 1.2))
- (agenda-date . (1.3))
- (agenda-structure . (variable-pitch light 1.8))
- (t . (1.15))))
-
-(defun theme-invisible-dividers (_theme)
- "Make window dividers for THEME invisible."
- (let ((bg (face-background 'default)))
- (custom-set-faces
- `(fringe ((t :background ,bg :foreground ,bg)))
- `(window-divider ((t :background ,bg :foreground ,bg)))
- `(window-divider-first-pixel ((t :background ,bg :foreground ,bg)))
- `(window-divider-last-pixel ((t :background ,bg :foreground ,bg))))))
-
-(add-hook 'enable-theme-functions #'theme-invisible-dividers)
-
-
-(load-theme 'modus-vivendi)
-
-;; Don't display battery-mode on desktop
-(if is-zeus
- (display-battery-mode 0)
- (display-battery-mode 1))
-
-;; UI -- Vertico, consult, marginalia
-(require 'vertico)
-(require 'marginalia)
-
-(vertico-mode)
-(savehist-mode)
-(define-key global-map (kbd "C-x b") 'consult-buffer)
-(define-key global-map (kbd "C-c m") 'consult-imenu)
-
-(add-hook 'marginalia-mode-hook #'nerd-icons-completion-marginalia-setup)
-(marginalia-mode)
-
-;; Helpful
-(require 'helpful)
-(define-key global-map (kbd "C-h f") #'helpful-callable)
-(define-key global-map (kbd "C-h v") #'helpful-variable)
-(define-key global-map (kbd "C-h k") #'helpful-key)
-(define-key global-map (kbd "C-h x") #'helpful-command)
-
-(define-key global-map (kbd "C-c C-d") #'helpful-at-point)
-(define-key global-map (kbd "C-h F") #'helpful-function)
-
-;; ibuffer
-(global-set-key (kbd "C-x C-b") 'ibuffer)
-(add-hook 'ibuffer-mode-hook 'nerd-icons-ibuffer-mode)
-
-
-(provide 'thanos-aesthetics)
-;;; thanos-aesthetics.el ends here
diff --git a/.emacs.d/modules/thanos-ai.el b/.emacs.d/modules/thanos-ai.el
deleted file mode 100644
index 3b5d1f1..0000000
--- a/.emacs.d/modules/thanos-ai.el
+++ /dev/null
@@ -1,50 +0,0 @@
-;;; thanos-ai.el --- Thanos Modue -- AI Tools configuration -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2023 Thanos Apollo
-
-;; Author: Thanos Apollo <[email protected]>
-;; Keywords: extensions
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;; ╭━━━━┳╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭━━━╮╱╱╱╱╱╭╮╭╮╱╱╱╱╱╱╱╱╭━━━╮
-;; ┃╭╮╭╮┃┃╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╭━╮┃╱╱╱╱╱┃┃┃┃╱╱╱╱╱╱╱╱┃╭━━╯
-;; ╰╯┃┃╰┫╰━┳━━┳━╮╭━━┳━━╮┃┃╱┃┣━━┳━━┫┃┃┃╭━━╮╱╱╱╱┃╰━━┳╮╭┳━━┳━━┳━━╮
-;; ╱╱┃┃╱┃╭╮┃╭╮┃╭╮┫╭╮┃━━┫┃╰━╯┃╭╮┃╭╮┃┃┃┃┃╭╮┃╭━━╮┃╭━━┫╰╯┃╭╮┃╭━┫━━┫
-;; ╱╱┃┃╱┃┃┃┃╭╮┃┃┃┃╰╯┣━━┃┃╭━╮┃╰╯┃╰╯┃╰┫╰┫╰╯┃╰━━╯┃╰━━┫┃┃┃╭╮┃╰━╋━━┃
-;; ╱╱╰╯╱╰╯╰┻╯╰┻╯╰┻━━┻━━╯╰╯╱╰┫╭━┻━━┻━┻━┻━━╯╱╱╱╱╰━━━┻┻┻┻╯╰┻━━┻━━╯
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃┃
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╰╯
-;;; Code:
-
-;; Copilot
-(require 'copilot)
-
-(define-key copilot-mode-map (kbd "M-TAB") 'copilot-accept-completion-by-line)
-(define-key copilot-mode-map (kbd "C-M-n") 'copilot-next-completion)
-(define-key copilot-mode-map (kbd "C-M-p") 'copilot-previous-completion)
-
-;; ChatGPT
-(require 'gptel)
-(require 'password-store)
-
-(setf gptel-api-key (password-store-get "chatgpt/api")
- gptel-model "gpt-4")
-
-(define-key gptel-mode-map (kbd "C-c h") #'gptel-menu)
-
-
-(provide 'thanos-ai)
-;;; thanos-ai.el ends here
diff --git a/.emacs.d/modules/thanos-books.el b/.emacs.d/modules/thanos-books.el
deleted file mode 100644
index 7c6b414..0000000
--- a/.emacs.d/modules/thanos-books.el
+++ /dev/null
@@ -1,57 +0,0 @@
-;;; thanos-books.el --- -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2023 Thanos Apollo
-
-;; Author: Thanos Apollo <[email protected]>
-;; Keywords:
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;; ╭━━━━┳╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭━━━╮╱╱╱╱╱╭╮╭╮╱╱╱╱╱╱╱╱╭━━━╮
-;; ┃╭╮╭╮┃┃╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╭━╮┃╱╱╱╱╱┃┃┃┃╱╱╱╱╱╱╱╱┃╭━━╯
-;; ╰╯┃┃╰┫╰━┳━━┳━╮╭━━┳━━╮┃┃╱┃┣━━┳━━┫┃┃┃╭━━╮╱╱╱╱┃╰━━┳╮╭┳━━┳━━┳━━╮
-;; ╱╱┃┃╱┃╭╮┃╭╮┃╭╮┫╭╮┃━━┫┃╰━╯┃╭╮┃╭╮┃┃┃┃┃╭╮┃╭━━╮┃╭━━┫╰╯┃╭╮┃╭━┫━━┫
-;; ╱╱┃┃╱┃┃┃┃╭╮┃┃┃┃╰╯┣━━┃┃╭━╮┃╰╯┃╰╯┃╰┫╰┫╰╯┃╰━━╯┃╰━━┫┃┃┃╭╮┃╰━╋━━┃
-;; ╱╱╰╯╱╰╯╰┻╯╰┻╯╰┻━━┻━━╯╰╯╱╰┫╭━┻━━┻━┻━┻━━╯╱╱╱╱╰━━━┻┻┻┻╯╰┻━━┻━━╯
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃┃
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╰╯
-;;; Code:
-
-
-(require 'pdf-tools)
-(require 'nov)
-
-(pdf-tools-install)
-;;Add pdf-isearch-minor-mode hook, otherwise isearch will be buggy
-;;Darkmode hook, cause I don't want color or light in my life, I'm a vampire.
-(add-hook 'pdf-view-mode-hook 'pdf-isearch-minor-mode)
-(add-hook 'pdf-view-mode-hook 'pdf-view-midnight-minor-mode)
-(add-to-list 'auto-mode-alist '("\\.pdf\\'" . 'pdf-view-mode))
-
-(add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode))
-
-;; (defun thanos/nov-font-setup ()
-;; "Setup for nov."
-;; (let ((font-size (if is-hermes 99 120)))
-;; (face-remap-add-relative 'variable-pitch
-;; :family "Jetbrains Mono"
-;; :height font-size)
-;; (beacon-mode -1)))
-
-;; (add-hook 'nov-mode-hook 'thanos/nov-font-setup)
-
-
-(provide 'thanos-books)
-;;; thanos-books.el ends here
diff --git a/.emacs.d/modules/thanos-chat.el b/.emacs.d/modules/thanos-chat.el
deleted file mode 100644
index 1e7d14d..0000000
--- a/.emacs.d/modules/thanos-chat.el
+++ /dev/null
@@ -1,55 +0,0 @@
-;;; thanos-chat.el --- -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2023 Thanos Apollo
-
-;; Author: Thanos Apollo <[email protected]>
-;; Keywords:
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;; ╭━━━━┳╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭━━━╮╱╱╱╱╱╭╮╭╮╱╱╱╱╱╱╱╱╭━━━╮
-;; ┃╭╮╭╮┃┃╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╭━╮┃╱╱╱╱╱┃┃┃┃╱╱╱╱╱╱╱╱┃╭━━╯
-;; ╰╯┃┃╰┫╰━┳━━┳━╮╭━━┳━━╮┃┃╱┃┣━━┳━━┫┃┃┃╭━━╮╱╱╱╱┃╰━━┳╮╭┳━━┳━━┳━━╮
-;; ╱╱┃┃╱┃╭╮┃╭╮┃╭╮┫╭╮┃━━┫┃╰━╯┃╭╮┃╭╮┃┃┃┃┃╭╮┃╭━━╮┃╭━━┫╰╯┃╭╮┃╭━┫━━┫
-;; ╱╱┃┃╱┃┃┃┃╭╮┃┃┃┃╰╯┣━━┃┃╭━╮┃╰╯┃╰╯┃╰┫╰┫╰╯┃╰━━╯┃╰━━┫┃┃┃╭╮┃╰━╋━━┃
-;; ╱╱╰╯╱╰╯╰┻╯╰┻╯╰┻━━┻━━╯╰╯╱╰┫╭━┻━━┻━┻━┻━━╯╱╱╱╱╰━━━┻┻┻┻╯╰┻━━┻━━╯
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃┃
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╰╯
-;;; Code:
-
-;; ERC
-(require 'erc)
-
-(setf erc-modules
- '(sasl netsplit fill button match track completion readonly
- networks ring autojoin noncommands irccontrols move-to-prompt stamp
- menu list))
-
-(defun erc-libera ()
- "Login to liberachat with erc."
- (interactive)
- (erc-tls :server "irc.libera.chat" :port 6697
- :nick "thanosapollo"
- :user "thanosapollo"
- :password (password-store-get "liberachat/thanos_apollo")))
-
-
-;; Telega
-(require 'telega)
-(add-hook 'telega-root-mode-hook 'emojify-mode)
-(add-hook 'telega-chat-mode-hook 'emojify-mode)
-
-(provide 'thanos-chat)
-;;; thanos-chat.el ends here
diff --git a/.emacs.d/modules/thanos-dired.el b/.emacs.d/modules/thanos-dired.el
deleted file mode 100644
index c6c7382..0000000
--- a/.emacs.d/modules/thanos-dired.el
+++ /dev/null
@@ -1,93 +0,0 @@
-;;; thanos-dired.el --- Dired configuration -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2023 Thanos Apollo
-
-;; Author: Thanos Apollo <[email protected]>
-;; Keywords:
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;; ╭━━━━┳╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭━━━╮╱╱╱╱╱╭╮╭╮╱╱╱╱╱╱╱╱╭━━━╮
-;; ┃╭╮╭╮┃┃╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╭━╮┃╱╱╱╱╱┃┃┃┃╱╱╱╱╱╱╱╱┃╭━━╯
-;; ╰╯┃┃╰┫╰━┳━━┳━╮╭━━┳━━╮┃┃╱┃┣━━┳━━┫┃┃┃╭━━╮╱╱╱╱┃╰━━┳╮╭┳━━┳━━┳━━╮
-;; ╱╱┃┃╱┃╭╮┃╭╮┃╭╮┫╭╮┃━━┫┃╰━╯┃╭╮┃╭╮┃┃┃┃┃╭╮┃╭━━╮┃╭━━┫╰╯┃╭╮┃╭━┫━━┫
-;; ╱╱┃┃╱┃┃┃┃╭╮┃┃┃┃╰╯┣━━┃┃╭━╮┃╰╯┃╰╯┃╰┫╰┫╰╯┃╰━━╯┃╰━━┫┃┃┃╭╮┃╰━╋━━┃
-;; ╱╱╰╯╱╰╯╰┻╯╰┻╯╰┻━━┻━━╯╰╯╱╰┫╭━┻━━┻━┻━┻━━╯╱╱╱╱╰━━━┻┻┻┻╯╰┻━━┻━━╯
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃┃
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╰╯
-;;; Code:
-
-(require 'dired)
-(require 'nerd-icons-dired)
-
-(setf dired-listing-switches "-lha")
-
-(defun dired-watch-video ()
- "Watch play file with mpv."
- (interactive)
- (call-process-shell-command
- (format "mpv \"%s\"" (dired-get-filename)) nil 0))
-
-(defun dired-set-wallpaper ()
- "Set NAME as wallpaper using feh."
- (interactive)
- (call-process-shell-command
- (format "feh --bg-scale %s" (dired-get-filename)) nil 0))
-
-(defun dired-delete-files-except ()
- "Delete all files inside directory except match."
- (interactive)
- (let* ((directory (read-directory-name "Select directory: "))
- (files (directory-files directory t))
- (except-match (read-string "Except the ones that have: ")))
- (dolist (file files)
- (unless (or (string= "." (substring file -1))
- (string= ".." (substring file -2))
- (string-match except-match file))
- (dired-delete-file file t)))))
-
-(defun dired-delete-file-match ()
- "Delete all files inside directory except match."
- (interactive)
- (let* ((directory (read-directory-name "Select directory: "))
- (files (directory-files directory t))
- (match (read-string "Delete files that match: ")))
- (dolist (file files)
- (when (string-match-p match file)
- (dired-delete-file file t)))))
-
-(defun dired-rename-capitalize-file ()
- "Capitalize the base name of the file at point in a Dired buffer."
- (interactive)
- (let* ((file (dired-get-file-for-visit))
- (new-file (capitalize (file-name-nondirectory file))))
- (if (string-prefix-p "." file)
- (message "Skipping file starting with '.'")
- (progn
- (rename-file file (concat (file-name-directory file) new-file))
- (revert-buffer)
- (message "Renamed %s to %s" file new-file)))))
-
-(define-key dired-mode-map (kbd "b") 'dired-up-directory)
-(define-key dired-mode-map (kbd "v") 'dired-watch-video)
-(define-key dired-mode-map (kbd "z") 'wdired-change-to-wdired-mode)
-(define-key dired-mode-map (kbd "C-c w") 'dired-set-wallpaper)
-(define-key global-map (kbd "C-c d") 'dired-delete-files-except)
-
-(add-hook 'dired-mode-hook 'nerd-icons-dired-mode)
-(setf nerd-icons-dired-v-adjust 0.10)
-
-(provide 'thanos-dired)
-;;; thanos-dired.el ends here
diff --git a/.emacs.d/modules/thanos-elfeed.el b/.emacs.d/modules/thanos-elfeed.el
deleted file mode 100644
index 09d59e5..0000000
--- a/.emacs.d/modules/thanos-elfeed.el
+++ /dev/null
@@ -1,100 +0,0 @@
-;;; thanos-elfeed.el --- elfeed configuration -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2023 Thanos Apollo
-
-;; Author: Thanos Apollo <[email protected]>
-;; Keywords: extensions
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;; ╭━━━━┳╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭━━━╮╱╱╱╱╱╭╮╭╮╱╱╱╱╱╱╱╱╭━━━╮
-;; ┃╭╮╭╮┃┃╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╭━╮┃╱╱╱╱╱┃┃┃┃╱╱╱╱╱╱╱╱┃╭━━╯
-;; ╰╯┃┃╰┫╰━┳━━┳━╮╭━━┳━━╮┃┃╱┃┣━━┳━━┫┃┃┃╭━━╮╱╱╱╱┃╰━━┳╮╭┳━━┳━━┳━━╮
-;; ╱╱┃┃╱┃╭╮┃╭╮┃╭╮┫╭╮┃━━┫┃╰━╯┃╭╮┃╭╮┃┃┃┃┃╭╮┃╭━━╮┃╭━━┫╰╯┃╭╮┃╭━┫━━┫
-;; ╱╱┃┃╱┃┃┃┃╭╮┃┃┃┃╰╯┣━━┃┃╭━╮┃╰╯┃╰╯┃╰┫╰┫╰╯┃╰━━╯┃╰━━┫┃┃┃╭╮┃╰━╋━━┃
-;; ╱╱╰╯╱╰╯╰┻╯╰┻╯╰┻━━┻━━╯╰╯╱╰┫╭━┻━━┻━┻━┻━━╯╱╱╱╱╰━━━┻┻┻┻╯╰┻━━┻━━╯
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃┃
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╰╯
-;;; Code:
-
-(require 'elfeed)
-(require 'elfeed-goodies)
-
-(setf elfeed-search-filter "@1-week-ago +unread")
-
-(setf elfeed-feeds
- '(("https://hackaday.com/blog/feed/"
- hackaday linux)
- ("https://protesilaos.com/news.xml"
- protesilaos)
- ("https://protesilaos.com/codelog.xml"
- proetesilaos)
- ("https://guix.gnu.org/feeds/blog.atom"
- gnu guix)
- ("https://thanosapollo.com/posts/index.xml"
- thanos)
- ("http://nullprogram.com/feed/"
- emacs linux)
- ("https://drewdevault.com/blog/index.xml"
- sourcehut drewdevault)
- ("https://archlinux.org/feeds/news/"
- ArchLinux Latest)
- ("http://wikileaks.org/feed"
- wikileaks)
- ("https://hackernoon.com/feed"
- hackernoon)
- ("https://sachachua.com/blog/feed/"
- sacha emacs)
- ("https://bits.debian.org/feeds/feed.rss"
- debian linux)
- ("https://torrentfreak.com/feed"
- torrentfreak piracy)
- ("https://wp.medscape.com/cx/rssfeeds/2700.xml"
- med medscape)
- ("https://www.science.org/action/showFeed?type=etoc&feed=rss&jc=sciimmunol"
- science)
- ("https://www.who.int/rss-feeds/news-english.xml"
- who medicine)
- ("https://annas-blog.org/rss.xml"
- anna piracy)
- ("https://www.addtoany.com/add_to/feed?linkurl=http%3A%2F%2Fwww.thelancet.com%2Frssfeed%2Flancet_online.xml&type=feed&linkname=The%20Lancet%20Online%20First&linknote="
- lancet medicine)
- ("https://www.addtoany.com/add_to/feed?linkurl=http%3A%2F%2Fwww.thelancet.com%2Frssfeed%2Flanhae_online.xml&type=feed&linkname=The%20Lancet%20Haematology%20Online%20First&linknote="
- lancet haematology medicine)
- ("https://totsipaki.net/ikiwiki/nparafe/%CE%9C%CF%80%CE%BB%CE%BF%CE%B3%CE%BA/index.rss"
- nikos fsf)))
-
-(defun elfeed-mpv (&optional use-generic-p)
- "Play video link with mpv."
- (interactive "P")
- (let ((entries (elfeed-search-selected)))
- (cl-loop for entry in entries
- do (elfeed-untag entry 'unread)
- when (elfeed-entry-link entry)
- do (start-process-shell-command "elfeed-video" nil (format "mpv \"%s\"" it)))
- (mapc #'elfeed-search-update-entry entries)
- (unless (use-region-p) (forward-line))))
-
-(setf elfeed-goodies/entry-pane-size 0.55)
-(elfeed-goodies/setup)
-
-(define-key elfeed-search-mode-map (kbd "v") 'elfeed-mpv)
-(define-key elfeed-search-mode-map (kbd "U") 'elfeed-update)
-
-;; browser
-(setf browse-url-browser-function #'browse-url-default-browser)
-
-(provide 'thanos-elfeed)
-;;; thanos-elfeed.el ends here
diff --git a/.emacs.d/modules/thanos-multimedia.el b/.emacs.d/modules/thanos-multimedia.el
deleted file mode 100644
index 036b99c..0000000
--- a/.emacs.d/modules/thanos-multimedia.el
+++ /dev/null
@@ -1,120 +0,0 @@
-;;; thanos-multimedia.el --- -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2023 Thanos Apollo
-
-;; Author: Thanos Apollo <[email protected]>
-;; Keywords:
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;; ╭━━━━┳╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭━━━╮╱╱╱╱╱╭╮╭╮╱╱╱╱╱╱╱╱╭━━━╮
-;; ┃╭╮╭╮┃┃╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╭━╮┃╱╱╱╱╱┃┃┃┃╱╱╱╱╱╱╱╱┃╭━━╯
-;; ╰╯┃┃╰┫╰━┳━━┳━╮╭━━┳━━╮┃┃╱┃┣━━┳━━┫┃┃┃╭━━╮╱╱╱╱┃╰━━┳╮╭┳━━┳━━┳━━╮
-;; ╱╱┃┃╱┃╭╮┃╭╮┃╭╮┫╭╮┃━━┫┃╰━╯┃╭╮┃╭╮┃┃┃┃┃╭╮┃╭━━╮┃╭━━┫╰╯┃╭╮┃╭━┫━━┫
-;; ╱╱┃┃╱┃┃┃┃╭╮┃┃┃┃╰╯┣━━┃┃╭━╮┃╰╯┃╰╯┃╰┫╰┫╰╯┃╰━━╯┃╰━━┫┃┃┃╭╮┃╰━╋━━┃
-;; ╱╱╰╯╱╰╯╰┻╯╰┻╯╰┻━━┻━━╯╰╯╱╰┫╭━┻━━┻━┻━┻━━╯╱╱╱╱╰━━━┻┻┻┻╯╰┻━━┻━━╯
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃┃
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╰╯
-;;; Code:
-
-;; EMMS
-(require 'emms)
-(autoload 'emms-smart-browse "emms-browser.el" "Browse with EMMS" t)
-
-(with-eval-after-load 'emms
- (emms-all)
- (setq emms-source-file-default-directory "~/Music"
- emms-info-asynchronously t
- emms-show-format "♪ %s")
- (emms-default-players))
-
-(setf emms-player-mpv-parameters nil)
-
-(define-key emms-playlist-mode-map (kbd "A") #'emms-add-directory-tree)
-
-(defun yeetube-download-vimeo-videos ()
- "Download videos from vimeo services."
- (interactive)
- (let ((url "")
- (name "")
- (download-counter 1))
- (while (not (string= url "q"))
- (setf url (read-string "Enter URL (q to quit): "))
- (unless (string= url "q")
- (setf name (read-string (format "Custom name (download counter: %d) " download-counter)))
- (setf download-counter (1+ download-counter))
- (call-process-shell-command
- (format
- "yt-dlp '%s' -o '%s'"
- (replace-regexp-in-string "\\.json" ".m3u8" url) name)
- nil 0)))))
-
-(defun yeetube-download-videos-ffmpeg ()
- "Download videos using ffmpeg."
- (interactive)
- (let ((url "")
- (name "")
- (download-counter 1)
- (stored-contents nil))
- ;; Read links and names until "q" is entered
- (while (not (string= url "q"))
- (setf url (read-string "Enter URL (q to quit): "))
- (unless (string= url "q")
- (setf name (read-string (format "Custom name (download counter: %d) " download-counter)))
- (push (cons url name) stored-contents)
- (setf download-counter (1+ download-counter))))
- ;; Process the collected links and names
- (dolist (pair stored-contents)
- (let ((url (car pair))
- (name (cdr pair)))
- (async-shell-command
- (format
- "ffmpeg -protocol_whitelist file,crypto,data,https,tls,tcp -stats -i '%s' -codec copy '%s.mp4'"
- url name))))))
-
-(setf yeetube-results-limit 20
- yeetube-mpv-disable-video t)
-
-(defun yeetube-play-url (url)
- "Open URL using yeetube-player."
- (interactive "sURL:")
- (let ((media-player (executable-find (symbol-name yeetube-player))))
- (unless media-player
- (error (format "%s not found." media-player)))
- (when (string-prefix-p "http" url)
- (setf yeetube-last-played url)
- (if (eq yeetube-player 'mpv)
- (yeetube-start-mpv-process url)
- (yeetube-start-process
- (format "%s \"%s\"" media-player
- (replace-regexp-in-string "\\byewtu\\.be\b" "youtube.com" url)))))))
-
-(defvar-keymap thanos/yeetube-map
- :doc "Personal yeetube map."
- "s" #'yeetube-search
- "b" #'yeetube-play-saved-video
- "d" #'yeetube-download-videos
- "C-d" #'yeetube-download-vimeo-videos
- "p" #'yeetube-mpv-toggle-pause
- "v" #'yeetube-mpv-toggle-no-video-flag
- "C-p" #'yeetube-mpv-toggle-video
- "k" #'yeetube-remove-saved-video)
-
-(global-set-key (kbd "C-c y") thanos/yeetube-map)
-
-
-
-(provide 'thanos-multimedia)
-;;; thanos-multimedia.el ends here
diff --git a/.emacs.d/modules/thanos-org.el b/.emacs.d/modules/thanos-org.el
deleted file mode 100644
index 0ad1f28..0000000
--- a/.emacs.d/modules/thanos-org.el
+++ /dev/null
@@ -1,247 +0,0 @@
-;;; thanos-org-config.el --- org config -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2023 Thanos Apollo
-
-;; Author: Thanos Apollo <[email protected]>
-;; Keywords:
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;; ╭━━━━┳╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭━━━╮╱╱╱╱╱╭╮╭╮╱╱╱╱╱╱╱╱╭━━━╮
-;; ┃╭╮╭╮┃┃╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╭━╮┃╱╱╱╱╱┃┃┃┃╱╱╱╱╱╱╱╱┃╭━━╯
-;; ╰╯┃┃╰┫╰━┳━━┳━╮╭━━┳━━╮┃┃╱┃┣━━┳━━┫┃┃┃╭━━╮╱╱╱╱┃╰━━┳╮╭┳━━┳━━┳━━╮
-;; ╱╱┃┃╱┃╭╮┃╭╮┃╭╮┫╭╮┃━━┫┃╰━╯┃╭╮┃╭╮┃┃┃┃┃╭╮┃╭━━╮┃╭━━┫╰╯┃╭╮┃╭━┫━━┫
-;; ╱╱┃┃╱┃┃┃┃╭╮┃┃┃┃╰╯┣━━┃┃╭━╮┃╰╯┃╰╯┃╰┫╰┫╰╯┃╰━━╯┃╰━━┫┃┃┃╭╮┃╰━╋━━┃
-;; ╱╱╰╯╱╰╯╰┻╯╰┻╯╰┻━━┻━━╯╰╯╱╰┫╭━┻━━┻━┻━┻━━╯╱╱╱╱╰━━━┻┻┻┻╯╰┻━━┻━━╯
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃┃
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╰╯
-;;; Code:
-
-(require 'org)
-(require 'org-agenda)
-;; Export backends
-(require 'ox-texinfo)
-(require 'ox-hugo)
-
-(setf org-directory "~/org/"
- org-agenda-files '("~/org/agenda.org")
- org-default-notes-file (expand-file-name "notes.org" org-directory)
- org-ellipsis " ▼ "
- org-log-done 'time
- org-hide-emphasis-markers nil ;;change to t to hide emphasis markers
- org-table-convert-region-max-lines 20000
- org-log-done 'time
- org-todo-keywords '((sequence "TODO(t)" "SEMINAR(s)" "LECTURE(l)" "DONE(d)")))
-
-(define-key org-mode-map (kbd "C-c t") 'org-time-stamp-inactive)
-
-(defadvice org-edit-src-code (around set-buffer-file-name activate compile)
- (let ((file-name (buffer-file-name))) ;; (1)
- ad-do-it ;; (2)
- (setf buffer-file-name file-name))) ;; (3)
-
-(org-babel-do-load-languages
- 'org-babel-load-languages
- '((emacs-lisp . t)
- (python . t)))
-
-
-
-(setf org-structure-template-alist
- '(("e" . "src emacs-lisp")
- ("p" . "src python")
- ("l" . "src lisp")
- ("b" . "src bash")
- ("q" . "QUOTE")))
-
-;;Auto tangle
-(add-hook 'org-mode-hook 'org-auto-tangle-mode)
-
-
-;; Org roam
-(require 'org-roam)
-
-;; Create ~/Notes, ignore errors if it's already made
-(ignore-errors
- (make-directory "~/Notes"))
-
-(setf org-roam-directory "~/Notes"
- org-roam-dailies-directory "journal/")
-
-(org-roam-db-autosync-enable)
-
-(setf org-roam-node-display-template (concat "${title:50} "(propertize "${tags:30}" 'face 'org-tag)))
-
-(setf org-roam-db-node-include-function
- (lambda ()
- (not (or (member "journal" (org-get-tags))
- (member "memorize" (org-get-tags))))))
-
-;; Functions
-(defun org-insert-book ()
- "Insert org-link from ~/Library for book"
- (interactive)
- (let* ((book-path (read-file-name "Book: " "~/Library/")))
- (org-insert-link nil book-path (file-name-base book-path))))
-
-;;; Keybindings
-(define-key org-mode-map (kbd "C-c b") 'org-insert-book)
-
-;; Set maps
-(define-prefix-command 'thanos/notes)
-(global-set-key (kbd "C-c n") 'thanos/notes)
-;; org-roam keys
-(define-key thanos/notes (kbd "t") 'org-roam-buffer-toggle)
-(define-key thanos/notes (kbd "f") 'org-roam-node-find)
-(define-key thanos/notes (kbd "i") 'org-roam-node-insert)
-;; Journaling
-(define-prefix-command 'Journal)
-(define-key thanos/notes (kbd "j") 'Journal)
-(define-key Journal (kbd "d") 'Journaling/dailies)
-(define-key Journal (kbd "C-c") 'org-roam-dailies-capture-today)
-(define-key Journal (kbd "C-t") 'org-roam-dailies-capture-tomorrow)
-(define-key Journal (kbd "C-y") 'org-roam-dailies-capture-yesterday)
-(define-key Journal (kbd "c") 'org-roam-dailies-goto-today)
-(define-key Journal (kbd "t") 'org-roam-dailies-goto-tomorrow)
-(define-key Journal (kbd "y") 'org-roam-dailies-goto-yesterday)
-
-(define-key org-mode-map (kbd "C-c C-.") 'org-roam-tag-add)
-(define-key org-mode-map (kbd "C-c i") 'org-id-get-create)
-
-;; Templates
-(setf 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
- "* Characteristics\n\n- Family: %?\n- Inspired by: \n\n* Reference:\n\n"
- :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n")
- :unnarrowed t)
- ("p" "MUS" plain "* Goals\n\n%?\n\n* Tasks\n\n** TODO Add initial tasks\n\n* Dates\n\n"
- :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n#+filetags: MUS")
- :unnarrowed t)))
-;; Dailies
-(setf org-roam-dailies-capture-templates
- '(("d" "default" entry
- "* %?"
- :target (file+head "%<%Y-%m-%d>.org"
- "#+title: %<%Y-%m-%d>\n"))
- ("j" "Daily Journaling" entry
- (file "~/org/Templates/journaling.org")
- :target (file+head "%<%Y-%m-%d>.org"
- "#+title: %<%Y-%m-%d>\n"))
- ("i" "Improve" entry
- (file "~/org/Templates/improve.org")
- :target (file+head "%<%Y-%m-%d>.org"
- "#+title: %<%Y-%m-%d>\n"))))
-
-;; Org themes
-(require 'org-modern)
-
-
-(defvar org-gruvbox-theming
- '((org-level-1 1.30 "#fb4934" extra-bold)
- (org-level-2 1.20 "#98971a" bold)
- (org-level-3 1.13 "#458588" bold)
- (org-level-4 1.10 "#b16286" semi-bold)
- (org-level-5 1.10 "#689d6a" normal)
- (org-level-6 1.10 "#d3869b" normal)
- (org-level-7 1.10 "#8ec07c" normal)
- (org-level-8 1.00 "#ebdbb2" normal)))
-
-(defun thanos/org-theme-gruvbox ()
- "Enable Darkone theme for Org headers."
- (interactive)
- (dolist (face org-gruvbox-theming)
- (set-face-attribute (nth 0 face) nil
- :font "Jetbrains Mono"
- :weight (nth 3 face)
- :height (nth 1 face)
- :foreground (nth 2 face)))
- (set-face-attribute 'org-table nil
- :font "Jetbrains Mono"
- :weight 'semi-bold
- :height 1.0
- :foreground "#fb4934"))
-
-(defun thanos/org-scale ()
- "Enable Darkone theme for Org headers."
- (interactive)
- (dolist (face org-gruvbox-theming)
- (set-face-attribute (nth 0 face) nil
- :font "Jetbrains Mono"
- :weight (nth 3 face)
- :height (nth 1 face)))
- (set-face-attribute 'org-table nil
- :font "Jetbrains Mono"
- :weight 'semi-bold
- :height 1.0
- :foreground "#fb4934"))
-
-(defun thanos/org-hook ()
- "Add hooks for `org-mode'."
- (display-line-numbers-mode -1)
- (flyspell-mode)
- (org-auto-tangle-mode)
- (when (not (equal (car custom-enabled-themes) 'modus-vivendi))
- (thanos/org-scale)))
-
-(add-hook 'org-mode-hook #'thanos/org-hook)
-
-(modify-all-frames-parameters
- '((right-divider-width . 5)
- (internal-border-width . 5)))
-(dolist (face '(window-divider
- window-divider-first-pixel
- window-divider-last-pixel))
- (face-spec-reset-face face)
- (set-face-foreground face (face-attribute 'default :background)))
-(set-face-background 'fringe (face-attribute 'default :background))
-
-(setf
- ;; Edit settings
- org-auto-align-tags nil
- org-tags-column 0
- org-fold-catch-invisible-edits 'show-and-error
- org-special-ctrl-a/e t
- org-insert-heading-respect-content t
-
- ;; Org styling, hide markup etc.
- org-hide-emphasis-markers t
- org-pretty-entities t
-
- ;; Agenda styling
- org-agenda-tags-column 0
- org-agenda-block-separator ?─
- org-agenda-time-grid
- '((daily today require-timed)
- (800 1000 1200 1400 1600 1800 2000)
- " ┄┄┄┄┄ " "┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄")
- org-agenda-current-time-string
- "⭠ now ─────────────────────────────────────────────────")
-
-(global-org-modern-mode)
-
-(setf org-modern-table nil)
-(setf org-modern-todo nil)
-
-;; Jinx
-(require 'jinx)
-(add-hook 'org-mode-hook #'jinx-mode)
-(define-key jinx-mode-map (kbd "M-'") #'jinx-correct)
-
-(provide 'thanos-org)
-;;; thanos-org.el ends here
diff --git a/.emacs.d/modules/thanos-packages.el b/.emacs.d/modules/thanos-packages.el
deleted file mode 100644
index 6363b95..0000000
--- a/.emacs.d/modules/thanos-packages.el
+++ /dev/null
@@ -1,92 +0,0 @@
-;;; thanos-packages.el --- -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2023 Thanos Apollo
-
-;; Author: Thanos Apollo <[email protected]>
-;; Keywords:
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;; ╭━━━━┳╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭━━━╮╱╱╱╱╱╭╮╭╮╱╱╱╱╱╱╱╱╭━━━╮
-;; ┃╭╮╭╮┃┃╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╭━╮┃╱╱╱╱╱┃┃┃┃╱╱╱╱╱╱╱╱┃╭━━╯
-;; ╰╯┃┃╰┫╰━┳━━┳━╮╭━━┳━━╮┃┃╱┃┣━━┳━━┫┃┃┃╭━━╮╱╱╱╱┃╰━━┳╮╭┳━━┳━━┳━━╮
-;; ╱╱┃┃╱┃╭╮┃╭╮┃╭╮┫╭╮┃━━┫┃╰━╯┃╭╮┃╭╮┃┃┃┃┃╭╮┃╭━━╮┃╭━━┫╰╯┃╭╮┃╭━┫━━┫
-;; ╱╱┃┃╱┃┃┃┃╭╮┃┃┃┃╰╯┣━━┃┃╭━╮┃╰╯┃╰╯┃╰┫╰┫╰╯┃╰━━╯┃╰━━┫┃┃┃╭╮┃╰━╋━━┃
-;; ╱╱╰╯╱╰╯╰┻╯╰┻╯╰┻━━┻━━╯╰╯╱╰┫╭━┻━━┻━┻━┻━━╯╱╱╱╱╰━━━┻┻┻┻╯╰┻━━┻━━╯
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃┃
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╰╯
-;;; Code:
-
-(require 'package)
-
-;; Install straight.el
-
-(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))
-
-(setq package-enable-at-startup nil)
-
-(require 'straight)
-
-(setf straight-use-package-by-default t)
-
-(defvar thanos/packages '(vertico marginalia org-roam
- nerd-icons-completion nerd-icons-ibuffer consult org
- org-modern which-key elfeed elfeed-goodies python-mode
- emms rainbow-delimiters eshell-git-prompt helpful
- password-store ox-hugo json-mode magit corfu orderless
- consult pdf-tools markdown-mode eat org-auto-tangle sly
- eat nov eshell-syntax-highlighting emojify flycheck vterm
- telega transmission gptel nerd-icons-dired sudo-edit
- mu4e-alert jinx modus-themes)
- "List of packages to install.")
-
-(setf straight-recipe-overrides
- '((transmission :type git :host nil :repo "[email protected]:/var/git/transmission")
- (yeetube :type git :host nil :repo "[email protected]:/var/git/yeetube")))
-
-(defvar thanos/custom-packages
- '((yeetube :local-repo "~/Dev/emacs-lisp/yeetube")
- (gnosis :local-repo "~/Dev/emacs-lisp/gnosis")
- (copilot :host github :repo "zerolfx/copilot.el" :files ("dist" "*.el")))
- "Custom package recipes.")
-
-;; Get packages via straight
-(cl-loop for package in (if (or is-hermes is-zeus)
- (append thanos/custom-packages thanos/packages)
- thanos/packages)
- do (straight-use-package package))
-
-;; Set and load custom.el
-(setf custom-file (concat user-emacs-directory "custom.el"))
-(load custom-file 'noerror)
-
-
-(provide 'thanos-packages)
-;;; thanos-packages.el ends here
diff --git a/.emacs.d/modules/thanos-shells.el b/.emacs.d/modules/thanos-shells.el
deleted file mode 100644
index 57fd8dc..0000000
--- a/.emacs.d/modules/thanos-shells.el
+++ /dev/null
@@ -1,176 +0,0 @@
-;;; thanos-shell.el --- shells configuration -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2023 Thanos Apollo
-
-;; Author: Thanos Apollo <[email protected]>
-;; Keywords:
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;; ╭━━━━┳╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭━━━╮╱╱╱╱╱╭╮╭╮╱╱╱╱╱╱╱╱╭━━━╮
-;; ┃╭╮╭╮┃┃╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╭━╮┃╱╱╱╱╱┃┃┃┃╱╱╱╱╱╱╱╱┃╭━━╯
-;; ╰╯┃┃╰┫╰━┳━━┳━╮╭━━┳━━╮┃┃╱┃┣━━┳━━┫┃┃┃╭━━╮╱╱╱╱┃╰━━┳╮╭┳━━┳━━┳━━╮
-;; ╱╱┃┃╱┃╭╮┃╭╮┃╭╮┫╭╮┃━━┫┃╰━╯┃╭╮┃╭╮┃┃┃┃┃╭╮┃╭━━╮┃╭━━┫╰╯┃╭╮┃╭━┫━━┫
-;; ╱╱┃┃╱┃┃┃┃╭╮┃┃┃┃╰╯┣━━┃┃╭━╮┃╰╯┃╰╯┃╰┫╰┫╰╯┃╰━━╯┃╰━━┫┃┃┃╭╮┃╰━╋━━┃
-;; ╱╱╰╯╱╰╯╰┻╯╰┻╯╰┻━━┻━━╯╰╯╱╰┫╭━┻━━┻━┻━┻━━╯╱╱╱╱╰━━━┻┻┻┻╯╰┻━━┻━━╯
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃┃
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╰╯
-;;; Code:
-
-(setenv "EDITOR" "emacsclient -n")
-(setenv "XDG_SESSION_TYPE" "x11")
-
-;;
-(require 'pcomplete)
-(require 'eshell)
-
-(setf eshell-visual-commands
- '("vi" "vim" "screen" "tmux" "top" "htop" "less"
- "more" "lynx" "links" "ncftp" "mutt" "pine" "tin"
- "trn" "elm"))
-
-(require 'eat)
-(add-hook 'eshell-mode-hook #'eat-eshell-visual-command-mode)
-;; (add-hook 'eshell-mode-hook #'eat-eshell-mode)
-(setf eat-term-name "xterm")
-
-;;;; doas completion
-(defun pcomplete/doas ()
- "Completion rules for the `doas' command."
- (let ((pcomplete-ignore-case t))
- (pcomplete-here (funcall pcomplete-command-completion-function))
- (while (pcomplete-here (pcomplete-entries)))))
-
-;;;; systemctl completion
-(defcustom pcomplete-systemctl-commands
- '("disable" "enable" "status" "start" "restart" "stop" "reenable"
- "list-units" "list-unit-files")
- "p-completion candidates for `systemctl' main commands"
- :type '(repeat (string :tag "systemctl command"))
- :group 'pcomplete)
-
-(defvar pcomplete-systemd-units
- (split-string
- (shell-command-to-string
- "(systemctl list-units --all --full --no-legend;systemctl list-unit-files --full --no-legend)|while read -r a b; do echo \" $a\";done;"))
- "p-completion candidates for all `systemd' units")
-
-(defvar pcomplete-systemd-user-units
- (split-string
- (shell-command-to-string
- "(systemctl list-units --user --all --full --no-legend;systemctl list-unit-files --user --full --no-legend)|while read -r a b;do echo \" $a\";done;"))
- "p-completion candidates for all `systemd' user units")
-
-(defun pcomplete/systemctl ()
- "Completion rules for the `systemctl' command."
- (pcomplete-here (append pcomplete-systemctl-commands '("--user")))
- (cond ((pcomplete-test "--user")
- (pcomplete-here pcomplete-systemctl-commands)
- (pcomplete-here pcomplete-systemd-user-units))
- (t (pcomplete-here pcomplete-systemd-units))))
-
-;;;; man completion
-(defvar pcomplete-man-user-commands
- (split-string
- (shell-command-to-string
- "apropos -s 1 .|while read -r a b; do echo \" $a\";done;"))
- "p-completion candidates for `man' command")
-
-(defun pcomplete/man ()
- "Completion rules for the `man' command."
- (pcomplete-here pcomplete-man-user-commands))
-
-;; hut completion
-(defcustom pcomplete-hut-commands
- '("builds" "export" "git" "graphql" "lists" "help" "hg"
- "init" "meta" "pages" "paste" "todo")
- "p-completion candidates for `hut' main commands"
- :type '(repeat (string :tag "hut command"))
- :group 'pcomplete)
-
-(defun pcomplete/hut ()
- "Completion rules for `hut' command"
- (pcomplete-here (append pcomplete-hut-commands)))
-
-
-;; Setting eshell aliases
-(defvar thanos/aliases
- '((g . magit)
- (gl . magit-log)
- (gc . magit-clone)
- (d . dired)
- (o . find-file)
- (oo . find-file-other-window)
- (ll . (lambda () (eshell/ls '-lha)))
- (eshell/clear . eshell/clear-scrollback)))
-
-(defun thanos/set-eshell-aliases (aliases)
- "Set ALIASES as eshell aliases."
- (mapc (lambda (alias)
- (defalias (car alias) (cdr alias)))
- aliases))
-
-(add-hook 'eshell-mode-hook #'(lambda () (thanos/set-eshell-aliases thanos/aliases)))
-
-;; PATH
-(defvar eshell-path-env (getenv "~/.local/bin"))
-
-(require 'eshell-git-prompt)
-
-;; customize multiline theme
-(defun eshell-git-prompt-multiline ()
- "Eshell Git prompt inspired by spaceship-prompt."
- (let (separator hr dir git git-dirty time sign command)
- (setq separator (with-face " | " 'eshell-git-prompt-multiline-secondary-face))
- (setq hr (with-face (concat "\n" (make-string (/ (window-total-width) 2) ?─) "\n") 'eshell-git-prompt-multiline-secondary-face))
- (setq dir
- (concat
- (concat (abbreviate-file-name (eshell/pwd)))))
- (setq git
- (concat (with-face "⎇" 'eshell-git-prompt-exit-success-face)
- (concat (eshell-git-prompt--branch-name))))
- (setq git-dirty
- (when (eshell-git-prompt--branch-name)
- (if (eshell-git-prompt--collect-status)
- (with-face " ✎" 'eshell-git-prompt-modified-face)
- (with-face " ✔" 'eshell-git-prompt-exit-success-face))))
- (setq time (with-face (format-time-string "%I:%M:%S %p") 'eshell-git-prompt-multiline-secondary-face))
- (setq sign
- (if (= (user-uid) 0)
- (with-face "\n#" 'eshell-git-prompt-multiline-sign-face)
- (with-face "\nλ" 'eshell-git-prompt-multiline-sign-face)))
- (setq command (with-face " " 'eshell-git-prompt-multiline-command-face))
-
-
- (eshell-git-prompt---str-read-only
- (concat hr dir separator git git-dirty separator time sign command))))
-
-(eshell-git-prompt-use-theme 'multiline)
-
-(eshell-syntax-highlighting-global-mode 1)
-
-(setq eshell-highlight-prompt t
- eshell-term-name "emacs")
-
-;; Keybindings
-(define-key global-map (kbd "C-c e") 'eshell)
-
-(require 'vterm)
-(define-key global-map (kbd "C-c v") 'vterm)
-(define-key vterm-mode-map (kbd "M-&") #'async-shell-command)
-
-
-(provide 'thanos-shells)
-;;; thanos-shells.el ends here
diff --git a/.emacs.d/modules/thanos-tools.el b/.emacs.d/modules/thanos-tools.el
deleted file mode 100644
index 36bc511..0000000
--- a/.emacs.d/modules/thanos-tools.el
+++ /dev/null
@@ -1,176 +0,0 @@
-;;; thanos-tools.el --- Tools Configuration -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2023 Thanos Apollo
-
-;; Author: Thanos Apollo <[email protected]>
-;; Keywords: extensions
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;; ╭━━━━┳╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭━━━╮╱╱╱╱╱╭╮╭╮╱╱╱╱╱╱╱╱╭━━━╮
-;; ┃╭╮╭╮┃┃╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╭━╮┃╱╱╱╱╱┃┃┃┃╱╱╱╱╱╱╱╱┃╭━━╯
-;; ╰╯┃┃╰┫╰━┳━━┳━╮╭━━┳━━╮┃┃╱┃┣━━┳━━┫┃┃┃╭━━╮╱╱╱╱┃╰━━┳╮╭┳━━┳━━┳━━╮
-;; ╱╱┃┃╱┃╭╮┃╭╮┃╭╮┫╭╮┃━━┫┃╰━╯┃╭╮┃╭╮┃┃┃┃┃╭╮┃╭━━╮┃╭━━┫╰╯┃╭╮┃╭━┫━━┫
-;; ╱╱┃┃╱┃┃┃┃╭╮┃┃┃┃╰╯┣━━┃┃╭━╮┃╰╯┃╰╯┃╰┫╰┫╰╯┃╰━━╯┃╰━━┫┃┃┃╭╮┃╰━╋━━┃
-;; ╱╱╰╯╱╰╯╰┻╯╰┻╯╰┻━━┻━━╯╰╯╱╰┫╭━┻━━┻━┻━┻━━╯╱╱╱╱╰━━━┻┻┻┻╯╰┻━━┻━━╯
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃┃
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╰╯
-;;; Code:
-(require 'corfu)
-(require 'orderless)
-(require 'dabbrev)
-
-;; Find definitions
-(global-set-key (kbd "M-.") 'xref-find-definitions)
-(global-set-key (kbd "C-c L") 'display-line-numbers-mode)
-
-;; electric pair
-(electric-pair-mode 1)
-
-;; auto insert templates
-(auto-insert-mode 1)
-
-;; flycheck
-(require 'flycheck)
-(global-flycheck-mode)
-
-;; Tramp
-(require 'tramp)
-(setf tramp-default-method "ssh")
-
-;; sudo-edit
-(require 'sudo-edit)
-(setf sudo-edit-local-method "doas") ;; sudo is bloat
-
-;; Completions
-(setf dabbrev-ignored-buffer-regexps '("\\.\\(?:pdf\\|jpe?g\\|png\\)\\'"))
-
-(setf completion-category-overrides '((file (style basic partial-completion)))
- completion-styles '(orderless)
- completion-cycle-threshold 2)
-
-;; Corfu
-(global-corfu-mode)
-(corfu-popupinfo-mode)
-
-(setf corfu-auto t
- corfu-auto-delay 0.1
- corfu-auto-prefix 2
- corfu-cycle t
- corfu-popupinfo-delay 0.3
- corfu-quit-at-boundary 'separator
- corfu-quit-no-match t
- corfu-preselect 'first
- corfu-preview-current t
- corfu-echo-mode t)
-
-(setf indent-tabs-mode nil)
-
-;; Register & Consult
-(define-key global-map (kbd "C-x r d") 'bookmark-delete)
-(define-key global-map (kbd "C-x r C-r") 'bookmark-rename)
-(define-key global-map (kbd "C-x r .") 'consult-register)
-(define-key global-map (kbd "C-x r s") 'consult-register-store)
-(define-key global-map (kbd "C-x r b") 'consult-bookmark)
-
-(defvar-keymap thanos/search
- :doc "Keymap for search commands."
- "f" #'isearch-forward
- "b" #'isearch-backward
- "s" #'consult-line
- "C-f" #'consult-find
- "C-g" #'consult-grep
- "C-i" #'consult-info
- "C-l" #'consult-locate)
-
-(define-key global-map (kbd "C-s") thanos/search)
-(define-key project-prefix-map (kbd "b") 'consult-project-buffer)
-(define-key global-map (kbd "M-y") 'consult-yank-from-kill-ring)
-
-(setf xref-show-xrefs-function #'consult-xref
- xref-show-definitions-function #'consult-xref)
-
-(setf register-preview-delay 0.5
- register-preview-function #'consult-register-format)
-
-(defun insert-brackets (&optional arg)
- "Insert ARG brackets."
- (interactive "P")
- (insert-pair arg ?\[ ?\]))
-
-(global-set-key (kbd "C-x M-[") 'insert-brackets)
-
-;; Magit
-(require 'magit)
-
-(defun project-magit ()
- "Run magit-status in the current project's root."
- (interactive)
- (magit-status (project-root (project-current t))))
-
-(define-key project-prefix-map (kbd "g") 'project-magit)
-
-(setf magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)
-
-
-;; shell scripting
-(define-auto-insert
- '("\\.sh\\'" . "Bash skeleton")
- '("Description:"
- "#!/bin/bash\n\n"))
-
-(add-hook 'shell-script-mode #'auto-insert)
-
-;; Emacs lisp
-(require 'flycheck)
-(require 'rainbow-delimiters)
-
-(setf tab-always-indent 'complete)
-(add-to-list 'completion-styles 'initials t)
-
-(add-hook 'emacs-lisp-mode-hook #'rainbow-delimiters-mode)
-(setf flycheck-emacs-lisp-load-path 'inherit)
-
-(add-hook 'emacs-lisp-mode-hook 'prettify-symbols-mode)
-
-;; Disable checkdoc flycheck for org-src buffers
-(add-hook 'org-src-mode-hook #'(lambda ()
- (flycheck-disable-checker 'emacs-lisp-checkdoc)))
-
-;; Common lisp
-(setf inferior-lisp-program "sbcl")
-(add-hook 'lisp-mode-hook #'rainbow-delimiters-mode)
-
-;; Scheme
-(add-hook 'scheme-mode-hook #'rainbow-delimiters-mode)
-
-;; Python
-(require 'python-mode)
-(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
-
-;; json
-(require 'json-mode)
-(add-to-list 'auto-mode-alist '("\\.json'" . json-mode))
-
-;; Markdown
-(require 'markdown-mode)
-(add-hook 'markdown-mode-hook #'(lambda () (flyspell-mode)))
-(setq markdown-header-scaling t
- markdown-command "multimarkdown")
-
-(add-to-list 'auto-mode-alist '("\\.md\\'" . gfm-mode))
-
-(provide 'thanos-tools)
-;;; thanos-tools.el ends here