guixsd-config

GuixSD configs for my systems
Log | Files | Refs

commit 61ba7d182f5a6dd36bc198e551c647486b408f4f
parent a4a8d16ebc31958a5729466fcc59e5f0124d9175
Author: Vineet Kumar <git@vineetk.net>
Date:   Thu, 25 Dec 2025 19:13:45 -0500

start adding dotfiles to guix home's stow

at least the less-sensitive ones. I still need to setup encryption via
something like git-crypt

Diffstat:
Aepistemia/files/alsa/.config/alsa/asoundrc | 95+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aepistemia/files/alsa/.config/alsa/asoundrc.old_jack | 19+++++++++++++++++++
Aepistemia/files/alsa/.config/alsa/asoundrc.old_ladspa | 85+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aepistemia/files/alsa/.config/alsa/asoundrc_steam | 5+++++
Aepistemia/files/emacs/.config/emacs/init.el | 572+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aepistemia/files/emacs/.config/emacs/themes/doom-lantern-theme.el | 190+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aepistemia/files/emacs/.config/emacs/themes/simple-dark-theme.el | 284+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aepistemia/files/fontconfig/.config/fontconfig/fonts.conf.old | 57+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aepistemia/files/git/.config/git/config | 30++++++++++++++++++++++++++++++
Aepistemia/files/git/.config/git/ignore | 4++++
Aepistemia/files/guix/.config/guix/channels.scm | 2++
Aepistemia/files/ladspa_dsp/.config/ladspa_dsp/config_dt700prox | 3+++
Aepistemia/files/ladspa_dsp/.config/ladspa_dsp/config_he5xx | 3+++
Aepistemia/files/ladspa_dsp/.config/ladspa_dsp/effects_dt700prox | 6++++++
Aepistemia/files/ladspa_dsp/.config/ladspa_dsp/effects_dt700prox_old | 6++++++
Aepistemia/files/ladspa_dsp/.config/ladspa_dsp/effects_he5xx | 10++++++++++
Aepistemia/files/mpv/.config/mpv/input.conf | 4++++
Aepistemia/files/mpv/.config/mpv/mpv.conf | 4++++
Aepistemia/files/profanity/.config/profanity/profrc | 23+++++++++++++++++++++++
Aepistemia/files/profanity/.config/profanity/themes/headache-v2 | 79+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aepistemia/files/profanity/.config/profanity/themes/mono-v2 | 78++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aepistemia/files/qutebrowser/.config/qutebrowser/bookmarks/urls | 2++
Aepistemia/files/qutebrowser/.config/qutebrowser/redirectors.py | 46++++++++++++++++++++++++++++++++++++++++++++++
Aepistemia/files/qutebrowser/.config/qutebrowser/theme.py | 128+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aepistemia/files/yt-dlp/.config/yt-dlp/config | 9+++++++++
25 files changed, 1744 insertions(+), 0 deletions(-)

