104 lines
2.8 KiB
Nix
104 lines
2.8 KiB
Nix
{ config, lib, pkgs, user, ... }:
|
|
let
|
|
inherit (lib.modules) mkIf;
|
|
|
|
cfg = config.modules.${user}.shell;
|
|
in
|
|
{
|
|
config = mkIf (cfg.default == "zsh") {
|
|
modules.shell.zsh.enable = true;
|
|
|
|
modules.${user}.shell = {
|
|
corePkgs.enable = true;
|
|
};
|
|
|
|
# Enable completion for sys-packages:
|
|
environment.pathsToLink = ["/share/zsh"];
|
|
|
|
home-manager.users.${user} = {
|
|
# xdg.configFile."zsh-abbreviations" = {
|
|
# target = "zsh/abbreviations";
|
|
# text = let
|
|
# abbrevs = {
|
|
# ls = "eza -al";
|
|
# };
|
|
# in ''
|
|
# ${concatStrings (mapAttrsToList
|
|
# (k: v: "abbr ${k}=${escapeNixString v}")
|
|
# abbrevs
|
|
# )}
|
|
# '';
|
|
# };
|
|
|
|
programs = {
|
|
starship.enableZshIntegration = true;
|
|
yazi.enableZshIntegration = true;
|
|
zellij.enableZshIntegration = true;
|
|
|
|
zsh = {
|
|
enable = true;
|
|
enableCompletion = true;
|
|
autosuggestion.enable = true;
|
|
|
|
history = {
|
|
size = 10000;
|
|
path = "$XDG_CONFIG_HOME/zsh/history";
|
|
};
|
|
|
|
oh-my-zsh = {
|
|
enable = true;
|
|
plugins = ["git" "docker-compose" "zoxide"];
|
|
};
|
|
|
|
plugins = let
|
|
mkZshPlugin = {
|
|
pkg,
|
|
file ? "${pkg.pname}.plugin.zsh",
|
|
}: {
|
|
name = pkg.pname;
|
|
src = pkg.src;
|
|
inherit file;
|
|
};
|
|
in
|
|
with pkgs; [
|
|
(mkZshPlugin {pkg = zsh-abbr;})
|
|
(mkZshPlugin {pkg = zsh-autopair;})
|
|
(mkZshPlugin {pkg = zsh-you-should-use;})
|
|
(mkZshPlugin {
|
|
pkg = zsh-nix-shell;
|
|
file = "nix-shell.plugin.zsh";
|
|
})
|
|
|
|
{
|
|
name = "zsh-autosuggestion";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "zsh-users";
|
|
repo = "zsh-autosuggestions";
|
|
rev = "v0.7.0";
|
|
sha256 = "1g3pij5qn2j7v7jjac2a63lxd97mcsgw6xq6k5p7835q9fjiid98";
|
|
};
|
|
}
|
|
{
|
|
name = "zsh-completions";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "zsh-users";
|
|
repo = "zsh-completions";
|
|
rev = "0.34.0";
|
|
sha256 = "0jjgvzj3v31yibjmq50s80s3sqi4d91yin45pvn3fpnihcrinam9";
|
|
};
|
|
}
|
|
{
|
|
name = "zsh-syntax-highlighting";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "zsh-users";
|
|
repo = "zsh-syntax-highlighting";
|
|
rev = "0.7.0";
|
|
sha256 = "0s1z3whzwli5452h2yzjzzj27pf1hd45g223yv0v6hgrip9f853r";
|
|
};
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|