Commit Graph

1572 Commits

Author SHA1 Message Date
bbc6d5c9e0 git: Fix working directory of shell aliases
In git aliases, shell commands are executed from the top-level directory
of the repo. Because of this, something like `git glog -- file` didn't
work in subdirectories.

Fix this by creating a wrapper script that first changes into
$GIT_PREFIX before executing the script. Since (currently) the only
use-case is to launch the functions in `autoload/git/`, most of the path
could move into the script, making the git config a lot cleaner.
2025-05-23 16:30:58 +02:00
e232c8f37b zsh:glog: Use single quotes for file arguments
Since they get interpreted by a shell again, weird file names (e.g.
including dollar signs) would not be passed literally in double quotes.
2025-05-23 16:01:19 +02:00
9a91b464a8 zsh:alias: Add HEAD to gla
`gla` is meant to be `glog --all` without stashes. Add the missing
`HEAD` to be accurate, as it is needed when in detached HEAD.
2025-05-23 15:13:24 +02:00
9bf853a8d2 git: Fold sections in vim via modeline 2025-05-23 13:33:02 +02:00
7158abd611 git: Reorder aliases
Bring all blocks together and place shorter alias variants behind longer
ones - ignore the shorter ones in the sorting.

Remove the comment above `autosquash` because the command is fairly
descriptive and it is the only comment and I don't really know how to
format the block then (since the comment is at the very top it looks
like it is for the whole block and I don't want to put a newline behind
`autofixup`).
2025-05-23 13:19:25 +02:00
fc60d4baf3 git: Add fetch-tags-only alias 2025-05-23 13:08:24 +02:00
0139294831 Use kitty instead of st as terminal
I decided to merge this without fast-forward (but still after a rebase)
to better keep the context of the block of commits needed after the
switch.

* kitty:
  README: Change terminal used to kitty
  kitty: Change to beam cursor
  kitty: Update mouse_maps to use Alt as kitty_mod
  kitty: Only set the mappings I need/use
  kitty: Change color scheme to modified Tango
  kitty: Enable close_on_child_death
  kitty: Make kitty startup fast
  i3: Switch to kitty
  i3: Save terminal related stuff in variables
  i3: Remove unneeded window class flag to st
  dircolors: Use a non-system color for DIR
  kitty: Configure to align with my st settings
  kitty: Add v0.42.0 default config
2025-05-22 17:03:08 +02:00
fb1000f660 README: Change terminal used to kitty 2025-05-22 17:00:56 +02:00
18c6a17562 kitty: Change to beam cursor
Otherwise the block cursor comes out now and then (e.g. in fzf).
2025-05-22 16:47:04 +02:00
711608d6c9 kitty: Update mouse_maps to use Alt as kitty_mod 2025-05-22 16:46:46 +02:00
a9998ed371 kitty: Only set the mappings I need/use 2025-05-22 16:41:20 +02:00
ab6eb1e844 kitty: Change color scheme to modified Tango
Colors taken from my st fork. Additionally make the magenta a bit more
saturated.

This reverts 428d75a090 ("dircolors: Use a non-system color for DIR").

