Commit Graph

614 Commits

Author SHA1 Message Date
fddbb1117d zsh:alias:clipboard: Check for commands existence 2021-07-22 15:24:32 +02:00
f10896b686 zsh:alias: Add no1 & noO to redirect output 2021-07-22 15:19:44 +02:00
48160456a8 zsh:alias: Remove qrdecode as there is qr() 2021-07-22 14:50:51 +02:00
0b28f89e1d zsh: Reorder zshrc.d that autoload is first
This way the functions are already autoloaded and in alias.zsh and
others can be checked for existence.
2021-07-22 14:24:34 +02:00
79be1cfc71 zsh:git-checkout-worktree: Break if dir is deleted
Break the loop if `$REPO_DIR` does not exist anymore because it was
deleted other ways instead of looping forever as `git worktree remove`
fails on non-existing directories.
2021-07-15 16:01:38 +02:00
93ff4e7da2 zsh:glog: Add --all flag
Pretend as if all the refs in refs/, along with HEAD, are listed on the
command line.
2021-07-15 15:58:43 +02:00
938489dd4b zsh: Add git-rebase-add-stash completion 2021-07-15 02:46:16 +02:00
2d65f187f4 zsh: Fix forgotten ZSH_CONF use
`$ZSH_CONF` was removed in af49c39ba3.
2021-07-15 02:44:04 +02:00
111c851055 zsh:funcs: Add git-rebase-add-stash 2021-07-15 01:20:35 +02:00
8890a4b604 zsh:keys: Remove fzf-hist functionality
Go back to a simpler approach, that the `fzf-history-widget` is only
called on <C-Up> and ^K in normal mode and <Up> & <Down> scroll through
the history normally.

The reason behind this change is that there were still some edge cases
in which the widget was wrongfully called when normal scrolling was
intended.
This change also makes it now possible that I can use commands in the
'surrounding' of a past command by first navigating to it with the
fzf-widget and then just using <Up> & <Down>.
2021-07-14 14:35:20 +02:00
b1d396babd *: Use /usr/bin/env in shebangs for bash & zsh
To increase the portability (OSX for example has zsh under `/bin/zsh`).
2021-07-14 13:48:21 +02:00
0dfff846c2 zsh:fzf-tab: Remove color preview symbol 2021-07-10 01:47:45 +02:00
e0ade3c140 zsh:fzf-tab: Set bindings for switching groups 2021-07-10 01:46:01 +02:00
9bb4ded6c7 zsh:autoload:gbranch: Do not hardcode AUTOLOAD_DIR 2021-07-10 01:13:40 +02:00
1dec922c0f zsh:autoload: Add gbranch to display git branches 2021-07-10 01:00:09 +02:00
4fedae1a4c zsh:autoload:*: Add shebang & remove vim-modeline
By adding a shebang to the scripts they can be executed directly without
an interactive shell. The shebang also makes vims modeline that only set
the filetype obsolete.
2021-07-10 00:59:25 +02:00
f2c84fe82c vim:zsh-autosuggestions: Set suggestions strategy 2021-07-09 23:53:50 +02:00
0480b98812 meta:install: Create GNUPGHOME if nonexistent
This is more of a one-time step to be done when installing, than every
time on login.
2021-07-07 11:56:57 +02:00
4606f9ad80 zsh:git-commit-last-msg(): Support additional args
Pass additional arguments to git-commit so that flags can be passed
e.g `-n` to bypass the commit hooks.
Also use the according completion for `git-commit-last-msg`.
2021-07-07 11:50:52 +02:00
53ae5a067e zsh:funcs:crypt-mount: cd into mount-point 2021-07-07 11:47:54 +02:00
098fb385fd zsh:zprofile: Shorten two statements 2021-06-15 14:43:45 +02:00
57f89d34dc zsh:z{profile,logout}: Kill only 'own' ssh-agent
Kill the ssh-agent only if it was created in this session.

Like that the login shell can inherit SSH_AGENT_PID without it killing
the agent at the end. For this to work properly it is important that
LAUNCHED_SSH_AGENT is not exported, otherwise nested login shells will
mess with each other.
2021-06-15 13:19:29 +02:00
b368b20dee zsh:zprofile: Only start one ssh-agent per session
Also check if ssh-agent is available before launching.
2021-06-15 13:05:36 +02:00
b0db2b22a1 zsh:zprofile: Create GNUPGHOME if nonexistent
`gpg` complains otherwise and falls back to `$HOME/.gnupg`.
2021-06-15 13:04:37 +02:00
5ab5a49793 zsh:stderred.theme: Use escape-sequences w/o tput 2021-06-01 22:36:59 +02:00
3db2c2a87e zsh:g{log,stash}: Drop tput for stty for size
As stty is part of POSIX and thus better available.
2021-06-01 22:10:39 +02:00
6856c2d27e zsh:options: Do not unset CASE_GLOB on android
Do not unset CHASE_GLOB under android as then globbing with absolute
paths breaks as the PWD is often in a path with subdirectories that are
owned by root and not world-readable (e.g. /data/data/).
I *believe* this is the reason for it.
2021-06-01 21:39:49 +02:00
db6303aa51 zsh:funcs:g-ch-worktree: Restart on issues
Restart the subshell until every issue is resolved and the worktree is
removed.
2021-05-31 23:17:47 +02:00
44ef15d8ab zsh:autoload:glog,gstash: Drop trailing \n on copy 2021-05-16 00:48:24 +02:00
8af0b5c79a zsh:autoload:glog,gstash: Get rid of redundancy 2021-05-16 00:09:53 +02:00
d0aee7e638 zsh:alias:git-base-branch: Fix small pattern error
In place of the in ed215a35f7 introduced
second bracket can also stand `~` or `^`.
Otherwise something like `[feature^] or [feature~2]` is not thrown out.
2021-05-16 00:04:46 +02:00
c1955dd5f5 zsh:alias:git-base-branch: Match merge commits too
Merge commits should also be matched (indicated by a '-') for the case
that the base branches last commit is a merge commit and another branch
exists that checked out the newest commit that was merged.

