summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-01-25Remove some cruft in init fileKévin Le Gouguec
- As noted earlier, Debian stable ships Emacs 28, so ditch all provisions for anything older. - Make a bona fide minor mode for my/croak; gives us a variable for free that is always defined, as well as a lighter. - s/(read-string (format-prompt 𝒫 𝒟) nil nil 𝒟)/(my/read 𝒫 𝒟) - s/when/and to avoid implying side-effects.
2025-01-25Venture further into XDG landKévin Le Gouguec
Now I can 'kdialog --icon compilation-success' 😤✊
2025-01-25Achieve XDG complianceKévin Le Gouguec
… sort of. Emacs apps will stuff all manner of transient state under user-emacs-directory by default, so full XDG compliance would probably involve customizing them all to instead use ~/.cache but 🤷
2025-01-22Ditch when-letKévin Le Gouguec
Obsoleted. While in there, rewrite to taste: - could just switch to when-let*, but I hear and-let* is more idiomatic for code that returns values; when(-let) OTOH denotes side-effects. - project-root (singular) has been available since 28, which is in Debian stable. Good enough. - I know about 𝓍-let*'s (VALUEFORM) shorthand now. - “(string-trim-right root "/")”? 🤭
2025-01-18Tell dired to use 'git mv' when appropriateKévin Le Gouguec
2025-01-18Bow out of native-compilationKévin Le Gouguec
Write an essay about it.
2025-01-14Tone markup checkboxes downKévin Le Gouguec
2024-12-23Set new completion knobKévin Le Gouguec
Probably handles 99% of the uses I've had for the substring style?
2024-12-23Overthink Gnus window configurationsKévin Le Gouguec
The status-quo looks like [ SUMMARY ] [ ][ ][ ] [PADDING][ ARTICLE ][PADDING] [ ][ ][ ] which wastes a lot of horizontal space, and sometimes fails to display anything interesting about the article without scrolling, depending on the quantity of headers and introductory cruft. Since Gnus allows dynamically-evaluated forms, consult the frame width to choose between [ ][ ] or [ SUMMARY ] [ SUMMARY ][ARTICLE] [ ] [ ][ ] [ ARTICLE ] [ ]
2024-12-23Dust off READMEKévin Le Gouguec
s/master/trunk/ s/checkout/restore/
2024-12-23Dust off .gnus commentaryKévin Le Gouguec
Make it outline-friendlier, wordsmith commentary.
2024-07-17Go back to wrapping long lines on public-inboxKévin Le Gouguec
With 'fit-max-width: content', long lines caused divs to take the whole screen width. * Set a fixed width "au doigt mouillé" to give hard-wrapped messages space to breathe, * Restore the default pre-wrap behavior to make long lines readable.
2024-07-07Use simpler method to get the number of processorsKévin Le Gouguec
Chance met reading '(elisp) Process Information'.
2024-07-06Start versioning some jq toolsKévin Le Gouguec
Serving suggestion: > Can I use 'git branch --show-current' in that testsuite? Documentation/RelNotes/2.22.0.txt 32: * "git branch" learned a new subcommand "--show-current". > Well then which distros ship Git <2.22? $ wget -O- https://repology.org/api/v1/project/git | jq -r ' import "version" as version ; map(select(.version | version::versionlt("2.22"))) | sort_by(.repo, (.version | version::toversion)) | map("\(.version)\t\(.repo)") | .[] ' | column -ts$'\t'
2024-07-06Add knob to configure Emacs for debuggingKévin Le Gouguec
As per etc/DEBUG.
2024-07-06Adapt to which-key integration in core EmacsKévin Le Gouguec
The maintainers decided to disable Unicode symbols by default; re-enable them. Also fix the version check for Eglot and use-package.
2024-06-23Fiddle with Emacs build scriptKévin Le Gouguec
Fewer globals ⇒ better feng shui.
2024-06-23Build & install Emacs under ~/appsKévin Le Gouguec
Makes upgrades less risky: can be committed and rolled back with the flip of a symlink.
2024-06-17Adapt LWN CSS hacks to recent comment threading updateKévin Le Gouguec
2024-05-26Fiddle with Gnus configKévin Le Gouguec
* Call out mm-fill-flowed; even if I keep it "enabled" as it is by default, I don't want to forget that I rely on it to un-fill. * Bump summary "target width" and give name to hooks. * Recognize & fontify text/markdown parts.
2024-05-15Fix ELPA update scriptKévin Le Gouguec
No idea how I managed to commit it in such a non-working state.
2024-05-15Add & theme forgeKévin Le Gouguec
2024-05-15Add a couple of faces for EWWKévin Le Gouguec
2024-03-31Theme vc-dirKévin Le Gouguec
Would have added some backgrounds, but the faces (vc-dir-header & vc-dir-status-edited in particular) are applied on too much surrounding whitespace, so empty space becomes "lit up" and distracting.
2024-03-24Add script to "update" ELPA packagesKévin Le Gouguec
I update somewhat infrequently, and more often than not some packages will fail to compile for obscure reasons. At this stage, I've done the "generate minimal .emacs with selected packages, install from scratch" dance that I figure I might as well automate it.
2024-03-24Refresh .emacs prologueKévin Le Gouguec
The stuff about package-initialize is flat out wrong: (a) package-initialize is _not_ called automatically at startup; (b) for all that, customizations seem none the worse for wear. '(elisp) Packaging Basics' suggests that Emacs does automatically call 'package-activate-all' (unless asked otherwise in the early init file) so it's really not clear what that business with package-initialize was about 🤷 Add some more up-to-date commentary regarding other topics.
2024-03-24Tweak commentaryKévin Le Gouguec
Not sure why I thought this cross-reference "format" was a good idea. Perhaps because it works even if 'calendar' is not loaded? OTOH C-x C-e vomits the docstring to the echo area, so meh.
2024-03-24Beef up program-running helpersKévin Le Gouguec
* .emacs (my/run-strip-newline): New escape hatch, to let my/run DTRT most of the time and spare most callers the cognitive load. (my/run): Heed it. Document. (my/kill-command): New helper; meant for programmatic use where arglists are manipulated as lists, and and no shell escaping is required. (my/kill-date, my/describe-revision): Use it. (my/kill-shell): Document, to disambiguate with my/kill-command.
2024-03-24Add command to kill the current dateKévin Le Gouguec
Comes up often enough, e.g. to add a stamp to a filename; probably was the original motivation for my/kill-shell. Gave a honest attempt at using a transient for this, but got bogged down second-guessing whether I should define my arguments as shorthands inside my transient-define-prefix form, or as dedicated transient-define-argument forms; gave up while trying to figure out whether the shorthand form could use transient-read-date.
2024-03-17Double-down on macros to reduce customization boilerplateKévin Le Gouguec
2024-03-17Fix broken macroKévin Le Gouguec
IIUC the previous version ran customizations immediately during expansion (ultimately expanding to the last customize-set-variable value), instead of generating forms that would run those customizations at appropriate times. Guess I never run Emacs <29 😐
2024-03-17Add helper to guess the correct fill-column for commit messagesKévin Le Gouguec
Also move more customizations to use-package forms.
2024-03-13Eliminate stressorKévin Le Gouguec
Been using that for literal years at $DAYJOB; no idea why it's taken me this long to port to my personal config.
2024-03-03Fix HTML-detection "logic"Kévin Le Gouguec
The previous code failed to detect some HTML emails, perhaps because the text/html part was nested inside a multipart/alternative? Lucked onto debbugs-gnu.el by asking xref for occurrences of gnus-article-mime-handles in the Emacs tree; not sure if M-? showing results from ~/.emacs.d/elpa was intended, but it sure helped here.
2024-03-02Add helper to run Emacs testcaseKévin Le Gouguec
It's probably more idiomatic to run a testcase you are developing in your own session, using 'M-x ert' commands? I figure starting a fresh Emacs cannot hurt.
2024-03-02Fixup wrap heuristicKévin Le Gouguec
gnus-article-prepare-hook is _not_ run in the article buffer. No idea why things fall into place on my desktop; probably some ill-defined buffer-switching plumbing. Also clarify nearby comment.
2024-02-11Wrestle in the mud with ERCKévin Le Gouguec
Unhappy with those timestamps, but somewhat less unhappy than when I started. Also * remove erc-fill-wrap: as mentioned in the comments, it causes intempestive recentering; * remove erc-notifications-mode; redundant with 'notifications' in erc-modules.
2024-01-28Un-fill format=flowed emailsKévin Le Gouguec
Letting visual-line-mode take care of wrapping.
2024-01-28Improve display of HTML emailsKévin Le Gouguec
By tricking shr into treating tables like regular blocks.
2024-01-10Use current directory as default for emacs sourcesKévin Le Gouguec
Matches my usage pattern better.
2024-01-10Always set visual-line-mode to the intended stateKévin Le Gouguec
Since the article buffer is re-used, visual-line-mode will keep its previous state if not explicitly set. So before the patch 1. I display article 1, which should be wrapped: the hook sets visual-line-mode to t, 2. I display article 2, which should not be wrapped: truncate-lines is set to t, but visual-line-mode remains t (not a biggie, truncate-lines "wins"), 3. I decide I want to wrap article 2, so I call the visual-line-mode toggling command: visual-line-mode is set to nil; seemingly nothing happens. This patch dispels the confusion.
2024-01-08Make Gnus leverage visual-line-modeKévin Le Gouguec
Set shr-fill-text to nil; this automatically causes eww to enable visual-line-mode. For Gnus, the dance is a bit more involved. Not 100% happy with where I landed, but at least I gave myself an escape hatch by rebinding C-c d v in summary buffers. Also, * lift size restriction when fontifying citations: it mostly only ever causes fontification failures when people review big patches, * tweak header order slightly, * align shr heading faces with eighters-title-* faces.
2024-01-03Whack a styling mole on LWNKévin Le Gouguec
2024-01-01Prevent percent characters from messing up my/kill commandsKévin Le Gouguec
2023-11-30Theme new transient facesKévin Le Gouguec
I like that I can get more info about transient commands via faces; wary of unleashing fruit salads though so keeping it subtle for now.
2023-11-26Keep chipping away at custom-set-variablesKévin Le Gouguec
And finally get around to setting calendar-intermonth-text. Re-implement the docstring's example using functions I actually understand.
2023-11-12Stop building --with-gconfKévin Le Gouguec
GConf is OBE; GSettings is the replacement, and the configure enables it by default. What the heck Past Kévin 🤨
2023-11-12Theme magit-diff-base facesKévin Le Gouguec
2023-10-29Stir HTML-yanking function a bitKévin Le Gouguec
2023-10-29Tone down faces for message metadataKévin Le Gouguec