chiark / gitweb /
Mark Wooding [Wed, 1 Jul 2020 18:37:24 +0000 (19:37 +0100)]
dot/lisp-init.lisp: Partially mitigate CMU CL's daft EOF behaviour.
One still needs two `^D's before it quits, but that's much better than
20.
Mark Wooding [Wed, 1 Jul 2020 18:36:33 +0000 (19:36 +0100)]
dot/lisp-init.lisp: Also squelch `*require-verbose*' on CMU CL.
Mark Wooding [Wed, 1 Jul 2020 18:35:44 +0000 (19:35 +0100)]
dot/lisp-init.lisp: Group related `setf's together.
I think I bounce back and forth on this, but at the moment I prefer them
this way.
Mark Wooding [Wed, 1 Jul 2020 19:28:10 +0000 (20:28 +0100)]
dot/lisp-init.lisp: Add missing Emacs header.
Mark Wooding [Wed, 1 Jul 2020 18:35:13 +0000 (19:35 +0100)]
dot/lisp-init.lisp: Add a missing stanza heading.
Mark Wooding [Wed, 1 Jul 2020 18:33:06 +0000 (19:33 +0100)]
dot/lisp-init.lisp: Place toplevel read-time conditionals on their own lines.
I've found that this looks better. Also, it makes it possible to run
them easily from Emacs independently of the conditional using `slime-
eval-defun' or `slime-compile-defun'.
Mark Wooding [Wed, 1 Jul 2020 18:30:36 +0000 (19:30 +0100)]
dot/lisp-init.lisp: Silence Lisp before loading ASDF.
Mark Wooding [Wed, 1 Jul 2020 18:27:59 +0000 (19:27 +0100)]
dot/lisp-init.lisp: Use a single ASDF rune everywhere.
The ASDF3 maintainers have done an excellent job of persuading everyone
to support loading ASDF in the same way.
Mark Wooding [Wed, 1 Jul 2020 18:21:10 +0000 (19:21 +0100)]
dot/lisp-init.lisp: Scatter the `export' declarations.
Mark Wooding [Tue, 4 Aug 2020 20:49:46 +0000 (21:49 +0100)]
dot/profile: Set a memory limit so leaky programs don't case swapdeath.
Mark Wooding [Tue, 4 Aug 2020 09:48:38 +0000 (10:48 +0100)]
el/dot-emacs.el: Arrange for Slime to name me better.
Mark Wooding [Mon, 22 Jun 2020 14:52:19 +0000 (15:52 +0100)]
bin/disorder-notify (watch_and_notify0): Mention when we stop.
It's rather difficult to figure out when we've stopped due to lack of
selected tracks when random play is disabled, so, err... I don't bother.
I think the server should send a specific message in its log.
Mark Wooding [Mon, 22 Jun 2020 14:52:02 +0000 (15:52 +0100)]
bin/disorder-notify (watch_and_notify0): Track state while logging.
Mark Wooding [Mon, 22 Jun 2020 14:51:48 +0000 (15:51 +0100)]
bin/disorder-notify: Insert missing space.
Mark Wooding [Mon, 22 Jun 2020 14:39:46 +0000 (15:39 +0100)]
bin/disorder-notify: Hoist `get_now_playing' above `format_now_playing'.
Mark Wooding [Sun, 26 Jul 2020 21:46:17 +0000 (22:46 +0100)]
el/dot-emacs.el: Indent string literals correctly, e.g., in Lisp mode.
I had formed the impression that my indentation machinery worked
correctly on Common Lisp docstrings, but this turns out to be completely
wrong.
Of course, my life would be better if it did work, and now it does.
Mark Wooding [Sun, 26 Jul 2020 21:45:50 +0000 (22:45 +0100)]
el/dot-emacs.el: Make fill-prefix patterns much fancier.
Now we can call out to Lisp to make decisions about where point is.
Mark Wooding [Sun, 26 Jul 2020 21:44:56 +0000 (22:44 +0100)]
el/dot-emacs.el (mdw-examine-fill-prefixes): Rewrite to be iterative.
Emacs Lisp is hopelessly deficient in terms of control flow, but this
seems like the best choice available.
Mark Wooding [Sun, 26 Jul 2020 21:41:32 +0000 (22:41 +0100)]
el/dot-emacs.el (mdw-examine-fill-prefixes): Sink below functions it uses.
It leans on `mdw-do-prefix-match', which is a terrible name, but is
positioned above it.
Mark Wooding [Sat, 27 Jun 2020 17:20:30 +0000 (18:20 +0100)]
dot/lisp-init.lisp: Actually invoke the loader.
Maybe this has changed since I wrote it. It's obviously been broken for
a long time.
Mark Wooding [Sat, 27 Jun 2020 17:19:53 +0000 (18:19 +0100)]
dot/lisp-init.lisp: Use actual variable names rather than gensyms.
This is OK now we're not fouling up the user's package.
Mark Wooding [Sat, 27 Jun 2020 17:13:42 +0000 (18:13 +0100)]
dot/lisp-init.lisp: Work in the `mdw-hacks' package rather than `cl-user'.
Mark Wooding [Sat, 27 Jun 2020 11:59:22 +0000 (12:59 +0100)]
dot/emacs: Turn on `winner-mode' to keep track of window configuration.
Mark Wooding [Sat, 27 Jun 2020 11:58:55 +0000 (12:58 +0100)]
el/dot-emacs.el: Prevent Emacs from resizing my windows without permission.
Again. Maybe this time it will take.
Mark Wooding [Sat, 27 Jun 2020 11:58:28 +0000 (12:58 +0100)]
el/dot-emacs.el: Highlight underlining as italics in news.
Mark Wooding [Sat, 27 Jun 2020 11:57:40 +0000 (12:57 +0100)]
el/dot-emacs.el: Spell-check comments and string literals while hacking.
Mark Wooding [Sat, 27 Jun 2020 11:56:27 +0000 (12:56 +0100)]
dot/swank.lisp: Fix the right margin to 77 columns in SLIME.
Mark Wooding [Fri, 26 Jun 2020 18:08:33 +0000 (19:08 +0100)]
dot/swank.lisp: Add missing final newline.
Mark Wooding [Mon, 22 Jun 2020 10:42:21 +0000 (11:42 +0100)]
dot/profile: Use control sequences rather than overstriking in man pages.
The traditional overstriking is ambiguous regarding `_^H_', which may be
underlined (italics) or bold. Pages like less(1) typically guess based
on the surrounding context, but this seriously screws up some fiddly
cases which switch between bold and underlining exactly at the boundary
between a non-underscore and an underscore.
The main Groff documentation is fairly adamant that this is the default
behaviour, but the Debian `/etc/groff/{man,mdoc}.local' files override
this unless `GROFF_SGR' is set nonempty in the environment. This is
mentioned in the `changelog.Debian' file and nowhere else.
Mark Wooding [Mon, 22 Jun 2020 10:41:12 +0000 (11:41 +0100)]
el/dot-emacs.el (Man-getpage-in-background): Don't try to split atoms.
In particular, the symbol `nil' isn't a string, so check for this
specially. Conveniently, `nil' is exactly the right list.
Mark Wooding [Mon, 22 Jun 2020 10:40:30 +0000 (11:40 +0100)]
el/dot-emacs.el (Man-getpage-in-background): Save match-data around loop.
Rather than for each item we check.
Mark Wooding [Fri, 19 Jun 2020 11:04:45 +0000 (12:04 +0100)]
firefox/stylus/salsa.debian.org.css: Suppress rule under subsection heads.
The section and subsection styles aren't very clearly distinguished.
This helps, and also declutters the page.
Mark Wooding [Fri, 19 Jun 2020 11:04:00 +0000 (12:04 +0100)]
firefox/stylus/salsa.debian.org.css: Use `.md' rather than ...
`.blob-viewer[data-type="rich"]'. Maybe this is a mistake.
Mark Wooding [Fri, 19 Jun 2020 11:03:31 +0000 (12:03 +0100)]
firefox/stylus/salsa.debian.org.css: Squash the `body' styling.
Mark Wooding [Fri, 19 Jun 2020 09:16:42 +0000 (10:16 +0100)]
firefox/stylus/: Some more style overrides.
Mark Wooding [Fri, 19 Jun 2020 09:16:18 +0000 (10:16 +0100)]
firefox/explode-stylus: Suppress a final blank line in output sections.
Mark Wooding [Fri, 19 Jun 2020 09:12:08 +0000 (10:12 +0100)]
firefox/explode-stylus: Don't fail if the output directory already exists.
Mark Wooding [Fri, 19 Jun 2020 08:40:23 +0000 (09:40 +0100)]
bin/mdw-build, etc.: Add option to suppress tests during Debian build.
Mark Wooding [Fri, 19 Jun 2020 08:38:50 +0000 (09:38 +0100)]
bin/mdw-build: Reflow the negated options list.
I haven't been very principled about this.
Mark Wooding [Fri, 19 Jun 2020 08:37:03 +0000 (09:37 +0100)]
bin/mdw-sbuild, bin/mdw-sbuild-server: Update `usage' messages.
Missing the `-k', `-p', and `-A' options.
Mark Wooding [Fri, 19 Jun 2020 08:33:58 +0000 (09:33 +0100)]
dot/e16-bindings: Define a key to highlight the mouse cursor.
A little embarrassing: on spirit's vast screen, I sometimes lose track
of where the cursor is.
Mark Wooding [Thu, 11 Jun 2020 12:36:45 +0000 (13:36 +0100)]
firefox/stylus/outlook.office.com.css: Override `min-width'.
Why is this even there? Everything works fine without. Is it just
to say `fuck you' to people who like narrow columns?
Mark Wooding [Wed, 10 Jun 2020 15:47:30 +0000 (16:47 +0100)]
dot/e16-bindings: Snap `.disorder/passwd' symlink when running Disobedience.
Nowadays, Disobedience will pass its user-configuration file name on to
`disorder-playrtp'. This has the effect that each Disobedience session
is correctly linked to its `own' matching `disorder-playrtp'
instance(s).
Mark Wooding [Wed, 10 Jun 2020 15:06:29 +0000 (16:06 +0100)]
firefox/: Add some Firefox configuration stuff.
Mark Wooding [Wed, 10 Jun 2020 15:06:05 +0000 (16:06 +0100)]
Makefile: Make `all' be phony. and add empty `clean'.
Mark Wooding [Wed, 10 Jun 2020 15:05:46 +0000 (16:05 +0100)]
bin/disorder-notify: Add a proper command-line parser, and support `-u'.
Mark Wooding [Wed, 10 Jun 2020 15:05:16 +0000 (16:05 +0100)]
bin/disorder-notify: Stop reading when we reach end-of-file.
Just a stupid bug.
Mark Wooding [Wed, 10 Jun 2020 15:03:56 +0000 (16:03 +0100)]
pl/DisOrder.pm, etc.: Split `load_config' from `connect_to_server'.
Now we can read the configuration once and use it throughout the
program. This is most useful for `disorder-notify watch', which no
longer unexpectedly tracks changes to the password-file symlink when it
reconnects.
Mark Wooding [Wed, 10 Jun 2020 15:02:04 +0000 (16:02 +0100)]
.gitignore: Arrange a place for generated files which can't be installed.
Mark Wooding [Sat, 6 Jun 2020 12:30:41 +0000 (13:30 +0100)]
git/gitignore: Ignore `.mdw-build.conf' files.
Mark Wooding [Tue, 2 Jun 2020 10:11:01 +0000 (11:11 +0100)]
bin/disorder-notify: Keep the log connection alive by sending bytes back.
This was, if it's not already clear, the main objective to the
`select'-based log loop.
Mark Wooding [Tue, 2 Jun 2020 10:09:36 +0000 (11:09 +0100)]
bin/disorder-notify: Improve error handling in the `select' loop.
Don't crash out on read errors. Report the problem in the `lost
connection' message.
Mark Wooding [Tue, 2 Jun 2020 10:06:44 +0000 (11:06 +0100)]
bin/disorder-notify: Use `select' to read the log in non-blocking mode.
This involves handling the line splitting ourselves, but this is quite
straightforward in Perl.
Mark Wooding [Tue, 2 Jun 2020 09:58:48 +0000 (10:58 +0100)]
bin/disorder-notify: Don't fork on an explicit `watch' request.
Mark Wooding [Tue, 2 Jun 2020 16:13:00 +0000 (17:13 +0100)]
bin/disorder-notify: Print the current play position in `now-playing' output.
Mark Wooding [Tue, 2 Jun 2020 10:42:51 +0000 (11:42 +0100)]
bin/disorder-autoplay: Restructure into a two-pass arrangement.
One command to fetch a server's current settings; another to update them
to match an input file.
Mark Wooding [Sat, 30 May 2020 15:14:11 +0000 (16:14 +0100)]
bin/disorder-notify: New operation to cycle through configurations.
Mark Wooding [Sat, 30 May 2020 12:16:10 +0000 (13:16 +0100)]
bin/disorder-notify: Rewrite and take over the functionality of `media-keys'.
Mark Wooding [Sat, 30 May 2020 12:12:57 +0000 (13:12 +0100)]
pl/DisOrder.pm: Extract and enhance the DisOrder protocol machinery.
Mark Wooding [Sat, 30 May 2020 12:11:40 +0000 (13:11 +0100)]
dot/profile: Publish local Perl and Python directories.
Mark Wooding [Sat, 30 May 2020 12:10:32 +0000 (13:10 +0100)]
dot/profile: Add a new function to export a variable only if it's defined.
This is useful for pathish variables: if they're exported then they're
set to empty, which implies the current directory.
Mark Wooding [Sat, 30 May 2020 12:09:01 +0000 (13:09 +0100)]
dot/profile: Fix `__mdw_addto' if variable is initially empty.
Previously it would leave an empty path component, which programs tend
to interpret (unhelpfully) as the current directory.
Mark Wooding [Sat, 30 May 2020 12:07:03 +0000 (13:07 +0100)]
Makefile: Add a facility for general symlinks.
Not used yet.
Mark Wooding [Sat, 30 May 2020 09:43:31 +0000 (10:43 +0100)]
dot/emacs: Add a binding to open a file in `view-mode'.
Why isn't there one of these already?
Mark Wooding [Tue, 26 May 2020 23:40:11 +0000 (00:40 +0100)]
dot/emacs: Use loopback pinentry if we get a choice.
Alas, Emacs 24 doesn't understand this setting. Worse, Emacs and
`pinentry-curses' (or the `curses' mode of other pinentries) fight over
the terminal in a rather disastrous way.
Mark Wooding [Tue, 26 May 2020 21:51:25 +0000 (22:51 +0100)]
dot/gnus-local.el.distorted, dot/vm: Use an encrypted credential file.
Mark Wooding [Tue, 26 May 2020 21:33:46 +0000 (22:33 +0100)]
dot/gnus-local.el.distorted: Use `nnimap-user' to distinguish credentials.
This lets us consolidate some entries in the `authinfo' database, and
removes some of the bizarre Gnus-specific nicknames. Alas, `VM' is
rather old-fashioned and can't look up by user name, so some of the old
fake hostnames are still in use.
Mark Wooding [Tue, 26 May 2020 15:29:17 +0000 (16:29 +0100)]
bin/wakey.sh: Treat a zero `active window' as being some foreign thing.
`xpra' reports a window outside of its session as having id `0' But
`xwininfo' treats this as a request to choose a window interactively,
which is not what we want.
Mark Wooding [Tue, 26 May 2020 15:28:12 +0000 (16:28 +0100)]
bin/wakey.sh: Cope if `_NET_ACTIVE_WINDOW' is `CARDINAL' rather than `WINDOW'.
Helpfully, `xprop' shows the value in an entirely different way in that
case. And `xpra' uses `CARDINAL'.
Mark Wooding [Tue, 26 May 2020 09:20:35 +0000 (10:20 +0100)]
bin/disorder-switch-config, bin/disorder-propagate-autoplay: New sripts.
Mark Wooding [Tue, 26 May 2020 09:18:50 +0000 (10:18 +0100)]
dot/emacs: Turn off `mouse-autoselect-window'.
I think I've given this a fair shake and decided that I don't like it.
Honestly, I'm a bit surprised: I expected to have a strong feeling about
this one way or the other, but I don't. It's just a tiny bit annoying.
Anyway, I think it was a worthwhile experiment.
Mark Wooding [Sun, 24 May 2020 15:23:42 +0000 (16:23 +0100)]
dot/gnus.el: Include an abbreviated date in summary lines.
Mark Wooding [Sun, 24 May 2020 15:22:47 +0000 (16:22 +0100)]
dot/gnus.el: Reformat some long `setq' forms.
When I can't fit the place and value on the same line, indent the value
by two spaces.
Mark Wooding [Sun, 24 May 2020 12:32:33 +0000 (13:32 +0100)]
dot/gnus.el: Don't skip around wildly in the `Group' buffer.
I have a huge number of folders, most of which are fully caught-up, and
fairly often show them all. It's very annoying when Gnus decides to
move point a long way away from where I was last working.
Of course, Gnus is configurable in this regard. So configure it.
Mark Wooding [Sun, 24 May 2020 03:24:07 +0000 (04:24 +0100)]
el/dot-emacs.el: Fix phase-separation bug.
Previously, the macro would expect the parent style to exist at
expansion time, which works at the REPL, but not in the byte compiler.
Instead, expand to code to handle inheritance at runtime.
Mark Wooding [Sun, 24 May 2020 03:23:37 +0000 (04:23 +0100)]
dot/Xdefaults: Make old Xt-based programs be white-on-dark.
Mark Wooding [Sun, 24 May 2020 03:21:16 +0000 (04:21 +0100)]
dot/Xdefaults, Makefile: Replace `putty-defaults' with X resources.
This is more cumbersome to set up, but ends up being more useful. Using
X resources, it's possible to have a number of different profiles for
`pterm' which can be switched using the `-name' option. Also, this
allows for overriding on the command-line using `-xrm', which doesn't
work if the settings are defined in `pterm''s own configuration file.
Mark Wooding [Sun, 24 May 2020 01:54:01 +0000 (02:54 +0100)]
dot/emacs: Add key bindings for VM.
Mark Wooding [Sun, 24 May 2020 01:53:50 +0000 (02:53 +0100)]
dot/vm: Configure displaying messages as threads.
Mark Wooding [Sun, 24 May 2020 01:52:54 +0000 (02:52 +0100)]
dot/vm: Set a `From' header when composing mail.
We have `mail-envelope-from' set to `header', which doesn't work unless
there's, well, a header.
Mark Wooding [Sun, 24 May 2020 01:52:27 +0000 (02:52 +0100)]
dot/vm: Configure IMAP support.
Mark Wooding [Sun, 24 May 2020 01:50:31 +0000 (02:50 +0100)]
dot/vm: Make `vm-reply-ignored-addresses' patterns match correctly.
They're taken from the BBDB patterns, but BBDB only matches the actual
mailbox part of an address, while VM wants to match the entire address
string. Strip off leading `^' and trailing `$', and wrap `\<...\>'
around instead.
Mark Wooding [Sun, 24 May 2020 01:49:54 +0000 (02:49 +0100)]
dot/vm: Make `vm-reply-ignored-addresses' be a list.
Otherwise you get a type error rather than anything useful.
Mark Wooding [Sun, 24 May 2020 01:48:18 +0000 (02:48 +0100)]
dot/vm: Actually provide a value for `vm-delete-empty-folders'.
This should have been a syntax error.
Mark Wooding [Sun, 24 May 2020 00:42:17 +0000 (01:42 +0100)]
dot/vm: Use Emacs's built-in MIME decoding machinery.
In particular, the `mimencode' program doesn't actually exist any more.
Mark Wooding [Sun, 24 May 2020 00:41:38 +0000 (01:41 +0100)]
dot/gnus-local.el.distorted: Add rule for Google leak.
Mark Wooding [Sat, 23 May 2020 21:56:40 +0000 (22:56 +0100)]
dot/gnus-local.el.distorted: Expand the `spotify' and `gandi' patterns.
Found that some mail was being misclassified.
Mark Wooding [Sat, 23 May 2020 21:52:50 +0000 (22:52 +0100)]
(Emacs Lisp): Use `...?' rather than `\(...\|\)' in regular expressions.
Mark Wooding [Wed, 20 May 2020 16:03:25 +0000 (17:03 +0100)]
dot/emacs: Don't snarf addresses from Microsoft's `Junk Email' folder.
Mark Wooding [Wed, 20 May 2020 15:58:58 +0000 (16:58 +0100)]
dot/emacs: Split regex into little pieces.
This one is about to get messier.
Mark Wooding [Wed, 20 May 2020 13:35:16 +0000 (14:35 +0100)]
el/dot-emacs.el: And the last use of `mdw-define-c-style'.
:-(
Mark Wooding [Wed, 20 May 2020 13:32:31 +0000 (14:32 +0100)]
dot/emacs: Bind `backspace' in `isearch' mode.
Mark Wooding [Wed, 20 May 2020 13:32:06 +0000 (14:32 +0100)]
el/dot-emacs.el: Add missing parent argument to `mdw-define-c-style' calls.
Missed these the first time.
Mark Wooding [Tue, 19 May 2020 10:51:58 +0000 (11:51 +0100)]
el/dot-emacs.el: Split out a `mdw-trustonic-basic-c' style.
Some parts of the codebase have a more sensible style where arguments
are aligned properly.
Mark Wooding [Tue, 19 May 2020 10:48:30 +0000 (11:48 +0100)]
el/dot-emacs.el: Improve `mdw-define-c-style' to support simple inheritance.
Delete the duplicate settings in `mdw-trustonic-c'.
Mark Wooding [Tue, 19 May 2020 10:45:18 +0000 (11:45 +0100)]
el/dot-emacs.el: Hoist `mdw-c' to the top as the primary style.
Mark Wooding [Mon, 18 May 2020 03:53:32 +0000 (04:53 +0100)]
dot/emacs: Fix DEL to work properly in `isearch' mode.
Now it actually deletes a single character, rather than doing some
random thing.
The old binding is still available as M-DEL, should I ever want it.
Mark Wooding [Sun, 17 May 2020 21:24:48 +0000 (22:24 +0100)]
bin/wakey.sh: Cope if the `_NET_ACTIVE_WINDOW' property is missing.
Mark Wooding [Sun, 17 May 2020 11:34:06 +0000 (12:34 +0100)]
dot/parallel-hosts: Add missing entry for `mango'.
Mark Wooding [Sun, 17 May 2020 11:33:31 +0000 (12:33 +0100)]
dot/parallel-hosts: Introduce `@root' group for all things I maintain.