chiark / gitweb /
profile
6 years agodot/inputrc: Make C-u delete the whole line.
Mark Wooding [Sun, 13 Aug 2017 13:49:19 +0000 (14:49 +0100)]
dot/inputrc: Make C-u delete the whole line.

Not just the portion between the start of the line and point.  And there
was much rejoicing.

6 years agoMakefile: Byte-compile Emacs Lisp files silently.
Mark Wooding [Sun, 13 Aug 2017 03:50:44 +0000 (04:50 +0100)]
Makefile: Byte-compile Emacs Lisp files silently.

Unless they fail, in which case print the captured log.

6 years agoMakefile: Fix a stupid typo.
Mark Wooding [Sun, 13 Aug 2017 03:32:36 +0000 (04:32 +0100)]
Makefile: Fix a stupid typo.

6 years agoMakefile: Introduce dependencies between Emacs Lisp files.
Mark Wooding [Sun, 13 Aug 2017 03:31:47 +0000 (04:31 +0100)]
Makefile: Introduce dependencies between Emacs Lisp files.

Mention that `dot-emacs.el' depends on `make-regexp.el' so that we don't
try compiling things in the wrong order.

6 years agoMakefile: Don't write `.el' explicitly on all of the Emacs Lisp names.
Mark Wooding [Sun, 13 Aug 2017 03:25:14 +0000 (04:25 +0100)]
Makefile: Don't write `.el' explicitly on all of the Emacs Lisp names.

Some parts of the makefile need to talk about filenames, but don't do
that in the rest.

6 years agoUse a proper makefile rather than the `setup' script.
Mark Wooding [Sun, 13 Aug 2017 00:13:54 +0000 (01:13 +0100)]
Use a proper makefile rather than the `setup' script.

And there was rejoicing.  Surprisingly, the makefile is slightly shorter
than the script used to be, but all of the functionality is there.

Things are, unsurprisingly, organized a little differently.  I can
gather definitions together thematically, as opposed to grouping
according to the technicalities of installation.  The path hacks --
well, only the ssh one, because there aren't any others -- have moved
under bin/ now, because that means I can use the same machinery as the
other script links.

The makefile is also easier to tweak its behaviour to cope with strange
situations.  So that's nice.

6 years agodot/inputrc: Miscellaneous tweaks I didn't know about before.
Mark Wooding [Fri, 11 Aug 2017 12:49:42 +0000 (13:49 +0100)]
dot/inputrc: Miscellaneous tweaks I didn't know about before.

  * Don't ding the bell for completion or cursor movement out-of-bounds.

  * Highlight completed filenames using the prevailing ls(1)
    colours.  (But continue not highlighting the existing prefix.)

  * Do the bracketed-paste thing to make mis-aimed pastes less
    dangerous.  (This may also cause some annoyance, but I think I'm
    willing to tolerate that for the extra safety.)

  * Use Readline macros to bind M-SPC to a simulacrum of `just-one-
    space'.  The documentation of Readline macros is rather unclear
    about which level the macro characters are inserted.  It turns out
    that they're keyboard macros.

6 years agodot/zshrc: Inhibit flow control (XON/XOFF) while shell is reading input.
Mark Wooding [Fri, 11 Aug 2017 12:48:22 +0000 (13:48 +0100)]
dot/zshrc: Inhibit flow control (XON/XOFF) while shell is reading input.

Behaviour while some child process group is running is unchanged.

6 years agobin/mdw-sbuild-server: Accept cross-build specs SUITE-TARGET/HOST.
Mark Wooding [Wed, 9 Aug 2017 21:52:57 +0000 (22:52 +0100)]
bin/mdw-sbuild-server: Accept cross-build specs SUITE-TARGET/HOST.

That is, build for SUITE running on TARGET architecture, using a given
HOST.  This requires multiarch magic, and is unlikely to work well on
old SUITEs.

6 years agodot/zshenv, setup: Arrange to run the profile code after SSH.
Mark Wooding [Wed, 9 Aug 2017 19:47:16 +0000 (20:47 +0100)]
dot/zshenv, setup: Arrange to run the profile code after SSH.

This way, incoming SSH connections get the benefit of the proper `$PATH'
and so on.

6 years agodot/bashrc: Rename the guard variable back to `__mdw_bashrc'.
Mark Wooding [Wed, 9 Aug 2017 19:46:16 +0000 (20:46 +0100)]
dot/bashrc: Rename the guard variable back to `__mdw_bashrc'.

I think I thought it was going to move with the common definitions, but
it didn't.

