(push #'minibufferp evil-escape-inhibit-functions))
#+end_src
-*** [[https://github.com/ch11ng/exwm][EXWM]] (window manager)
-
-#+begin_src emacs-lisp :tangle no
-(use-package exwm
- :demand t
- :config
- (require 'exwm-config)
-
- ;; Set the initial workspace number.
- (setq exwm-workspace-number 4)
-
- ;; Make class name the buffer name, truncating beyond 50 characters
- (defun exwm-rename-buffer ()
- (interactive)
- (exwm-workspace-rename-buffer
- (concat exwm-class-name ":"
- (if (<= (length exwm-title) 50) exwm-title
- (concat (substring exwm-title 0 49) "...")))))
- (add-hook 'exwm-update-class-hook 'exwm-rename-buffer)
- (add-hook 'exwm-update-title-hook 'exwm-rename-buffer)
-
- ;; 's-R': Reset
- (exwm-input-set-key (kbd "s-R") #'exwm-reset)
- ;; 's-\': Switch workspace
- (exwm-input-set-key (kbd "s-\\") #'exwm-workspace-switch)
- ;; 's-N': Switch to certain workspace
- (dotimes (i 10)
- (exwm-input-set-key (kbd (format "s-%d" i))
- (lambda ()
- (interactive)
- (exwm-workspace-switch-create i))))
- ;; 's-SPC': Launch application
- ;; (exwm-input-set-key
- ;; (kbd "s-SPC")
- ;; (lambda (command)
- ;; (interactive (list (read-shell-command "➜ ")))
- ;; (start-process-shell-command command nil command)))
-
- (exwm-input-set-key (kbd "M-s-SPC") #'counsel-linux-app)
-
- ;; Shorten 'C-c C-q' to 'C-q'
- (define-key exwm-mode-map [?\C-q] #'exwm-input-send-next-key)
-
- ;; Line-editing shortcuts
- (setq exwm-input-simulation-keys
- '(;; movement
- ([?\C-b] . [left])
- ([?\M-b] . [C-left])
- ([?\C-f] . [right])
- ([?\M-f] . [C-right])
- ([?\C-p] . [up])
- ([?\C-n] . [down])
- ([?\C-a] . [home])
- ([?\C-e] . [end])
- ([?\M-v] . [prior])
- ([?\C-v] . [next])
- ([?\C-d] . [delete])
- ([?\C-k] . [S-end delete])
- ;; cut/copy/paste
- ;; ([?\C-w] . [?\C-x])
- ([?\M-w] . [?\C-c])
- ([?\C-y] . [?\C-v])
- ;; search
- ([?\C-s] . [?\C-f])))
-
- ;; Enable EXWM
- (exwm-enable)
-
- (add-hook 'exwm-init-hook #'exwm-config--fix/ido-buffer-window-other-frame)
-
- (require 'exwm-systemtray)
- (exwm-systemtray-enable)
-
- (require 'exwm-randr)
- (exwm-randr-enable)
-
- ;; (exwm-input-set-key
- ;; (kbd "s-<return>")
- ;; (lambda ()
- ;; (interactive)
- ;; (start-process "urxvt" nil "urxvt")))
-
- ;; (exwm-input-set-key
- ;; (kbd "s-SPC") ;; rofi doesn't properly launch programs when started from emacs
- ;; (lambda ()
- ;; (interactive)
- ;; (start-process-shell-command "rofi-run" nil "rofi -show run -display-run '> ' -display-window ' 🗔 '")))
-
- ;; (exwm-input-set-key
- ;; (kbd "s-/")
- ;; (lambda ()
- ;; (interactive)
- ;; (start-process-shell-command "rofi-win" nil "rofi -show window -display-run '> ' -display-window ' 🗔 '")))
-
- ;; (exwm-input-set-key
- ;; (kbd "M-SPC")
- ;; (lambda ()
- ;; (interactive)
- ;; (start-process "rofi-pass" nil "rofi-pass")))
-
- ;; (exwm-input-set-key
- ;; (kbd "<XF86AudioMute>")
- ;; (lambda ()
- ;; (interactive)
- ;; (start-process-shell-command "pamixer" nil "pamixer --toggle-mute")))
-
- ;; (exwm-input-set-key
- ;; (kbd "<XF86AudioLowerVolume>")
- ;; (lambda ()
- ;; (interactive)
- ;; (start-process-shell-command "pamixer" nil "pamixer --allow-boost --decrease 5")))
-
- ;; (exwm-input-set-key
- ;; (kbd "<XF86AudioRaiseVolume>")
- ;; (lambda ()
- ;; (interactive)
- ;; (start-process-shell-command "pamixer" nil "pamixer --allow-boost --increase 5")))
-
- ;; (exwm-input-set-key
- ;; (kbd "<XF86AudioPlay>")
- ;; (lambda ()
- ;; (interactive)
- ;; (start-process-shell-command "mpc" nil "mpc toggle")))
-
- ;; (exwm-input-set-key
- ;; (kbd "<XF86AudioPrev>")
- ;; (lambda ()
- ;; (interactive)
- ;; (start-process-shell-command "mpc" nil "mpc prev")))
-
- ;; (exwm-input-set-key
- ;; (kbd "<XF86AudioNext>")
- ;; (lambda ()
- ;; (interactive)
- ;; (start-process-shell-command "mpc" nil "mpv next")))
-
- (defun ab--exwm-pasystray ()
- "A command used to start pasystray."
- (interactive)
- (if (executable-find "pasystray")
- (progn
- (message "EXWM: starting pasystray ...")
- (start-process-shell-command "pasystray" nil "pasystray --notify=all"))
- (message "EXWM: pasystray is not installed, abort!")))
-
- (add-hook 'exwm-init-hook #'ab--exwm-pasystray)
-
- (exwm-input-set-key
- (kbd "s-t")
- (lambda ()
- (interactive)
- (exwm-floating-toggle-floating)))
-
- (exwm-input-set-key
- (kbd "s-f")
- (lambda ()
- (interactive)
- (exwm-layout-toggle-fullscreen)))
-
- (exwm-input-set-key
- (kbd "s-w")
- (lambda ()
- (interactive)
- (kill-buffer (current-buffer))))
-
- (exwm-input-set-key
- (kbd "s-q")
- (lambda ()
- (interactive)
- (exwm-manage--kill-client))))
-#+end_src
-
-**** sxhkdrc
-:PROPERTIES:
-:header-args+: :tangle ~/.config/sxhkd/sxhkdrc :mkdirp yes
-:END:
-
-#+begin_src conf :tangle no
-# terminal emulator
-super + Return
- urxvt
-
-# program launcher
-super + space
- rofi -show run -display-run '> ' -display-window ' 🗔 '
-
-# window finder
-super + slash
- rofi -show window -display-run '> ' -display-window ' 🗔 '
-
-# password manager
-alt + space
- rofi-pass
-
-# make sxhkd reload its configuration files:
-super + Escape
- pkill -USR1 -x sxhkd
-
-# volume {up,down}
-XF86Audio{Raise,Lower}Volume
- pamixer --allow-boost --{in,de}crease 5
-
-# mute
-XF86AudioMute
- pamixer --toggle-mute
-
-# playback control
-XF86Audio{Play,Prev,Next}
- mpc {toggle,prev,next}
-
-# Toggle keyboard layout
-# super + F7
-# toggle-layout
-
-# Toggle Xfce presentation mode
-# XF86LaunchB
-# toggle-presentation-mode
-
-# monitor brightness
-XF86MonBrightness{Up,Down}
- light -{A,U} 5
-
-super + apostrophe
- rofi-light
-#+end_src
-
*** [[https://orgmode.org/][Org mode]]
#+begin_quote
#+end_src
* Programming modes
-** Alloy
+** [[http://alloytools.org][Alloy]] (with [[https://github.com/dwwmmn/alloy-mode][alloy-mode]])
#+begin_src emacs-lisp
(use-package alloy-mode
:config (setq alloy-basic-offset 2))
#+end_src
-** [[https://github.com/leanprover/lean-mode][Lean]]
+** [[https://coq.inria.fr][Coq]] (with [[https://github.com/ProofGeneral/PG][Proof General]])
+
+#+begin_src emacs-lisp
+(use-package proof-site ; Proof General
+ :load-path "lib/proof-site/generic/")
+#+end_src
+
+** [[https://leanprover.github.io][Lean]] (with [[https://github.com/leanprover/lean-mode][lean-mode]])
#+begin_src emacs-lisp
(use-package lean-mode
:defer 1
:config (which-key-mode))
#+end_src
+
+** [[https://github.com/seagle0128/doom-modeline][doom-modeline]]
+
+#+begin_src emacs-lisp
+(use-package doom-modeline
+ :demand t
+ :config (setq doom-modeline-height 32)
+ :hook (after-init . doom-modeline-init))
+#+end_src
+
+** [[https://github.com/11111000000/tao-theme-emacs][tao-theme]]
+
+#+begin_src emacs-lisp
+(use-package tao-theme
+ :demand t
+ :config (load-theme 'tao-yang t))
+#+end_src
+
* Email
-** notmuch
+** [[https://notmuchmail.org][notmuch]]
#+begin_src emacs-lisp
(defun ab/notmuch ()
("abandali@uwaterloo.ca" . "\"uwaterloo/Sent Items\"")
("amin.bandali@uwaterloo.ca" . "\"uwaterloo/Sent Items\"")
("aminb@gnu.org" . "gnu/Sent")
- (".*" . "sent")))
+ (".*" . "sent"))
+ notmuch-search-result-format
+ '(("date" . "%12s ")
+ ("count" . "%-7s ")
+ ("authors" . "%-40s ")
+ ("subject" . "%s ")
+ ("tags" . "(%s)")))
;; (add-hook 'visual-fill-column-mode-hook
;; (lambda ()
;; (when (string= major-mode 'notmuch-message-mode)