sisyphus/nixos/modules/shells/zsh/default.nix
2023-09-29 08:21:05 +02:00

77 lines
1.8 KiB
Nix

{ config, lib, pkgs, ... }:
{
programs.zsh.enable = true;
users.users.tdpeuter.shell = pkgs.zsh;
home-manager.users.tdpeuter = { pkgs, ... }: {
home = {
packages = with pkgs; [
font-awesome
fzf
];
file = {
".oh-my-zsh".source = ../../../../stow/zsh/.oh-my-zsh;
};
};
programs.zsh = {
enable = true;
enableAutosuggestions = true;
enableSyntaxHighlighting = true;
history = {
expireDuplicatesFirst = true;
extended = true;
};
initExtra = ''
eval "$(direnv hook zsh)"
# Add fzf
if [ -x "$(command -v fzf-share)" ]; then
source "$(fzf-share)/key-bindings.zsh"
source "$(fzf-share)/completion.zsh"
fi
'';
oh-my-zsh = {
enable = true;
custom = "$HOME/.oh-my-zsh";
plugins = [
"dirhistory"
"git"
"screen"
];
theme = "mrfortem";
};
plugins = [
{
name = "cmdtime";
src = pkgs.fetchFromGitHub {
owner = "tom-auger";
repo = "cmdtime";
rev = "ffc72641dcfa0ee6666ceb1dc712b61be30a1e8b";
hash = "sha256-v6wCfNoPXDD3sS6yUYE6lre8Ir1yJcLGoAW3O8sUOCg=";
};
}
];
shellAliases = {
cp = "cp -i"; # Confirm before overwriting something
df = "df -h";
free = "free -m";
ll = "ls -la";
np = "nano -w PKGBUILD";
more = "less";
hgrep = "history | grep";
gs = "git status";
update = ''
pushd ~/projects/sisyphus/nixos
nix flake update
sudo nixos-rebuild switch --flake .# --show-trace
popd
'';
};
};
};
}