Commit Graph

1020 Commits

Author SHA1 Message Date
a38ac0e738 zsh:funcs:mkcd: Prevent recursion with command
Call the external command `mkdir` to prevent recursion through the alias
added in 7834a6bee2 ("zsh:alias: Alias `mkdir` to `mkcd`").
2022-07-14 17:19:30 +02:00
bc7a539186 vim:keys: Add <leader>utc to convert unix time
Add `<leader>utc` to convert unix timestamps into a human readable
format.
2022-07-14 14:25:00 +02:00
83d991cb53 vim:keys: Map <leader>gg to `:G 2022-07-14 14:24:59 +02:00
17fd0409a4 tmux: Make { and } repeatable 2022-07-14 14:24:59 +02:00
7834a6bee2 zsh:alias: Alias mkdir to mkcd 2022-07-14 14:24:58 +02:00
e931f20a7e zsh:funcs:mkcd: Support - and -- arguments 2022-07-13 17:49:45 +02:00
ee1ec50322 zsh:funcs:mkcd: Improve argument parsing
Do not switch into a directory, if multiple were created. Support flags
given at the end of the commandline (e.g. `mkdir foo/bar -p`)
2022-07-13 17:28:40 +02:00
d4ee271740 zsh:alias:qmv: Use destination-only edit format
Use the `destination-only` edit format when renaming files with `qmv`.

`dual-column` mode got on my nerves as I tend to forget with side is
source and which is destination. On top, the `swap` option breaks as
soon as I change the length of a filename.

`single-column` mode is useless for me, as I tend to make changes in
visual block mode.
2022-07-13 12:14:39 +02:00
43bf8801f9 git:interactive.diffFilter: Disable diff-so-fancy
Disable diff-so-fancy as `interactive.diffFilter` for now, as it is
incompatible with git version `v2.37`.[1]

[1] - https://github.com/so-fancy/diff-so-fancy/issues/437
2022-07-12 21:00:12 +02:00
43d87467d2 git:checkout-worktree: Pass all arguments
Pass all given arguments to `git worktree add`. This makes it possible
to directly create a new branch with `-b` for example. As the arguments
are not used anywhere else, this should not introduce any parsing
issues.
2022-07-12 21:00:12 +02:00
e949ffefef git: Set interactive.singleKey
In interactive commands, allow the user to provide one-letter input with
a single key (i.e., without hitting enter). Currently this is used by
the --patch mode of git-add(1), git-checkout(1), git-restore(1),
git-commit(1), git-reset(1), and git-stash(1). Note that this setting is
silently ignored if portable keystroke input is not available; requires
the Perl module Term::ReadKey.[1]

[1] - git-config(1)
2022-07-12 21:00:12 +02:00
0ccca77457 zsh:settings: Set HIST_REDUCE_BLANKS
Remove superfluous blanks from each command line being added to the
history list.
2022-07-12 21:00:11 +02:00
46565c2d6b vim:keys: Nvim does not replace has('clipboard')
Neovim does not make `has('clipboard')` obsolete. It only simplifies
clipboard support but `has('clipboard')` will still return `0` if no
supported clipboard program is installed.

See `:help clipboard`

    Nvim has no direct connection to the system clipboard. Instead it
    depends on a |provider| which transparently uses shell commands to
    communicate with the system clipboard or any other clipboard
    "backend".

and `:help clipboard-tool`

    The presence of a working clipboard tool implicitly enables the '+'
    and '*' registers. Nvim looks for these clipboard tools, in order of
    priority:

      - |g:clipboard|
      - pbcopy, pbpaste (macOS)
      - wl-copy, wl-paste (if $WAYLAND_DISPLAY is set)
      - xclip (if $DISPLAY is set)
      - xsel (if $DISPLAY is set)
      - lemonade (for SSH) https://github.com/pocke/lemonade
      - doitclient (for SSH)
        http://www.chiark.greenend.org.uk/~sgtatham/doit/
      - win32yank (Windows)
      - termux (via termux-clipboard-set, termux-clipboard-set)
      - tmux (if $TMUX is set)
2022-07-12 21:00:11 +02:00
2ac0e01766 python: Handle non-existing history file
Create a dummy entry in the history file if it does not exist yet or is
empty. Otherwise `~/.python_history` would be used by site.py.
2022-07-12 21:00:11 +02:00
ffaef0fd54 *: More XDG environment variables and configs
More configurations of programs that do not follow the XDG Base
directory Standard correctly.
2022-07-12 21:00:11 +02:00
7b40b3ea98 zsh:alias: Exclude .git & tags when grepping
Those are more or less never a place that I want to include when
grepping recursively or through a glob.
2022-07-12 21:00:10 +02:00
a8f6973968 tmux: Use pane-border as indicator for {copy,sync}
In tmux version 3.2 all style options were changed to string
options, making them support formats.[^1]

From that version on, use the pane-borders as indicator for the
{copy,sync}-mode instead of the prefix_highlight plugin.

Keep the pure style fallback, as Ubuntu 20.4 for example still only
ships with version 3.0a.

[^1]: https://github.com/tmux/tmux/commit/f03b61131b34079
2022-07-12 21:00:10 +02:00
747ffd01e3 tmux:prefix_highlight: Invert fg,bg + red for sync
- Invert the prefix_highlight colors so that it is less obtrusive.
 - Use `brightred` for the background of the sync-mode indicator.

This way the prefix, copy-mode and sync-mode indicators are visually
differentiable.
2022-07-12 21:00:10 +02:00
65fc5efdec git:submodule-rm: Update to current .git structure
Update the function to use the current `.git/modules/` structure, by
only using the basename of the path.

I am not sure when this was changed and too lazy right now to find it
out.
2022-07-12 21:00:10 +02:00
0faf19ad3d git:alias: Add git-submodule-rm for function
Just add a git alias to the already existing zsh function to make it
easier to call it.
2022-07-12 21:00:09 +02:00
18625091ed tmux: Add a 'resize mode' similar to my i3 config
Add a 'resize mode' that behaves similar to the one in my i3 config.
When pressing the binding `<prefix>r`, a new key-table is selected that
allows resizing with `hjkl` as well as choosing the different layouts
directly over the number row.
2022-07-12 21:00:09 +02:00
e0fdd45e6c tmux: Add binding to synchronize panes
Synchronize the panes in the current window with `<prefix>S`.
2022-07-12 21:00:09 +02:00
d9ea048411 tmux: Also display indicator for copy-mode 2022-07-12 21:00:09 +02:00
e609efc385 tmux: Also display indicator for synchronize-panes
Also display an indicator when synchronize-panes is turned on in the
status bar, not only for the prefix.
2022-07-12 21:00:08 +02:00
f2978fa030 tmux: Remove unneeded prefix_highlight_*fix
Remove unneeded `prefix_highlight_output_{pre,suf}fix` option, as a
space is the default value from the `tmux-prefix-highlight` plugin.
2022-07-12 21:00:08 +02:00
d1211dbc0d vim:settings: Add block to virtualedit
Let the cursor move beyond the EOL when in visual-block mode.
2022-07-12 21:00:08 +02:00
75611be2f8 tmux: Use short command variants
Use short variants of commands and get rid of redundant `-T prefix` flag
to `bind`.
2022-07-12 21:00:08 +02:00
f429da3fd9 tmux: Use short command variants
Use short variants of commands and get rid of redundant `-T prefix` flag
to `bind`.
2022-07-12 21:00:08 +02:00
8755ade944 tmux: Format lines to fit into a width of 80 2022-07-12 21:00:07 +02:00
79e34c3e4f tmux: Use <Esc> to clear selection and cancel
Use <Esc> to clear the selection and cancel copy-mode depending on if
something is selected.
2022-07-12 21:00:07 +02:00
b4e0d4111b tmux: Allow C-h to still be passed
Some programs (e.g. the UEFI shell) expect it for backspace.
2022-07-12 21:00:07 +02:00
d5fdfd37e9 tmux: Do not auto exit copy-mode when at bottom
Do not exit automatically the copy-mode when reaching the bottom.  This
was especially annoying/dangerous when holding `C-d` down to scroll to
the bottom.
2022-07-12 21:00:07 +02:00
c906c5ffb6 vim:keys: Add <leader>h mapped to :Helptags 2022-07-12 21:00:07 +02:00
01ebc211bb vim:autocmd: Disable relative numbers in insert
As relative line numbers are only really needed in normal mode and in
the current buffer, disable them in insert mode or when the
buffer/window is not focused.
2022-07-12 21:00:05 +02:00
b2536d7c2f vim:settings: Set inccommand=split
Show partial off-screen effects of a command in a preview window.
2022-07-12 21:00:05 +02:00
b63bbc391f vim:ftplugin:python: Set foldmethod locally 2022-07-12 21:00:05 +02:00
40ff2ac6c4 polybar: Add transparency 2022-07-12 21:00:05 +02:00
392bc1c49b tmux:plugs: Remove tmux-yank
It messes with mappings I set (e.g. `MouseDragEnd1Pane`) and brings no
real addition in functionality.
2022-07-12 21:00:04 +02:00
ab7b10eb20 picom: Update kawase to dual_kawase
Blur method 'kawase' has been renamed to 'dual_kawase'. Interpreted
    as 'dual_kawase', but this will stop working soon.
2022-07-12 21:00:04 +02:00
39df041443 vim:ftplugin:vim: Use local <buffer> autocmd
Fix the issue that the vim config would always be reloaded on save
(jumping to the BOF; another TODO) even in non `*.vim` buffers, after a
vim file was opened once in the session.

Fix this by defining the autocmd only local to the current buffer.

See also :help autocmd-buflocal
2022-07-12 21:00:04 +02:00
be6e5df3ea zsh:funcs:suffix: Do not quote extra
Since 5258b5ed4217 ("zsh:funcs:suffix: Support quotes), all special are
escaped anyway (including whitespace), making it unnecessary to quote
the names extra.
2022-07-12 21:00:04 +02:00
818ebdc144 zsh:funcs:suffix: Support quotes
Quotes need to be escaped, otherwise `(Q)` will not work on potential
uneven number of quotes.
2022-07-12 21:00:04 +02:00
bf1eadbb79 zsh:funcs:suffix: Fix multiple suffixes
While trying to handle whitespace in the suffixes the support for
passing multiple suffixes broke.

This should now support multiple suffixes as well as included
whitespaces.
2022-07-12 21:00:03 +02:00
efa7054b82 zsh:funcs: Add suffix
Find files that end with one of multiple given suffixes.

Usage:
suffix sfx... [-- path...]

`sfx` is given to `find` in the form `-name "*$sfx"`.
`path` is given as starting point to `find`, defaulting to `.`.
2022-07-12 21:00:03 +02:00
fd575d3784 zsh:funcs:spellcheck: Fix indentation
I forgot to reindent part of the function after moving the

    if (( $+commands[shellcheck] ))

check into the function. Before it was wrapping the function definition.
2022-07-12 21:00:03 +02:00
b61429a176 zsh:funcs:pgrep: Format + rephrase comment 2022-07-12 21:00:03 +02:00
13ebd97d8e git: Set interactive.diffFilter to diff-so-fancy
Pipe patches through diff-so-fancy in interactive commands (e.g. `git
add -p`) too.
2022-07-12 21:00:03 +02:00
d136658888 git: Update alias section
Move `signoff` out of the 'external' subsection as the script [got
replaced by the native way][1].

Update 'external' subsection's comment as it does not contain only zsh
functions.

[1]: bb21c4df7844 ("git: Replace git-signoff with `rebase --signoff`")
2022-07-12 21:00:02 +02:00
03163a92a4 git:filter-repo: Add to $PATH 2022-07-12 21:00:02 +02:00
40416ebd9c *: Move third-party plugins into .local/share/
Move all submodules that were under .config/ into .local/share/ (alias
XDG_DATA_HOME). I got convinced that they feel out of place in .config/.

Instead of updating the paths from which they are sourced (e.g.
`TMUX_PLUGIN_MANAGER_PATH` or `packpath`), keep a symlink in the old
location that points to the new one. This has the benefit that
everything related to one program remains mostly accessible from the
same place instead of spreading everything out.

I am still unsure if I really like the new location as I affiliate user
**data** more with something that has to be backed up as it is
non-recreatable. And moving them out of .config/ had the reasoning that
they are not my config files but rather data from the internet that
could be retrieved when deleting. But using XDG_CACHE_HOME seems
unreasonable as well.
We'll see.

Move the fzf-repo from ./local/bin/ to .local/share/.

Update all relative symlinks' (e.g. fzf) targets.
2022-07-12 21:00:01 +02:00