diff --git a/.bashrc b/.bashrc index e8896db..fe441f6 100644 --- a/.bashrc +++ b/.bashrc @@ -1,7 +1,7 @@ -# ____ _____ +# ____ _____ # | _ \_ _| Derek Taylor (DistroTube) # | | | || | http://www.youtube.com/c/DistroTube -# | |_| || | http://www.gitlab.com/dwt1/ +# | |_| || | http://www.gitlab.com/dwt1/ # |____/ |_| # # My bash config. Not much to see here; just some pretty standard stuff. @@ -92,7 +92,7 @@ ex () *.7z) 7z x $1 ;; *.deb) ar x $1 ;; *.tar.xz) tar xf $1 ;; - *.tar.zst) unzstd $1 ;; + *.tar.zst) unzstd $1 ;; *) echo "'$1' cannot be extracted via ex()" ;; esac else @@ -178,6 +178,8 @@ alias df='df -h' # human-readable sizes alias free='free -m' # show sizes in MB alias lynx='lynx -cfg=~/.lynx/lynx.cfg -lss=~/.lynx/lynx.lss -vikeys' alias vifm='./.config/vifm/scripts/vifmrun' +alias ncmpcpp='ncmpcpp ncmpcpp_directory=$HOME/.config/ncmpcpp/' +alias mocp='mocp -M "$XDG_CONFIG_HOME"/moc -O MOCDir="$XDG_CONFIG_HOME"/moc' ## get top process eating memory alias psmem='ps auxf | sort -nr -k 4' @@ -243,7 +245,7 @@ alias rr='curl -s -L https://raw.githubusercontent.com/keroserene/rickrollrc/mas alias tips='lbrynet txo spend --type=support --is_not_my_input --blocking' # Thinkorswim -alias tos="/home/dt/thinkorswim/thinkorswim" +alias tos="/home/dt/thinkorswim/thinkorswim" # force all kakoune windows into one session alias kak="/usr/bin/kak -c mysession" diff --git a/.doom.d/aliases b/.config/doom/aliases similarity index 100% rename from .doom.d/aliases rename to .config/doom/aliases diff --git a/.doom.d/config.el b/.config/doom/config.el similarity index 100% rename from .doom.d/config.el rename to .config/doom/config.el diff --git a/.doom.d/config.org b/.config/doom/config.org similarity index 84% rename from .doom.d/config.org rename to .config/doom/config.org index b8710a8..f5bc0c1 100644 --- a/.doom.d/config.org +++ b/.config/doom/config.org @@ -41,11 +41,9 @@ Doom Emacs uses 'SPC b' for keybindings related to bookmarks and buffers. Bookm #+BEGIN_SRC emacs-lisp (map! :leader - :desc "List bookmarks" - "b L" #'list-bookmarks - :leader - :desc "Save current bookmarks to bookmark file" - "b w" #'bookmark-save) + (:prefix ("b". "buffer") + :desc "List bookmarks" "L" #'list-bookmarks + :desc "Save current bookmarks to bookmark file" "w" #'bookmark-save)) #+END_SRC * CENTAUR-TABS @@ -69,11 +67,8 @@ To use tabs in Doom Emacs, be sure to uncomment "tabs" in Doom's init.el. Displ centaur-tabs-style "bar" centaur-tabs-modified-marker "•") (map! :leader - :desc "Toggle tabs globally" - "t c" #'centaur-tabs-mode - :leader - :desc "Toggle tabs local display" - "t C" #'centaur-tabs-local-mode) + :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 @@ -96,19 +91,13 @@ Dired is the file manager within Emacs. Below, I setup keybindings for image pr #+BEGIN_SRC emacs-lisp (map! :leader - :desc "Dired" - "d d" #'dired - :leader - :desc "Dired jump to current" - "d j" #'dired-jump + (:prefix ("d" . "dired") + :desc "Open dired" "d" #'dired + :desc "Dired jump to current" "j" #'dired-jump) (:after dired - (:map dired-mode-map - :leader - :desc "Peep-dired image previews" - "d p" #'peep-dired - :leader - :desc "Dired view file" - "d v" #'dired-view-file))) + (:map dired-mode-map + :desc "Peep-dired image previews" "d p" #'peep-dired + :desc "Dired view file" "d v" #'dired-view-file))) ;; Make 'h' and 'l' go back and forward in dired. Much faster to navigate the directory structure! (evil-define-key 'normal dired-mode-map (kbd "h") 'dired-up-directory @@ -135,8 +124,7 @@ Setting the theme to doom-one. To try out new themes, I set a keybinding for co #+BEGIN_SRC emacs-lisp (setq doom-theme 'doom-one) (map! :leader - :desc "Load new theme" - "h t" #'counsel-load-theme) + :desc "Load new theme" "h t" #'counsel-load-theme) #+END_SRC * ELFEED @@ -164,40 +152,14 @@ An RSS newsfeed reader for Emacs. #+END_SRC * EMMS -One of the media players available for Emacs is emms, which stands for Emacs Multimedia System. By default, Doom Emacs does not use 'SPC a',' so the format I use for these bindings is 'SPC a' plus 'key'. - -| COMMAND | DESCRIPTION | KEYBINDING | -|-----------------------+-----------------------------------+------------| -| emms-playlist-mode-go | /Switch to the playlist buffer/ | SPC a a | -| emms-pause | /Pause the track/ | SPC a x | -| emms-stop | /Stop the track/ | SPC a s | -| emms-previous | /Play previous track in playlist/ | SPC a p | -| emms-next | /Play next track in playlist/ | SPC a n | - +EMMS is now a default module in doom, so you only have to pass in your music folder. #+BEGIN_SRC emacs-lisp -(emms-all) -(emms-default-players) (emms-mode-line 1) (emms-playing-time 1) (setq emms-source-file-default-directory "~/Music/Non-Classical/70s-80s/" emms-playlist-buffer-name "*Music*" emms-info-asynchronously t emms-source-file-directory-tree-function 'emms-source-file-directory-tree-find) -(map! :leader - :desc "Go to emms playlist" - "a a" #'emms-playlist-mode-go - :leader - :desc "Emms pause track" - "a x" #'emms-pause - :leader - :desc "Emms stop track" - "a s" #'emms-stop - :leader - :desc "Emms play previous track" - "a p" #'emms-previous - :leader - :desc "Emms play next track" - "a n" #'emms-next) #+END_SRC * EVALUATE ELISP EXPRESSIONS @@ -213,20 +175,12 @@ Changing some keybindings from their defaults to better fit with Doom Emacs, and #+Begin_src emacs-lisp (map! :leader - :desc "Evaluate elisp in buffer" - "e b" #'eval-buffer - :leader - :desc "Evaluate defun" - "e d" #'eval-defun - :leader - :desc "Evaluate elisp expression" - "e e" #'eval-expression - :leader - :desc "Evaluate last sexpression" - "e l" #'eval-last-sexp - :leader - :desc "Evaluate elisp in region" - "e r" #'eval-region) + (: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 @@ -235,14 +189,10 @@ EWW is the Emacs Web Wowser, the builtin browser in Emacs. Below I set URLs to #+BEGIN_SRC emacs-lisp (setq browse-url-browser-function 'eww-browse-url) (map! :leader - :desc "Eww web browser" - "e w" #'eww - :leader - :desc "Eww reload page" - "e R" #'eww-reload - :leader - :desc "Search web for text between BEG/END" - "s w" #'eww-search-words) + (:prefix ("e" . "evaluate/EWW") + :desc "Eww web browser" "e w" #'eww + :desc "Eww reload page" "e R" #'eww-reload + :desc "Search web for text between BEG/END" "s w" #'eww-search-words)) #+END_SRC * FLYSPELL/ISPELL/ASPELL @@ -321,11 +271,8 @@ By default, Doom Emacs does not use 'SPC v', so the format I use for these bindi #+BEGIN_SRC emacs-lisp (map! :leader - :desc "Ivy push view" - "v p" #'ivy-push-view - :leader - :desc "Ivy switch view" - "v s" #'ivy-switch-view) + :desc "Ivy push view" "v p" #'ivy-push-view + :desc "Ivy switch view" "v s" #'ivy-switch-view) #+END_SRC * LINE SETTINGS @@ -342,20 +289,12 @@ I set comment-line to 'SPC TAB TAB' which is a rather comfortable keybinding for #+BEGIN_SRC emacs-lisp (setq display-line-numbers-type t) (map! :leader - :desc "Comment or uncomment lines" - "TAB TAB" #'comment-line - :leader - :desc "Toggle line numbers" - "t l" #'doom/toggle-line-numbers - :leader - :desc "Toggle line highlight in frame" - "t h" #'hl-line-mode - :leader - :desc "Toggle line highlight globally" - "t H" #'global-hl-line-mode - :leader - :desc "Toggle truncate lines" - "t t" #'toggle-truncate-lines) + :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 * MASTODON @@ -481,10 +420,10 @@ The following function can be used to select an account. This function then nee * 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 | -|----------------+---------------------------+------------| +| COMMAND | DESCRIPTION | KEYBINDING | +|----------------+-----------------------------+------------| | neotree-toggle | /Toggle neotree/ | SPC t n | -| neotree- dir | /Open directory in neotree/ | SPC d n | +| neotree- dir | /Open directory in neotree/ | SPC t N | #+BEGIN_SRC emacs-lisp (after! neotree @@ -493,11 +432,9 @@ Neotree is a file tree viewer. When you open neotree, it jumps to the current f (after! doom-themes (setq doom-neotree-enable-variable-pitch t)) (map! :leader - :desc "Toggle neotree file viewer" - "t n" #'neotree-toggle - :leader - :desc "Open directory in neotree" - "d n" #'neotree-dir) + (:prefix ("t" . "toggle") + :desc "Toggle neotree file viewer" "n" #'neotree-toggle + :desc "Open directory in neotree" "N" #'neotree-dir)) #+END_SRC * OPEN SPECIFIC FILES @@ -513,20 +450,12 @@ Keybindings to open files that I work with all the time using the find-file comm #+BEGIN_SRC emacs-lisp (map! :leader - :desc "Edit agenda file" - "- a" #'(lambda () (interactive) (find-file "~/Org/agenda.org")) - :leader - :desc "Edit doom config.org" - "- c" #'(lambda () (interactive) (find-file "~/.doom.d/config.org")) - :leader - :desc "Edit eshell aliases" - "- e" #'(lambda () (interactive) (find-file "~/.doom.d/aliases")) - :leader - :desc "Edit doom init.el" - "- i" #'(lambda () (interactive) (find-file "~/.doom.d/init.el")) - :leader - :desc "Edit doom packages.el" - "- p" #'(lambda () (interactive) (find-file "~/.doom.d/packages.el"))) + (: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 "~/.doom.d/config.org")) + :desc "Edit eshell aliases" "e" #'(lambda () (interactive) (find-file "~/.doom.d/aliases")) + :desc "Edit doom init.el" "i" #'(lambda () (interactive) (find-file "~/.doom.d/init.el")) + :desc "Edit doom packages.el" "p" #'(lambda () (interactive) (find-file "~/.doom.d/packages.el"))) #+END_SRC * ORG MODE @@ -608,38 +537,18 @@ Emacs registers are compartments where you can save text, rectangles and positio #+BEGIN_SRC emacs-lisp (map! :leader - :desc "Copy to register" - "r c" #'copy-to-register - :leader - :desc "Frameset to register" - "r f" #'frameset-to-register - :leader - :desc "Insert contents of register" - "r i" #'insert-register - :leader - :desc "Jump to register" - "r j" #'jump-to-register - :leader - :desc "List registers" - "r l" #'list-registers - :leader - :desc "Number to register" - "r n" #'number-to-register - :leader - :desc "Interactively choose a register" - "r r" #'counsel-register - :leader - :desc "View a register" - "r v" #'view-register - :leader - :desc "Window configuration to register" - "r w" #'window-configuration-to-register - :leader - :desc "Increment register" - "r +" #'increment-register - :leader - :desc "Point to register" - "r SPC" #'point-to-register) + (: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 * REMOTE CONNECTIONS @@ -652,11 +561,11 @@ Keybindings for ssh'ing into remote machines. By default, Doom Emacs does not u #+BEGIN_SRC emacs-lisp (map! :leader + (:prefix ("\\" . "ssh") :desc "Ssh into distrotube.com" - "\\ d" #'(lambda () (interactive) (find-file "/scp:derek@distrotube.com")) - :leader + "d" #'(lambda () (interactive) (find-file "/scp:derek@distrotube.com")) :desc "Ssh into my nextcloud" - "\\ n" #'(lambda () (interactive) (find-file "/scp:derek@distrotube.net"))) + "n" #'(lambda () (interactive) (find-file "/scp:derek@distrotube.net")))) #+END_SRC * SHELLS @@ -675,11 +584,15 @@ Settings for the various shells and terminal emulators within Emacs. eshell-visual-commands'("bash" "fish" "htop" "ssh" "top" "zsh") vterm-max-scrollback 5000) (map! :leader +<<<<<<< HEAD:.config/doom/config.org + :desc "Counsel eshell history" "e h" #'counsel-esh-history) +======= :desc "Eshell" "e s" #'eshell :leader :desc "Counsel eshell history" "e h" #'counsel-esh-history) +>>>>>>> 45486bac887a31725e135dde053925d8ff28cb78:.doom.d/config.org #+END_SRC * SPLITS @@ -691,8 +604,7 @@ I set splits to default to opening on the right using 'prefer-horizontal-split'. (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) + :desc "Clone indirect buffer other window" "b c" #'clone-indirect-buffer-other-window) #+END_SRC * WINNER MODE @@ -700,9 +612,7 @@ Winner mode has been included with GNU Emacs since version 20. This is a global #+BEGIN_SRC emacs-lisp (map! :leader - :desc "Winner redo" - "w " #'winner-redo - :leader - :desc "Winner undo" - "w " #'winner-undo) + (:prefix ("w" . "window") + :desc "Winner redo" "" #'winner-redo + :desc "Winner undo" "" #'winner-undo)) #+END_SRC diff --git a/.doom.d/init.el b/.config/doom/init.el similarity index 89% rename from .doom.d/init.el rename to .config/doom/init.el index 4b77103..9c781fc 100644 --- a/.doom.d/init.el +++ b/.config/doom/init.el @@ -23,7 +23,7 @@ company ; the ultimate code completion backend ;;helm ; the *other* search engine for love and life ;;ido ; the other *other* search engine... - (ivy +fonts +ivyposframe) ; a search engine for love and life + (ivy +fonts +childframe) ; a search engine for love and life :ui ;;deft ; notational velocity for Emacs @@ -49,7 +49,7 @@ 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 + zen ; distraction-free coding or writing :editor (evil +everywhere); come to the dark side, we have cookies @@ -66,9 +66,9 @@ ;;word-wrap ; soft wrapping with language-aware indent :emacs - (dired +icons) ; making dired pretty [functional] + (dired +icons) ; making dired pretty [functional] electric ; smarter, keyword-based electric-indent - (ibuffer +icons) ; interactive buffer management + ibuffer ; interactive buffer management undo ; persistent, smarter undo for your inevitable mistakes vc ; version-control and Emacs, sitting in a tree @@ -80,7 +80,7 @@ :checkers syntax ; tasing you for every semicolon you forget - (spell +flyspell) ; tasing you for misspelling mispelling + (spell +aspell) ; tasing you for misspelling mispelling ;;grammar ; tasing grammar mistake every you make :tools @@ -129,24 +129,24 @@ ;;fstar ; (dependent) types and (monadic) effects and Z3 ;;gdscript ; the language you waited for ;;(go +lsp) ; the hipster dialect - (haskell +dante +lsp) ; a language that's lazier than I am + (haskell +lsp) ; 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 + (json +lsp) ; At least it ain't XML ;;(java +meghanada) ; the poster child for carpal tunnel syndrome - javascript ; all(hope(abandon(ye(who(enter(here)))))) + (javascript +lsp) ; 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 + (latex +lsp) ; writing papers in Emacs has never been so fun ;;lean ;;factor ;;ledger ; an accounting system in Emacs - lua ; one-based indices? one-based indices + (lua +lsp) ; 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 +org-bullets +org-ql) ; organize your plain life in plain text + (org +pretty) ; organize your plain life in plain text php ; perl's insecure younger brother ;;plantuml ; diagrams for confusing people more ;;purescript ; javascript, but functional @@ -165,29 +165,22 @@ ;;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 + (web +lsp) ; the tubes + (yaml +lsp) ; JSON, but readable :email mu4e - smtpmail ;;notmuch ;;(wanderlust +gmail) :app ;;calendar - ;;emms + emms ;;everywhere ; *leave* Emacs!? You must be joking ;;irc ; how neckbeards socialize - ;;(rss +org) ; emacs as an RSS reader + rss ; emacs as an RSS reader ;;twitter ; twitter client https://twitter.com/vnought - :emms - emms-setup - emms-info - emms-cue - emms-mode-line - :config literate (default +bindings +smartparens)) diff --git a/.doom.d/packages.el b/.config/doom/packages.el similarity index 91% rename from .doom.d/packages.el rename to .config/doom/packages.el index b605949..7b961fd 100644 --- a/.doom.d/packages.el +++ b/.config/doom/packages.el @@ -48,21 +48,12 @@ ;(unpin! pinned-package another-pinned-package) ;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) ;(unpin! t) -(package! all-the-icons-dired) (package! async) (package! dired-open) (package! dmenu) -(package! elfeed) (package! elpher) -(package! emms) -(package! emojify) (package! evil-tutor) -(package! flycheck-aspell) -(package! ivy-posframe) -(package! lsp-haskell) -(package! lsp-python-ms) (package! mastodon) -(package! org-bullets) (package! org-ql) (package! peep-dired) (package! pianobar) @@ -70,4 +61,3 @@ (package! resize-window) (package! tldr) (package! wc-mode) -(package! writeroom-mode) diff --git a/.config/fish/config.fish b/.config/fish/config.fish index c49961f..3ec4a1d 100644 --- a/.config/fish/config.fish +++ b/.config/fish/config.fish @@ -1,7 +1,7 @@ -# ____ _____ +# ____ _____ # | _ \_ _| Derek Taylor (DistroTube) # | | | || | http://www.youtube.com/c/DistroTube -# | |_| || | http://www.gitlab.com/dwt1/ +# | |_| || | http://www.gitlab.com/dwt1/ # |____/ |_| # # My fish config. Not much to see here; just some pretty standard stuff. @@ -17,7 +17,7 @@ set VISUAL "emacsclient -c -a emacs" # $VISUAL use Emacs in GUI mod ### Uncomment only one of these! ### "bat" as manpager -set -x MANPAGER "sh -c 'col -bx | bat -l man -p'" +set -x MANPAGER "sh -c 'col -bx | bat -l man -p'" ### "vim" as manpager # set -x MANPAGER '/bin/bash -c "vim -MRn -c \"set buftype=nofile showtabline=0 ft=man ts=8 nomod nolist norelativenumber nonu noma\" -c \"normal L\" -c \"nmap q :qa\"