161 lines
3.3 KiB
Nix
161 lines
3.3 KiB
Nix
{ config, lib, pkgs, ... }: {
|
|
|
|
home.packages = with pkgs; [
|
|
oh-my-posh
|
|
];
|
|
|
|
programs.zsh = {
|
|
|
|
enable = true;
|
|
|
|
enableCompletion = true;
|
|
|
|
autosuggestion.enable = true;
|
|
|
|
syntaxHighlighting.enable = true;
|
|
|
|
shellAliases = {
|
|
ls = "eza";
|
|
ll = "ls -l";
|
|
|
|
ksh = "kitten ssh";
|
|
|
|
vi = "nvim";
|
|
vim = "nvim";
|
|
|
|
python = "python3.13";
|
|
python3 = "python3.13";
|
|
};
|
|
|
|
history = {
|
|
size = 5000;
|
|
ignoreAllDups = true;
|
|
ignoreSpace = true;
|
|
share = true;
|
|
};
|
|
|
|
initContent = if config.homeconfig.wal.enable then (lib.mkBefore ''
|
|
cat ${config.home.homeDirectory}/.cache/wal/sequences
|
|
eval "$(oh-my-posh init zsh --config ${config.home.homeDirectory}/.cache/wal/ohmyposh.toml)"
|
|
'') else (lib.mkBefore ''
|
|
eval "$(oh-my-posh init zsh --config ${config.home.homeDirectory}/.config/ohmyposh/ohmyposh.toml)"
|
|
'');
|
|
|
|
};
|
|
|
|
home.file.".config/wal/templates/ohmyposh.toml".text = ''
|
|
#:schema https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json
|
|
|
|
version = 2
|
|
final_space = true
|
|
console_title_template = '{{{{ .Shell }}}} in {{{{ .Folder }}}}'
|
|
|
|
[[blocks]]
|
|
type = 'prompt'
|
|
alignment = 'left'
|
|
newline = true
|
|
|
|
[[blocks.segments]]
|
|
type = 'os'
|
|
style = 'diamond'
|
|
trailing_diamond = ''
|
|
background = 'p:c1'
|
|
foreground = 'p:c12'
|
|
template = ' {{{{ .Icon }}}} '
|
|
|
|
[[blocks.segments]]
|
|
type = 'session'
|
|
style = 'diamond'
|
|
trailing_diamond = ''
|
|
background = 'p:c2'
|
|
foreground = 'p:c14'
|
|
template = '{{{{ .UserName }}}}@{{{{ .HostName }}}}'
|
|
|
|
[[blocks.segments]]
|
|
type = 'path'
|
|
style = 'diamond'
|
|
trailing_diamond = ''
|
|
background = 'p:c4'
|
|
foreground = 'p:c13'
|
|
template = '{{{{ .Path }}}}'
|
|
|
|
[blocks.segments.properties]
|
|
style = 'full'
|
|
|
|
[[blocks]]
|
|
type = 'prompt'
|
|
overflow = 'hidden'
|
|
alignment = 'right'
|
|
|
|
[[blocks.segments]]
|
|
type = 'executiontime'
|
|
style = 'diamond'
|
|
leading_diamond = ''
|
|
background = 'p:c4'
|
|
foreground = 'p:c13'
|
|
template = '{{{{ .FormattedMs }}}}'
|
|
|
|
[[blocks.segments]]
|
|
type = 'time'
|
|
style = 'diamond'
|
|
leading_diamond = ''
|
|
background = 'p:c2'
|
|
foreground = 'p:c14'
|
|
|
|
[[blocks.segments]]
|
|
type = 'shell'
|
|
style = 'diamond'
|
|
leading_diamond = ''
|
|
background = 'p:c1'
|
|
foreground = 'p:c12'
|
|
|
|
[[blocks]]
|
|
type = 'prompt'
|
|
alignment = 'left'
|
|
newline = true
|
|
|
|
[[blocks.segments]]
|
|
type = 'text'
|
|
style = 'plain'
|
|
background = 'transparent'
|
|
foreground_templates = [
|
|
"{{{{ if gt .Code 0 }}}}p:c13{{{{end}}}}",
|
|
"{{{{ if eq .Code 0 }}}}p:c14{{{{end}}}}",
|
|
]
|
|
template = "{{{{ if gt .Code 0 }}}}!❭ {{{{else}}}}❭ {{{{end}}}}"
|
|
|
|
[transient_prompt]
|
|
foreground_templates = [
|
|
"{{{{ if gt .Code 0 }}}}p:c13{{{{end}}}}",
|
|
"{{{{ if eq .Code 0 }}}}p:c14{{{{end}}}}",
|
|
]
|
|
background = 'transparent'
|
|
template = "{{{{ if gt .Code 0 }}}}!❭ {{{{else}}}}❭ {{{{end}}}}"
|
|
|
|
[secondary_prompt]
|
|
background = 'transparent'
|
|
forground = 'p:c14'
|
|
template = "❭❭ "
|
|
|
|
|
|
[palette]
|
|
|
|
c0 = "{color0}"
|
|
c1 = "{color1}"
|
|
c2 = "{color2}"
|
|
c3 = "{color3}"
|
|
c4 = "{color4}"
|
|
c5 = "{color5}"
|
|
c6 = "{color6}"
|
|
c7 = "{color7}"
|
|
c8 = "{color8}"
|
|
c9 = "{color9}"
|
|
c10 = "{color10}"
|
|
c11 = "{color11}"
|
|
c12 = "{color12}"
|
|
c13 = "{color13}"
|
|
c14 = "{color14}"
|
|
c15 = "{color15}"
|
|
'';
|
|
}
|