Commit Graph

940 Commits

Author SHA1 Message Date
15f4bac670 zprofile: Exit after tmux instead of exec-ing
Instead of exec-ing the tmux process, run it normally and exit
afterwards. Otherwise the zlogout is not read as mentioned a couple of
lines above and in `zsh(1)`:

> However, if the shell terminates due to exec'ing another process, the
> logout files are not read.
2022-06-23 23:56:34 +02:00
3b29820957 zprofile: Use exec when attaching to tmux
When connected over ssh and attaching to/creating a tmux session, the
shell should `exec` the tmux command so that detaching from the session
automatically also closes the ssh connection.

If something should happen and the `tmux` command bricks the remote
shell this can fixed by logging in with:

    ssh [destination] zsh -dfi
2022-06-23 23:55:53 +02:00
79c7cdf416 git:checkout-worktree: Escape slashes in branch
Escape slashes in the branch name before passing it to `mktemp`.
Otherwise it would complain with:

    mktemp: invalid suffix [...], contains directory separator
2022-06-23 23:54:13 +02:00
6fdade90c6 ignore: Add comments and remove outdated lines 2022-03-31 18:09:26 +02:00
98a1404647 ignore: Add .config/git/gitk 2022-03-31 18:08:50 +02:00
be1bd6f08d git:checkout-worktree: Add scripted-use examples 2022-03-31 17:56:07 +02:00
ab53cff2a3 git:checkout-worktree: Update description
Add description in one sentence and use cases for this.
Remove sentence about removing `TEMP_DIR` that is outdated since:
5a8b5ffd21 ("git:checkout-worktree: Use `mktemp` template")
2022-03-31 17:48:05 +02:00
71450ad133 git:checkout-worktree: Fix endless loop
Fix endless loop when commands are passed via stdin that result in the
worktree not being removable. Fix by then dropping into an interactive
shell.
2022-03-31 17:28:05 +02:00
399b571e85 git:checkout-worktree: Refactor into one loop 2022-03-31 17:11:59 +02:00
a60c955d3d git:checkout-worktree: Set err_return + no_unset
If anything happens abnormally, return early and leave it to the user to
fix things.
2022-03-31 16:57:46 +02:00
d56979362a git:checkout-worktree: s/REPO_DIR/WORKTREE_PATH/ 2022-03-31 16:15:46 +02:00
5a8b5ffd21 git:checkout-worktree: Use mktemp template
Use a template that directly includes the repository name and the branch
checked out. This makes finding and deleting the worktree directory if
anything goes wrong a lot easier.

