fixed zsh HOLY SHIT THIS IS THE COOLEST THING EVER
This commit is contained in:
@@ -1,9 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.dots.zshrc = pkgs: ''
|
||||
source ${pkgs.carapace}/share/carapace-bin/bash-preexec.sh
|
||||
export PATH="${pkgs.carapace}/bin:$PATH"
|
||||
|
||||
alias ls="${pkgs.eza}/bin/eza"
|
||||
'';
|
||||
}
|
||||
100
modules/features/zsh/config.toml
Normal file
100
modules/features/zsh/config.toml
Normal file
@@ -0,0 +1,100 @@
|
||||
console_title_template = '{{ .Shell }} in {{ .Folder }}'
|
||||
version = 3
|
||||
final_space = true
|
||||
|
||||
[secondary_prompt]
|
||||
template = '❯❯ '
|
||||
foreground = 'magenta'
|
||||
background = 'transparent'
|
||||
|
||||
[transient_prompt]
|
||||
template = '❯ '
|
||||
background = 'transparent'
|
||||
foreground_templates = ['{{if gt .Code 0}}red{{end}}', '{{if eq .Code 0}}magenta{{end}}']
|
||||
|
||||
[[blocks]]
|
||||
type = 'prompt'
|
||||
alignment = 'left'
|
||||
newline = true
|
||||
|
||||
[[blocks.segments]]
|
||||
type = 'text'
|
||||
style = 'plain'
|
||||
template = '''
|
||||
{{- if .Env.DEVSHELL_NAME -}}
|
||||
{{- $parts := split "|" .Env.DEVSHELL_NAME -}}
|
||||
{{- range $part := $parts -}}
|
||||
{{- if $part -}}
|
||||
{{- $sub := split "/" $part -}}
|
||||
{{- if eq (len $sub) 2 -}}
|
||||
<{{ index $sub "_1" }}>{{ index $sub "_0" }}</> <#7f849c>| </>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
'''
|
||||
|
||||
[[blocks.segments]] # Python venv
|
||||
type = 'text'
|
||||
style = 'plain'
|
||||
template = '{{ if .Env.VIRTUAL_ENV }}<yellow>🐍 venv</> <#7f849c>|</> {{ end }}'
|
||||
|
||||
[[blocks.segments]] # Nix shell indicator
|
||||
type = 'text'
|
||||
style = 'plain'
|
||||
template = '{{ if and .Env.IN_NIX_SHELL (not .Env.DEVSHELL_NAME) }}<blue> nsh</> <#7f849c>|</> {{ end }}'
|
||||
|
||||
[[blocks.segments]]
|
||||
template = '{{ .Path }}'
|
||||
foreground = 'blue'
|
||||
background = 'transparent'
|
||||
type = 'path'
|
||||
style = 'plain'
|
||||
|
||||
[blocks.segments.properties]
|
||||
cache_duration = 'none'
|
||||
style = 'full'
|
||||
|
||||
[[blocks.segments]]
|
||||
template = ' {{ .HEAD }}{{ if or (.Working.Changed) (.Staging.Changed) }}<yellow> *</>{{ end }} <cyan>{{ if gt .Behind 0 }}{{ end }}{{ if gt .Ahead 0 }}{{ end }}</>'
|
||||
foreground = 'green'
|
||||
background = 'transparent'
|
||||
type = 'git'
|
||||
style = 'plain'
|
||||
|
||||
[blocks.segments.properties]
|
||||
branch_icon = ''
|
||||
cache_duration = 'none'
|
||||
commit_icon = '@'
|
||||
fetch_status = true
|
||||
|
||||
[[blocks]]
|
||||
type = 'rprompt'
|
||||
overflow = 'hidden'
|
||||
|
||||
[[blocks.segments]]
|
||||
template = '{{ .FormattedMs }}'
|
||||
foreground = 'yellow'
|
||||
background = 'transparent'
|
||||
type = 'executiontime'
|
||||
style = 'plain'
|
||||
|
||||
[blocks.segments.properties]
|
||||
cache_duration = 'none'
|
||||
threshold = 5000
|
||||
|
||||
[[blocks]]
|
||||
type = 'prompt'
|
||||
alignment = 'left'
|
||||
newline = true
|
||||
|
||||
[[blocks.segments]]
|
||||
template = '❯'
|
||||
background = 'transparent'
|
||||
type = 'text'
|
||||
style = 'plain'
|
||||
foreground_templates = ['{{if gt .Code 0}}red{{end}}', '{{if eq .Code 0}}magenta{{end}}']
|
||||
|
||||
[blocks.segments.properties]
|
||||
cache_duration = 'none'
|
||||
|
||||
36
modules/features/zsh/default.nix
Normal file
36
modules/features/zsh/default.nix
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.zsh = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
package = self.packages.${pkgs.stdenv.hostPlatform.system}.myZsh;
|
||||
};
|
||||
};
|
||||
perSystem = {
|
||||
pkgs,
|
||||
lib,
|
||||
self',
|
||||
...
|
||||
}: {
|
||||
packages = {
|
||||
myZsh = inputs.wrappers.wrappers.zsh.wrap {
|
||||
inherit pkgs;
|
||||
zshrc.content = ''
|
||||
eval "$(${self.packages.${pkgs.host.stdenv.hostPlatform.system}.ohMyPosh}/bin/oh-my-posh init zsh)"
|
||||
alias ls=${pkgs.lsd}/bin/lsd
|
||||
'';
|
||||
};
|
||||
ohMyPosh = inputs.wrappers.wrappers.oh-my-posh.wrap {
|
||||
inherit pkgs;
|
||||
configFile = ./config.toml;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
perSystem = {pkgs, ...}: {
|
||||
packages.myZsh = inputs.wrappers.wrappers.zsh.wrap {
|
||||
zshrc.content = (self.dots.zshrc pkgs);
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user