Also, sneakily, set the dummy value to `t'.

6 years agoel/dot-emacs.el: Don't prompt to save other buffers on WIP save.
Mark Wooding [Wed, 9 Aug 2017 09:55:55 +0000 (10:55 +0100)]
el/dot-emacs.el: Don't prompt to save other buffers on WIP save.

I have `magit-wip-after-save-mode' on, to save my changes into a magic
Git branch while I'm working.  This stimulates a commit on each save,
and Magit is assiduous in asking whether I want to save other buffers
visiting files tracked by the project.  I don't -- and the confirmation
prompt discombobulates me every time it appears.  Tell it this by
advising `magit-wip-commit-buffer-file' appropriately.

6 years agodot/ercrc.el: Move loading local stuff to the end.
Mark Wooding [Wed, 23 Mar 2016 10:32:22 +0000 (10:32 +0000)]
dot/ercrc.el: Move loading local stuff to the end.

Load `local' after `auth'.  I generally expect `auth' to be copied but
not modified, and `local' may want to override its settings, e.g., to
prevent auto-greeting bots and suchlike.

6 years agodot/ercrc.el: This is the modern way to configure autojoin.
Mark Wooding [Wed, 23 Mar 2016 10:31:29 +0000 (10:31 +0000)]
dot/ercrc.el: This is the modern way to configure autojoin.

It's on by default, it seems, but just to make sure...

6 years agodot/ercrc.el: Remove IRC servers I can't talk to any more.
Mark Wooding [Wed, 23 Mar 2016 10:30:49 +0000 (10:30 +0000)]
dot/ercrc.el: Remove IRC servers I can't talk to any more.

6 years agodot/infokey: Configure the standalone Info reader a bit.
Mark Wooding [Tue, 8 Aug 2017 23:32:03 +0000 (00:32 +0100)]
dot/infokey: Configure the standalone Info reader a bit.

6 years agodot/profile: Install some path hacks by default at login time.
Mark Wooding [Tue, 8 Aug 2017 22:59:35 +0000 (23:59 +0100)]
dot/profile: Install some path hacks by default at login time.

This way they'll also be picked up by Emacs.  Which is nice.

6 years agodot/shell-rc: Get user name from id(1) if it's not in the environment.
Mark Wooding [Tue, 8 Aug 2017 22:59:02 +0000 (23:59 +0100)]
dot/shell-rc: Get user name from id(1) if it's not in the environment.

6 years agoel/dot-emacs.el: Fix bungled `LD_PRELOAD' hack removal in Eshell.
Mark Wooding [Tue, 8 Aug 2017 22:25:11 +0000 (23:25 +0100)]
el/dot-emacs.el: Fix bungled `LD_PRELOAD' hack removal in Eshell.

6 years agodot/shrc: Put working directory into plain-sh prompts.
Mark Wooding [Tue, 8 Aug 2017 16:50:36 +0000 (17:50 +0100)]
dot/shrc: Put working directory into plain-sh prompts.

Apparently dash does process substitution on PS1.  Yay.

6 years agodot/bashrc, dot/shell-rc: Set TMPDIR as common per-shell behaviour.
Mark Wooding [Tue, 8 Aug 2017 16:39:01 +0000 (17:39 +0100)]
dot/bashrc, dot/shell-rc: Set TMPDIR as common per-shell behaviour.

This turns out to be necessary to not have pterm forget the temporary
directory, so make it common behaviour.

6 years agodot/zshrc: Tweak history handling.
Mark Wooding [Tue, 8 Aug 2017 00:50:58 +0000 (01:50 +0100)]
dot/zshrc: Tweak history handling.

Keep shell histories synchronized.  Elide duplicate entries.

6 years agodot/putty-defaults: Try a blinking bar cursor for size.
Mark Wooding [Tue, 8 Aug 2017 00:19:20 +0000 (01:19 +0100)]
dot/putty-defaults: Try a blinking bar cursor for size.

I obviously like it in Emacs, but terminals are a bit different.

6 years agodot/zshrc: Make `pound-insert' (M-#) work.
Mark Wooding [Tue, 8 Aug 2017 00:07:41 +0000 (01:07 +0100)]
dot/zshrc: Make `pound-insert' (M-#) work.

6 years agodot/zshrc: Make M-p and M-n work properly.
Mark Wooding [Tue, 8 Aug 2017 00:09:10 +0000 (01:09 +0100)]
dot/zshrc: Make M-p and M-n work properly.

