** License
Released under the [[https://opensource.org/licenses/MIT][MIT license]] by Armaan Bhojwani, 2021. Note that many snippets are taken from online, and other sources, who are credited for their work near their contributions.
* Package management
-** Emacs 28 fix
-This is temporary until some stuff gets fixed upstream
-#+begin_src emacs-lisp
- (setq straight-repository-branch "develop")
- (setq straight-disable-native-compile t)
-#+end_src
** Bootstrap straight.el
straight.el is really nice for managing package, and it integrates nicely with use-package. It uses the bootstrapping system defined here for installation.
#+begin_src emacs-lisp
+ (defvar native-comp-deferred-compilation-deny-list ())
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
** Visual line mode
Soft wrap words and do operations by visual lines except in programming modes.
#+begin_src emacs-lisp
- (visual-line-mode 1)
- (add-hook 'prog-mode-hook 'visual-line-mode 0)
+ (global-visual-line-mode 1)
+ (dolist (hook '(prog-mode-hook
+ calc-trail-mode-hook
+ mu4e-headers-mode-hook))
+ (add-hook hook (lambda () (visual-line-mode -1))))
#+end_src
** Display number of matches in search
#+begin_src emacs-lisp
(add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp"))
(add-to-list 'org-structure-template-alist '("sp" . "src conf :tangle ~/.spectrwm.conf"))
(add-to-list 'org-structure-template-alist '("ash" . "src shell :tangle ~/.config/ash/ashrc"))
- (add-to-list 'org-structure-template-alist '("ipy" . "src python :tangle ~/.ipython/"))
(add-to-list 'org-structure-template-alist '("pi" . "src conf :tangle ~/.config/picom/picom.conf"))
(add-to-list 'org-structure-template-alist '("git" . "src conf :tangle ~/.gitconfig"))
(add-to-list 'org-structure-template-alist '("du" . "src conf :tangle ~/.config/dunst/dunstrc"))
(add-to-list 'mm-discouraged-alternatives "text/richtext"))
#+end_src
** Default browser
-Set EWW as default browser except for videos which should open in MPV.
+Set EWW as default browser except for multimedia which should open in MPV.
#+begin_src emacs-lisp
(defun browse-url-mpv (url &optional new-window)
"Open URL in MPV."
+ (interactive)
(start-process "mpv" "*mpv*" "mpv" url))
(setq browse-url-handlers
("peertube.*" . browse-url-mpv)
("vid.*" . browse-url-mpv)
("vid.*" . browse-url-mpv)
+ ("*.mp4" . browse-url-mpv)
+ ("*.mp3" . browse-url-mpv)
+ ("*.ogg" . browse-url-mpv)
("." . eww-browse-url)
)))
#+end_src
(global-set-key (kbd "C-c c") 'acheam-calendar)
#+end_src
+** PDF reader
+#+begin_src emacs-lisp
+ (use-package pdf-tools
+ :hook (pdf-view-mode . pdf-view-midnight-minor-mode))
+#+end_src
* Emacs IDE
** Python formatting
#+begin_src emacs-lisp
(global-set-key (kbd "C-x C-r") #'doas-edit)
#+end_src
+** Markdown mode
+#+begin_src emacs-lisp
+ (use-package markdown-mode)
+#+end_src
* Keybindings
** Switch windows
#+begin_src emacs-lisp
** Automatically clean buffers
Automatically close unused buffers (except those of Circe) at midnight.
#+begin_src emacs-lisp
+ (midnight-mode)
(add-to-list 'clean-buffer-list-kill-never-regexps (lambda (buffer-name)
(with-current-buffer buffer-name
(derived-mode-p 'lui-mode))))
- (midnight-mode)
#+end_src
* Tangles
** Spectrwm
export KISS_PATH="$KISS_PATH:/home/armaa/Clone/repo-main/xorg"
export KISS_PATH="$KISS_PATH:/home/armaa/Clone/repo-main/testing"
export KISS_PATH="$KISS_PATH:/home/armaa/Clone/repo-community/community"
+ export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig"
#+end_src
*** Aliases
**** SSH
alias cal="cal -3 --color=auto"
alias bc='bc -l'
#+end_src
-** IPython
-#+begin_src python :tangle ~/.ipython/profile_default/ipython_config.py
- c.TerminalInteractiveShell.editing_mode = 'vi'
- c.InteractiveShell.colors = 'linux'
- c.TerminalInteractiveShell.confirm_exit = False
-#+end_src
** MPV
Make MPV play a little bit smoother.
#+begin_src conf :tangle ~/.config/mpv/mpv.conf