Link: https://github.com/druckdev/st/blob/custom/config.h#L101-L119
2025-05-22 16:38:40 +02:00
000ac0f615 kitty: Enable close_on_child_death
Otherwise closing kitty takes forever on my system:

    > kitty -1 --instance-group no -o close_on_child_death=no &
    > kitty -1 --instance-group yes -o close_on_child_death=yes &
    > kitty_cmd="kitty -1 \
                       --wait-for-single-instance-window-close \
                       --instance-group"
    > zsh_cmd="zsh -ic exit"
    > hyperfine -N "$kitty_cmd no $zsh_cmd" \
                   "$kitty_cmd yes $zsh_cmd" \
                   "st -e $zsh_cmd"

    Benchmark 1: kitty -1 \
                --wait-for-single-instance-window-close \
                --instance-group no zsh -ic exit
      Time (mean ± σ):      5.543 s ±  0.023 s    [User: 0.002 s, System: 0.005 s]
      Range (min … max):    5.486 s …  5.570 s    10 runs

    Benchmark 2: kitty -1 \
                --wait-for-single-instance-window-close \
                --instance-group yes zsh -ic exit
      Time (mean ± σ):     509.9 ms ±  29.4 ms    [User: 1.0 ms, System: 2.2 ms]
      Range (min … max):   480.9 ms … 560.1 ms    10 runs

    Benchmark 3: st -e zsh -ic exit
      Time (mean ± σ):     475.0 ms ±  12.6 ms    [User: 304.3 ms, System: 171.5 ms]
      Range (min … max):   455.6 ms … 495.7 ms    10 runs

    Summary
      st -e zsh -ic exit ran
        1.07 ± 0.07 times faster than kitty -1 \
                --wait-for-single-instance-window-close \
                --instance-group yes zsh -ic exit
       11.67 ± 0.31 times faster than kitty -1 \
                --wait-for-single-instance-window-close \
                --instance-group no zsh -ic exit

Link: https://github.com/kovidgoyal/kitty/issues/378
TODO: Could the 500ms be decreased? (zsh related)
2025-05-22 16:32:59 +02:00
d89fd6653c kitty: Make kitty startup fast
Starting a new kitty process is quite slow. With --single-instance "new
invocations will instead create a new top-level window in the existing
kitty instance"[^1] to allow "kitty to share a single sprite cache on
the GPU"[^1], so that startup is almost instant.

For this to work best, launch one hidden "daemon" instance at startup so
that the kitty process is always running, even when no OS windows
exists.

[^1]: kitty(1)

Link: https://github.com/kovidgoyal/kitty/issues/330
2025-05-22 15:49:03 +02:00
9b0c97b003 i3: Switch to kitty 2025-05-22 01:13:45 +02:00
87ecc40627 i3: Save terminal related stuff in variables 2025-05-22 01:13:45 +02:00
f202f987c5 i3: Remove unneeded window class flag to st
This is the default already.
2025-05-22 01:13:45 +02:00
428d75a090 dircolors: Use a non-system color for DIR
I'm not a big fan of the standard blue that kitty ships with. Instead of
switching it's colors to my usual choice of Tango Dark, I want to adjust
the colors where they are used to theoretically make the terminal
experience a bit more terminal-agnostic.

SteelBlue3 (68) looks pretty to close to the blue I'm used to.
2025-05-22 01:13:45 +02:00
a7bd58d210 kitty: Configure to align with my st settings
Except for the font and color scheme. I'm feeling experimental and
surprisingly like what kitty configured per default. Will see, if it
stays like this.
2025-05-22 01:13:45 +02:00
23d14b4ec0 kitty: Add v0.42.0 default config 2025-05-22 01:13:44 +02:00
b5eb5203aa less: Add --ignore-case to LESS 2025-05-22 01:13:40 +02:00
d7289e1d69 vim:xdg: Fix E474 when &spl has multiple languages
Escape comma to not get

    E474: Invalid argument
2025-05-20 11:47:42 +02:00
2aeb664692 vim👨 Set 'showbreak' to NONE 2025-05-20 11:47:42 +02:00
8e3887664a README: Mention also tmux as interesting directory 2025-05-15 12:07:09 +02:00
93cded33c9 README: Fix typo 2025-05-15 12:07:08 +02:00
442ee8c4d3 polybar: Remove one space between ramp and percent
I like that the percentage does not move when I press mute, so I want to
keep the alignment, but the percentage is too far away for my taste with
the previous two spaces when unmuted.
2025-05-14 18:44:31 +02:00
68e1af0328 zsh:conf: Fix HOME fallback
Actually use `_get_config_dir`'s exit code instead of `local`'s (i.e.
always™ zero). This was broken since always.
2025-05-14 18:17:18 +02:00
4914a94ee9 zsh:conf: Stop opening ~/.config as a fallback
This has been a bug for far too long. The entries `config`, `conf` and
`config.ini` of `CONF_PATTERNS` only make sense when looking outside of
`HOME`.
2025-05-14 18:15:28 +02:00
6d5245a56e zsh:conf: Remove trailing slashes before processing
Previously when the program name had a trailing slash, `conf` would not
find the right file as it would check for filenames that include a slash
(e.g. `prog/rc`). This was especially annoying, since conf's completion
function inserts a slash automatically when subdirectories exists.
2025-05-14 18:08:19 +02:00
0e4cf4f947 zsh:diffcmds: Add completion function
Completes as the first argument command names and uses then their
completion function to complete the rest.

