Emacs: Finish namespacing
parent
2ff577fa71
commit
81e1392b5c
|
@ -113,8 +113,6 @@
|
|||
debbugs-gnu-persistency-file (expand-file-name "debbugs" ambrevar/emacs-cache-folder)))
|
||||
|
||||
;;; Diff
|
||||
;;; REVIEW: Show permissions in ztree.
|
||||
;;; See https://github.com/fourier/ztree/issues/50.
|
||||
;;; TODO: In diff-mode, both `[[` and `C-M-a` do not go back to previous index
|
||||
;;; once they are at the beginning of an index.
|
||||
(nconc package-selected-packages '(ztree))
|
||||
|
@ -148,11 +146,11 @@
|
|||
(setq fish-completion-fallback-on-bash-p t)
|
||||
(global-fish-completion-mode))
|
||||
(with-eval-after-load 'eshell (require 'init-eshell))
|
||||
(autoload 'eshell-or-new-session "eshell")
|
||||
(autoload 'ambrevar/eshell-or-new-session "eshell")
|
||||
|
||||
;;; Eww
|
||||
(with-eval-after-load 'eww (require 'init-eww))
|
||||
(autoload 'eww-switch-back "eww")
|
||||
(autoload 'ambrevar/eww-switch-back "eww")
|
||||
|
||||
;;; GLSL
|
||||
(nconc package-selected-packages '(glsl-mode))
|
||||
|
@ -185,12 +183,13 @@
|
|||
;;; TODO: Disable white frame.
|
||||
;;; I think it's the cursor.
|
||||
;;; Evil-mode reverts cursor changes.
|
||||
;; (set-face-foreground 'cursor "black")
|
||||
;;; TODO: Implement other sxiv features:
|
||||
;;; - Gamma
|
||||
;;; - Marks
|
||||
;;; - Gallery
|
||||
;;; TODO: Is it possible to display an image fullscreen?
|
||||
;;; TODO: Image+: Do no auto-adjust animated files
|
||||
;;; TODO: Image+: Dot no auto-adjust animated files
|
||||
;;; https://github.com/mhayashi1120/Emacs-imagex/issues/10
|
||||
;;; TODO: Image+: Restore animation state
|
||||
;;; https://github.com/mhayashi1120/Emacs-imagex/issues/9
|
||||
|
@ -261,7 +260,7 @@
|
|||
;; (nconc package-selected-packages '(mu4e-maildirs-extension))
|
||||
(nconc package-selected-packages '(helm-mu)))
|
||||
(with-eval-after-load 'mu4e (require 'init-mu4e))
|
||||
(autoload 'mu4e-headers "mu4e")
|
||||
(autoload 'ambrevar/mu4e-headers "mu4e")
|
||||
|
||||
;;; Makefile
|
||||
(with-eval-after-load 'make-mode (require 'init-makefile))
|
||||
|
@ -290,13 +289,13 @@
|
|||
;;; News
|
||||
(nconc package-selected-packages '(elfeed))
|
||||
(with-eval-after-load 'elfeed (require 'init-elfeed))
|
||||
(autoload 'elfeed-switch-back "elfeed")
|
||||
(autoload 'ambrevar/elfeed-switch-back "elfeed")
|
||||
|
||||
;;; Org-mode
|
||||
(nconc package-selected-packages '(org-plus-contrib org-bullets)) ; org-plus contains latest Org mode.
|
||||
(with-eval-after-load 'org (require 'init-org))
|
||||
(autoload 'org-switch-agenda-file "org")
|
||||
(autoload 'org-switch-agenda-file-other-window "org")
|
||||
(autoload 'ambrevar/org-switch-agenda-file "org")
|
||||
(autoload 'ambrevar/org-switch-agenda-file-other-window "org")
|
||||
|
||||
;;; Packaging
|
||||
(nconc package-selected-packages '(esup package-lint))
|
||||
|
@ -311,7 +310,7 @@
|
|||
;;; REVIEW: `save-place' does not seem to work with pdf-tools.
|
||||
;;; See https://github.com/politza/pdf-tools/issues/18.
|
||||
;;; TODO: windmove fails when selecting text and then moving up/down.
|
||||
;;; It only fails if in evil mode.
|
||||
;;; It only fails in Evil mode.
|
||||
(nconc package-selected-packages '(pdf-tools))
|
||||
(when (require 'pdf-tools nil t)
|
||||
;; (setq pdf-view-midnight-colors '("#ffffff" . "#000000"))
|
||||
|
|
|
@ -56,7 +56,7 @@ TO-STRING."
|
|||
Tabify if `indent-tabs-mode' is true, otherwise use spaces.
|
||||
Work on buffer or region.
|
||||
|
||||
If `fmt-inhinit-p' is non-nil, it does nothing.
|
||||
If `ambrevar/fmt-inhinit-p' is non-nil, it does nothing.
|
||||
|
||||
Require `ambrevar/tabify-leading'."
|
||||
(interactive)
|
||||
|
@ -73,7 +73,7 @@ Require `ambrevar/tabify-leading'."
|
|||
|
||||
(defcustom ambrevar/fmt-inhibit-p t
|
||||
"Do not run `ambrevar/fmt' if non-nil.
|
||||
As this is not friendly to foreign projects, `fmt' should be run
|
||||
As this is not friendly to foreign projects, `ambrevar/fmt' should be run
|
||||
selectively."
|
||||
:safe 'booleanp)
|
||||
|
||||
|
@ -353,7 +353,7 @@ This does not interfere with `subword-mode'."
|
|||
(message "_ is a word delimiter")))
|
||||
|
||||
;;; TODO: Move turn-on-* functions to 'hook-functions.el'?
|
||||
;;; Replace useless individual comments with a single global comment.
|
||||
;;; And replace useless individual comments with a single global comment.
|
||||
|
||||
(defun ambrevar/turn-on-column-number-mode ()
|
||||
"Unconditionally turn on `column-number-mode' for the current buffer."
|
||||
|
@ -374,8 +374,8 @@ This does not affect .csv files."
|
|||
(remove-hook 'before-save-hook 'delete-trailing-whitespace t))
|
||||
|
||||
(defun ambrevar/turn-on-fmt-before-save ()
|
||||
"Unconditionally add the `fmt' function to `before-save-hook'."
|
||||
(add-hook 'before-save-hook 'fmt nil t))
|
||||
"Unconditionally add the `ambrevar/fmt' function to `before-save-hook'."
|
||||
(add-hook 'before-save-hook 'ambrevar/fmt nil t))
|
||||
|
||||
(defun ambrevar/turn-off-fmt-before-save ()
|
||||
"Unconditionally remove the `ambrevar/fmt' function to `before-save-hook'."
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
(dolist (map (list c-mode-map c++-mode-map))
|
||||
(ambrevar/define-keys map "C-c m" 'cc-main
|
||||
"<f5>" 'cc-clean
|
||||
"<f5>" 'ambrevar/cc-clean
|
||||
"M-." 'semantic-ia-fast-jump
|
||||
"C-c C-d" 'semantic-ia-show-summary
|
||||
"M-<tab>" 'semantic-complete-analyze-inline)
|
||||
|
@ -24,13 +24,13 @@
|
|||
;; ("\\<\\(\\sw+\\)(" 1 'font-lock-function-name-face)
|
||||
;; ("\\<\\(\\sw+\\)<\\sw+>(" 1 'font-lock-function-name-face))))
|
||||
|
||||
(defvar-local cc-ldlibs "-lm -pthread"
|
||||
(defvar-local ambrevar/cc-ldlibs "-lm -pthread"
|
||||
"Custom linker flags for C/C++ linkage.")
|
||||
|
||||
(defvar-local cc-ldflags ""
|
||||
(defvar-local ambrevar/cc-ldflags ""
|
||||
"Custom linker libs for C/C++ linkage.")
|
||||
|
||||
(defun cc-set-compiler (&optional nomakefile)
|
||||
(defun ambrevar/cc-set-compiler (&optional nomakefile)
|
||||
"Set compile command to be nearest Makefile or a generic command.
|
||||
The Makefile is looked up in parent folders. If no Makefile is
|
||||
found (or if NOMAKEFILE is non-nil or if function was called with
|
||||
|
@ -57,10 +57,10 @@ provided."
|
|||
(if c++-p
|
||||
(or (getenv "CXXFLAGS") "-Wall -Wextra -Wshadow -DDEBUG=9 -g3 -O0")
|
||||
(or (getenv "CFLAGS") "-ansi -pedantic -std=c11 -Wall -Wextra -Wshadow -DDEBUG=9 -g3 -O0"))
|
||||
(or (getenv "LDFLAGS") cc-ldflags)
|
||||
(or (getenv "LDLIBS") cc-ldlibs)))))))
|
||||
(or (getenv "LDFLAGS") ambrevar/cc-ldflags)
|
||||
(or (getenv "LDLIBS") ambrevar/cc-ldlibs)))))))
|
||||
|
||||
(defun cc-clean ()
|
||||
(defun ambrevar/cc-clean ()
|
||||
"Find Makefile and call the `clean' rule. If no Makefile is
|
||||
found, no action is taken. The previous `compile' command is
|
||||
restored."
|
||||
|
@ -70,12 +70,12 @@ restored."
|
|||
(when makefile-dir
|
||||
(compile (format "make -k -C %s clean" (shell-quote-argument makefile-dir))))))
|
||||
|
||||
;;; It is tempting to add `cc-fmt' to the hook:
|
||||
;; (add-hook 'before-save-hook 'cc-fmt nil t)
|
||||
;;; It is tempting to add `ambrevar/cc-fmt' to the hook:
|
||||
;; (add-hook 'before-save-hook 'ambrevar/cc-fmt nil t)
|
||||
;;; Unlike Go however, there is no formatting standard and thus this would break
|
||||
;;; the formatting rules of every third-party C file that does not follow the
|
||||
;;; same style.
|
||||
(defun cc-fmt ()
|
||||
(defun ambrevar/cc-fmt ()
|
||||
"Run uncrustify(1) on current buffer or region."
|
||||
(interactive)
|
||||
(let (status
|
||||
|
@ -102,8 +102,7 @@ restored."
|
|||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;; Options
|
||||
|
||||
;;; Semanticdb folders must be set before starting semantic.
|
||||
(setq semanticdb-default-save-directory (concat ambrevar/emacs-cache-folder "semanticdb"))
|
||||
;;; Make sure Semanticdb folders is set before starting semantic.
|
||||
(semantic-mode 1)
|
||||
|
||||
;;; Extra semantic support
|
||||
|
@ -144,7 +143,7 @@ restored."
|
|||
(dolist (hook '(c-mode-hook c++-mode-hook))
|
||||
(when (require 'company nil t)
|
||||
(add-hook hook 'company-mode))
|
||||
(add-hook hook 'cc-set-compiler))
|
||||
(add-hook hook 'ambrevar/cc-set-compiler))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;; Skeletons
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
;;; We cannot assume that current buffer is in dired-mode.
|
||||
|
||||
(ambrevar/define-keys dired-mode-map
|
||||
"C-c h" 'dired-toggle-humansize
|
||||
"C-c h" 'ambrevar/dired-toggle-humansize
|
||||
"<left>" 'dired-up-directory
|
||||
"<right>" 'dired-find-file
|
||||
"SPC" 'dired-mark
|
||||
|
@ -22,7 +22,7 @@
|
|||
;;; dired-internal-noselect is a lower level function, so it is faster. WARNING:
|
||||
;;; Not sure if it is equivalent though.
|
||||
;; (dired dired-directory dired-listing-switches)
|
||||
(defun dired-set-listing-switches ()
|
||||
(defun ambrevar/dired-set-listing-switches ()
|
||||
(dired-internal-noselect dired-directory dired-listing-switches))
|
||||
|
||||
(setq wdired-allow-to-change-permissions t)
|
||||
|
@ -37,9 +37,9 @@
|
|||
'("\\.\\(jpe?g\\|png\\|git\\)$" "sxiv")
|
||||
'("\\.\\(mkv\\|mpe?g\\|avi\\|mp4\\|ogm\\)$" "mpv")))
|
||||
|
||||
(defvar dired-showing-humansize t "If dired is displaying humansize or not.")
|
||||
(defvar ambrevar/dired-showing-humansize t "If dired is displaying humansize or not.")
|
||||
|
||||
(defun dired-toggle-humansize ()
|
||||
(defun ambrevar/dired-toggle-humansize ()
|
||||
"Toggle displaying humansize in dired."
|
||||
(interactive)
|
||||
(let ((switch-regexp "\\(\\`\\| \\)-\\([a-gi-zA-Z]*\\)\\(h\\)\\([^ ]*\\)")
|
||||
|
@ -51,18 +51,18 @@
|
|||
(replace-match "" t t dired-actual-switches))
|
||||
(setq dired-actual-switches
|
||||
(replace-match "" t t dired-actual-switches 3))))
|
||||
(if dired-showing-humansize
|
||||
(setq dired-showing-humansize nil)
|
||||
(if ambrevar/dired-showing-humansize
|
||||
(setq ambrevar/dired-showing-humansize nil)
|
||||
(progn
|
||||
(setq dired-actual-switches
|
||||
(concat dired-actual-switches
|
||||
(if (string-match-p "\\`-[[:alnum:]]+\\'"
|
||||
dired-actual-switches)
|
||||
"h" " -h")))
|
||||
(setq dired-showing-humansize t))))
|
||||
(setq ambrevar/dired-showing-humansize t))))
|
||||
(revert-buffer))
|
||||
|
||||
(dolist (fun '(dired-omit-mode dired-set-listing-switches))
|
||||
(dolist (fun '(dired-omit-mode ambrevar/dired-set-listing-switches))
|
||||
(add-hook 'dired-mode-hook fun))
|
||||
|
||||
(provide 'init-dired)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
(setq elfeed-db-directory (concat ambrevar/emacs-cache-folder "elfeed"))
|
||||
|
||||
(defun elfeed-play-with-mpv ()
|
||||
(defun ambrevar/elfeed-play-with-mpv ()
|
||||
"Play entry link with mpv."
|
||||
(interactive)
|
||||
(let ((entry (if (eq major-mode 'elfeed-show-mode) elfeed-show-entry (elfeed-search-selected :single)))
|
||||
|
@ -14,25 +14,25 @@
|
|||
(setq quality-arg (format "--ytdl-format=[height<=?%s]" quality-val)))
|
||||
(start-process "elfeed-mpv" nil "mpv" quality-arg (elfeed-entry-link entry))))
|
||||
|
||||
(defun elfeed-open-with-eww ()
|
||||
(defun ambrevar/elfeed-open-with-eww ()
|
||||
"Open in eww with `eww-readable'."
|
||||
(interactive)
|
||||
(let ((entry (if (eq major-mode 'elfeed-show-mode) elfeed-show-entry (elfeed-search-selected :single))))
|
||||
(eww (elfeed-entry-link entry))
|
||||
(add-hook 'eww-after-render-hook 'eww-readable nil t)))
|
||||
|
||||
(defvar elfeed-visit-patterns
|
||||
'(("youtu\\.?be" . elfeed-play-with-mpv)
|
||||
("phoronix" . elfeed-open-with-eww))
|
||||
(defvar ambrevar/elfeed-visit-patterns
|
||||
'(("youtu\\.?be" . ambrevar/elfeed-play-with-mpv)
|
||||
("phoronix" . ambrevar/elfeed-open-with-eww))
|
||||
"List of (regexps . function) to match against elfeed entry link to know
|
||||
whether how to visit the link.")
|
||||
|
||||
(defun elfeed-visit-maybe-external ()
|
||||
"Visit with external function if entry link matches `elfeed-visit-patterns',
|
||||
(defun elfeed-ambrevar/visit-maybe-external ()
|
||||
"Visit with external function if entry link matches `ambrevar/elfeed-visit-patterns',
|
||||
visit otherwise."
|
||||
(interactive)
|
||||
(let ((entry (if (eq major-mode 'elfeed-show-mode) elfeed-show-entry (elfeed-search-selected :single)))
|
||||
(patterns elfeed-visit-patterns))
|
||||
(patterns ambrevar/elfeed-visit-patterns))
|
||||
(while (and patterns (not (string-match (caar patterns) (elfeed-entry-link entry))))
|
||||
(setq patterns (cdr patterns)))
|
||||
(if patterns
|
||||
|
@ -43,14 +43,14 @@ visit otherwise."
|
|||
|
||||
(define-key elfeed-search-mode-map "v" #'elfeed-play-in-mpv)
|
||||
|
||||
(defun elfeed-kill-entry ()
|
||||
(defun ambrevar/elfeed-kill-entry ()
|
||||
"Like `elfeed-kill-buffer' but pop elfeed search."
|
||||
(interactive)
|
||||
(elfeed-kill-buffer)
|
||||
(switch-to-buffer "*elfeed-search*"))
|
||||
(define-key elfeed-show-mode-map "q" #'elfeed-kill-entry)
|
||||
(define-key elfeed-show-mode-map "q" #'ambrevar/elfeed-kill-entry)
|
||||
|
||||
(defun elfeed-switch-back ()
|
||||
(defun ambrevar/elfeed-switch-back ()
|
||||
"Back to the last elfeed buffer, entry or search."
|
||||
(interactive)
|
||||
(let ((buffer (get-buffer "*elfeed-entry*")))
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
(emms-pause))))
|
||||
|
||||
;;; Browse by album-artist.
|
||||
(defun emms-browser-get-track-custom (track type)
|
||||
(defun ambrevar/emms-browser-get-track-custom (track type)
|
||||
"Return TYPE from TRACK.
|
||||
This function uses 'info-albumartistsort, 'info-albumartist,
|
||||
'info-artistsort, 'info-originalyear, 'info-originaldate and
|
||||
|
@ -69,7 +69,7 @@ This function uses 'info-albumartistsort, 'info-albumartist,
|
|||
(emms-format-date-to-year date)))
|
||||
(t (emms-track-get track type "<unknown>"))))
|
||||
|
||||
(setq emms-browser-get-track-field-function #'emms-browser-get-track-custom)
|
||||
(setq emms-browser-get-track-field-function #'ambrevar/emms-browser-get-track-custom)
|
||||
|
||||
(when (require 'helm-emms nil t)
|
||||
(setq helm-emms-default-sources
|
||||
|
@ -80,15 +80,15 @@ This function uses 'info-albumartistsort, 'info-albumartist,
|
|||
;;; Cover thumbnails.
|
||||
(setq emms-browser-covers 'emms-browser-cache-thumbnail)
|
||||
|
||||
(defun emms-browser-add-tracks-and-maybe-play ()
|
||||
(defun ambrevar/emms-browser-add-tracks-and-maybe-play ()
|
||||
"Like `emms-browser-add-tracks' but play immediately if nothing
|
||||
is currently playing."
|
||||
(interactive)
|
||||
(if emms-player-playing-p
|
||||
(emms-browser-add-tracks)
|
||||
(emms-browser-add-tracks-and-play)))
|
||||
(define-key emms-browser-mode-map (kbd "<return>") 'emms-browser-add-tracks-and-maybe-play)
|
||||
(define-key emms-browser-mode-map (kbd "<return>") 'ambrevar/emms-browser-add-tracks-and-maybe-play)
|
||||
(when (fboundp 'evil-define-key)
|
||||
(evil-define-key '(normal motion) emms-browser-mode-map (kbd "<return>") 'emms-browser-add-tracks-and-maybe-play))
|
||||
(evil-define-key '(normal motion) emms-browser-mode-map (kbd "<return>") 'ambrevar/emms-browser-add-tracks-and-maybe-play))
|
||||
|
||||
(provide 'init-emms)
|
||||
|
|
|
@ -76,14 +76,14 @@
|
|||
|
||||
;;; Change mode-line color by Evil state.
|
||||
(setq evil-default-modeline-color (cons (face-background 'mode-line) (or (face-foreground 'mode-line) "black")))
|
||||
(defun evil-color-modeline ()
|
||||
(defun ambrevar/evil-color-modeline ()
|
||||
(let ((color (cond ((minibufferp) evil-default-modeline-color)
|
||||
((evil-insert-state-p) '("#006fa0" . "#ffffff")) ; 00bb00
|
||||
((evil-emacs-state-p) '("#444488" . "#ffffff"))
|
||||
(t evil-default-modeline-color))))
|
||||
(set-face-background 'mode-line (car color))
|
||||
(set-face-foreground 'mode-line (cdr color))))
|
||||
(add-hook 'post-command-hook 'evil-color-modeline)
|
||||
(add-hook 'post-command-hook 'ambrevar/evil-color-modeline)
|
||||
(setq evil-mode-line-format nil)
|
||||
|
||||
;;; Add defun text-object. TODO: Does not work for "around".
|
||||
|
@ -198,7 +198,7 @@
|
|||
(add-hook 'org-mode-hook 'evil-org-mode)
|
||||
;; No need for 'insert, 'shift (I use custom definitions), 'todo 'heading.
|
||||
(evil-org-set-key-theme '(navigation textobjects additional shift))
|
||||
(defun evil-org-meta-return ()
|
||||
(defun ambrevar/evil-org-meta-return ()
|
||||
"Like `org-meta-return' but switch to insert mode."
|
||||
(interactive)
|
||||
(evil-insert 1)
|
||||
|
@ -207,7 +207,7 @@
|
|||
"^" 'org-up-element ; Evil-Magit-inspired. TODO: Suggest upstream.
|
||||
"<" 'org-up-element ; Custom
|
||||
">" 'org-down-element ; Custom
|
||||
(kbd "M-<return>") 'evil-org-meta-return)
|
||||
(kbd "M-<return>") 'ambrevar/evil-org-meta-return)
|
||||
(with-eval-after-load 'org-agenda
|
||||
(require 'evil-org-agenda)
|
||||
(evil-org-agenda-set-keys))))
|
||||
|
|
|
@ -25,8 +25,8 @@
|
|||
;;; https://github.com/emacs-helm/helm/issues/1889
|
||||
|
||||
;;; Rename buffer to window title.
|
||||
(defun exwm-rename-buffer-to-title () (exwm-workspace-rename-buffer exwm-title))
|
||||
(add-hook 'exwm-update-title-hook 'exwm-rename-buffer-to-title)
|
||||
(defun ambrevar/exwm-rename-buffer-to-title () (exwm-workspace-rename-buffer exwm-title))
|
||||
(add-hook 'exwm-update-title-hook 'ambrevar/exwm-rename-buffer-to-title)
|
||||
|
||||
(add-hook 'exwm-floating-setup-hook 'exwm-layout-hide-mode-line)
|
||||
(add-hook 'exwm-floating-exit-hook 'exwm-layout-show-mode-line)
|
||||
|
@ -76,13 +76,13 @@
|
|||
(exwm-input-set-key (kbd "s-b") #'helm-mini)
|
||||
(exwm-input-set-key (kbd "s-f") #'helm-find-files)
|
||||
(exwm-input-set-key (kbd "s-F") #'helm-locate)
|
||||
(when (fboundp 'helm-locate-meta)
|
||||
(exwm-input-set-key (kbd "s-F") #'helm-locate-meta))
|
||||
(when (fboundp 'ambrevar/helm-locate-meta)
|
||||
(exwm-input-set-key (kbd "s-F") #'ambrevar/helm-locate-meta))
|
||||
(exwm-input-set-key (kbd "s-g") 'ambrevar/helm-grep-git-or-ag)
|
||||
(exwm-input-set-key (kbd "s-G") 'ambrevar/helm-grep-git-all-or-ag))
|
||||
|
||||
(require 'functions)
|
||||
(exwm-input-set-key (kbd "s-<tab>") #'switch-to-last-buffer)
|
||||
(exwm-input-set-key (kbd "s-<tab>") #'ambrevar/switch-to-last-buffer)
|
||||
(when (require 'evil nil t)
|
||||
(exwm-input-set-key (kbd "s-<tab>") #'evil-switch-to-windows-last-buffer)
|
||||
(exwm-input-set-key (kbd "C-6") #'evil-switch-to-windows-last-buffer))
|
||||
|
@ -102,7 +102,7 @@
|
|||
(when (fboundp 'helm-pass)
|
||||
(exwm-input-set-key (kbd "s-p") #'helm-pass))
|
||||
(when (delq nil (mapcar (lambda (path) (string-match "/mu4e/\\|/mu4e$" path)) load-path))
|
||||
(exwm-input-set-key (kbd "s-m") #'mu4e-headers))
|
||||
(exwm-input-set-key (kbd "s-m") #'ambrevar/mu4e-headers))
|
||||
(exwm-input-set-key (kbd "s-n") #'ambrevar/elfeed-switch-back) ; "n" for "news"
|
||||
(exwm-input-set-key (kbd "s-e") #'ambrevar/eww-switch-back)
|
||||
(exwm-input-set-key (kbd "s-E") #'eww)
|
||||
|
@ -110,11 +110,11 @@
|
|||
|
||||
|
||||
;;; External application shortcuts.
|
||||
(defun exwm-start (command)
|
||||
(defun ambrevar/exwm-start (command)
|
||||
(interactive (list (read-shell-command "$ ")))
|
||||
(start-process-shell-command command nil command))
|
||||
(exwm-input-set-key (kbd "s-&") #'exwm-start)
|
||||
(exwm-input-set-key (kbd "s-r") #'exwm-start)
|
||||
(exwm-input-set-key (kbd "s-&") #'ambrevar/exwm-start)
|
||||
(exwm-input-set-key (kbd "s-r") #'ambrevar/exwm-start)
|
||||
|
||||
(when (require 'helm-exwm nil t)
|
||||
(add-to-list 'helm-source-names-using-follow "EXWM buffers")
|
||||
|
@ -136,17 +136,16 @@
|
|||
(exwm-input-set-key (kbd "s-W") #'helm-exwm-switch-browser-other-window))
|
||||
|
||||
;;; Lock screen
|
||||
(defvar exwm-lock-program "slock" "Shell command used to lock the screen.")
|
||||
(defun exwm-start-lock () (interactive) (start-process-shell-command exwm-lock-program nil exwm-lock-program))
|
||||
(exwm-input-set-key (kbd "s-z") #'exwm-start-lock)
|
||||
(defun ambrevar/exwm-start-lock () (interactive) (start-process "slock" nil "slock"))
|
||||
(exwm-input-set-key (kbd "s-z") #'ambrevar/exwm-start-lock)
|
||||
|
||||
;;; Screenshot
|
||||
(defun exwm-start-screenshot () (interactive) (start-process-shell-command "scrot" nil "scrot ~/temp/screen-%F-%T.png"))
|
||||
(exwm-input-set-key (kbd "<print>") #'exwm-start-screenshot)
|
||||
(defun ambrevar/exwm-start-screenshot () (interactive) (start-process-shell-command "scrot" nil "scrot ~/temp/screen-%F-%T.png"))
|
||||
(exwm-input-set-key (kbd "<print>") #'ambrevar/exwm-start-screenshot)
|
||||
|
||||
;;; Volume control
|
||||
;;; TODO: Check out the 'volume' package.
|
||||
(defun exwm-volume (&optional up-or-down)
|
||||
(defun ambrevar/exwm-volume (&optional up-or-down)
|
||||
(let ((controllers '(("amixer" . ((control . "set Master") (down . "5%-") (up . "5%+") (toggle . "toggle")))
|
||||
("mixer" . ((control . "vol") (down . "-5") (up . "+5") (toggle . "^"))))))
|
||||
(while (not (executable-find (caar controllers)))
|
||||
|
@ -158,15 +157,15 @@
|
|||
(alist-get 'control (cdar controllers))
|
||||
(alist-get up-or-down (cdar controllers) (alist-get 'toggle (cdar controllers) )))))))
|
||||
|
||||
(defun exwm-start-volume-down () (interactive) (exwm-volume 'down))
|
||||
(defun exwm-start-volume-up () (interactive) (exwm-volume 'up))
|
||||
(defun exwm-start-volume-toggle () (interactive) (exwm-volume))
|
||||
(exwm-input-set-key (kbd "s-<kp-subtract>") #'exwm-start-volume-down)
|
||||
(exwm-input-set-key (kbd "s-<kp-add>") #'exwm-start-volume-up)
|
||||
(exwm-input-set-key (kbd "s-<kp-enter>") #'exwm-start-volume-toggle)
|
||||
(exwm-input-set-key (kbd "s--") #'exwm-start-volume-down)
|
||||
(exwm-input-set-key (kbd "s-=") #'exwm-start-volume-up)
|
||||
(exwm-input-set-key (kbd "s-0") #'exwm-start-volume-toggle)
|
||||
(defun ambrevar/exwm-start-volume-down () (interactive) (ambrevar/exwm-volume 'down))
|
||||
(defun ambrevar/exwm-start-volume-up () (interactive) (ambrevar/exwm-volume 'up))
|
||||
(defun ambrevar/exwm-start-volume-toggle () (interactive) (ambrevar/exwm-volume))
|
||||
(exwm-input-set-key (kbd "s-<kp-subtract>") #'ambrevar/exwm-start-volume-down)
|
||||
(exwm-input-set-key (kbd "s-<kp-add>") #'ambrevar/exwm-start-volume-up)
|
||||
(exwm-input-set-key (kbd "s-<kp-enter>") #'ambrevar/exwm-start-volume-toggle)
|
||||
(exwm-input-set-key (kbd "s--") #'ambrevar/exwm-start-volume-down)
|
||||
(exwm-input-set-key (kbd "s-=") #'ambrevar/exwm-start-volume-up)
|
||||
(exwm-input-set-key (kbd "s-0") #'ambrevar/exwm-start-volume-toggle)
|
||||
|
||||
;;; Check for start-up errors. See ~/.profile.
|
||||
(let ((error-logs (directory-files "~" t "errors.*log$")))
|
||||
|
@ -178,9 +177,9 @@
|
|||
(lambda () (get-buffer "*Warnings*"))))))
|
||||
|
||||
;;; Some programs such as 'emacs' are better off being started in char-mode.
|
||||
(defun exwm-start-in-char-mode ()
|
||||
(defun ambrevar/exwm-start-in-char-mode ()
|
||||
(when (string= exwm-instance-name "emacs")
|
||||
(exwm-input-release-keyboard (exwm--buffer->id (window-buffer)))))
|
||||
(add-hook 'exwm-manage-finish-hook 'exwm-start-in-char-mode)
|
||||
(add-hook 'exwm-manage-finish-hook 'ambrevar/exwm-start-in-char-mode)
|
||||
|
||||
(provide 'init-exwm)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; Flycheck
|
||||
|
||||
(defun flycheck-and-whitespace-mode ()
|
||||
(defun ambrevar/flycheck-and-whitespace-mode ()
|
||||
"Toggle `flycheck-mode' and `whitespace-mode'."
|
||||
(interactive)
|
||||
(if (derived-mode-p 'text-mode)
|
||||
|
@ -8,7 +8,7 @@
|
|||
(flycheck-mode 'toggle)
|
||||
(if flyspell-mode (flyspell-mode 0) (flyspell-prog-mode)))
|
||||
(whitespace-mode 'toggle))
|
||||
(global-set-key (kbd "<f9>") 'flycheck-and-whitespace-mode)
|
||||
(global-set-key (kbd "<f9>") 'ambrevar/flycheck-and-whitespace-mode)
|
||||
|
||||
(define-key flycheck-mode-map (kbd "C-c ! h") 'helm-flycheck)
|
||||
|
||||
|
|
|
@ -5,12 +5,12 @@
|
|||
(use-local-map go-mode-map)
|
||||
|
||||
(ambrevar/local-set-keys
|
||||
"C-c m" 'go-main
|
||||
"C-c m" 'ambrevar/go-main
|
||||
"C-c D" 'godoc
|
||||
"C-c d" 'godoc-at-point
|
||||
"M-." #'godef-jump
|
||||
"<f5>" 'go-metalinter
|
||||
"C-<f5>" 'go-metalinter-command)
|
||||
"<f5>" 'ambrevar/go-metalinter
|
||||
"C-<f5>" 'ambrevar/go-metalinter-command)
|
||||
(when (require 'helm-go-package nil t)
|
||||
(local-set-key (kbd "C-c D") 'helm-go-package))
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
|||
(setq godoc-command "godoc -ex")
|
||||
(setq godoc-and-godef-command "godoc -ex")
|
||||
|
||||
(defvar-local gometalinter-args
|
||||
(defvar-local ambrevar/gometalinter-args
|
||||
(mapconcat
|
||||
'identity
|
||||
'("--cyclo-over=20 --deadline=20s"
|
||||
|
@ -41,21 +41,21 @@
|
|||
"-E gofmt")
|
||||
" ") "Additional arguments to pass to gometalinter.")
|
||||
|
||||
(defun go-metalinter (arg)
|
||||
(defun ambrevar/go-metalinter (arg)
|
||||
"Run gometalinter.
|
||||
With prefix argument, prompt for commandline."
|
||||
(interactive "P")
|
||||
(let ((compile-command (format "gometalinter %s" gometalinter-args)))
|
||||
(let ((compile-command (format "gometalinter %s" ambrevar/gometalinter-args)))
|
||||
(if arg
|
||||
(call-interactively 'compile)
|
||||
(compile compile-command))))
|
||||
|
||||
(defun go-metalinter-command ()
|
||||
(defun ambrevar/go-metalinter-command ()
|
||||
"Prompt for gometalinter commandline and run it."
|
||||
(interactive)
|
||||
(go-metalinter t))
|
||||
(ambrevar/go-metalinter t))
|
||||
|
||||
(defun go-set-compile-command ()
|
||||
(defun ambrevar/go-set-compile-command ()
|
||||
"Set `compile-command' depending on the context.
|
||||
|
||||
- go install: file is in GOPATH and is not a test file.
|
||||
|
@ -65,13 +65,13 @@ With prefix argument, prompt for commandline."
|
|||
Note that the -cover test flag is left out since it shifts line numbers."
|
||||
(interactive)
|
||||
(setq compile-command
|
||||
(if (go-buffer-in-gopath-p)
|
||||
(if (ambrevar/go-buffer-in-gopath-p)
|
||||
(if (string-match "_test.[gG][oO]$" buffer-file-name)
|
||||
"go test -v -run ."
|
||||
"go install")
|
||||
(concat "go run " (shell-quote-argument buffer-file-name)))))
|
||||
|
||||
(defun go-buffer-in-gopath-p ()
|
||||
(defun ambrevar/go-buffer-in-gopath-p ()
|
||||
(if (not buffer-file-name)
|
||||
nil
|
||||
(let ((dir (expand-file-name (file-name-directory buffer-file-name))) (looping t) (gopath (split-string (getenv "GOPATH") ":")))
|
||||
|
@ -97,14 +97,14 @@ Note that the -cover test flag is left out since it shifts line numbers."
|
|||
(when (require 'go-eldoc nil t)
|
||||
(add-hook 'go-mode-hook 'go-eldoc-setup))
|
||||
|
||||
(add-hook 'go-mode-hook 'go-set-compile-command)
|
||||
(add-hook 'go-mode-hook 'ambrevar/go-set-compile-command)
|
||||
|
||||
(defun godoc-setup ()
|
||||
(defun ambrevar/godoc-setup ()
|
||||
(setq tab-width 8))
|
||||
|
||||
(add-hook 'godoc-mode-hook 'godoc-setup)
|
||||
(add-hook 'godoc-mode-hook 'ambrevar/godoc-setup)
|
||||
|
||||
(define-skeleton go-main
|
||||
(define-skeleton ambrevar/go-main
|
||||
"Insert main function with basic includes."
|
||||
nil
|
||||
> "package main" "\n" \n
|
||||
|
|
|
@ -215,7 +215,7 @@ Requires `call-process-to-string' from `functions'."
|
|||
(setq helm-source-names-using-follow '("Occur" "Git-Grep" "AG" "mark-ring" "Org Headings"))
|
||||
|
||||
;;; From https://www.reddit.com/r/emacs/comments/5q922h/removing_dot_files_in_helmfindfiles_menu/.
|
||||
(defun helm-skip-dots (old-func &rest args)
|
||||
(defun ambrevar/helm-skip-dots (old-func &rest args)
|
||||
"Skip . and .. initially in helm-find-files. First call OLD-FUNC with ARGS."
|
||||
(apply old-func args)
|
||||
(let ((sel (helm-get-selection)))
|
||||
|
@ -224,8 +224,8 @@ Requires `call-process-to-string' from `functions'."
|
|||
(let ((sel (helm-get-selection))) ; if we reached .. move back
|
||||
(if (and (stringp sel) (string-match "/\\.\\.$" sel))
|
||||
(helm-previous-line 1))))
|
||||
(advice-add #'helm-preselect :around #'helm-skip-dots)
|
||||
(advice-add #'helm-ff-move-to-first-real-candidate :around #'helm-skip-dots)
|
||||
(advice-add #'helm-preselect :around #'ambrevar/helm-skip-dots)
|
||||
(advice-add #'helm-ff-move-to-first-real-candidate :around #'ambrevar/helm-skip-dots)
|
||||
|
||||
(with-eval-after-load 'desktop
|
||||
(add-to-list 'desktop-globals-to-save 'helm-ff-history))
|
||||
|
@ -240,8 +240,8 @@ Requires `call-process-to-string' from `functions'."
|
|||
(setq helm-locate-recursive-dirs-command "find %s -type d -regex .*%s.*$"))
|
||||
|
||||
;; See https://github.com/emacs-helm/helm/issues/1962.
|
||||
(defun helm-locate-create-or-update-db (db root &optional update)
|
||||
"See `helm-locate-meta'."
|
||||
(defun ambrevar/helm-locate-create-or-update-db (db root &optional update)
|
||||
"See `ambrevar/helm-locate-meta'."
|
||||
(let ((was-missing (not (file-exists-p db))))
|
||||
(when (or update was-missing)
|
||||
(if (= (shell-command
|
||||
|
@ -251,18 +251,18 @@ Requires `call-process-to-string' from `functions'."
|
|||
0)
|
||||
(message "locatedb file `%s' %s" db (if was-missing "created" "updated"))
|
||||
(error "Failed to %s locatedb file `%s'" db (if was-missing "create" "update"))))))
|
||||
(defun helm-locate-meta (&optional update)
|
||||
(defun ambrevar/helm-locate-meta (&optional update)
|
||||
"Like `helm-locate' but also use the databases found in /media and /run/media.
|
||||
With prefix argument, UPDATE the databases."
|
||||
(interactive "P")
|
||||
(let ((user-db (expand-file-name "~/.cache/locate.db")))
|
||||
(helm-locate-create-or-update-db user-db "/" update)
|
||||
(ambrevar/helm-locate-create-or-update-db user-db "/" update)
|
||||
(helm-locate-with-db
|
||||
(mapconcat 'identity
|
||||
(append (list user-db)
|
||||
(mapc
|
||||
(lambda (db)
|
||||
(helm-locate-create-or-update-db db (file-name-directory db) update))
|
||||
(ambrevar/helm-locate-create-or-update-db db (file-name-directory db) update))
|
||||
(apply 'append (mapcar
|
||||
(lambda (root) (file-expand-wildcards (concat root "/*/locate.db")))
|
||||
(list (concat "/run/media/" (user-login-name)) "/media")))))
|
||||
|
@ -270,9 +270,9 @@ With prefix argument, UPDATE the databases."
|
|||
nil (thing-at-point 'filename))))
|
||||
|
||||
;;; Convenience.
|
||||
(defun helm-toggle-visible-mark-backwards (arg)
|
||||
(defun ambrevar/helm-toggle-visible-mark-backwards (arg)
|
||||
(interactive "p")
|
||||
(helm-toggle-visible-mark (- arg)))
|
||||
(define-key helm-map (kbd "S-SPC") 'helm-toggle-visible-mark-backwards)
|
||||
(define-key helm-map (kbd "S-SPC") 'ambrevar/helm-toggle-visible-mark-backwards)
|
||||
|
||||
(provide 'init-helm)
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
|
||||
;;; Since current buffer is a LaTeX one, we can use `local-set-key'.
|
||||
(ambrevar/local-set-keys
|
||||
"C-c m" 'latex-article
|
||||
"C-c l" 'latex-lstinline
|
||||
"C-c o" 'latex-orgtbl)
|
||||
"C-c m" 'ambrevar/latex-article
|
||||
"C-c l" 'ambrevar/latex-lstinline
|
||||
"C-c o" 'ambrevar/latex-orgtbl)
|
||||
|
||||
(dolist (fun '(turn-on-orgtbl ambrevar/turn-on-skeleton-markers))
|
||||
;; Since this file is loaded from `latex-mode-hook', these functions will not
|
||||
|
@ -54,7 +54,7 @@
|
|||
;;; Skeletons
|
||||
|
||||
;;; TODO: implement orgtbl directly with latex tables and remove this skel.
|
||||
(define-skeleton latex-orgtbl
|
||||
(define-skeleton ambrevar/latex-orgtbl
|
||||
"Insert orgtbl skel."
|
||||
"Table name: "
|
||||
> "\\begin{center}" \n
|
||||
|
@ -67,18 +67,18 @@
|
|||
"%$" \n
|
||||
"\\end{comment}" > \n @)
|
||||
|
||||
(define-skeleton latex-lstinline
|
||||
(define-skeleton ambrevar/latex-lstinline
|
||||
"Insert inline listing." nil
|
||||
"\\lstinline @" @ _ "@" @)
|
||||
|
||||
(define-skeleton latex-graphics
|
||||
(define-skeleton ambrevar/latex-graphics
|
||||
"Insert centered picture."
|
||||
nil
|
||||
> "\\begin{center}" \n
|
||||
"\\includegraphics[width=" @ (skeleton-read "Width: " "\\linewidth") "]{" @ _ "}" \n
|
||||
"\\end{center}" > \n @)
|
||||
|
||||
(define-skeleton latex-article
|
||||
(define-skeleton ambrevar/latex-article
|
||||
"Insert article template."
|
||||
nil
|
||||
> "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
@ -121,7 +121,7 @@
|
|||
\\let\\thedate\\@date
|
||||
\\makeatother" \n
|
||||
|
||||
'(setq latex-setup-list '(latex-preamble-aliases latex-preamble-tables latex-preamble-listing))
|
||||
'(setq latex-setup-list '(ambrevar/latex-preamble-aliases ambrevar/latex-preamble-tables ambrevar/latex-preamble-listing))
|
||||
'(while (and latex-setup-list
|
||||
(= (read-key (concat "Insert " (symbol-name (car latex-setup-list)) "? (y)")) ?y))
|
||||
(newline-and-indent)
|
||||
|
@ -185,7 +185,7 @@
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
" \n)
|
||||
|
||||
(define-skeleton latex-preamble-aliases
|
||||
(define-skeleton ambrevar/latex-preamble-aliases
|
||||
"Insert setup template."
|
||||
nil
|
||||
> "%%=============================================================================
|
||||
|
@ -201,7 +201,7 @@
|
|||
\\def\\ie{\\textsl{i.e.}\\xspace}
|
||||
\\def\\eg{\\textsl{e.g.}\\xspace}" \n)
|
||||
|
||||
(define-skeleton latex-preamble-tables
|
||||
(define-skeleton ambrevar/latex-preamble-tables
|
||||
"Insert setup template."
|
||||
nil
|
||||
> "%%==============================================================================
|
||||
|
@ -210,7 +210,7 @@
|
|||
\\usepackage{longtable}
|
||||
\\usepackage{tabu}" \n)
|
||||
|
||||
(define-skeleton latex-preamble-graphics
|
||||
(define-skeleton ambrevar/latex-preamble-graphics
|
||||
"Insert setup template."
|
||||
nil
|
||||
> "%%==============================================================================
|
||||
|
@ -224,7 +224,7 @@
|
|||
"\\end{tikzpicture}" > \n
|
||||
"}" > \n)
|
||||
|
||||
(define-skeleton latex-preamble-listing
|
||||
(define-skeleton ambrevar/latex-preamble-listing
|
||||
"Insert listing setup template."
|
||||
;; WARNING: we need to put a '-' at the very end so that the cursor will end
|
||||
;; there. Otherwise it will be placed at the beginning. This is due to some
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
(defvaralias 'lua-indent-level 'tab-width)
|
||||
|
||||
(defun lua-set-compiler ()
|
||||
(defun ambrevar/lua-set-compiler ()
|
||||
(setq compile-command (concat lua-default-application " " (shell-quote-argument buffer-file-name))))
|
||||
|
||||
(add-hook 'lua-mode-hook 'lua-set-compiler)
|
||||
(add-hook 'lua-mode-hook 'ambrevar/lua-set-compiler)
|
||||
|
||||
(provide 'init-lua)
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
;;; Makefile
|
||||
|
||||
(ambrevar/define-keys makefile-mode-map
|
||||
"C-c c" 'makefile-config
|
||||
"C-c d" 'makefile-doc
|
||||
"C-c m" 'makefile-main
|
||||
"C-c s" 'makefile-c)
|
||||
"C-c c" 'ambrevar/makefile-config
|
||||
"C-c d" 'ambrevar/makefile-doc
|
||||
"C-c m" 'ambrevar/makefile-main
|
||||
"C-c s" 'ambrevar/makefile-c)
|
||||
|
||||
(define-skeleton makefile-main
|
||||
(define-skeleton ambrevar/makefile-main
|
||||
"Insert root Makefile." nil
|
||||
"ROOT = .
|
||||
include ${ROOT}/config.mk
|
||||
|
@ -86,7 +86,7 @@ uninstall:
|
|||
-rmdir -p ${DESTDIR}${licensedir}/${cmdname}
|
||||
" > \n)
|
||||
|
||||
(define-skeleton makefile-doc
|
||||
(define-skeleton ambrevar/makefile-doc
|
||||
"Insert documentation Makefile." nil
|
||||
".SUFFIXES: .in
|
||||
|
||||
|
@ -105,7 +105,7 @@ clean:
|
|||
rm -f ${manpages}
|
||||
" > \n)
|
||||
|
||||
(define-skeleton makefile-c
|
||||
(define-skeleton ambrevar/makefile-c
|
||||
"Insert Makefile for building c." nil
|
||||
"ROOT ?= ..
|
||||
include ${ROOT}/config.mk
|
||||
|
@ -137,7 +137,7 @@ deps = ${sources:.c=.d}
|
|||
-include ${deps}
|
||||
" > \n)
|
||||
|
||||
(define-skeleton makefile-config
|
||||
(define-skeleton ambrevar/makefile-config
|
||||
"Insert Makefile config." nil
|
||||
"## This file is included by all (sub-)makefiles.
|
||||
|
||||
|
@ -145,9 +145,9 @@ deps = ${sources:.c=.d}
|
|||
appname = Name
|
||||
authors = Pierre Neidhardt
|
||||
cmdname = name
|
||||
url = http://ambrevar.bitbucket.org/
|
||||
url =
|
||||
version = 1.0
|
||||
year = 2014
|
||||
year = " (format-time-string "%Y") "
|
||||
|
||||
## Folders.
|
||||
srcdir = src
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
(add-hook 'mediawiki-mode-hook 'visual-line-mode)
|
||||
(add-hook 'mediawiki-mode-hook 'turn-off-auto-fill)
|
||||
|
||||
(define-skeleton mediawiki-tt
|
||||
(define-skeleton ambrevar/mediawiki-tt
|
||||
"Insert truetype text."
|
||||
nil "<tt>" @ _ "</tt>" @)
|
||||
|
||||
|
|
|
@ -17,9 +17,9 @@
|
|||
(when (require 'mu4e-maildirs-extension nil t)
|
||||
(mu4e-maildirs-extension))
|
||||
|
||||
(defun mu4e-headers ()
|
||||
(defun ambrevar/mu4e-headers ()
|
||||
"Like `mu4e' but show the header view.
|
||||
Default to unread messages if no"
|
||||
Default to unread messages if the header buffer does not already exist."
|
||||
(interactive)
|
||||
(mu4e~start)
|
||||
(if (get-buffer "*mu4e-headers*" )
|
||||
|
@ -91,52 +91,52 @@ Default to unread messages if no"
|
|||
;;; Since we sort in ascending direction, we default to the end of buffer.
|
||||
;; (add-hook 'mu4e-headers-found-hook 'end-of-buffer)
|
||||
|
||||
(defvar mu4e-compose-fortune-p t "Whether or not to include a fortune in the signature.")
|
||||
(defun mu4e-add-fortune-signature ()
|
||||
(defvar ambrevar/mu4e-compose-fortune-p t "Whether or not to include a fortune in the signature.")
|
||||
(defun ambrevar/mu4e-add-fortune-signature ()
|
||||
(require 'functions) ; For `call-process-to-string'.
|
||||
(setq mu4e-compose-signature
|
||||
(if mu4e-compose-fortune-p
|
||||
(if ambrevar/mu4e-compose-fortune-p
|
||||
(format "%s\n\n%s"
|
||||
user-full-name
|
||||
(ambrevar/call-process-to-string "fortune" "-s"))
|
||||
user-full-name)))
|
||||
(add-hook 'mu4e-compose-pre-hook 'mu4e-add-fortune-signature)
|
||||
(add-hook 'mu4e-compose-pre-hook 'ambrevar/mu4e-add-fortune-signature)
|
||||
|
||||
;;; Make some e-mails stand out a bit.
|
||||
(set-face-foreground 'mu4e-unread-face "yellow")
|
||||
(set-face-attribute 'mu4e-flagged-face nil :inherit 'font-lock-warning-face)
|
||||
|
||||
;;; Confirmation on every mark execution is too slow to my taste.
|
||||
(defun mu4e-mark-execute-all-no-confirm ()
|
||||
(defun ambrevar/mu4e-mark-execute-all-no-confirm ()
|
||||
(interactive)
|
||||
(mu4e-mark-execute-all t))
|
||||
(define-key mu4e-headers-mode-map "x" 'mu4e-mark-execute-all-no-confirm)
|
||||
(define-key mu4e-headers-mode-map "x" 'ambrevar/mu4e-mark-execute-all-no-confirm)
|
||||
|
||||
(when (require 'helm-mu nil t)
|
||||
(dolist (map (list mu4e-headers-mode-map mu4e-main-mode-map mu4e-view-mode-map))
|
||||
(define-key map "s" 'helm-mu)))
|
||||
|
||||
(defvar mu4e-compose-signed-p nil)
|
||||
(defvar mu4e-compose-signed-and-crypted-p nil)
|
||||
(defun mu4e-compose-maybe-signed-and-crypted ()
|
||||
(defvar ambrevar/mu4e-compose-signed-p nil)
|
||||
(defvar ambrevar/mu4e-compose-signed-and-crypted-p nil)
|
||||
(defun ambrevar/mu4e-compose-maybe-signed-and-crypted ()
|
||||
"Maybe sign or encrypt+sign message.
|
||||
Message is signed or encrypted+signed when replying to a signed or encrypted
|
||||
message, respectively.
|
||||
|
||||
Alternatively, message is signed or encrypted+signed if
|
||||
`mu4e-compose-signed-p' or `mu4e-compose-signed-and-crypted-p' is
|
||||
`ambrevar/mu4e-compose-signed-p' or `ambrevar/mu4e-compose-signed-and-crypted-p' is
|
||||
non-nil, respectively.
|
||||
|
||||
This function is suitable for `mu4e-compose-mode-hook'."
|
||||
(let ((msg mu4e-compose-parent-message))
|
||||
(cond
|
||||
((or mu4e-compose-signed-and-crypted-p
|
||||
((or ambrevar/mu4e-compose-signed-and-crypted-p
|
||||
(and msg (member 'encrypted (mu4e-message-field msg :flags))))
|
||||
(mml-secure-message-sign-encrypt))
|
||||
((or mu4e-compose-signed-p
|
||||
((or ambrevar/mu4e-compose-signed-p
|
||||
(and msg (member 'signed (mu4e-message-field msg :flags))))
|
||||
(mml-secure-message-sign-pgpmime)))))
|
||||
(add-hook 'mu4e-compose-mode-hook 'mu4e-compose-maybe-signed-and-crypted)
|
||||
(add-hook 'mu4e-compose-mode-hook 'ambrevar/mu4e-compose-maybe-signed-and-crypted)
|
||||
|
||||
;;; Org capture
|
||||
(when (require 'org-mu4e nil t)
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
;;; Nroff
|
||||
|
||||
(ambrevar/define-keys nroff-mode-map
|
||||
"C-c C-b" 'nroff-bold
|
||||
"C-c C-i" 'nroff-italic)
|
||||
"C-c C-b" 'ambrevar/nroff-bold
|
||||
"C-c C-i" 'ambrevar/nroff-italic)
|
||||
|
||||
;;; Skeletons
|
||||
(define-skeleton nroff-bold "Bold text." nil "\\fB" @ _ "\\fR" @)
|
||||
(define-skeleton nroff-italic "Italic text." nil "\\fI" @ _ "\\fR" @)
|
||||
(define-skeleton ambrevar/nroff-bold "Bold text." nil "\\fB" @ _ "\\fR" @)
|
||||
(define-skeleton ambrevar/nroff-italic "Italic text." nil "\\fI" @ _ "\\fR" @)
|
||||
|
||||
(provide 'init-nroff)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; Python
|
||||
|
||||
(defun python-set-compiler ()
|
||||
(defun ambrevar/python-set-compiler ()
|
||||
"Returns the value of the shebang if any, `python-shell-interpreter' otherwise."
|
||||
(when buffer-file-name
|
||||
(let* ((firstline
|
||||
|
@ -12,7 +12,7 @@
|
|||
(setq compile-command
|
||||
(concat interpreter " " (shell-quote-argument buffer-file-name))))))
|
||||
|
||||
(add-hook 'python-mode-hook 'python-set-compiler)
|
||||
(add-hook 'python-mode-hook 'ambrevar/python-set-compiler)
|
||||
|
||||
;;; Doc lookup. Requires the python.info file to be installed. See
|
||||
;;; https://bitbucket.org/jonwaltman/pydoc-info/.
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
(set-face-foreground 'sh-heredoc "#00bfff")
|
||||
(set-face-bold 'sh-heredoc nil)
|
||||
|
||||
(defun sh-set-compiler ()
|
||||
(defun ambrevar/sh-set-compiler ()
|
||||
"Set shell interpreter.
|
||||
Set `sh-shell', `sh-shell-file' and `compile-command' according to the following rules:
|
||||
- Look at shabang.
|
||||
|
@ -53,21 +53,21 @@ The advantages of this function over the vanilla code are:
|
|||
(when (stringp buffer-file-name)
|
||||
(setq compile-command (concat sh-shell-file " " (shell-quote-argument buffer-file-name)))))
|
||||
|
||||
(defun sh-set-indent-rules ()
|
||||
(defun ambrevar/sh-set-indent-rules ()
|
||||
(setq sh-indent-for-case-label 0
|
||||
sh-indent-for-case-alt '+))
|
||||
|
||||
(defun sh-set-prompt ()
|
||||
(defun ambrevar/sh-set-prompt ()
|
||||
(set (make-local-variable 'defun-prompt-regexp)
|
||||
(concat "^\\(function[ \t]\\|[[:alnum:]_]+[ \t]+()[ \t]+\\)")))
|
||||
|
||||
;;; Hooks
|
||||
(dolist (fun '(sh-set-indent-rules sh-set-prompt sh-set-compiler))
|
||||
(dolist (fun '(ambrevar/sh-set-indent-rules ambrevar/sh-set-prompt ambrevar/sh-set-compiler))
|
||||
(add-hook 'sh-mode-hook fun))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(define-skeleton sh-commands-or-die
|
||||
(define-skeleton ambrevar/sh-commands-or-die
|
||||
"Insert a loop that exits if any of the commands is not found in path."
|
||||
"Command names: "
|
||||
> "for i " @ str "; do" \n
|
||||
|
@ -77,14 +77,14 @@ The advantages of this function over the vanilla code are:
|
|||
"fi" > \n
|
||||
"done" > \n \n)
|
||||
|
||||
(define-skeleton sh-ifcommand
|
||||
(define-skeleton ambrevar/sh-ifcommand
|
||||
"Insert a test to check if command is found in path."
|
||||
"Command name: "
|
||||
> "if command -v " @ str " >/dev/null 2>&1; then" \n
|
||||
> @ _ \n
|
||||
"fi" > \n)
|
||||
|
||||
(define-skeleton sh-while-getopts
|
||||
(define-skeleton ambrevar/sh-while-getopts
|
||||
"Insert a getops prototype."
|
||||
"optstring: "
|
||||
> "usage() {" \n
|
||||
|
@ -121,7 +121,7 @@ EOF
|
|||
"exit 1" \n
|
||||
"fi" > \n)
|
||||
|
||||
(define-skeleton sh-while-read
|
||||
(define-skeleton ambrevar/sh-while-read
|
||||
"Insert a while read loop."
|
||||
nil
|
||||
> "while IFS= read -r i; do" \n
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
prettify-symbols-mode))
|
||||
(add-hook 'tex-mode-hook fun))
|
||||
|
||||
(defun tex-toggle-escape-char ()
|
||||
(defun ambrevar/tex-toggle-escape-char ()
|
||||
"Make backslash part of the word syntax or not.
|
||||
This does not interfere with `subword-mode'."
|
||||
(interactive)
|
||||
|
|
|
@ -224,19 +224,19 @@
|
|||
;;; Some commands ignore that compilation-mode is a "dumb" terminal and still display colors.
|
||||
;;; Thus we render those colors.
|
||||
(require 'ansi-color)
|
||||
(defun compilation-colorize-buffer ()
|
||||
(defun ambrevar/compilation-colorize-buffer ()
|
||||
(when (eq major-mode 'compilation-mode)
|
||||
(ansi-color-apply-on-region compilation-filter-start (point-max))))
|
||||
(add-hook 'compilation-filter-hook 'compilation-colorize-buffer)
|
||||
(add-hook 'compilation-filter-hook 'ambrevar/compilation-colorize-buffer)
|
||||
(global-set-key (kbd "<f7>") 'previous-error)
|
||||
(global-set-key (kbd "<f8>") 'next-error)
|
||||
(defun compile-last-command ()
|
||||
(defun ambrevar/compile-last-command ()
|
||||
(interactive)
|
||||
(compile compile-command))
|
||||
(ambrevar/define-keys prog-mode-map
|
||||
"C-<f6>" 'compile
|
||||
;; Do not use `recompile' since we want to change the compilation folder for the current buffer.
|
||||
"<f6>" 'compile-last-command)
|
||||
"<f6>" 'ambrevar/compile-last-command)
|
||||
|
||||
;;; REVIEW: Bug 26658 reports that cc-modes mistakenly does not make use of prog-mode-map.
|
||||
;;; The following line is a suggested work-around.
|
||||
|
@ -272,11 +272,11 @@
|
|||
desktop-load-locked-desktop 'ask
|
||||
desktop-restore-frames nil
|
||||
desktop-save t)
|
||||
(defun desktop-init (_frame)
|
||||
(defun ambrevar/desktop-init (_frame)
|
||||
(desktop-save-mode)
|
||||
(desktop-read)
|
||||
(remove-hook 'after-make-frame-functions 'desktop-init))
|
||||
(add-hook 'after-make-frame-functions 'desktop-init) ; This does not fix the window register restoration.
|
||||
(remove-hook 'after-make-frame-functions 'ambrevar/desktop-init))
|
||||
(add-hook 'after-make-frame-functions 'ambrevar/desktop-init) ; This does not fix the window register restoration.
|
||||
(add-to-list 'desktop-modes-not-to-save 'pdf-view-mode)
|
||||
(add-to-list 'desktop-modes-not-to-save 'image-mode)
|
||||
(unless (file-directory-p desktop-dirname)
|
||||
|
@ -371,4 +371,7 @@
|
|||
(setq epa-pinentry-mode 'loopback) ; This will fail if gpg>=2.1 is not available.
|
||||
(pinentry-start)
|
||||
|
||||
;;; Semanticdb folders must be set before starting semantic.
|
||||
(setq semanticdb-default-save-directory (concat ambrevar/emacs-cache-folder "semanticdb"))
|
||||
|
||||
(provide 'main)
|
||||
|
|
|
@ -122,7 +122,7 @@
|
|||
;;; Key notes highlighting. We need to apply it to the mode hook since
|
||||
;;; font-lock-add-keywords has no inheritance support.
|
||||
(set-face-foreground 'font-lock-warning-face "DarkOrange")
|
||||
(defun fontify-comment-tag ()
|
||||
(defun ambrevar/fontify-comment-tag ()
|
||||
(font-lock-add-keywords
|
||||
nil
|
||||
;; See https://en.wikipedia.org/wiki/Comment_(computer_programming)#Tags.
|
||||
|
@ -130,7 +130,7 @@
|
|||
(lambda (keyword) `(,(concat "\\<\\(" keyword "\\):") 1 font-lock-warning-face prepend))
|
||||
'("FIXME\\(([^)]+)\\)?" "HACK" "OPTIMIZE\\(([^)]+)\\)?" "REVIEW\\(([^)]+)\\)?" "TODO\\(([^)]+)\\)?" "UNDONE" "UX" "WARNING" "XXX"))))
|
||||
(dolist (hook '(prog-mode-hook text-mode-hook))
|
||||
(add-hook hook 'fontify-comment-tag))
|
||||
(add-hook hook 'ambrevar/fontify-comment-tag))
|
||||
|
||||
;;; Man pages
|
||||
(with-eval-after-load 'man
|
||||
|
|
Loading…
Reference in New Issue