Just searching for a matching first word is silly.

6 years agodot/zshrc: `delete-horizontal-space' (M-\) and `just-one-space' (M-SPC).
Mark Wooding [Mon, 7 Aug 2017 23:57:36 +0000 (00:57 +0100)]
dot/zshrc: `delete-horizontal-space' (M-\) and `just-one-space' (M-SPC).

6 years agodot/zshrc: Fix word motion to match my expectations.
Mark Wooding [Mon, 7 Aug 2017 23:42:46 +0000 (00:42 +0100)]
dot/zshrc: Fix word motion to match my expectations.

Now `words' (following usual Emacs binding notions) work similar to the
Bash defaults, while `sexps' are whole shell arguments.  This isn't
quite as good as I'd like, but it seems good enough at least for now.

6 years agodot/emacs: Set the right hook variable to hack IELM.
Mark Wooding [Mon, 7 Aug 2017 12:02:35 +0000 (13:02 +0100)]
dot/emacs: Set the right hook variable to hack IELM.

Unfortunately, `inferior-emacs-lisp-mode-hook' is a decoy, and changes
to it get clobbered when IELM actually loads.  Set the proper hook
instead.

6 years agodot/emacs: Turn on bracketed-paste support if we can.
Mark Wooding [Mon, 7 Aug 2017 11:58:15 +0000 (12:58 +0100)]
dot/emacs: Turn on bracketed-paste support if we can.

This is on by default in Emacs 25, which I don't have yet.  Otherwise,
clone https://github.com/hchbaw/bracketed-paste.el and put the resulting
thing somewhere in the Emacs load-path.

6 years agoel/dot-emacs.el: Don't leak `LD_PRELOAD' into some subprocesses.
Mark Wooding [Sun, 6 Aug 2017 02:23:20 +0000 (03:23 +0100)]
el/dot-emacs.el: Don't leak `LD_PRELOAD' into some subprocesses.

Currently, compile, term, shell, eshell, but there may be more.
Basically, places where Emacs runs user commands rather than its own
made-up stuff.

6 years agodot/zprofile, dot/zshrc: Configuration for Zsh.
Mark Wooding [Sun, 6 Aug 2017 00:03:35 +0000 (01:03 +0100)]
dot/zprofile, dot/zshrc: Configuration for Zsh.

I'm trying this out to see whether I like it.  Current impressions are
good, but time will tell.

