It seems like the idiomatic way to update $PROMPT_COMMAND is to use
variable expansion to add a semi-colon and a space before the command
we're adding.
I also switched from prepending my commands to appending them, which
allows overriding behaviour, such as terminal titles which could be set
from system files.
To be consistent with the resize mode that is defined in this
configuration file, the other modes I have written can be exited using
the "Enter" key, the "Escape" key, and the binding used to enter this
mode.
If and when I want to switch to a different layout that uses numbers
without the shift key, unlike the traditional french layout, I still
want my shortcuts to work for switching workspaces.
I don't think any of my other shortcuts would have a problem switching
between AZERTY and QWERTY layout for example (well, selecting parent and
child containers would be switched, but I rarely need that
functionality and it is easy to switch on the fly).
To ease the addition and removal of packages, some rules were added to
deal with those specially.
I still need to figure out how to stop repeating myself when linking and
unlinking unconventional packages (such as `scripts`).
Instead of running `install.sh` to link all my packages, I split the
configuration into its CLI components and packages that need a Xorg
display server set-up.
This uses the `bootstrap.sh` script to make sure the needed dependencies
are installed. The `Makefile` can install all the packages or CLI ones
only.
Because a lot of my mappings use the <Leader> key, this is the only file
that *must* be loaded before all the others, otherwise the value of
leader when the script is read will be erroneous.
I also tried to use `git write-tree` and `git commit-tree` to emulate a
manual octopus merge to preserve the line history for each file. But
honestly that gave a graph that was too ugly for a history that really
did not need that amount of accountability. However it is a fun
exercise, and I recommend to everyone to try it at least once.
See Raymond Chen's blog `The Old New Thing`, with the post titled `How
to split out pieces of a file while preserving git line history: The
hard way with commit-tree`, for an explanation.
The escape sequence to display a title for Xterm and Termite is the
same, and the export for the current directory does not seem to have any
negative impact on Xterm.
The VTE script uses `$HOSTNAME` which is a bashism for `$HOST`, so this
needs a correction in my shell profile.
Instead of re-writing the same condition each time, I put the function
in an autoload plugin instead (which is going to be loaded just about
every time I start writing code, but that's neither here nor there) to
stop repeating myself.
For some reason the script to set-up VTE terminals does not set-up the
precmd which is supposed to display the username, host, and working
directory in Termite's title.
Dunst can overwrite a notification if we give it an id (an integer
value) or a name (a string). This allows for displaying a single
notification when incrementing/decrementing the brightness multiple
times in a quick succession.
I was starting to get annoyed by all the spell-checks happening inside
strings and comments that underlined words which are not mistakes but
also not in the dictionary.
I don't like the colors of the gruvbox theme in lightline because errors
and warnings are not highlighted. I could fix the theme, but I've been
using instead wombat for a while and find that it looks perfectly fine.
This little script will look at your current working directory and its
parent directories to source local configuration files (very useful for
Python projects, or the way I build TC with a local PATH pre-pended).
It works relatively well but still is a very fragile solution that
depends on the order in which the shell has sourced its files. Because
the Termite script kept erasing the previous PROMPT_COMMAND value for
Bash I had to change to source it at the beginning of my configuration
file.