Checkout the worktree directly in the temporary directory. With that
`TEMP_DIR` becomes obsolete.
2022-03-31 16:00:47 +02:00
976d3f9000 git:checkout-worktree: Mention non-interactive use 2022-03-31 15:43:49 +02:00
02a0e17bcb git:checkout-worktree: Fix exit when not in repo
Fix the exit condition when the function is called outside of a git
repository.
Use zsh's `:t` History Expansion Modifier, as `$?` does not keep `git
rev-parse`'s exit code, but rather `basename`'s.
2022-03-31 15:33:53 +02:00
eb323992dc git:checkout-worktree: Keep the shell's exit code
Exit with the exit code of the last spawned shell.
2022-03-31 15:29:53 +02:00
b44ff72210 git:checkout-worktree: Rephrase description 2022-03-31 15:27:29 +02:00
f44125937f git:alias: Add checkout-worktree
Reuse the autoloadable function as git alias. This way
`git-checkout-worktree` as well as `git checkout-worktree` are possible.
2022-03-31 15:21:22 +02:00
9968edaf09 zsh: Make git-checkout-worktree autoloadable
Transform `git-checkout-worktree` into an autoloadable function.
2022-03-31 15:19:56 +02:00
869a1bce6e git: Readd function in spull alias
This reverts commit 54d716510b ("git: Drop function in `spull`").

I apparently oversaw the use of arguments passed to `git pull`. This
makes the function necessary.
2022-03-31 14:20:09 +02:00
2efa7da040 ignore: Ignore .ssh/* instead of the folder
This fixes the issue, that `.ssh/config` was not listed by `fzf.vim`s
`:Files` command.
2022-03-31 03:41:45 +02:00
c087e76ab2 ignore: Everything in .ssh/ except config
This contradicts a bit what I wanted in

1497fe3ed4 ("meta:install: Link all files in .ssh/"):
> This way potential new files in `.ssh/` do not have to be tracked
> manually.

as now, even though they do not have to be tracked manually in the
install.conf.yaml, that is the case for the .gitignore

But the consequences of private keys being pushed by accident (even
though not the entire folder is symlinked) are far greater than
potentially missing a symlink, making this a sensible step.
(And the overhead of adding one file is much smaller in the .gitignore)
2022-03-31 03:37:51 +02:00
1497fe3ed4 meta:install: Link all files in .ssh/
Link all files on installation, even though currently there is only the
one config file. This way potential new files in `.ssh/` do not have to
be tracked manually.
2022-03-31 03:23:15 +02:00
33faf7f25e ssh: Add config 2022-03-31 03:20:59 +02:00
4ba60da72c meta: Add envrc for direnv
Fetch all git remotes automatically when entering the repository.
2022-03-31 03:17:04 +02:00
41b1643a70 meta:install: Do not link .local/bin/fzf-repo
Only the executable (/the symlink to it) is interesting in .local/bin
2022-03-31 03:14:29 +02:00
4716b1cab3 meta:install: Link hidden files in .config as well
The globbing does not match hidden files without specifying the dot at
the beginning.
2022-03-31 03:12:09 +02:00
82a4dc8e19 meta:archive: Use stderr for log messages 2022-03-31 03:11:32 +02:00
98b33cc615 meta:archive: Get link targets by parsing config
Instead of only archiving the ~/.config/*, now parse `install.conf.yaml`
and extract the link targets dynamically.
2022-03-31 03:09:30 +02:00
81c07bd3cf meta:archive: Keep tars exit code on failure 2022-03-31 03:06:03 +02:00
fa8a6b10fa zsh:alias:git: Add diff --staged and rebase -i 2022-03-31 00:53:26 +02:00
74e72c18c6 zsh:alias: Sort git aliases + Add comment 2022-03-31 00:51:35 +02:00
0ba0c04c56 zsh: Use $+commands[] instead of command -v 2022-03-31 00:46:46 +02:00
8008cb1a63 vim:plugs: Fix nodejs executable check 2022-03-30 14:58:23 +02:00
55cfb89a8d vim:keys: Add mapping for "+Y 2022-03-30 14:55:39 +02:00
ef438aeac1 vim:keys: Bind clipboard mappings to all modes
Also bind the system clipboard mappings to visual, etc.
2022-03-30 14:54:32 +02:00
10da37b676 vim:keys: Make call to NewSpellLang silent 2022-03-30 14:47:09 +02:00
241f315eec vim:keys: Add more git mappings 2022-03-30 14:36:40 +02:00
a8e72814c0 vim:ftplugs: Auto format paragraphs in markdown
We'll see how this goes.
2022-03-30 14:01:01 +02:00
99e6ac7002 vim:sets: Recognize numbered lists when formatting
Add `n` to `formatoptions` to recognize numbered lists when formatting.
2022-03-30 13:59:10 +02:00
4ebc729c99 tmux: Add different bindings
Add bindings:
 - Resource config
 - Toggle fullscreen on pane
 - Better vim emulation (WIP)
2022-03-30 13:36:28 +02:00
b16b230e99 tmux: Better clipboard on mouse drag 2022-03-30 03:40:45 +02:00
b3ff4a2ad8 tmux: Always vi-style copy-mode bindings 2022-03-30 03:38:30 +02:00
87c804f2e1 zsh:keys: Add TODO about :keepjumps
The bindings that correct the previous or next misspelled word should
not modify the jumplist but `:keepjumps` disallows <C-O>.
2022-03-30 03:01:31 +02:00
0671f028e7 zsh:comp: Rephrase completion copy comment
Add note to useful bindings.
2022-03-30 03:01:20 +02:00
541ff31af4 zsh:comp: Don't sort git-{rebase,show,signoff}
Do not sort completion functions of git-{rebase,show,signoff}.
2022-03-30 03:01:20 +02:00
70b9a74029 git: Add signoff alias to git-signoff 2022-03-30 03:01:19 +02:00
e024ca9f0a zsh:auto,comp: Add git-signoff function
Add `git-signoff` to signoff commits in given range.
Reuse the `_git-rebase` completion function for `git-signoff`.
2022-03-30 03:00:48 +02:00
5caff096cb bin:timetracking: Sort weeks numerically 2022-03-30 03:00:47 +02:00
25ba34c913 bin:timetracking: Print difference to expected hs
Print difference between the sum of all hours and the expected numbers
of hours.
2022-03-30 03:00:47 +02:00
3c4a0d4038 bin:timetracking: Fix octal representation
Fix unwanted octal representation.

Fixes a49bc5f1b5 ("bin:timetracking: Remove padding `0` prefix")
2022-03-30 03:00:47 +02:00