X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/180cab37b6034248c12a50d0a77360b52ef1fbfe..e602de376faa029e9ff7bb1240b60b0c73bf97e0:/init.org diff --git a/init.org b/init.org index 371ec1e..96a9d6f 100644 --- a/init.org +++ b/init.org @@ -9,9 +9,21 @@ :END: This org file is my literate configuration for GNU Emacs, and is -tangled to [[./init.el][init.el]]. Packages are installed and managed using [[https://github.com/emacscollective/borg][Borg]]. - -** Installation +tangled to [[./init.el][init.el]]. Packages are installed and managed using +[[https://github.com/emacscollective/borg][Borg]]. Over the years, I've taken inspiration from configurations of +many different people. Some of the configurations that I can remember +off the top of my head are: + +- [[https://github.com/dieggsy/dotfiles][dieggsy/dotfiles]]: literate Emacs and dotfiles configuration, uses + straight.el for managing packages +- [[https://github.com/dakra/dmacs][dakra/dmacs]]: literate Emacs configuration, using Borg for managing + packages +- [[http://pages.sachachua.com/.emacs.d/Sacha.html][Sacha Chua's literate Emacs configuration]] +- [[https://github.com/dakrone/eos][dakrone/eos]] +- Ryan Rix's [[http://doc.rix.si/cce/cce.html][Complete Computing Environment]] ([[http://doc.rix.si/projects/fsem.html][about cce]]) +- [[https://github.com/jwiegley/dot-emacs][jwiegley/dot-emacs]]: nix-based configuration +- [[https://github.com/wasamasa/dotemacs][wasamasa/dotemacs]] +- [[https://github.com/hlissner/doom-emacs][Doom Emacs]] I'd like to have a fully reproducible Emacs setup (part of the reason why I store my configuration in this repository) but unfortunately out @@ -22,13 +34,28 @@ to my init time; which is unacceptable for me: I use Emacs as my window manager (via EXWM) and coming from bspwm, I'm too used to having fast startup times. +** Installation + +To use this config for your Emacs, first you need to clone this repo, +then bootstrap Borg, tell Borg to retrieve package submodules, and +byte-compiled the packages. Something along these lines should work: + +#+begin_src sh :tangle no +git clone https://github.com/aminb/dotfiles ~/.emacs.d +cd ~/.emacs.d +make bootstrap-borg +make tangle-init +make bootstrap +make build +#+end_src + * Contents :toc_1:noexport: - [[#about][About]] - [[#header][Header]] - [[#initial-setup][Initial setup]] - [[#core][Core]] -- [[#post-init][Post initialization]] +- [[#post-initialization][Post initialization]] - [[#footer][Footer]] * Header @@ -264,7 +291,6 @@ contain the mess. `((".*" ,(no-littering-expand-var-file-name "auto-save/") t)))) #+end_src - ** Custom file (=custom.el=) I'm not planning on using the custom file much, but even so, I @@ -287,15 +313,15 @@ Let's use [[https://github.com/purcell/exec-path-from-shell][exec-path-from-shel in my shell. #+begin_src emacs-lisp -;; (use-package exec-path-from-shell -;; :defer 1 -;; :init -;; (setq exec-path-from-shell-check-startup-files nil) -;; :config -;; (exec-path-from-shell-initialize) -;; ;; while we're at it, let's fix access to our running ssh-agent -;; (exec-path-from-shell-copy-env "SSH_AGENT_PID") -;; (exec-path-from-shell-copy-env "SSH_AUTH_SOCK")) +(use-package exec-path-from-shell + :defer 1 + :init + (setq exec-path-from-shell-check-startup-files nil) + :config + (exec-path-from-shell-initialize) + ;; while we're at it, let's fix access to our running ssh-agent + (exec-path-from-shell-copy-env "SSH_AGENT_PID") + (exec-path-from-shell-copy-env "SSH_AUTH_SOCK")) #+end_src ** Server @@ -320,13 +346,34 @@ See [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Emacs-Server.htm ** Defaults +*** Time and battery in mode-line + +Enable displaying time and battery in the mode-line, since I'm not +using the Xfce panel anymore. Also, I don't need to see the load +average on a regular basis, so disable that. + +#+begin_src emacs-lisp +(use-package time + :ensure nil + :init + (setq display-time-default-load-average nil) + :config + (display-time-mode)) + +(use-package battery + :ensure nil + :config + (display-battery-mode)) +#+end_src + *** Smaller fringe -Set fringe to a small value so we don't have big borders in EXWM, but -can still see the =diff-hl= colors in the fringe. +Might want to set the fringe to a smaller value, especially if using +EXWM. I'm fine with the default for now. #+begin_src emacs-lisp -(fringe-mode '(3 . 1)) +;; (fringe-mode '(3 . 1)) +(fringe-mode nil) #+end_src *** Disable disabled commands @@ -461,14 +508,15 @@ Roll your own modal mode *** [[https://github.com/ch11ng/exwm][EXWM]] (window manager) #+begin_src emacs-lisp -;; (use-package exwm -;; :config -;; (require 'exwm-config) -;; (exwm-config-default) -;; (require 'exwm-systemtray) -;; (exwm-systemtray-enable) -;; (require 'exwm-randr) -;; (exwm-randr-enable)) +(use-package exwm + :demand t + :config + (require 'exwm-config) + (exwm-config-default) + (require 'exwm-systemtray) + (exwm-systemtray-enable) + (require 'exwm-randr) + (exwm-randr-enable)) #+end_src *** [[https://orgmode.org/][Org mode]] @@ -520,39 +568,40 @@ There's no way I could top that, so I won't attempt to. **** Ivy #+begin_src emacs-lisp -;; (use-package ivy -;; :bind -;; (:map ivy-minibuffer-map -;; ([escape] . keyboard-escape-quit) -;; ("C-j" . ivy-next-line) -;; ("C-k" . ivy-previous-line) -;; ([S-up] . ivy-previous-history-element) -;; ([S-down] . ivy-next-history-element) -;; ("DEL" . ivy-backward-delete-char)) -;; :config -;; (ivy-mode 1)) +(use-package ivy + :bind + (:map ivy-minibuffer-map + ([escape] . keyboard-escape-quit) + ("C-j" . ivy-next-line) + ("C-k" . ivy-previous-line) + ([S-up] . ivy-previous-history-element) + ([S-down] . ivy-next-history-element) + ("DEL" . ivy-backward-delete-char)) + :config + (ivy-mode 1)) #+end_src **** Swiper #+begin_src emacs-lisp -;; (use-package swiper -;; :bind (([remap isearch-forward] . swiper) -;; ([remap isearch-backward] . swiper))) +(use-package swiper + :bind (([remap isearch-forward] . swiper) + ([remap isearch-backward] . swiper))) #+end_src **** Counsel #+begin_src emacs-lisp -;; (use-package counsel -;; :bind (([remap execute-extended-command] . counsel-M-x) -;; ([remap find-file] . counsel-find-file) -;; ("s-r" . counsel-recentf) -;; :map minibuffer-local-map -;; ("C-r" . counsel-minibuffer-history)) -;; :config -;; (counsel-mode 1) -;; (defalias 'locate #'counsel-locate)) +(use-package counsel + :defer 1.5 + :bind (([remap execute-extended-command] . counsel-M-x) + ([remap find-file] . counsel-find-file) + ("s-r" . counsel-recentf) + :map minibuffer-local-map + ("C-r" . counsel-minibuffer-history)) + :config + (counsel-mode 1) + (defalias 'locate #'counsel-locate)) #+end_src * Borg's =layer/essentials= @@ -638,7 +687,7 @@ TODO: break this giant source block down into individual org sections. * Post initialization :PROPERTIES: -:CUSTOM_ID: post-init +:CUSTOM_ID: post-initialization :END: Display how long it took to load the init file.