aboutsummaryrefslogtreecommitdiff
path: root/config.org
diff options
context:
space:
mode:
Diffstat (limited to 'config.org')
-rw-r--r--config.org222
1 files changed, 123 insertions, 99 deletions
diff --git a/config.org b/config.org
index abc5783..a5a3595 100644
--- a/config.org
+++ b/config.org
@@ -1,4 +1,5 @@
#+TITLE: Literate DOOM Emacs configuration
+
Emacs is a great operating system.
But every operating system has 1 essential line of code.
For us, this line of code is... (drumroll please)
@@ -6,7 +7,9 @@ For us, this line of code is... (drumroll please)
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
#+end_src
-Yea i need to work on the foreword don't i
+Almost every ~(use-package!)~ block in this literate configuration has a ~(package!)~ block before it, which is tangled into ~$DOOMDIR/packages.el~. This is how Doom Emacs installs it's packages.
+
+
* TODO Splash screen
Here we load a custom splash screen.
@@ -145,6 +148,25 @@ I don't like that, especially when im editing source blocks (e.g here). Let's tu
#+begin_src emacs-lisp
(setq +zen-mixed-pitch-modes '())
#+end_src
+** vertico-carousel
+~vertico~ is the equivalent of nvim's ~telescope~ in Emacs.
+#+begin_quote
+~vertico-carousel~ is a display extension for Vertico. It always shows
+the currently selected candidate on the first line of the candidate list,
+then displays the following candidates below it, cycling from the end back
+to the beginning.
+ -- vertico-carousel README
+#+end_quote
+
+#+begin_src emacs-lisp :tangle ~/.config/doom/packages.el
+ (package! vertico-carousel
+ :recipe (:host github :repo "kn66/vertico-carousel"))
+#+end_src
+#+begin_src emacs-lisp
+ (use-package! vertico-carousel
+ :config
+ (vertico-carousel-mode 1))
+#+end_src
* Languages & LSP
~M-x vscode~
** Haskell
@@ -492,104 +514,106 @@ The following makes the commands ~emms~ and ~emms-browser~ available even before
#+begin_src emacs-lisp
(use-package! emms
- :commands (emms emms-browser emms-player-mpd-update-all emms-cache-set-from-mpd-all)
-#+end_src
-
-Configure the mappings for EMMS
-~:init~ in elisp runs the following code =before= a package is loaded.
-In this case, it makes the emms mappings available right when emacs starts up.
-#+begin_src emacs-lisp
- :init
- (map! :leader
- (:prefix ("e" . "emms")
- :desc "Browser" "b" #'emms-full-resync
- :desc "Playlist" "m" #'emms-playlist-mode-go
- :desc "Play/pause" "SPC" #'emms-pause
- :desc "Next" "n" #'emms-next
- :desc "Previous" "p" #'emms-previous
- :desc "Stop" "s" #'emms-stop
- :desc "Clear" "c" #'emms-playlist-clear))
-#+end_src
-
-Here we tell EMMS to use the preset configuration loader, this makes it so that i dont have to wire up a bunch of emms submodules myself.
-#+begin_src emacs-lisp
- :config
-(require 'emms-setup)
-#+end_src
-
-We then use ~emms-all~ to load every emms submodule. Possible variations include:
-| Name | What it does |
-|---------------+----------------------------------------------------------------|
-| ~emms-all~ | Loads every EMMS submodule. (browser, cover art, lyrics, etc.) |
-|---------------+----------------------------------------------------------------|
-| ~emms-standard~ | Smaller and more curated subset of features |
-|---------------+----------------------------------------------------------------|
-| ~emms-minimal~ | Very barebones EMMS |
-
-#+begin_src emacs-lisp
- (emms-all)
-#+end_src
-
-Here we tell EMMS to use MPD instead of MPRIS.
-#+begin_src emacs-lisp
- (require 'emms-player-mpd)
-(setq emms-player-list '(emms-player-mpd)
- emms-info-functions '(emms-info-mpd)
-#+end_src
-
-
-Here we point EMMS/MPD at the default server and port for MPD
-#+begin_src emacs-lisp
- emms-player-mpd-server-name "localhost"
-emms-player-mpd-server-port "6600"
-#+end_src
-
-Tell EMMS where MPD's music dir lives, and where its own music dir lives.
-#+begin_src emacs-lisp
- emms-player-mpd-music-directory "~/Music"
-emms-source-file-default-directory (expand-file-name "~/Music/")
-#+end_src
-Make playlists loop instead of stopping at the last track.
-#+begin_src emacs-lisp
- emms-repeat-playlist t
-#+end_src
-
-Make EMMS use Doom Emacs' cache instead of its own.
-#+begin_src emacs-lisp
- emms-cache-file (concat doom-cache-dir "emms-cache"))
-#+end_src
-
-Clear the playlist both on EMMS and MPD
-#+begin_src emacs-lisp
- (add-hook 'emms-playlist-cleared-hook #'emms-player-mpd-clear)
-#+end_src
-
-Connect to MPD as soon as this config loads.
-#+begin_src emacs-lisp
- (emms-player-mpd-connect)
-#+end_src
-
-Turn on the little [ARTIST - ALBUM - TITLE] indicator in the modeline.
-#+begin_src emacs-lisp
- (emms-mode-line-mode 1)
-#+end_src
-
-Show lyrics in the buffer whenever its free
-#+begin_src emacs-lisp
- (emms-lyrics-toggle-display-on-minibuffer)
-#+end_src
-
-LISTENED/LENGTH indicator in the modeline
-
-#+begin_src emacs-lisp
- (emms-playing-time-mode 1)
-#+end_src
-
-This makes it so that presing RET on a song in normal mode adds the tracks to the playlist and plays it.
-This currently doesnt work.
-#+begin_src emacs-lisp
- (map! :map emms-browser-mode-map
- :n "RET" #'emms-browser-add-tracks-and-play))
+ :commands (emms emms-browser emms-player-mpd-update-all emms-cache-set-from-mpd-all emms emms-pause emms-next emms-previous emms-stop
+ emms-random emms-add-directory-tree emms-play-playlist)
+ #+end_src
+
+ Configure the mappings for EMMS
+ ~:init~ in elisp runs the following code =before= a package is loaded.
+ In this case, it makes the emms mappings available right when emacs starts up.
+ #+begin_src emacs-lisp
+ :init
+ (map! :leader
+ (:prefix ("e" . "emms")
+ :desc "Browser" "b" #'emms-full-resync
+ :desc "Playlist" "m" #'emms-playlist-mode-go
+ :desc "Play/pause" "SPC" #'emms-pause
+ :desc "Next" "n" #'emms-next
+ :desc "Previous" "p" #'emms-previous
+ :desc "Stop" "s" #'emms-stop
+ :desc "Add" "a" #'emms-add-playlist
+ :desc "Clear" "c" #'emms-playlist-clear))
+ #+end_src
+
+ Here we tell EMMS to use the preset configuration loader, this makes it so that i dont have to wire up a bunch of emms submodules myself.
+ #+begin_src emacs-lisp
+ :config
+ (require 'emms-setup)
+ #+end_src
+
+ We then use ~emms-all~ to load every emms submodule. Possible variations include:
+ | Name | What it does |
+ |---------------+----------------------------------------------------------------|
+ | ~emms-all~ | Loads every EMMS submodule. (browser, cover art, lyrics, etc.) |
+ |---------------+----------------------------------------------------------------|
+ | ~emms-standard~ | Smaller and more curated subset of features |
+ |---------------+----------------------------------------------------------------|
+ | ~emms-minimal~ | Very barebones EMMS |
+
+ #+begin_src emacs-lisp
+ (emms-all)
+ #+end_src
+
+ Here we tell EMMS to use MPD instead of MPRIS.
+ #+begin_src emacs-lisp
+ (require 'emms-player-mpd)
+ (setq emms-player-list '(emms-player-mpd)
+ emms-info-functions '(emms-info-mpd)
+ #+end_src
+
+
+ Here we point EMMS/MPD at the default server and port for MPD
+ #+begin_src emacs-lisp
+ emms-player-mpd-server-name "localhost"
+ emms-player-mpd-server-port "6600"
+ #+end_src
+
+ Tell EMMS where MPD's music dir lives, and where its own music dir lives.
+ #+begin_src emacs-lisp
+ emms-player-mpd-music-directory "~/Music"
+ emms-source-file-default-directory (expand-file-name "~/Music/playlists/")
+ #+end_src
+ Make playlists loop instead of stopping at the last track.
+ #+begin_src emacs-lisp
+ emms-repeat-playlist t
+ #+end_src
+
+ Make EMMS use Doom Emacs' cache instead of its own.
+ #+begin_src emacs-lisp
+ emms-cache-file (concat doom-cache-dir "emms-cache"))
+ #+end_src
+
+ Clear the playlist both on EMMS and MPD
+ #+begin_src emacs-lisp
+ (add-hook 'emms-playlist-cleared-hook #'emms-player-mpd-clear)
+ #+end_src
+
+ Connect to MPD as soon as this config loads.
+ #+begin_src emacs-lisp
+ (emms-player-mpd-connect)
+ #+end_src
+
+ Turn on the little [ARTIST - ALBUM - TITLE] indicator in the modeline.
+ #+begin_src emacs-lisp
+ (emms-mode-line-mode 1)
+ #+end_src
+
+ Show lyrics in the buffer whenever its free
+ #+begin_src emacs-lisp
+ (emms-lyrics-toggle-display-on-minibuffer)
+ #+end_src
+
+ LISTENED/LENGTH indicator in the modeline
+
+ #+begin_src emacs-lisp
+ (emms-playing-time-mode 1)
+ #+end_src
+
+ This makes it so that presing RET on a song in normal mode adds the tracks to the playlist and plays it.
+ This currently doesnt work.
+ #+begin_src emacs-lisp
+ (map! :map emms-browser-mode-map
+ :n "RET" #'emms-browser-add-tracks-and-play))
#+end_src
* vc