fixed zsh HOLY SHIT THIS IS THE COOLEST THING EVER
This commit is contained in:
@@ -10,6 +10,5 @@
|
|||||||
wrappers.url = "github:BirdeeHub/nix-wrapper-modules";
|
wrappers.url = "github:BirdeeHub/nix-wrapper-modules";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
outputs = inputs: inputs.flake-parts.lib.mkFlake {inherit inputs;} (inputs.import-tree ./modules);
|
outputs = inputs: inputs.flake-parts.lib.mkFlake {inherit inputs;} (inputs.import-tree ./modules);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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