Example log (from `glog`):
```
* abcdef Foo (HEAD -> feature)
*   bcdefa Merge branch 'other-feature' into base (base)
|\
| * cdefab Bar (other-feature)
|/
* ...
...
```

with `git show-branch -a` output like:
```
! [base] Merge branch 'other-feature' into base
 * [feature] Foo
  ! [other-feature] Bar
---
 *  [feature] Foo
--  [base] Merge branch 'other-feature' into base
+*+ [other-feature] Bar
```

Here we want `base` to be returned instead of `other-feature` and thus
'-' needs to be matched as well.
2021-05-15 23:17:36 +02:00
ed215a35f7 zsh:alias:git-base-branch: Make regexs more robust
Fixes (in order of the patterns that were touched):

- Only match `*` that come between BOL and the branch name in brackets,
  as another branch could be checked out at a commit containing a `*`

- Only throw out commits that were committed on our current branch and
  not those that contain the branch name in the message (e.g. `test`).

- Only match until first bracket as the commit message could also
  contain a pattern like `[.*]` that would be matched instead.
2021-05-15 22:52:33 +02:00
f58c5fdb27 zsh:alias: Combine both regexs in git-base-branch 2021-05-15 22:17:45 +02:00
32416deedd zsh:alias: Add git-ancestor and git-base-branch 2021-05-15 22:12:50 +02:00
4f70d7f32f zsh:glog: Show pgp key instead of fingerprint
Also display a status: (From `git-show` manpage)
```
"G" for a good (valid) signature,
"B" for a bad signature,
"U" for a good signature with unknown validity,
"X" for a good signature that has expired,
"Y" for a good signature made by an expired key,
"R" for a good signature made by a revoked key,
"E" if the signature cannot be checked (e.g. missing key) and
"N" for no signature
```
2021-05-15 04:06:22 +02:00
00da37623a zsh:funcs:git-checkout-worktree: Remove -p flag
As under OSX the -p flag does not exist, it seems safer to just use
`mktemp -d` and create the worktree under that directory.
This just has the disadvantage of one more dir to display in the `PWD`.
2021-05-15 04:06:14 +02:00
6e89def392 zsh:autload: Add gstash to display git stashes
Add gstash as a copy of glog with very slight modifications.
(Exchange `git log` with `git stash list` and remove the `--graph` flag)
2021-05-15 04:06:09 +02:00
492c29c096 git:functions: Remove old unused nemo wrapper 2021-05-10 17:30:46 +02:00
4053920f53 git:completion: Fix command not found error
_git has to be loaded before other functions can use its completion
functions.

Hint to this found at: https://unix.stackexchange.com/a/269818
2021-05-10 17:28:22 +02:00
b82a9d2221 git:completion: Add git-checkout-worktree 2021-05-10 17:27:54 +02:00
1d8f21b565 zsh:functions: Add git-checkout-worktree 2021-05-10 16:12:23 +02:00
7090f55653 zsh:alias: Add -j flag per default to make 2021-05-04 10:43:19 +02:00
c93d36677b zsh:glog: Handle missing commands and OS X
As the commit hash is now potentially printed (when no clipboard tool is
available), the copy-command needed to be executed not silent.
2021-04-30 11:48:09 +02:00
1b17c35f4b zsh: Add zlogout to kill ssh-agent
On system where my dotfiles are only partially installed (e.g. only
the shell) for the environment variables defined in the zprofile to take
affect, every terminal instance needs to execute zsh a login-shell.
This lead to numerous instances of the ssh-agent that were not killed
when exiting the shell. As I still need the correct env-vars like
SSH_AGENT_PID in every shell I cannot just pgrep and execute the agent
respectively.

This adds a zlogout that kills the agent spawned in the current shell.
It also stops `exec`ing `startx` as then the zlogout is not read.
2021-04-12 21:01:31 +02:00
fd2c3f611b fzf: Ignore node_modules also without rg 2021-04-12 21:01:30 +02:00
74e7cdef30 zsh:alias: Check for MACOS in clipboard aliases
Also check for the existence of perl before baking it into the alias.
2021-04-04 10:53:41 +02:00
7d085eedd0 zsh,X11: Move ssh-agent from xinitrc to zprofile
As I also want the ssh-agent to run without X.
2021-04-04 10:52:51 +02:00
d52afbfa3c zsh:completion: Add completion for glog 2021-03-11 01:26:59 +01:00
ed55fc14dc zsh:zprofile: Add /Library/Apple/usr/bin to PATH
When under macos add /Library/Apple/usr/bin to the PATH.
2021-03-10 13:50:05 +01:00