TODO: <COMMENT>
2025-05-11 16:26:01 +02:00
671d924cca vim:fzf: Span fzf over full window in tmux
Use tmux popup windows for fzf in vim, so that it spans (almost) the
full tmux window. My use-case for this is, that sometimes I open fzf in
a split pane and notice then that the lines are too long for the width
of the pane. Since the fzf window won't resize if I resize the pane
(TODO: issue in fzf.vim), I have to first close it, resize and then
reopen fzf. I hope to fix this by using always the big tmux popup and
eliminating the need to resize at all. The issue remains when vim is in
a split window outside of tmux. I can imagine that this will become
annoying, but we'll see...
2025-04-30 17:44:15 +02:00
5b36728e07 git: Add indent-with-non-tab to core.whitespace
The rest was already enabled by default.
2025-04-30 17:03:05 +02:00
25c00c6efd vim:setts: Use ellipsis for lcs extends & precedes 2025-04-30 17:03:04 +02:00
ad025e7d9d vim:setts: Highlight trailing spaces a bit better
Switch from middle dot to bullet point, since it is a bit bigger.
2025-04-30 17:03:04 +02:00
d3cbc9d560 vim:setts: Change 'tabstop' to 8
I got used to code that is indented with (meant) tabs of width 8.
2025-04-30 17:03:04 +02:00
b2127ae3eb zsh:_conf: Set NULL_GLOB 2025-04-29 11:35:41 +02:00
aafb9a5a3a zsh:_conf: Fix some directory stack empty errors
Fix two cases where `popd` could try to pop from an empty stack.
2025-04-29 11:34:08 +02:00
b722b9aaec zsh:funcs: Fix non-empty dir filter in bfs/find wrapper
The previous filter would filter out every non-regular file (e.g.
symbolic links).
2025-03-28 16:23:05 +01:00
0cb18dedef zsh:keys:cmd-on-enter: Switch until conditions
The requirement does not need to be executed if the idx wrapped around
already.
2025-03-26 00:51:19 +01:00
a9bd4585aa zsh:keys:cmd-on-enter: Take gs out of rotation
It's a bit annoying, ll is sufficient.
2025-03-26 00:50:25 +01:00
3599a147b8 vim:coc: Abort when coc is not loaded 2025-03-26 00:48:48 +01:00
99d8b6133c git: Set trailer.where = end
Don't remember why I had to set it, or what problems I had without
(since it should be the default, no?), but does no harm.
2025-03-25 18:13:54 +01:00
f77b7b7ff6 git: Switch back to diff-so-fancy from delta
I'm not happy with the colors and diff-so-fancy is easier, since it's
just shipped with this repo via a submodule.
2025-03-25 18:08:22 +01:00
24f06f63f0 LICENSE: Remove email address
Not needed, and then I'd rather just remove it.
2025-03-25 18:06:22 +01:00
e04d78a9d8 vim:ftdetect: Glob clang-formats 2025-03-25 18:04:03 +01:00
bf4c5a1291 vim:keys: Alias <leader>g* to <leader>* 2025-03-25 18:03:59 +01:00
1d2e24cf4d zsh:autoload: Make $d local 2025-03-25 11:07:13 +01:00
2363545489 zsh:autoload: Allow nested directories
As well as wrapper in subdirectories.
2025-03-25 11:07:12 +01:00
cd54c3dfed zsh:autoload: Load wrapper only if command exists 2025-03-25 11:07:12 +01:00
071c2866e5 tmux:yank: Copy also in view-mode 2025-03-24 18:36:41 +01:00