Merge branch 'main' of https://tildegit.org/acdw/emacs
This commit is contained in:
commit
1c6d042d2f
52
init.el
52
init.el
|
@ -113,7 +113,8 @@
|
|||
(+ensure-after-init #'+pulse-location-mode))
|
||||
|
||||
(setup (:require reading)
|
||||
(:global "C-c C-r" #'reading-mode))
|
||||
(:hook-into view-mode) ; XXX doesn't go back
|
||||
)
|
||||
|
||||
(setup (:require user-save)
|
||||
(add-hook 'user-save-hook #'+clean-empty-lines)
|
||||
|
@ -178,9 +179,12 @@
|
|||
(cond ((executable-find "mpv") #'+browse-image-with-mpv)
|
||||
(t #'eww-browse-url))
|
||||
args)))
|
||||
(cons (rx ; videos
|
||||
(cons (rx
|
||||
(or "youtube.com" "youtu.be" "yewtu.be"
|
||||
(seq "." (or "mp4" "gif" "mov" "MOV" "webm") eos)))
|
||||
;; videos
|
||||
(seq "." (or "mp4" "gif" "mov" "MOV" "webm") eos)
|
||||
;; music
|
||||
(seq "." (or "ogg" "mp3") eos)))
|
||||
(lambda (&rest args)
|
||||
(apply (if (executable-find "mpv")
|
||||
#'+browse-url-with-mpv
|
||||
|
@ -1038,6 +1042,7 @@ See also `crux-reopen-as-root-mode'."
|
|||
(:+key "M-q" #'filldent-dwim))
|
||||
|
||||
(setup (:straight flyspell-correct)
|
||||
(:load-after flyspell)
|
||||
(:also-load +flyspell-correct)
|
||||
(:option flyspell-correct--cr-key ";")
|
||||
(:bind-into flyspell
|
||||
|
@ -1230,7 +1235,8 @@ See also `crux-reopen-as-root-mode'."
|
|||
(:hook-into org-mode))
|
||||
|
||||
(setup (:straight org-sticky-header)
|
||||
(:hook-into org-mode))
|
||||
;; (:hook-into org-mode)
|
||||
)
|
||||
|
||||
(setup (:straight org-visibility)
|
||||
(:option org-visibility-state-file (.etc "org-visibility")
|
||||
|
@ -1289,27 +1295,32 @@ See also `crux-reopen-as-root-mode'."
|
|||
(setup (:straight (simple-modeline
|
||||
:fork (:host github :repo "duckwork/simple-modeline")))
|
||||
(:require +modeline)
|
||||
(:option simple-modeline-segments `((;; left
|
||||
(:option simple-modeline-segments
|
||||
`(( ; left
|
||||
+modeline-ace-window-display
|
||||
+modeline-modified
|
||||
+modeline-buffer-name
|
||||
(lambda () (+modeline-vc ": "))
|
||||
,(+modeline-concat
|
||||
'(+modeline-minions
|
||||
+modeline-major-mode))
|
||||
+modeline-anzu
|
||||
)
|
||||
( ; right
|
||||
(lambda ()
|
||||
(unless +tab-bar-misc-info-mode
|
||||
(+modeline-concat
|
||||
'(+modeline-track
|
||||
simple-modeline-segment-misc-info))))
|
||||
|
||||
simple-modeline-segment-process
|
||||
+modeline-text-scale
|
||||
,(+modeline-concat
|
||||
'(+modeline-god-mode
|
||||
+modeline-reading-mode
|
||||
+modeline-narrowed)
|
||||
",")
|
||||
+modeline-buffer-name
|
||||
+modeline-position
|
||||
+modeline-anzu
|
||||
)
|
||||
(;; right
|
||||
+modeline-track
|
||||
+modeline-vc
|
||||
simple-modeline-segment-misc-info
|
||||
simple-modeline-segment-process
|
||||
+modeline-text-scale
|
||||
+modeline-minions
|
||||
+modeline-major-mode
|
||||
)))
|
||||
+modeline-position)))
|
||||
(simple-modeline-mode +1))
|
||||
|
||||
(setup (:straight smartscan)
|
||||
|
@ -1480,3 +1491,8 @@ See also `crux-reopen-as-root-mode'."
|
|||
(:require +zzz-to-char)
|
||||
(:option zzz-to-char-reach 1024)
|
||||
(:global "M-z" #'+zzz-to-char))
|
||||
|
||||
(setup tab-bar
|
||||
(:require +tab-bar)
|
||||
(tab-bar-mode +1)
|
||||
(+tab-bar-misc-info-mode +1))
|
||||
|
|
|
@ -88,7 +88,7 @@ This function makes a lambda, so you can throw it straight into
|
|||
(defun +modeline-major-mode (&optional spacer)
|
||||
"Display the current `major-mode'."
|
||||
(concat (or spacer +modeline-default-spacer)
|
||||
(propertize (+string-truncate (format-mode-line mode-name) 12)
|
||||
(propertize (+string-truncate (format-mode-line mode-name) 16)
|
||||
'face 'bold
|
||||
'keymap mode-line-major-mode-keymap
|
||||
'help-echo (concat (format-mode-line mode-name)
|
||||
|
@ -185,18 +185,18 @@ The order of elements matters: whichever one matches first is applied."
|
|||
|
||||
(defun +modeline-position (&optional _) ; adapted from `simple-modeline'
|
||||
"Display the current cursor position."
|
||||
(list '((line-number-mode
|
||||
(let ((sep "|") (before " [") (after "]"))
|
||||
(list `(:propertize (line-number-mode
|
||||
((column-number-mode
|
||||
(column-number-indicator-zero-based
|
||||
(9 " %l:%c")
|
||||
(9 " %l:%C"))
|
||||
(6 " %l:")))
|
||||
,(concat before "%l" sep "%c" after)
|
||||
,(concat before "%l" sep "%C" after))
|
||||
,(concat before "%l" sep "" after)))
|
||||
((column-number-mode
|
||||
(column-number-indicator-zero-based
|
||||
(5 " :%c")
|
||||
(5 " :%C"))))))
|
||||
'(file-percentage-mode
|
||||
((-3 "%p") "%% "))
|
||||
,(concat before sep "%c" after)
|
||||
,(concat before sep "%C" after)))))
|
||||
font-lock-face font-lock-comment-face)
|
||||
(if (region-active-p)
|
||||
(propertize (format "%s%-5d"
|
||||
(if (and (mark) (< (point) (mark))) "-" "+")
|
||||
|
@ -205,7 +205,10 @@ The order of elements matters: whichever one matches first is applied."
|
|||
(- (cdr pos)
|
||||
(car pos)))
|
||||
(region-bounds))))
|
||||
'font-lock-face 'font-lock-variable-name-face))))
|
||||
'font-lock-face 'font-lock-variable-name-face))
|
||||
'(:propertize (file-percentage-mode
|
||||
(" " (-3 "%p") "%%"))
|
||||
font-lock-face font-lock-comment-face))))
|
||||
|
||||
(defun +modeline-vc (&optional spacer)
|
||||
"Display the version control branch of the current buffer in the modeline."
|
||||
|
|
|
@ -421,9 +421,10 @@ the deletion might narrow the column."
|
|||
(interactive "P")
|
||||
(save-excursion
|
||||
(let* ((this-char-type (org-element-type (org-element-context)))
|
||||
(prev-char-type (save-excursion
|
||||
(prev-char-type (ignore-errors
|
||||
(save-excursion
|
||||
(backward-char)
|
||||
(org-element-type (org-element-context))))
|
||||
(org-element-type (org-element-context)))))
|
||||
(types '(citation citation-reference clock comment comment-block
|
||||
footnote-definition footnote-reference headline
|
||||
inline-src-block inlinetask keyword link
|
||||
|
|
|
@ -0,0 +1,80 @@
|
|||
;;; +tab-bar.el -*- lexical-binding: t; -*-
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; Emacs 28 comes with an easy-to-use `tab-bar-format' option, but I still use
|
||||
;; Emacs 27 on my Windows machine. Thus, the code in this file.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'tab-bar)
|
||||
|
||||
|
||||
;; Common
|
||||
|
||||
(defun +tab-bar-misc-info ()
|
||||
"Display `mode-line-misc-info', formatted for the tab-bar."
|
||||
`((global menu-item ,(string-trim-right
|
||||
(format-mode-line mode-line-misc-info))
|
||||
ignore)))
|
||||
|
||||
(defvar +tab-bar-show-original nil
|
||||
"Original value of `tab-bar-show'.")
|
||||
|
||||
|
||||
;; Emacs 27
|
||||
|
||||
(defun +tab-bar-misc-info-27 (output &rest _)
|
||||
"Display `mode-line-misc-info' in the `tab-bar' on Emacs 27.
|
||||
This is :filter-return advice for `tab-bar-make-keymap-1'."
|
||||
(let* ((reserve (length (format-mode-line mode-line-misc-info)))
|
||||
(str (propertize " "
|
||||
'display `(space :align-to (- right (- 0 right-margin)
|
||||
,reserve)))))
|
||||
(prog1 (append output
|
||||
`((align-right menu-item ,str nil))
|
||||
(+tab-bar-misc-info)))))
|
||||
|
||||
|
||||
;; Emacs 28
|
||||
|
||||
(defvar +tab-bar-format-original nil
|
||||
"Original value of `tab-bar-format'.")
|
||||
|
||||
(defun +tab-bar-misc-info-28 ()
|
||||
"Display `mode-line-misc-info', right-aligned, on Emacs 28."
|
||||
(append (unless (memq 'tab-bar-format-align-right tab-bar-format)
|
||||
'(tab-bar-format-align-right))
|
||||
'(+tab-bar-misc-info)))
|
||||
|
||||
|
||||
|
||||
(define-minor-mode +tab-bar-misc-info-mode
|
||||
"Show the `mode-line-misc-info' in the `tab-bar'."
|
||||
:lighter ""
|
||||
:global t
|
||||
(if +tab-bar-misc-info-mode
|
||||
(progn ; Enable
|
||||
(setq +tab-bar-show-original tab-bar-show)
|
||||
(cond
|
||||
((boundp 'tab-bar-format) ; Emacs 28
|
||||
(setq +tab-bar-format-original tab-bar-format)
|
||||
(unless (memq '+tab-bar-misc-info tab-bar-format)
|
||||
(setq tab-bar-format
|
||||
(append tab-bar-format (+tab-bar-misc-info-28)))))
|
||||
((fboundp 'tab-bar-make-keymap-1) ; Emacs 27
|
||||
(advice-add 'tab-bar-make-keymap-1 :filter-return
|
||||
'+tab-bar-misc-info-27)))
|
||||
(setq tab-bar-show t))
|
||||
(progn ; Disable
|
||||
(setq tab-bar-show +tab-bar-show-original)
|
||||
(cond
|
||||
((boundp 'tab-bar-format) ; Emacs 28
|
||||
(setq tab-bar-format +tab-bar-format-original))
|
||||
((fboundp 'tab-bar-make-keymap-1) ; Emacs 27
|
||||
(advice-remove 'tab-bar-make-keymap-1 '+tab-bar-misc-info-27))))))
|
||||
|
||||
|
||||
|
||||
(provide '+tab-bar)
|
||||
;;; +tab-bar.el ends here
|
Loading…
Reference in New Issue