This is in preparation for general.el integration coming in 2.1.1. It is very likely that map! will change (and even more, be split into several macros). Not much, but change none-the-less. Specifically, the state keywords (e.g. :nvi, :n, :i) will be removed in favor of a :state property that takes a list, e.g. (normal visual insert). In any case, both map! and general are also relatively expensive compared to define-key and evil-define-key* (and the new define-key! macro), so use that when we can. This also means changes to either API won't affect Doom's modules in the long term.
80 lines
3.1 KiB
EmacsLisp
80 lines
3.1 KiB
EmacsLisp
;;; app/twitter/config.el -*- lexical-binding: t; -*-
|
|
|
|
(def-package! twittering-mode
|
|
:commands twit
|
|
:config
|
|
(setq twittering-private-info-file (expand-file-name "twittering-mode.gpg" doom-etc-dir)
|
|
twittering-use-master-password t
|
|
twittering-request-confirmation-on-posting t
|
|
;; twittering-icon-mode t
|
|
;; twittering-use-icon-storage t
|
|
;; twittering-icon-storage-file (concat doom-cache-dir "twittering-mode-icons.gz")
|
|
;; twittering-convert-fix-size 12
|
|
twittering-timeline-header ""
|
|
twittering-timeline-footer ""
|
|
twittering-edit-skeleton 'inherit-any
|
|
twittering-status-format "%FACE[font-lock-function-name-face]{ @%s} %FACE[italic]{%@} %FACE[error]{%FIELD-IF-NONZERO[❤ %d]{favorite_count}} %FACE[warning]{%FIELD-IF-NONZERO[↺ %d]{retweet_count}}
|
|
%FOLD[ ]{%FILL{%t}%QT{
|
|
%FOLD[ ]{%FACE[font-lock-function-name-face]{@%s}\t%FACE[shadow]{%@}
|
|
%FOLD[ ]{%FILL{%t}}
|
|
}}}
|
|
|
|
%FACE[twitter-divider]{ }
|
|
"
|
|
;; twittering-timeline-spec-alias '()
|
|
twittering-initial-timeline-spec-string
|
|
'(":home" ":mentions" ":direct_messages"))
|
|
|
|
(set! :popup "^\\*twittering-edit"
|
|
'((size . 15))
|
|
'((transient) (quit) (select . t)))
|
|
|
|
(defface twitter-divider
|
|
'((((background dark)) (:underline (:color "#141519")))
|
|
(((background light)) (:underline (:color "#d3d3d3"))))
|
|
"The vertical divider between tweets."
|
|
:group 'twittering-mode)
|
|
|
|
(add-hook 'doom-real-buffer-functions #'+twitter-buffer-p)
|
|
(when (featurep! :ui popup)
|
|
(setq twittering-pop-to-buffer-function #'+twitter-display-buffer))
|
|
|
|
(after! solaire-mode
|
|
(add-hook 'twittering-mode-hook #'solaire-mode))
|
|
|
|
;; Custom modeline for twitter buffers
|
|
(def-modeline! twitter
|
|
(bar matches " %b " selection-info)
|
|
())
|
|
|
|
(defun +twitter|switch-mode-and-header-line ()
|
|
(setq header-line-format (or (doom-modeline 'twitter) mode-line-format)
|
|
mode-line-format nil))
|
|
(add-hook 'twittering-mode-hook #'+twitter|switch-mode-and-header-line)
|
|
|
|
(define-key! twittering-mode-map
|
|
"q" #'+twitter/quit
|
|
"Q" #'+twitter/quit-all
|
|
[remap twittering-kill-buffer] #'+twitter/quit
|
|
[remap delete-window] #'+twitter/quit
|
|
[remap +workspace/close-window-or-workspace] #'+twitter/quit)
|
|
(when (featurep! :feature evil +everywhere)
|
|
(define-key! twittering-mode-map
|
|
[remap evil-window-delete] #'+twitter/quit
|
|
"f" #'twittering-favorite
|
|
"F" #'twittering-unfavorite
|
|
"\C-f" #'twittering-follow
|
|
"\C-F" #'twittering-unfollow
|
|
"d" #'twittering-delete-status
|
|
"r" #'twittering-retweet
|
|
"R" #'twittering-toggle-or-retrieve-replied-statuses
|
|
"o" #'twittering-update-status-interactive
|
|
"O" #'+twitter/ace-link
|
|
"/" #'twittering-search
|
|
"J" #'twittering-goto-next-status
|
|
"K" #'twittering-goto-previous-status
|
|
"g" nil
|
|
"gg" #'twittering-goto-first-status
|
|
"G" #'twittering-goto-last-status
|
|
"gj" #'twittering-goto-next-status-of-user
|
|
"gk" #'twittering-goto-previous-status-of-user)))
|