diff --git a/epistemia/files/alsa/.config/alsa/asoundrc b/epistemia/files/alsa/.config/alsa/asoundrc @@ -0,0 +1,95 @@ +defaults.pcm.card 2 +defaults.ctl.card 2 + +# 1. HEADPHONES DMIX +# Configured for 192kHz, but aligned to 10ms time-slices for Browser compatibility. +pcm.headphones_dmix { + type dmix + ipc_key 77777 # New Key to clear locked state + ipc_perm 0666 + ipc_key_add_uid false + + slave { + pcm "hw:2" + format S32_LE + rate 192000 + channels 2 + + # --- THE MAGIC NUMBERS --- + # Chromium requires 10ms chunks. + # 192000 Hz * 0.010s = 1920 frames. + # We MUST use this exact size so the browser's request matches the hardware buffer. + period_size 1920 + buffer_size 23040 # 12 * 1920 (approx 120ms buffer) + # ------------------------- + } +} + +# 2. MICROPHONE DSNOOP +pcm.microphone_dsnoop { + type dsnoop + ipc_key 88888 + ipc_perm 0666 + ipc_key_add_uid false + + slave { + pcm "hw:1" + rate 48000 + channels 2 + period_size 480 # 10ms at 48kHz (Matches Chromium's clock) + buffer_size 5760 # 12 * 480 + } +} + +# 3. DSP PROCESSING CHAIN +# Forces 48kHz logic for the plugins, then upsamples to the 192kHz/1920-frame backend. +pcm.dsp { + type plug + slave { + format FLOAT + #rate 48000 # Force LADSPA to run at 48kHz (CPU efficient) + channels unchanged + pcm { + type ladspa + path "/home/vin/.local/lib/ladspa" + playback_plugins [{ + label "ladspa_dsp:dt700prox" + }] + slave.pcm { + # Inner plug handles 48k -> 192k upsampling + # 480 frames (48k) -> becomes -> 1920 frames (192k) perfectly. + type plug + slave { + pcm headphones_dmix + } + } + } + } +} + +# 4. NOISE SUPPRESSION +pcm.noise_suppressed { + type plug + slave.pcm { + type ladspa + slave.pcm { + type lfloat + slave { + format "S16_LE" + pcm microphone_dsnoop + } + } + path "/usr/lib64/ladspa" + capture_plugins [{ + label noise_suppressor_mono + input { controls [ 50 200 0 ] } + }] + } +} + +# 5. DEFAULT DEVICE +pcm.!default { + type asym + playback.pcm dsp + capture.pcm microphone_dsnoop +} diff --git a/epistemia/files/alsa/.config/alsa/asoundrc.old_jack b/epistemia/files/alsa/.config/alsa/asoundrc.old_jack @@ -0,0 +1,19 @@ +defaults.pcm.card 1 +defaults.ctl.card 1 + +pcm.rawjack { + type jack + playback_ports { + 0 para_equalizer_x16_stereo:in_l + 1 para_equalizer_x16_stereo:in_r + } + capture_ports { + 0 rnnoise:audio_out_1 + 1 rnnoise:audio_out_2 + } +} + +pcm.!default { + type plug + slave.pcm rawjack +} diff --git a/epistemia/files/alsa/.config/alsa/asoundrc.old_ladspa b/epistemia/files/alsa/.config/alsa/asoundrc.old_ladspa @@ -0,0 +1,85 @@ +defaults.pcm.card 1 +defaults.ctl.card 1 + +pcm.headphones_dmix { + type dmix + ipc_key 1024 + ipc_key_add_uid false + + slave { + pcm "hw:1" + rate 48000 + channels 2 + period_time 0 + period_size 1024 + buffer_size 8192 + } +} + +pcm.microphone_dsnoop { + type dsnoop + ipc_key 2048 + ipc_key_add_uid false + + slave { + pcm "hw:2" + rate 48000 + channels 2 + period_time 0 + period_size 1024 + buffer_size 8192 + } +} + +pcm.dsp { + type plug + slave { + format FLOAT + rate unchanged + channels unchanged + pcm { + type ladspa + path "/home/vin/.local/lib/ladspa" + playback_plugins [{ + label "ladspa_dsp:he5xx" + }] + slave.pcm { + type plug + slave { + pcm headphones_dmix + rate unchanged + channels unchanged + } + } + } + } +} + +pcm.noise_suppressed { + type plug + slave.pcm { + # Add the LADSPA noise filter + type ladspa + slave.pcm { + # Convert from float to int + type lfloat + slave { + format "S16_LE" + pcm microphone_dsnoop + } + } + # LADSPA configuration for the noise filter + # See https://github.com/werman/noise-suppression-for-voice + path "/usr/lib64/ladspa" + capture_plugins [{ + label noise_suppressor_mono + input { controls [ 50 200 0 ] } # VAD Threshold % + }] + } +} + +pcm.!default { + type asym + playback.pcm dsp + capture.pcm noise_suppressed +} diff --git a/epistemia/files/alsa/.config/alsa/asoundrc_steam b/epistemia/files/alsa/.config/alsa/asoundrc_steam @@ -0,0 +1,5 @@ +pcm.!default { + type asym + playback.pcm "dsp" + capture.pcm "noise_suppressed" +} diff --git a/epistemia/files/emacs/.config/emacs/init.el b/epistemia/files/emacs/.config/emacs/init.el @@ -0,0 +1,572 @@ +(when (require 'guix-emacs nil t) + (guix-emacs-autoload-packages)) + +(setq use-package-always-ensure nil) +(setq use-package-always-defer t) +(setq package-enable-at-startup nil) + +;; esup -- profile startup of init.el +(use-package esup + :custom + ;; fixes segfault on recent emacs (like 29+) + (esup-depth 0)) + +;; theme +;;(use-package alect-themes +;; :init +;; (load-theme 'alect-black t)) +(use-package kaolin-themes + :config + (load-theme 'kaolin-valley-light t)) + +;; fonts +(set-face-attribute 'default nil + :family "Comic Code" + :height 150 + :weight 'normal) +(set-face-attribute 'fixed-pitch nil + :family "Comic Code" + :height 150) +(set-face-attribute 'variable-pitch nil + :family "Comic Neue" + :height 180) + +;; modeline +;;(set-face-attribute 'mode-line nil +;; :background "#000000" +;; :foreground "#e5d9c2" +;; :box nil +;; :weight 'normal) + +;;(set-face-attribute 'mode-line-inactive nil +;; :background "#000000" +;; :foreground "#544b44" +;; :box nil +;; :weight 'normal) + +(defun vin/copy-file-contents (filename) + "Copy the entire contents of filename to clipboard." + (interactive "fCopy file to clipboard: ") + (with-temp-buffer + (insert-file-contents filename) + (clipboard-kill-ring-save (point-min) (point-max))) + (message "Copied %s to clipboard" (file-name-nondirectory filename))) + +(use-package emacs + :config + (which-key-mode 1) + (fset 'yes-or-no-p 'y-or-n-p) + + ;; disable chrome + (tool-bar-mode -1) + (menu-bar-mode -1) + (scroll-bar-mode -1) + ;;(set-face-background 'fringe "#000000") + + ;; show column in modeline + (column-number-mode 1) + + ;; I don't like tab bar. I use tab-switcher instead + ;; TODO show workspace information in modeline + (tab-bar-mode -1) + + ;; I don't use a bar so I'd still like to know the time + (display-time-mode 1) + + :custom + (inhibit-startup-screen t) + + ;; default pdf resolution is quite low + (doc-view-resolution 300) + + ;; custom variables should be temporary + (custom-file (make-temp-file "emacs-custom")) + + ;; backup/autosave files + (make-backup-file-name-function 'make-backup-file-name-without-dir) + (backup-directory-alist + `(("." . ,(expand-file-name "~/.config/emacs/backup-files")))) + (auto-save-list-file-prefix + (expand-file-name "~/.config/emacs/auto-save-list/.saves-")) + (auto-save-file-name-transforms + `((".*" ,(expand-file-name "~/.config/emacs/auto-save-list/") t))) + + ;; minibuffer stuff + (enable-recursive-minibuffers t) + ;; Hide commands in M-x which do not work in the current mode. Vertico + ;; commands are hidden in normal buffers. This setting is useful beyond + ;; Vertico. + (read-extended-command-predicate #'command-completion-default-include-p) + ;; Do not allow the cursor in the minibuffer prompt + (minibuffer-prompt-properties + '(read-only t cursor-intangible t face minibuffer-prompt)) + + ;; fix rendering of double-quotes in woman + (woman-special-characters + (append woman-special-characters + '(("dq" "\"" "\"")))) + + ;;:hook + ;;(c-mode . (lambda () (font-lock-mode 1))) + ) + +;; eshell config +(use-package eshell + :custom + (eshell-history-size 1000000)) + +(defun vin/dired-copy-marked-files-contents () + "Copy contents of marked files in dired to clipboard, each wrapped in +<filename> tags. File paths are relative to `default-directory'." + (interactive) + (let ((files (dired-get-marked-files)) + (output "") + (base-dir default-directory)) + (unless files + (user-error "No files marked")) + (dolist (file files) + (when (file-regular-p file) + (let ((relative-name (file-relative-name file base-dir))) + (setq output + (concat output + (format "<%s>\n" relative-name) + (with-temp-buffer + (insert-file-contents file) + (buffer-string)) + (format "</%s>\n\n" relative-name)))))) + (kill-new output) + (gui-select-text output) + (message "Copied %d file(s) to clipboard" (length files)))) + +(use-package dired + :custom + (dired-listing-switches "-alh") + :bind + (:map dired-mode-map + ("C-c w" . #'vin/dired-copy-marked-files-contents))) + +;; savehist -- persist history +(use-package savehist + :init + (savehist-mode)) + +;;;;;;;;;;;;;;;;;;;; +;; VANILLA+ EMACS ;; +;;;;;;;;;;;;;;;;;;;; + +;; orderless -- fuzzy matching +(use-package orderless + :custom + (completion-styles '(orderless basic)) + (completion-category-overrides '((file (styles basic partial-completion))))) + +;; vertico -- vertical interactive completion +(use-package vertico + :custom + ;;(vertico-scroll-margin 5) ;; Different scroll margin + ;;(vertico-count 20) ;; Show more candidates + ;;(vertico-resize t) ;; Grow and shrink the Vertico minibuffer + (vertico-cycle t) ;; Enable cycling for `vertico-next/previous' + :init + (vertico-mode)) + +;; rainbow-delimeters -- makes it easy to identify scopes(?) at a glance +(use-package rainbow-delimiters + :hook + (prog-mode . rainbow-delimiters-mode)) + +;; marginalia -- adds short descriptions (marginalia) in the minibuffer +(use-package marginalia + :bind (:map minibuffer-local-map + ("M-A" . marginalia-cycle)) + :init + (marginalia-mode)) + +;; consult -- like an autocomplete +(use-package consult + ;; Replace bindings. Lazily loaded by `use-package'. + :bind (;; C-c bindings in `mode-specific-map' + ("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 bindings in `ctl-x-map' + ("C-x M-:" . consult-complex-command) ;; orig. repeat-complex-command + ("C-x b" . consult-buffer) ;; orig. switch-to-buffer + ("C-x 4 b" . consult-buffer-other-window) ;; orig. switch-to-buffer-other-window + ("C-x 5 b" . consult-buffer-other-frame) ;; orig. switch-to-buffer-other-frame + ("C-x t b" . consult-buffer-other-tab) ;; orig. switch-to-buffer-other-tab + ("C-x r b" . consult-bookmark) ;; orig. bookmark-jump + ("C-x p b" . consult-project-buffer) ;; orig. project-switch-to-buffer + ;; Custom M-# bindings for fast register access + ("M-#" . consult-register-load) + ("M-'" . consult-register-store) ;; orig. abbrev-prefix-mark (unrelated) + ("C-M-#" . consult-register) + ;; Other custom bindings + ("M-y" . consult-yank-pop) ;; orig. yank-pop + ;; M-g bindings in `goto-map' + ("M-g e" . consult-compile-error) + ("M-g f" . consult-flymake) ;; Alternative: consult-flycheck + ("M-g g" . consult-goto-line) ;; orig. goto-line + ("M-g M-g" . consult-goto-line) ;; orig. goto-line + ("M-g o" . consult-outline) ;; Alternative: consult-org-heading + ("M-g m" . consult-mark) + ("M-g k" . consult-global-mark) + ("M-g i" . consult-imenu) + ("M-g I" . consult-imenu-multi) + ;; M-s bindings in `search-map' + ("M-s d" . consult-find) ;; Alternative: 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) + ;; Isearch integration + ("M-s e" . consult-isearch-history) + :map isearch-mode-map + ("M-e" . consult-isearch-history) ;; orig. isearch-edit-string + ("M-s e" . consult-isearch-history) ;; orig. isearch-edit-string + ("M-s l" . consult-line) ;; needed by consult-line to detect isearch + ("M-s L" . consult-line-multi) ;; needed by consult-line to detect isearch + ;; Minibuffer history + :map minibuffer-local-map + ("M-s" . consult-history) ;; orig. next-matching-history-element + ("M-r" . consult-history)) ;; orig. previous-matching-history-element + + ;; Enable automatic preview at point in the *Completions* buffer. This is + ;; relevant when you use the default completion UI. + :hook (completion-list-mode . consult-preview-at-point-mode) + + ;; The :init configuration is always executed (Not lazy) + :init + + ;; Tweak the register preview for `consult-register-load', + ;; `consult-register-store' and the built-in commands. This improves the + ;; register formatting, adds thin separator lines, register sorting and hides + ;; the window mode line. + (advice-add #'register-preview :override #'consult-register-window) + (setq register-preview-delay 0.5) + + ;; Use Consult to select xref locations with preview + (setq xref-show-xrefs-function #'consult-xref + xref-show-definitions-function #'consult-xref) + + ;; Configure other variables and modes in the :config section, + ;; after lazily loading the package. + :config + + ;; Optionally configure preview. The default value + ;; is 'any, such that any key triggers the preview. + ;; (setq consult-preview-key 'any) + ;; (setq consult-preview-key "M-.") + ;; (setq consult-preview-key '("S-<down>" "S-<up>")) + ;; For some commands and buffer sources it is useful to configure the + ;; :preview-key on a per-command basis using the `consult-customize' macro. + (consult-customize + consult-theme :preview-key '(:debounce 0.2 any) + consult-ripgrep consult-git-grep consult-grep consult-man + 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 "M-." + :preview-key '(:debounce 0.4 any)) + + ;; Optionally configure the narrowing key. + ;; Both < and C-+ work reasonably well. + (setq consult-narrow-key "<") ;; "C-+" + + ;; Optionally make narrowing help available in the minibuffer. + ;; You may want to use `embark-prefix-help-command' or which-key instead. + ;; (keymap-set consult-narrow-map (concat consult-narrow-key " ?") #'consult-narrow-help) + ) + +;; undo-tree-mode -- saves pressing C-x u a lot +(use-package undo-tree + +;; eat -- emulate a terminal. fast terminal emulator. +(use-package eat + :config + (eat-eshell-mode) + (eat-eshell-visual-command-mode)) + +;;;;;;;;;;;;;;;;;;;;;;; +;; OTHER INTEGRATION ;; +;;;;;;;;;;;;;;;;;;;;;;; + +;; included transient is too old for magit and gptel? +(use-package transient + :ensure (:host github :repo "magit/transient" :tag "v0.10.0")) + +;; magit -- very good git +(use-package magit + :after transient) + +;; hl-todo -- highlights TODO/BUG/FIXME/etc. keywords +(use-package hl-todo + :hook + (prog-mode . hl-todo-mode)) + +;; magit-todo -- shows TODO-like keywords (from hl-todo) in magit menu +(use-package magit-todos + :after magit + :config (magit-todos-mode 1)) + +;; AUCTeX -- better LaTeX +(use-package auctex + :mode ("\\.tex\\'" . LaTeX-mode) + :custom + (TeX-auto-save t) + (TeX-parse-self t)) + +;; pdf-tools -- better docview for pdf viewing +(use-package pdf-tools + :init + (pdf-tools-install) + :custom + (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) + (pdf-view-use-scaling t) + (pdf-view-resize-factor 1.05) + :hook + (TeX-after-compilation-finished-functions TeX-revert-document-buffer)) + +;; use clang-format for c/c++ modes +;; TODO fix clang-format+ (or replace with simpler package) +;; that runs clang-format with current format or fallback LLVM on save + ;(use-package clang-format+ + ; :custom + ; (clang-format-fallback-style "LLVM") + ; :hook + ; (c-mode-common #'clang-format+-mode)) + +;; TODO Geiser -- "The Perfect Setup" for Guile/Guix +(use-package geiser) +(use-package geiser-guile) + +;; TODO: skeletor.el remake my templates? at least for org-mode +(use-package skeletor + +;; empv - mpv (and youtube) frontend +(use-package empv + :custom + (empv-audio-dir "/data_hdd/music") + (empv-video-dir "/data_hdd/vids") + (empv-ytdl-binary "/data/src/clones/tools/yt-dlp/venv/bin/yt-dlp") + (empv-invidious-instance "https://yewtu.be") + (empv-mpv-args '("--no-video" "--no-terminal" "--idle" "--input-ipc-server=/tmp/empv-socket" "--save-position-on-quit")) + :bind (("C-x m" . empv-map))) + +;; age.el -- transparent age encryption/decryption +(use-package age + :config + (age-file-enable) + :custom + (age-default-identity "~/.ssh/id_ed25519") + (age-default-recipient "~/.ssh/id_ed25519.pub")) + +;;;;;;;;;;;;;; +;; ORG-MODE ;; +;;;;;;;;;;;;;; +(use-package org + :config + (org-babel-do-load-languages + 'org-babel-load-languages + '((emacs-lisp . t) + (latex . t))) + :custom + (org-return-follows-link t) + (org-directory "/data/docs/org") + (org-default-notes-file (concat org-directory "/notes.org")) + (org-capture-templates + `(("t" "Todo" entry (file+headline ,(concat org-directory "/todo.org") "Tasks") + "* TODO %?\n %i\n %a") + ("j" "Journal" entry (file+olp+datetree ,(concat org-directory "/journal.org")) + "* %?\nEntered on %U\n %i\n %a"))) + (org-agenda-files (directory-files-recursively org-directory "\\.org$")) + :bind (("C-c c" . org-capture) + ("C-c a" . org-agenda)) + :hook + (org-mode . variable-pitch-mode)) + +;; org-mem -- database to speed up loading lots of files +(use-package org-mem + :defer + :config + (org-mem-updater-mode) + :custom + (org-mem-do-sync-with-org-id t) + (org-mem-watch-dirs (list org-directory))) + +;; org-roam -- zettelkatsen notes +(use-package org-node + :config + (org-node-cache-mode) + (org-node-roam-accelerator-mode) + :custom + (org-node-directory (file-truename (concat org-directory "/roam/"))) + :bind (("C-c n f" . org-node-find) + ("C-c n g" . org-node-grep) + ("C-c n i" . org-node-insert-link) + ("C-c n c" . org-node-capture))) + +;; org-present -- fancier presentations so I don't have to do beamer +(use-package org-present + :hook + (org-present-mode . (lambda () + (org-present-big) + (org-display-inline-images) + (org-present-read-only))) + (org-present-mode-quit . (lambda () + (org-present-small) + (org-remove-inline-images) + (org-present-read-write)))) + +;;;;;;;;;;; +;; EMAIL ;; +;;;;;;;;;;; +(defun vin/notmuch-poll-async () + "Asynchronously sync mail via mbsync, then run notmuch new." + (interactive) + (message "Starting mail sync...") + (let ((proc (start-process "mbsync" nil "mbsync" "-a"))) + (set-process-sentinel + proc + (lambda (process event) + (when (string-match-p "\\(finished\\|exited\\)" event) + (if (= 0 (process-exit-status process)) + (progn + (message "mbsync complete, indexing new mail...") + (notmuch-start-notmuch + "notmuch-new" + nil + (lambda (proc event) + (when (string-match-p "\\(finished\\|exited\\)" event) + (message "Mail sync complete") + (notmuch-refresh-all-buffers))) + "new")) + (message "mbsync failed with exit code %d" + (process-exit-status process)))))))) + +(use-package notmuch + :bind + (:map notmuch-common-keymap + ("G" . 'vin/notmuch-poll-async)) + :config + (run-at-time "5 min" (* 5 60) #'vin/notmuch-poll-async) + :custom + (notmuch-show-logo nil) + (notmuch-tree-outline-enabled t) + (notmuch-multipart/alternative-discouraged (list "text/html" "multipart/related"))) + +;; TODO needs NOTMUCH_PROFILE set or update package to git +;; (use-package notmuch-indicator +;; :custom +;; (notmuch-indicator-args +;; '((:terms "tag:unread" :label "[U] ")))) + +;;;;;;;;;; +;; EXWM ;; +;;;;;;;;;; +(defun exwm-program-launcher () + "Launch program with completion from PATH executables." + (interactive) + (let* ((path-dirs (parse-colon-path (getenv "PATH"))) + (executables (delete-dups + (mapcan (lambda (dir) + (when (file-directory-p dir) + (directory-files dir nil "^[^.]"))) + path-dirs))) + (cmd (completing-read "Run: " executables nil nil))) + (start-process-shell-command cmd nil cmd))) + +(use-package exwm + :custom + (exwm-input-global-keys + `(([?\s-r] . exwm-reset) ;; s-r: Reset (to line-mode). + ([?\s-p] . exwm-program-launcher))) ;; s-p: Launch programs. + :bind + (:map exwm-mode-map + ("C-q" . exwm-input-send-next-key)) + :hook + (exwm-update-class . (lambda () + (unless (string-prefix-p "sun-awt-X11-" exwm-instance-name) + (exwm-workspace-rename-buffer exwm-class-name)))) + (exwm-update-title . (lambda () + (when (or (not exwm-instance-name) + (string-prefix-p "sun-awt-X11-" exwm-instance-name)) + (exwm-workspace-rename-buffer exwm-title))))) + +;;;;;;;;; +;; LLM ;; +;;;;;;;;; +; TODO actually configure this to use llama-swap and openrouter +(use-package gptel + :after transient) + +;;;;;;;;; +;; RSS ;; +;;;;;;;;; +(use-package elfeed + :config + (run-at-time "30 min" (* 30 60) #'elfeed-update) + :custom + (elfeed-feeds + '(("https://myanimelist.net/rss/news.xml" anime) + ("https://www.animenewsnetwork.com/all/rss.xml?ann-edition=us" anime) + ("http://blog.z3bra.org/rss/feed.xml" blog) + ("https://log.pyratebeard.net/rss.xml" blog) + ("https://tilde.news/rss" blog) + ("http://ithare.com/rssfeed/" blog) + ("https://kaashif.co.uk/feeds/all.atom.xml" blog) + ("https://briancallahan.net/blog/feed.xml" blog) + ("https://digdeeper.club/atom.xml" blog) + ("https://ferd.ca/feed.rss" blog) + ("https://retro64xyz.gitlab.io/feed.xml" blog) + ("https://unixsheikh.com/feed.rss" blog) + ("https://venam.nixers.net/blog/feed.xml" blog) + ("https://www.dragonflydigest.com/feed" blog) + ("https://0x19.org/posts/feed.php" blog) + ("https://chimaera.w0.am/feed.xml" blog) + ("https://dolphin-emu.org/blog/feeds/" games) + ("https://factorio.com/blog/rss" games) + ("https://feeds.arstechnica.com/arstechnica/index" tech) + ("https://rss.slashdot.org/Slashdot/slashdot" tech) + ("https://lwn.net/headlines/rss" tech) + ("https://lwn.net/headlines/weekly_big" tech) + ("https://reclaimthenet.org/feed/" tech) + ("https://torrentfreak.com/feed/" tech) + ("https://undeadly.org/cgi?action=rss" tech) + ("https://www.linux-magazine.com/rss/feed/news" tech) + ("https://sachachua.com/blog/category/emacs-news/feed/" tech) + ("https://www.youtube.com/feeds/videos.xml?channel_id=UCGSGPehp0RWfca-kENgBJ9Q" videos) + ("https://www.youtube.com/feeds/videos.xml?channel_id=UCFKDEp9si4RmHFWJW1vYsMA" videos) + ("https://www.youtube.com/feeds/videos.xml?channel_id=UCpWEeICUoxrhkjTID4j7-tw" videos) + ("https://www.youtube.com/feeds/videos.xml?channel_id=UCzLjjRlkOosxt0eQamPyhlA" videos) + ("https://www.youtube.com/feeds/videos.xml?channel_id=UCqy4D63mQwWmQM5g1vY-kbg" videos) + ("https://www.youtube.com/feeds/videos.xml?channel_id=UCD6qbtNwSYjfPI_UJOOcVbg" videos) + ("https://videos.lukesmith.xyz/feeds/videos.xml?videoChannelId=2" videos) + ("https://www.youtube.com/feeds/videos.xml?channel_id=UCy7FdWkDces3W5Yb6AQtfTQ" videos) + ("https://www.youtube.com/feeds/videos.xml?channel_id=UC4NNPgQ9sOkBjw6GlkgCylg" videos) + ("https://yogurtmedia.net/feed/" webcomic) + ("https://eatapplepies.com/feed/" books)))) + +;; (use-package elfeed-custom-feeds +;; :ensure (:host "git.vineetk.net" :repo "vin/elfeed-custom-feeds.el") +;; :config +;; (run-at-time "30 min" (* 30 60) #'elfeed-custom-feeds-update-all) +;; :custom +;; (elfeed-custom-github-pr-queries +;; '(("ggml-org/llama.cpp" "rocm OR hip -label:devops -label:\"Apple Metal\" label:\"Nvidia GPU\"" "ROCm/HIP") +;; ("ggml-org/llama.cpp" "label:Vulkan" "Vulkan") +;; ("ggml-org/llama.cpp" "gfx1100 label:\"Nvidia GPU\"" "gfx1100") +;; ("ggml-org/llama.cpp" "gfx906 label:\"Nvidia GPU\"" "gfx906") +;; ("ggml-org/llama.cpp" "mi50 label:\"Nvidia GPU\"" "mi50"))) +;; (elfeed-custom-huggingface-orgs +;; '("deepseek-ai" "google" "mistralai" "Qwen" "unsloth" +;; "BAAI" "allenai" "ibm-granite" "nvidia" "sentence-transformers" "ZhipuAI" "moonshotai"))) diff --git a/epistemia/files/emacs/.config/emacs/themes/doom-lantern-theme.el b/epistemia/files/emacs/.config/emacs/themes/doom-lantern-theme.el @@ -0,0 +1,190 @@ +;;; doom-lantern-theme.el --- based on Gitleptune's Lantern theme -*- lexical-binding: t; no-byte-compile: t; -*- +;; +;; Added: February 22, 2022 (#708) +;; Author: paladhammika <https://github.com/paladhammika> +;; Maintainer: +;; Source: https://github.com/Gitleptune/lantern-theme +;; +;;; Commentary: +;;; Code: + +(require 'doom-themes) + + +;; +;;; Variables + +(defgroup doom-lantern-theme nil + "Options for the `doom-lantern' theme." + :group 'doom-themes) + +(defcustom doom-lantern-brighter-modeline nil + "If non-nil, more vivid colors will be used to style the mode-line." + :group 'doom-lantern-theme + :type 'boolean) + +(defcustom doom-lantern-brighter-comments nil + "If non-nil, comments will be highlighted in more vivid colors." + :group 'doom-lantern-theme + :type 'boolean) + +(defcustom doom-lantern-padded-modeline doom-themes-padded-modeline + "If non-nil, adds a 4px padding to the mode-line. +Can be an integer to determine the exact padding." + :group 'doom-lantern-theme + :type '(choice integer boolean)) + + +;; +;;; Theme definition + +(def-doom-theme doom-lantern + "A brown and ochre theme based of https://github.com/Gitleptune/lantern-theme" + + ;; name default 256 16 + ((bg '("#261b17" "black" "black" )) + (fg '("#e4cbb3" "#bfbfbf" "brightwhite" )) + + (bg-alt '("#291812" "black" "black" )) + (fg-alt '("#5B6268" "#2d2d2d" "white" )) + + (base0 '("#1b110e" "#1b110e" "black" )) + (base1 '("#1E1310" "#1e1e1e" "brightblack" )) + (base2 '("#2D1F1A" "#2D1F1A" "brightblack" )) + (base3 '("#2D1E19" "#231713" "brightblack" )) + (base4 '("#3F2F2A" "#3F2F2A" "brightblack" )) + (base5 '("#554541" "#554541" "brightblack" )) + (base6 '("#694949" "#694949" "brightblack" )) + (base7 '("#987070" "#987070" "brightblack" )) + (base8 '("#C18E76" "#C18E76" "white" )) + + (grey base4) + (brown "#532f28") + (dark-brown "#291812") + (ochre "#aa6a1f") + (red '("#cc241d" "#e04220" "red" )) + (orange '("#e35b15" "#dd8844" "brightred" )) + (green '("#98971a" "#b8bb26" "green" )) + (teal '("#4db5bd" "#44b9b1" "brightgreen" )) + (yellow '("#d79921" "#d79921" "yellow" )) + (blue '("#66a4a4" "#66a4a4" "brightblue" )) + (dark-blue '("#4395a3" "#2257A0" "blue" )) + (magenta '("#d3869b" "#d3869b" "brightmagenta")) + (violet '("#805b87" "#805b87" "magenta" )) + (cyan '("#46D9FF" "#46D9FF" "brightcyan" )) + (dark-cyan '("#5699AF" "#5699AF" "cyan" )) + + (highlight ochre) + (vertical-bar (doom-darken base1 0.1)) + (selection dark-brown) + (builtin orange) + (comments (if doom-lantern-brighter-comments dark-cyan base8)) + (doc-comments (doom-lighten (if doom-lantern-brighter-comments dark-cyan base5) 0.25)) + (constants violet) + (functions orange) + (keywords blue) + (methods cyan) + (operators blue) + (type yellow) + (strings green) + (variables (doom-lighten magenta 0.4)) + (numbers yellow) + (region brown) + (error red) + (warning yellow) + (success green) + (vc-modified orange) + (vc-added green) + (vc-deleted red) + + (modeline-fg fg) + (modeline-fg-alt base5) + (modeline-bg (if doom-lantern-brighter-modeline + (doom-darken blue 0.45) + (doom-darken bg-alt 0.1))) + (modeline-bg-alt (if doom-lantern-brighter-modeline + (doom-darken blue 0.475) + `(,(doom-darken (car bg-alt) 0.15) ,@(cdr bg)))) + (modeline-bg-inactive `(,(car bg-alt) ,@(cdr base1))) + (modeline-bg-inactive-alt `(,(doom-darken (car bg-alt) 0.1) ,@(cdr bg))) + + (-modeline-pad + (when doom-lantern-padded-modeline + (if (integerp doom-lantern-padded-modeline) doom-lantern-padded-modeline 4)))) + + ;;;; Base theme face overrides + (((line-number &override) :foreground base4) + ((line-number-current-line &override) :foreground fg) + ((font-lock-comment-face &override) + :background (if doom-lantern-brighter-comments (doom-lighten bg 0.05) 'unspecified)) + ;; (hl-line :background brown) + (mode-line + :background modeline-bg :foreground modeline-fg + :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg))) + (mode-line-inactive + :background modeline-bg-inactive :foreground modeline-fg-alt + :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-inactive))) + (mode-line-emphasis :foreground (if doom-lantern-brighter-modeline base8 highlight)) + + ;;;; css-mode <built-in> / scss-mode + (css-proprietary-property :foreground orange) + (css-property :foreground green) + (css-selector :foreground blue) + + ;;;; doom-modeline + (doom-modeline-bar :background (if doom-lantern-brighter-modeline modeline-bg highlight)) + (doom-modeline-buffer-file :inherit 'mode-line-buffer-id :weight 'bold) + (doom-modeline-buffer-path :inherit 'mode-line-emphasis :weight 'bold) + (doom-modeline-buffer-project-root :foreground green :weight 'bold) + ;;;; elscreen + (elscreen-tab-other-screen-face :background "#261b17" :foreground "#1b110e") + + ;;;; ivy + (ivy-current-match :background ochre :distant-foreground brown :weight 'bold) + (ivy-cursor :foreground bg-alt + :background fg) + (ivy-minibuffer-match-highlight :foreground yellow :weight 'bold) + (ivy-highlight-face :foreground yellow :weight 'bold) + + ;;;; orderless + (orderless-match-face-0 :weight 'bold :foreground (doom-blend ochre fg 0.8) :background (doom-blend ochre bg 0.1)) + (orderless-match-face-1 :weight 'bold :foreground (doom-blend red fg 0.6) :background (doom-blend red bg 0.1)) + (orderless-match-face-2 :weight 'bold :foreground (doom-blend green fg 0.6) :background (doom-blend green bg 0.1)) + (orderless-match-face-3 :weight 'bold :foreground (doom-blend cyan fg 0.6) :background (doom-blend cyan bg 0.1)) + + ;;;; LaTeX-mode + (font-latex-math-face :foreground green) + + ;;;; markdown-mode + (markdown-markup-face :foreground base5) + (markdown-header-face :inherit 'bold :foreground red) + ((markdown-code-face &override) :background (doom-lighten base3 0.05)) + + ;;;; rjsx-mode + (rjsx-tag :foreground red) + (rjsx-attr :foreground orange) + + ;;;; ediff <built-in> + (ediff-current-diff-A :foreground red :weight 'bold :background (doom-lighten red 0.4)) + (ediff-current-diff-B :foreground green :weight 'bold :background (doom-lighten green 0.4)) + (ediff-current-diff-C :foreground blue :weight 'bold :background (doom-lighten blue 0.4)) + + ;;;; org <built-in> + (org-level-1 :bold t :foreground ochre :weight 'bold) + (org-level-2 :foreground yellow) + (org-level-3 :foreground orange) + + ;;;; solaire-mode + (solaire-hl-line-face :background brown) + (solaire-mode-line-face + :inherit 'mode-line + :background modeline-bg-alt + :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-alt))) + (solaire-mode-line-inactive-face + :inherit 'mode-line-inactive + :background modeline-bg-inactive-alt + :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-inactive-alt)))) + ;;;; Base theme variable overrides- + ()) + +;;; doom-lantern-theme.el ends here diff --git a/epistemia/files/emacs/.config/emacs/themes/simple-dark-theme.el b/epistemia/files/emacs/.config/emacs/themes/simple-dark-theme.el @@ -0,0 +1,284 @@ +;;; simple-dark-theme.el --- Theme + +;; Copyright (C) 2022 , tek256 + +;; Author: tek256 +;; Version: 0.1 +;; Package-Requires: ((emacs "24")) +;; Created with ThemeCreator, https://github.com/mswift42/themecreator. + + +;; 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 <http://www.gnu.org/licenses/>. + +;; This file is not part of Emacs. + +;;; Commentary: + +;;; Code: + + (deftheme simple-dark) + (let ((class '((class color) (min-colors 89))) + (fg1 "#bcbcbc") + (fg2 "#adadad") + (fg3 "#9e9e9e") + (fg4 "#8f8f8f") + (bg1 "#0a0a0a") + (bg2 "#1e1e1e") + (bg3 "#313131") + (bg4 "#454545") + (builtin "#eeeeee") + (keyword "#eeeeee") + (const "#d0d0d0") + (comment "#585858") + (func "#d4d4d4") + (str "#8a8a8a") + (type "#d4d4d4") + (var "#d4d4d4") + (warning "#eeeeee") + (warning2 "#d8d8d8")) + (custom-theme-set-faces + 'simple-dark + `(default ((,class (:background ,bg1 :foreground ,fg1)))) + `(font-lock-builtin-face ((,class (:foreground ,builtin)))) + `(font-lock-comment-face ((,class (:foreground ,comment)))) + `(font-lock-negation-char-face ((,class (:foreground ,const)))) + `(font-lock-reference-face ((,class (:foreground ,const)))) + `(font-lock-constant-face ((,class (:foreground ,const)))) + `(font-lock-doc-face ((,class (:foreground ,comment)))) + `(font-lock-function-name-face ((,class (:foreground ,func )))) + `(font-lock-keyword-face ((,class (:bold ,class :foreground ,keyword)))) + `(font-lock-string-face ((,class (:foreground ,str)))) + `(font-lock-type-face ((,class (:foreground ,type )))) + `(font-lock-variable-name-face ((,class (:foreground ,var)))) + `(font-lock-warning-face ((,class (:foreground ,warning :background ,bg2)))) + `(term-color-black ((,class (:foreground ,fg2 :background nil)))) + `(region ((,class (:background ,fg1 :foreground ,bg1)))) + `(highlight ((,class (:foreground ,fg3 :background ,bg3)))) + `(hl-line ((,class (:background ,bg2)))) + `(fringe ((,class (:background ,bg2 :foreground ,fg4)))) + `(cursor ((,class (:background ,bg3)))) + `(isearch ((,class (:bold t :foreground ,warning :background ,bg3)))) + `(mode-line ((,class (:box (:line-width 1 :color nil) :bold t :foreground ,fg4 :background ,bg2)))) + `(mode-line-inactive ((,class (:box (:line-width 1 :color nil :style pressed-button) :foreground ,var :background ,bg1 :weight normal)))) + `(mode-line-buffer-id ((,class (:bold t :foreground ,func :background nil)))) + `(mode-line-highlight ((,class (:foreground ,keyword :box nil :weight bold)))) + `(mode-line-emphasis ((,class (:foreground ,fg1)))) + `(vertical-border ((,class (:foreground ,fg3)))) + `(minibuffer-prompt ((,class (:bold t :foreground ,keyword)))) + `(default-italic ((,class (:italic t)))) + `(link ((,class (:foreground ,const :underline t)))) + `(org-code ((,class (:foreground ,fg2)))) + `(org-hide ((,class (:foreground ,fg4)))) + `(org-level-1 ((,class (:bold t :foreground ,fg2 :height 1.1)))) + `(org-level-2 ((,class (:bold nil :foreground ,fg3)))) + `(org-level-3 ((,class (:bold t :foreground ,fg4)))) + `(org-level-4 ((,class (:bold nil :foreground ,bg4)))) + `(org-date ((,class (:underline t :foreground ,var) ))) + `(org-footnote ((,class (:underline t :foreground ,fg4)))) + `(org-link ((,class (:underline t :foreground ,type )))) + `(org-special-keyword ((,class (:foreground ,func)))) + `(org-block ((,class (:foreground ,fg3)))) + `(org-quote ((,class (:inherit org-block :slant italic)))) + `(org-verse ((,class (:inherit org-block :slant italic)))) + `(org-todo ((,class (:box (:line-width 1 :color ,fg3) :foreground ,keyword :bold t)))) + `(org-done ((,class (:box (:line-width 1 :color ,bg3) :bold t :foreground ,bg4)))) + `(org-warning ((,class (:underline t :foreground ,warning)))) + `(org-agenda-structure ((,class (:weight bold :foreground ,fg3 :box (:color ,fg4) :background ,bg3)))) + `(org-agenda-date ((,class (:foreground ,var :height 1.1 )))) + `(org-agenda-date-weekend ((,class (:weight normal :foreground ,fg4)))) + `(org-agenda-date-today ((,class (:weight bold :foreground ,keyword :height 1.4)))) + `(org-agenda-done ((,class (:foreground ,bg4)))) + `(org-scheduled ((,class (:foreground ,type)))) + `(org-scheduled-today ((,class (:foreground ,func :weight bold :height 1.2)))) + `(org-ellipsis ((,class (:foreground ,builtin)))) + `(org-verbatim ((,class (:foreground ,fg4)))) + `(org-document-info-keyword ((,class (:foreground ,func)))) + `(font-latex-bold-face ((,class (:foreground ,type)))) + `(font-latex-italic-face ((,class (:foreground ,var :italic t)))) + `(font-latex-string-face ((,class (:foreground ,str)))) + `(font-latex-match-reference-keywords ((,class (:foreground ,const)))) + `(font-latex-match-variable-keywords ((,class (:foreground ,var)))) + `(ido-only-match ((,class (:foreground ,warning)))) + `(org-sexp-date ((,class (:foreground ,fg4)))) + `(ido-first-match ((,class (:foreground ,keyword :bold t)))) + `(ivy-current-match ((,class (:foreground ,fg3 :inherit highlight :underline t)))) + `(gnus-header-content ((,class (:foreground ,keyword)))) + `(gnus-header-from ((,class (:foreground ,var)))) + `(gnus-header-name ((,class (:foreground ,type)))) + `(gnus-header-subject ((,class (:foreground ,func :bold t)))) + `(mu4e-view-url-number-face ((,class (:foreground ,type)))) + `(mu4e-cited-1-face ((,class (:foreground ,fg2)))) + `(mu4e-cited-7-face ((,class (:foreground ,fg3)))) + `(mu4e-header-marks-face ((,class (:foreground ,type)))) + `(ffap ((,class (:foreground ,fg4)))) + `(js2-private-function-call ((,class (:foreground ,const)))) + `(js2-jsdoc-html-tag-delimiter ((,class (:foreground ,str)))) + `(js2-jsdoc-html-tag-name ((,class (:foreground ,var)))) + `(js2-external-variable ((,class (:foreground ,type )))) + `(js2-function-param ((,class (:foreground ,const)))) + `(js2-jsdoc-value ((,class (:foreground ,str)))) + `(js2-private-member ((,class (:foreground ,fg3)))) + `(js3-warning-face ((,class (:underline ,keyword)))) + `(js3-error-face ((,class (:underline ,warning)))) + `(js3-external-variable-face ((,class (:foreground ,var)))) + `(js3-function-param-face ((,class (:foreground ,fg2)))) + `(js3-jsdoc-tag-face ((,class (:foreground ,keyword)))) + `(js3-instance-member-face ((,class (:foreground ,const)))) + `(warning ((,class (:foreground ,warning)))) + `(ac-completion-face ((,class (:underline t :foreground ,keyword)))) + `(info-quoted-name ((,class (:foreground ,builtin)))) + `(info-string ((,class (:foreground ,str)))) + `(icompletep-determined ((,class :foreground ,builtin))) + `(undo-tree-visualizer-current-face ((,class :foreground ,builtin))) + `(undo-tree-visualizer-default-face ((,class :foreground ,fg2))) + `(undo-tree-visualizer-unmodified-face ((,class :foreground ,var))) + `(undo-tree-visualizer-register-face ((,class :foreground ,type))) + `(slime-repl-inputed-output-face ((,class (:foreground ,type)))) + `(trailing-whitespace ((,class :foreground nil :background ,warning))) + `(rainbow-delimiters-depth-1-face ((,class :foreground ,fg1))) + `(rainbow-delimiters-depth-2-face ((,class :foreground ,type))) + `(rainbow-delimiters-depth-3-face ((,class :foreground ,var))) + `(rainbow-delimiters-depth-4-face ((,class :foreground ,const))) + `(rainbow-delimiters-depth-5-face ((,class :foreground ,keyword))) + `(rainbow-delimiters-depth-6-face ((,class :foreground ,fg1))) + `(rainbow-delimiters-depth-7-face ((,class :foreground ,type))) + `(rainbow-delimiters-depth-8-face ((,class :foreground ,var))) + `(magit-item-highlight ((,class :background ,bg3))) + `(magit-section-heading ((,class (:foreground ,keyword :weight bold)))) + `(magit-hunk-heading ((,class (:background ,bg3)))) + `(magit-section-highlight ((,class (:background ,bg2)))) + `(magit-hunk-heading-highlight ((,class (:background ,bg3)))) + `(magit-diff-context-highlight ((,class (:background ,bg3 :foreground ,fg3)))) + `(magit-diffstat-added ((,class (:foreground ,type)))) + `(magit-diffstat-removed ((,class (:foreground ,var)))) + `(magit-process-ok ((,class (:foreground ,func :weight bold)))) + `(magit-process-ng ((,class (:foreground ,warning :weight bold)))) + `(magit-branch ((,class (:foreground ,const :weight bold)))) + `(magit-log-author ((,class (:foreground ,fg3)))) + `(magit-hash ((,class (:foreground ,fg2)))) + `(magit-diff-file-header ((,class (:foreground ,fg2 :background ,bg3)))) + `(lazy-highlight ((,class (:foreground ,fg2 :background ,bg3)))) + `(term ((,class (:foreground ,fg1 :background ,bg1)))) + `(term-color-black ((,class (:foreground ,bg3 :background ,bg3)))) + `(term-color-blue ((,class (:foreground ,func :background ,func)))) + `(term-color-red ((,class (:foreground ,keyword :background ,bg3)))) + `(term-color-green ((,class (:foreground ,type :background ,bg3)))) + `(term-color-yellow ((,class (:foreground ,var :background ,var)))) + `(term-color-magenta ((,class (:foreground ,builtin :background ,builtin)))) + `(term-color-cyan ((,class (:foreground ,str :background ,str)))) + `(term-color-white ((,class (:foreground ,fg2 :background ,fg2)))) + `(rainbow-delimiters-unmatched-face ((,class :foreground ,warning))) + `(helm-header ((,class (:foreground ,fg2 :background ,bg1 :underline nil :box nil)))) + `(helm-source-header ((,class (:foreground ,keyword :background ,bg1 :underline nil :weight bold)))) + `(helm-selection ((,class (:background ,bg2 :underline nil)))) + `(helm-selection-line ((,class (:background ,bg2)))) + `(helm-visible-mark ((,class (:foreground ,bg1 :background ,bg3)))) + `(helm-candidate-number ((,class (:foreground ,bg1 :background ,fg1)))) + `(helm-separator ((,class (:foreground ,type :background ,bg1)))) + `(helm-time-zone-current ((,class (:foreground ,builtin :background ,bg1)))) + `(helm-time-zone-home ((,class (:foreground ,type :background ,bg1)))) + `(helm-buffer-not-saved ((,class (:foreground ,type :background ,bg1)))) + `(helm-buffer-process ((,class (:foreground ,builtin :background ,bg1)))) + `(helm-buffer-saved-out ((,class (:foreground ,fg1 :background ,bg1)))) + `(helm-buffer-size ((,class (:foreground ,fg1 :background ,bg1)))) + `(helm-ff-directory ((,class (:foreground ,func :background ,bg1 :weight bold)))) + `(helm-ff-file ((,class (:foreground ,fg1 :background ,bg1 :weight normal)))) + `(helm-ff-executable ((,class (:foreground ,var :background ,bg1 :weight normal)))) + `(helm-ff-invalid-symlink ((,class (:foreground ,warning2 :background ,bg1 :weight bold)))) + `(helm-ff-symlink ((,class (:foreground ,keyword :background ,bg1 :weight bold)))) + `(helm-ff-prefix ((,class (:foreground ,bg1 :background ,keyword :weight normal)))) + `(helm-grep-cmd-line ((,class (:foreground ,fg1 :background ,bg1)))) + `(helm-grep-file ((,class (:foreground ,fg1 :background ,bg1)))) + `(helm-grep-finish ((,class (:foreground ,fg2 :background ,bg1)))) + `(helm-grep-lineno ((,class (:foreground ,fg1 :background ,bg1)))) + `(helm-grep-match ((,class (:foreground nil :background nil :inherit helm-match)))) + `(helm-grep-running ((,class (:foreground ,func :background ,bg1)))) + `(helm-moccur-buffer ((,class (:foreground ,func :background ,bg1)))) + `(helm-source-go-package-godoc-description ((,class (:foreground ,str)))) + `(helm-bookmark-w3m ((,class (:foreground ,type)))) + `(company-echo-common ((,class (:foreground ,bg1 :background ,fg1)))) + `(company-preview ((,class (:background ,bg1 :foreground ,var)))) + `(company-preview-common ((,class (:foreground ,bg2 :foreground ,fg3)))) + `(company-preview-search ((,class (:foreground ,type :background ,bg1)))) + `(company-scrollbar-bg ((,class (:background ,bg3)))) + `(company-scrollbar-fg ((,class (:foreground ,keyword)))) + `(company-tooltip ((,class (:foreground ,fg2 :background ,bg1 :bold t)))) + `(company-tooltop-annotation ((,class (:foreground ,const)))) + `(company-tooltip-common ((,class ( :foreground ,fg3)))) + `(company-tooltip-common-selection ((,class (:foreground ,str)))) + `(company-tooltip-mouse ((,class (:inherit highlight)))) + `(company-tooltip-selection ((,class (:background ,bg3 :foreground ,fg3)))) + `(company-template-field ((,class (:inherit region)))) + `(web-mode-builtin-face ((,class (:inherit ,font-lock-builtin-face)))) + `(web-mode-comment-face ((,class (:inherit ,font-lock-comment-face)))) + `(web-mode-constant-face ((,class (:inherit ,font-lock-constant-face)))) + `(web-mode-keyword-face ((,class (:foreground ,keyword)))) + `(web-mode-doctype-face ((,class (:inherit ,font-lock-comment-face)))) + `(web-mode-function-name-face ((,class (:inherit ,font-lock-function-name-face)))) + `(web-mode-string-face ((,class (:foreground ,str)))) + `(web-mode-type-face ((,class (:inherit ,font-lock-type-face)))) + `(web-mode-html-attr-name-face ((,class (:foreground ,func)))) + `(web-mode-html-attr-value-face ((,class (:foreground ,keyword)))) + `(web-mode-warning-face ((,class (:inherit ,font-lock-warning-face)))) + `(web-mode-html-tag-face ((,class (:foreground ,builtin)))) + `(jde-java-font-lock-package-face ((t (:foreground ,var)))) + `(jde-java-font-lock-public-face ((t (:foreground ,keyword)))) + `(jde-java-font-lock-private-face ((t (:foreground ,keyword)))) + `(jde-java-font-lock-constant-face ((t (:foreground ,const)))) + `(jde-java-font-lock-modifier-face ((t (:foreground ,fg2)))) + `(jde-jave-font-lock-protected-face ((t (:foreground ,keyword)))) + `(jde-java-font-lock-number-face ((t (:foreground ,var)))) + `(yas-field-highlight-face ((t (:background ,bg4)))) + ) + ;; Legacy + (if (< emacs-major-version 22) + (custom-theme-set-faces + 'simple-dark + `(show-paren-match-face ((,class (:background ,warning)))) ;; obsoleted in 22.1, removed 2016 + ) + (custom-theme-set-faces + 'simple-dark + `(show-paren-match ((,class (:foreground ,bg1 :background ,str)))) + `(show-paren-mismatch ((,class (:foreground ,bg1 :background ,warning)))) + ) + ) + ;; emacs >= 26.1 + (when (>= emacs-major-version 26) + (custom-theme-set-faces + 'simple-dark + `(line-number ((t (:inherit fringe)))) + `(line-number-current-line ((t (:inherit fringe :foreground "white" :weight bold)))))) + ;; emacs >= 27.1 + (when (>= emacs-major-version 27) + (custom-theme-set-faces + 'simple-dark + `(tab-line ((,class (:background ,bg2 :foreground ,fg4)))) + `(tab-line-tab ((,class (:inherit tab-line)))) + `(tab-line-tab-inactive ((,class (:background ,bg2 :foreground ,fg4)))) + `(tab-line-tab-current ((,class (:background ,bg1 :foreground ,fg1)))) + `(tab-line-highlight ((,class (:background ,bg1 :foreground ,fg2)))))) + ) + +;;;###autoload +(when load-file-name + (add-to-list 'custom-theme-load-path + (file-name-as-directory (file-name-directory load-file-name)))) + +(provide-theme 'simple-dark) + +;; Local Variables: +;; no-byte-compile: t +;; End: + +;;; simple-dark-theme.el ends here diff --git a/epistemia/files/fontconfig/.config/fontconfig/fonts.conf.old b/epistemia/files/fontconfig/.config/fontconfig/fonts.conf.old @@ -0,0 +1,57 @@ +<?xml version="1.0"?> +<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> +<fontconfig> + <dir>/home/vin/.local/share/fonts</dir> + +<!-- + <match target="pattern"> + <test qual="any" name="family"><string>monospace</string></test> + <edit name="family" mode="assign" binding="same"> + <string>Terminus</string> + </edit> + <edit name="postscriptname" mode="assign" binding="same"> + <string>Terminus</string> + </edit> + <edit name="foundry" mode="assign" binding="same"> + <string>xos4</string> + </edit> + <edit name="fontformat" mode="assign" binding="same"> + <string>PCF</string> + </edit> + <edit name="scalable" mode="assign" binding="same"> + <bool>false</bool> + </edit> + <edit name="antialias" mode="assign" binding="same"> + <bool>false</bool> + </edit> + <edit name="outline" mode="assign" binding="same"> + <bool>false</bool> + </edit> + <edit name="decorative" mode="assign" binding="same"> + <bool>false</bool> + </edit> + </match> +--> + <match target="pattern"> + <test qual="any" name="family"><string>monospace</string></test> + <edit name="family" mode="assign" binding="same"><string>Comic Code</string></edit> + </match> + + <match target="pattern"> + <test qual="any" name="family"><string>serif</string></test> +<!-- + <edit name="family" mode="assign" binding="same"><string>IPAexMincho</string></edit> +--> + <!-- <edit name="family" mode="assign" binding="same"><string>CMU Serif</string></edit> --> + <edit name="family" mode="assign" binding="same"><string>ITC Quorum Std Book</string></edit> + </match> + + <match target="pattern"> + <test qual="any" name="family"><string>sans-serif</string></test> +<!-- + <edit name="family" mode="assign" binding="same"><string>IPAexGothic</string></edit> +--> + <!-- <edit name="family" mode="assign" binding="same"><string>Libertinus Sans</string></edit> --> + <edit name="family" mode="assign" binding="same"><string>Comic Neue</string></edit> + </match> +</fontconfig> diff --git a/epistemia/files/git/.config/git/config b/epistemia/files/git/.config/git/config @@ -0,0 +1,30 @@ +[commit] + gpgsign = false + +[format] + signOff = true + +[gpg] + format = "ssh" + +[gpg "ssh"] + allowedSignersFile = "/home/vin/.ssh/allowed_signers" + +[http] + postBuffer = 524288000 + version = "HTTP/1.1" + +[init] + defaultBranch = "master" + +[pull] + rebase = true + +[sendemail] + annotate = true + suppresscc = "self" + +[user] + email = "git@vineetk.net" + name = "vin" + signingkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEvM0xCLziR+ZT/SYE1aZM6dklbw4fEC17TWqbADIZRH kou@demiurge" diff --git a/epistemia/files/git/.config/git/ignore b/epistemia/files/git/.config/git/ignore @@ -0,0 +1,4 @@ +*~ +.*~ +*.swp +#* diff --git a/epistemia/files/guix/.config/guix/channels.scm b/epistemia/files/guix/.config/guix/channels.scm @@ -0,0 +1 @@ +../../../../channels.scm +\ No newline at end of file diff --git a/epistemia/files/ladspa_dsp/.config/ladspa_dsp/config_dt700prox b/epistemia/files/ladspa_dsp/.config/ladspa_dsp/config_dt700prox @@ -0,0 +1,3 @@ +input_channels=2 +output_channels=2 +effects_chain=@effects_dt700prox diff --git a/epistemia/files/ladspa_dsp/.config/ladspa_dsp/config_he5xx b/epistemia/files/ladspa_dsp/.config/ladspa_dsp/config_he5xx @@ -0,0 +1,3 @@ +input_channels=2 +output_channels=2 +effects_chain=@effects_he5xx diff --git a/epistemia/files/ladspa_dsp/.config/ladspa_dsp/effects_dt700prox b/epistemia/files/ladspa_dsp/.config/ladspa_dsp/effects_dt700prox @@ -0,0 +1,6 @@ +gain -4.0 +lowshelf 140 0.71q +5.5 +eq 250 0.6q +3.5 +eq 400 1.0q +1.5 +eq 3500 2.0q -3.0 +highshelf 8000 0.71q -4.0 diff --git a/epistemia/files/ladspa_dsp/.config/ladspa_dsp/effects_dt700prox_old b/epistemia/files/ladspa_dsp/.config/ladspa_dsp/effects_dt700prox_old @@ -0,0 +1,6 @@ +gain -4.0 +lowshelf 140 0.71q +5.5 +eq 250 0.6q +3.5 +eq 400 1.0q +1.5 +eq 3500 2.0q -3.0 +highshelf 8000 0.71q -4.0 diff --git a/epistemia/files/ladspa_dsp/.config/ladspa_dsp/effects_he5xx b/epistemia/files/ladspa_dsp/.config/ladspa_dsp/effects_he5xx @@ -0,0 +1,10 @@ +gain -10.8 +eq 25 1.0q +5.3 +lowshelf 105 0.71q +7.0 +eq 470 4.0q -1.0 +eq 530 1.2q +1.8 +highshelf 800 0.71q +1.0 +eq 910 3.0q -3.4 +eq 1300 3.0q -3.3 +eq 5400 4.5q -2.0 +highshelf 11000 0.71q -7.0 diff --git a/epistemia/files/mpv/.config/mpv/input.conf b/epistemia/files/mpv/.config/mpv/input.conf @@ -0,0 +1,4 @@ +Ctrl+0 no-osd change-list glsl-shaders clr ''; show-text 'GLSL shaders cleared' +Ctrl+1 no-osd change-list glsl-shaders set '~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl'; show-text 'Anime4K: Mode A (HQ)' +Ctrl+2 no-osd change-list glsl-shaders set '~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl'; show-text 'Anime4K: Mode B (HQ)' +Ctrl+3 no-osd change-list glsl-shaders set '~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl'; show-text 'Anime4K: Mode C (HQ)' diff --git a/epistemia/files/mpv/.config/mpv/mpv.conf b/epistemia/files/mpv/.config/mpv/mpv.conf @@ -0,0 +1,4 @@ +# Optimized shaders for higher-end GPU: Mode A (HQ) +glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl" + +ytdl-format=bestvideo[height<=?1440]+bestaudio/best diff --git a/epistemia/files/profanity/.config/profanity/profrc b/epistemia/files/profanity/.config/profanity/profrc @@ -0,0 +1,23 @@ +[connection] +mam=true +defaccount=vin +account=vin + +[logging] +chlog=true +grlog=true + +[ui] +color.nick=false +color.occupants.nick=false +color.roster.nick=false + +statuses.muc=none + +theme=mono-v2 + +compose.editor=emacsclient + +[omemo] +log=on +policy=automatic diff --git a/epistemia/files/profanity/.config/profanity/themes/headache-v2 b/epistemia/files/profanity/.config/profanity/themes/headache-v2 @@ -0,0 +1,79 @@ +[colours] +bkgnd=default +titlebar=default +titlebar.text=white +titlebar.brackets=white +titlebar.unencrypted=black +titlebar.encrypted=cyan +titlebar.untrusted=yellow +titlebar.trusted=cyan +titlebar.online=white +titlebar.offline=black +titlebar.away=white +titlebar.chat=white +titlebar.dnd=black +titlebar.xa=white +statusbar=default +statusbar.text=white +statusbar.time=white +statusbar.brackets=red +statusbar.active=cyan +statusbar.new=white +main.text=blue +main.text.me=white +main.text.them=white +main.splash=red +main.help.header=blue +main.time=bold_black +input.text=white +subscribed=magenta +unsubscribed=black +otr.started.trusted=cyan +otr.started.untrusted=yellow +otr.ended=blue +otr.trusted=cyan +otr.untrusted=yellow +online=green +away=cyan +chat=green +dnd=magenta +xa=cyan +offline=red +incoming=yellow +mention=green +trigger=green +typing=magenta +gone=yellow +error=red +roominfo=white +roommention=blue +roommention.term=blue +roomtrigger=blue +roomtrigger.term=blue +me=magenta +them=green +roster.header=cyan +roster.chat=green +roster.online=green +roster.away=cyan +roster.xa=cyan +roster.dnd=magenta +roster.offline=red +roster.chat.active=green +roster.online.active=green +roster.away.active=cyan +roster.xa.active=cyan +roster.dnd.active=magenta +roster.offline.active=red +roster.chat.unread=bold_green +roster.online.unread=bold_green +roster.away.unread=bold_cyan +roster.xa.unread=bold_cyan +roster.dnd.unread=bold_magenta +roster.offline.unread=bold_green +roster.room=red +roster.room.unread=bold_red +roster.room.mention=bold_red +roster.room.trigger=bold_red +occupants.header=cyan +receipt.sent=red diff --git a/epistemia/files/profanity/.config/profanity/themes/mono-v2 b/epistemia/files/profanity/.config/profanity/themes/mono-v2 @@ -0,0 +1,78 @@ +[colours] +bkgnd=default +titlebar=background +titlebar.text=foreground +titlebar.brackets=foreground +titlebar.unencrypted=foreground +titlebar.encrypted=foreground +titlebar.untrusted=foreground +titlebar.trusted=foreground +titlebar.online=foreground +titlebar.offline=foreground +titlebar.away=foreground +titlebar.chat=foreground +titlebar.dnd=foreground +titlebar.xa=foreground +statusbar=background +statusbar.text=foreground +statusbar.time=foreground +statusbar.brackets=foreground +statusbar.active=foreground +statusbar.new=bold_foreground +main.text=background +main.text.me=background +main.text.them=background +main.splash=background +main.time=background +input.text=background +subscribed=background +unsubscribed=background +otr.started.trusted=background +otr.started.untrusted=background +otr.ended=background +otr.trusted=background +otr.untrusted=background +online=background +away=background +chat=background +dnd=background +xa=background +offline=background +incoming=background +mention=background +trigger=background +typing=background +gone=background +error=background +roominfo=background +roommention=bold_background +roommention.term=bold_background +roomtrigger=background +roomtrigger.term=background +me=background +them=background +roster.header=background +roster.chat=background +roster.online=background +roster.away=background +roster.xa=background +roster.dnd=background +roster.offline=background +roster.chat.active=background +roster.online.active=background +roster.away.active=background +roster.xa.active=background +roster.dnd.active=background +roster.offline.active=background +roster.chat.unread=bold_background +roster.online.unread=bold_background +roster.away.unread=bold_background +roster.xa.unread=bold_background +roster.dnd.unread=bold_background +roster.offline.unread=bold_background +roster.room=background +roster.room.unread=bold_background +roster.room.mention=bold_background +roster.room.trigger=background +occupants.header=background +receipt.sent=background diff --git a/epistemia/files/qutebrowser/.config/qutebrowser/bookmarks/urls b/epistemia/files/qutebrowser/.config/qutebrowser/bookmarks/urls @@ -0,0 +1,2 @@ +https://toys.whereis.social/ Toys / Webring for GNU Guix channels +http://www.bitsavers.org/ The bitsavers main page diff --git a/epistemia/files/qutebrowser/.config/qutebrowser/redirectors.py b/epistemia/files/qutebrowser/.config/qutebrowser/redirectors.py @@ -0,0 +1,46 @@ +# I don't remember who I took this from. probably in qutebrowser m$hub issues + +import operator, re, typing +from urllib.parse import urljoin + +from qutebrowser.api import interceptor, message +from PyQt6.QtCore import QUrl + +def _pastebin_redir(url: QUrl) -> bool: + p = url.path().strip('/') + if p.isalnum(): + url.setPath(urljoin("/raw/", p)) + return True + return False + +# Any return value other than a literal 'False' means we redirected +REDIRECT_MAP = { + "new.reddit.com": operator.methodcaller('setHost', 'redlib.catsarch.com'), + "np.reddit.com": operator.methodcaller('setHost', 'redlib.catsarch.com'), + "old.reddit.com": operator.methodcaller('setHost', 'redlib.catsarch.com'), + "reddit.com": operator.methodcaller('setHost', 'redlib.catsarch.com'), + "www.reddit.com": operator.methodcaller('setHost', 'redlib.catsarch.com'), + + "www.youtube.com": operator.methodcaller('setHost', 'inv.nadeko.net'), + "youtube.com": operator.methodcaller('setHost', 'inv.nadeko.net'), + "youtu.be": operator.methodcaller('setHost', 'inv.nadeko.net'), + + "imgur.com": operator.methodcaller('setHost', 'rimgo.bloat.cat'), + "i.imgur.com": operator.methodcaller('setHost', 'rimgo.bloat.cat'), + + # Causes an infinite loop if the paste does not exist... + "pastebin.com": _pastebin_redir, + } # type: typing.Dict[str, typing.Callable[..., typing.Optional[bool]]] + +def int_fn(info: interceptor.Request): + """Block the given request if necessary.""" + if (info.resource_type != interceptor.ResourceType.main_frame or + info.request_url.scheme() in {"data", "blob"}): + return + url = info.request_url + redir = REDIRECT_MAP.get(url.host()) + if redir is not None and redir(url) is not False: + message.info("Redirecting to " + url.toString()) + info.redirect(url) + +interceptor.register(int_fn) diff --git a/epistemia/files/qutebrowser/.config/qutebrowser/theme.py b/epistemia/files/qutebrowser/.config/qutebrowser/theme.py @@ -0,0 +1,128 @@ +# Colors. +bg0 = "#141b1e" +bg1 = "#232a2d" +bg2 = "#2d3437" +fg0 = "#dadada" +fg1 = "#b3b9b8" +red = "#e57474" +blue = "#67b0e8" +green = "#8ccf7e" +yellow = "#e5c76b" +cyan = "#6cbfbf" +magenta = "#c47fd5" + +# --- Applying colors --- # + +# Completion menu. +c.colors.completion.category.bg = bg1 +c.colors.completion.category.border.top = bg0 +c.colors.completion.category.border.bottom = bg0 +c.colors.completion.category.fg = fg0 +c.colors.completion.even.bg = bg1 +c.colors.completion.odd.bg = bg1 +c.colors.completion.item.selected.bg = bg2 +c.colors.completion.item.selected.border.bottom = bg2 +c.colors.completion.item.selected.border.top = bg2 +c.colors.completion.item.selected.fg = blue +c.colors.completion.item.selected.match.fg = blue +c.colors.completion.match.fg = red +c.colors.completion.odd.bg = bg1 +c.colors.completion.scrollbar.fg = fg0 +c.colors.completion.scrollbar.bg = bg1 + +# Statusline. +c.colors.statusbar.caret.bg = bg0 +c.colors.statusbar.caret.fg = magenta +c.colors.statusbar.caret.selection.bg = bg0 +c.colors.statusbar.caret.selection.fg = red +c.colors.statusbar.command.bg = bg0 +c.colors.statusbar.command.fg = fg0 +c.colors.statusbar.insert.bg = bg0 +c.colors.statusbar.insert.fg = green +c.colors.statusbar.normal.bg = bg0 +c.colors.statusbar.normal.fg = fg0 +c.colors.statusbar.passthrough.bg = bg0 +c.colors.statusbar.passthrough.fg = blue +c.colors.statusbar.private.bg = bg0 +c.colors.statusbar.private.fg = fg0 +c.colors.statusbar.progress.bg = green +c.colors.statusbar.url.error.fg = red +c.colors.statusbar.url.fg = fg0 +c.colors.statusbar.url.hover.fg = cyan +c.colors.statusbar.url.success.http.fg = green +c.colors.statusbar.url.success.https.fg = green +c.colors.statusbar.url.warn.fg = yellow + +# Tabline. +c.colors.tabs.bar.bg = bg0 +c.colors.tabs.even.bg = bg1 +c.colors.tabs.even.fg = fg1 +c.colors.tabs.indicator.error = red +c.colors.tabs.indicator.start = blue +c.colors.tabs.indicator.stop = green +c.colors.tabs.indicator.system = "rgb" +c.colors.tabs.odd.bg = bg1 +c.colors.tabs.odd.fg = fg1 +c.colors.tabs.pinned.even.bg = bg2 +c.colors.tabs.pinned.even.fg = fg1 +c.colors.tabs.pinned.odd.bg = bg2 +c.colors.tabs.pinned.odd.fg = fg1 +c.colors.tabs.pinned.selected.even.bg = bg0 +c.colors.tabs.pinned.selected.even.fg = green +c.colors.tabs.pinned.selected.odd.bg = bg0 +c.colors.tabs.pinned.selected.odd.fg = green +c.colors.tabs.pinned.selected.even.bg = bg0 +c.colors.tabs.pinned.selected.even.fg = blue +c.colors.tabs.selected.odd.bg = bg0 +c.colors.tabs.selected.odd.fg = fg0 +c.colors.tabs.selected.even.bg = bg0 +c.colors.tabs.selected.even.fg = fg0 + +# Hints. +c.colors.hints.bg = bg2 +c.colors.hints.fg = fg0 +c.colors.hints.match.fg = red +c.hints.border = "2px solid " + bg1 + +# Messages. +c.colors.messages.error.bg = bg1 +c.colors.messages.error.border = bg1 +c.colors.messages.error.fg = red +c.colors.messages.info.bg = bg1 +c.colors.messages.info.border = bg1 +c.colors.messages.info.fg = blue +c.colors.messages.warning.bg = bg1 +c.colors.messages.warning.border = bg1 +c.colors.messages.warning.fg = yellow + +# Download bar. +c.colors.downloads.bar.bg = bg0 +c.colors.downloads.error.bg = bg2 +c.colors.downloads.error.fg = red +c.colors.downloads.start.bg = bg2 +c.colors.downloads.start.fg = blue +c.colors.downloads.stop.bg = bg2 +c.colors.downloads.stop.fg = green + +# Keyhints. +c.colors.keyhint.bg = bg0 +c.colors.keyhint.fg = fg0 +c.colors.keyhint.suffix.fg = yellow + +# Default color for about:blank pages (or if the css didn't specify) +#c.colors.webpage.bg = bg1 + +# Context menu. +c.colors.contextmenu.disabled.bg = bg1 +c.colors.contextmenu.disabled.fg = fg1 +c.colors.contextmenu.menu.bg = bg1 +c.colors.contextmenu.menu.fg = fg0 +c.colors.contextmenu.selected.bg = bg2 +c.colors.contextmenu.selected.fg = blue + +# Prompts. +c.colors.prompts.bg = bg1 +c.colors.prompts.border = "2px solid " + bg0 +c.colors.prompts.fg = fg0 +c.colors.prompts.selected.bg = bg2 +c.colors.prompts.selected.fg = blue diff --git a/epistemia/files/yt-dlp/.config/yt-dlp/config b/epistemia/files/yt-dlp/.config/yt-dlp/config @@ -0,0 +1,9 @@ +--embed-metadata +--embed-subs +--embed-thumbnail +--format-sort res:1440,vcodec:vp9,acodec:opus +--merge-output-format mkv +--no-windows-filenames +--sponsorblock-mark filler,preview,intro,outro +--sponsorblock-remove sponsor,selfpromo,music_offtopic,-filler,-preview +--sub-langs en,-livechat