Merge branch 'master' of https://github.com/ambrevar/dotfiles
commit
173c3cd502
|
@ -79,5 +79,5 @@ if [ ! -e ~/.authinfo.gpg ]; then
|
|||
## TODO: Does not work with --batch for some reason, so we have to spawn Emacs.
|
||||
emacs --eval '(progn (when (require '"'"'mu4e nil t) (let ((auth-sources (list "~/.authinfo.gpg")) (auth-source-save-behavior t)) (dolist (context mu4e-contexts) (mu4e-context-switch nil (mu4e-context-name context)) (funcall (plist-get (car (auth-source-search :max 1 :host smtpmail-smtp-server :port smtpmail-smtp-service :user smtpmail-smtp-user :require '"'"'(:user :secret) :create t)) :save-function))))) (kill-emacs))'
|
||||
fi
|
||||
mbsync -a
|
||||
mbsync -aV
|
||||
mu index --maildir=~/.cache/mail
|
||||
|
|
|
@ -21,3 +21,11 @@ fi
|
|||
if command -v tlmgr >/dev/null 2>&1; then
|
||||
tlctl l >"$PKG_ROOT/texlive"
|
||||
fi
|
||||
|
||||
## Gentoo
|
||||
if command -v emerge >/dev/null 2>&1; then
|
||||
mkdir -p "$PKG_ROOT/gentoo"
|
||||
cp /var/lib/portage/world "$PKG_ROOT/gentoo/"
|
||||
sed -n '/^# Auto-generated/q;p' /etc/portage/package.use | LC_ALL=C sort >"$PKG_ROOT/gentoo/package.use"
|
||||
sed -n '/^# /q;p' /etc/portage/package.accept_keywords | LC_ALL=C sort >"$PKG_ROOT/gentoo/package.accept_keywords"
|
||||
fi
|
||||
|
|
|
@ -310,7 +310,7 @@ statusbar-padding = 1,1,0,0
|
|||
# * `{backend}`: Either 'webkit' or 'webengine'
|
||||
# * `{private}` : Indicates when private mode is enabled.
|
||||
# Default: {perc}{title}{title_sep}qutebrowser
|
||||
window-title-format = {perc}{title}{title_sep}qutebrowser
|
||||
window-title-format = {title}{title_sep}qutebrowser
|
||||
|
||||
# modal-js-dialog (Bool):
|
||||
# Use standard JavaScript modal dialog for alert() and confirm()
|
||||
|
|
|
@ -45,9 +45,9 @@
|
|||
(setq package-user-dir (concat emacs-cache-folder "elpa"))
|
||||
(package-initialize))
|
||||
|
||||
(require 'functions nil t)
|
||||
(require 'main nil t)
|
||||
(require 'visual nil t)
|
||||
(require 'functions)
|
||||
(require 'main)
|
||||
(require 'visual)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
|
@ -87,11 +87,12 @@
|
|||
(setq company-idle-delay nil))
|
||||
|
||||
;;; Debbugs
|
||||
;; TODO: Make debbugs more Evil.
|
||||
(nconc package-selected-packages '(debbugs))
|
||||
(with-eval-after-load 'debbugs
|
||||
(setq debbugs-gnu-persistency-file (expand-file-name "debbugs" emacs-cache-folder)))
|
||||
|
||||
;;; Diff
|
||||
;;; TODO: Show permissions in ztree.
|
||||
;;; REVIEW: Show permissions in ztree.
|
||||
;;; See https://github.com/fourier/ztree/issues/50.
|
||||
(nconc package-selected-packages '(ztree))
|
||||
|
||||
|
@ -104,7 +105,7 @@
|
|||
(with-eval-after-load 'dired (require 'init-dired))
|
||||
|
||||
;;; Emms
|
||||
(nconc package-selected-packages '(emms emms helm-emms emms-player-mpv))
|
||||
(nconc package-selected-packages '(emms helm-emms emms-player-mpv))
|
||||
(when (fboundp 'emms-all)
|
||||
;; Emms has no autoload to switch to the browser, let's add one.
|
||||
(autoload 'emms-smart-browse "emms-browser" nil t))
|
||||
|
|
|
@ -135,6 +135,9 @@ will always use the same cover per folder."
|
|||
(setq emms-playing-time 0) ; Don't disturb the time display.
|
||||
(emms-start)
|
||||
(sleep-for 0 200) ; This is required for the player might not be ready yet.
|
||||
;; TODO: The sleep-for might make EMMS play during the time on resume. We
|
||||
;; could work around that by muting the volume. Is there a portable way
|
||||
;; of doing that? It does not seem that EMMS can do this natively.
|
||||
(emms-player-seek-to time)
|
||||
(emms-pause))))
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
;;; TODO: Redirecting big output to file (e.g. /dev/null) is extremely slow.
|
||||
|
||||
;;; TODO: Cannot "C-c C-c" during a `sudo pacman -Syu`.
|
||||
;;; REVIEW: Cannot "C-c C-c" during a `sudo pacman -Syu`. A bug was filed about that already.
|
||||
|
||||
;;; TODO: The buffer stutters when writing "in-place", e.g. pacman, git.
|
||||
;;; It seems that it does not do it as much in `emacs -Q`.
|
||||
|
@ -18,10 +18,23 @@
|
|||
;;; http://www.gnu.org/software/emacs/manual/html_node/eshell/Built_002dins.html
|
||||
;;; https://emacs.stackexchange.com/questions/5608/how-to-let-eshell-remember-sudo-password-for-two-minutes
|
||||
;;; See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=27411
|
||||
;;; and #28323.
|
||||
|
||||
;;; REVIEW: Eshell/TRAMP's sudo does not work with aliases.
|
||||
;;; See #28320.
|
||||
|
||||
;;; REVIEW: Eshell/Shell completion fails when PATH has a non-readable element.
|
||||
;; See https://github.com/emacs-helm/helm/issues/1785
|
||||
;; and https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27300.
|
||||
;;; See https://github.com/emacs-helm/helm/issues/1785
|
||||
;;; and https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27300.
|
||||
|
||||
;;; REVIEW: 40M+ output: Stack overflow in regexp matcher
|
||||
;;; See bug#28329.
|
||||
|
||||
;;; REVIEW: Eshell mixes stderr and stdout it seems.
|
||||
;;; Example:
|
||||
;;; $ mu find --nocolor --sortfield=d --maxnum=500 flag:unread AND NOT flag:trashed >/dev/null
|
||||
;;; mu: no matches for search expression (4)
|
||||
;;; See #21605 "24.3; Eshell not using stderr".
|
||||
|
||||
(setq eshell-directory-name (concat emacs-cache-folder "eshell"))
|
||||
|
||||
|
@ -73,7 +86,9 @@
|
|||
("sudo" "vi"))))
|
||||
|
||||
;;; Support for Emacs' pinentry
|
||||
;; (setq epa-pinentry-mode 'loopback) ; This will fail if gpg>=2.1 is not available.
|
||||
;;; TODO: gpg-agent seems to be misconfigured for mu4e at least:
|
||||
;;; See https://github.com/djcb/mu/issues/829.
|
||||
(setq epa-pinentry-mode 'loopback) ; This will fail if gpg>=2.1 is not available.
|
||||
(pinentry-start)
|
||||
|
||||
;;; Alias management possibilities:
|
||||
|
@ -103,6 +118,8 @@
|
|||
("mkdir" "*mkdir -p $*")
|
||||
("mkcd" "*mkdir -p $* && cd $1")))
|
||||
(add-to-list 'eshell-command-aliases-list alias))
|
||||
(when (executable-find "emerge")
|
||||
(add-to-list 'eshell-command-aliases-list '("emerge" "sudo *emerge --color y $*")))
|
||||
(eshell-write-aliases-list))
|
||||
|
||||
;;; Hooks
|
||||
|
@ -152,18 +169,13 @@ See `eshell-prompt-regexp'."
|
|||
(eshell-next-prompt (- n))))
|
||||
|
||||
(when (require 'bash-completion nil t)
|
||||
;; REVIEW: `bash-completion-dynamic-complete' is almost what we want for eshell, it only needs a tiny modification.
|
||||
;; Ask upstream to change the function arguments.
|
||||
;; See https://github.com/szermatt/emacs-bash-completion/issues/13.
|
||||
;;
|
||||
;; Sometimes `eshell-default-completion-function' does better, e.g. "gcc
|
||||
;; <TAB>" shows .c files.
|
||||
(setq eshell-default-completion-function
|
||||
(lambda ()
|
||||
(while (pcomplete-here
|
||||
(cl-letf (((symbol-function 'comint-line-beginning-position)
|
||||
#'(lambda () (save-excursion (eshell-bol) (point)))))
|
||||
(nth 2 (bash-completion-dynamic-complete))))))))
|
||||
(setq eshell-default-completion-function 'eshell-bash-completion))
|
||||
|
||||
(defun eshell-bash-completion ()
|
||||
(while (pcomplete-here
|
||||
(nth 2 (bash-completion-dynamic-complete-nocomint (save-excursion (eshell-bol) (point)) (point))))))
|
||||
|
||||
;;; If the user fish config change directory on startup, file completion will
|
||||
;;; not be right. One work-around is to add a "cd default-directory" before the
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
;;; Evil+Debbugs
|
||||
|
||||
(evil-set-initial-state 'debbugs-gnu-mode 'motion)
|
||||
|
||||
(evil-define-key 'motion debbugs-gnu-mode-map
|
||||
(kbd "TAB") 'forward-button
|
||||
(kbd "<backtab>") 'backward-button
|
||||
(kbd "RET") 'debbugs-gnu-select-report
|
||||
(kbd "SPC") 'scroll-up-command
|
||||
"\M-sf" 'debbugs-gnu-narrow-to-status
|
||||
"gB" 'debbugs-gnu-show-blocking-reports
|
||||
"c" 'debbugs-gnu-send-control-message
|
||||
"r" 'debbugs-gnu-show-all-blocking-reports
|
||||
"S" 'tabulated-list-sort
|
||||
"gb" 'debbugs-gnu-show-blocked-by-reports
|
||||
"d" 'debbugs-gnu-display-status
|
||||
"gr" 'debbugs-gnu-rescan
|
||||
"q" 'quit-window
|
||||
"s" 'debbugs-gnu-toggle-sort
|
||||
"i" 'debbugs-gnu-toggle-tag
|
||||
"o" 'debbugs-gnu-widen
|
||||
"x" 'debbugs-gnu-toggle-suppress)
|
||||
|
||||
(provide 'init-evil-debbugs)
|
|
@ -1,7 +1,10 @@
|
|||
;;; Evil+EMMS
|
||||
|
||||
(dolist (mode '(emms-browser-mode emms-playlist-mode))
|
||||
(evil-set-initial-state mode 'motion))
|
||||
;; emms-browser does not run any mode hook. As such the default state is 'normal.
|
||||
;; TODO: Report upstream.
|
||||
(defun evil/emms-browser ()
|
||||
(evil-motion-state))
|
||||
(advice-add 'emms-browser :after 'evil/emms-browser)
|
||||
|
||||
(defun evil/emms-playlist-mode-insert-newline-above ()
|
||||
"Insert a newline above point."
|
||||
|
@ -40,39 +43,44 @@ The return value is the yanked text."
|
|||
"-" 'emms-volume-lower
|
||||
"u" 'emms-playlist-mode-undo))
|
||||
|
||||
(evil-define-key 'motion emms-browser-mode-map
|
||||
(kbd "C-<return>") 'emms-browser-add-tracks-and-play
|
||||
(kbd "<return>") 'emms-browser-add-tracks
|
||||
(kbd "<tab>") 'emms-browser-toggle-subitems
|
||||
"/" 'emms-isearch-buffer ; This shows hidden items during search.
|
||||
"g1" 'emms-browser-collapse-all
|
||||
"g2" 'emms-browser-expand-to-level-2
|
||||
"g3" 'emms-browser-expand-to-level-3
|
||||
"g4" 'emms-browser-expand-to-level-4
|
||||
"<" 'emms-browser-previous-filter
|
||||
">" 'emms-browser-next-filter
|
||||
"C" 'emms-browser-clear-playlist
|
||||
"D" 'emms-browser-delete-files
|
||||
"g0" 'emms-browser-expand-all
|
||||
"d" 'emms-browser-view-in-dired
|
||||
"\C-j" 'emms-browser-next-non-track
|
||||
"\C-k" 'emms-browser-prev-non-track
|
||||
"\M-j" 'emms-browser-next-non-track
|
||||
"\M-k" 'emms-browser-prev-non-track
|
||||
"[" 'emms-browser-prev-non-track
|
||||
"]" 'emms-browser-next-non-track
|
||||
"{" 'emms-browser-prev-non-track
|
||||
"}" 'emms-browser-next-non-track
|
||||
"ga" 'emms-browse-by-artist
|
||||
"gA" 'emms-browse-by-album
|
||||
"gb" 'emms-browse-by-genre
|
||||
"gy" 'emms-browse-by-year
|
||||
"gc" 'emms-browse-by-composer
|
||||
"gp" 'emms-browse-by-performer
|
||||
"x" 'emms-pause
|
||||
"s" (lookup-key emms-browser-mode-map (kbd "s"))
|
||||
"z" (lookup-key emms-browser-mode-map (kbd "W")))
|
||||
(with-eval-after-load 'emms-browser
|
||||
;; TODO: Why do we need to define emms-browser-mode-map after load and not emms-playlist-mode-map?
|
||||
(evil-define-key 'motion emms-browser-mode-map
|
||||
(kbd "C-<return>") 'emms-browser-add-tracks-and-play
|
||||
(kbd "<return>") 'emms-browser-add-tracks
|
||||
(kbd "<tab>") 'emms-browser-toggle-subitems
|
||||
(kbd "SPC") 'emms-browser-toggle-subitems
|
||||
"/" 'emms-isearch-buffer ; This shows hidden items during search.
|
||||
"g1" 'emms-browser-collapse-all
|
||||
"g2" 'emms-browser-expand-to-level-2
|
||||
"g3" 'emms-browser-expand-to-level-3
|
||||
"g4" 'emms-browser-expand-to-level-4
|
||||
"<" 'emms-browser-previous-filter
|
||||
">" 'emms-browser-next-filter
|
||||
"C" 'emms-browser-clear-playlist
|
||||
"D" 'emms-browser-delete-files
|
||||
"g0" 'emms-browser-expand-all
|
||||
"d" 'emms-browser-view-in-dired
|
||||
"\C-j" 'emms-browser-next-non-track
|
||||
"\C-k" 'emms-browser-prev-non-track
|
||||
"\M-j" 'emms-browser-next-non-track ; Custom
|
||||
"\M-k" 'emms-browser-prev-non-track ; Custom
|
||||
"[" 'emms-browser-prev-non-track
|
||||
"]" 'emms-browser-next-non-track
|
||||
"{" 'emms-browser-prev-non-track
|
||||
"}" 'emms-browser-next-non-track
|
||||
"ga" 'emms-browse-by-artist
|
||||
"gA" 'emms-browse-by-album
|
||||
"gb" 'emms-browse-by-genre
|
||||
"gy" 'emms-browse-by-year
|
||||
"gc" 'emms-browse-by-composer
|
||||
"gp" 'emms-browse-by-performer
|
||||
"x" 'emms-pause
|
||||
"s" (lookup-key emms-browser-mode-map (kbd "s"))
|
||||
"z" (lookup-key emms-browser-mode-map (kbd "W")))
|
||||
)
|
||||
|
||||
(evil-set-initial-state 'emms-playlist-mode 'motion)
|
||||
(evil-define-key 'motion emms-playlist-mode-map
|
||||
"o" 'evil/emms-playlist-mode-insert-newline-below
|
||||
"O" 'evil/emms-playlist-mode-insert-newline-above
|
||||
|
@ -95,8 +103,8 @@ The return value is the yanked text."
|
|||
"zs" 'emms-show
|
||||
"\C-j" 'emms-next
|
||||
"\C-k" 'emms-previous
|
||||
"\M-j" 'emms-next
|
||||
"\M-k" 'emms-previous
|
||||
"\M-j" 'emms-next ; Custom
|
||||
"\M-k" 'emms-previous ; Custom
|
||||
"r" 'emms-random
|
||||
"s" 'emms-stop
|
||||
"S" (lookup-key emms-playlist-mode-map (kbd "S"))
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
;;; Evil+Gnus
|
||||
|
||||
(evil-set-initial-state 'gnus-summary-mode 'motion)
|
||||
(evil-define-key 'motion gnus-summary-mode-map
|
||||
(kbd "TAB") 'gnus-summary-widget-forward
|
||||
(kbd "<backtab>") 'gnus-summary-widget-backward
|
||||
(kbd "DEL") 'gnus-summary-prev-page
|
||||
(kbd "S-SPC") 'gnus-summary-prev-page
|
||||
(kbd "SPC") 'gnus-summary-next-page
|
||||
(kbd "RET") 'gnus-summary-scroll-up
|
||||
"zz" 'gnus-recenter
|
||||
"z#" 'gnus-summary-mark-as-processable
|
||||
"!" 'gnus-summary-execute-command
|
||||
"zc" 'gnus-cache-enter-article
|
||||
"gb" 'gnus-summary-best-unread-article
|
||||
"gf" 'gnus-summary-first-unread-article
|
||||
"z/" 'gnus-summary-limit-map
|
||||
;; "<" "=" ">" ...
|
||||
"zd" 'gnus-summary-mark-as-dormant
|
||||
;; "gA"
|
||||
;; "gB"
|
||||
;; "zC"
|
||||
;; "zD"
|
||||
;; "zE"
|
||||
;; "zF"
|
||||
;; "gG"
|
||||
;; "gH"
|
||||
;; "zI"
|
||||
;; "gK"
|
||||
;; "zL"
|
||||
;; "gM"
|
||||
"J" 'gnus-summary-next-article
|
||||
"K" 'gnus-summary-prev-article
|
||||
"gO" 'gnus-summary-save-map
|
||||
"Q" 'gnus-summary-exit-no-update
|
||||
"R" 'gnus-summary-reply-with-original
|
||||
"gS" 'gnus-summary-send-map
|
||||
"gT" 'gnus-summary-thread-map
|
||||
"gV" 'gnus-summary-score-map
|
||||
"gW" 'gnus-summary-wash-map
|
||||
"X" 'gnus-uu-extract-map
|
||||
"gY" 'gnus-summary-buffer-map
|
||||
"gZ" 'gnus-summary-exit-map
|
||||
"z^" 'gnus-summary-refer-parent-article
|
||||
;; "a" ...
|
||||
"r" 'gnus-summary-reply
|
||||
"s" 'gnus-summary-isearch-article
|
||||
"zt" 'gnus-summary-toggle-header
|
||||
"u" 'gnus-summary-tick-article-forward
|
||||
"U" 'gnus-summary-tick-article-backward
|
||||
"x" 'gnus-summary-limit-to-unread
|
||||
"zp" 'gnus-summary-pipe-output
|
||||
"q" 'gnus-summary-exit)
|
||||
|
||||
(evil-set-initial-state 'gnus-article-mode 'motion)
|
||||
|
||||
(provide 'init-evil-gnus)
|
|
@ -0,0 +1,18 @@
|
|||
;;; Evil+man-mode
|
||||
|
||||
(evil-define-key 'motion Man-mode-map
|
||||
(kbd "SPC") 'scroll-up-command
|
||||
(kbd "TAB") 'forward-button
|
||||
(kbd "<backtab>") 'backward-button
|
||||
"\M-sf" 'Man-goto-section
|
||||
"q" 'Man-quit
|
||||
"gm" 'man
|
||||
"\C-j" 'Man-next-section
|
||||
"\C-k" 'Man-previous-section
|
||||
"gr" 'Man-follow-manual-reference
|
||||
"gs" 'Man-goto-see-also-section
|
||||
"u" 'Man-update-manpage
|
||||
"J" 'Man-next-manpage
|
||||
"K" 'Man-previous-manpage)
|
||||
|
||||
(provide 'init-evil-man)
|
|
@ -1,9 +1,11 @@
|
|||
;; Remap org-mode meta keys for convenience
|
||||
;; - org-evil: Not as polished as of May 2017.
|
||||
;; - evil-org: Depends on MELPA's org-mode, too big a dependency for me.
|
||||
;; See https://github.com/Somelauw/evil-org-mode/blob/master/doc/keythemes.org for inspiration.
|
||||
;;; Evil+Org
|
||||
;;; Remap org-mode meta keys for convenience
|
||||
;;; - org-evil: Not as polished as of May 2017.
|
||||
;;; - evil-org: Depends on MELPA's org-mode, too big a dependency for me.
|
||||
;;; See https://github.com/Somelauw/evil-org-mode/blob/master/doc/keythemes.org for inspiration.
|
||||
|
||||
;; TODO: Agenda keys are not right, M-j is shadowed.
|
||||
;;; See https://github.com/Somelauw/evil-org-mode/issues/15.
|
||||
|
||||
(evil-define-key 'normal org-mode-map
|
||||
(kbd "M-<return>") (lambda () (interactive) (evil-insert 1) (org-meta-return))
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
;;; Evil+Transmission
|
||||
|
||||
(evil-set-initial-state 'transmission-mode 'motion)
|
||||
|
||||
(evil-define-key 'motion transmission-mode-map
|
||||
(kbd "<return>") 'transmission-files
|
||||
"D" 'transmission-delete
|
||||
|
@ -20,6 +19,7 @@
|
|||
"c" 'transmission-verify
|
||||
"C" 'transmission-set-bandwidth-priority)
|
||||
|
||||
(evil-set-initial-state 'transmission-files-mode 'motion)
|
||||
(evil-define-key 'motion transmission-files-mode-map
|
||||
(kbd "<return>") 'transmission-find-file
|
||||
"\M-l" 'transmission-display-file
|
||||
|
@ -38,6 +38,7 @@
|
|||
"U" 'transmission-files-want
|
||||
"C" 'transmission-files-priority)
|
||||
|
||||
(evil-set-initial-state 'transmission-info-mode 'motion)
|
||||
(evil-define-key 'motion transmission-info-mode-map
|
||||
"r" 'transmission-trackers-remove
|
||||
"c" 'transmission-copy-magnet
|
||||
|
@ -51,6 +52,7 @@
|
|||
"I" 'transmission-trackers-add
|
||||
"C" 'transmission-set-bandwidth-priority)
|
||||
|
||||
(evil-set-initial-state 'transmission-peers-mode 'motion)
|
||||
(evil-define-key 'motion transmission-peers-mode-map
|
||||
"S" 'tabulated-list-sort
|
||||
"i" 'transmission-info
|
||||
|
|
|
@ -142,14 +142,13 @@
|
|||
|
||||
(require 'init-evil-info)
|
||||
(require 'init-evil-help)
|
||||
(require 'init-evil-man)
|
||||
|
||||
(with-eval-after-load 'transmission (require 'init-evil-transmission))
|
||||
|
||||
(with-eval-after-load 'elfeed (require 'init-evil-elfeed))
|
||||
|
||||
;;; Emms: It is important to set the bindings after emms-browser has loaded,
|
||||
;;; since the mode-maps are defconst'd.
|
||||
(with-eval-after-load 'emms-browser (require 'init-evil-emms))
|
||||
(with-eval-after-load 'emms (require 'init-evil-emms))
|
||||
|
||||
(with-eval-after-load 'mu4e
|
||||
(when (require 'evil-mu4e nil t)
|
||||
|
@ -161,6 +160,8 @@
|
|||
"p" 'mu4e-headers-toggle-include-related
|
||||
"r" 'mu4e-compose-reply)
|
||||
(evil-define-key 'motion mu4e-view-mode-map
|
||||
(kbd "SPC") 'mu4e-view-scroll-up-or-next
|
||||
(kbd "TAB") 'shr-next-link
|
||||
"zf" 'mu4e-view-mark-for-flag
|
||||
"zF" 'mu4e-view-mark-for-unflag
|
||||
"R" 'mu4e-view-mark-for-refile
|
||||
|
@ -205,4 +206,8 @@
|
|||
|
||||
(with-eval-after-load 'debug (require 'init-evil-debugger))
|
||||
|
||||
(with-eval-after-load 'debbugs (require 'init-evil-debbugs))
|
||||
|
||||
(with-eval-after-load 'gnus (require 'init-evil-gnus))
|
||||
|
||||
(provide 'init-evil)
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
;;; EXWM
|
||||
|
||||
;; TODO: Athena+Xaw3d confuses xcape when binding Caps-lock to both L_Ctrl
|
||||
;; escape, in which case it will procude <C-escape> in Emacs. In practice, it
|
||||
;; means that `C-` keys will works but `<escape>` will need a fast double tap on
|
||||
;; Caps Lock.
|
||||
;; See https://github.com/ch11ng/exwm/issues/285.
|
||||
;;; REVIEW: Athena+Xaw3d confuses xcape when binding Caps-lock to both L_Ctrl
|
||||
;;; escape, in which case it will procude <C-escape> in Emacs. In practice, it
|
||||
;;; means that `C-` keys will works but `<escape>` will need a fast double tap
|
||||
;;; on Caps Lock.
|
||||
;;;
|
||||
;;; See https://github.com/ch11ng/exwm/issues/285
|
||||
;;; and https://gitlab.com/interception/linux/plugins/caps2esc/issues/2.
|
||||
|
||||
;;; Rename buffer to window title.
|
||||
(defun exwm-rename-buffer-to-title () (exwm-workspace-rename-buffer exwm-title))
|
||||
|
@ -18,15 +20,11 @@
|
|||
window-divider-default-right-width 2)
|
||||
(window-divider-mode)
|
||||
|
||||
;; TODO: Add support for status bar (dzen2, xmobar, i3bar).
|
||||
;; TODO: Resizing floating windows with mouse does not work on Ubuntu Trusty.
|
||||
;; TODO: How to prevent sending keys to window? ":" is always passed to Qutebrowser. Issue with evil?
|
||||
;; Maybe not. Just switch between char-mode and line-mode. Or check `exwm-input-line-mode-passthrough'.
|
||||
;; https://emacs.stackexchange.com/questions/33326/how-do-i-cut-and-paste-effectively-between-applications-while-using-exwm
|
||||
;; TODO: Spawn select programs in floating mode. (E.g. mpv, mupen64plus, mplayer, qemu, steam, .exe (wine).)
|
||||
;;; REVIEW: Resizing floating windows with mouse does not work on Ubuntu Trusty.
|
||||
;;; See https://github.com/ch11ng/exwm/issues/283.
|
||||
;;; TODO: Spawn select programs in floating mode. (E.g. mpv, mupen64plus, mplayer, qemu, steam, .exe (wine).)
|
||||
|
||||
;;; System tray
|
||||
;; TODO: Test and see if status bar is not a better solution.
|
||||
(require 'exwm-systemtray)
|
||||
(exwm-systemtray-enable)
|
||||
(setq exwm-systemtray-height 16)
|
||||
|
@ -46,7 +44,12 @@
|
|||
(exwm-input-set-key (kbd "s-SPC") #'exwm-floating-toggle-floating)
|
||||
|
||||
(exwm-input-set-key (kbd "s-o") #'toggle-single-window)
|
||||
(exwm-input-set-key (kbd "s-O") #'exwm-layout-toggle-fullscreen) ; TODO: Does not work with qutebrowser.
|
||||
(exwm-input-set-key (kbd "s-O") #'exwm-layout-toggle-fullscreen)
|
||||
;;; REVIEW: How to prevent sending keys to window? ":" is always passed to
|
||||
;;; Qutebrowser. Issue with evil? Maybe not. Just switch between char-mode and
|
||||
;;; line-mode. Or check `exwm-input-line-mode-passthrough'.
|
||||
;;; https://emacs.stackexchange.com/questions/33326/how-do-i-cut-and-paste-effectively-between-applications-while-using-exwm
|
||||
;;; See https://github.com/ch11ng/exwm/issues/298.
|
||||
|
||||
(require 'functions)
|
||||
(exwm-input-set-key (kbd "s-\\") #'toggle-window-split)
|
||||
|
@ -76,7 +79,28 @@
|
|||
(exwm-input-set-key (kbd "s-m") #'mu4e-headers))
|
||||
|
||||
;;; External application shortcuts.
|
||||
(defun exwm-start-browser () (interactive) (start-process-shell-command browse-url-generic-program nil browse-url-generic-program))
|
||||
(defun exwm-start-browser ()
|
||||
"Fire-up the web browser as defined in `browse-url-generic-program'.
|
||||
If current window is the web browser already, fire-up a new window.
|
||||
If not, switch to the last open window.
|
||||
If there is none, fire it up."
|
||||
(interactive)
|
||||
(if (and (eq major-mode 'exwm-mode)
|
||||
(string-match
|
||||
(format " - %s$" (regexp-quote (file-name-nondirectory browse-url-generic-program)))
|
||||
(buffer-name (current-buffer))))
|
||||
(start-process-shell-command browse-url-generic-program nil browse-url-generic-program)
|
||||
(let ((last (buffer-list)))
|
||||
(while (and last
|
||||
(not (with-current-buffer (car last)
|
||||
(and (eq major-mode 'exwm-mode)
|
||||
(string-match
|
||||
(format " - %s$" (regexp-quote (file-name-nondirectory browse-url-generic-program)))
|
||||
(buffer-name (current-buffer)))))))
|
||||
(setq last (cdr last)))
|
||||
(if last
|
||||
(switch-to-buffer (car last))
|
||||
(start-process-shell-command browse-url-generic-program nil browse-url-generic-program)))))
|
||||
(exwm-input-set-key (kbd "s-w") #'exwm-start-browser)
|
||||
|
||||
(defvar exwm-lock-program "slock" "Shell command used to lock the screen.")
|
||||
|
@ -113,4 +137,10 @@
|
|||
(exwm-input-set-key (kbd "s-&") #'exwm-start)
|
||||
(exwm-input-set-key (kbd "s-r") #'exwm-start)
|
||||
|
||||
;;; Check for start-up errors. See ~/.profile.
|
||||
(let ((error-logs (directory-files "~" t "errors.*log$")))
|
||||
(when error-logs
|
||||
(warn "Error during system startup. See %s." (mapconcat 'identity error-logs ", "))
|
||||
(setq initial-buffer-choice (lambda () (get-buffer "*Warnings*")))))
|
||||
|
||||
(provide 'init-exwm)
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
'identity
|
||||
'("--cyclo-over=20 --deadline=20s"
|
||||
;; Ignore some benign errors.
|
||||
"-e 'declaration of err shadows'"
|
||||
"-e 'declaration of \"?err\"? shadows'"
|
||||
"-e 'error return value not checked \\(.*\\.Close\\(\\)'"
|
||||
;; Customize linters.
|
||||
"-E misspell"
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
;;; mu4e
|
||||
|
||||
;; TODO: Notifications don't work? Change `display-time-mail-icon' color in modeline.
|
||||
;; TODO: Reply to all by default.
|
||||
;; TODO: Is it possible to mbsync without attachments?
|
||||
;; TODO: Use abbrevs in compose mode.
|
||||
;; TODO: Do not cite when replying: https://github.com/djcb/mu/issues/1110.
|
||||
;; TODO: Face of `message-cited-text' does not work.
|
||||
;; REVIEW: Handle attachments in attached e-mails.
|
||||
;; See https://github.com/djcb/mu/issues/454#issuecomment-320616279.
|
||||
;;; TODO: Reply to all by default.
|
||||
;;; TODO: Is it possible to mbsync without attachments?
|
||||
;;; REVIEW: Use abbrevs in compose mode.
|
||||
;;; Fixed upstream. See https://github.com/djcb/mu/issues/1119.
|
||||
;;; REVIEW: Do not cite when replying: https://github.com/djcb/mu/issues/1110.
|
||||
;;; TODO: Face of `message-cited-text' does not work.
|
||||
;;; REVIEW: Handle attachments in attached e-mails.
|
||||
;;; See https://github.com/djcb/mu/issues/454#issuecomment-320616279.
|
||||
;;; TODO: <tab> should go to next link in text e-mails too.
|
||||
|
||||
(when (require 'mu4e-maildirs-extension nil t)
|
||||
(mu4e-maildirs-extension))
|
||||
|
@ -29,7 +30,7 @@ Default to unread messages if no"
|
|||
;; IMAP sync.
|
||||
mu4e-maildir "~/.cache/mail"
|
||||
mu4e-get-mail-command "mbsync -a"
|
||||
mu4e-update-interval 60
|
||||
mu4e-update-interval 120
|
||||
mu4e-change-filenames-when-moving t ; Needed for mbsync.
|
||||
|
||||
;; SMTP
|
||||
|
|
|
@ -41,6 +41,6 @@
|
|||
|
||||
;;; Add keywords.
|
||||
(setq org-todo-keywords '((sequence "TODO" "REVIEW" "DONE")))
|
||||
(setq org-todo-keyword-faces '(("REVIEW" :foreground "Gold" :weight bold)))
|
||||
(setq org-todo-keyword-faces '(("REVIEW" :inherit org-done)))
|
||||
|
||||
(provide 'init-org)
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
app-shells/fish ~amd64
|
||||
media-sound/mps-youtube **
|
||||
media-video/mpv
|
||||
net-mail/mu ~amd64
|
||||
net-misc/youtube-dl ~amd64
|
||||
sys-fs/udiskie ~amd64
|
||||
www-client/qutebrowser **
|
|
@ -0,0 +1,21 @@
|
|||
#
|
||||
# app-editors/emacs -gtk -gtk3 athena Xaw3d
|
||||
#games-util/steam-launcher -steamruntime
|
||||
app-admin/conky -ncurses -X
|
||||
app-crypt/pinentry emacs
|
||||
app-editors/emacs gtk gtk3
|
||||
app-editors/emacs sound alsa xft jpeg tiff gif png svg games source libxml2 imagemagick
|
||||
app-text/poppler cairo
|
||||
dev-python/PyQt5 opengl webengine webchannel multimedia
|
||||
dev-qt/qtmultimedia gstreamer
|
||||
media-gfx/imagemagick png hdri jpeg jpeg2k lcms lzma png pango raw svg tiff webp
|
||||
media-libs/chromaprint tools
|
||||
media-libs/imlib2 gif jpeg png tiff
|
||||
media-video/ffmpeg libass libv4l mp3 opengl opus sdl theora truetype v4l vaapi vdpau vorbis wavpack webp x264 x265 xvid gnutls
|
||||
media-video/mpv v4l vaapi vdpau dvd cdda
|
||||
net-mail/isync sasl
|
||||
net-mail/mu emacs
|
||||
net-misc/curl curl_ssl_gnutls -curl_ssl_openssl
|
||||
net-misc/iputils -caps -filecaps
|
||||
x11-misc/dzen xft
|
||||
x11-terms/xterm truetype
|
|
@ -0,0 +1,80 @@
|
|||
app-admin/conky
|
||||
app-admin/logrotate
|
||||
app-admin/sudo
|
||||
app-admin/sysklogd
|
||||
app-arch/atool
|
||||
app-arch/p7zip
|
||||
app-crypt/pinentry
|
||||
app-dicts/aspell-de
|
||||
app-dicts/aspell-en
|
||||
app-dicts/aspell-fr
|
||||
app-editors/emacs
|
||||
app-editors/nano
|
||||
app-editors/nvi
|
||||
app-emacs/emms
|
||||
app-misc/ca-certificates
|
||||
app-misc/trash-cli
|
||||
app-misc/vlock
|
||||
app-portage/cpuid2cpuflags
|
||||
app-portage/eix
|
||||
app-portage/gentoolkit
|
||||
app-shells/bash-completion
|
||||
app-shells/fish
|
||||
app-text/aspell
|
||||
app-text/poppler
|
||||
app-text/tree
|
||||
dev-lang/go
|
||||
dev-libs/openssl
|
||||
dev-python/PyQt5
|
||||
dev-python/pyopengl
|
||||
dev-qt/qtopengl
|
||||
dev-qt/qtwebengine
|
||||
dev-util/cloc
|
||||
dev-vcs/git
|
||||
games-misc/fortune-mod
|
||||
games-util/steam-launcher
|
||||
media-fonts/dejavu
|
||||
media-gfx/imagemagick
|
||||
media-gfx/scrot
|
||||
media-gfx/sxiv
|
||||
media-libs/chromaprint
|
||||
media-libs/libtxc_dxtn
|
||||
media-libs/mesa
|
||||
media-sound/alsa-utils
|
||||
media-sound/mps-youtube
|
||||
media-video/ffmpeg
|
||||
media-video/mediainfo
|
||||
media-video/mpv
|
||||
media-video/subdl
|
||||
net-mail/isync
|
||||
net-mail/mu
|
||||
net-misc/curl
|
||||
net-misc/dhcpcd
|
||||
net-misc/openntpd
|
||||
net-misc/youtube-dl
|
||||
net-p2p/transmission
|
||||
net-wireless/iw
|
||||
net-wireless/wireless-tools
|
||||
net-wireless/wpa_supplicant
|
||||
sci-calculators/units
|
||||
sys-apps/pciutils
|
||||
sys-apps/the_silver_searcher
|
||||
sys-apps/usbutils
|
||||
sys-boot/grub:2
|
||||
sys-fs/ncdu
|
||||
sys-fs/ntfs3g
|
||||
sys-fs/udiskie
|
||||
sys-kernel/genkernel
|
||||
sys-kernel/gentoo-sources
|
||||
sys-kernel/linux-firmware
|
||||
sys-power/acpid
|
||||
sys-process/htop
|
||||
sys-process/lsof
|
||||
www-client/qutebrowser
|
||||
x11-base/xorg-server
|
||||
x11-misc/dzen
|
||||
x11-misc/numlockx
|
||||
x11-misc/slock
|
||||
x11-misc/xcape
|
||||
x11-misc/xdg-utils
|
||||
x11-terms/xterm
|
Loading…
Reference in New Issue