mirror of
https://github.com/nix-community/home-manager
synced 2024-11-23 11:39:46 +01:00
powerline-go: add zsh integration
This commit is contained in:
parent
cde1d33e61
commit
b04aa56503
4 changed files with 63 additions and 8 deletions
|
@ -106,17 +106,38 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf (cfg.enable && config.programs.bash.enable) {
|
config = {
|
||||||
programs.bash.initExtra = ''
|
programs.bash.initExtra =
|
||||||
function _update_ps1() {
|
mkIf (cfg.enable && config.programs.bash.enable) ''
|
||||||
local old_exit_status=$?
|
function _update_ps1() {
|
||||||
PS1="$(${pkgs.powerline-go}/bin/powerline-go -error $old_exit_status ${commandLineArguments})"
|
local old_exit_status=$?
|
||||||
|
PS1="$(${pkgs.powerline-go}/bin/powerline-go -error $old_exit_status ${commandLineArguments})"
|
||||||
|
${cfg.extraUpdatePS1}
|
||||||
|
return $old_exit_status
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$TERM" != "linux" ]; then
|
||||||
|
PROMPT_COMMAND="_update_ps1;$PROMPT_COMMAND"
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
|
||||||
|
programs.zsh.initExtra = mkIf (cfg.enable && config.programs.zsh.enable) ''
|
||||||
|
function powerline_precmd() {
|
||||||
|
PS1="$(${pkgs.powerline-go}/bin/powerline-go -error $? -shell zsh ${commandLineArguments})"
|
||||||
${cfg.extraUpdatePS1}
|
${cfg.extraUpdatePS1}
|
||||||
return $old_exit_status
|
}
|
||||||
|
|
||||||
|
function install_powerline_precmd() {
|
||||||
|
for s in "$\{precmd_functions[@]}"; do
|
||||||
|
if [ "$s" = "powerline_precmd" ]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
precmd_functions+=(powerline_precmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ "$TERM" != "linux" ]; then
|
if [ "$TERM" != "linux" ]; then
|
||||||
PROMPT_COMMAND="_update_ps1;$PROMPT_COMMAND"
|
install_powerline_precmd
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -1 +1,4 @@
|
||||||
{ powerline-go-standard = ./standard.nix; }
|
{
|
||||||
|
powerline-go-bash = ./bash.nix;
|
||||||
|
powerline-go-zsh = ./zsh.nix;
|
||||||
|
}
|
||||||
|
|
31
tests/modules/programs/powerline-go/zsh.nix
Normal file
31
tests/modules/programs/powerline-go/zsh.nix
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
{
|
||||||
|
config = {
|
||||||
|
programs = {
|
||||||
|
zsh.enable = true;
|
||||||
|
|
||||||
|
powerline-go = {
|
||||||
|
enable = true;
|
||||||
|
newline = true;
|
||||||
|
modules = [ "nix-shell" ];
|
||||||
|
pathAliases = { "\\~/project/foo" = "prj-foo"; };
|
||||||
|
settings = {
|
||||||
|
ignore-repos = [ "/home/me/project1" "/home/me/project2" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.overlays =
|
||||||
|
[ (self: super: { zsh = pkgs.writeScriptBin "dummy-zsh" ""; }) ];
|
||||||
|
|
||||||
|
nmt.script = ''
|
||||||
|
assertFileExists home-files/.zshrc
|
||||||
|
assertFileContains \
|
||||||
|
home-files/.zshrc \
|
||||||
|
'/bin/powerline-go -error $? -shell zsh -modules nix-shell -newline -path-aliases \~/project/foo=prj-foo -ignore-repos /home/me/project1,/home/me/project2'
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue