1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2024-11-19 17:49:45 +01:00

zellij: adds options to integrate with zsh, bash and fish shells (#3926)

* zellij: adds options to integrate with zsh, bash and fish shells

* zellij: add tests for shell integration options

* zellij: eval setup auto start for fish integration

* zellij: use interactiveShellInit for fish integration

* zellij: fixes format issues

* zellij: enable shell integrations by default

* zellij: compresses shell integration test cases

* zellij: removes the disabled shell integration tests

* zellij: formats tests
This commit is contained in:
Erik Krieg 2023-05-11 15:25:46 -04:00 committed by GitHub
parent d97e8f8861
commit cc9f65d104
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 64 additions and 0 deletions

View file

@ -39,6 +39,18 @@ in {
list of options. list of options.
''; '';
}; };
enableBashIntegration = mkEnableOption "Enable Bash integration." // {
default = true;
};
enableZshIntegration = mkEnableOption "Enable Zsh integration." // {
default = true;
};
enableFishIntegration = mkEnableOption "Enable Fish integration." // {
default = true;
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@ -55,5 +67,18 @@ in {
(cfg.settings != { } && (versionAtLeast cfg.package.version "0.32.0")) { (cfg.settings != { } && (versionAtLeast cfg.package.version "0.32.0")) {
text = lib.hm.generators.toKDL { } cfg.settings; text = lib.hm.generators.toKDL { } cfg.settings;
}; };
programs.bash.initExtra = mkIf cfg.enableBashIntegration (mkOrder 200 ''
eval "$(zellij setup --generate-auto-start bash)"
'');
programs.zsh.initExtra = mkIf cfg.enableZshIntegration (mkOrder 200 ''
eval "$(zellij setup --generate-auto-start zsh)"
'');
programs.fish.interactiveShellInit = mkIf cfg.enableFishIntegration
(mkOrder 200 ''
eval (zellij setup --generate-auto-start fish | string collect)
'');
}; };
} }

View file

@ -133,6 +133,7 @@ import nmt {
./modules/programs/vscode ./modules/programs/vscode
./modules/programs/watson ./modules/programs/watson
./modules/programs/wezterm ./modules/programs/wezterm
./modules/programs/zellij
./modules/programs/zplug ./modules/programs/zplug
./modules/programs/zsh ./modules/programs/zsh
./modules/xresources ./modules/xresources

View file

@ -0,0 +1 @@
{ zellij-enable-shells = ./enable-shells.nix; }

View file

@ -0,0 +1,37 @@
{ lib, ... }:
{
programs = {
# All shell integratons are enabled by default.
zellij.enable = true;
bash.enable = true;
zsh.enable = true;
fish.enable = true;
};
# Needed to avoid error with dummy fish package.
xdg.dataFile."fish/home-manager_generated_completions".source =
lib.mkForce (builtins.toFile "empty" "");
test.stubs = {
zsh = { };
zellij = { };
};
nmt.script = ''
assertFileExists home-files/.bashrc
assertFileContains \
home-files/.bashrc \
'eval "$(zellij setup --generate-auto-start bash)"'
assertFileExists home-files/.zshrc
assertFileContains \
home-files/.zshrc \
'eval "$(zellij setup --generate-auto-start zsh)"'
assertFileExists home-files/.config/fish/config.fish
assertFileContains \
home-files/.config/fish/config.fish \
'eval (zellij setup --generate-auto-start fish | string collect)'
'';
}