Updated the alacritty settings file to follow the correct format for
newer alacritty versions by conforming it to the setting file template
with choice differences for my setup.
Changed url substitution to only work on pushing, so that we can always
make use of ssh keys but things like pulling through rust's cargo still
work.
Default to verbose diffs, even though we also set it in the alias.
Added a border toggle on mod4+b, toggles through no border (default),
plain border, border and window title. Removed individual changing the
outer gaps keybind -- gaps are changed along with resizing inner gaps,
and who really needs to seperately change only the outer ones.
Substituted exec for exec_always to not repeatedly start copies of
'dropdown' windows whenever restarting i3.
Changed a couple keybindings around that should largely not be
noticeable during normal operation, for reloading and restarting i3.
Fix various little fzf annoyances: Implement good coloring of floating
window. Make it use fd by default, search through hidden files but
ignore the git directory itself.
Also, let it split the window on s and vertical split on v.
fzf already comes with its own floating window call function, so we
don't have to use our own. Instead simply call the floating window when
we are in compatible vim/nvim version and let fzf do its thing.
By default fzf now uses a floating window covering most of the editor
screen real estate. It can still be full screened with a bang.
Floating window can be made optional with fzf layout options, but for
now I will try it for all fzf searches to get a feel for the positives
and negatives.
Package updates in yay (as in pacman) will not be reported correctly
when the repository mirrors have not been updated recently.
However, updating only the mirrors without also synching the packages
locally is not recommended by arch. That means, essentially, we can't do
a dry-run to only 'check' for packages without running the danger of
performing a partial arch upgrade.
The program `checkupdates` in pacman-contrib package helps with this by
performing a check for the available updates without needing to pull
from the mirrors before. So, the polybar update script now checks for
its existence and uses it if available, falling back to the standard yay
procedure otherwise.
Added `clip` to path, allows sending stuff through stdin or via normal
file input to xclip. Makes xclip default to clipboard when clipping
input. Special handlers for image files (png and jp[e]g).
Added package which sets ale defaults without having to define them
myself. Still keeping ale settings file around, but can probably get rid
of it soon.
Removed dimswitch script. I liked it but it has been utterly superseded
by styler; if wanting to switch light and dark I can just switch to
light or dark base16 theme and do not have to rely on alacritty config
file hacking through dimswitch (well, now just through styler, yay.)
exist script will print message to stdout even if it prints to notify,
this makes more sense since now passing a loudness factor just adds it
to the message, instead of replacing printed message with libnotify.
Added stow ignores to top-level files. Not entirely sure if it is
needed, but they were linked on my system and the change shouldn't hurt.
Added quick access to todo.md file in home directory with mod4+t, and to
a dropdown terminal window with mod4+shift+return (mirroring the usual
terminal creation without shift).
i3 now uses mod4[+shift]+g to increase/decrease inner gaps and +b to do
the same for outer gaps.
The mode name for media has been put into a variable to make potential
dynamic namings possible and avoid duplication.
Added thesaurus calling on leader-zt, for word under cursor or selected
word(s). Will go through variety of online api's or locally supplied
mthesaur.txt from project gutenberg.
Fixed paths to images for new repository dotfile delineation. Added
quick readme blurb explaining differece of normal and dotfile
directories.
Readme still explained old bare-repository directory structure. Rewrote
sentences to conform to new structure.
Removed underscore from bootstrap directory, since the repository does
not organize itself through underscore prefixes anymore.
Fixed package gathering git-hook to respect new bootstrap directory.
Added qutebrowser shortcut to edit forms in vim (leader-e). Added gitlab
and asciinema to javascript exceptions list. And removed some never-used
shortcut mappings.
Set linter and formatter to *only* run when files it works for are
actually detected. Uses moreutils' ifne to detect the status of stdin
before sending an empty string to the test suite.
Moved mode indicator to more immediately visible prompt location.
Allowed deletions and adding spaces regardless of mode.
Allow moving backwards through history and searching through terminal
input history.
Fixed compile script to not use ifinstalled anymore.
HACK Fixed compile script to correctly pass through output targets to
RMarkdown, through the implementation is very rough currently.
It will look for additional arguments passed through and run RMarkdown
rendering once for each target. It would presumably be faster (and at
the very least more elegant) to pass all arguments through at once, but
I am not sure how to pass arguments through shell surrounded with
quotes.
Renamed ifinstalled to exist, moved it into base shell module. It can be
called with just a command name to check for, or with an additional
libnotify urgency level (low, normal, critical).
If called with an urgency as the second argument, the user will be
notified of the missing command with the corresponding urgency.
Having a general script folder makes little sense if the scripts are
targeted to specific applications. This commit moved every script that
solely, or mainly (like ueberzug), targets a single application into
that respective stow module.
Enables easier vcs integration of vim spelllang dictionaries. Will cause
them to be reloaded on external editing, add their binary parts to
ignore files, and set their addition files to unison merge mode.
Plugins are managed directly through pacman packages now. Since I am
only using six zsh plugins and they are staying relatively constant and
not changing much, pacman seems a much more sane way to manage them
without cluttering up my zsh initialization routine. All zgen management
can go and just needs 6 `source` lines in order to load the plugin
entrypoints.
Anything which needs to be (at least partly) touched by stow should stay
in the top-level normal directory name that they are. Anything that
*only* concerns the repository, not the dotfiles, should be moved into a
hidden folder, preceded by a dot.
These directories should still contain a `.stow-local-ignore` file
patterning everything which should not show up in stow (i.e. `^/.*`,
everything) since it is not guaranteed that stow will ignore the
.dotfile directories. The installation script does ignore them on its
own, for now, but is not guaranteed to in the future either.
When moving to commit, this hook will automatically fire and check the
current system's installed packages against those explicitly committed
to the repository. If they mismatch it will inform the user.
It will not prevent the commit, but simply add a comment at the top of
the commit messages to remind the user that something is unbalanced
between both. It would be recommended to either check the additional
package into source control, remove it from the current system, or
explicitly add it to ignored packages.
Updated package list in preparation for unified package management. For
the moment still uses basic bash script to manage package installation.
Packages are collected in a big list, with some packages being ignored.
This is in preparation for the possibility to manage future package
'groups' directly in pacman meta packages. They will then be added /
removed to the individual PKGBUILD files as dependencies and will
automatically be kept up-to-date, added and removed on all systems which
use the corresponding meta group.
It also opens the path to have commit-time checking of irregularities
between the packages stipulated in the dotfile repository and the
current running system. This can be done by adding all packages of the
different package group lists, unifying them and removing potential
ignored packages.
It allows e.g. printing a warning when committing changes to the
repository while the system packages and the repository packages differ,
to make sure no package dependencies were introduced without knowing it
and which would introduce potential breaking changes into the dotfiles.
Added custom term spell dictionary for neovim. Will track any words that
should be needed on all my machines.
Added spellmake plugin which watches spellfiles and rebuilds the binary
whenever a new word has been added through external edits like git.
The plugin also automatically adds a gitignore file for the .spl
file, and a unison merge strategy through a gitattributes file to any
spell directory it finds. Ignoring is due to .spl being automatically
generated binary files. The merge strategy ensures that no merge errors
will pop up even when words get added in different orders. All it cares
about is that the content of the files is the same, in whatever order.
Fixes tmux xdg-compliance (and, more importantly, Tmux Plugin Manager's)
by setting the environment variable TMUX_PLUGIN_MANAGER_PATH to follow
xdg specifications. Tmux, due to not being xdg-compliant, needs to be
aliased to start with the `-f` option pointing into the configuration
directory.
Fixes tmux vim nagigator's controls being overwritten by other control
schemes in tmux.
Added general usage information. Made sure gitignore api is never called
without any arguments.
Made script fzf aware -- if it finds fzf it can be invoked without
arguments, if it does not it will display usage information instead.
Removed the `autostow.sh` scipt. Its use was to call stow for every
folder in base directory and ignore certain folders. Both those
functions can be handled by stow on its own.
Stow allows defining per-directory ignore patterns with
`.stow-loca-ignore` files, which can be set to `.*` to completely ignore
a folder, just as before. And Stow can be called with a glob pattern to
automatically call it for every directory in the repository.
`.stowrc` additionally makes sure that all operations take place
targeting the home directory of the current user, since that is where
the dotfiles will (generally) be stored. Of course, this can be
overridden with the stow command-line options (see option precedence in
stow manual).
Finally, the bootstrap stow module adds an alias `dotlink` to the shell,
which allows fast (re-)stowing of all directories in the dotfile
repository. It uses a hard-coded location for the .dotfiles base
directory, so if the dotfiles are cloned anywhere else this has to be
customized.