Since fzf is not really only a zsh plugin this moves it to .local/bin.
I am not quite sure it will stay there.
The submodule was also updated in this process.
Update all links and references.
Add .local/share directory that contains the man pages. By that dotbot
just globs all of them and symlinks them. This makes it more modular and
a bit more transparent on how an installed system looks like, just by
looking through the repo structure.
Use tabs instead of spaces per default. (VSCodium will still respect the
indentation used in the file)
Stop vscode from writing files in HOME.
Since only the settings.json is versioned in this repo but the full
folder is symlinked: Ignore all other files that will be written.
(TODO: Only symlink file)
Use an environment variable and a wgetrc instead of an alias for wget to
enforce the XDG Base Directory Specification so that script calls
respect it too.
Move all environment variables that do not relate directly to zsh but
(in most cases) enforce the XDG Base Directory specification to
zprofile.
This way they are just exported once on login and not every time the
shell starts again.
Move the lines in zshenv that are not directly responsible for moving
the zsh files into $XDG_CONFIG_HOME to their own zshenv there.
Fix behavior to match ls's when the -d flag but no files or directories
were passed.
Fix bug that the function thinks -d is passed when a long option that
contains a 'd' (as --group-directories-first) is specified and thus
just emulates plain `ls` in that case.
Use a portable syntax for the function headers.
Since I do not know where these functions could end in the future it
makes it easier and more consistent to use the portable syntax.
Update named directories location and rewrite the hash for wise and sose
to use a solution without tail but only the zsh glob power.
TODO: Find solution to get rid of the `echo` as well.
Just use the command name instead of trying to directly expand
previously defined aliases for the command. Nested aliases still work
like this and using the dictionary breaks some stuff like
syntax-highlighting.
Put xxd into quotes just to be consistent.
Divide config into different sections and move all relevant lines into
those.
Use the $TERMINAL variable wherever possible.
Cleanup some stuff and add a couple of comments.
Add vim modeline to indicate filetype.
Set the key repeat rate.
Ditch scratchpad-terminal.sh:
The reason why I created that script was that I liked to have
different bindings for showing and hiding the terminal. At this
point it just brings too much overhead in a dirty way for a feature
I do not really need. mod+space can still be used to toggle focus
and with mod+comma the window is now shown/hidden from/to
scratchpad.
Use a terminal flag to set the window name instead of using escape
sequences at the start of a new shell.
Instead of storing fzf's output and doing something with it (putting
into clipboard/editing buffer/stdout, etc.) there is a new keybinding
that stores the currently selected commit in the clipboard. fzf's output
is not piped or saved anymore since else `less` cannot be executed
inside of fzf. This is necessary for the second new keybinding that
executes the preview command piped into less. This is needed for example
when `glog` is started in a terminal that is too small to display all
information. In that case the peview window is not shown by default
anymore (but can still be toggled).
Since fzf can now only be aborted it always returns 130. Since this is
annoying `glog` returns 0 at the end form now on.
Refactoring:
Make the `commit_hash` regex more robust and by that simultaneously the
`del_ansi` regex obsolete.
Use `$dateshort` in `$date` since it depends from it.
Do not store the color flag in an extra variable. This was done earlier
to keep the lines under 80 characters but is not needed anymore.
Restart from different implementation, since nicoulaj's dotfile repo
seems to be offline and I prefer majutsushi's cleaner version.
Add a slash after the dots since normally I continue on typing the path
and it does not hurt if I don't.
Use single quotes for nested aliases so that the alias is only then
expanded when the command is used. By that we ensure that the order of
the aliases in alias.zsh is irrelevant.
Add vim like text object selection bindings like ci(, ya", etc..
Copied from softmoth/zsh-vim-mode. Since all the other interesting parts
are already covered (for example by p10k) in my config, sourcing the
entire plugin would not make sense.
Replace all occurrences of [ with [[ in bash and zsh scripts and
configs.
Performance wise it makes sense to use the builtin instead of calling an
external command also when from a functionality stand point `test` would
suffice.
Convert all functions that are pretty much oneliners and do not contain
any real logic into aliases by using anonymous functions.
I am not too sure if I will keep it this way.
Reorder categories.
Remove unused aliases and PATH modification.
Refactor to keep lines under the maximum of 80 columns.
Use brace expansion where an alias has different names.
Simplify method for finding the wise and sose hash.