6 years agodot/*: Major shake-up of shell configuration.
Mark Wooding [Sat, 5 Aug 2017 23:56:24 +0000 (00:56 +0100)]
dot/*: Major shake-up of shell configuration.

Split out the major logic of session startup and shell configuration
into shell-neutral files `dot/profile' and `dot/shell-rc'.  There's a
little support now for pleasant `dash' sessions, but since `dash'
doesn't have a line editor or any way of varying the prompt dynamically,
it's still not marvellous.

Various things which have also been changed:

  * The prompt setup has been heavily refactored.  There's now a piece
    which calculates most of the major pieces, and another piece spliced
    into the shell's command-loop machinery to insert stuff like the Git
    status and previous exit code.  This also takes care of setting and
    clearing the Screen status, so that's much cleaner now.  (In
    particular, this means that Screen doesn't say that it's running
    Bash when it isn't really.)

  * Many of the shell functions have been revised to improve
    portability.  The old hack behind Solaris man(1) has gone
    because (a) it's hard to write portably, and (b) I don't use Solaris
    any more anyway.

6 years agodot/dircolors: Turn on colouring for Screen.
Mark Wooding [Sat, 5 Aug 2017 23:54:52 +0000 (00:54 +0100)]
dot/dircolors: Turn on colouring for Screen.

6 years agodot/emacs: Make IELM feel more like Lisp editing.
Mark Wooding [Sat, 5 Aug 2017 23:54:07 +0000 (00:54 +0100)]
dot/emacs: Make IELM feel more like Lisp editing.

Do syntax highlighting and other setup suitable for a programming mode.

6 years agoel/dot-emacs.el: Hack on `comint-line-beginning-position'.
Mark Wooding [Sat, 5 Aug 2017 23:52:05 +0000 (00:52 +0100)]
el/dot-emacs.el: Hack on `comint-line-beginning-position'.

It's quite badly broken in the case where it's using fields to mark
prompts: it goes straight to the start of the entire input area, rather
than to the start of the current line if there's more than one.  In
particular, this confuses IELM, which uses `comint-bol' to decide
whether to indent when you press TAB.

Fix this bogosity.

6 years agoel/dot-emacs.el (mdw-misc-mode-config): Don't override RET in comint modes.
Mark Wooding [Sat, 5 Aug 2017 23:51:30 +0000 (00:51 +0100)]
el/dot-emacs.el (mdw-misc-mode-config): Don't override RET in comint modes.

It's needed for entering input lines.

6 years agoel/dot-emacs.el (mdw-misc-mode-config): Check for derived modes.
Mark Wooding [Sat, 5 Aug 2017 23:50:26 +0000 (00:50 +0100)]
el/dot-emacs.el (mdw-misc-mode-config): Check for derived modes.

When inspecting modes to decide what to do (e.g., overriding
keybindings), use `derived-mode-p' to check for derived modes as well as
just the exact modes of interest.

6 years agoel/dot-emacs.el: Squish Flymake patterns a bit.
Mark Wooding [Thu, 3 Aug 2017 11:40:13 +0000 (12:40 +0100)]
el/dot-emacs.el: Squish Flymake patterns a bit.

This is actually part of an abortive attempt to flymake assembler code.

6 years agodot/putty-defaults: Show bold as colour and font.
Mark Wooding [Thu, 3 Aug 2017 11:28:04 +0000 (12:28 +0100)]
dot/putty-defaults: Show bold as colour and font.

This brightens things up a bit, in a good way.  I think.

6 years agodot/Xdefaults: Some xterm fiddling.
Mark Wooding [Thu, 3 Aug 2017 11:25:47 +0000 (12:25 +0100)]
dot/Xdefaults: Some xterm fiddling.

Turn off the pointless internal border.  Declare 256-colour support in
the $TERM variable.

6 years agoel/dot-emacs.el: Initial, rather sketchy, Flymake hacking.
Mark Wooding [Thu, 3 Aug 2017 11:03:49 +0000 (12:03 +0100)]
el/dot-emacs.el: Initial, rather sketchy, Flymake hacking.

Flymake seems useful, but its defaults are woeful.  See if we can kick
it into shape without having to rewrite too much of it.

Currently there's C support, which seems to work; C header support,
which isn't even slightly written; and Perl copied from upstream.

6 years agoel/dot-emacs.el: Move `mdw-compile' into its own section.
Mark Wooding [Thu, 3 Aug 2017 09:51:58 +0000 (10:51 +0100)]
el/dot-emacs.el: Move `mdw-compile' into its own section.

I'll add more stuff to this currently rather small section soon.

6 years agoel/dot-emacs.el: Get `re-builder' to use `string' syntax by default.
Mark Wooding [Thu, 3 Aug 2017 09:50:45 +0000 (10:50 +0100)]
el/dot-emacs.el: Get `re-builder' to use `string' syntax by default.

It can generate the read-syntax version from that, and I'd rather not
have to type the backslashes unless I have to.

6 years agodot/emacs: Defeat silly completion cycling in `pcomplete' and Eshell.
Mark Wooding [Wed, 2 Aug 2017 23:48:25 +0000 (00:48 +0100)]
dot/emacs: Defeat silly completion cycling in `pcomplete' and Eshell.

6 years agodot/emacs: Arrange that view-mode kills the buffer on exit by default.
Mark Wooding [Wed, 2 Aug 2017 22:00:56 +0000 (23:00 +0100)]
dot/emacs: Arrange that view-mode kills the buffer on exit by default.

Yay.

6 years agodot/emacs: Turn on more Ido things!
Mark Wooding [Wed, 2 Aug 2017 22:00:42 +0000 (23:00 +0100)]
dot/emacs: Turn on more Ido things!

6 years agodot/emacs: Don't stop blinking the cursor.
Mark Wooding [Wed, 2 Aug 2017 21:59:08 +0000 (22:59 +0100)]
dot/emacs: Don't stop blinking the cursor.

So I wasn't imagining it, and it's not a strange bug.  Good.

6 years agodot/emacs: Inhibit Ido automatic merging with recent directories.
Mark Wooding [Wed, 2 Aug 2017 09:19:19 +0000 (10:19 +0100)]
dot/emacs: Inhibit Ido automatic merging with recent directories.

Apparently one can provoke merging manually using M-s.

6 years agodot/ercrc.el: Hack `mdw-pushnew-replace' for newer Emacsen.
Mark Wooding [Tue, 1 Aug 2017 14:25:11 +0000 (15:25 +0100)]
dot/ercrc.el: Hack `mdw-pushnew-replace' for newer Emacsen.

Irritatingly, Emacs 24's `cl' has entirely different generalized-
variable support and it's not even slightly compatible.  Fortunately,
the new thing is much simpler.

Factor out the calculation into a function, and modify the macro to pick
the right way to do the plumbing.

6 years agoel/dot-emacs.el: Fix bungled face-spec.
Mark Wooding [Tue, 1 Aug 2017 14:03:49 +0000 (15:03 +0100)]
el/dot-emacs.el: Fix bungled face-spec.

6 years agodot/emacs: Hack around Emacs and screen terminal naming conventions.
Mark Wooding [Tue, 1 Aug 2017 13:48:43 +0000 (14:48 +0100)]
dot/emacs: Hack around Emacs and screen terminal naming conventions.

6 years agoel/dot-emacs.el: Fix conflict between face and overlay variable names.
Mark Wooding [Tue, 1 Aug 2017 13:48:17 +0000 (14:48 +0100)]
el/dot-emacs.el: Fix conflict between face and overlay variable names.

6 years agodot/ipython-config.py: Fix the disastrous matching-paren highlight.
Mark Wooding [Tue, 1 Aug 2017 12:15:08 +0000 (13:15 +0100)]
dot/ipython-config.py: Fix the disastrous matching-paren highlight.

6 years agoel/dot-emacs.el: Fix `show-paren-match' default colour.
Mark Wooding [Tue, 1 Aug 2017 12:14:22 +0000 (13:14 +0100)]
el/dot-emacs.el: Fix `show-paren-match' default colour.

Try not to rely on closest-colour guesswork, even though it seems to
work pretty well.

6 years agodot/dircolors: Set colours on `xterm-256color' terminals.
Mark Wooding [Tue, 1 Aug 2017 12:04:06 +0000 (13:04 +0100)]
dot/dircolors: Set colours on `xterm-256color' terminals.

Or we get the defaults, which aren't so nice.

6 years agoel/dot-emacs.el: Graphic displays have fringes, not just X.
Mark Wooding [Tue, 1 Aug 2017 11:46:44 +0000 (12:46 +0100)]
el/dot-emacs.el: Graphic displays have fringes, not just X.

6 years agoel/dot-emacs.el: Overhaul the point-overlay stuff.
Mark Wooding [Tue, 1 Aug 2017 11:41:34 +0000 (12:41 +0100)]
el/dot-emacs.el: Overhaul the point-overlay stuff.

  * Make it capable of displaying a marker in both fringes, and turn
    this on by default.

  * Drop the overlay over the whole line, not just at point.  This
    actually simplifies the positioning code because it doesn't have to
    special-case point at the beginning of the line any more.

  * Lower the overlay priority so that the transient region is still
    visible.

  * Set a face in the overlay so that the line stands out on terminals
    which can't display fringes.

  * Sink the code until after the face machinery, so that we can use it
    for setting the default face.

6 years agoel/dot-emacs.el: Tweak face settings for 256-colour terminals.
Mark Wooding [Tue, 1 Aug 2017 11:40:17 +0000 (12:40 +0100)]
el/dot-emacs.el: Tweak face settings for 256-colour terminals.

Mostly don't distinguish on the basis of display type (tty versus X),
but on the number of colours it can display.  This means we now get the
full panoply in capable terminals.

6 years agodot/ipython-config.py: Fix number face to actually be yellow.
Mark Wooding [Tue, 1 Aug 2017 11:39:01 +0000 (12:39 +0100)]
dot/ipython-config.py: Fix number face to actually be yellow.

Turns out it was faithfully producing the unpleasant lime-green colour
I'd inexplicably asked for.

6 years agodot/putty-defaults: Report terminal as having 256 colours.
Mark Wooding [Tue, 1 Aug 2017 11:38:37 +0000 (12:38 +0100)]
dot/putty-defaults: Report terminal as having 256 colours.

6 years agodot/emacs: Configure `ido' to do completing reads for Gtags.
Mark Wooding [Fri, 28 Jul 2017 14:48:36 +0000 (15:48 +0100)]
dot/emacs: Configure `ido' to do completing reads for Gtags.

There'll be other things to add to this now I've got a taste for it.

6 years agodot/emacs: Bind `C-c t r' to `gtags-find-rtag' for reverse lookups.
Mark Wooding [Fri, 28 Jul 2017 14:47:55 +0000 (15:47 +0100)]
dot/emacs: Bind `C-c t r' to `gtags-find-rtag' for reverse lookups.

Move `timeclock-reread-log' out of the way.

6 years agodot/emacs: Add key-bindings for Gtags.
Mark Wooding [Fri, 28 Jul 2017 12:46:26 +0000 (13:46 +0100)]
dot/emacs: Add key-bindings for Gtags.

Now that the Debian version actually works a little bit.

6 years agodot/ipython-config.py: Don't colour exception-class names specially.
Mark Wooding [Fri, 28 Jul 2017 12:36:04 +0000 (13:36 +0100)]
dot/ipython-config.py: Don't colour exception-class names specially.

6 years agoel/dot-emacs.el: Define stub mode for editing Pyrex.
Mark Wooding [Thu, 27 Jul 2017 10:00:52 +0000 (11:00 +0100)]
el/dot-emacs.el: Define stub mode for editing Pyrex.

I'm not using the `official' one any more, because it depends on Pymacs
and I'm just not going there.

6 years agoel/dot-emacs.el: Add missing Pyrex keywords `enum' and `property'.
Mark Wooding [Thu, 27 Jul 2017 10:00:35 +0000 (11:00 +0100)]
el/dot-emacs.el: Add missing Pyrex keywords `enum' and `property'.

6 years agoel/dot-emacs.el: We depend on `mpc' macros at compile time.
Mark Wooding [Tue, 25 Jul 2017 17:18:00 +0000 (18:18 +0100)]
el/dot-emacs.el: We depend on `mpc' macros at compile time.

6 years agoel/dot-emacs.el: Include a (completely trivial) mode for Sod.
Mark Wooding [Mon, 24 Jul 2017 11:16:14 +0000 (12:16 +0100)]
el/dot-emacs.el: Include a (completely trivial) mode for Sod.

And stitch it into the `auto-mode-alist'.

6 years agoel/dot-emacs.el: Fix tab key in TeX-ish modes.
Mark Wooding [Mon, 24 Jul 2017 11:12:39 +0000 (12:12 +0100)]
el/dot-emacs.el: Fix tab key in TeX-ish modes.

I think having TAB bound to `indent-for-tab-command' is after all a good
thing, and I should put it back.  But `indent-relative' is also useful,
so put that on M-TAB.  This means defeating Flyspell's use of this key
to mean the same as C-. (`flyspell-auto-correct-word'), which (a) is
already on a different key too, and (b) I didn't know existed so I'm not
going to miss it.

6 years agoel/dot-emacs.el: Fix fontification for Rust keywords and builtins.
Mark Wooding [Sun, 23 Jul 2017 11:18:23 +0000 (12:18 +0100)]
el/dot-emacs.el: Fix fontification for Rust keywords and builtins.

6 years agodot/emacs: Add keybinding for Magit blame.
Mark Wooding [Sun, 23 Jul 2017 11:18:06 +0000 (12:18 +0100)]
dot/emacs: Add keybinding for Magit blame.

6 years agodot/emacs, el/dot-emacs.el: Key bindings for MPC volume twiddling.
Mark Wooding [Fri, 21 Jul 2017 14:18:44 +0000 (15:18 +0100)]
dot/emacs, el/dot-emacs.el: Key bindings for MPC volume twiddling.

6 years agodot-emacs.el: Fix complicated prefix-argument handling for compilation.
Mark Wooding [Fri, 21 Jul 2017 08:38:21 +0000 (09:38 +0100)]
dot-emacs.el: Fix complicated prefix-argument handling for compilation.

When I was setting this up, I stupidly forgot that the default is 1, not
zero.  Use the 8 bit, not the 1 bit, for interactiveness.

6 years agodot/emacs: Start configuring Dired's automatic command suggestions.
Mark Wooding [Thu, 20 Jul 2017 11:24:56 +0000 (12:24 +0100)]
dot/emacs: Start configuring Dired's automatic command suggestions.

6 years agodot/emacs, el/dot-emacs.el: Improve compilation machinery.
Mark Wooding [Thu, 20 Jul 2017 10:18:28 +0000 (11:18 +0100)]
dot/emacs, el/dot-emacs.el: Improve compilation machinery.

Allow setting of a compilation directory, by making the prefix-argument
machinery much more complicated.

6 years agoel/dot-emacs.el: Custom playlist add and remove.
Mark Wooding [Thu, 20 Jul 2017 00:25:37 +0000 (01:25 +0100)]
el/dot-emacs.el: Custom playlist add and remove.

These honour prefix argument or active region.  I've been bitten too
often by this.  There's quite a lot of fiddly stuff to preserve
the (invisible but significant) order of tracks in the selection.

6 years agoel/dot-emacs.el: Redefine the playlist header line to preserve mark.
Mark Wooding [Thu, 20 Jul 2017 00:23:32 +0000 (01:23 +0100)]
el/dot-emacs.el: Redefine the playlist header line to preserve mark.

The definition of the header line has some Lisp code which inserts stuff
into a temporary buffer, and that sets `deactivate-mark'.  Preserve this
variable so the mark remains active after cursor movement.

6 years agoel/dot-emacs.el: Restore mode lines to tag-browser windows.
Mark Wooding [Thu, 20 Jul 2017 00:22:43 +0000 (01:22 +0100)]
el/dot-emacs.el: Restore mode lines to tag-browser windows.

It's hard to tell which is the selected window without the mode lines.

6 years agoel/dot-emacs.el: Bind some additional MPC keys.
Mark Wooding [Thu, 20 Jul 2017 00:21:50 +0000 (01:21 +0100)]
el/dot-emacs.el: Bind some additional MPC keys.

Search (didn't know that was there), and jump-to, which I lost when I
replaced the keymap.

6 years agoel/dot-emacs.el: Don't `refresh' the selection after selecting tracks.
Mark Wooding [Thu, 20 Jul 2017 00:19:47 +0000 (01:19 +0100)]
el/dot-emacs.el: Don't `refresh' the selection after selecting tracks.

It's unnecessary, and it scrambles the order in an irritating way.

6 years agoel/dot-emacs.el: Don't try to select a track after the last line.
Mark Wooding [Thu, 20 Jul 2017 00:18:46 +0000 (01:18 +0100)]
el/dot-emacs.el: Don't try to select a track after the last line.

6 years agodot/emacs, el/dot-emacs.el: Show MPC status after play, previous, next.
Mark Wooding [Thu, 20 Jul 2017 00:17:08 +0000 (01:17 +0100)]
dot/emacs, el/dot-emacs.el: Show MPC status after play, previous, next.

Wrap the transport operations in a macro which ensures that the library
is loaded, and echoes the status afterwards.

6 years agoel/dot-emacs.el: Autoload `mpc-stop', not `mpc-pause'.
Mark Wooding [Thu, 20 Jul 2017 00:15:40 +0000 (01:15 +0100)]
el/dot-emacs.el: Autoload `mpc-stop', not `mpc-pause'.

We don't need the latter, but the former actually has a global key bound
to it.

6 years agoel/dot-emacs.el: Add hack for running programs from Dired buffers.
Mark Wooding [Wed, 19 Jul 2017 02:13:28 +0000 (03:13 +0100)]
el/dot-emacs.el: Add hack for running programs from Dired buffers.

Idea from Ian Jackson's dotfiles.

6 years agoel/dot-emacs.el: Make MPC be less annoying.
Mark Wooding [Tue, 18 Jul 2017 23:55:14 +0000 (00:55 +0100)]
el/dot-emacs.el: Make MPC be less annoying.

Add things to and remove things from the playlist; mark and unmark items
direddishly.  It's not quite right, but it'll improve as I get irritated
with it again.

6 years agoemacs: Turn off `ido-use-filename-at-point'.
Mark Wooding [Mon, 17 Jul 2017 14:21:30 +0000 (15:21 +0100)]
emacs: Turn off `ido-use-filename-at-point'.

It's too stupid to be useful rather than an annoyance.

6 years agoel/dot-emacs.el: Use `string-to-number' instead of `parse-integer'.
Mark Wooding [Mon, 17 Jul 2017 12:43:53 +0000 (13:43 +0100)]
el/dot-emacs.el: Use `string-to-number' instead of `parse-integer'.

Not sure where the latter came from (except that it's the Common Lisp
function for doing this job), but it doesn't work on a freshly started
instance.

6 years agodot/gnus-local.el.distorted: Fix Gnus configuration after upgrade.
Mark Wooding [Mon, 17 Jul 2017 11:18:33 +0000 (12:18 +0100)]
dot/gnus-local.el.distorted: Fix Gnus configuration after upgrade.

I'm dropping compatibility with old Gnuses.

  * Use `starttls' where possible for communicating with IMAP servers.
    Alas, that doesn't include Gmail.

  * Remove the attempt to use separate authentication files for
    different accounts.  Everything is now in `~/.gnus.authinfo', and
    IMAP credentials are keyed by server label, not address, for some
    reason.

  * Note that chiark doesn't have a proper certificate.  For some
    reason, `starttls-extra-arguments' in IMAP server stanze is a list,
    while in SMTP server stanze, it's a string.

6 years agodot/bash-*: Rename from `bash_*'.
Mark Wooding [Mon, 17 Jul 2017 00:22:38 +0000 (01:22 +0100)]
dot/bash-*: Rename from `bash_*'.

Did I mention that I don't like underscores.  Let's see how this pans
out.

6 years agoel/dot-emacs.el: Highlight subdirectories in my usual way.
Mark Wooding [Mon, 17 Jul 2017 00:15:22 +0000 (01:15 +0100)]
el/dot-emacs.el: Highlight subdirectories in my usual way.

Directories show up in cyan everywhere else.  Why are they especially
scary in Ido `find-file'?

6 years agodot/emacs: Turn on the fancy Ido toys.
Mark Wooding [Sun, 16 Jul 2017 23:27:29 +0000 (00:27 +0100)]
dot/emacs: Turn on the fancy Ido toys.

If we have `ido-completing-read+' then we can safely turn on Magit's Ido
support (which apparently depends on that package to sort out some edge
cases).  The `ido-ubiquitous' package extends Ido goodness to other
commands, and depends on `ido-completing-read+' to do its dirty work
anyway, so if we can enable that then it's safe to throw Magit's switch.
Finally, `smex' brings Ido goodness to M-x.

For safety's sake, leave traditional `execute-extended-command' on C-c
M-x.

6 years agodot/emacs: Get with the program and switch to Ido for buffer completion.
Mark Wooding [Sun, 16 Jul 2017 22:56:54 +0000 (23:56 +0100)]
dot/emacs: Get with the program and switch to Ido for buffer completion.

Bonus: it does filename completion too.  Downside: it needed a good
kicking not to do completely stupid things.

6 years agodot/ipython-key-bindings.py: Hack IPython's bogus keybindings.
Mark Wooding [Sat, 15 Jul 2017 13:49:10 +0000 (14:49 +0100)]
dot/ipython-key-bindings.py: Hack IPython's bogus keybindings.

Hopefully they're a bit less bogus now.  Maybe.

6 years agodot/ipython-config.py: Configure modern IPython syntax colouring.
Mark Wooding [Sat, 15 Jul 2017 00:15:00 +0000 (01:15 +0100)]
dot/ipython-config.py: Configure modern IPython syntax colouring.

This ought to match my Emacs display, but numbers seem to come out
somewhat lime-green rather than yellow.

6 years agodot/ipython-config.py: Go back to traditional completion display.
Mark Wooding [Sat, 15 Jul 2017 00:05:43 +0000 (01:05 +0100)]
dot/ipython-config.py: Go back to traditional completion display.

IPython has this new default completion display where it shows a
tiny fraction of the available completions in a postage stamp.  I'm
not sure why this is meant to be better.  It's the sort of thing IDEs
do, but it seems daft to me.

6 years agodot/ipython-config.py: Turn off `greedy' completion.
Mark Wooding [Sat, 15 Jul 2017 00:03:11 +0000 (01:03 +0100)]
dot/ipython-config.py: Turn off `greedy' completion.

It makes completion work really badly on newer versions of IPython.

6 years agodot/ipython-config.py: Stop saying `ignore_old_config'.
Mark Wooding [Sat, 15 Jul 2017 00:04:20 +0000 (01:04 +0100)]
dot/ipython-config.py: Stop saying `ignore_old_config'.

Apparently it's an old configuration, and I can't tell IPython to
ignore it...

6 years agodot/ipython-config.py: Rename from `dot/ipython_config.py'.
Mark Wooding [Sat, 15 Jul 2017 13:48:36 +0000 (14:48 +0100)]
dot/ipython-config.py: Rename from `dot/ipython_config.py'.

I don't like underscores in filenames, and I can live without this one.

6 years agodot/emacs, el/dot-emacs.el: Configuration for Emacs `mpc' support.
Mark Wooding [Sat, 15 Jul 2017 00:09:11 +0000 (01:09 +0100)]
dot/emacs, el/dot-emacs.el: Configuration for Emacs `mpc' support.

I can control audio from Emacs.  That's kind of cool.  Admittedly,
`mpc' is annoying and deficient in a number of ways, but it's still
cool.  Right?

6 years agoel/dot-emacs.el: Split the Magit configuration into its own section.
Mark Wooding [Sat, 15 Jul 2017 00:08:07 +0000 (01:08 +0100)]
el/dot-emacs.el: Split the Magit configuration into its own section.