| Age | Commit message (Collapse) | Author |
|
OT1H it's likely I'll always keep font-lock's function & built-in
faces somewhat close together (although thinking more about it, the
former is for highlighting declaration, and the latter for
highlighting usage, so… worth challenging that assumption), OTOH I'd
rather not keep the implicit function = directory association.
|
|
Leave font-lock faces alone; just unset shell-font-lock-keywords.
|
|
The first mistake here was to forget to wrap console codes with \[…\];
for some reason though after adding those…
export PS4=$(echo -en '\[\e[7m\]+ \[\e[0m\]')
… bash no longer repeats the first character (+) according to the
indirection level, or rather, it repeats an entirely unrelated
character:
$ ( PS4='+ ' ; set -x ; echo $(echo $(echo hi | grep hi)) )
+++ echo hi
+++ grep --color=auto hi
++ echo hi
+ echo hi
hi
$ ( PS4=$(echo -en '\[\e[7m\]+ \[\e[0m\]')
set -x
echo $(echo $(echo hi | grep hi))
) |& hexdump -C
00000000 01 01 01 1b 5b 37 6d 02 2b 20 01 1b 5b 30 6d 02 |....[7m.+ ..[0m.|
^^ ^^ ^^ (echo)
00000010 65 63 68 6f 20 68 69 0a 01 01 01 1b 5b 37 6d 02 |echo hi.....[7m.|
^^ ^^ ^^ (grep)
00000020 2b 20 01 1b 5b 30 6d 02 67 72 65 70 20 2d 2d 63 |+ ..[0m.grep --c|
00000030 6f 6c 6f 72 3d 61 75 74 6f 20 68 69 0a 01 01 1b |olor=auto hi....|
^^ ^^ (echo)
00000040 5b 37 6d 02 2b 20 01 1b 5b 30 6d 02 65 63 68 6f |[7m.+ ..[0m.echo|
00000050 20 68 69 0a 01 1b 5b 37 6d 02 2b 20 01 1b 5b 30 | hi...[7m.+ ..[0|
^^ (echo)
00000060 6d 02 65 63 68 6f 20 68 69 0a 68 69 0a |m.echo hi.hi.|
0000006d
No idea where those ^A characters come from.
While at it, wrap PS2 to avoid line-wrapping shenanigans.
|
|
* inputrc goodies,
* let readline see C-s,
* reverse PS4 for kicks,
* protect crippled shells (M-x shell, batch ssh commands) from this
savagery.
|
|
|
|
|
|
|
|
|
|
Highlights:
* add etc/NEWS tags
* some Markdown markup
* tone done fringe bitmaps
* make current icomplete selection easier to spot on monitors with
poor contrast for black levels
|
|
|
|
|
|
* Make region more prominent. The main blocker for that was
lazy-highlight's cyan hues being too close, but now that it has
:inverse-video, s'all good.
* Make subgroup matches more prominent. Go with red & blue to "frame"
magenta.
* Add dim backgrounds to (Org, Markdown) code snippets, to mimic that
"inset" effect other applications sometimes apply to those.
* Remove green foreground to ~Org inline code~; let background and
serifs speak for themselves.
* Crank up saturation on =Org verbatim= `Markdown inline code` to
compensate lighter background.
|
|
|
|
show-paren-mode is not needed for Emacs≥28, but I still have stuff in
these dotfiles that purport to support older versions.
|
|
Wonder how long I can live with that "make commit summaries all
title-like" gag.
|
|
|
|
Can't even remember what this was about; obviously positives when
grouping threads due to subject-matching being too lax? 🤷
|
|
They've been sitting here unstaged for, like, ever.
|
|
(Fix a linter nitpick in passing 🙊)
|
|
:inverse-video round 🙃
|
|
Also make add serifs to preprocessor directives because eheh why not.
Makes them distinct from "builtins" and gives them this "alien"
quality that reminds me that they belong to a whole other language… or
something.
|
|
|
|
|
|
|
|
Opened an Org buffer with this theme for the first time.
|
|
|
|
(pcase-dolist (`(,sym ,color)
eighters-palette)
(when (string-match-p "\\`fg-[a-z]*\\'" (symbol-name sym))
(when-let* ((sym-dim (intern (concat
(symbol-name sym)
"-dim")))
(dim-cdr (alist-get sym-dim eighters-palette))
(new-color (eighters-hsl-to-hex
(car (apply 'color-rgb-to-hsl
(color-name-to-rgb color)))
0.30 0.60)))
(message "%s → %s" sym-dim new-color)
(setcar dim-cdr new-color))))
|
|
|
|
(pcase-dolist (`(,sym ,color)
eighters-palette)
(when (string-match-p "\\`fg-[a-z]*\\'" (symbol-name sym))
(when-let* ((sym-dim (intern (concat
(symbol-name sym)
"-dim")))
(dim-cdr (alist-get sym-dim eighters-palette))
(new-color (eighters-hsl-to-hex
(car (apply 'color-rgb-to-hsl
(color-name-to-rgb color)))
0.4 0.66)))
(message "%s → %s" sym-dim new-color)
(setcar dim-cdr new-color))))
Followup changes:
* make strings the same color as constants (though dimmer) to make
types stand out more;
(Unfortunate side-effect: constants within strings stand out less.
Hm)
* only use variable-pitch for Gnus header names; keep empty
gnus-header because its docstring says all gnus-header faces must
inherit from it 🫡
* ARGH YES OH RIGHT HAD FORGOTTEN ABOUT MM-UU-EXTRACT UGH MY EYES
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Also make code comments outline-compliant.
|
|
Mainly for heading-like elements; keeping more colorful variants for
syntax constructs in programming languages.
|
|
|
|
Write down the method to the madness.
|
|
The rules I'm trying to adhere to:
1. theme faces, then standard faces, then third-parties;
2. if keeping a group of faces together makes maintenance easier,
define a "subgroup" and sort it at the end;
3. keep things sorted lexicographically, unless another order makes
sense (e.g. section hierarchy) and it's too much of a hassle to add
groups of comments.
|
|
By dimming hiding the common parts more.
|
|
Pops more; also somewhat consistent with the idea that it's a key
binding.
|
|
|
|
- bg #0 0 0
- bg-dim #1 1 1 → bg-hl-dimmer #0f0f0f
- bg-hl-dim #1a1a1a → bg-hl-dim #181818
- bg-hl #2 2 2
Dimmer:
- buttons
- fringe
- key bindings
- inactive mode line
- tab bar
- diff header 1 (command)
- diff header 2 (file)
- ediff unfocused hunks
- magit focused section
- magit focused hunk content
Dim:
- Custom editable fields (comment, field widget)
- highlight
- diff header 3 (hunk & function)
- magit unfocused hunk heading
Least dim:
- button box
- magit focused hunk heading
|
|
Nonplussed with Modus v4.
|
|
😵💫
Trying to get back the sense of sharp contrast I had before.
Snippets from *scratch* in case I need to recompute some of these:
(defun my/color-hsl-to-rgbhex (h s l)
(apply
'color-rgb-to-hex
`(,@(color-hsl-to-rgb h s l) 2)))
(defun my/color-hs1-l2 (c1 c2)
(pcase-let ((`(,h1 ,s1 _) (apply 'color-rgb-to-hsl
(color-name-to-rgb c1)))
(`(_ _ ,l2) (apply 'color-rgb-to-hsl
(color-name-to-rgb c2))))
(message "hue %.3f with s %.3f l %.3f" h1 s1 l2)
(apply 'color-rgb-to-hex
`(,@(color-hsl-to-rgb h1 s1 l2) 2))))
(defun my/modus-rgb (key palette)
(let ((value (car (alist-get key palette))))
(if (stringp value)
value
(car (alist-get value palette)))))
(list-colors-display
(list (my/modus-rgb 'bg-completion modus-vivendi-palette)
(my/color-hs1-l2 (my/modus-rgb 'bg-completion modus-vivendi-palette)
"#303030")
(my/color-hs1-l2 (my/modus-rgb 'bg-completion modus-vivendi-palette)
"#202020")))
(pcase-dolist (`(,sym ,val)
modus-vivendi-palette)
(when-let ((color (and (string-match "bg-\\(.*\\)-subtle" (symbol-name sym))
(match-string 1 (symbol-name sym))))
(darker (color-darken-name val 40.0)))
(message "%s (%s): %.2f"
color
val
(modus-themes-contrast val (car (alist-get (intern color) modus-vivendi-palette))))
(message "%s (%s): %.2f"
color
darker
(modus-themes-contrast darker
(car (alist-get (intern color) modus-vivendi-palette))))))
(dolist (diffkind '(removed changed))
(dolist (suffix '("" "-faint" "-refine"))
(insert (format "(bg-%s%s \"%s\")\n"
))))
(list-colors-display
(seq-map (pcase-lambda (`(,h ,l))
(apply 'color-rgb-to-hex `(,@(color-hsl-to-rgb h 1.0 l) 2)))
'((0.00 0.04)
(0.00 0.08)
(0.00 0.16)
(0.59 0.04)
(0.59 0.08)
(0.59 0.16)
(0.12 0.04)
(0.12 0.08)
(0.12 0.16))))
|