From 14c713000784146ba9ca4991ca355db8974107c5 Mon Sep 17 00:00:00 2001 From: Clay Gomera Date: Tue, 28 Mar 2023 13:41:25 -0400 Subject: [PATCH] update --- new-config/.bashrc | 45 +- new-config/.config/doom/config.el | 569 --------- new-config/.config/doom/config.org | 1018 ----------------- new-config/.config/doom/emacs-dash.txt | 20 - new-config/.config/doom/eshell/aliases | 20 - new-config/.config/doom/init.el | 191 ---- new-config/.config/doom/packages.el | 85 -- new-config/.config/fish/config.fish | 241 ---- new-config/.config/hypr/hyprland.conf | 10 +- new-config/.config/lvim/config.lua | 2 +- new-config/.config/newsboat/urls | 25 +- new-config/.config/qutebrowser/bookmarks/urls | 19 + new-config/.config/qutebrowser/config.py | 251 ++++ new-config/.config/qutebrowser/gruvbox.py | 332 ++++++ new-config/.config/rofi/scripts/rofi_wifi | 2 +- new-config/.config/vifm/vifmrc | 2 +- new-config/.config/waybar/config | 4 +- new-config/.config/wezterm/wezterm.lua | 2 +- new-config/.winitrc | 2 +- new-config/dependencies.md | 1 + 20 files changed, 659 insertions(+), 2182 deletions(-) delete mode 100644 new-config/.config/doom/config.el delete mode 100644 new-config/.config/doom/config.org delete mode 100644 new-config/.config/doom/emacs-dash.txt delete mode 100644 new-config/.config/doom/eshell/aliases delete mode 100644 new-config/.config/doom/init.el delete mode 100644 new-config/.config/doom/packages.el delete mode 100644 new-config/.config/fish/config.fish create mode 100644 new-config/.config/qutebrowser/bookmarks/urls create mode 100644 new-config/.config/qutebrowser/config.py create mode 100644 new-config/.config/qutebrowser/gruvbox.py diff --git a/new-config/.bashrc b/new-config/.bashrc index 352b8f32c..8969a10ca 100644 --- a/new-config/.bashrc +++ b/new-config/.bashrc @@ -6,10 +6,10 @@ ## ### EXPORT ### -export TERM="xterm-256color" # getting proper colors -export HISTCONTROL=ignoredups:erasedups # no duplicate entries -export EDITOR="emacsclient -t -a ''" # $EDITOR use Emacs in terminal -export VISUAL="emacsclient -c -a emacs" # $VISUAL use Emacs in GUI mode +export TERM="xterm-256color" # getting proper colors +export HISTCONTROL=ignoredups:erasedups # no duplicate entries +export EDITOR="$HOME/.local/bin/lvim" # $EDITOR use Lunarvim in terminal +export VISUAL="wezterm start --class editor -- $HOME/.local/bin/lvim" # $VISUAL use Lunarvim in new wezterm window ### "bat" as manpager export MANPAGER="sh -c 'col -bx | bat -l man -p'" @@ -21,11 +21,8 @@ export MANPAGER="sh -c 'col -bx | bat -l man -p'" # if not running interactively, don't do anything [[ $- != *i* ]] && return -# use emacs for vim if present. -[ -x "$(command -v emacs)" ] && alias vim="emacsclient -t -a ''" - -# use $XINITRC variable if file exists. -[ -f "$XINITRC" ] && alias startx="startx $XINITRC" +# use lunarvim for vim if present. +[ -x "$(command -v ~/.local/bin/lvim)" ] && alias vim="lvim" ### SET VI MODE ### # Comment this line out to enable default emacs-like bindings @@ -43,9 +40,6 @@ fi if [ -d "$HOME/Applications" ] ; then PATH="$HOME/Applications:$PATH" fi -if [ -d "$HOME/.config/emacs/bin" ] ; - then PATH="$HOME/.config/emacs/bin:$PATH" -fi ### CHANGE TITLE OF TERMINALS ### case ${TERM} in @@ -133,6 +127,9 @@ alias \ # bat as cat [ -x "$(command -v bat)" ] && alias cat="bat" +# pfetch as neofetch +[ -x "$(command -v pfetch)" ] && alias neofetch="pfetch" + # Changing "ls" to "exa" alias \ ls="exa -al --icons --color=always --group-directories-first" \ @@ -158,18 +155,18 @@ alias \ # git alias \ - addup="git add -u" \ - addall="git add ." \ - branch="git branch" \ - checkout="git checkout" \ - clone="git clone" \ - commit="git commit -m" \ - fetch="git fetch" \ - pull="git pull origin" \ - push="git push origin" \ - stat="git status" \ - tag="git tag" \ - newtag="git tag -a" + git-adu="git add -u" \ + git-adl="git add ." \ + git-brn="git branch" \ + git-chk="git checkout" \ + git-cln="git clone" \ + git-cmt="git commit -m" \ + git-fth="git fetch" \ + git-pll="git pull origin" \ + git-psh="git push origin" \ + git-sts="git status" \ + git-tag="git tag" \ + git-ntg="git tag -a" # adding flags alias \ diff --git a/new-config/.config/doom/config.el b/new-config/.config/doom/config.el deleted file mode 100644 index f2305dd3f..000000000 --- a/new-config/.config/doom/config.el +++ /dev/null @@ -1,569 +0,0 @@ -(beacon-mode 1) - -(map! :leader - (:prefix ("b". "buffer") - :desc "List bookmarks" "L" #'list-bookmarks - :desc "Save current bookmarks to bookmark file" "w" #'bookmark-save)) - -(global-auto-revert-mode 1) -(setq global-auto-revert-non-file-buffers t) - -(evil-define-key 'normal ibuffer-mode-map - (kbd "f c") 'ibuffer-filter-by-content - (kbd "f d") 'ibuffer-filter-by-directory - (kbd "f f") 'ibuffer-filter-by-filename - (kbd "f m") 'ibuffer-filter-by-mode - (kbd "f n") 'ibuffer-filter-by-name - (kbd "f x") 'ibuffer-filter-disable - (kbd "g h") 'ibuffer-do-kill-lines - (kbd "g H") 'ibuffer-update) - -;; https://stackoverflow.com/questions/9547912/emacs-calendar-show-more-than-3-months -(defun dt/year-calendar (&optional year) - (interactive) - (require 'calendar) - (let* ( - (current-year (number-to-string (nth 5 (decode-time (current-time))))) - (month 0) - (year (if year year (string-to-number (format-time-string "%Y" (current-time)))))) - (switch-to-buffer (get-buffer-create calendar-buffer)) - (when (not (eq major-mode 'calendar-mode)) - (calendar-mode)) - (setq displayed-month month) - (setq displayed-year year) - (setq buffer-read-only nil) - (erase-buffer) - ;; horizontal rows - (dotimes (j 4) - ;; vertical columns - (dotimes (i 3) - (calendar-generate-month - (setq month (+ month 1)) - year - ;; indentation / spacing between months - (+ 5 (* 25 i)))) - (goto-char (point-max)) - (insert (make-string (- 10 (count-lines (point-min) (point-max))) ?\n)) - (widen) - (goto-char (point-max)) - (narrow-to-region (point-max) (point-max))) - (widen) - (goto-char (point-min)) - (setq buffer-read-only t))) - -(defun dt/scroll-year-calendar-forward (&optional arg event) - "Scroll the yearly calendar by year in a forward direction." - (interactive (list (prefix-numeric-value current-prefix-arg) - last-nonmenu-event)) - (unless arg (setq arg 0)) - (save-selected-window - (if (setq event (event-start event)) (select-window (posn-window event))) - (unless (zerop arg) - (let* ( - (year (+ displayed-year arg))) - (dt/year-calendar year))) - (goto-char (point-min)) - (run-hooks 'calendar-move-hook))) - -(defun dt/scroll-year-calendar-backward (&optional arg event) - "Scroll the yearly calendar by year in a backward direction." - (interactive (list (prefix-numeric-value current-prefix-arg) - last-nonmenu-event)) - (dt/scroll-year-calendar-forward (- (or arg 1)) event)) - -(map! :leader - :desc "Scroll year calendar backward" "" #'dt/scroll-year-calendar-backward - :desc "Scroll year calendar forward" "" #'dt/scroll-year-calendar-forward) - -(defalias 'year-calendar 'dt/year-calendar) - -(use-package! calfw) -(use-package! calfw-org) - -(setq centaur-tabs-set-bar 'over - centaur-tabs-set-icons t - centaur-tabs-gray-out-icons 'buffer - centaur-tabs-height 24 - centaur-tabs-set-modified-marker t - centaur-tabs-style "bar" - centaur-tabs-modified-marker "•") -(map! :leader - :desc "Toggle tabs globally" "t c" #'centaur-tabs-mode - :desc "Toggle tabs local display" "t C" #'centaur-tabs-local-mode) -(evil-define-key 'normal centaur-tabs-mode-map (kbd "g ") 'centaur-tabs-forward ; default Doom binding is 'g t' - (kbd "g ") 'centaur-tabs-backward ; default Doom binding is 'g T' - (kbd "g ") 'centaur-tabs-forward-group - (kbd "g ") 'centaur-tabs-backward-group) - -(map! :leader - (:prefix ("c h" . "Help info from Clippy") - :desc "Clippy describes function under point" "f" #'clippy-describe-function - :desc "Clippy describes variable under point" "v" #'clippy-describe-variable)) - -(use-package dashboard - :init ;; tweak dashboard config before loading it - (setq dashboard-set-heading-icons t) - (setq dashboard-set-file-icons t) - (setq dashboard-banner-logo-title "\nKEYBINDINGS:\ -\nFind file (SPC .) \ -Open buffer list (SPC b i)\ -\nFind recent files (SPC f r) \ -Open the eshell (SPC e s)\ -\nOpen dired file manager (SPC d d) \ -List of keybindings (SPC h b b)") - ;;(setq dashboard-startup-banner 'logo) ;; use standard emacs logo as banner - (setq initial-buffer-choice (lambda () (get-buffer "*dashboard*"))) - (setq dashboard-startup-banner "~/.config/doom/emacs-dash.txt") ;; use custom image as banner - (setq dashboard-center-content nil) ;; set to 't' for centered content - (setq dashboard-items '((recents . 5) - (agenda . 5 ) - (bookmarks . 5) - (projects . 5) - (registers . 5))) - :config - (dashboard-setup-startup-hook) - (dashboard-modify-heading-icons '((recents . "file-text") - (bookmarks . "book")))) - -(setq doom-fallback-buffer "*dashboard*") - -(map! :leader - (:prefix ("d" . "dired") - :desc "Open dired" "d" #'dired - :desc "Dired jump to current" "j" #'dired-jump) - (:after dired - (:map dired-mode-map - :desc "Peep-dired image previews" "d p" #'peep-dired - :desc "Dired view file" "d v" #'dired-view-file))) - -(evil-define-key 'normal dired-mode-map - (kbd "M-RET") 'dired-display-file - (kbd "h") 'dired-up-directory - (kbd "l") 'dired-open-file ; use dired-find-file instead of dired-open. - (kbd "m") 'dired-mark - (kbd "t") 'dired-toggle-marks - (kbd "u") 'dired-unmark - (kbd "C") 'dired-do-copy - (kbd "D") 'dired-do-delete - (kbd "J") 'dired-goto-file - (kbd "M") 'dired-do-chmod - (kbd "O") 'dired-do-chown - (kbd "P") 'dired-do-print - (kbd "R") 'dired-do-rename - (kbd "T") 'dired-do-touch - (kbd "Y") 'dired-copy-filenamecopy-filename-as-kill ; copies filename to kill ring. - (kbd "+") 'dired-create-directory - (kbd "-") 'dired-up-directory - (kbd "% l") 'dired-downcase - (kbd "% u") 'dired-upcase - (kbd "; d") 'epa-dired-do-decrypt - (kbd "; e") 'epa-dired-do-encrypt) -;; Get file icons in dired -(add-hook 'dired-mode-hook 'all-the-icons-dired-mode) -;; With dired-open plugin, you can launch external programs for certain extensions -;; For example, I set all .png files to open in 'sxiv' and all .mp4 files to open in 'mpv' -(setq dired-open-extensions '(("gif" . "sxiv") - ("jpg" . "sxiv") - ("png" . "sxiv") - ("mkv" . "mpv") - ("mp4" . "mpv"))) - -(evil-define-key 'normal peep-dired-mode-map - (kbd "j") 'peep-dired-next-file - (kbd "k") 'peep-dired-prev-file) -(add-hook 'peep-dired-hook 'evil-normalize-keymaps) - -(setq delete-by-moving-to-trash t - trash-directory "~/.local/share/Trash/files/") - -(setq doom-theme 'doom-gruvbox) -(map! :leader - :desc "Load new theme" "h t" #'counsel-load-theme) - -(use-package emojify - :hook (after-init . global-emojify-mode)) - -(map! :leader - (:prefix ("e". "evaluate/EWW") - :desc "Evaluate elisp in buffer" "b" #'eval-buffer - :desc "Evaluate defun" "d" #'eval-defun - :desc "Evaluate elisp expression" "e" #'eval-expression - :desc "Evaluate last sexpression" "l" #'eval-last-sexp - :desc "Evaluate elisp in region" "r" #'eval-region)) - -(setq browse-url-browser-function 'eww-browse-url) -(map! :leader - :desc "Search web for text between BEG/END" - "s w" #'eww-search-words - (:prefix ("e" . "evaluate/EWW") - :desc "Eww web browser" "w" #'eww - :desc "Eww reload page" "R" #'eww-reload)) - -(setq doom-font (font-spec :family "mononoki Nerd Font" :size 15) - doom-variable-pitch-font (font-spec :family "mononoki Nerd Font" :size 15) - doom-big-font (font-spec :family "mononoki Nerd Font" :size 20)) -(after! doom-themes - (setq doom-themes-enable-bold t - doom-themes-enable-italic t)) -(custom-set-faces! - '(font-lock-comment-face :slant italic) - '(font-lock-keyword-face :slant italic)) - -(defun dt/insert-todays-date (prefix) - (interactive "P") - (let ((format (cond - ((not prefix) "%A, %B %d, %Y") - ((equal prefix '(4)) "%m-%d-%Y") - ((equal prefix '(16)) "%Y-%m-%d")))) - (insert (format-time-string format)))) - -(require 'calendar) -(defun dt/insert-any-date (date) - "Insert DATE using the current locale." - (interactive (list (calendar-read-date))) - (insert (calendar-date-string date))) - -(map! :leader - (:prefix ("i d" . "Insert date") - :desc "Insert any date" "a" #'dt/insert-any-date - :desc "Insert todays date" "t" #'dt/insert-todays-date)) - -(setq ivy-posframe-display-functions-alist - '((swiper . ivy-posframe-display-at-point) - (complete-symbol . ivy-posframe-display-at-point) - (counsel-M-x . ivy-display-function-fallback) - (counsel-esh-history . ivy-posframe-display-at-window-center) - (counsel-describe-function . ivy-display-function-fallback) - (counsel-describe-variable . ivy-display-function-fallback) - (counsel-find-file . ivy-display-function-fallback) - (counsel-recentf . ivy-display-function-fallback) - (counsel-register . ivy-posframe-display-at-frame-bottom-window-center) - (dmenu . ivy-posframe-display-at-frame-top-center) - (nil . ivy-posframe-display)) - ivy-posframe-height-alist - '((swiper . 20) - (dmenu . 20) - (t . 10))) -(ivy-posframe-mode 1) ; 1 enables posframe-mode, 0 disables it. - -(map! :leader - (:prefix ("v" . "Ivy") - :desc "Ivy push view" "v p" #'ivy-push-view - :desc "Ivy switch view" "v s" #'ivy-switch-view)) - -(setq display-line-numbers-type t) -(map! :leader - :desc "Comment or uncomment lines" "TAB TAB" #'comment-line - (:prefix ("t" . "toggle") - :desc "Toggle line numbers" "l" #'doom/toggle-line-numbers - :desc "Toggle line highlight in frame" "h" #'hl-line-mode - :desc "Toggle line highlight globally" "H" #'global-hl-line-mode - :desc "Toggle truncate lines" "t" #'toggle-truncate-lines)) - -(custom-set-faces - '(markdown-header-face ((t (:inherit font-lock-function-name-face :weight bold :family "variable-pitch")))) - '(markdown-header-face-1 ((t (:inherit markdown-header-face :height 1.7)))) - '(markdown-header-face-2 ((t (:inherit markdown-header-face :height 1.6)))) - '(markdown-header-face-3 ((t (:inherit markdown-header-face :height 1.5)))) - '(markdown-header-face-4 ((t (:inherit markdown-header-face :height 1.4)))) - '(markdown-header-face-5 ((t (:inherit markdown-header-face :height 1.3)))) - '(markdown-header-face-6 ((t (:inherit markdown-header-face :height 1.2))))) - -(setq minimap-window-location 'right) -(map! :leader - (:prefix ("t" . "toggle") - :desc "Toggle minimap-mode" "m" #'minimap-mode)) - -(set-face-attribute 'mode-line nil :font "mononoki Nerd Font-13") -(setq doom-modeline-height 30 ;; sets modeline height - doom-modeline-bar-width 5 ;; sets right bar width - doom-modeline-persp-name t ;; adds perspective name to modeline - doom-modeline-persp-icon t) ;; adds folder icon next to persp name - -(xterm-mouse-mode 1) - -(after! neotree - (setq neo-smart-open t - neo-window-fixed-size nil)) -(after! doom-themes - (setq doom-neotree-enable-variable-pitch t)) -(map! :leader - :desc "Toggle neotree file viewer" "t n" #'neotree-toggle - :desc "Open directory in neotree" "d n" #'neotree-dir) - -(map! :leader - (:prefix ("=" . "open file") - :desc "Edit agenda file" "a" #'(lambda () (interactive) (find-file "~/Org/agenda.org")) - :desc "Edit doom config.org" "c" #'(lambda () (interactive) (find-file "~/.config/doom/config.org")) - :desc "Edit doom init.el" "i" #'(lambda () (interactive) (find-file "~/.config/doom/init.el")) - :desc "Edit doom packages.el" "p" #'(lambda () (interactive) (find-file "~/.config/doom/packages.el")))) -(map! :leader - (:prefix ("= e" . "open eshell files") - :desc "Edit eshell aliases" "a" #'(lambda () (interactive) (find-file "~/.config/doom/eshell/aliases")) - :desc "Edit eshell profile" "p" #'(lambda () (interactive) (find-file "~/.config/doom/eshell/profile")))) - -(map! :leader - :desc "Org babel tangle" "m B" #'org-babel-tangle) -(after! org - (setq org-directory "~/nc/Org/" - org-agenda-files '("~/nc/Org/agenda.org") - org-default-notes-file (expand-file-name "notes.org" org-directory) - org-ellipsis " ▼ " - org-superstar-headline-bullets-list '("◉" "●" "○" "◆" "●" "○" "◆") - org-superstar-item-bullet-alist '((?+ . ?➤) (?- . ?✦)) ; changes +/- symbols in item lists - org-log-done 'time - org-hide-emphasis-markers t - ;; ex. of org-link-abbrev-alist in action - ;; [[arch-wiki:Name_of_Page][Description]] - org-link-abbrev-alist ; This overwrites the default Doom org-link-abbrev-list - '(("google" . "http://www.google.com/search?q=") - ("arch-wiki" . "https://wiki.archlinux.org/index.php/") - ("ddg" . "https://duckduckgo.com/?q=") - ("wiki" . "https://en.wikipedia.org/wiki/")) - org-todo-keywords ; This overwrites the default Doom org-todo-keywords - '((sequence - "TODO(t)" ; A task that is ready to be tackled - "BLOG(b)" ; Blog writing assignments - "GYM(g)" ; Things to accomplish at the gym - "PROJ(p)" ; A project that contains other tasks - "VIDEO(v)" ; Video assignments - "WAIT(w)" ; Something is holding up this task - "|" ; The pipe necessary to separate "active" states and "inactive" states - "DONE(d)" ; Task has been completed - "CANCELLED(c)" )))) ; Task has been cancelled - -(defun dt/org-colors-doom-one () - "Enable Doom One colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#51afef" ultra-bold) - (org-level-2 1.6 "#c678dd" extra-bold) - (org-level-3 1.5 "#98be65" bold) - (org-level-4 1.4 "#da8548" semi-bold) - (org-level-5 1.3 "#5699af" normal) - (org-level-6 1.2 "#a9a1e1" normal) - (org-level-7 1.1 "#46d9ff" normal) - (org-level-8 1.0 "#ff6c6b" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-dracula () - "Enable Dracula colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#8be9fd" ultra-bold) - (org-level-2 1.6 "#bd93f9" extra-bold) - (org-level-3 1.5 "#50fa7b" bold) - (org-level-4 1.4 "#ff79c6" semi-bold) - (org-level-5 1.3 "#9aedfe" normal) - (org-level-6 1.2 "#caa9fa" normal) - (org-level-7 1.1 "#5af78e" normal) - (org-level-8 1.0 "#ff92d0" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-gruvbox-dark () - "Enable Gruvbox Dark colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#458588" ultra-bold) - (org-level-2 1.6 "#b16286" extra-bold) - (org-level-3 1.5 "#98971a" bold) - (org-level-4 1.4 "#fb4934" semi-bold) - (org-level-5 1.3 "#83a598" normal) - (org-level-6 1.2 "#d3869b" normal) - (org-level-7 1.1 "#d79921" normal) - (org-level-8 1.0 "#8ec07c" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-monokai-pro () - "Enable Monokai Pro colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#78dce8" ultra-bold) - (org-level-2 1.6 "#ab9df2" extra-bold) - (org-level-3 1.5 "#a9dc76" bold) - (org-level-4 1.4 "#fc9867" semi-bold) - (org-level-5 1.3 "#ff6188" normal) - (org-level-6 1.2 "#ffd866" normal) - (org-level-7 1.1 "#78dce8" normal) - (org-level-8 1.0 "#ab9df2" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-nord () - "Enable Nord colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#81a1c1" ultra-bold) - (org-level-2 1.6 "#b48ead" extra-bold) - (org-level-3 1.5 "#a3be8c" bold) - (org-level-4 1.4 "#ebcb8b" semi-bold) - (org-level-5 1.3 "#bf616a" normal) - (org-level-6 1.2 "#88c0d0" normal) - (org-level-7 1.1 "#81a1c1" normal) - (org-level-8 1.0 "#b48ead" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-oceanic-next () - "Enable Oceanic Next colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#6699cc" ultra-bold) - (org-level-2 1.6 "#c594c5" extra-bold) - (org-level-3 1.5 "#99c794" bold) - (org-level-4 1.4 "#fac863" semi-bold) - (org-level-5 1.3 "#5fb3b3" normal) - (org-level-6 1.2 "#ec5f67" normal) - (org-level-7 1.1 "#6699cc" normal) - (org-level-8 1.0 "#c594c5" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-palenight () - "Enable Palenight colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#82aaff" ultra-bold) - (org-level-2 1.6 "#c792ea" extra-bold) - (org-level-3 1.5 "#c3e88d" bold) - (org-level-4 1.4 "#ffcb6b" semi-bold) - (org-level-5 1.3 "#a3f7ff" normal) - (org-level-6 1.2 "#e1acff" normal) - (org-level-7 1.1 "#f07178" normal) - (org-level-8 1.0 "#ddffa7" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-solarized-dark () - "Enable Solarized Dark colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#268bd2" ultra-bold) - (org-level-2 1.6 "#d33682" extra-bold) - (org-level-3 1.5 "#859900" bold) - (org-level-4 1.4 "#b58900" semi-bold) - (org-level-5 1.3 "#cb4b16" normal) - (org-level-6 1.2 "#6c71c4" normal) - (org-level-7 1.1 "#2aa198" normal) - (org-level-8 1.0 "#657b83" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-solarized-light () - "Enable Solarized Light colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#268bd2" ultra-bold) - (org-level-2 1.6 "#d33682" extra-bold) - (org-level-3 1.5 "#859900" bold) - (org-level-4 1.4 "#b58900" semi-bold) - (org-level-5 1.3 "#cb4b16" normal) - (org-level-6 1.2 "#6c71c4" normal) - (org-level-7 1.1 "#2aa198" normal) - (org-level-8 1.0 "#657b83" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-tomorrow-night () - "Enable Tomorrow Night colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#81a2be" ultra-bold) - (org-level-2 1.6 "#b294bb" extra-bold) - (org-level-3 1.5 "#b5bd68" bold) - (org-level-4 1.4 "#e6c547" semi-bold) - (org-level-5 1.3 "#cc6666" normal) - (org-level-6 1.2 "#70c0ba" normal) - (org-level-7 1.1 "#b77ee0" normal) - (org-level-8 1.0 "#9ec400" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -;; Load our desired dt/org-colors-* theme on startup -(dt/org-colors-tomorrow-night) - -(setq org-journal-dir "~/nc/Org/journal/" - org-journal-date-prefix "* " - org-journal-time-prefix "** " - org-journal-date-format "%B %d, %Y (%A) " - org-journal-file-format "%Y-%m-%d.org") - -(setq org-publish-use-timestamps-flag nil) -(setq org-export-with-broken-links t) - -(use-package! org-auto-tangle - :defer t - :hook (org-mode . org-auto-tangle-mode) - :config - (setq org-auto-tangle-default t)) - -(map! :leader - :desc "Switch to perspective NAME" "DEL" #'persp-switch - :desc "Switch to buffer in perspective" "," #'persp-switch-to-buffer - :desc "Switch to next perspective" "]" #'persp-next - :desc "Switch to previous perspective" "[" #'persp-prev - :desc "Add a buffer current perspective" "+" #'persp-add-buffer - :desc "Remove perspective by name" "-" #'persp-remove-by-name) - -(define-globalized-minor-mode global-rainbow-mode rainbow-mode - (lambda () (rainbow-mode 1))) -(global-rainbow-mode 1 ) - -(map! :leader - (:prefix ("r" . "registers") - :desc "Copy to register" "c" #'copy-to-register - :desc "Frameset to register" "f" #'frameset-to-register - :desc "Insert contents of register" "i" #'insert-register - :desc "Jump to register" "j" #'jump-to-register - :desc "List registers" "l" #'list-registers - :desc "Number to register" "n" #'number-to-register - :desc "Interactively choose a register" "r" #'counsel-register - :desc "View a register" "v" #'view-register - :desc "Window configuration to register" "w" #'window-configuration-to-register - :desc "Increment register" "+" #'increment-register - :desc "Point to register" "SPC" #'point-to-register)) - -(setq shell-file-name "/bin/fish" - vterm-max-scrollback 5000) -(setq eshell-rc-script "~/.config/doom/eshell/profile" - eshell-aliases-file "~/.config/doom/eshell/aliases" - eshell-history-size 5000 - eshell-buffer-maximum-lines 5000 - eshell-hist-ignoredups t - eshell-scroll-to-bottom-on-input t - eshell-destroy-buffer-when-process-dies t - eshell-visual-commands'("bash" "fish" "htop" "ssh" "top" "zsh")) -(map! :leader - :desc "Eshell" "e s" #'eshell - :desc "Eshell popup toggle" "e t" #'+eshell/toggle - :desc "Counsel eshell history" "e h" #'counsel-esh-history - :desc "Vterm popup toggle" "v t" #'+vterm/toggle) - -(defun prefer-horizontal-split () - (set-variable 'split-height-threshold nil t) - (set-variable 'split-width-threshold 40 t)) ; make this as low as needed -(add-hook 'markdown-mode-hook 'prefer-horizontal-split) -(map! :leader - :desc "Clone indirect buffer other window" "b c" #'clone-indirect-buffer-other-window) - -(map! :leader - (:prefix ("w" . "window") - :desc "Winner redo" "" #'winner-redo - :desc "Winner undo" "" #'winner-undo)) - -(map! :leader - :desc "Zap to char" "z" #'zap-to-char - :desc "Zap up to char" "Z" #'zap-up-to-char) diff --git a/new-config/.config/doom/config.org b/new-config/.config/doom/config.org deleted file mode 100644 index 65aacd666..000000000 --- a/new-config/.config/doom/config.org +++ /dev/null @@ -1,1018 +0,0 @@ -#+TITLE: DRK's Doom Emacs Config -#+AUTHOR: Clay Gomera (Drake) -#+DESCRIPTION: DRK's personal Doom Emacs config. -#+STARTUP: showeverything -#+PROPERTY: header-args :tangle config.el - -* TABLE OF CONTENTS :toc: -- [[#about-this-config][ABOUT THIS CONFIG]] -- [[#beacon][BEACON]] -- [[#bookmarks-and-buffers][BOOKMARKS AND BUFFERS]] - - [[#bookmarks][Bookmarks]] - - [[#buffers][Buffers]] - - [[#global-auto-revert][Global Auto Revert]] - - [[#keybindings-within-ibuffer-mode][Keybindings within ibuffer mode]] -- [[#calendar][CALENDAR]] -- [[#centaur-tabs][CENTAUR-TABS]] -- [[#clippy][CLIPPY]] -- [[#dashboard][DASHBOARD]] - - [[#configuring-dashboard][Configuring Dashboard]] - - [[#dashboard-in-emacsclient][Dashboard in Emacsclient]] -- [[#dired][DIRED]] - - [[#keybindings-to-open-dired][Keybindings To Open Dired]] - - [[#keybindings-within-dired][Keybindings Within Dired]] - - [[#keybindings-within-dired-with-peep-dired-mode-enabled][Keybindings Within Dired With Peep-Dired-Mode Enabled]] - - [[#making-deleted-files-go-to-trash-can][Making deleted files go to trash can]] -- [[#doom-theme][DOOM THEME]] -- [[#emojis][EMOJIS]] -- [[#evaluate-elisp-expressions][EVALUATE ELISP EXPRESSIONS]] -- [[#eww][EWW]] -- [[#fonts][FONTS]] -- [[#insert-date][INSERT DATE]] -- [[#ivy][IVY]] - - [[#ivy-posframe][IVY-POSFRAME]] - - [[#ivy-keybindings][IVY KEYBINDINGS]] -- [[#line-settings][LINE SETTINGS]] -- [[#markdown][MARKDOWN]] -- [[#minimap][MINIMAP]] -- [[#modeline][MODELINE]] -- [[#mouse-support][MOUSE SUPPORT]] -- [[#neotree][NEOTREE]] -- [[#open-specific-files][OPEN SPECIFIC FILES]] -- [[#org-mode][ORG MODE]] - - [[#org-fonts][Org fonts]] - - [[#org-journal][Org-journal]] - - [[#org-publish][Org-publish]] - - [[#org-auto-tangle][Org-auto-tangle]] -- [[#perspective][PERSPECTIVE]] -- [[#rainbow-mode][RAINBOW MODE]] -- [[#registers][REGISTERS]] -- [[#shells][SHELLS]] -- [[#splits][SPLITS]] -- [[#winner-mode][WINNER MODE]] -- [[#zap-to-char][ZAP TO CHAR]] - -* ABOUT THIS CONFIG -This is my personal Doom Emacs config. Doom Emacs is a distribution of Emacs that uses the "evil" keybindings (Vim keybindings) and includes a number of nice extensions and a bit of configuration out of the box. I am maintaining this config not just for myself, but also for those that want to explore some of what is possible with Emacs. I will add a lot of examples of plugins and settings, some of them I may not even use personally. I do this because many people following me on YouTube look at my configs as "documentation". This config is a fork of DistroTube's config. - -* BEACON -Never lose your cursor. When you scroll, your cursor will shine! This is a global minor-mode. Turn it on everywhere with: - -#+begin_src emacs-lisp -(beacon-mode 1) -#+end_src - -* BOOKMARKS AND BUFFERS -Doom Emacs uses 'SPC b' for keybindings related to bookmarks and buffers. - -** Bookmarks -Bookmarks are somewhat like registers in that they record positions you can jump to. Unlike registers, they have long names, and they persist automatically from one Emacs session to the next. The prototypical use of bookmarks is to record where you were reading in various files. - -#+BEGIN_SRC emacs-lisp -(map! :leader - (:prefix ("b". "buffer") - :desc "List bookmarks" "L" #'list-bookmarks - :desc "Save current bookmarks to bookmark file" "w" #'bookmark-save)) -#+END_SRC - -** Buffers -Regarding /buffers/, the text you are editing in Emacs resides in an object called a /buffer/. Each time you visit a file, a buffer is used to hold the file’s text. Each time you invoke Dired, a buffer is used to hold the directory listing. /Ibuffer/ is a program that lists all of your Emacs /buffers/, allowing you to navigate between them and filter them. - -| COMMAND | DESCRIPTION | KEYBINDING | -|-----------------+----------------------+------------| -| ibuffer | Launch ibuffer | SPC b i | -| kill-buffer | Kill current buffer | SPC b k | -| next-buffer | Goto next buffer | SPC b n | -| previous-buffer | Goto previous buffer | SPC b p | -| save-buffer | Save current buffer | SPC b s | - -** Global Auto Revert -A buffer can get out of sync with respect to its visited file on disk if that file is changed by another program. To keep it up to date, you can enable Auto Revert mode by typing M-x auto-revert-mode, or you can set it to be turned on globally with 'global-auto-revert-mode'. I have also turned on Global Auto Revert on non-file buffers, which is especially useful for 'dired' buffers. - -#+begin_src emacs-lisp -(global-auto-revert-mode 1) -(setq global-auto-revert-non-file-buffers t) -#+end_src - -** Keybindings within ibuffer mode -| COMMAND | DESCRIPTION | KEYBINDING | -|-----------------------------------+----------------------------------------+------------| -| ibuffer-mark-forward | Mark the buffer | m | -| ibuffer-unmark-forward | Unmark the buffer | u | -| ibuffer-do-kill-on-deletion-marks | Kill the marked buffers | x | -| ibuffer-filter-by-content | Ibuffer filter by content | f c | -| ibuffer-filter-by-directory | Ibuffer filter by directory | f d | -| ibuffer-filter-by-filename | Ibuffer filter by filename (full path) | f f | -| ibuffer-filter-by-mode | Ibuffer filter by mode | f m | -| ibuffer-filter-by-name | Ibuffer filter by name | f n | -| ibuffer-filter-disable | Disable ibuffer filter | f x | -| ibuffer-do-kill-lines | Hide marked buffers | g h | -| ibuffer-update | Restore hidden buffers | g H | - -#+begin_src emacs-lisp -(evil-define-key 'normal ibuffer-mode-map - (kbd "f c") 'ibuffer-filter-by-content - (kbd "f d") 'ibuffer-filter-by-directory - (kbd "f f") 'ibuffer-filter-by-filename - (kbd "f m") 'ibuffer-filter-by-mode - (kbd "f n") 'ibuffer-filter-by-name - (kbd "f x") 'ibuffer-filter-disable - (kbd "g h") 'ibuffer-do-kill-lines - (kbd "g H") 'ibuffer-update) -#+end_src - -* CALENDAR -Let's make a 12-month calendar available so we can have a calendar app that, when we click on time/date in xmobar, we get a nice 12-month calendar to view. - -This is a modification of: http://homepage3.nifty.com/oatu/emacs/calendar.html -See also: https://stackoverflow.com/questions/9547912/emacs-calendar-show-more-than-3-months - -#+begin_src emacs-lisp -;; https://stackoverflow.com/questions/9547912/emacs-calendar-show-more-than-3-months -(defun dt/year-calendar (&optional year) - (interactive) - (require 'calendar) - (let* ( - (current-year (number-to-string (nth 5 (decode-time (current-time))))) - (month 0) - (year (if year year (string-to-number (format-time-string "%Y" (current-time)))))) - (switch-to-buffer (get-buffer-create calendar-buffer)) - (when (not (eq major-mode 'calendar-mode)) - (calendar-mode)) - (setq displayed-month month) - (setq displayed-year year) - (setq buffer-read-only nil) - (erase-buffer) - ;; horizontal rows - (dotimes (j 4) - ;; vertical columns - (dotimes (i 3) - (calendar-generate-month - (setq month (+ month 1)) - year - ;; indentation / spacing between months - (+ 5 (* 25 i)))) - (goto-char (point-max)) - (insert (make-string (- 10 (count-lines (point-min) (point-max))) ?\n)) - (widen) - (goto-char (point-max)) - (narrow-to-region (point-max) (point-max))) - (widen) - (goto-char (point-min)) - (setq buffer-read-only t))) - -(defun dt/scroll-year-calendar-forward (&optional arg event) - "Scroll the yearly calendar by year in a forward direction." - (interactive (list (prefix-numeric-value current-prefix-arg) - last-nonmenu-event)) - (unless arg (setq arg 0)) - (save-selected-window - (if (setq event (event-start event)) (select-window (posn-window event))) - (unless (zerop arg) - (let* ( - (year (+ displayed-year arg))) - (dt/year-calendar year))) - (goto-char (point-min)) - (run-hooks 'calendar-move-hook))) - -(defun dt/scroll-year-calendar-backward (&optional arg event) - "Scroll the yearly calendar by year in a backward direction." - (interactive (list (prefix-numeric-value current-prefix-arg) - last-nonmenu-event)) - (dt/scroll-year-calendar-forward (- (or arg 1)) event)) - -(map! :leader - :desc "Scroll year calendar backward" "" #'dt/scroll-year-calendar-backward - :desc "Scroll year calendar forward" "" #'dt/scroll-year-calendar-forward) - -(defalias 'year-calendar 'dt/year-calendar) -#+end_src - -Let's also play around with calfw. -#+begin_src emacs-lisp -(use-package! calfw) -(use-package! calfw-org) -#+end_src - -* CENTAUR-TABS -To use tabs in Doom Emacs, be sure to uncomment "tabs" in Doom's init.el. Displays tabs at the top of the window similar to tabbed web browsers such as Firefox. I don't actually use tabs in Emacs. I placed this in my config to help others who may want tabs. In the default configuration of Doom Emacs, 'SPC t' is used for "toggle" keybindings, so I choose 'SPC t c' to toggle centaur-tabs. The "g" prefix for keybindings is used for a bunch of evil keybindings in Doom, but "g" plus the arrow keys were not used, so I thought I would bind those for tab navigation. But I did leave the default "g t" and "g T" intact if you prefer to use those for centaur-tabs-forward/backward. - -| COMMAND | DESCRIPTION | KEYBINDING | -|-----------------------------+---------------------------+------------------| -| centaur-tabs-mode | /Toggle tabs globally/ | SPC t c | -| centaur-tabs-local-mode | /Toggle tabs local display/ | SPC t C | -| centaur-tabs-forward | /Next tab/ | g or g t | -| centaur-tabs-backward | /Previous tab/ | g or g T | -| centaur-tabs-forward-group | /Next tab group/ | g | -| centaur-tabs-backward-group | /Previous tab group/ | g | - -#+BEGIN_SRC emacs-lisp -(setq centaur-tabs-set-bar 'over - centaur-tabs-set-icons t - centaur-tabs-gray-out-icons 'buffer - centaur-tabs-height 24 - centaur-tabs-set-modified-marker t - centaur-tabs-style "bar" - centaur-tabs-modified-marker "•") -(map! :leader - :desc "Toggle tabs globally" "t c" #'centaur-tabs-mode - :desc "Toggle tabs local display" "t C" #'centaur-tabs-local-mode) -(evil-define-key 'normal centaur-tabs-mode-map (kbd "g ") 'centaur-tabs-forward ; default Doom binding is 'g t' - (kbd "g ") 'centaur-tabs-backward ; default Doom binding is 'g T' - (kbd "g ") 'centaur-tabs-forward-group - (kbd "g ") 'centaur-tabs-backward-group) -#+END_SRC - -* CLIPPY -Gives us a popup box with "Clippy, the paper clip". You can make him say various things by calling 'clippy-say' function. But the more useful functions of clippy are the two describe functions provided: 'clippy-describe-function' and 'clippy-describe-variable'. Hit the appropriate keybinding while the point is over a function/variable to call it. A popup with helpful clippy will appear, telling you about the function/variable (using describe-function and describe-variable respectively). - -| COMMAND | DESCRIPTION | KEYBINDING | -|--------------------------+---------------------------------------+------------| -| clippy-describe-function | /Clippy describes function under point/ | SPC c h f | -| clippy-describe-variable | /Clippy describes variable under point/ | SPC c h v | - -#+begin_src emacs-lisp -(map! :leader - (:prefix ("c h" . "Help info from Clippy") - :desc "Clippy describes function under point" "f" #'clippy-describe-function - :desc "Clippy describes variable under point" "v" #'clippy-describe-variable)) -#+end_src - -* DASHBOARD -Emacs Dashboard is an extensible startup screen showing you recent files, bookmarks, agenda items and an Emacs banner. - -** Configuring Dashboard -#+begin_src emacs-lisp -(use-package dashboard - :init ;; tweak dashboard config before loading it - (setq dashboard-set-heading-icons t) - (setq dashboard-set-file-icons t) - (setq dashboard-banner-logo-title "\nKEYBINDINGS:\ -\nFind file (SPC .) \ -Open buffer list (SPC b i)\ -\nFind recent files (SPC f r) \ -Open the eshell (SPC e s)\ -\nOpen dired file manager (SPC d d) \ -List of keybindings (SPC h b b)") - ;;(setq dashboard-startup-banner 'logo) ;; use standard emacs logo as banner - (setq initial-buffer-choice (lambda () (get-buffer "*dashboard*"))) - (setq dashboard-startup-banner "~/.config/doom/emacs-dash.txt") ;; use custom image as banner - (setq dashboard-center-content nil) ;; set to 't' for centered content - (setq dashboard-items '((recents . 5) - (agenda . 5 ) - (bookmarks . 5) - (projects . 5) - (registers . 5))) - :config - (dashboard-setup-startup-hook) - (dashboard-modify-heading-icons '((recents . "file-text") - (bookmarks . "book")))) -#+end_src - -** Dashboard in Emacsclient -This setting ensures that emacsclient always opens on *dashboard* rather than *scratch*. -#+begin_src emacs-lisp -(setq doom-fallback-buffer "*dashboard*") -#+end_src - -* DIRED -Dired is the file manager within Emacs. Below, I setup keybindings for image previews (peep-dired). Doom Emacs does not use 'SPC d' for any of its keybindings, so I've chosen the format of 'SPC d' plus 'key'. - -** Keybindings To Open Dired - -| COMMAND | DESCRIPTION | KEYBINDING | -|------------+------------------------------------+------------| -| dired | /Open dired file manager/ | SPC d d | -| dired-jump | /Jump to current directory in dired/ | SPC d j | - -** Keybindings Within Dired -*** Basic dired commands - -| COMMAND | DESCRIPTION | KEYBINDING | -|-------------------------+---------------------------------------------+------------| -| dired-view-file | /View file in dired/ | SPC d v | -| dired-up-directory | /Go up in directory tree/ | h | -| dired-find-file | /Go down in directory tree (or open if file)/ | l | -| dired-next-line | Move down to next line | j | -| dired-previous-line | Move up to previous line | k | -| dired-mark | Mark file at point | m | -| dired-unmark | Unmark file at point | u | -| dired-do-copy | Copy current file or marked files | C | -| dired-do-rename | Rename current file or marked files | R | -| dired-hide-details | Toggle detailed listings on/off | ( | -| dired-git-info-mode | Toggle git information on/off | ) | -| dired-create-directory | Create new empty directory | + | -| dired-diff | Compare file at point with another | = | -| dired-subtree-toggle | Toggle viewing subtree at point | TAB | - -*** Dired commands using regex - -| COMMAND | DESCRIPTION | KEYBINDING | -|-------------------------+----------------------------+------------| -| dired-mark-files-regexp | Mark files using regex | % m | -| dired-do-copy-regexp | Copy files using regex | % C | -| dired-do-rename-regexp | Rename files using regex | % R | -| dired-mark-files-regexp | Mark all files using regex | * % | - -*** File permissions and ownership - -| COMMAND | DESCRIPTION | KEYBINDING | -|-----------------+----------------------------------+------------| -| dired-do-chgrp | Change the group of marked files | g G | -| dired-do-chmod | Change the mode of marked files | M | -| dired-do-chown | Change the owner of marked files | O | -| dired-do-rename | Rename file or all marked files | R | - -#+begin_src emacs-lisp -(map! :leader - (:prefix ("d" . "dired") - :desc "Open dired" "d" #'dired - :desc "Dired jump to current" "j" #'dired-jump) - (:after dired - (:map dired-mode-map - :desc "Peep-dired image previews" "d p" #'peep-dired - :desc "Dired view file" "d v" #'dired-view-file))) - -(evil-define-key 'normal dired-mode-map - (kbd "M-RET") 'dired-display-file - (kbd "h") 'dired-up-directory - (kbd "l") 'dired-open-file ; use dired-find-file instead of dired-open. - (kbd "m") 'dired-mark - (kbd "t") 'dired-toggle-marks - (kbd "u") 'dired-unmark - (kbd "C") 'dired-do-copy - (kbd "D") 'dired-do-delete - (kbd "J") 'dired-goto-file - (kbd "M") 'dired-do-chmod - (kbd "O") 'dired-do-chown - (kbd "P") 'dired-do-print - (kbd "R") 'dired-do-rename - (kbd "T") 'dired-do-touch - (kbd "Y") 'dired-copy-filenamecopy-filename-as-kill ; copies filename to kill ring. - (kbd "+") 'dired-create-directory - (kbd "-") 'dired-up-directory - (kbd "% l") 'dired-downcase - (kbd "% u") 'dired-upcase - (kbd "; d") 'epa-dired-do-decrypt - (kbd "; e") 'epa-dired-do-encrypt) -;; Get file icons in dired -(add-hook 'dired-mode-hook 'all-the-icons-dired-mode) -;; With dired-open plugin, you can launch external programs for certain extensions -;; For example, I set all .png files to open in 'sxiv' and all .mp4 files to open in 'mpv' -(setq dired-open-extensions '(("gif" . "sxiv") - ("jpg" . "sxiv") - ("png" . "sxiv") - ("mkv" . "mpv") - ("mp4" . "mpv"))) -#+end_src - -** Keybindings Within Dired With Peep-Dired-Mode Enabled -If peep-dired is enabled, you will get image previews as you go up/down with 'j' and 'k' - -| COMMAND | DESCRIPTION | KEYBINDING | -|----------------------+------------------------------------------+------------| -| peep-dired | /Toggle previews within dired/ | SPC d p | -| peep-dired-next-file | /Move to next file in peep-dired-mode/ | j | -| peep-dired-prev-file | /Move to previous file in peep-dired-mode/ | k | - -#+BEGIN_SRC emacs-lisp -(evil-define-key 'normal peep-dired-mode-map - (kbd "j") 'peep-dired-next-file - (kbd "k") 'peep-dired-prev-file) -(add-hook 'peep-dired-hook 'evil-normalize-keymaps) -#+END_SRC - -** Making deleted files go to trash can -#+begin_src emacs-lisp -(setq delete-by-moving-to-trash t - trash-directory "~/.local/share/Trash/files/") -#+end_src - -* DOOM THEME -Setting the theme to doom-one. To try out new themes, I set a keybinding for counsel-load-theme with 'SPC h t'. - -#+BEGIN_SRC emacs-lisp -(setq doom-theme 'doom-gruvbox) -(map! :leader - :desc "Load new theme" "h t" #'counsel-load-theme) -#+END_SRC - -* EMOJIS -Emojify is an Emacs extension to display emojis. It can display github style emojis like :smile: or plain ascii ones like :). - -#+begin_src emacs-lisp -(use-package emojify - :hook (after-init . global-emojify-mode)) -#+end_src - -* EVALUATE ELISP EXPRESSIONS -Changing some keybindings from their defaults to better fit with Doom Emacs, and to avoid conflicts with my window managers which sometimes use the control key in their keybindings. By default, Doom Emacs does not use 'SPC e' for anything, so I choose to use the format 'SPC e' plus 'key' for these (I also use 'SPC e' for 'eww' keybindings). - -| COMMAND | DESCRIPTION | KEYBINDING | -|-----------------+----------------------------------------------+------------| -| eval-buffer | /Evaluate elisp in buffer/ | SPC e b | -| eval-defun | /Evaluate the defun containing or after point/ | SPC e d | -| eval-expression | /Evaluate an elisp expression/ | SPC e e | -| eval-last-sexp | /Evaluate elisp expression before point/ | SPC e l | -| eval-region | /Evaluate elisp in region/ | SPC e r | - -#+Begin_src emacs-lisp -(map! :leader - (:prefix ("e". "evaluate/EWW") - :desc "Evaluate elisp in buffer" "b" #'eval-buffer - :desc "Evaluate defun" "d" #'eval-defun - :desc "Evaluate elisp expression" "e" #'eval-expression - :desc "Evaluate last sexpression" "l" #'eval-last-sexp - :desc "Evaluate elisp in region" "r" #'eval-region)) -#+END_SRC - -* EWW -EWW is the Emacs Web Wowser, the builtin browser in Emacs. Below I set urls to open in a specific browser (eww) with browse-url-browser-function. By default, Doom Emacs does not use 'SPC e' for anything, so I choose to use the format 'SPC e' plus 'key' for these (I also use 'SPC e' for 'eval' keybindings). I chose to use 'SPC s w' for eww-search-words because Doom Emacs uses 'SPC s' for 'search' commands. - -#+BEGIN_SRC emacs-lisp -(setq browse-url-browser-function 'eww-browse-url) -(map! :leader - :desc "Search web for text between BEG/END" - "s w" #'eww-search-words - (:prefix ("e" . "evaluate/EWW") - :desc "Eww web browser" "w" #'eww - :desc "Eww reload page" "R" #'eww-reload)) -#+END_SRC - -* FONTS -Settings related to fonts within Doom Emacs: -+ 'doom-font' -- standard monospace font that is used for most things in Emacs. -+ 'doom-variable-pitch-font' -- variable font which is useful in some Emacs plugins. -+ 'doom-big-font' -- used in doom-big-font-mode; useful for presentations. -+ 'font-lock-comment-face' -- for comments. -+ 'font-lock-keyword-face' -- for keywords with special significanclike 'setq' in elisp. - -#+BEGIN_SRC emacs-lisp -(setq doom-font (font-spec :family "mononoki Nerd Font" :size 15) - doom-variable-pitch-font (font-spec :family "mononoki Nerd Font" :size 15) - doom-big-font (font-spec :family "mononoki Nerd Font" :size 20)) -(after! doom-themes - (setq doom-themes-enable-bold t - doom-themes-enable-italic t)) -(custom-set-faces! - '(font-lock-comment-face :slant italic) - '(font-lock-keyword-face :slant italic)) -#+END_SRC - -* INSERT DATE -Some custom functions to insert the date. The function 'insert-todays-date' can be used one of three different ways: (1) just the keybinding without the universal argument prefix, (2) with one universal argument prefix, or (3) with two universal argument prefixes. The universal argument prefix is 'SPC-u' in Doom Emacs (C-u in standard GNU Emacs). The function 'insert-any-date' only outputs to one format, which is the same format as 'insert-todays-date' without a prefix. - -| COMMAND | EXAMPLE OUTPUT | KEYBINDING | -|-----------------------+---------------------------+-----------------------| -| dt/insert-todays-date | Friday, November 19, 2021 | SPC i d t | -| dt/insert-todays-date | 11-19-2021 | SPC u SPC i d t | -| dt/insert-todays-date | 2021-11-19 | SPC u SPC u SPC i d t | -| dt/insert-any-date | Friday, November 19, 2021 | SPC i d a | - -#+begin_src emacs-lisp -(defun dt/insert-todays-date (prefix) - (interactive "P") - (let ((format (cond - ((not prefix) "%A, %B %d, %Y") - ((equal prefix '(4)) "%m-%d-%Y") - ((equal prefix '(16)) "%Y-%m-%d")))) - (insert (format-time-string format)))) - -(require 'calendar) -(defun dt/insert-any-date (date) - "Insert DATE using the current locale." - (interactive (list (calendar-read-date))) - (insert (calendar-date-string date))) - -(map! :leader - (:prefix ("i d" . "Insert date") - :desc "Insert any date" "a" #'dt/insert-any-date - :desc "Insert todays date" "t" #'dt/insert-todays-date)) -#+end_src - -* IVY -Ivy is a generic completion mechanism for Emacs. - -** IVY-POSFRAME -Ivy-posframe is an ivy extension, which lets ivy use posframe to show its candidate menu. Some of the settings below involve: -+ ivy-posframe-display-functions-alist -- sets the display position for specific programs -+ ivy-posframe-height-alist -- sets the height of the list displayed for specific programs - -Available functions (positions) for 'ivy-posframe-display-functions-alist' -+ ivy-posframe-display-at-frame-center -+ ivy-posframe-display-at-window-center -+ ivy-posframe-display-at-frame-bottom-left -+ ivy-posframe-display-at-window-bottom-left -+ ivy-posframe-display-at-frame-bottom-window-center -+ ivy-posframe-display-at-point -+ ivy-posframe-display-at-frame-top-center - -=NOTE:= If the setting for 'ivy-posframe-display' is set to 'nil' (false), anything that is set to 'ivy-display-function-fallback' will just default to their normal position in Doom Emacs (usually a bottom split). However, if this is set to 't' (true), then the fallback position will be centered in the window. - -#+BEGIN_SRC emacs-lisp -(setq ivy-posframe-display-functions-alist - '((swiper . ivy-posframe-display-at-point) - (complete-symbol . ivy-posframe-display-at-point) - (counsel-M-x . ivy-display-function-fallback) - (counsel-esh-history . ivy-posframe-display-at-window-center) - (counsel-describe-function . ivy-display-function-fallback) - (counsel-describe-variable . ivy-display-function-fallback) - (counsel-find-file . ivy-display-function-fallback) - (counsel-recentf . ivy-display-function-fallback) - (counsel-register . ivy-posframe-display-at-frame-bottom-window-center) - (dmenu . ivy-posframe-display-at-frame-top-center) - (nil . ivy-posframe-display)) - ivy-posframe-height-alist - '((swiper . 20) - (dmenu . 20) - (t . 10))) -(ivy-posframe-mode 1) ; 1 enables posframe-mode, 0 disables it. -#+END_SRC - -** IVY KEYBINDINGS -By default, Doom Emacs does not use 'SPC v', so the format I use for these bindings is 'SPC v' plus 'key'. - -#+BEGIN_SRC emacs-lisp -(map! :leader - (:prefix ("v" . "Ivy") - :desc "Ivy push view" "v p" #'ivy-push-view - :desc "Ivy switch view" "v s" #'ivy-switch-view)) -#+END_SRC - -* LINE SETTINGS -I set comment-line to 'SPC TAB TAB' which is a rather comfortable keybinding for me on my ZSA Moonlander keyboard. The standard Emacs keybinding for comment-line is 'C-x C-;'. The other keybindings are for commands that toggle on/off various line-related settings. Doom Emacs uses 'SPC t' for "toggle" commands, so I choose 'SPC t' plus 'key' for those bindings. - -| COMMAND | DESCRIPTION | KEYBINDING | -|--------------------------+-------------------------------------------+-------------| -| comment-line | /Comment or uncomment lines/ | SPC TAB TAB | -| hl-line-mode | /Toggle line highlighting in current frame/ | SPC t h | -| global-hl-line-mode | /Toggle line highlighting globally/ | SPC t H | -| doom/toggle-line-numbers | /Toggle line numbers/ | SPC t l | -| toggle-truncate-lines | /Toggle truncate lines/ | SPC t t | - -#+BEGIN_SRC emacs-lisp -(setq display-line-numbers-type t) -(map! :leader - :desc "Comment or uncomment lines" "TAB TAB" #'comment-line - (:prefix ("t" . "toggle") - :desc "Toggle line numbers" "l" #'doom/toggle-line-numbers - :desc "Toggle line highlight in frame" "h" #'hl-line-mode - :desc "Toggle line highlight globally" "H" #'global-hl-line-mode - :desc "Toggle truncate lines" "t" #'toggle-truncate-lines)) -#+END_SRC - -* MARKDOWN - -#+begin_src emacs-lisp -(custom-set-faces - '(markdown-header-face ((t (:inherit font-lock-function-name-face :weight bold :family "variable-pitch")))) - '(markdown-header-face-1 ((t (:inherit markdown-header-face :height 1.7)))) - '(markdown-header-face-2 ((t (:inherit markdown-header-face :height 1.6)))) - '(markdown-header-face-3 ((t (:inherit markdown-header-face :height 1.5)))) - '(markdown-header-face-4 ((t (:inherit markdown-header-face :height 1.4)))) - '(markdown-header-face-5 ((t (:inherit markdown-header-face :height 1.3)))) - '(markdown-header-face-6 ((t (:inherit markdown-header-face :height 1.2))))) -#+end_src - -* MINIMAP -A minimap sidebar displaying a smaller version of the current buffer on either the left or right side. It highlights the currently shown region and updates its position automatically. Be aware that this minimap program does not work in Org documents. This is not unusual though because I have tried several minimap programs and none of them can handle Org. - -| COMMAND | DESCRIPTION | KEYBINDING | -|--------------+-------------------------------------------+------------| -| minimap-mode | /Toggle minimap-mode/ | SPC t m | - -#+begin_src emacs-lisp -(setq minimap-window-location 'right) -(map! :leader - (:prefix ("t" . "toggle") - :desc "Toggle minimap-mode" "m" #'minimap-mode)) -#+end_src - -* MODELINE -The modeline is the bottom status bar that appears in Emacs windows. For more information on what is available to configure in the Doom modeline, check out: -https://github.com/seagle0128/doom-modeline - -#+begin_src emacs-lisp -(set-face-attribute 'mode-line nil :font "mononoki Nerd Font-13") -(setq doom-modeline-height 30 ;; sets modeline height - doom-modeline-bar-width 5 ;; sets right bar width - doom-modeline-persp-name t ;; adds perspective name to modeline - doom-modeline-persp-icon t) ;; adds folder icon next to persp name -#+end_src - -* MOUSE SUPPORT -Adding mouse support in the terminal version of Emacs. - -#+begin_src emacs-lisp -(xterm-mouse-mode 1) -#+end_src - -* NEOTREE -Neotree is a file tree viewer. When you open neotree, it jumps to the current file thanks to neo-smart-open. The neo-window-fixed-size setting makes the neotree width be adjustable. Doom Emacs had no keybindings set for neotree. Since Doom Emacs uses 'SPC t' for 'toggle' keybindings, I used 'SPC t n' for toggle-neotree. - -| COMMAND | DESCRIPTION | KEYBINDING | -|----------------+---------------------------+------------| -| neotree-toggle | /Toggle neotree/ | SPC t n | -| neotree- dir | /Open directory in neotree/ | SPC d n | - -#+BEGIN_SRC emacs-lisp -(after! neotree - (setq neo-smart-open t - neo-window-fixed-size nil)) -(after! doom-themes - (setq doom-neotree-enable-variable-pitch t)) -(map! :leader - :desc "Toggle neotree file viewer" "t n" #'neotree-toggle - :desc "Open directory in neotree" "d n" #'neotree-dir) -#+END_SRC - -* OPEN SPECIFIC FILES -Keybindings to open files that I work with all the time using the find-file command, which is the interactive file search that opens with 'C-x C-f' in GNU Emacs or 'SPC f f' in Doom Emacs. These keybindings use find-file non-interactively since we specify exactly what file to open. The format I use for these bindings is 'SPC =' plus 'key' since Doom Emacs does not use 'SPC ='. - -| PATH TO FILE | DESCRIPTION | KEYBINDING | -|--------------------------------+-----------------------+------------| -| ~/Org/agenda.org | /Edit agenda file/ | SPC = a | -| ~/.config/doom/config.org" | /Edit doom config.org/ | SPC = c | -| ~/.config/doom/init.el" | /Edit doom init.el/ | SPC = i | -| ~/.config/doom/packages.el" | /Edit doom packages.el/ | SPC = p | -| ~/.config/doom/eshell/aliases" | /Edit eshell aliases/ | SPC = e a | -| ~/.config/doom/eshell/profile" | /Edit eshell profile/ | SPC = e p | - -#+BEGIN_SRC emacs-lisp -(map! :leader - (:prefix ("=" . "open file") - :desc "Edit agenda file" "a" #'(lambda () (interactive) (find-file "~/Org/agenda.org")) - :desc "Edit doom config.org" "c" #'(lambda () (interactive) (find-file "~/.config/doom/config.org")) - :desc "Edit doom init.el" "i" #'(lambda () (interactive) (find-file "~/.config/doom/init.el")) - :desc "Edit doom packages.el" "p" #'(lambda () (interactive) (find-file "~/.config/doom/packages.el")))) -(map! :leader - (:prefix ("= e" . "open eshell files") - :desc "Edit eshell aliases" "a" #'(lambda () (interactive) (find-file "~/.config/doom/eshell/aliases")) - :desc "Edit eshell profile" "p" #'(lambda () (interactive) (find-file "~/.config/doom/eshell/profile")))) -#+END_SRC - -* ORG MODE -I wrapped most of this block in (after! org). Without this, my settings might be evaluated too early, which will result in my settings being overwritten by Doom's defaults. I have also enabled org-journal, org-superstar and org-roam by adding (+journal +pretty +roam2) to the org section of my Doom Emacs init.el. - -=NOTE:= I have the location of my Org directory and Roam directory in $HOME/nc/ which is a Nextcloud folder that allows me to instantly sync all of my Org work between my home computer and my office computer. - -#+BEGIN_SRC emacs-lisp -(map! :leader - :desc "Org babel tangle" "m B" #'org-babel-tangle) -(after! org - (setq org-directory "~/nc/Org/" - org-agenda-files '("~/nc/Org/agenda.org") - org-default-notes-file (expand-file-name "notes.org" org-directory) - org-ellipsis " ▼ " - org-superstar-headline-bullets-list '("◉" "●" "○" "◆" "●" "○" "◆") - org-superstar-item-bullet-alist '((?+ . ?➤) (?- . ?✦)) ; changes +/- symbols in item lists - org-log-done 'time - org-hide-emphasis-markers t - ;; ex. of org-link-abbrev-alist in action - ;; [[arch-wiki:Name_of_Page][Description]] - org-link-abbrev-alist ; This overwrites the default Doom org-link-abbrev-list - '(("google" . "http://www.google.com/search?q=") - ("arch-wiki" . "https://wiki.archlinux.org/index.php/") - ("ddg" . "https://duckduckgo.com/?q=") - ("wiki" . "https://en.wikipedia.org/wiki/")) - org-todo-keywords ; This overwrites the default Doom org-todo-keywords - '((sequence - "TODO(t)" ; A task that is ready to be tackled - "BLOG(b)" ; Blog writing assignments - "GYM(g)" ; Things to accomplish at the gym - "PROJ(p)" ; A project that contains other tasks - "VIDEO(v)" ; Video assignments - "WAIT(w)" ; Something is holding up this task - "|" ; The pipe necessary to separate "active" states and "inactive" states - "DONE(d)" ; Task has been completed - "CANCELLED(c)" )))) ; Task has been cancelled -#+END_SRC - -** Org fonts -I have created an interactive function for each color scheme (M-x dt/org-colors-*). These functions will set appropriate colors and font attributes for org-level fonts and the org-table font. -#+begin_src emacs-lisp - -(defun dt/org-colors-doom-one () - "Enable Doom One colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#51afef" ultra-bold) - (org-level-2 1.6 "#c678dd" extra-bold) - (org-level-3 1.5 "#98be65" bold) - (org-level-4 1.4 "#da8548" semi-bold) - (org-level-5 1.3 "#5699af" normal) - (org-level-6 1.2 "#a9a1e1" normal) - (org-level-7 1.1 "#46d9ff" normal) - (org-level-8 1.0 "#ff6c6b" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-dracula () - "Enable Dracula colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#8be9fd" ultra-bold) - (org-level-2 1.6 "#bd93f9" extra-bold) - (org-level-3 1.5 "#50fa7b" bold) - (org-level-4 1.4 "#ff79c6" semi-bold) - (org-level-5 1.3 "#9aedfe" normal) - (org-level-6 1.2 "#caa9fa" normal) - (org-level-7 1.1 "#5af78e" normal) - (org-level-8 1.0 "#ff92d0" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-gruvbox-dark () - "Enable Gruvbox Dark colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#458588" ultra-bold) - (org-level-2 1.6 "#b16286" extra-bold) - (org-level-3 1.5 "#98971a" bold) - (org-level-4 1.4 "#fb4934" semi-bold) - (org-level-5 1.3 "#83a598" normal) - (org-level-6 1.2 "#d3869b" normal) - (org-level-7 1.1 "#d79921" normal) - (org-level-8 1.0 "#8ec07c" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-monokai-pro () - "Enable Monokai Pro colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#78dce8" ultra-bold) - (org-level-2 1.6 "#ab9df2" extra-bold) - (org-level-3 1.5 "#a9dc76" bold) - (org-level-4 1.4 "#fc9867" semi-bold) - (org-level-5 1.3 "#ff6188" normal) - (org-level-6 1.2 "#ffd866" normal) - (org-level-7 1.1 "#78dce8" normal) - (org-level-8 1.0 "#ab9df2" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-nord () - "Enable Nord colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#81a1c1" ultra-bold) - (org-level-2 1.6 "#b48ead" extra-bold) - (org-level-3 1.5 "#a3be8c" bold) - (org-level-4 1.4 "#ebcb8b" semi-bold) - (org-level-5 1.3 "#bf616a" normal) - (org-level-6 1.2 "#88c0d0" normal) - (org-level-7 1.1 "#81a1c1" normal) - (org-level-8 1.0 "#b48ead" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-oceanic-next () - "Enable Oceanic Next colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#6699cc" ultra-bold) - (org-level-2 1.6 "#c594c5" extra-bold) - (org-level-3 1.5 "#99c794" bold) - (org-level-4 1.4 "#fac863" semi-bold) - (org-level-5 1.3 "#5fb3b3" normal) - (org-level-6 1.2 "#ec5f67" normal) - (org-level-7 1.1 "#6699cc" normal) - (org-level-8 1.0 "#c594c5" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-palenight () - "Enable Palenight colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#82aaff" ultra-bold) - (org-level-2 1.6 "#c792ea" extra-bold) - (org-level-3 1.5 "#c3e88d" bold) - (org-level-4 1.4 "#ffcb6b" semi-bold) - (org-level-5 1.3 "#a3f7ff" normal) - (org-level-6 1.2 "#e1acff" normal) - (org-level-7 1.1 "#f07178" normal) - (org-level-8 1.0 "#ddffa7" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-solarized-dark () - "Enable Solarized Dark colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#268bd2" ultra-bold) - (org-level-2 1.6 "#d33682" extra-bold) - (org-level-3 1.5 "#859900" bold) - (org-level-4 1.4 "#b58900" semi-bold) - (org-level-5 1.3 "#cb4b16" normal) - (org-level-6 1.2 "#6c71c4" normal) - (org-level-7 1.1 "#2aa198" normal) - (org-level-8 1.0 "#657b83" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-solarized-light () - "Enable Solarized Light colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#268bd2" ultra-bold) - (org-level-2 1.6 "#d33682" extra-bold) - (org-level-3 1.5 "#859900" bold) - (org-level-4 1.4 "#b58900" semi-bold) - (org-level-5 1.3 "#cb4b16" normal) - (org-level-6 1.2 "#6c71c4" normal) - (org-level-7 1.1 "#2aa198" normal) - (org-level-8 1.0 "#657b83" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-tomorrow-night () - "Enable Tomorrow Night colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#81a2be" ultra-bold) - (org-level-2 1.6 "#b294bb" extra-bold) - (org-level-3 1.5 "#b5bd68" bold) - (org-level-4 1.4 "#e6c547" semi-bold) - (org-level-5 1.3 "#cc6666" normal) - (org-level-6 1.2 "#70c0ba" normal) - (org-level-7 1.1 "#b77ee0" normal) - (org-level-8 1.0 "#9ec400" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -;; Load our desired dt/org-colors-* theme on startup -(dt/org-colors-tomorrow-night) - -#+end_src - -** Org-journal -#+begin_src emacs-lisp -(setq org-journal-dir "~/nc/Org/journal/" - org-journal-date-prefix "* " - org-journal-time-prefix "** " - org-journal-date-format "%B %d, %Y (%A) " - org-journal-file-format "%Y-%m-%d.org") -#+end_src - -** Org-publish -#+begin_src emacs-lisp -(setq org-publish-use-timestamps-flag nil) -(setq org-export-with-broken-links t) -#+end_src - -** Org-auto-tangle -=org-auto-tangle= allows you to add the option =#+auto_tangle: t= in your Org file so that it automatically tangles when you save the document. - -#+begin_src emacs-lisp -(use-package! org-auto-tangle - :defer t - :hook (org-mode . org-auto-tangle-mode) - :config - (setq org-auto-tangle-default t)) - -#+end_src - -* PERSPECTIVE -Perspective provides multiple named workspaces (or "perspectives") in Emacs, similar to having multiple desktops in window managers like Awesome and XMonad. Each perspective has its own buffer list and its own window layout, making it easy to work on many separate projects without getting lost in all the buffers. Switching to a perspective activates its window configuration, and when in a perspective, only its buffers are available (by default). Doom Emacs uses 'SPC some_key' for binding some of the perspective commands, so I used this binging format for the perspective bindings that I created.. - -| COMMAND | DESCRIPTION | KEYBINDING | -|----------------------------+-------------------------------------+------------| -| persp-switch | Switch to perspective NAME | SPC DEL | -| persp-switch-to-buffer | Switch to buffer in perspective | SPC , | -| persp-next | Switch to next perspective | SPC ] | -| persp-prev | Switch to previous perspective | SPC [ | -| persp-add-buffer | Add a buffer to current perspective | SPC + | -| persp-remove-by-name | Remove perspective by name | SPC - | -| +workspace/switch-to-{0-9} | Switch to workspace /n/ | SPC 0-9 | - -#+begin_src emacs-lisp -(map! :leader - :desc "Switch to perspective NAME" "DEL" #'persp-switch - :desc "Switch to buffer in perspective" "," #'persp-switch-to-buffer - :desc "Switch to next perspective" "]" #'persp-next - :desc "Switch to previous perspective" "[" #'persp-prev - :desc "Add a buffer current perspective" "+" #'persp-add-buffer - :desc "Remove perspective by name" "-" #'persp-remove-by-name) -#+end_src - -* RAINBOW MODE -Rainbox mode displays the actual color for any hex value color. It's such a nice feature that I wanted it turned on all the time, regardless of what mode I am in. The following creates a global minor mode for rainbow-mode and enables it. - -#+begin_src emacs-lisp -(define-globalized-minor-mode global-rainbow-mode rainbow-mode - (lambda () (rainbow-mode 1))) -(global-rainbow-mode 1 ) -#+end_src - -* REGISTERS -Emacs registers are compartments where you can save text, rectangles and positions for later use. Once you save text or a rectangle in a register, you can copy it into the buffer once or many times; once you save a position in a register, you can jump back to that position once or many times. The default GNU Emacs keybindings for these commands (with the exception of counsel-register) involves 'C-x r' followed by one or more other keys. I wanted to make this a little more user friendly, and since I am using Doom Emacs, I choose to replace the 'C-x r' part of the key chords with 'SPC r'. - -| COMMAND | DESCRIPTION | KEYBINDING | -|----------------------------------+----------------------------------+------------| -| copy-to-register | /Copy to register/ | SPC r c | -| frameset-to-register | /Frameset to register/ | SPC r f | -| insert-register | /Insert contents of register/ | SPC r i | -| jump-to-register | /Jump to register/ | SPC r j | -| list-registers | /List registers/ | SPC r l | -| number-to-register | /Number to register/ | SPC r n | -| counsel-register | /Interactively choose a register/ | SPC r r | -| view-register | /View a register/ | SPC r v | -| window-configuration-to-register | /Window configuration to register/ | SPC r w | -| increment-register | /Increment register/ | SPC r + | -| point-to-register | /Point to register/ | SPC r SPC | - -#+BEGIN_SRC emacs-lisp -(map! :leader - (:prefix ("r" . "registers") - :desc "Copy to register" "c" #'copy-to-register - :desc "Frameset to register" "f" #'frameset-to-register - :desc "Insert contents of register" "i" #'insert-register - :desc "Jump to register" "j" #'jump-to-register - :desc "List registers" "l" #'list-registers - :desc "Number to register" "n" #'number-to-register - :desc "Interactively choose a register" "r" #'counsel-register - :desc "View a register" "v" #'view-register - :desc "Window configuration to register" "w" #'window-configuration-to-register - :desc "Increment register" "+" #'increment-register - :desc "Point to register" "SPC" #'point-to-register)) -#+END_SRC - -* SHELLS -Settings for the various shells and terminal emulators within Emacs. -+ 'shell-file-name' -- sets the shell to be used in M-x shell, M-x term, M-x ansi-term and M-x vterm. -+ 'eshell-aliases-file' -- sets an aliases file for the eshell. - -#+BEGIN_SRC emacs-lisp -(setq shell-file-name "/bin/fish" - vterm-max-scrollback 5000) -(setq eshell-rc-script "~/.config/doom/eshell/profile" - eshell-aliases-file "~/.config/doom/eshell/aliases" - eshell-history-size 5000 - eshell-buffer-maximum-lines 5000 - eshell-hist-ignoredups t - eshell-scroll-to-bottom-on-input t - eshell-destroy-buffer-when-process-dies t - eshell-visual-commands'("bash" "fish" "htop" "ssh" "top" "zsh")) -(map! :leader - :desc "Eshell" "e s" #'eshell - :desc "Eshell popup toggle" "e t" #'+eshell/toggle - :desc "Counsel eshell history" "e h" #'counsel-esh-history - :desc "Vterm popup toggle" "v t" #'+vterm/toggle) -#+END_SRC - -* SPLITS -I set splits to default to opening on the right using 'prefer-horizontal-split'. I set a keybinding for 'clone-indirect-buffer-other-window' for when I want to have the same document in two splits. The text of the indirect buffer is always identical to the text of its base buffer; changes made by editing either one are visible immediately in the other. But in all other respects, the indirect buffer and its base buffer are completely separate. For example, I can fold one split but other will be unfolded. - -#+BEGIN_SRC emacs-lisp -(defun prefer-horizontal-split () - (set-variable 'split-height-threshold nil t) - (set-variable 'split-width-threshold 40 t)) ; make this as low as needed -(add-hook 'markdown-mode-hook 'prefer-horizontal-split) -(map! :leader - :desc "Clone indirect buffer other window" "b c" #'clone-indirect-buffer-other-window) -#+END_SRC - -* WINNER MODE -Winner mode has been included with GNU Emacs since version 20. This is a global minor mode and, when activated, it allows you to “undo” (and “redo”) changes in the window configuration with the key commands 'SCP w ' and 'SPC w '. - -#+BEGIN_SRC emacs-lisp -(map! :leader - (:prefix ("w" . "window") - :desc "Winner redo" "" #'winner-redo - :desc "Winner undo" "" #'winner-undo)) -#+END_SRC - -* ZAP TO CHAR -Emacs provides a 'zap-to-char' command that kills from the current point to a character. It is bound to 'M-z' in standard GNU Emacs but since Doom Emacs uses 'SPC' as its leader key and does not have 'SPC z' binded to anything, it just makes since to use it for 'zap-to-char'. Note that 'zap-to-char' can be used with the universal argument 'SPC u' to modify its behavior. Examples of 'zap-to-char' usage are listed in the table below: - -| KEYBINDING | WHAT IS DOES | -|---------------------------+------------------------------------------------------------| -| SPC z e | deletes all chars to the next occurrence of 'e' | -| SPC u 2 SPC z e | deletes all chars to the second occurrence of 'e' | -| SPC u - SPC z e | deletes all chars to the previous occurrence of 'e' | -| SPC u -2 SPC z e | deletes all chars to the fourth previous occurrence of 'e' | -| SPC u 1 0 0 SPC u SPC z e | deletes all chars to the 100th occurrence of 'e' | - -=TIP:= The universal argument (SPC u) can only take a single integer by default. If you need to use a multi-digit number (like 100 in the last example in the table above), then you must terminate the universal argument with another 'SPC u' after typing the number. - -'zap-up-to-char' is an alternative command that does not zap the char specified. It is binded to 'SPC Z'. It can also be used in conjunction with the universal argument 'SPC u' in similar fashion to the the 'zap-to-char' examples above. - -=NOTE:= Vim (evil mode) has similar functionality builtin. You can delete to the next occurrence of 'e' by using 'dte' in normal. To delete to the next occurrence of 'e' including the 'e', then you would use 'dfe'. And you can modify 'dt' and 'df' by prefixing them with numbers, so '2dte' would delete to the second occurrence of 'e'. - -#+BEGIN_SRC emacs-lisp -(map! :leader - :desc "Zap to char" "z" #'zap-to-char - :desc "Zap up to char" "Z" #'zap-up-to-char) -#+END_SRC diff --git a/new-config/.config/doom/emacs-dash.txt b/new-config/.config/doom/emacs-dash.txt deleted file mode 100644 index 0d0f7a233..000000000 --- a/new-config/.config/doom/emacs-dash.txt +++ /dev/null @@ -1,20 +0,0 @@ - - ================= =============== =============== ======== ======== - \\ . . . . . . .\\ //. . . . . . .\\ //. . . . . . .\\ \\. . .\\// . . // - ||. . ._____. . .|| ||. . ._____. . .|| ||. . ._____. . .|| || . . .\/ . . .|| - || . .|| ||. . || || . .|| ||. . || || . .|| ||. . || ||. . . . . . . || - ||. . || || . .|| ||. . || || . .|| ||. . || || . .|| || . | . . . . .|| - || . .|| ||. _-|| ||-_ .|| ||. . || || . .|| ||. _-|| ||-_.|\ . . . . || - ||. . || ||-' || || `-|| || . .|| ||. . || ||-' || || `|\_ . .|. .|| - || . _|| || || || || ||_ . || || . _|| || || || |\ `-_/| . || - ||_-' || .|/ || || \|. || `-_|| ||_-' || .|/ || || | \ / |-_.|| - || ||_-' || || `-_|| || || ||_-' || || | \ / | `|| - || `' || || `' || || `' || || | \ / | || - || .===' `===. .==='.`===. .===' /==. | \/ | || - || .==' \_|-_ `===. .===' _|_ `===. .===' _-|/ `== \/ | || - || .==' _-' `-_ `=' _-' `-_ `=' _-' `-_ /| \/ | || - || .==' _-' '-__\._-' '-_./__-' `' |. /| | || - ||.==' _-' `' | /==.|| - ==' _-' EMACS \/ `== - \ _-' `-_ / - `'' ``' diff --git a/new-config/.config/doom/eshell/aliases b/new-config/.config/doom/eshell/aliases deleted file mode 100644 index 2edd0e04a..000000000 --- a/new-config/.config/doom/eshell/aliases +++ /dev/null @@ -1,20 +0,0 @@ -# Aliases for emacs commands -alias ff find-file $1 - -# Changing "ls" to "exa" -alias ls exa -al --color=always --group-directories-first $* # my preferred listing -alias la exa -a --color=always --group-directories-first $* # all files and dirs -alias ll exa -l --color=always --group-directories-first $* # long format -alias lt exa -aT --color=always --group-directories-first $* # tree listing -alias l. exa -a1 $* | grep "^\." # list hidden files - -# Aliases for doom emacs utilties -alias doomsync ~/.config/emacs/bin/doom sync -alias doomdoctor ~/.config/emacs/bin/doom doctor -alias doomupgrade ~/.config/emacs/bin/doom upgrade -alias doompurge ~/.config/emacs/bin/doom purge - -# Confirm before overwriting something -alias cp cp -i $1 -alias mv mv -i $1 -alias rm rm -i $1 diff --git a/new-config/.config/doom/init.el b/new-config/.config/doom/init.el deleted file mode 100644 index 1e7dfd5ce..000000000 --- a/new-config/.config/doom/init.el +++ /dev/null @@ -1,191 +0,0 @@ -;;; init.el -*- lexical-binding: t; -*- - -;; This file controls what Doom modules are enabled and what order they load -;; in. Remember to run 'doom sync' after modifying it! - -;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's -;; documentation. There you'll find a "Module Index" link where you'll find -;; a comprehensive list of Doom's modules and what flags they support. - -;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or -;; 'C-c c k' for non-vim users) to view its documentation. This works on -;; flags as well (those symbols that start with a plus). -;; -;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its -;; directory (for easy access to its source code). - -(doom! :input - ;;chinese - ;;japanese - ;;layout ; auie,ctsrnm is the superior home row - - :completion - company ; the ultimate code completion backend - ;;helm ; the *other* search engine for love and life - ;;ido ; the other *other* search engine... - (ivy +fonts +childframe) ; a search engine for love and life - - :ui - ;;deft ; notational velocity for Emacs - doom ; what makes DOOM look the way it does - ;;doom-dashboard ; a nifty splash screen for Emacs - doom-quit ; DOOM quit-message prompts when you quit Emacs - (emoji +unicode) ; 🙂 - ;;fill-column ; a `fill-column' indicator - hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW - ;;hydra - ;;indent-guides ; highlighted indent columns - (ligatures +extras) ; ligatures and symbols to make your code pretty again - ;;minimap ; show a map of the code on the side - modeline ; snazzy, Atom-inspired modeline, plus API - ;;nav-flash ; blink cursor line after big motions - neotree ; a project drawer, like NERDTree for vim - ophints ; highlight the region an operation acts on - (popup +defaults) ; tame sudden yet inevitable temporary windows - tabs ; a tab bar for Emacs - ;;treemacs ; a project drawer, like neotree but cooler - ;;unicode ; extended unicode support for various languages - vc-gutter ; vcs diff in the fringe - vi-tilde-fringe ; fringe tildes to mark beyond EOB - window-select ; visually switch windows - workspaces ; tab emulation, persistence & separate workspaces - zen ; distraction-free coding or writing - - :editor - (evil +everywhere) ; come to the dark side, we have cookies - file-templates ; auto-snippets for empty files - fold ; (nigh) universal code folding - ;;(format +onsave) ; automated prettiness - ;;god ; run Emacs commands without modifier keys - lispy ; vim for lisp, for people who don't like vim - ;;multiple-cursors ; editing in many places at once - ;;objed ; text object editing for the innocent - ;;parinfer ; turn lisp into python, sort of - ;;rotate-text ; cycle region at point between text candidates - snippets ; my elves. They type so I don't have to - ;;word-wrap ; soft wrapping with language-aware indent - - :emacs - (dired +icons) ; making dired pretty [functional] - electric ; smarter, keyword-based electric-indent - (ibuffer +icons) ; interactive buffer management - undo ; persistent, smarter undo for your inevitable mistakes - vc ; version-control and Emacs, sitting in a tree - - :term - eshell ; the elisp shell that works everywhere - ;;shell ; simple shell REPL for Emacs - ;;term ; basic terminal emulator for Emacs - vterm ; the best terminal emulation in Emacs - - :checkers - syntax ; tasing you for every semicolon you forget - (spell +aspell) ; tasing you for misspelling mispelling - grammar ; tasing grammar mistake every you make - - :tools - ;;ansible - ;;debugger ; FIXME stepping through code, to help you add bugs - ;;direnv - ;;docker - ;;editorconfig ; let someone else argue about tabs vs spaces - ;;ein ; tame Jupyter notebooks with emacs - (eval +overlay) ; run code, run (also, repls) - ;;gist ; interacting with github gists - lookup ; navigate your code and its documentation - lsp - magit ; a git porcelain for Emacs - ;;make ; run make tasks from Emacs - ;;pass ; password manager for nerds - pdf ; pdf enhancements - ;;prodigy ; FIXME managing external services & code builders - ;;rgb ; creating color strings - ;;taskrunner ; taskrunner for all your projects - ;;terraform ; infrastructure as code - ;;tmux ; an API for interacting with tmux - ;;upload ; map local to remote projects via ssh/ftp - - :os - ;;(:if IS-MAC macos) ; improve compatibility with macOS - ;;tty ; improve the terminal Emacs experience - - :lang - ;;agda ; types of types of types of types... - cc ; C/C++/Obj-C madness - ;;clojure ; java with a lisp - common-lisp ; if you've seen one lisp, you've seen them all - ;;coq ; proofs-as-programs - ;;crystal ; ruby at the speed of c - csharp ; unity, .NET, and mono shenanigans - ;;data ; config/data formats - ;;(dart +flutter) ; paint ui and not much else - ;;elixir ; erlang done right - ;;elm ; care for a cup of TEA? - emacs-lisp ; drown in parentheses - ;;erlang ; an elegant language for a more civilized age - ;;ess ; emacs speaks statistics - ;;faust ; dsp, but you get to keep your soul - ;;fsharp ; ML stands for Microsoft's Language - ;;fstar ; (dependent) types and (monadic) effects and Z3 - ;;gdscript ; the language you waited for - ;;(go +lsp) ; the hipster dialect - ;;(haskell +dante) ; a language that's lazier than I am - ;;hy ; readability of scheme w/ speed of python - ;;idris ; a language you can depend on - json ; At least it ain't XML - (java +meghanada) ; the poster child for carpal tunnel syndrome - javascript ; all(hope(abandon(ye(who(enter(here)))))) - ;;julia ; a better, faster MATLAB - ;;kotlin ; a better, slicker Java(Script) - latex ; writing papers in Emacs has never been so fun - ;;lean - ;;factor - ;;ledger ; an accounting system in Emacs - lua ; one-based indices? one-based indices - markdown ; writing docs for people to ignore - ;;nim ; python + lisp at the speed of c - ;;nix ; I hereby declare "nix geht mehr!" - ;;ocaml ; an objective camel - (org - +journal ; enable org journal - +pretty ; replace asterisks with pretty org bullets - +publish ; create static websites with org - +roam2) ; org roam v2 - php ; perl's insecure younger brother - ;;plantuml ; diagrams for confusing people more - ;;purescript ; javascript, but functional - python ; beautiful is better than ugly - ;;qt ; the 'cutest' gui framework ever - ;;racket ; a DSL for DSLs - ;;raku ; the artist formerly known as perl6 - ;;rest ; Emacs as a REST client - ;;rst ; ReST in peace - ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} - rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap() - ;;scala ; java, but good - scheme ; a fully conniving family of lisps - sh ; she sells {ba,z,fi}sh shells on the C xor - ;;sml - ;;solidity ; do you need a blockchain? No. - ;;swift ; who asked for emoji variables? - ;;terra ; Earth and Moon in alignment for performance. - web ; the tubes - yaml ; JSON, but readable - - :email - ;;mu4e - ;;smtpmail - ;;notmuch - ;;(wanderlust +gmail) - - :app - ;;calendar - ;;emms - ;;everywhere ; *leave* Emacs!? You must be joking - ;;irc ; how neckbeards socialize - ;;rss ; emacs as an RSS reader - ;;twitter ; twitter client https://twitter.com/vnought - - :config - literate - (default +bindings +smartparens)) diff --git a/new-config/.config/doom/packages.el b/new-config/.config/doom/packages.el deleted file mode 100644 index 91358c0df..000000000 --- a/new-config/.config/doom/packages.el +++ /dev/null @@ -1,85 +0,0 @@ -;; -*- no-byte-compile: t; -*- -;;; $DOOMDIR/packages.el - -;; To install a package with Doom you must declare them here and run 'doom sync' -;; on the command line, then restart Emacs for the changes to take effect -- or -;; use 'M-x doom/reload'. - - -;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror: -;(package! some-package) - -;; To install a package directly from a remote git repo, you must specify a -;; `:recipe'. You'll find documentation on what `:recipe' accepts here: -;; https://github.com/raxod502/straight.el#the-recipe-format -;(package! another-package -; :recipe (:host github :repo "username/repo")) - -;; If the package you are trying to install does not contain a PACKAGENAME.el -;; file, or is located in a subdirectory of the repo, you'll need to specify -;; `:files' in the `:recipe': -;(package! this-package -; :recipe (:host github :repo "username/repo" -; :files ("some-file.el" "src/lisp/*.el"))) - -;; If you'd like to disable a package included with Doom, you can do so here -;; with the `:disable' property: -;(package! builtin-package :disable t) - -;; You can override the recipe of a built in package without having to specify -;; all the properties for `:recipe'. These will inherit the rest of its recipe -;; from Doom or MELPA/ELPA/Emacsmirror: -;(package! builtin-package :recipe (:nonrecursive t)) -;(package! builtin-package-2 :recipe (:repo "myfork/package")) - -;; Specify a `:branch' to install a package from a particular branch or tag. -;; This is required for some packages whose default branch isn't 'master' (which -;; our package manager can't deal with; see raxod502/straight.el#279) -;(package! builtin-package :recipe (:branch "develop")) - -;; Use `:pin' to specify a particular commit to install. -;(package! builtin-package :pin "1a2b3c4d5e") - - -;; Doom's packages are pinned to a specific commit and updated from release to -;; release. The `unpin!' macro allows you to unpin single packages... -;(unpin! pinned-package) -;; ...or multiple packages -;(unpin! pinned-package another-pinned-package) -;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) -;(unpin! t) - -(package! gitconfig-mode - :recipe (:host github :repo "magit/git-modes" - :files ("gitconfig-mode.el"))) -(package! gitignore-mode - :recipe (:host github :repo "magit/git-modes" - :files ("gitignore-mode.el"))) -(package! async) -(package! calfw) -(package! calfw-org) -(package! dashboard) -(package! dired-open) -(package! dired-subtree) -(package! dmenu) -(package! elpher) -(package! emojify) -(package! esxml) -(package! evil-tutor) -(package! ivy-posframe) -(package! mw-thesaurus) -(package! org-board) -(package! org-web-tools) -(package! org-auto-tangle) -(package! pacmacs) -(package! peep-dired) -(package! rainbow-mode) -(package! request) -(package! resize-window) -(package! s) -(package! tldr) -(package! wc-mode) -(package! beacon) -(package! clippy) -(package! minimap) -(package! olivetti) diff --git a/new-config/.config/fish/config.fish b/new-config/.config/fish/config.fish deleted file mode 100644 index 25dacd394..000000000 --- a/new-config/.config/fish/config.fish +++ /dev/null @@ -1,241 +0,0 @@ -## ____ __ -## / __ \_________ _/ /_____ -## / / / / ___/ __ `/ //_/ _ \ -## / /_/ / / / /_/ / ,< / __/ Clay Gomera (Drake) -## /_____/_/ \__,_/_/|_|\___/ My custom fish config -## - -### ADDING TO THE PATH -# First line removes the path; second line sets it. Without the first line, -# your path gets massive and fish becomes very slow. -set -e fish_user_paths -set -U fish_user_paths $HOME/.bin $HOME/.local/bin $HOME/.config/emacs/bin $HOME/Applications /var/lib/flatpak/exports/bin/ $fish_user_paths - -### EXPORT ### -set fish_greeting # Supresses fish's intro message -set TERM "xterm-256color" # Sets the terminal type -set EDITOR "emacsclient -t -a ''" # $EDITOR use Emacs in terminal -set VISUAL "emacsclient -c -a emacs" # $VISUAL use Emacs in GUI mode - -### SET BAT AS MANPAGER -set -x MANPAGER "sh -c 'col -bx | bat -l man -p'" - -### SET EITHER DEFAULT EMACS MODE OR VI MODE ### -function fish_user_key_bindings - # fish_default_key_bindings - fish_vi_key_bindings -end -### END OF VI MODE ### - -### AUTOCOMPLETE AND HIGHLIGHT COLORS ### -set fish_color_normal brcyan -set fish_color_autosuggestion '#504945' -set fish_color_command brcyan -set fish_color_error '#fb4934' -set fish_color_param brcyan - - -### FUNCTIONS ### -# Functions needed for !! and !$ -function __history_previous_command - switch (commandline -t) - case "!" - commandline -t $history[1]; commandline -f repaint - case "*" - commandline -i ! - end -end - -function __history_previous_command_arguments - switch (commandline -t) - case "!" - commandline -t "" - commandline -f history-token-search-backward - case "*" - commandline -i '$' - end -end - -# The bindings for !! and !$ -if [ "$fish_key_bindings" = "fish_vi_key_bindings" ]; - bind -Minsert ! __history_previous_command - bind -Minsert '$' __history_previous_command_arguments -else - bind ! __history_previous_command - bind '$' __history_previous_command_arguments -end - -# Function for creating a backup file -# ex: backup file.txt -# result: copies file as file.txt.bak -function backup --argument filename - cp $filename $filename.bak -end - -# Function for copying files and directories, even recursively. -# ex: copy DIRNAME LOCATIONS -# result: copies the directory and all of its contents. -function copy - set count (count $argv | tr -d \n) - if test "$count" = 2; and test -d "$argv[1]" - set from (echo $argv[1] | trim-right /) - set to (echo $argv[2]) - command cp -r $from $to - else - command cp $argv - end -end - -# Function for printing a column (splits input on whitespace) -# ex: echo 1 2 3 | coln 3 -# output: 3 -function coln - while read -l input - echo $input | awk '{print $'$argv[1]'}' - end -end - -# Function for printing a row -# ex: seq 3 | rown 3 -# output: 3 -function rown --argument index - sed -n "$index p" -end - -# Function for ignoring the first 'n' lines -# ex: seq 10 | skip 5 -# results: prints everything but the first 5 lines -function skip --argument n - tail +(math 1 + $n) -end - -# Function for taking the first 'n' lines -# ex: seq 10 | take 5 -# results: prints only the first 5 lines -function take --argument number - head -$number -end -### END OF FUNCTIONS ### - -### ALIASES ### -# navigation -alias ..='cd ..' -alias ...='cd ../..' -alias .3='cd ../../..' -alias .4='cd ../../../..' -alias .5='cd ../../../../..' - -# vim and emacs -alias vim="emacsclient -t -a ''" - -# newsboat -alias newsboat='newsboat -u ~/.config/newsboat/urls' - -# bat as cat -alias cat='bat' - -# Changing "ls" to "exa" -alias ls='exa -al --color=always --group-directories-first' # my preferred listing -alias la='exa -a --color=always --group-directories-first' # all files and dirs -alias ll='exa -l --color=always --group-directories-first' # long format -alias lt='exa -aT --color=always --group-directories-first' # tree listing -alias l.='exa -a | egrep "^\."' - -# pacman and yay -alias pac-up='yay -Syyu && yay -Syyua' # update the system -alias pac-get='yay -S' # install a program -alias pac-rmv='yay -Rcns' # remove a program -alias pac-rmv-sec='yay -R' # remove a program (secure way) -alias pac-qry='yay -Ss' # search for a program -alias pac-cln='yay -Scc && yay -Rns (pacman -Qtdq)' # clean cache & remove orphaned packages - -# neofetch is f***** slow -alias neofetch="pfetch" - -# Colorize grep output (good for log files) -alias grep='grep --color=auto' -alias egrep='egrep --color=auto' -alias fgrep='fgrep --color=auto' - -# file management -alias fm="vifm" -alias file="vifm" -alias flm="vifm" -alias cp='cp -iv' -alias mv='mv -iv' -alias rm='rm -vI' -alias mkd='mkdir -pv' -alias mkdir='mkdir -pv' - -# audio -alias mx='pulsemixer' -alias amx='alsamixer' -alias mk='cmus' -alias ms='cmus' -alias music='cmus' - -# multimedia scripts -alias fli='flix-cli' -alias ani='ani-cli' -alias aniq='ani-cli -q' - -# adding flags -alias df='df -h' # human-readable sizes -alias free='free -m' # show sizes in MB - -# ps -alias psa="ps auxf" -alias psgrep="ps aux | grep -v grep | grep -i -e VSZ -e" -alias psmem='ps auxf | sort -nr -k 4' -alias pscpu='ps auxf | sort -nr -k 3' - -# git -alias addup='git add -u' -alias addall='git add .' -alias branch='git branch' -alias checkout='git checkout' -alias clone='git clone' -alias commit='git commit -m' -alias fetch='git fetch' -alias pull='git pull origin' -alias push='git push origin' -alias tag='git tag' -alias newtag='git tag -a' - -# power management -alias po='systemctl poweroff' -alias sp='systemctl suspend' -alias rb='systemctl reboot' - -# youtube- -alias yta-aac="yt-dlp --extract-audio --audio-format aac " -alias yta-best="yt-dlp --extract-audio --audio-format best " -alias yta-flac="yt-dlp --extract-audio --audio-format flac " -alias yta-m4a="yt-dlp --extract-audio --audio-format m4a " -alias yta-mp3="yt-dlp --extract-audio --audio-format mp3 " -alias yta-opus="yt-dlp --extract-audio --audio-format opus " -alias yta-vorbis="yt-dlp --extract-audio --audio-format vorbis " -alias yta-wav="yt-dlp --extract-audio --audio-format wav " -alias ytv-best="yt-dlp -f bestvideo+bestaudio " -alias yt='ytfzf -ftsl' -alias youtube='ytfzf -ftsl' -alias ytm='ytfzf -mtsl' -alias youtube-music='ytfzf -mtsl' - -# the terminal rickroll -alias rr='curl -s -L https://raw.githubusercontent.com/keroserene/rickrollrc/master/roll.sh | bash' - -# Mocp must be launched with bash instead of Fish! -alias mocp="bash -c mocp" - -# network and bluetooth -alias netstats='nmcli dev' -alias wfi='nmtui-connect' -alias wfi-scan='nmcli dev wifi rescan && nmcli dev wifi list' -alias wfi-edit='nmtui-edit' -alias wfi-on='nmcli radio wifi on' -alias wfi-off='nmcli radio wifi off' -alias blt='bluetoothctl' - -### SETTING THE STARSHIP PROMPT ### -starship init fish | source diff --git a/new-config/.config/hypr/hyprland.conf b/new-config/.config/hypr/hyprland.conf index 43cd75b77..99d64417c 100644 --- a/new-config/.config/hypr/hyprland.conf +++ b/new-config/.config/hypr/hyprland.conf @@ -3,7 +3,6 @@ exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CUR exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec-once = /usr/lib/xdg-desktop-portal exec-once = /usr/lib/xdg-desktop-portal-wlr -exec-once = /usr/bin/emacs --daemon exec-once = dunst --config ~/.config/dunst/dunstrc exec-once = $HOME/.wbg exec-once = wl-paste --type text --watch cliphist store #Stores only text data @@ -69,6 +68,7 @@ dwindle { master { no_gaps_when_only = true new_is_master = false + mfact = 0.50 } # Mouse gestures @@ -192,8 +192,8 @@ binde = $supMod_$conMod, C, exec, hyprpicker -n -a binde = $supMod_$altMod, T, exec, wezterm start --class tut -- tut binde = $supMod_$altMod, F, exec, wezterm start --class flix_cli -- flix-cli binde = $supMod_$altMod, A, exec, wezterm start --class ani_cli -- ani-cli -binde = $supMod_$altMod, Y, exec, wezterm start --class ytfzf -- ytfzf -flstT chafa -binde = $supMod_$altMod, M, exec, wezterm start --class ytfzf_music -- ytfzf -mlstT chafa +binde = $supMod_$altMod, Y, exec, wezterm start --class ytfzf -- ytfzf -flstT imv +binde = $supMod_$altMod, M, exec, wezterm start --class ytfzf_music -- ytfzf -mlstT imv binde = $supMod_$altMod, P, exec, wezterm start --class pulsemixer -- pulsemixer binde = $supMod_$altMod, O, exec, wezterm start --class alsamixer -- alsamixer binde = $supMod_$altMod, R, exec, wezterm start --class newsboat -- newsboat @@ -201,8 +201,8 @@ binde = $supMod_$altMod, B, exec, wezterm start --class btop -- btop binde = $supMod_$altMod, H, exec, wezterm start --class htop -- htop # Apps -binde = $supMod, E, exec, emacsclient -c -a emacs -binde = $supMod, W, exec, firefox +binde = $supMod, E, exec, wezterm start --class editor -- "$HOME/.local/bin/lvim" +binde = $supMod, W, exec, qutebrowser binde = $supMod, F, exec, wezterm start --class file_manager -- vifm binde = $supMod, M, exec, wezterm start --class music_player -- cmus binde = $supMod, C, exec, wezterm start --class gomuks -- gomuks diff --git a/new-config/.config/lvim/config.lua b/new-config/.config/lvim/config.lua index 7192c72c0..241055115 100644 --- a/new-config/.config/lvim/config.lua +++ b/new-config/.config/lvim/config.lua @@ -170,7 +170,7 @@ lvim.builtin.treesitter.highlight.enable = true lvim.plugins = { {"lunarvim/colorschemes"}, {"iamcco/markdown-preview.nvim"}, - {"ellisonleao/gruvbox.nvim"}, + {"morhetz/gruvbox"}, } -- Autocommands (https://neovim.io/doc/user/autocmd.html) diff --git a/new-config/.config/newsboat/urls b/new-config/.config/newsboat/urls index 39097a595..51b69d887 100644 --- a/new-config/.config/newsboat/urls +++ b/new-config/.config/newsboat/urls @@ -32,7 +32,6 @@ https://www.gamingonlinux.com/article_rss.php "~Gaming on linux" https://hackaday.com/blog/feed/ "~Hackaday" https://opensource.com/feed "~Opensource" https://linux.softpedia.com/backend.xml "~Softpedia Linux" -https://www.zdnet.com/topic/linux/rss.xml "~Zdnet Linux" https://www.phoronix.com/rss.php "~Phoronix" https://www.computerworld.com/index.rss "~Computerworld" https://www.networkworld.com/category/linux/index.rss "~Networkworld Linux" @@ -41,4 +40,26 @@ http://lxer.com/module/newswire/headlines.rss "~Lxer" https://distrowatch.com/news/dwd.xml "~Distrowatch" https://odysee.com/$/rss/@blenderdumbass:f "~Blender Dumbass" https://theevilskeleton.gitlab.io/feed.xml "~TheEvilSkeleton" -https://tutanota.com/blog/feed.xml "Tutanota Blogs" +https://tutanota.com/blog/feed.xml "~Tutanota Blogs" +https://vanillaos.org/feed.xml "~Vanilla OS" +https://techcrunch.com/feed/ "~Tech Crunch" +http://www.techradar.com/rss "~Tech Radar" +https://www.zdnet.com/topic/linux/rss.xml "~ZDNET - Linux" +https://www.zdnet.com/news/rss.xml "~ZDNET - News" +https://www.zdnet.com/topic/reviews/rss.xml "~ZDNET - Reviews" +https://www.zdnet.com/topic/enterprise-software/rss.xml "~ZDNET - Enterprise Software" +https://www.zdnet.com/topic/google/rss.xml "~ZDNET - Google" +https://www.zdnet.com/topic/apple/rss.xml "~ZDNET - Apple" +https://www.zdnet.com/topic/microsoft/rss.xml "~ZDNET - Microsoft" +https://www.zdnet.com/topic/oracle/rss.xml "~ZDNET - Oracle" +https://www.zdnet.com/topic/processors/rss.xml "~ZDNET - Processors" +https://www.zdnet.com/topic/samsung/rss.xml "~ZDNET - Samsung" +https://www.zdnet.com/topic/security/rss.xml "~ZDNET - Security" +https://www.zdnet.com/topic/ibm/rss.xml "~ZDNET - IBM" +https://www.zdnet.com/topic/collaboration/rss.xml "~ZDNET - Collaboration" +https://www.zdnet.com/topic/ios/rss.xml "~ZDNET - iOS" +https://www.zdnet.com/topic/iphone/rss.xml "~ZDNET - iPhone" +https://www.zdnet.com/topic/ipad/rss.xml "~ZDNET - iPad" +https://www.zdnet.com/topic/laptops/rss.xml "~ZDNET - Laptops" +https://www.zdnet.com/topic/networking/rss.xml "~ZDNET - Networking" +https://www.zdnet.com/topic/mobility/rss.xml "~ZDNET - Mobility" diff --git a/new-config/.config/qutebrowser/bookmarks/urls b/new-config/.config/qutebrowser/bookmarks/urls new file mode 100644 index 000000000..da9c3df54 --- /dev/null +++ b/new-config/.config/qutebrowser/bookmarks/urls @@ -0,0 +1,19 @@ +https://mail.google.com/ gmail +https://mail.tutanota.com/ tutanota +https://odysee.com/ odysee +https://inv.vern.cc/ youtube +https://beatbump.ml/home youtube-music +https://fosstodon.org/ fosstodon +https://pixelfed.social/ pixelfed +https://gitlab.com/ gitlab +https://app.element.io/ element +https://app.revolt.chat/ revolt +https://web.whatsapp.com/ whatsapp +https://www.patreon.com/ patreon +https://outlook.office.com/ intec-correo +https://campusvirtual.intec.edu.do/ intec-aula-virtual +https://procesos.intec.edu.do/ intec-procesos +https://www.netacad.com/portal/learning intec-netacad +https://learning.edx.org/course/course-v1:HarvardX+CS50+X/home cs50 +https://libgen.rs/ libgen +https://es.annas-archive.org/ annas-archive diff --git a/new-config/.config/qutebrowser/config.py b/new-config/.config/qutebrowser/config.py new file mode 100644 index 000000000..3667d45c2 --- /dev/null +++ b/new-config/.config/qutebrowser/config.py @@ -0,0 +1,251 @@ +## ____ __ +## / __ \_________ _/ /_____ +## / / / / ___/ __ `/ //_/ _ \ +## / /_/ / / / /_/ / ,< / __/ Clay Gomera (Drake) +## /_____/_/ \__,_/_/|_|\___/ My custom qutebrowser config +## + +# Autogenerated config.py +# +# NOTE: config.py is intended for advanced users who are comfortable +# with manually migrating the config file on qutebrowser upgrades. If +# you prefer, you can also configure qutebrowser using the +# :set/:bind/:config-* commands without having to write a config.py +# file. +# +# Documentation: +# qute://help/configuring.html +# qute://help/settings.html + +# Uncomment this to still load settings configured via autoconfig.yml +# config.load_autoconfig() +# Or uncomment this line to load settings from config.py +config.load_autoconfig(False) + +# Aliases for commands. The keys of the given dictionary are the +# aliases, while the values are the commands they map to. +# Type: Dict +c.aliases = {'q': 'quit', 'w': 'session-save', 'wq': 'quit --save'} + +# Setting dark mode +#config.set("colors.webpage.darkmode.enabled", True) + + +# Which cookies to accept. With QtWebEngine, this setting also controls +# other features with tracking capabilities similar to those of cookies; +# including IndexedDB, DOM storage, filesystem API, service workers, and +# AppCache. Note that with QtWebKit, only `all` and `never` are +# supported as per-domain values. Setting `no-3rdparty` or `no- +# unknown-3rdparty` per-domain on QtWebKit will have the same effect as +# `all`. +# Type: String +# Valid values: +# - all: Accept all cookies. +# - no-3rdparty: Accept cookies from the same origin only. This is known to break some sites, such as GMail. +# - no-unknown-3rdparty: Accept cookies from the same origin only, unless a cookie is already set for the domain. On QtWebEngine, this is the same as no-3rdparty. +# - never: Don't accept cookies at all. +config.set('content.cookies.accept', 'all', 'chrome-devtools://*') + +# Which cookies to accept. With QtWebEngine, this setting also controls +# other features with tracking capabilities similar to those of cookies; +# including IndexedDB, DOM storage, filesystem API, service workers, and +# AppCache. Note that with QtWebKit, only `all` and `never` are +# supported as per-domain values. Setting `no-3rdparty` or `no- +# unknown-3rdparty` per-domain on QtWebKit will have the same effect as +# `all`. +# Type: String +# Valid values: +# - all: Accept all cookies. +# - no-3rdparty: Accept cookies from the same origin only. This is known to break some sites, such as GMail. +# - no-unknown-3rdparty: Accept cookies from the same origin only, unless a cookie is already set for the domain. On QtWebEngine, this is the same as no-3rdparty. +# - never: Don't accept cookies at all. +config.set('content.cookies.accept', 'all', 'devtools://*') + +# User agent to send. The following placeholders are defined: * +# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`: +# The underlying WebKit version (set to a fixed value with +# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for +# QtWebEngine. * `{qt_version}`: The underlying Qt version. * +# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for +# QtWebEngine. * `{upstream_browser_version}`: The corresponding +# Safari/Chrome version. * `{qutebrowser_version}`: The currently +# running qutebrowser version. The default value is equal to the +# unchanged user agent of QtWebKit/QtWebEngine. Note that the value +# read from JavaScript is always the global value. With QtWebEngine +# between 5.12 and 5.14 (inclusive), changing the value exposed to +# JavaScript requires a restart. +# Type: FormatString +config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}) AppleWebKit/{webkit_version} (KHTML, like Gecko) {upstream_browser_key}/{upstream_browser_version} Safari/{webkit_version}', 'https://web.whatsapp.com/') + +# User agent to send. The following placeholders are defined: * +# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`: +# The underlying WebKit version (set to a fixed value with +# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for +# QtWebEngine. * `{qt_version}`: The underlying Qt version. * +# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for +# QtWebEngine. * `{upstream_browser_version}`: The corresponding +# Safari/Chrome version. * `{qutebrowser_version}`: The currently +# running qutebrowser version. The default value is equal to the +# unchanged user agent of QtWebKit/QtWebEngine. Note that the value +# read from JavaScript is always the global value. With QtWebEngine +# between 5.12 and 5.14 (inclusive), changing the value exposed to +# JavaScript requires a restart. +# Type: FormatString +config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}; rv:71.0) Gecko/20100101 Firefox/71.0', 'https://accounts.google.com/*') + +# User agent to send. The following placeholders are defined: * +# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`: +# The underlying WebKit version (set to a fixed value with +# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for +# QtWebEngine. * `{qt_version}`: The underlying Qt version. * +# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for +# QtWebEngine. * `{upstream_browser_version}`: The corresponding +# Safari/Chrome version. * `{qutebrowser_version}`: The currently +# running qutebrowser version. The default value is equal to the +# unchanged user agent of QtWebKit/QtWebEngine. Note that the value +# read from JavaScript is always the global value. With QtWebEngine +# between 5.12 and 5.14 (inclusive), changing the value exposed to +# JavaScript requires a restart. +# Type: FormatString +config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99 Safari/537.36', 'https://*.slack.com/*') + +# User agent to send. The following placeholders are defined: * +# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`: +# The underlying WebKit version (set to a fixed value with +# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for +# QtWebEngine. * `{qt_version}`: The underlying Qt version. * +# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for +# QtWebEngine. * `{upstream_browser_version}`: The corresponding +# Safari/Chrome version. * `{qutebrowser_version}`: The currently +# running qutebrowser version. The default value is equal to the +# unchanged user agent of QtWebKit/QtWebEngine. Note that the value +# read from JavaScript is always the global value. With QtWebEngine +# between 5.12 and 5.14 (inclusive), changing the value exposed to +# JavaScript requires a restart. +# Type: FormatString +config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}; rv:71.0) Gecko/20100101 Firefox/71.0', 'https://docs.google.com/*') + +# User agent to send. The following placeholders are defined: * +# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`: +# The underlying WebKit version (set to a fixed value with +# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for +# QtWebEngine. * `{qt_version}`: The underlying Qt version. * +# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for +# QtWebEngine. * `{upstream_browser_version}`: The corresponding +# Safari/Chrome version. * `{qutebrowser_version}`: The currently +# running qutebrowser version. The default value is equal to the +# unchanged user agent of QtWebKit/QtWebEngine. Note that the value +# read from JavaScript is always the global value. With QtWebEngine +# between 5.12 and 5.14 (inclusive), changing the value exposed to +# JavaScript requires a restart. +# Type: FormatString +config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}; rv:71.0) Gecko/20100101 Firefox/71.0', 'https://drive.google.com/*') + +# Load images automatically in web pages. +# Type: Bool +config.set('content.images', True, 'chrome-devtools://*') + +# Load images automatically in web pages. +# Type: Bool +config.set('content.images', True, 'devtools://*') + +# Enable JavaScript. +# Type: Bool +config.set('content.javascript.enabled', True, 'chrome-devtools://*') + +# Enable JavaScript. +# Type: Bool +config.set('content.javascript.enabled', True, 'devtools://*') + +# Enable JavaScript. +# Type: Bool +config.set('content.javascript.enabled', True, 'chrome://*/*') + +# Enable JavaScript. +# Type: Bool +config.set('content.javascript.enabled', True, 'qute://*/*') + +# Type: BoolAsk +# Valid values: +# - true +# - false +# - ask +# config.set('content.notifications.enabled', True, 'https://www.youtube.com') + +# Directory to save downloads to. If unset, a sensible OS-specific +# default is used. +# Type: Directory +c.downloads.location.directory = '~/Downloads' + +# When to show the tab bar. +# Type: String +# Valid values: +# - always: Always show the tab bar. +# - never: Always hide the tab bar. +# - multiple: Hide the tab bar if only one tab is open. +# - switching: Show the tab bar when switching tabs. +c.tabs.show = 'always' + +# Setting default page for when opening new tabs or new windows with +# commands like :open -t and :open -w . +c.url.default_page = 'https://start.duckduckgo.com' +c.url.start_pages = 'https://start.duckduckgo.com' + +# Search engines which can be used via the address bar. Maps a search +# engine name (such as `DEFAULT`, or `ddg`) to a URL with a `{}` +# placeholder. The placeholder will be replaced by the search term, use +# `{{` and `}}` for literal `{`/`}` braces. The following further +# placeholds are defined to configure how special characters in the +# search terms are replaced by safe characters (called 'quoting'): * +# `{}` and `{semiquoted}` quote everything except slashes; this is the +# most sensible choice for almost all search engines (for the search +# term `slash/and&` this placeholder expands to `slash/and%26amp`). +# * `{quoted}` quotes all characters (for `slash/and&` this +# placeholder expands to `slash%2Fand%26amp`). * `{unquoted}` quotes +# nothing (for `slash/and&` this placeholder expands to +# `slash/and&`). The search engine named `DEFAULT` is used when +# `url.auto_search` is turned on and something else than a URL was +# entered to be opened. Other search engines can be used by prepending +# the search engine name to the search term, e.g. `:open google +# qutebrowser`. +# Type: Dict +c.url.searchengines = {'DEFAULT': 'https://duckduckgo.com/?q={}', 'aw': 'https://wiki.archlinux.org/?search={}', 'ub': 'https://www.urbandictionary.com/define.php?term={}', 'wiki': 'https://en.wikipedia.org/wiki/{}'} + +# Default font families to use. Whenever "default_family" is used in a +# font setting, it's replaced with the fonts listed here. If set to an +# empty value, a system-specific monospace default is used. +# Type: List of Font, or Font +c.fonts.default_family = '"mononoki Nerd Font"' + +# Default font size to use. Whenever "default_size" is used in a font +# setting, it's replaced with the size listed here. Valid values are +# either a float value with a "pt" suffix, or an integer value with a +# "px" suffix. +# Type: String +c.fonts.default_size = '10pt' + +# Font used in the completion widget. +# Type: Font +c.fonts.completion.entry = '10pt "mononoki Nerd Font"' + +# Font used for the debugging console. +# Type: Font +c.fonts.debug_console = '10pt "mononoki Nerd Font"' + +# Font used for prompts. +# Type: Font +c.fonts.prompts = 'default_size sans-serif' + +# Font used in the statusbar. +# Type: Font +c.fonts.statusbar = '10pt "mononoki Nerd Font"' + +config.source('gruvbox.py') + +# Bindings for normal mode +config.bind('M', 'hint links spawn mpv {hint-url}') +config.bind('Z', 'hint links spawn st -e youtube-dl {hint-url}') +config.bind('t', 'set-cmd-text -s :open -t') +config.bind('xb', 'config-cycle statusbar.show always never') +config.bind('xt', 'config-cycle tabs.show always never') +config.bind('xx', 'config-cycle statusbar.show always never;; config-cycle tabs.show always never') diff --git a/new-config/.config/qutebrowser/gruvbox.py b/new-config/.config/qutebrowser/gruvbox.py new file mode 100644 index 000000000..e2704fcd5 --- /dev/null +++ b/new-config/.config/qutebrowser/gruvbox.py @@ -0,0 +1,332 @@ +# gruvbox dark hard qutebrowser theme by Florian Bruhin +# +# Originally based on: +# base16-qutebrowser (https://github.com/theova/base16-qutebrowser) +# Base16 qutebrowser template by theova and Daniel Mulford +# Gruvbox dark, hard scheme by Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) + +bg0_hard = "#1d2021" +bg0_soft = '#32302f' +bg0_normal = '#282828' + +bg0 = bg0_normal +bg1 = "#3c3836" +bg2 = "#504945" +bg3 = "#665c54" +bg4 = "#7c6f64" + +fg0 = "#fbf1c7" +fg1 = "#ebdbb2" +fg2 = "#d5c4a1" +fg3 = "#bdae93" +fg4 = "#a89984" + +bright_red = "#fb4934" +bright_green = "#b8bb26" +bright_yellow = "#fabd2f" +bright_blue = "#83a598" +bright_purple = "#d3869b" +bright_aqua = "#8ec07c" +bright_gray = "#928374" +bright_orange = "#fe8019" + +dark_red = "#cc241d" +dark_green = "#98971a" +dark_yellow = "#d79921" +dark_blue = "#458588" +dark_purple = "#b16286" +dark_aqua = "#689d6a" +dark_gray = "#a89984" +dark_orange = "#d65d0e" + +### Completion + +# Text color of the completion widget. May be a single color to use for +# all columns or a list of three colors, one for each column. +c.colors.completion.fg = [fg1, bright_aqua, bright_yellow] + +# Background color of the completion widget for odd rows. +c.colors.completion.odd.bg = bg0 + +# Background color of the completion widget for even rows. +c.colors.completion.even.bg = c.colors.completion.odd.bg + +# Foreground color of completion widget category headers. +c.colors.completion.category.fg = bright_blue + +# Background color of the completion widget category headers. +c.colors.completion.category.bg = bg1 + +# Top border color of the completion widget category headers. +c.colors.completion.category.border.top = c.colors.completion.category.bg + +# Bottom border color of the completion widget category headers. +c.colors.completion.category.border.bottom = c.colors.completion.category.bg + +# Foreground color of the selected completion item. +c.colors.completion.item.selected.fg = fg0 + +# Background color of the selected completion item. +c.colors.completion.item.selected.bg = bg4 + +# Top border color of the selected completion item. +c.colors.completion.item.selected.border.top = bg2 + +# Bottom border color of the selected completion item. +c.colors.completion.item.selected.border.bottom = c.colors.completion.item.selected.border.top + +# Foreground color of the matched text in the selected completion item. +c.colors.completion.item.selected.match.fg = bright_orange + +# Foreground color of the matched text in the completion. +c.colors.completion.match.fg = c.colors.completion.item.selected.match.fg + +# Color of the scrollbar handle in the completion view. +c.colors.completion.scrollbar.fg = c.colors.completion.item.selected.fg + +# Color of the scrollbar in the completion view. +c.colors.completion.scrollbar.bg = c.colors.completion.category.bg + +### Context menu + +# Background color of disabled items in the context menu. +c.colors.contextmenu.disabled.bg = bg3 + +# Foreground color of disabled items in the context menu. +c.colors.contextmenu.disabled.fg = fg3 + +# Background color of the context menu. If set to null, the Qt default is used. +c.colors.contextmenu.menu.bg = bg0 + +# Foreground color of the context menu. If set to null, the Qt default is used. +c.colors.contextmenu.menu.fg = fg2 + +# Background color of the context menu’s selected item. If set to null, the Qt default is used. +c.colors.contextmenu.selected.bg = bg2 + +#Foreground color of the context menu’s selected item. If set to null, the Qt default is used. +c.colors.contextmenu.selected.fg = c.colors.contextmenu.menu.fg + +### Downloads + +# Background color for the download bar. +c.colors.downloads.bar.bg = bg0 + +# Color gradient start for download text. +c.colors.downloads.start.fg = bg0 + +# Color gradient start for download backgrounds. +c.colors.downloads.start.bg = bright_blue + +# Color gradient end for download text. +c.colors.downloads.stop.fg = c.colors.downloads.start.fg + +# Color gradient stop for download backgrounds. +c.colors.downloads.stop.bg = bright_aqua + +# Foreground color for downloads with errors. +c.colors.downloads.error.fg = bright_red + +### Hints + +# Font color for hints. +c.colors.hints.fg = bg0 + +# Background color for hints. +c.colors.hints.bg = 'rgba(250, 191, 47, 200)' # bright_yellow + +# Font color for the matched part of hints. +c.colors.hints.match.fg = bg4 + +### Keyhint widget + +# Text color for the keyhint widget. +c.colors.keyhint.fg = fg4 + +# Highlight color for keys to complete the current keychain. +c.colors.keyhint.suffix.fg = fg0 + +# Background color of the keyhint widget. +c.colors.keyhint.bg = bg0 + +### Messages + +# Foreground color of an error message. +c.colors.messages.error.fg = bg0 + +# Background color of an error message. +c.colors.messages.error.bg = bright_red + +# Border color of an error message. +c.colors.messages.error.border = c.colors.messages.error.bg + +# Foreground color of a warning message. +c.colors.messages.warning.fg = bg0 + +# Background color of a warning message. +c.colors.messages.warning.bg = bright_purple + +# Border color of a warning message. +c.colors.messages.warning.border = c.colors.messages.warning.bg + +# Foreground color of an info message. +c.colors.messages.info.fg = fg2 + +# Background color of an info message. +c.colors.messages.info.bg = bg0 + +# Border color of an info message. +c.colors.messages.info.border = c.colors.messages.info.bg + +### Prompts + +# Foreground color for prompts. +c.colors.prompts.fg = fg2 + +# Border used around UI elements in prompts. +c.colors.prompts.border = f'1px solid {bg1}' + +# Background color for prompts. +c.colors.prompts.bg = bg3 + +# Background color for the selected item in filename prompts. +c.colors.prompts.selected.bg = bg2 + +### Statusbar + +# Foreground color of the statusbar. +c.colors.statusbar.normal.fg = fg2 + +# Background color of the statusbar. +c.colors.statusbar.normal.bg = bg0 + +# Foreground color of the statusbar in insert mode. +c.colors.statusbar.insert.fg = bg0 + +# Background color of the statusbar in insert mode. +c.colors.statusbar.insert.bg = dark_aqua + +# Foreground color of the statusbar in passthrough mode. +c.colors.statusbar.passthrough.fg = bg0 + +# Background color of the statusbar in passthrough mode. +c.colors.statusbar.passthrough.bg = dark_blue + +# Foreground color of the statusbar in private browsing mode. +c.colors.statusbar.private.fg = bright_purple + +# Background color of the statusbar in private browsing mode. +c.colors.statusbar.private.bg = bg0 + +# Foreground color of the statusbar in command mode. +c.colors.statusbar.command.fg = fg3 + +# Background color of the statusbar in command mode. +c.colors.statusbar.command.bg = bg1 + +# Foreground color of the statusbar in private browsing + command mode. +c.colors.statusbar.command.private.fg = c.colors.statusbar.private.fg + +# Background color of the statusbar in private browsing + command mode. +c.colors.statusbar.command.private.bg = c.colors.statusbar.command.bg + +# Foreground color of the statusbar in caret mode. +c.colors.statusbar.caret.fg = bg0 + +# Background color of the statusbar in caret mode. +c.colors.statusbar.caret.bg = dark_purple + +# Foreground color of the statusbar in caret mode with a selection. +c.colors.statusbar.caret.selection.fg = c.colors.statusbar.caret.fg + +# Background color of the statusbar in caret mode with a selection. +c.colors.statusbar.caret.selection.bg = bright_purple + +# Background color of the progress bar. +c.colors.statusbar.progress.bg = bright_blue + +# Default foreground color of the URL in the statusbar. +c.colors.statusbar.url.fg = fg4 + +# Foreground color of the URL in the statusbar on error. +c.colors.statusbar.url.error.fg = dark_red + +# Foreground color of the URL in the statusbar for hovered links. +c.colors.statusbar.url.hover.fg = bright_orange + +# Foreground color of the URL in the statusbar on successful load +# (http). +c.colors.statusbar.url.success.http.fg = bright_red + +# Foreground color of the URL in the statusbar on successful load +# (https). +c.colors.statusbar.url.success.https.fg = fg0 + +# Foreground color of the URL in the statusbar when there's a warning. +c.colors.statusbar.url.warn.fg = bright_purple + +### tabs + +# Background color of the tab bar. +c.colors.tabs.bar.bg = bg0 + +# Color gradient start for the tab indicator. +c.colors.tabs.indicator.start = bright_blue + +# Color gradient end for the tab indicator. +c.colors.tabs.indicator.stop = bright_aqua + +# Color for the tab indicator on errors. +c.colors.tabs.indicator.error = bright_red + +# Foreground color of unselected odd tabs. +c.colors.tabs.odd.fg = fg2 + +# Background color of unselected odd tabs. +c.colors.tabs.odd.bg = bg2 + +# Foreground color of unselected even tabs. +c.colors.tabs.even.fg = c.colors.tabs.odd.fg + +# Background color of unselected even tabs. +c.colors.tabs.even.bg = bg3 + +# Foreground color of selected odd tabs. +c.colors.tabs.selected.odd.fg = fg2 + +# Background color of selected odd tabs. +c.colors.tabs.selected.odd.bg = bg0 + +# Foreground color of selected even tabs. +c.colors.tabs.selected.even.fg = c.colors.tabs.selected.odd.fg + +# Background color of selected even tabs. +c.colors.tabs.selected.even.bg = bg0 + +# Background color of pinned unselected even tabs. +c.colors.tabs.pinned.even.bg = bright_green + +# Foreground color of pinned unselected even tabs. +c.colors.tabs.pinned.even.fg = bg2 + +# Background color of pinned unselected odd tabs. +c.colors.tabs.pinned.odd.bg = bright_green + +# Foreground color of pinned unselected odd tabs. +c.colors.tabs.pinned.odd.fg = c.colors.tabs.pinned.even.fg + +# Background color of pinned selected even tabs. +c.colors.tabs.pinned.selected.even.bg = bg0 + +# Foreground color of pinned selected even tabs. +c.colors.tabs.pinned.selected.even.fg = c.colors.tabs.selected.odd.fg + +# Background color of pinned selected odd tabs. +c.colors.tabs.pinned.selected.odd.bg = c.colors.tabs.pinned.selected.even.bg + +# Foreground color of pinned selected odd tabs. +c.colors.tabs.pinned.selected.odd.fg = c.colors.tabs.selected.odd.fg + +# Background color for webpages if unset (or empty to use the theme's +# color). +c.colors.webpage.bg = bg4 diff --git a/new-config/.config/rofi/scripts/rofi_wifi b/new-config/.config/rofi/scripts/rofi_wifi index 06d41b05f..eb8cf32a0 100755 --- a/new-config/.config/rofi/scripts/rofi_wifi +++ b/new-config/.config/rofi/scripts/rofi_wifi @@ -48,7 +48,7 @@ connect() { ## SELECT PASSWORD FUNCTION ## password() { - pass=$(echo " " | $ROFI " Enter Password  " --password) + pass=$(echo " " | $ROFI " Enter Password  " -password) } ## MAIN CONNECTION COMMAND ## diff --git a/new-config/.config/vifm/vifmrc b/new-config/.config/vifm/vifmrc index 841034e52..6c9f5adeb 100644 --- a/new-config/.config/vifm/vifmrc +++ b/new-config/.config/vifm/vifmrc @@ -13,7 +13,7 @@ " Since emacs is a GUI app and not a terminal app like vim, append the command " with an ampersand (&). -set vicmd=nvim +set vicmd=~/.local/bin/lvim " This makes vifm perform file operations on its own instead of relying on " standard utilities like `cp`. While using `cp` and alike is a more universal diff --git a/new-config/.config/waybar/config b/new-config/.config/waybar/config index fae476ea8..64b5d548e 100644 --- a/new-config/.config/waybar/config +++ b/new-config/.config/waybar/config @@ -65,8 +65,8 @@ "pulseaudio": { "scroll-step": 1, // %, can be a float "format": "{volume}% {icon} {format_source}", - "format-bluetooth": "{volume}% {icon} {format_source}", - "format-bluetooth-muted": "󰖁 {icon} {format_source}", + "format-bluetooth": "{volume}% {icon}  {format_source}", + "format-bluetooth-muted": "󰖁 {icon}  {format_source}", "format-muted": "󰖁 {format_source}", "format-source": "{volume}% 󰍬", "format-source-muted": "󰍭", diff --git a/new-config/.config/wezterm/wezterm.lua b/new-config/.config/wezterm/wezterm.lua index 38be7d68c..ad33af7ab 100644 --- a/new-config/.config/wezterm/wezterm.lua +++ b/new-config/.config/wezterm/wezterm.lua @@ -8,7 +8,7 @@ return { weight = 'Medium' }, color_scheme = 'Gruvbox dark, hard (base16)', - default_prog = { '/usr/bin/fish' }, + default_prog = { '/usr/bin/bash' }, default_cursor_style = "BlinkingUnderline", font_size = 12, check_for_updates = false, diff --git a/new-config/.winitrc b/new-config/.winitrc index bdf46ffe0..6406f4ec6 100755 --- a/new-config/.winitrc +++ b/new-config/.winitrc @@ -27,7 +27,7 @@ export XDG_CURRENT_DESKTOP=Hyprland export XDG_SESSION_TYPE=wayland export QT_QPA_PLATFORMTHEME=qt5ct export MOZ_ENABLE_WAYLAND=1 -#export GDK_BACKEND=wayland +export GDK_BACKEND=wayland export WM=Hyprland export SDL_VIDEODRIVER=wayland export QT_WAYLAND_DISABLE_WINDOWDECORATION=1 diff --git a/new-config/dependencies.md b/new-config/dependencies.md index 79eeb3605..6b8c9a109 100644 --- a/new-config/dependencies.md +++ b/new-config/dependencies.md @@ -45,3 +45,4 @@ - btop - htop - brightnessctl +- cliphist