first commit
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
---
|
||||
created: 2024-01-25T16:49:34 (UTC -05:00)
|
||||
tags: nixos
|
||||
source: https://jeffkreeftmeijer.com/nix-home-manager-git-prompt/
|
||||
author: Jeff Kreeftmeijer
|
||||
---
|
||||
|
||||
- Git status in shell prompt with Nix Home Manager
|
||||
|
||||
> ## Excerpt
|
||||
> By on 2023-03-19 (originally published on 2023-03-13)
|
||||
|
||||
---
|
||||
By on 2023-03-19 (originally published on 2023-03-13)
|
||||
|
||||
Git comes with a script named [`git-prompt.sh`](https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh) that exposes information about the current directory’s repository to use in your shell’s prompt. The script is in the `contrib` directory, but I used to [extract](https://github.com/jeffkreeftmeijer/git-prompt.sh) it to not have to download the git source to set my prompt.
|
||||
|
||||
Using Nix, the prompt is available in the `~/.nix-profile` directory, meaning setting up the prompt doesn’t require remembering to download an extra file. Instead, it’s three lines in `programs.zsh.initExtra` to source the script and set the prompt<sup><a id="fnr.1" href="https://jeffkreeftmeijer.com/nix-home-manager-git-prompt/#fn.1" role="doc-backlink">1</a></sup>:
|
||||
|
||||
```
|
||||
programs.zsh.initExtra =
|
||||
''
|
||||
source ~/.nix-profile/share/git/contrib/completion/git-prompt.sh
|
||||
setopt PROMPT_SUBST
|
||||
export PS1='%~ $(__git_ps1 "(%s) ")%# '
|
||||
'';
|
||||
```
|
||||
|
||||
This produces prompts like `~/repository (main) %` inside a git repository, and `~/not/a/repository %` elsewhere.
|
||||
|
||||
---
|
||||
|
||||
1. This example is for zsh, omit the `setopt` and alter the `PS1` for bash:
|
||||
|
||||
```
|
||||
programs.bash.initExtra =
|
||||
''
|
||||
source ~/.nix-profile/share/git/contrib/completion/git-prompt.sh
|
||||
export PS1='\w $(__git_ps1 "(%s) ")$ '
|
||||
'';
|
||||
```
|
||||
|
||||
[↩︎](https://jeffkreeftmeijer.com/nix-home-manager-git-prompt/#fnr.1)
|
||||
@@ -0,0 +1,21 @@
|
||||
tags:: [[gerd]]
|
||||
|
||||
- | **time** | **what**|
|
||||
|----|-----|
|
||||
| 6:30 | ppi|
|
||||
|7am | sucra|
|
||||
|8am | breakfast|
|
||||
|9am||
|
||||
|10am ||
|
||||
|11am |Sucra|
|
||||
|12pm | lunch|
|
||||
|1pm||
|
||||
|2pm||
|
||||
|3pm ||
|
||||
|4pm | sucra|
|
||||
|5pm | ppi / dinner |
|
||||
|6pm||
|
||||
|7pm||
|
||||
|8pm||
|
||||
|9pm | sucra|
|
||||
|10pm||
|
||||
@@ -0,0 +1,21 @@
|
||||
tags:: [[gerd]]
|
||||
|
||||
- | **time** | **what**|
|
||||
|----|-----|
|
||||
| 6:30 | ppi|
|
||||
|7am | sucra|
|
||||
|8am | breakfast|
|
||||
|9am||
|
||||
|10am ||
|
||||
|11am |Sucra|
|
||||
|12pm | lunch|
|
||||
|1pm||
|
||||
|2pm||
|
||||
|3pm ||
|
||||
|4pm | sucra|
|
||||
|5pm | ppi / dinner |
|
||||
|6pm||
|
||||
|7pm||
|
||||
|8pm||
|
||||
|9pm | sucra|
|
||||
|10pm||
|
||||
@@ -0,0 +1,43 @@
|
||||
---
|
||||
created: 2024-01-25T16:49:34 (UTC -05:00)
|
||||
tags: nixos
|
||||
source: https://jeffkreeftmeijer.com/nix-home-manager-git-prompt/
|
||||
author: Jeff Kreeftmeijer
|
||||
---
|
||||
|
||||
- Git status in shell prompt with Nix Home Manager
|
||||
|
||||
> ## Excerpt
|
||||
> By on 2023-03-19 (originally published on 2023-03-13)
|
||||
|
||||
---
|
||||
By on 2023-03-19 (originally published on 2023-03-13)
|
||||
|
||||
Git comes with a script named [`git-prompt.sh`](https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh) that exposes information about the current directory’s repository to use in your shell’s prompt. The script is in the `contrib` directory, but I used to [extract](https://github.com/jeffkreeftmeijer/git-prompt.sh) it to not have to download the git source to set my prompt.
|
||||
|
||||
Using Nix, the prompt is available in the `~/.nix-profile` directory, meaning setting up the prompt doesn’t require remembering to download an extra file. Instead, it’s three lines in `programs.zsh.initExtra` to source the script and set the prompt<sup><a id="fnr.1" href="https://jeffkreeftmeijer.com/nix-home-manager-git-prompt/#fn.1" role="doc-backlink">1</a></sup>:
|
||||
|
||||
```
|
||||
programs.zsh.initExtra =
|
||||
''
|
||||
source ~/.nix-profile/share/git/contrib/completion/git-prompt.sh
|
||||
setopt PROMPT_SUBST
|
||||
export PS1='%~ $(__git_ps1 "(%s) ")%# '
|
||||
'';
|
||||
```
|
||||
|
||||
This produces prompts like `~/repository (main) %` inside a git repository, and `~/not/a/repository %` elsewhere.
|
||||
|
||||
---
|
||||
|
||||
1. This example is for zsh, omit the `setopt` and alter the `PS1` for bash:
|
||||
|
||||
```
|
||||
programs.bash.initExtra =
|
||||
''
|
||||
source ~/.nix-profile/share/git/contrib/completion/git-prompt.sh
|
||||
export PS1='\w $(__git_ps1 "(%s) ")$ '
|
||||
'';
|
||||
```
|
||||
|
||||
[↩︎](https://jeffkreeftmeijer.com/nix-home-manager-git-prompt/#fnr.1)
|
||||
@@ -0,0 +1,21 @@
|
||||
tags:: [[gerd]]
|
||||
|
||||
- | **time** | **what**|
|
||||
|----|-----|
|
||||
| 6:30 | ppi|
|
||||
|7am | sucra|
|
||||
|8am | breakfast|
|
||||
|9am||
|
||||
|10am ||
|
||||
|11am |Sucra|
|
||||
|12pm | lunch|
|
||||
|1pm||
|
||||
|2pm||
|
||||
|3pm ||
|
||||
|4pm | sucra|
|
||||
|5pm | ppi / dinner |
|
||||
|6pm||
|
||||
|7pm||
|
||||
|8pm||
|
||||
|9pm | sucra|
|
||||
|10pm||
|
||||
Reference in New Issue
Block a user