Jump to content

Zsh: Difference between revisions

1,342 bytes added ,  15 May
imported>Flexagoon
No edit summary
(24 intermediate revisions by 23 users not shown)
Line 9: Line 9:
Zsh can be configured with [[Home Manager]].
Zsh can be configured with [[Home Manager]].


Full list of home-manager options for zsh can be found [https://rycee.gitlab.io/home-manager/options.html#opt-wayland.windowManager.sway.enable here.]
Full list of home-manager options for zsh can be found [https://nix-community.github.io/home-manager/options.xhtml#opt-programs.zsh.enable here.]


=== Example Configuration ===
=== Example Configuration ===
Line 15: Line 15:
programs.zsh = {
programs.zsh = {
   enable = true;
   enable = true;
  enableCompletion = true;
  autosuggestions.enable = true;
  syntaxHighlighting.enable = true;
   shellAliases = {
   shellAliases = {
     ll = "ls -l";
     ll = "ls -l";
     update = "sudo nixos-rebuild switch";
     update = "sudo nixos-rebuild switch";
   };
   };
   history = {
   history.size = 10000;
    size = 10000;
  history.path = "${config.xdg.dataHome}/zsh/history";
    path = "${config.xdg.dataHome}/zsh/history";
  };
};
};
</nowiki>}}
</nowiki>}}
Line 43: Line 45:
</nowiki>}}
</nowiki>}}
==== Oh-My-Zsh ====
==== Oh-My-Zsh ====
{{file|~/.config/nixpkgs/home.nix|nix|<nowiki>
<code>oh-my-zsh</code> is a framework to manage your ZSH configuration including completion scripts for several CLI tools or custom prompt themes. It is documented in the [https://nixos.org/manual/nixos/stable/#module-programs-zsh-ohmyzsh NixOS manual].{{file|~/.config/nixpkgs/home.nix|nix|<nowiki>
programs.zsh = {
programs.zsh = {
   ... # Your zsh config
   ... # Your zsh config
   oh-my-zsh = {
   ohMyZsh = {
     enable = true;
     enable = true;
     plugins = [ "git" "thefuck" ];
     plugins = [ "git" "thefuck" ];
     theme = "robbyrussel";
     theme = "robbyrussell";
   };
   };
};
};
</nowiki>}}
</nowiki>}}
==== Manual ====
==== Manual ====
{{file|~/.config/nixpkgs/home.nix|nix|<nowiki>
{{file|~/.config/nixpkgs/home.nix|nix|<nowiki>
Line 87: Line 90:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
bindkey "''${key[Up]}" up-line-or-search
bindkey "''${key[Up]}" up-line-or-search
</syntaxhighlight>
=== SHA Mismatch during manual plugin installation ===
If manual plugin installation fails with SHA mismatch, generating a valid hash as part of the error message can be achieved by temporarily switching to:
<syntaxhighlight lang="nix">
sha256 = lib.fakeSha256;
</syntaxhighlight>
This will print a valid SHA to the console and then can be used as final value for the sha256 field.
Redoing this is mandatory if one wants to update to a newer commit of the targeted plugin repository.
=== GDM does not show user when zsh is the default shell ===
GDM only shows users that have their default shell set to a shell listed in /etc/shells. Setting the default shell using the following does not update /etc/shells.
<syntaxhighlight lang="nix">
users.defaultUserShell = pkgs.zsh;
</syntaxhighlight>
To add the zsh package to /etc/shells you must update environment.shells.
<syntaxhighlight lang="nix">
environment.shells = with pkgs; [ zsh ];
</syntaxhighlight>
</syntaxhighlight>


== See also ==
== See also ==
* [[Command Shell]]
* [[Command Shell]]
[[Category:Shell]]
[[Category:NixOS Manual]]
trusted
596

edits